/* Оболочка: сайдбар (десктоп), верхняя панель, заголовок страницы, стеклянное нижнее меню (телефон). */
.shell {
  display: grid;
  grid-template-columns: 216px minmax(0, 1fr);
  min-height: 100vh;
}
.sidebar {
  background: var(--surface);
  border-right: 1px solid var(--line);
  padding: 26px 16px;
}
.brand {
  font-size: 19px;
  letter-spacing: -0.5px;
  padding: 0 12px 22px;
}
.brand span {
  color: var(--btn);
}
.sidebar nav {
  display: grid;
  gap: 4px;
}
.navbutton {
  background: none;
  border: 0;
  border-radius:var(--r-field);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  color: var(--text-2);
  text-align: left;
  min-height: 44px;
}
.navbutton[aria-current='page'] {
  background: var(--surface-2);
  color: var(--text);
}
.navbutton .count {
  margin-left: auto;
  font-size: 12px;
}
.workspace {
  min-width: 0;
}
.local-note {
  font-size: 12px;
  color: var(--warn);
}
.pagehead p {
  color: var(--text-2);
  margin-top: 8px;
}
@media (max-width: 1000px) {
.shell {
    grid-template-columns: 170px minmax(0, 1fr);
  }
.sidebar {
    padding: 20px 8px;
  }
}
@media (max-width: 700px) {
.shell {
    display: block;
  }
.sidebar {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    padding: 12px;
  }
.brand {
    padding: 0 6px 12px;
  }
.sidebar nav {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
  }
.navbutton {
    font-size: 13px;
    padding: 8px;
    min-height: 44px;
  }
.navbutton .count {
    display: none;
  }
.sidebar {
    position: relative;
  }
.sidebar .brand {
    padding: 4px 0;
    margin-right: 85px;
    min-height: 40px;
    display: flex;
    align-items: center;
  }
.sidebar nav {
    display: none;
  }
.sidebar.menu-open nav {
    display: flex;
  }
.sidebar > .section-label,
  .sidebar > small {
    display: none;
  }
.sidebar.menu-open > .section-label,
  .sidebar.menu-open > small {
    display: block;
  }
.local-note {
    font-size: 11px;
  }
}
.shell.client-shell {
  display: block;
}
.guest-primary {
  background: var(--btn);
  color: var(--btn-on);
}
.guest-primary:hover {
  background: color-mix(in srgb, var(--btn) 88%, #fff);
}
#app .shell,
#app .workspace,
#app main {
  background: var(--bg);
  color: var(--text);
}
#app h1,
#app h2,
#app h3 {
  color: var(--text);
}
#app .brand {
  font-family: var(--f-body);
  font-weight: 600;
}
@media (max-width: 700px) {
#app .workspace {
    padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  }
#app .client-shell .workspace {
    padding-bottom: 0;
  }
#app .more-shell .sidebar,
  #app .more-shell .topbar {
    display: none;
  }
#app .more-shell .workspace {
    padding-top: 22px;
  }
.page-actions .row {
    display: flex;
  }
.page-actions > .primary {
    width: 100%;
  }
.page-actions > .secondary,
  .page-actions > .quiet {
    min-height: 40px;
    font-size: 13px;
  }
#app .sidebar {
    display: none;
  }
.shell {
    display: block;
  }
.topbar:has(+ #page .back-button) {
    display: none;
  }
.pagehead:has(.back-button) {
    padding-top: 0;
  }
}
.pagehead .searchresults {
  margin-top: 6px;
}
.pagehead .searchresults .quiet {
  width: 100%;
  text-align: left;
  justify-content: flex-start;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius:0;
}
@media (max-width: 700px) {
.page-actions.has-bottom-action {
    position: fixed;
    z-index: 21;
    left: 0;
    right: 0;
    bottom: calc(73px + env(safe-area-inset-bottom, 0px));
    margin: 0;
    padding: 12px 18px;
    background: var(--bg);
    border-top: 1px solid var(--line);
    display: flex;
    gap: 8px;
  }
.page-actions.has-bottom-action > button {
    flex: 1;
    min-width: 0;
    min-height: 48px;
    margin: 0;
  }
body:has(dialog[open]) .page-actions.has-bottom-action {
    visibility: hidden;
  }
}
body {
  background: var(--bg);
}
main {
  max-width: 1180px;
  margin: auto;
  padding: 28px 32px 120px;
}
.topbar {
  padding: 28px 32px 0;
  border: 0;
  background: transparent;
  display: flex;
  align-items: center;
  gap: 14px;
}
.master-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  background: none;
  color: var(--text);
  padding: 0;
  text-align: left;
  min-height: 44px;
}
.master-identity strong,
.master-identity small {
  display: block;
}
.master-identity strong {
  font-size: 14px;
  font-weight: 600;
}
.master-identity small {
  font-size: 12px;
  margin-top: 2px;
}
.master-avatar {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  overflow: hidden;
  border-radius:50%;
  background: var(--surface-2);
  font-weight: 600;
}
.master-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pagehead {
  display: block;
  margin-bottom: 24px;
}
.page-title-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.page-title-row h1 {
  font-size: 28px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.page-subtitle {
  font-size: 13px;
  line-height: 1.5;
  margin-top: 8px !important;
  color: var(--text-2);
}
.page-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.pagehead .search {
  margin-top: 18px;
  width: 100%;
  max-width: none;
  min-height: 46px;
  background: var(--surface);
  border: 0;
}
@media (max-width: 700px) {
main,
  .workspace main {
    padding: 24px 18px 120px;
  }
.topbar {
    padding: 22px 18px 0;
  }
.page-title-row h1 {
    font-size: 27px;
  }
}
.brand span{color:var(--mark)}
.sidebar{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.navbutton[aria-current=page]{color:var(--btn-on);background:var(--surface-2)}
@media(max-width:700px) {
.page-actions.has-bottom-action{bottom:calc(86px + env(safe-area-inset-bottom,0px));padding:10px 18px;background:linear-gradient(transparent,var(--bg) 35%);border-top:0}
}
.pagehead:has([data-action=edit-client]){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.pagehead:has([data-action=edit-client]) .page-title-row{margin:0}
.pagehead:has([data-action=edit-client]) .page-actions{margin:0;padding:0}
.pagehead:has([data-action=edit-client]) .page-actions button{min-height:36px;font-size:12px;padding:8px 12px}


/* ==========================================================================
   Стеклянное нижнее меню (телефон): 4 раздела + «Ещё», скользящий селектор.
   Разметка: <nav class="mobile-bottom-nav" style="--nav-index:0"><span class="glass-selector"></span>
             <button aria-current="page|false"><svg/><span>Главная</span>[<span class="mobile-nav-count">3</span>]</button> x5</nav>
   Индекс --nav-index (0..4) двигает селектор; 5-я кнопка («Ещё») — .mobile-menu.
   ========================================================================== */
.mobile-bottom-nav,
.mobile-nav-backdrop {
  display: none;
}
@media (max-width: 700px) {
  .mobile-bottom-nav {
    --nav-h: 56px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    height: var(--nav-h);
    padding: 4px;
    z-index: var(--z-nav);
    isolation: isolate;
    overflow: hidden;
    border-radius: 999px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-line);
    box-shadow:
      0 12px 32px rgb(0 0 0 / 0.28),
      inset 0 1px 0 color-mix(in srgb, var(--text) 16%, transparent);
    -webkit-backdrop-filter: var(--glass-blur);
    backdrop-filter: var(--glass-blur);
  }
  .mobile-bottom-nav::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(
      125deg,
      color-mix(in srgb, var(--text) 9%, transparent) 0%,
      color-mix(in srgb, var(--text) 2%, transparent) 30%,
      transparent 55%,
      color-mix(in srgb, var(--text) 4%, transparent) 100%
    );
    z-index: 0;
  }
  .glass-selector {
    position: absolute;
    left: 4px;
    top: 4px;
    bottom: 4px;
    width: calc((100% - 8px) / 5);
    border-radius: 999px;
    background: linear-gradient(
      150deg,
      color-mix(in srgb, var(--text) 16%, transparent),
      color-mix(in srgb, var(--text) 6%, transparent) 65%
    );
    border: 1px solid color-mix(in srgb, var(--text) 14%, transparent);
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--text) 18%, transparent);
    transform: translateX(calc(var(--nav-index, 0) * 100%));
    transition: transform var(--dur-sheet) var(--ease-sheet);
    z-index: 1;
    pointer-events: none;
  }
  .mobile-bottom-nav > button {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 44px;
    padding: 2px 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--text-2);
    font: 500 11px/1.2 var(--f-body);
    transition:
      color var(--dur-base),
      transform var(--dur-fast);
  }
  .mobile-bottom-nav > button[aria-current='page'] {
    color: var(--text);
  }
  .mobile-bottom-nav > button:active {
    transform: scale(0.94);
  }
  .mobile-bottom-nav svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform var(--dur-move) var(--ease-sheet);
  }
  .mobile-bottom-nav > button[aria-current='page'] svg {
    transform: translateY(-1px) scale(1.06);
  }
  .mobile-nav-count {
    position: absolute;
    top: 2px;
    left: calc(50% + 6px);
    min-width: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--mark);
    color: #fff;
    font-size: 10px;
    line-height: 16px;
    text-align: center;
  }
  /* место под меню: 12 + 56 + запас */
  #app .workspace {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .mobile-bottom-nav,
  .sidebar,
  .crm-actionbar {
    background: var(--surface);
  }
}
@media (prefers-reduced-motion: reduce) {
  .glass-selector,
  .mobile-bottom-nav > button,
  .mobile-bottom-nav svg {
    transition: none;
  }
}
/* десктоп: меню слева, телефонного меню нет */
@media (min-width: 701px) {
  .navbutton {
    min-height: 44px;
    font-size: 15px;
    border-radius: 999px;
  }
  .navbutton[aria-current='page'] {
    background: var(--surface-2);
    color: var(--text);
  }
}
