/* Админка, кабинет бизнеса и личный кабинет гостя BaniBook — светлое стекло (редизайн 25.10.2026).
   Подключается в admin/layout (вид glass, config/admin.php) и в кабинете бизнеса (layouts/business-glass,
   config/cabinet.php), в личном кабинете гостя (account/layout, ACCOUNT_UI) и на странице входа (auth/login, AUTH_UI) —
   все правила под .bb-glass: остальной
   публичный сайт этот файл не грузит и не меняется.
   Обычный CSS без сборки: правится и выкладывается как файл.

   1. Шрифт  2. Токены  3. Фон  4. Стекло  5. Каркас  6. Компоненты  7. Дашборд
   8. Совместимость со страницами на утилитах Tailwind  9. Окно «Оформление»  11. Кабинет бизнеса  12. Личный кабинет гостя
   13. Плотность и стекло  14. Вход  10. Адаптив и доступность */

/* ── 1. Шрифт: Onest, самохостинг (SIL OFL 1.1, public/fonts/onest/OFL.txt) ── */
@font-face { font-family: 'Onest'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/onest/onest-cyrillic-ext.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Onest'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/onest/onest-cyrillic.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Onest'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/onest/onest-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Onest'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(../fonts/onest/onest-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ── 2. Токены ── */
.bb-glass {
  --bbg-ink: #142630; --bbg-ink-2: #33464F; --bbg-ink-3: #485A63;
  --bbg-pine: #16323A; --bbg-pine-2: #0E2329;
  --bbg-logo-plate: linear-gradient(180deg, #24505A, #0E2329); --bbg-logo-shadow: 0 10px 18px -10px rgba(10,30,36,.9), inset 0 1px 0 rgba(255,255,255,.18);
  --bbg-berry: #B4304A; --bbg-berry-bg: #F8DCE2; --bbg-berry-ink: #8C2237;
  --bbg-mint-bg: #D4EFE2; --bbg-mint-ink: #15603D;
  --bbg-warn-bg: #FBE5BB; --bbg-warn-ink: #714500;
  --bbg-bad-bg: #F7D7D0;  --bbg-bad-ink: #882A21;
  --bbg-info-bg: #DAE5F6; --bbg-info-ink: #22497A;
  --bbg-mute-bg: #E4E8EE; --bbg-mute-ink: #46535C;
  --bbg-chart: #5B78B8;
  --bbg-glass-a: rgba(255,255,255,.64); --bbg-glass-b: rgba(255,255,255,.40);
  --bbg-edge: rgba(255,255,255,.72); --bbg-line: rgba(30,50,70,.11);
  --bbg-blur: 24px; --bbg-sat: 170%;
  --bbg-shadow: 0 26px 50px -30px rgba(36,48,96,.5), 0 2px 6px -2px rgba(36,48,96,.12);
  --bbg-raise: 0 6px 14px -8px rgba(36,48,96,.45), inset 0 1px 0 rgba(255,255,255,.95);
  --bbg-r-xl: 24px; --bbg-r-lg: 18px; --bbg-r-md: 13px;
  --bbg-rail: 72px; --bbg-panel: 248px; --bbg-gap: 12px;
  --bbg-font: 'Onest', 'Segoe UI', system-ui, -apple-system, Roboto, Arial, sans-serif;

  /* Токены Tailwind внутри админки: страницы на утилитах перекрашиваются без правки шаблонов. */
  --color-primary: #16323A; --color-brown: #0E2329; --color-dark: #142630; --color-text: #142630;
  --color-secondary: #22313A; --color-accent: #2F6F8F;
  /* смысловые оттенки на ступень темнее: на стекле им нужен запас контраста (AA) */
  --color-red-500: #B42318; --color-red-600: #B91C1C; --color-amber-600: #8A4006; --color-amber-700: #92400E; --color-emerald-600: #065F46; --color-emerald-700: #064E3B; --color-tan: #485A63; --color-background: #E4E6E5;
  --color-blue-600: #1D4ED8; --color-teal-600: #0F6B63; --color-gray-400: #5E6873; --color-gray-500: #4B5560; --color-gray-600: #3F4954;
  --color-gray-50: rgba(30,50,70,.045); --color-gray-100: rgba(30,50,70,.075); --color-gray-200: rgba(30,50,70,.16); --color-gray-300: rgba(30,50,70,.28);
  --font-heading: var(--bbg-font); --font-body: var(--bbg-font);

  font-family: var(--bbg-font); color: var(--bbg-ink); background: var(--bbg-bg-color, #E4E6E5);
  font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; min-height: 100vh;
}
.bb-glass :focus-visible { outline: 2px solid var(--bbg-pine); outline-offset: 2px; }
.bb-glass .bbg-tnum { font-variant-numeric: tabular-nums; }

/* ── 3. Фон: набор картинок, выбирается в «Оформлении» (data-bg на html) ── */
:root { --bbg-bg-image: url(../images/admin-bg/venik.webp); --bbg-bg-soft: url(../images/admin-bg/venik-soft.webp); --bbg-bg-color: #E4E6E5; --bbg-veil: 0; --bbg-slab-a: .46; --bbg-slab-b: .26; }
:root[data-bg="venik"] { --bbg-bg-image: url(../images/admin-bg/venik.webp); --bbg-bg-soft: url(../images/admin-bg/venik-soft.webp); --bbg-bg-color: #E4E6E5; }
:root[data-bg="par"]   { --bbg-bg-image: url(../images/admin-bg/par.webp);   --bbg-bg-soft: url(../images/admin-bg/par-soft.webp);   --bbg-bg-color: #BCC5D0; --bbg-slab-a: .5; --bbg-slab-b: .36; }
:root[data-bg="kupel"] { --bbg-bg-image: url(../images/admin-bg/kupel.webp); --bbg-bg-soft: url(../images/admin-bg/kupel-soft.webp); --bbg-bg-color: #C2DCE0; }
:root[data-bg="kamni"] { --bbg-bg-image: url(../images/admin-bg/kamni.webp); --bbg-bg-soft: url(../images/admin-bg/kamni-soft.webp); --bbg-bg-color: #C9CDCF; --bbg-slab-a: .5; --bbg-slab-b: .38; }
:root[data-bg="lake"]  { --bbg-bg-image: url(../images/admin-bg/lake.webp);  --bbg-bg-soft: url(../images/admin-bg/lake-soft.webp);  --bbg-bg-color: #D9D4EC; --bbg-slab-a: .56; --bbg-slab-b: .58; }
:root[data-bg="plain"] { --bbg-bg-image: none; --bbg-bg-soft: none; --bbg-bg-color: #E6E9EC; }
.bb-glass .bbg-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: var(--bbg-bg-color) var(--bbg-bg-image) center 62% / cover no-repeat; }
.bb-glass .bbg-bg::after { content: ""; position: absolute; inset: 0; background: rgba(244,246,248, var(--bbg-veil)); }

/* ── 4. Стекло: только крупные контейнеры, внутри — без своего размытия ──
   Матовое стекло без пересчёта на каждом кадре: за панелями всегда только неподвижный фон, поэтому его
   размытая копия (images/admin-bg/*-soft.webp = blur(24px) saturate(1.7) заранее) закреплена относительно
   экрана (fixed) и совпадает с фоном под панелью. Прокрутка остаётся плавной и на слабой графике.
   backdrop-filter на самих блоках не используется: он сделал бы блок точкой отсчёта для position: fixed внутри.
   На iPhone закреплённых фонов нет — там настоящее размытие на подложке ::before (см. @supports ниже). */
.bb-glass {
  --bbg-frost: linear-gradient(rgba(244,246,248, var(--bbg-veil)), rgba(244,246,248, var(--bbg-veil))) fixed, var(--bbg-bg-soft) center 62% / cover no-repeat fixed, var(--bbg-bg-color);
  --bbg-hi: radial-gradient(120% 70% at 0% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 55%);
  --bbg-inset: inset 1px 1px 0 rgba(255,255,255,.7), inset -1px -1px 0 rgba(255,255,255,.18);
}
.bb-glass .bbg-glass { position: relative; z-index: 0; border-radius: var(--bbg-r-xl); border: 1px solid var(--bbg-edge);
  background: var(--bbg-hi), linear-gradient(160deg, var(--bbg-glass-a), var(--bbg-glass-b)), var(--bbg-frost);
  box-shadow: var(--bbg-shadow), var(--bbg-inset); }
.bb-glass .bbg-raised { background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.6)); border: 1px solid rgba(255,255,255,.9); box-shadow: var(--bbg-raise); }

/* ── 5. Каркас ── */
.bb-glass .bbg-shell { position: relative; z-index: 1; display: grid; grid-template-columns: var(--bbg-rail) var(--bbg-panel) minmax(0, 1fr); gap: var(--bbg-gap); padding: var(--bbg-gap); padding-left: max(var(--bbg-gap), env(safe-area-inset-left, 0px)); padding-right: max(var(--bbg-gap), env(safe-area-inset-right, 0px)); min-height: 100vh; align-items: start; }
.bb-glass .bbg-shell.is-panel-off { grid-template-columns: var(--bbg-rail) minmax(0, 1fr); }
.bb-glass .bbg-shell.is-panel-off .bbg-panel { display: none; }
.bb-glass .bbg-side { display: contents; }
.bb-glass .bbg-rail-col, .bb-glass .bbg-panel { position: sticky; top: var(--bbg-gap); height: calc(100vh - var(--bbg-gap) * 2); height: calc(100dvh - var(--bbg-gap) * 2); }
.bb-glass .bbg-rail-col { display: flex; flex-direction: column; gap: 10px; }
.bb-glass .bbg-rail { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 0; overflow-y: auto; scrollbar-width: thin; border-radius: 24px; }
.bb-glass .bbg-logo { width: 46px; height: 46px; flex: none; border-radius: 15px; display: grid; place-items: center; color: #fff; background: var(--bbg-logo-plate); box-shadow: var(--bbg-logo-shadow); }
/* логотип BaniBook — золотые «ББ» (images/logo.svg) на хвойной плашке в цвет кнопок и аватара (раньше — коричневая, как на сайте) */
.bb-glass .bbg-logo img { width: 86%; height: 86%; display: block; }
.bb-glass .bbg-rail .bbg-sep { width: 28px; height: 1px; flex: none; background: rgba(30,50,70,.14); margin: 6px 0; }
.bb-glass .bbg-g { position: relative; width: 46px; height: 46px; flex: none; border: 0; border-radius: 14px; background: transparent; color: var(--bbg-ink-2); display: grid; place-items: center; cursor: pointer; transition: background .15s, color .15s; border: 1px solid transparent; }
.bb-glass .bbg-g:hover { background: rgba(255,255,255,.42); color: var(--bbg-ink); }
.bb-glass .bbg-g[aria-pressed="true"] { color: var(--bbg-ink); }
.bb-glass .bbg-g svg { width: 21px; height: 21px; }
.bb-glass .bbg-g .bbg-dot { position: absolute; top: 9px; right: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--bbg-berry); box-shadow: 0 0 0 2px rgba(255,255,255,.95); }
.bb-glass .bbg-rail-foot { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 0; border-radius: 22px; }
.bb-glass .bbg-rail-foot form { margin: 0; }
.bb-glass .bbg-rail-foot a, .bb-glass .bbg-rail-foot button { width: 46px; height: 44px; border: 0; border-radius: 13px; background: transparent; display: grid; place-items: center; color: var(--bbg-ink-2); cursor: pointer; }
.bb-glass .bbg-rail-foot a:hover, .bb-glass .bbg-rail-foot button:hover { background: rgba(255,255,255,.42); color: var(--bbg-ink); }
.bb-glass .bbg-rail-foot .bbg-out { color: var(--bbg-bad-ink); }
.bb-glass .bbg-tip { position: fixed; z-index: 70; padding: 6px 10px; border-radius: 9px; background: var(--bbg-pine); color: #fff; font-size: 13px; font-weight: 600; pointer-events: none; opacity: 0; transform: translateX(-4px); transition: opacity .12s, transform .12s; white-space: nowrap; }
.bb-glass .bbg-tip.is-on { opacity: 1; transform: none; }

.bb-glass .bbg-panel { display: flex; flex-direction: column; padding: 14px 12px 12px; overflow: hidden; }
.bb-glass .bbg-me { display: flex; align-items: center; gap: 10px; padding: 4px 4px 12px; }
.bb-glass .bbg-av { width: 42px; height: 42px; border-radius: 50%; flex: none; display: grid; place-items: center; font-weight: 700; color: #fff; background: var(--bbg-pine); box-shadow: 0 0 0 3px rgba(255,255,255,.7); }
.bb-glass .bbg-who { min-width: 0; flex: 1; }
.bb-glass .bbg-who b { display: block; font-weight: 600; font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .bbg-who span { display: block; font-size: 12.5px; color: var(--bbg-ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .bbg-icon-btn { width: 38px; height: 38px; flex: none; border-radius: 12px; border: 0; background: transparent; display: grid; place-items: center; color: var(--bbg-ink-2); cursor: pointer; }
.bb-glass .bbg-icon-btn:hover { background: rgba(255,255,255,.6); }
.bb-glass .bbg-scroll { flex: 1; overflow-y: auto; margin: 0 -4px; padding: 0 4px; scrollbar-width: thin; }
.bb-glass .bbg-panel h2 { font-size: 12.5px; font-weight: 600; color: var(--bbg-ink-3); padding: 10px 10px 6px; margin: 0; }
.bb-glass .bbg-hr { height: 1px; background: var(--bbg-line); margin: 10px 8px 2px; }
.bb-glass .bbg-nav a { display: flex; align-items: center; gap: 11px; min-height: 42px; padding: 0 10px; border-radius: 13px; font-weight: 500; font-size: 14.5px; color: var(--bbg-ink-2); border: 1px solid transparent; transition: background .15s; text-decoration: none; }
.bb-glass .bbg-nav a:hover { background: rgba(255,255,255,.42); }
.bb-glass .bbg-nav a[aria-current="page"] { color: var(--bbg-ink); font-weight: 600; }
.bb-glass .bbg-nav a svg { width: 19px; height: 19px; flex: none; }
.bb-glass .bbg-nav a > span:first-of-type { flex: 1; min-width: 0; }
.bb-glass .bbg-count { margin-left: auto; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 12px; display: grid; place-items: center; font-size: 12px; font-weight: 700; background: var(--bbg-berry-bg); color: var(--bbg-berry-ink); }
.bb-glass .bbg-queues a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 12px; font-size: 14px; font-weight: 500; color: var(--bbg-ink-2); text-decoration: none; }
.bb-glass .bbg-queues a:hover { background: rgba(255,255,255,.42); }
.bb-glass .bbg-queues a span { flex: 1; }
.bb-glass .bbg-queues b { font-size: 20px; font-weight: 300; letter-spacing: -.02em; color: var(--bbg-ink); font-variant-numeric: tabular-nums; }
.bb-glass .bbg-queues b.is-zero { color: var(--bbg-ink-3); }

/* Меню — толстое стекло, «плашка» (25.10, по образцу клиента): сквозь тело виден фон, кромка светится и
   преломляет. Слои: блик в углу + лёгкий молочный тон + размытая копия фона; ::before — узкая полоса по краю
   с несмазанным фоном, сдвинутым на несколько пикселей (так толстое стекло преломляет на скосе);
   ::after — светлый ободок, ярче сверху-слева и снизу-справа. Выбранный пункт — выпуклая стеклянная таблетка. */
.bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side) {
  isolation: isolate; border: 1px solid rgba(255,255,255,.38);
  background: radial-gradient(130% 55% at 0% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 50%), linear-gradient(165deg, rgba(255,255,255, var(--bbg-slab-a)), rgba(255,255,255, var(--bbg-slab-b))), var(--bbg-frost);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.12), inset 0 0 24px rgba(255,255,255,.42), inset 0 -10px 20px -14px rgba(255,255,255,.7),
              0 1px 0 rgba(255,255,255,.55), 0 30px 50px -26px rgba(36,48,96,.5), 0 10px 20px -12px rgba(36,48,96,.22);
}
.bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side)::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; padding: 4px;
  background: linear-gradient(rgba(255,255,255,.2), rgba(255,255,255,.2)) fixed, var(--bbg-bg-image) calc(50% - 6px) calc(62% - 6px) / cover no-repeat fixed;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side)::after {
  content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; pointer-events: none; padding: 1.5px;
  background: linear-gradient(145deg, #fff, rgba(255,255,255,.45) 22%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.4) 78%, rgba(255,255,255,.95));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.bb-glass :is(.bbg-nav a[aria-current="page"], .bbg-g[aria-pressed="true"]) {
  background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.5)); border-color: rgba(255,255,255,.95);
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 3px -1px rgba(255,255,255,.8), inset 0 0 10px rgba(255,255,255,.6),
              0 10px 18px -11px rgba(36,48,96,.55), 0 2px 4px -2px rgba(36,48,96,.2);
}

.bb-glass .bbg-main { min-width: 0; padding-top: 4px; }
.bb-glass .bbg-head { position: relative; z-index: 20; display: flex; align-items: center; gap: 12px; padding: 4px 2px 18px; }
/* заголовок сжимается и переносит слова — колокольчик остаётся справа в той же строке */
.bb-glass .bbg-titles { flex: 1 1 auto; min-width: 0; }
.bb-glass .bbg-head h1 { overflow-wrap: anywhere; text-wrap: balance; }
.bb-glass .bbg-head > :is(.bbg-round, .bbg-bell) { flex: none; }
.bb-glass .bbg-head h1 { margin: 0; font-size: 32px; font-weight: 600; letter-spacing: -.025em; line-height: 1.08; color: var(--bbg-ink); }
.bb-glass .bbg-head .bbg-date { display: block; font-size: 14.5px; font-weight: 500; color: var(--bbg-ink); margin-top: 3px; }
.bb-glass .bbg-head h1, .bb-glass .bbg-head .bbg-date { text-shadow: 0 0 14px rgba(255,255,255,.75), 0 0 2px rgba(255,255,255,.6); }
.bb-glass .bbg-grow { flex: 1; }
.bb-glass .bbg-round { width: 46px; height: 46px; border-radius: 50%; border: 0; display: grid; place-items: center; color: var(--bbg-ink-2); cursor: pointer; }
.bb-glass .bbg-menu-btn, .bb-glass .bbg-only-off { display: none; }
.bb-glass .bbg-shell.is-panel-off .bbg-only-off { display: grid; }
/* колокольчик (общий партиал): своя «пилюля» вокруг, выпадающий список — стекло */
.bb-glass .bbg-bell { border-radius: 50%; width: 46px; height: 46px; display: grid; place-items: center; }
.bb-glass .bbg-bell .header-bell { color: var(--bbg-ink-2); }
.bb-glass #notification-dropdown { background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.95); border-radius: 18px; box-shadow: var(--bbg-shadow); -webkit-backdrop-filter: blur(20px) saturate(160%); backdrop-filter: blur(20px) saturate(160%); }

.bb-glass .bbg-page { min-width: 0; }
.bb-glass .bbg-main:focus { outline: none; }
.bbg-skip { position: fixed; z-index: 100; left: 50%; transform: translateX(-50%); top: -64px; padding: 10px 16px; border-radius: 12px; background: var(--bbg-pine, #16323A); color: #fff; font-weight: 600; font-size: 14px; text-decoration: none; box-shadow: 0 12px 30px -12px rgba(20,30,46,.5); }
.bbg-skip:focus { top: 12px; }
.bb-glass .bbg-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bb-glass .bbg-alert { display: flex; gap: 12px; align-items: flex-start; margin-bottom: var(--bbg-gap); padding: 14px 18px; border-radius: 18px; font-size: 14px; border: 1px solid rgba(255,255,255,.8); box-shadow: var(--bbg-raise); }
.bb-glass .bbg-alert svg { width: 20px; height: 20px; flex: none; margin-top: 1px; }
.bb-glass .bbg-alert ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.bb-glass .bbg-alert.is-ok { background: var(--bbg-mint-bg); color: var(--bbg-mint-ink); }
.bb-glass .bbg-alert.is-err { background: var(--bbg-bad-bg); color: var(--bbg-bad-ink); }
.bb-glass .bbg-overlay { position: fixed; inset: 0; z-index: 45; background: rgba(20,30,46,.3); display: none; }

/* ── 6. Компоненты ── */
.bb-glass .bbg-card { min-width: 0; padding: 22px 24px; }
.bb-glass .bbg-card > header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; flex-wrap: wrap; }
.bb-glass .bbg-card > header h2 { margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -.005em; color: var(--bbg-ink); }
.bb-glass .bbg-more { margin-left: auto; font-size: 13.5px; font-weight: 600; color: var(--bbg-ink-2); padding: 6px 12px; border-radius: 999px; text-decoration: none; }
.bb-glass .bbg-more:hover { background: rgba(255,255,255,.6); color: var(--bbg-ink); }
.bb-glass .bbg-card.is-list { padding: 20px 0 8px; }
.bb-glass .bbg-card.is-list > header { padding: 0 24px; }
.bb-glass .bbg-pill { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.bb-glass .bbg-pill.is-up { background: var(--bbg-mint-bg); color: var(--bbg-mint-ink); }
.bb-glass .bbg-pill.is-hot { background: var(--bbg-berry-bg); color: var(--bbg-berry-ink); }
.bb-glass .bbg-pill.is-warn { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .bbg-pill.is-soft { background: rgba(255,255,255,.65); color: var(--bbg-ink-2); }
.bb-glass .bbg-big { font-size: 46px; font-weight: 300; letter-spacing: -.045em; line-height: 1; font-variant-numeric: tabular-nums; color: var(--bbg-ink); white-space: nowrap; }
.bb-glass .bbg-big small { font-size: .5em; font-weight: 400; margin-left: .14em; letter-spacing: 0; }
.bb-glass .bbg-btn { height: 44px; padding: 0 18px; border-radius: 999px; border: 0; font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; white-space: nowrap; text-decoration: none; transition: transform .12s, filter .15s; font-family: inherit; }
.bb-glass .bbg-btn:active { transform: translateY(1px); }
.bb-glass .bbg-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.bb-glass .bbg-btn.is-sm { height: 34px; padding: 0 13px; font-size: 13px; }
.bb-glass .bbg-btn-p { background: var(--bbg-pine); color: #fff; box-shadow: 0 12px 24px -14px rgba(10,30,36,.9), inset 0 1px 0 rgba(255,255,255,.16); }
.bb-glass .bbg-btn-p:hover { filter: brightness(1.25); }
.bb-glass .bbg-btn-g { color: var(--bbg-ink); }
.bb-glass .bbg-btn-g:hover { filter: brightness(1.03); }
.bb-glass .bbg-btn-ok { background: var(--bbg-mint-bg); color: var(--bbg-mint-ink); }
.bb-glass .bbg-btn-warn { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .bbg-btn-ok:hover:not(:disabled), .bb-glass .bbg-btn-warn:hover { filter: brightness(.97); }
.bb-glass .bbg-chip { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 8px; font-size: 12px; font-weight: 600; white-space: nowrap; background: var(--bbg-mute-bg); color: var(--bbg-mute-ink); }
.bb-glass .bbg-chip.is-ok { background: var(--bbg-mint-bg); color: var(--bbg-mint-ink); }
.bb-glass .bbg-chip.is-warn { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .bbg-chip.is-bad { background: var(--bbg-bad-bg); color: var(--bbg-bad-ink); }
.bb-glass .bbg-chip.is-info { background: var(--bbg-info-bg); color: var(--bbg-info-ink); }
.bb-glass .bbg-rows { list-style: none; margin: 0; padding: 0; }
.bb-glass .bbg-rows > li { border-top: 1px solid var(--bbg-line); }
.bb-glass .bbg-empty { margin: 4px 20px 12px; padding: 20px; border-radius: 16px; border: 1.5px dashed rgba(30,50,70,.22); text-align: center; color: var(--bbg-ink-3); font-size: 13.5px; }
.bb-glass .bbg-empty b { display: block; color: var(--bbg-ink-2); font-weight: 600; margin-bottom: 2px; }
.bb-glass .bbg-tbl { overflow-x: auto; }
.bb-glass .bbg-tbl table { width: 100%; border-collapse: collapse; }
.bb-glass .bbg-tbl th { text-align: left; font-size: 12.5px; font-weight: 600; color: var(--bbg-ink-3); padding: 9px 12px; border-top: 1px solid var(--bbg-line); border-bottom: 1px solid var(--bbg-line); white-space: nowrap; }
.bb-glass .bbg-tbl th:first-child, .bb-glass .bbg-tbl td:first-child { padding-left: 24px; }
.bb-glass .bbg-tbl th:last-child, .bb-glass .bbg-tbl td:last-child { padding-right: 24px; }
.bb-glass .bbg-tbl td { padding: 12px; border-top: 1px solid rgba(30,50,70,.07); font-size: 14px; color: var(--bbg-ink); }
.bb-glass .bbg-tbl tbody tr:hover td { background: rgba(255,255,255,.35); }
.bb-glass .bbg-tbl .is-n { text-align: right; font-variant-numeric: tabular-nums; }
.bb-glass .bbg-tbl td.is-n { font-weight: 600; }
.bb-glass .bbg-tbl td.is-id { color: var(--bbg-ink-3); font-variant-numeric: tabular-nums; }
.bb-glass .bbg-tbl td.is-dt { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bb-glass .bbg-tbl td.is-gu { white-space: nowrap; font-weight: 500; }
.bb-glass .bbg-tbl .bbg-sub { display: block; font-size: 12.5px; color: var(--bbg-ink-3); }

/* ── 7. Дашборд ── */
.bb-glass .bbg-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--bbg-gap); }
.bb-glass .bbg-s7 { grid-column: span 7; } .bb-glass .bbg-s5 { grid-column: span 5; } .bb-glass .bbg-s8 { grid-column: span 8; }
.bb-glass .bbg-s4 { grid-column: span 4; } .bb-glass .bbg-s3 { grid-column: span 3; } .bb-glass .bbg-s12 { grid-column: span 12; }
.bb-glass .bbg-stack { display: grid; gap: var(--bbg-gap); align-content: start; min-width: 0; }
.bb-glass .bbg-today { display: grid; gap: 18px; align-content: start; }
.bb-glass .bbg-today .bbg-top { display: flex; align-items: flex-end; gap: 18px; flex-wrap: wrap; }
.bb-glass .bbg-today .bbg-big { font-size: 84px; }
.bb-glass .bbg-today .bbg-top p { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.3; max-width: 22ch; padding-bottom: 8px; }
.bb-glass .bbg-qlist { display: grid; gap: 8px; }
.bb-glass .bbg-qlist a { display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 16px; border-radius: 15px; text-decoration: none; color: var(--bbg-ink); transition: transform .15s; }
.bb-glass .bbg-qlist a:hover { transform: translateY(-1px); }
.bb-glass .bbg-qlist a > span:first-child { flex: 1; font-weight: 600; font-size: 14.5px; }
.bb-glass .bbg-go { width: 32px; height: 32px; flex: none; border-radius: 50%; display: grid; place-items: center; background: rgba(22,50,58,.08); color: var(--bbg-ink); }
.bb-glass .bbg-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.bb-glass .bbg-statbar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; gap: 2px; margin: 6px 0 12px; background: rgba(30,50,70,.06); }
.bb-glass .bbg-statbar i { display: block; height: 100%; min-width: 3px; }
.bb-glass .bbg-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bb-glass .bbg-legend li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--bbg-ink-2); padding: 6px 0; border-top: 1px solid var(--bbg-line); }
.bb-glass .bbg-legend li:first-child { border-top: 0; }
.bb-glass .bbg-legend i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.bb-glass .bbg-legend b { margin-left: auto; font-weight: 600; color: var(--bbg-ink); font-variant-numeric: tabular-nums; }
.bb-glass .bbg-kpi { display: grid; gap: 8px; align-content: start; padding: 20px 22px 18px; }
.bb-glass .bbg-kpi .bbg-l { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13.5px; font-weight: 500; color: var(--bbg-ink-2); }
.bb-glass .bbg-kpi .bbg-big { font-size: clamp(32px, 2.9vw, 44px); }
.bb-glass .bbg-kpi .bbg-f { font-size: 12.5px; color: var(--bbg-ink-3); }
.bb-glass .bbg-mini { display: flex; height: 6px; border-radius: 3px; overflow: hidden; gap: 2px; margin-top: 4px; }
.bb-glass .bbg-mini i { display: block; height: 100%; min-width: 2px; }
.bb-glass .bbg-pend li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 10px 14px; align-items: start; padding: 14px 24px; }
.bb-glass .bbg-rows > li.is-empty { display: block; border-top: 0; padding: 4px 0; }
.bb-glass .bbg-pend .bbg-ph { width: 52px; height: 52px; border-radius: 15px; object-fit: cover; background: rgba(255,255,255,.6); box-shadow: inset 0 0 0 1px rgba(255,255,255,.6); }
.bb-glass .bbg-pend .bbg-t { min-width: 0; }
.bb-glass .bbg-pend .bbg-t > a { font-size: 15px; font-weight: 600; color: var(--bbg-ink); text-decoration: none; }
.bb-glass .bbg-pend .bbg-t > a:hover { text-decoration: underline; }
.bb-glass .bbg-pend .bbg-m { display: block; font-size: 12.5px; color: var(--bbg-ink-3); margin-top: 1px; overflow-wrap: anywhere; }
.bb-glass .bbg-pend .bbg-r { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.bb-glass .bbg-acts { grid-column: 2; display: flex; gap: 6px; flex-wrap: wrap; }
.bb-glass .bbg-acts form { margin: 0; }
.bb-glass .bbg-users li { display: flex; align-items: center; gap: 12px; padding: 11px 24px; }
.bb-glass .bbg-users .bbg-uav { width: 38px; height: 38px; border-radius: 50%; flex: none; display: grid; place-items: center; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .bbg-users .bbg-t { min-width: 0; flex: 1; }
.bb-glass .bbg-users .bbg-t b { display: block; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .bbg-users .bbg-t span { display: block; font-size: 12.5px; color: var(--bbg-ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── 8. Совместимость: страницы, ещё не переведённые на компоненты, — на утилитах Tailwind ──
   Верхние белые карточки становятся стеклом (без z-index и position у самой карточки — выпадающие элементы
   внутри перекрывают соседние карточки, как раньше). Вложенные белые элементы и окна — без изменений. */
.bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white) {
  background: radial-gradient(120% 60% at 0% 0%, rgba(255,255,255,.4), rgba(255,255,255,0) 55%), linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.46)), var(--bbg-frost);
  border-color: var(--bbg-edge); box-shadow: var(--bbg-shadow), inset 1px 1px 0 rgba(255,255,255,.7);
}
.bb-glass .bbg-page .rounded-2xl.bg-white:not(.bg-white .bg-white, .fixed .bg-white) { border-radius: 22px; }
/* окна поверх страницы — плотный белый, без стекла: под ними и так затемнение */
.bb-glass .bbg-page .fixed .bg-white:not(input, select, textarea, button) { background-color: rgba(255,255,255,.96); }
/* поля ввода — «утопленные» */
.bb-glass .bbg-page :is(input:not([type]), input[type=text], input[type=email], input[type=search], input[type=number], input[type=tel], input[type=url], input[type=password], input[type=date], input[type=datetime-local], input[type=time], select, textarea) {
  background-color: rgba(255,255,255,.66); border-color: rgba(30,50,70,.16); color: var(--bbg-ink);
}
.bb-glass .bbg-page :is(input, select, textarea):focus { background-color: rgba(255,255,255,.9); }
.bb-glass .bbg-page :is(input, select, textarea)::placeholder { color: #5E6E76; }
/* таблицы: ячейки чуть плотнее — рельса с панелью шире прежнего сайдбара, место для столбцов возвращаем здесь */
.bb-glass .bbg-page table :is(th, td).px-4 { padding-left: 12px; padding-right: 12px; }
.bb-glass .bbg-page table :is(th, td).px-6 { padding-left: 18px; padding-right: 18px; }
/* «Посещаемость» со своими встроенными стилями */
.bb-glass .bbg-page .ua-card { background: linear-gradient(160deg, rgba(255,255,255,.62), rgba(255,255,255,.48)), var(--bbg-frost); border-color: var(--bbg-edge); box-shadow: var(--bbg-shadow); border-radius: 22px; }
.bb-glass .bbg-page :is(.ua-tabs, .ua-periods) { background: rgba(255,255,255,.6); border-color: rgba(255,255,255,.85); }
.bb-glass .bbg-page :is(.ua-tabs, .ua-periods) a.is-on { background: var(--bbg-pine); }
.bb-glass .bbg-page .ua-filters :is(select, input) { background: rgba(255,255,255,.66); }
.bb-glass .bbg-page .ua-filters button { background: var(--bbg-pine); }
/* серые подписи «Посещаемости» (#8a8a8a / #5c5c5c во встроенных стилях) — на стекле им не хватает контраста */
.bb-glass .bbg-page :is(.ua-muted, .ua-sub, .ua-table th, .ua-extra, .ua-q, .ua-grid-line, .ua-xaxis, .ua-facts dt, .ua-tl time, .ua-tl .muted) { color: var(--bbg-ink-3); }
.bb-glass .bbg-page :is(.ua-tabs a, .ua-periods a, .ua-reset, .ua-online, .ua-tile p:first-child, .ua-biz span) { color: var(--bbg-ink-2); }
.bb-glass .bbg-page :is(.ua-tabs a.is-on, .ua-periods a.is-on) { color: #fff; }
.bb-glass .bbg-page .ua-muted:not(.ua-card .ua-muted) { color: var(--bbg-ink); }
/* всплывашки итогов действий (window.showToast в каркасе) */
.bb-glass #toast-container > div { background: rgba(255,255,255,.9); border-color: rgba(255,255,255,.95); border-radius: 18px; box-shadow: var(--bbg-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }

/* ── 9. Окно «Оформление» ── */
.bb-glass .bbg-modal-back { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 16px; background: rgba(20,30,46,.28); }
.bb-glass .bbg-modal-back[hidden] { display: none; }
.bb-glass .bbg-modal { width: min(640px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; padding: 22px 24px 20px; --bbg-glass-a: rgba(255,255,255,.86); --bbg-glass-b: rgba(255,255,255,.74); animation: bbg-rise .25s cubic-bezier(.2,.8,.2,1); }
@keyframes bbg-rise { from { opacity: 0; transform: translateY(10px) scale(.985); } }
.bb-glass .bbg-modal header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.bb-glass .bbg-modal h2 { margin: 0; font-size: 20px; font-weight: 600; }
.bb-glass .bbg-modal .bbg-hint { margin: 0 0 16px; font-size: 13.5px; color: var(--bbg-ink-2); }
.bb-glass .bbg-bgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bb-glass .bbg-bgopt { position: relative; display: grid; align-content: start; gap: 7px; padding: 6px 6px 10px; border-radius: 16px; border: 1.5px solid transparent; background: rgba(255,255,255,.5); cursor: pointer; text-align: left; font-family: inherit; color: var(--bbg-ink); transition: border-color .15s, transform .15s; }
.bb-glass .bbg-bgopt:hover { transform: translateY(-1px); border-color: rgba(22,50,58,.25); }
.bb-glass .bbg-bgopt[aria-pressed="true"] { border-color: var(--bbg-pine); box-shadow: var(--bbg-raise); background: rgba(255,255,255,.88); }
.bb-glass .bbg-bgopt .bbg-im { aspect-ratio: 16 / 10; max-width: 100%; border-radius: 11px; background: #E6E9EC center / cover no-repeat; box-shadow: inset 0 0 0 1px rgba(30,50,70,.08); }
.bb-glass .bbg-bgopt b { font-size: 13.5px; font-weight: 600; padding: 0 4px; }
.bb-glass .bbg-bgopt .bbg-d { font-size: 12px; color: var(--bbg-ink-3); padding: 0 4px; margin-top: -5px; }
.bb-glass .bbg-bgopt .bbg-ok { position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; border-radius: 50%; background: var(--bbg-pine); color: #fff; display: none; place-items: center; }
.bb-glass .bbg-bgopt[aria-pressed="true"] .bbg-ok { display: grid; }
.bb-glass .bbg-veil { display: grid; gap: 8px; margin-top: 18px; font-size: 14px; color: var(--bbg-ink-2); }
.bb-glass .bbg-veil span { display: flex; justify-content: space-between; }
.bb-glass .bbg-veil b { font-weight: 600; color: var(--bbg-ink); font-variant-numeric: tabular-nums; }
.bb-glass .bbg-veil input { width: 100%; accent-color: var(--bbg-pine); }
.bb-glass .bbg-modal footer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.bb-glass .bbg-modal .bbg-sec { margin: 0 0 10px; font-size: 14px; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .bbg-segs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--bbg-line); }
.bb-glass .bbg-seg { min-width: 0; margin: 0; padding: 0; border: 0; }
.bb-glass .bbg-seg legend { padding: 0; margin-bottom: 10px; font-size: 14px; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .bbg-seg > div { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 14px; background: rgba(30,50,70,.07); box-shadow: inset 0 1px 2px rgba(20,38,48,.08); }
.bb-glass .bbg-seg label { position: relative; }
.bb-glass .bbg-seg input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.bb-glass .bbg-seg label span { display: flex; align-items: center; justify-content: center; gap: 7px; height: 40px; padding: 0 10px; border-radius: 11px; font-size: 13.5px; font-weight: 500; color: var(--bbg-ink-2); transition: background .15s, color .15s, box-shadow .15s; }
.bb-glass .bbg-seg label:hover span { color: var(--bbg-ink); }
.bb-glass .bbg-seg input:checked + span { background: linear-gradient(180deg, #fff, rgba(255,255,255,.82)); color: var(--bbg-ink); font-weight: 600; box-shadow: 0 6px 12px -8px rgba(36,48,96,.55), inset 0 1px 0 #fff; }
.bb-glass .bbg-seg input:focus-visible + span { outline: 2px solid var(--bbg-pine); outline-offset: 2px; }
.bb-glass .bbg-seg p { margin: 8px 2px 0; font-size: 12.5px; line-height: 1.4; color: var(--bbg-ink-3); }
.bb-glass .bbg-save { flex: 1 1 200px; margin: 0; font-size: 13px; color: var(--bbg-mint-ink); }
.bb-glass .bbg-save.is-err { color: var(--bbg-bad-ink); }
@media (max-width: 560px) { .bb-glass .bbg-segs { grid-template-columns: minmax(0, 1fr); } }

/* ── 11. Кабинет бизнеса (layouts/business-glass, body.bbg-biz): рельса — разделы кабинета ссылками,
   панель — меню заведения (разделы-аккордеоны, как в прежнем сайдбаре) или разделы и свои заведения ── */
/* одна панель вместо рельсы и панели: сверху кабинет, внизу профиль */
.bbg-biz .bbg-shell { grid-template-columns: var(--bbg-panel-biz) minmax(0, 1fr); }
.bbg-biz .bbg-shell.is-panel-off { grid-template-columns: minmax(0, 1fr); }
.bbg-biz { --bbg-panel-biz: 276px; }
.bbg-biz .bbg-panel { padding: 12px 12px 10px; }
/* низ списка мягко затухает — видно, что меню можно прокрутить дальше */
.bbg-biz .bbg-scroll { padding-bottom: 18px; scroll-padding-bottom: 30px; -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent); }
.bb-glass .bbg-brand { display: flex; align-items: center; gap: 6px; padding: 0 0 12px; }
.bb-glass .bbg-brand-link { flex: 1; min-width: 0; display: flex; align-items: center; gap: 11px; padding: 4px; margin: -4px; border-radius: 16px; color: var(--bbg-ink); text-decoration: none; }
.bb-glass .bbg-brand-link:hover { background: rgba(255,255,255,.42); }
.bb-glass .bbg-brand .bbg-logo { width: 42px; height: 42px; border-radius: 14px; }
.bb-glass .bbg-brand-t { min-width: 0; display: grid; line-height: 1.2; }
.bb-glass .bbg-brand-t b { font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
.bb-glass .bbg-brand-t span { font-size: 12.5px; font-weight: 500; color: var(--bbg-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bb-glass .bbg-foot { position: relative; z-index: 6; display: flex; align-items: center; gap: 6px; margin: 8px -2px 0; padding: 10px 2px 0; border-top: 1px solid var(--bbg-line); }
.bb-glass .bbg-foot .bbg-me-btn { margin: 0; padding: 4px 6px 4px 4px; }
.bb-glass .bbg-foot .bbg-av { width: 36px; height: 36px; font-size: 14px; box-shadow: 0 0 0 2px rgba(255,255,255,.7); }
.bb-glass .bbg-foot .bbg-who b { font-size: 14px; }
.bb-glass .bbg-foot .bbg-who span { font-size: 12px; }
.bb-glass .bbg-foot .bbg-chev { opacity: .5; }
.bb-glass .bbg-foot .bbg-drop { top: auto; bottom: calc(100% + 6px); }
.bb-glass .bbg-plan { flex: none; display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); white-space: nowrap; }
.bb-glass .bbg-nav a .bbg-plan svg { width: 11px; height: 11px; }
.bb-glass .bbg-vip { margin: 8px 10px 0; display: inline-flex; padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .bbg-me-btn { flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 4px; margin: -4px; border: 0; border-radius: 16px; background: transparent; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.bb-glass .bbg-me-btn:hover { background: rgba(255,255,255,.42); }
.bb-glass .bbg-av { overflow: hidden; }
.bb-glass .bbg-av img { width: 100%; height: 100%; object-fit: cover; }
.bb-glass .bbg-drop { position: absolute; z-index: 7; top: calc(100% + 4px); left: 0; right: 0; padding: 6px; border-radius: 16px; background: rgba(255,255,255,.97); border: 1px solid rgba(255,255,255,.95); box-shadow: var(--bbg-shadow); }
.bb-glass .bbg-drop a, .bb-glass .bbg-drop button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 6px 10px; border: 0; border-radius: 11px; background: transparent; font: inherit; font-size: 14px; font-weight: 500; color: var(--bbg-ink); text-align: left; text-decoration: none; cursor: pointer; }
.bb-glass .bbg-drop a:hover, .bb-glass .bbg-drop button:hover { background: rgba(30,50,70,.06); }
.bb-glass .bbg-drop a[aria-current] { background: rgba(30,50,70,.07); font-weight: 600; }
.bb-glass .bbg-drop a > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .bbg-drop-list { max-height: 288px; overflow-y: auto; }
.bb-glass .bbg-drop-foot { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid var(--bbg-line); }
.bb-glass a.bbg-drop-foot { color: var(--bbg-ink-2); font-weight: 600; }
.bb-glass .bbg-drop .bbg-out { color: var(--bbg-bad-ink); }
.bb-glass .bbg-bath { position: relative; z-index: 5; display: grid; justify-items: start; gap: 8px; margin: 2px 0 10px; padding: 10px; border-radius: 18px; background: rgba(255,255,255,.34); border: 1px solid rgba(255,255,255,.6); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.bb-glass .bbg-bath-row { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; }
.bb-glass .bbg-bath-ph { width: 40px; height: 40px; flex: none; border-radius: 11px; overflow: hidden; background: rgba(30,50,70,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.6); }
.bb-glass .bbg-bath-ph.is-sm { width: 30px; height: 30px; border-radius: 9px; }
.bb-glass .bbg-bath-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bb-glass .bbg-bath-name { flex: 1; min-width: 0; display: flex; align-items: center; gap: 4px; padding: 4px 6px; margin: -4px -6px; border: 0; border-radius: 10px; background: transparent; font: inherit; color: var(--bbg-ink); text-align: left; }
.bb-glass button.bbg-bath-name { cursor: pointer; }
.bb-glass button.bbg-bath-name:hover { background: rgba(255,255,255,.5); }
.bb-glass .bbg-bath-name b { min-width: 0; font-size: 14.5px; font-weight: 600; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.bb-glass .bbg-bath-name svg { flex: none; color: var(--bbg-ink-3); }
.bb-glass .bbg-bath .bbg-drop { left: -1px; right: -1px; }
.bb-glass .bbg-progress { display: grid; gap: 5px; width: 100%; text-decoration: none; }
.bb-glass .bbg-progress > span { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--bbg-ink-2); }
.bb-glass .bbg-progress b { font-weight: 600; color: var(--bbg-ink); font-variant-numeric: tabular-nums; }
.bb-glass .bbg-progress:hover > span > span { text-decoration: underline; }
.bb-glass .bbg-progress > i { display: block; height: 6px; border-radius: 3px; background: rgba(30,50,70,.1); overflow: hidden; }
.bb-glass .bbg-progress > i > i { display: block; height: 100%; border-radius: 3px; background: var(--bbg-pine); }
.bb-glass .bbg-progress > i > i.is-done { background: var(--bbg-mint-ink); }
.bb-glass .bbg-grp-head { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 42px; padding: 0 10px; border: 1px solid transparent; border-radius: 13px; background: transparent; font: inherit; font-size: 14.5px; font-weight: 500; color: var(--bbg-ink-2); text-align: left; cursor: pointer; }
.bb-glass .bbg-grp-head:hover { background: rgba(255,255,255,.42); }
.bb-glass .bbg-grp-head.has-active { color: var(--bbg-ink); font-weight: 600; }
.bb-glass .bbg-grp-head > svg:first-child { width: 19px; height: 19px; flex: none; }
.bb-glass .bbg-grp-head > span:first-of-type { flex: 1; min-width: 0; line-height: 1.25; }
.bb-glass .bbg-chev { width: 15px; height: 15px; flex: none; opacity: .6; transition: transform .18s ease; }
.bb-glass .bbg-grp.is-open > .bbg-grp-head .bbg-chev { transform: rotate(90deg); }
.bb-glass .bbg-grp.is-open > .bbg-grp-head .bbg-grp-badge { display: none; }
.bb-glass .bbg-grp.is-muted > .bbg-grp-head { color: var(--bbg-ink-2); font-weight: 400; }
.bb-glass .bbg-grp-items { display: none; margin: 2px 0 6px 19px; padding-left: 9px; border-left: 1px solid rgba(30,50,70,.14); }
.bb-glass .bbg-grp.is-open > .bbg-grp-items { display: grid; gap: 2px; }
.bb-glass .bbg-grp-items > a { min-height: 38px; font-size: 14px; }
.bb-glass .bbg-grp-items > a > svg { display: none; }
.bb-glass .bbg-bathnav > a + a, .bb-glass .bbg-bathnav > .bbg-grp + a, .bb-glass .bbg-bathnav > a + .bbg-grp, .bb-glass .bbg-bathnav > .bbg-grp + .bbg-grp { margin-top: 2px; }
.bb-glass .bbg-nav a.is-dim { opacity: .62; cursor: not-allowed; }
.bb-glass .bbg-nav a.is-dim:hover { background: transparent; }
.bb-glass .bbg-nav a.is-hl { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .bbg-hl-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #C77A06; }
.bb-glass .bbg-navhint { margin: 8px 10px 0; font-size: 12.5px; line-height: 1.4; color: var(--bbg-ink-3); }
.bb-glass .bbg-bathlist a { min-height: 44px; }
.bb-glass .bbg-nav a > span.bbg-bath-ph, .bb-glass .bbg-drop a > span.bbg-bath-ph { flex: none; }
.bb-glass .bbg-bathlist a > span:last-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* свёрнутое меню кабинета (html.bbg-mini, только на широком экране): узкая стеклянная полоса с иконками пунктов —
   как прежний свёрнутый сайдбар: группы меню заведения развёрнуты в сплошной список с разделителями, названия —
   подсказками при наведении (подписи скрыты только визуально), фото заведения и «Общие разделы» разворачивают меню */
@media (min-width: 1025px) {
  .bbg-mini .bbg-biz .bbg-shell { grid-template-columns: 76px minmax(0, 1fr); }
  /* выше содержимого страницы: меню профиля выходит за полосу (окна страниц — ещё выше, z-index 50) */
  .bbg-mini .bbg-biz .bbg-panel { z-index: 30; overflow: visible; padding: 10px 8px 8px; }
  .bbg-mini .bbg-biz .bbg-brand { flex-direction: column; gap: 6px; padding-bottom: 8px; }
  .bbg-mini .bbg-biz .bbg-brand-link { flex: none; margin: 0; padding: 0; }
  .bbg-mini .bbg-biz .bbg-brand-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .bbg-mini .bbg-biz .bbg-scroll { scrollbar-width: none; }
  .bbg-mini .bbg-biz .bbg-scroll::-webkit-scrollbar { display: none; }
  .bbg-mini .bbg-biz .bbg-bath { justify-items: center; margin: 0 0 8px; padding: 0; background: none; border: 0; box-shadow: none; cursor: pointer; }
  .bbg-mini .bbg-biz .bbg-bath > :not(.bbg-bath-row), .bbg-mini .bbg-biz .bbg-bath-name { display: none; }
  .bbg-mini .bbg-biz .bbg-bath-row { justify-content: center; }
  .bbg-mini .bbg-biz .bbg-bath .bbg-bath-ph { width: 44px; height: 44px; border-radius: 13px; }
  .bbg-mini .bbg-biz .bbg-bath:hover .bbg-bath-ph { box-shadow: 0 0 0 2px var(--bbg-pine); }
  .bbg-mini .bbg-biz .bbg-nav a { position: relative; width: 46px; min-height: 42px; margin: 0 auto; padding: 0; gap: 0; justify-content: center; }
  .bbg-mini .bbg-biz .bbg-nav a > svg { display: block; }
  .bbg-mini .bbg-biz :is(.bbg-nav a > span:not(.bbg-count, .bbg-bath-ph), [data-nav-group="cabinet"] > .bbg-grp-head > span) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .bbg-mini .bbg-biz .bbg-nav a > .bbg-hl-dot { position: absolute; top: 6px; right: 7px; width: 7px; height: 7px; }
  .bbg-mini .bbg-biz .bbg-nav a > .bbg-count { position: absolute; top: 5px; right: 6px; width: 9px; min-width: 9px; height: 9px; padding: 0; font-size: 0; border-radius: 50%; background: var(--bbg-berry); box-shadow: 0 0 0 2px rgba(255,255,255,.95); }
  .bbg-mini .bbg-biz .bbg-grp-head { display: none; }
  .bbg-mini .bbg-biz .bbg-grp-items { display: grid; gap: 2px; margin: 0; padding: 0; border: 0; }
  .bbg-mini .bbg-biz .bbg-bathnav > .bbg-grp { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--bbg-line); }
  .bbg-mini .bbg-biz [data-nav-group="cabinet"] { margin-top: 0; padding-top: 0; border-top: 0; }
  .bbg-mini .bbg-biz [data-nav-group="cabinet"] > .bbg-grp-head { display: flex; width: 46px; min-height: 42px; margin: 0 auto; padding: 0; justify-content: center; }
  .bbg-mini .bbg-biz [data-nav-group="cabinet"] > .bbg-grp-head .bbg-chev { display: none; }
  .bbg-mini .bbg-biz [data-nav-group="cabinet"] > .bbg-grp-items { display: none; }
  .bbg-mini .bbg-biz :is(.bbg-navhint, .bbg-vip, .bbg-panel h2) { display: none; }
  .bbg-mini .bbg-biz .bbg-hr { margin: 8px 6px; }
  .bbg-mini .bbg-biz .bbg-foot { flex-direction: column; gap: 4px; margin-top: 6px; padding-top: 8px; }
  .bbg-mini .bbg-biz .bbg-foot .bbg-me-btn { flex: none; padding: 3px; }
  .bbg-mini .bbg-biz .bbg-foot :is(.bbg-who, .bbg-chev) { display: none; }
  .bbg-mini .bbg-biz .bbg-foot .bbg-drop { right: auto; width: 240px; }
}
/* шапка: путь к заведению, действия страницы, «Открыть на сайте» */
.bb-glass .bbg-crumb { margin: 0; display: flex; align-items: baseline; gap: 8px; min-width: 0; font-size: 15px; color: var(--bbg-ink-2); text-shadow: 0 0 12px rgba(255,255,255,.8); }
.bb-glass .bbg-crumb a { color: var(--bbg-ink); font-weight: 500; text-decoration: none; flex: none; }
.bb-glass .bbg-crumb a:hover { color: var(--bbg-ink); text-decoration: underline; }
.bb-glass .bbg-crumb a.is-back { display: inline-flex; align-items: center; gap: 3px; }
.bb-glass .bbg-crumb a.is-back svg { flex: none; margin-left: -3px; }
.bb-glass .bbg-crumb b { min-width: 0; font-size: 22px; font-weight: 600; letter-spacing: -.015em; color: var(--bbg-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .bbg-head-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; flex: none; }
.bb-glass .bbg-onsite { flex: none; height: 46px; }
/* плашки пробного периода */
.bbg-biz .bbg-alert { align-items: center; flex-wrap: wrap; }
.bb-glass .bbg-alert.is-warn { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bbg-biz .bbg-alert > span { flex: 1 1 260px; }
.bb-glass .bbg-alert form { margin: 0; }
.bb-glass .bbg-alert :is(a, form button) { font: inherit; font-weight: 600; color: inherit; text-decoration: underline; background: none; border: 0; padding: 0; cursor: pointer; }
.bb-glass .bbg-alert .bbg-alert-x { margin-left: auto; width: 32px; height: 32px; border: 0; border-radius: 10px; background: transparent; color: inherit; cursor: pointer; }
.bb-glass .bbg-alert .bbg-alert-x:hover { background: rgba(255,255,255,.5); }

/* ── 12. Личный кабинет гостя (account/layout, .bb-glass.bbg-acc внутри публичного каркаса) — устроен как кабинет
   бизнеса (.bbg-biz): шапки сайта нет, логотип сайта — наверху панели меню, заголовок раздела, его действия,
   «Все бани» и колокольчик — строкой страницы; подвал сайта остаётся. Шрифт — как у сайта. Фон лежит под содержимым
   страницы (z-index -1), чтобы подвал сайта рисовался поверх него. ── */
.bb-glass.bbg-acc { --bbg-font: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --bbg-top: 0px; min-height: 0; background: transparent; }
/* жёлтая полоса «подтвердите почту» и подсказка города в кабинете не показываются: почта — плашкой над содержимым
   (account/layout), город к кабинету не относится; на страницах сайта обе остаются */
body:has(.bbg-acc) :is(#email-verify-banner, #city-confirm-banner) { display: none !important; }
body:has(#email-verify-banner):has(.bbg-acc) main:not([data-home]) { padding-top: 0; }
.bbg-acc .bbg-bg { z-index: -1; }
/* на всю ширину экрана, как кабинет бизнеса и админка */
.bbg-acc .bbg-shell { min-height: calc(100vh - var(--bbg-top)); }
/* карточка пользователя: имя до двух строк, дата целиком */
.bb-glass .bbg-usercard .bbg-brand-t b { font-size: 15px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bb-glass .bbg-usercard .bbg-brand-t span { white-space: normal; line-height: 1.3; margin-top: 2px; }
.bbg-acc .bbg-panel { top: calc(var(--bbg-top) + var(--bbg-gap)); height: calc(100vh - var(--bbg-top) - var(--bbg-gap) * 2); height: calc(100dvh - var(--bbg-top) - var(--bbg-gap) * 2); }
/* панель сравнения бань (65 px) и баннер cookie (126 px) у нижнего края сайта: низ панели — над ними */
@media (min-width: 1025px) {
  body:has(#compare-bar:not(.hidden)) .bb-glass.bbg-acc .bbg-panel { height: calc(100vh - var(--bbg-top) - var(--bbg-gap) * 2 - 72px); height: calc(100dvh - var(--bbg-top) - var(--bbg-gap) * 2 - 72px); }
  body:has(#cookie-banner:not(.hidden)) .bb-glass.bbg-acc .bbg-panel { height: calc(100vh - var(--bbg-top) - var(--bbg-gap) * 2 - 132px); height: calc(100dvh - var(--bbg-top) - var(--bbg-gap) * 2 - 132px); }
}
.bb-glass .bbg-since { grid-column: 1 / -1; margin: 0; padding: 0 2px; font-size: 12px; color: var(--bbg-ink-2); }
.bb-glass .bbg-switch a.is-two { min-height: 54px; padding-top: 6px; padding-bottom: 6px; align-items: flex-start; }
.bb-glass .bbg-switch a.is-two > svg { margin-top: 2px; }
.bb-glass .bbg-switch a.is-two small { display: block; margin-top: 2px; font-size: 12px; font-weight: 400; line-height: 1.3; color: var(--bbg-ink-2); }
/* светлое стекло: переключатель темы сайта на страницах кабинета не нужен (выбор гостя в каталоге не меняется) */
body:has(.bbg-acc) [data-theme-toggle] { display: none !important; }
.bb-glass .bbg-usercard .bbg-av { width: 42px; height: 42px; font-size: 16px; }
.bb-glass .bbg-ustats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 12px; }
.bb-glass .bbg-ustats span { display: grid; gap: 1px; padding: 8px 10px; border-radius: 14px; background: rgba(255,255,255,.4); border: 1px solid rgba(255,255,255,.6); font-size: 12.5px; color: var(--bbg-ink-2); }
.bb-glass .bbg-ustats b { font-size: 20px; font-weight: 700; color: var(--bbg-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.bb-glass .bbg-switch a { color: var(--bbg-ink); font-weight: 600; }
.bb-glass .bbg-plan-row > span:first-of-type { display: grid; font-size: 12.5px; color: var(--bbg-ink-2); line-height: 1.3; }
.bb-glass .bbg-plan-row b { font-size: 13.5px; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .bbg-acc-foot { justify-content: space-between; }
.bb-glass .bbg-acc-foot form { margin: 0; }
.bb-glass .bbg-foot-btn { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 0; border-radius: 12px; background: transparent; font: inherit; font-size: 14px; font-weight: 500; color: var(--bbg-ink-2); cursor: pointer; }
.bb-glass .bbg-foot-btn:hover { background: rgba(255,255,255,.42); color: var(--bbg-ink); }
.bb-glass .bbg-foot-btn.bbg-out { color: var(--bbg-bad-ink); }
@media (min-width: 1025px) {
  .bbg-mini .bbg-acc .bbg-ustats { display: none; }
  .bbg-mini .bbg-acc .bbg-usercard .bbg-av { width: 44px; height: 44px; }
  .bbg-mini .bbg-acc .bbg-acc-foot { align-items: center; }
  .bbg-mini .bbg-acc .bbg-foot-btn { width: 46px; padding: 0; justify-content: center; }
  .bbg-mini .bbg-acc .bbg-foot-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 1024px) {
  /* выезжающее меню — под шапкой сайта (общие правила адаптива ниже по файлу, поэтому селектор сильнее) */
  .bb-glass.bbg-acc :is(.bbg-side, .bbg-overlay) { top: var(--bbg-top); }
  .bb-glass.bbg-acc .bbg-panel { top: auto; height: calc(100vh - var(--bbg-top) - 24px); height: calc(100dvh - var(--bbg-top) - 24px); }
}

/* ── 12.1. Верх панели кабинета гостя: логотип сайта (дорога на главную) и «Скрыть меню», под ними карточка гостя ── */
.bb-glass .bbg-site-logo { width: 42px; height: 42px; flex: none; border-radius: 14px; display: grid; place-items: center; background: var(--bbg-logo-plate);
  box-shadow: var(--bbg-logo-shadow); }
.bb-glass .bbg-site-logo img { width: 86%; height: 86%; display: block; }
.bb-glass .bbg-wordmark { font-size: 19px; font-weight: 700; letter-spacing: -.015em; color: var(--bbg-ink); }
.bb-glass .bbg-wordmark i { font-style: normal; background: linear-gradient(to bottom, #C98A12, #A85A0A); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.bb-glass.bbg-acc .bbg-brand { padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--bbg-line); }
.bb-glass.bbg-acc .bbg-usercard { flex: none; margin: 0 0 10px; }
@media (min-width: 1025px) {
  .bbg-mini .bbg-acc .bbg-brand { margin-bottom: 8px; }
  .bbg-mini .bbg-acc .bbg-usercard { margin: 0 auto 8px; padding: 0; }
  .bbg-mini .bbg-acc .bbg-usercard .bbg-brand-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
/* телефон: заголовок раздела переносится по словам, а не посреди слова */
@media (max-width: 480px) { .bb-glass.bbg-acc .bbg-head h1 { font-size: 22px; overflow-wrap: break-word; hyphens: manual; } }
/* плашка «подтвердите почту» над содержимым; кнопка — таблетка, а не подчёркнутая ссылка */
.bb-glass .bbg-acc-verify form button { padding: 7px 14px; border-radius: 10px; font-size: 13px; text-decoration: none; background: rgba(255,255,255,.7); box-shadow: inset 0 1px 0 #fff; white-space: nowrap; }
.bb-glass .bbg-acc-verify form button:hover { background: #fff; }

/* ── 12.2. Обращения в поддержку (support/index, support/show) — в обоих стеклянных кабинетах ── */
.bb-glass .bbg-chip.is-hot { background: var(--bbg-berry-bg); color: var(--bbg-berry-ink); }
.bb-glass .bbg-date .bbg-chip { margin-right: 6px; vertical-align: 1px; }
.bb-glass .sup-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--bbg-gap); align-items: start; }
/* список обращений */
.bb-glass .sup-list { padding: 6px; }
.bb-glass .sup-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.bb-glass .sup-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: center; padding: 14px 16px 14px 20px; border-radius: 16px; color: var(--bbg-ink); text-decoration: none; transition: background .15s; }
.bb-glass .sup-row:hover { background: rgba(255,255,255,.55); }
.bb-glass .sup-rows > li + li .sup-row::before { content: ""; position: absolute; left: 20px; right: 16px; top: -1px; height: 1px; background: var(--bbg-line); }
.bb-glass .sup-rows > li:hover + li .sup-row::before, .bb-glass .sup-rows > li:hover .sup-row::before { opacity: 0; }
/* поддержка ждёт ответа — полоска слева и лёгкий ягодный тон */
.bb-glass .sup-row.is-wait { background: linear-gradient(90deg, rgba(180,48,74,.09), rgba(180,48,74,0) 55%); }
.bb-glass .sup-row.is-wait::after { content: ""; position: absolute; left: 7px; top: 14px; bottom: 14px; width: 3px; border-radius: 2px; background: var(--bbg-berry); }
.bb-glass .sup-main { min-width: 0; display: grid; gap: 3px; }
.bb-glass .sup-main b { font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .sup-row.is-done .sup-main b { font-weight: 500; color: var(--bbg-ink-2); }
.bb-glass .sup-prev { font-size: 13.5px; color: var(--bbg-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-glass .sup-prev em { font-style: normal; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .sup-side { display: grid; justify-items: end; gap: 5px; }
.bb-glass .sup-meta { font-size: 12.5px; color: var(--bbg-ink-3); white-space: nowrap; }
.bb-glass .sup-pages { padding: 10px 14px 8px; }
.bb-glass .sup-empty { display: grid; justify-items: center; gap: 6px; padding: 52px 24px; text-align: center; color: var(--bbg-ink-2); }
.bb-glass .sup-empty-ic { width: 58px; height: 58px; margin-bottom: 6px; border-radius: 18px; display: grid; place-items: center; color: var(--bbg-ink-2); background: linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.55)); border: 1px solid rgba(255,255,255,.9); box-shadow: var(--bbg-raise); }
.bb-glass .sup-empty b { font-size: 16px; font-weight: 600; color: var(--bbg-ink); }
.bb-glass .sup-empty p { margin: 0; max-width: 360px; font-size: 14px; line-height: 1.5; }
/* новое обращение */
.bb-glass .sup-new { position: sticky; top: var(--bbg-gap); padding: 20px; scroll-margin-top: var(--bbg-gap); }
.bb-glass .sup-new h2 { margin: 0 0 14px; font-size: 17px; font-weight: 600; letter-spacing: -.01em; color: var(--bbg-ink); }
.bb-glass .sup-form { display: grid; gap: 16px; }
.bb-glass .sup-field { display: grid; gap: 6px; }
.bb-glass .sup-field > span, .bb-glass .sup-cats legend { font-size: 13px; font-weight: 600; color: var(--bbg-ink-2); }
.bb-glass :is(.sup-field input, .sup-field textarea, .sup-compose textarea) { display: block; width: 100%; padding: 11px 14px; border-radius: 13px; border: 1px solid rgba(30,50,70,.16); background: rgba(255,255,255,.8);
  font: inherit; font-size: 14.5px; line-height: 1.45; color: var(--bbg-ink); box-shadow: inset 0 1px 2px rgba(20,38,48,.06); transition: border-color .15s, box-shadow .15s, background .15s; }
.bb-glass :is(.sup-field input, .sup-field textarea, .sup-compose textarea)::placeholder { color: #6A7A82; }
.bb-glass :is(.sup-field input, .sup-field textarea, .sup-compose textarea):focus { outline: none; border-color: var(--bbg-pine); background: #fff; box-shadow: 0 0 0 3px rgba(22,50,58,.16); }
.bb-glass .sup-field textarea { resize: vertical; min-height: 120px; }
.bb-glass [aria-invalid="true"] { border-color: var(--bbg-bad-ink) !important; }
.bb-glass .sup-err { font-size: 12.5px; color: var(--bbg-bad-ink); }
.bb-glass .sup-cats { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.bb-glass .sup-cats legend { padding: 0; margin-bottom: 8px; }
.bb-glass .sup-cats > div { display: flex; flex-wrap: wrap; gap: 6px; }
.bb-glass .sup-cat { position: relative; }
.bb-glass .sup-cat input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.bb-glass .sup-cat span { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: 999px; font-size: 13.5px; font-weight: 500; color: var(--bbg-ink-2);
  background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.9); transition: background .15s, color .15s; }
.bb-glass .sup-cat:hover span { background: rgba(255,255,255,.88); color: var(--bbg-ink); }
.bb-glass .sup-cat input:checked + span { background: var(--bbg-pine); border-color: var(--bbg-pine); color: #fff; box-shadow: 0 8px 16px -10px rgba(10,30,36,.9); }
.bb-glass .sup-cat input:focus-visible + span { outline: 2px solid var(--bbg-pine); outline-offset: 2px; }
.bb-glass .sup-send { width: 100%; justify-content: center; }
/* переписка */
.bb-glass .sup-chat { display: flex; flex-direction: column; }
.bb-glass .sup-thread { list-style: none; margin: 0; padding: 22px 22px 10px; display: flex; flex-direction: column; gap: 10px; }
.bb-glass .sup-day { align-self: center; margin: 4px 0; }
.bb-glass .sup-day span { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--bbg-ink-2); background: rgba(255,255,255,.62); }
.bb-glass .sup-msg { display: flex; }
.bb-glass .sup-msg.is-mine { justify-content: flex-end; }
.bb-glass .sup-bubble { max-width: min(640px, 78%); padding: 9px 14px 7px; border-radius: 18px 18px 18px 6px; color: var(--bbg-ink);
  background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 8px 16px -12px rgba(36,48,96,.5); }
.bb-glass .sup-msg.is-mine .sup-bubble { border-radius: 18px 18px 6px 18px; background: var(--bbg-pine); border-color: var(--bbg-pine); color: #fff; }
.bb-glass .sup-who { display: block; margin-bottom: 2px; font-size: 12.5px; font-weight: 600; color: var(--bbg-ink-2); }
.bb-glass .sup-msg.is-admin .sup-who { color: #1F5670; }
.bb-glass .sup-msg.is-mine .sup-who { color: rgba(255,255,255,.78); }
.bb-glass .sup-bubble p { margin: 0; font-size: 14.5px; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.bb-glass .sup-bubble time { display: block; margin-top: 3px; font-size: 11.5px; text-align: right; color: var(--bbg-ink-3); font-variant-numeric: tabular-nums; }
.bb-glass .sup-msg.is-mine time { color: rgba(255,255,255,.72); }
.bb-glass .sup-sys { align-self: center; max-width: 560px; padding: 8px 14px; border-radius: 12px; font-size: 13px; line-height: 1.45; text-align: center; white-space: pre-line; background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bb-glass .sup-compose { display: grid; gap: 8px; margin: 6px 8px 8px; padding: 10px; border-radius: 18px; background: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.85); }
.bb-glass .sup-compose textarea { resize: none; min-height: 48px; max-height: 320px; background: rgba(255,255,255,.92); }
.bb-glass .sup-compose-bar { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.bb-glass .sup-hint { font-size: 12.5px; color: var(--bbg-ink-3); }
.bb-glass .sup-close { margin-right: auto; padding: 8px 10px; border: 0; border-radius: 10px; background: none; font: inherit; font-size: 13.5px; font-weight: 500; color: var(--bbg-ink-2); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.bb-glass .sup-close:hover { color: var(--bbg-ink); background: rgba(255,255,255,.6); }
.bb-glass .sup-closed { margin: 6px 8px 8px; padding: 14px 16px; border-radius: 16px; text-align: center; font-size: 14px; color: var(--bbg-ink-2); background: rgba(255,255,255,.55); }
.bb-glass .sup-closed a { font-weight: 600; color: var(--bbg-ink); text-decoration: underline; }
.bb-glass .bbg-head-acts form { margin: 0; }
@media (max-width: 1180px) {
  .bb-glass .sup-grid { grid-template-columns: minmax(0, 1fr); }
  .bb-glass .sup-new { position: static; }
  /* обращений ещё нет — форма первой */
  .bb-glass .sup-grid:has(.sup-empty) .sup-new { order: -1; }
}
@media (max-width: 640px) {
  .bb-glass .sup-row { grid-template-columns: minmax(0, 1fr); padding: 12px 12px 12px 18px; }
  .bb-glass .sup-main b { white-space: normal; }
  .bb-glass .sup-side { grid-auto-flow: column; justify-content: start; align-items: center; gap: 8px; }
  .bb-glass .sup-new { padding: 16px; }
  .bb-glass .sup-thread { padding: 14px 10px 8px; }
  .bb-glass .sup-bubble { max-width: 88%; }
  .bb-glass .sup-hint { display: none; }
  .bb-glass .sup-compose-bar { flex-wrap: wrap; }
  .bb-glass .sup-compose-bar .bbg-btn { width: 100%; justify-content: center; }
  .bb-glass .sup-close { order: 2; margin: 0 auto; }
}

/* ── 13. Плотность и стекло из «Оформления» (атрибуты на <html> ставит partials/glass/head) ──
   «Компактно» — отдельный набор размеров для всего кабинета, только на широком экране (на телефоне и планшете
   нужны крупные цели для пальца): уже панель меню и зазоры — шире содержимое; на страницах на утилитах Tailwind
   шкала отступов (--spacing 4 → 3 px на шаг), шрифтов (на ступень меньше; 12 px не уменьшаем — его ещё нужно
   читать) и скруглений; компоненты стекла — своими размерами ниже; сетка журнала записей — 36 px на час вместо 44
   (масштаб читает её скрипт, schedule.blade.php). */
@media (min-width: 1025px) {
  /* каркас */
  :root[data-density="compact"] .bb-glass { --bbg-gap: 8px; --bbg-panel: 224px; --bbg-rail: 60px; --bbg-r-xl: 18px; --bbg-r-lg: 14px; --bbg-r-md: 10px; }
  :root[data-density="compact"] .bbg-biz { --bbg-panel-biz: 248px; }
  :root[data-density="compact"].bbg-mini .bbg-biz .bbg-shell { grid-template-columns: 64px minmax(0, 1fr); }
  :root[data-density="compact"] .bb-glass .bbg-main { padding-top: 2px; }

  /* шкала страниц */
  :root[data-density="compact"] .bb-glass .bbg-page {
    --spacing: .1875rem;
    --text-xs--line-height: 1.3;
    --text-sm: .8125rem;  --text-sm--line-height: 1.38;
    --text-base: .875rem; --text-base--line-height: 1.45;
    --text-lg: 1rem;      --text-lg--line-height: 1.4;
    --text-xl: 1.0625rem; --text-xl--line-height: 1.35;
    --text-2xl: 1.25rem;  --text-2xl--line-height: 1.3;
    --text-3xl: 1.5rem;   --text-3xl--line-height: 1.25;
    --radius-lg: .4375rem; --radius-xl: .625rem; --radius-2xl: .8125rem; --radius-3xl: 1.125rem;
    font-size: 14px;
  }
  :root[data-density="compact"] .bb-glass .bbg-page .rounded-2xl.bg-white:not(.bg-white .bg-white, .fixed .bg-white) { border-radius: 16px; }
  /* таблицы страниц: высоту строки держат несколько строк текста — плотные отступы ячеек. Календарь (FullCalendar,
     .fc) тоже на таблицах — у него своя разметка, его не трогаем */
  :root[data-density="compact"] .bb-glass .bbg-page table :is(th, td):not(.fc *) { padding-top: 6px; padding-bottom: 6px; line-height: 1.3; }
  :root[data-density="compact"] .bb-glass .bbg-page table th:not(.fc *) { font-size: 11.5px; }

  /* панель меню */
  :root[data-density="compact"] .bb-glass .bbg-panel { padding: 10px 8px 8px; }
  :root[data-density="compact"] .bb-glass .bbg-brand { gap: 4px; padding-bottom: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-brand-link { gap: 9px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-brand .bbg-logo, .bbg-site-logo) { width: 34px; height: 34px; border-radius: 11px; }
  :root[data-density="compact"] .bb-glass .bbg-brand-t b { font-size: 14.5px; }
  :root[data-density="compact"] .bb-glass .bbg-brand-t span { font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-wordmark { font-size: 16px; }
  :root[data-density="compact"] .bb-glass.bbg-acc .bbg-brand { margin-bottom: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-usercard .bbg-av { width: 34px; height: 34px; font-size: 13px; }
  :root[data-density="compact"] .bb-glass .bbg-usercard .bbg-brand-t b { font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass.bbg-acc .bbg-usercard { margin-bottom: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-ustats { gap: 6px; margin-bottom: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-ustats span { grid-auto-flow: column; justify-content: start; align-items: baseline; gap: 5px; padding: 5px 8px; border-radius: 11px; font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-ustats b { font-size: 15px; }
  :root[data-density="compact"] .bb-glass .bbg-since { display: none; }
  :root[data-density="compact"] .bb-glass :is(.bbg-nav a, .bbg-grp-head) { min-height: 32px; gap: 9px; padding: 0 8px; border-radius: 10px; font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-nav a, .bbg-grp-head) > svg:first-child { width: 17px; height: 17px; }
  :root[data-density="compact"] .bb-glass .bbg-switch a.is-two { min-height: 44px; padding-top: 4px; padding-bottom: 4px; }
  :root[data-density="compact"] .bb-glass .bbg-switch a.is-two small { font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-count { min-width: 20px; height: 20px; padding: 0 6px; font-size: 11px; }
  :root[data-density="compact"] .bb-glass .bbg-panel h2 { padding: 8px 8px 4px; font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-hr { margin: 6px 6px 2px; }
  :root[data-density="compact"] .bb-glass .bbg-bath { gap: 6px; margin-bottom: 8px; padding: 8px; border-radius: 14px; }
  :root[data-density="compact"] .bb-glass .bbg-bath-ph { width: 34px; height: 34px; border-radius: 9px; }
  :root[data-density="compact"] .bb-glass .bbg-bath-name b { font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass .bbg-foot { margin-top: 6px; padding-top: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-foot .bbg-av { width: 30px; height: 30px; font-size: 12px; }
  :root[data-density="compact"] .bb-glass .bbg-foot .bbg-who b { font-size: 13px; }
  :root[data-density="compact"] .bb-glass .bbg-foot-btn { height: 34px; padding: 0 10px; font-size: 13px; }
  :root[data-density="compact"] .bb-glass .bbg-queues a { padding: 5px 8px; font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass .bbg-queues b { font-size: 17px; }
  :root[data-density="compact"] .bb-glass .bbg-rail { gap: 3px; padding: 8px 0; border-radius: 18px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-g, .bbg-logo) { width: 40px; height: 40px; border-radius: 12px; }
  :root[data-density="compact"] .bb-glass .bbg-g svg { width: 19px; height: 19px; }
  :root[data-density="compact"] .bb-glass .bbg-rail-foot :is(a, button) { width: 40px; height: 38px; }

  /* строка страницы и кнопки */
  :root[data-density="compact"] .bb-glass .bbg-head { gap: 10px; padding: 0 2px 10px; }
  :root[data-density="compact"] .bb-glass .bbg-head h1 { font-size: 22px; letter-spacing: -.015em; }
  :root[data-density="compact"] .bb-glass .bbg-head .bbg-date { margin-top: 1px; font-size: 13px; }
  :root[data-density="compact"] .bb-glass .bbg-crumb b { font-size: 17px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-round, .bbg-bell) { width: 38px; height: 38px; }
  :root[data-density="compact"] .bb-glass .bbg-btn { height: 36px; padding: 0 14px; gap: 7px; font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass .bbg-btn.is-sm { height: 30px; padding: 0 11px; font-size: 12.5px; }
  :root[data-density="compact"] .bb-glass .bbg-onsite { height: 38px; }
  :root[data-density="compact"] .bb-glass .bbg-icon-btn { width: 32px; height: 32px; border-radius: 10px; }

  /* карточки, плашки, списки */
  :root[data-density="compact"] .bb-glass .bbg-card { padding: 14px 16px; }
  :root[data-density="compact"] .bb-glass .bbg-card > header { margin-bottom: 8px; }
  :root[data-density="compact"] .bb-glass .bbg-card > header h2 { font-size: 15px; }
  :root[data-density="compact"] .bb-glass .bbg-card.is-list { padding: 12px 0 4px; }
  :root[data-density="compact"] .bb-glass .bbg-card.is-list > header { padding: 0 16px; }
  :root[data-density="compact"] .bb-glass .bbg-big { font-size: 34px; }
  :root[data-density="compact"] .bb-glass .bbg-pill { height: 22px; padding: 0 8px; font-size: 12px; }
  :root[data-density="compact"] .bb-glass .bbg-chip { height: 20px; padding: 0 7px; border-radius: 7px; font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-alert { gap: 10px; padding: 9px 12px; border-radius: 14px; font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass .bbg-alert svg { width: 18px; height: 18px; }
  :root[data-density="compact"] .bb-glass .bbg-tbl th { padding: 5px 10px; font-size: 11.5px; }
  :root[data-density="compact"] .bb-glass .bbg-tbl td { padding: 6px 10px; font-size: 13px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-tbl th, .bbg-tbl td):first-child { padding-left: 16px; }
  :root[data-density="compact"] .bb-glass :is(.bbg-tbl th, .bbg-tbl td):last-child { padding-right: 16px; }
  :root[data-density="compact"] .bb-glass .bbg-users li { gap: 10px; padding: 6px 16px; }
  :root[data-density="compact"] .bb-glass .bbg-users .bbg-uav { width: 30px; height: 30px; font-size: 12px; }
  :root[data-density="compact"] .bb-glass .bbg-pend li { gap: 8px 12px; padding: 9px 16px; }
  :root[data-density="compact"] .bb-glass .bbg-empty { margin: 4px 16px 10px; padding: 14px; }

  /* поддержка */
  :root[data-density="compact"] .bb-glass .sup-row { gap: 4px 16px; padding: 8px 12px 8px 18px; border-radius: 12px; }
  :root[data-density="compact"] .bb-glass .sup-main b { font-size: 14px; }
  :root[data-density="compact"] .bb-glass .sup-prev { font-size: 12.5px; }
  :root[data-density="compact"] .bb-glass .sup-new { padding: 14px; }
  :root[data-density="compact"] .bb-glass .sup-form { gap: 12px; }
  :root[data-density="compact"] .bb-glass :is(.sup-field input, .sup-field textarea, .sup-compose textarea) { padding: 8px 12px; border-radius: 11px; font-size: 13.5px; }
  :root[data-density="compact"] .bb-glass .sup-cat span { height: 30px; padding: 0 11px; font-size: 12.5px; }
  :root[data-density="compact"] .bb-glass .sup-thread { gap: 6px; padding: 14px 16px 6px; }
  :root[data-density="compact"] .bb-glass .sup-bubble { padding: 7px 12px 6px; }
  :root[data-density="compact"] .bb-glass .sup-bubble p { font-size: 13.5px; line-height: 1.45; }

  /* журнал записей: панель даты, показатели, сетка */
  :root[data-density="compact"] .bb-glass #schedule-app { --sc-hour: 36px; }
  :root[data-density="compact"] .bb-glass .sk-card { min-width: 132px; gap: 9px; padding: 7px 12px; }
  /* бронь в 1 ч — 32 px: время и имя гостя помещаются при меньших внутренних отступах (у карточки они в style) */
  :root[data-density="compact"] .bb-glass .sched-card { padding-top: 2px !important; padding-bottom: 2px !important; line-height: 1.2 !important; }
  :root[data-density="compact"] .bb-glass :is(.sj-arrow, .sj-today, .sj-date-btn, .sj-search input) { height: 34px; }
  :root[data-density="compact"] .bb-glass .sj-arrow { width: 34px; }
  :root[data-density="compact"] .bb-glass .sj-date-btn { font-size: 14px; }
  :root[data-density="compact"] .bb-glass .sk-icon { width: 30px; height: 30px; }

  /* календарь броней (FullCalendar, сам #owner-calendar — .fc): размеры в em — меньше шрифт; высоту клетки держат
     зона событий (2em) и отступ под ней (1em) — плотнее */
  :root[data-density="compact"] .bb-glass .bbg-page #owner-calendar.fc { font-size: 12.5px; }
  :root[data-density="compact"] .bb-glass .bbg-page #owner-calendar .fc-daygrid-day-events { min-height: 1.6em; margin-bottom: .3em; }
  :root[data-density="compact"] .bb-glass .bbg-page #owner-calendar .fc-daygrid-day-number { padding: 2px 6px; }
  :root[data-density="compact"] .bb-glass .bbg-page #owner-calendar .fc-header-toolbar { margin-bottom: .9em; }
}
/* Плотное стекло: молочный тон гуще, фон сквозь панели и карточки едва виден — текст читается на любом фоне.
   Ниже по файлу, чем тона фонов (:root[data-bg]), поэтому перебивает их. */
:root[data-glass="solid"] { --bbg-slab-a: .82; --bbg-slab-b: .72; }
:root[data-glass="solid"] .bb-glass { --bbg-glass-a: rgba(255,255,255,.9); --bbg-glass-b: rgba(255,255,255,.8); --bbg-edge: rgba(255,255,255,.9); }
:root[data-glass="solid"] .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white) {
  background: linear-gradient(160deg, rgba(255,255,255,.92), rgba(255,255,255,.84)), var(--bbg-frost);
}
:root[data-glass="solid"] .bb-glass .bbg-page .ua-card { background: linear-gradient(160deg, rgba(255,255,255,.92), rgba(255,255,255,.84)), var(--bbg-frost); }
:root[data-glass="solid"] .bb-glass .bbg-page :is(input:not([type]), input[type=text], input[type=email], input[type=search], input[type=number], input[type=tel], input[type=url], input[type=password], input[type=date], input[type=datetime-local], input[type=time], select, textarea) { background-color: #fff; }

/* ── 10. Адаптив и доступность ── */
@media (max-width: 1360px) { .bb-glass .bbg-s7, .bb-glass .bbg-s5 { grid-column: span 12; } .bb-glass .bbg-s3 { grid-column: span 6; } .bb-glass .bbg-today .bbg-big { font-size: 72px; } }
@media (max-width: 1180px) { .bb-glass .bbg-s8, .bb-glass .bbg-s4 { grid-column: span 12; } }
/* невысокие экраны (ноутбук с панелями браузера): рельса плотнее, чтобы все разделы помещались без прокрутки */
@media (max-height: 820px) {
  .bb-glass .bbg-rail { gap: 3px; padding: 10px 0; }
  .bb-glass :is(.bbg-g, .bbg-logo) { width: 42px; height: 42px; }
  .bb-glass .bbg-rail .bbg-sep { margin: 4px 0; }
  .bb-glass .bbg-rail-col { gap: 8px; }
  .bb-glass .bbg-rail-foot { padding: 6px 0; gap: 2px; }
  .bb-glass .bbg-rail-foot :is(a, button) { height: 38px; }
}
@media (max-width: 1024px) {
  .bb-glass .bbg-shell, .bb-glass .bbg-shell.is-panel-off { grid-template-columns: minmax(0, 1fr); }
  /* закрытое меню скрыто и от клавиатуры (visibility), иначе Tab уходит в невидимые ссылки */
  .bb-glass .bbg-side { display: flex; position: fixed; z-index: 50; top: 0; bottom: 0; left: 0; gap: 10px; padding: 12px; padding-left: max(12px, env(safe-area-inset-left, 0px)); transform: translateX(-105%); visibility: hidden; transition: transform .3s cubic-bezier(.2,.8,.2,1), visibility 0s linear .3s; }
  .bb-glass .bbg-side.is-open { transform: none; visibility: visible; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
  .bb-glass .bbg-overlay.is-on { display: block; }
  /* открытое меню не перекрывает кнопка чата поддержки (она поверх страницы) */
  body.bbg-drawer-open :is(#support-widget-root, #compare-bar, #cookie-banner, #city-confirm-banner) { visibility: hidden; }
  .bb-glass .bbg-rail-col { position: static; height: calc(100vh - 24px); height: calc(100dvh - 24px); }
  .bb-glass .bbg-panel { position: relative; top: auto; height: calc(100vh - 24px); height: calc(100dvh - 24px); }
  .bb-glass .bbg-shell.is-panel-off .bbg-panel { display: flex; }
  .bb-glass .bbg-panel { width: min(264px, calc(100vw - 108px)); }
  .bbg-biz .bbg-panel { width: min(300px, calc(100vw - 32px)); }
  .bb-glass .bbg-menu-btn { display: grid; }
  .bb-glass .bbg-only-off, .bb-glass .bbg-shell.is-panel-off .bbg-only-off { display: none; }
}
@media (max-width: 640px) {
  .bb-glass .bbg-head h1 { font-size: 26px; }
  .bb-glass .bbg-head { flex-wrap: wrap; }
  .bb-glass .bbg-titles { flex-basis: 0; }
  .bb-glass .bbg-head-acts { order: 5; flex-basis: 100%; }
  .bb-glass .bbg-onsite { width: 46px; padding: 0; justify-content: center; border-radius: 50%; }
  .bb-glass .bbg-onsite span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .bb-glass .bbg-crumb { flex-direction: column; gap: 0; }
  .bb-glass .bbg-crumb > span { display: none; }
  .bb-glass .bbg-crumb b { font-size: 19px; max-width: 100%; }
  .bb-glass .bbg-s3 { grid-column: span 12; }
  .bb-glass .bbg-card { padding: 18px; } .bb-glass .bbg-card.is-list > header { padding: 0 18px; }
  .bb-glass .bbg-today .bbg-top { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; column-gap: 14px; }
  .bb-glass .bbg-today .bbg-big { font-size: 64px; } .bb-glass .bbg-today .bbg-top p { font-size: 16px; }
  .bb-glass .bbg-pend li { grid-template-columns: 44px minmax(0, 1fr); padding: 12px 18px; } .bb-glass .bbg-pend .bbg-ph { width: 44px; height: 44px; } .bb-glass .bbg-acts { grid-column: 1 / -1; }
  .bb-glass .bbg-users li { padding-left: 18px; padding-right: 18px; }
  .bb-glass .bbg-bgs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* таблица дашборда — карточками */
  .bb-glass .bbg-tbl.is-cards thead { display: none; }
  .bb-glass .bbg-tbl.is-cards :is(table, tbody, tr, td) { display: block; width: 100%; }
  .bb-glass .bbg-tbl.is-cards tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 12px 18px; border-top: 1px solid var(--bbg-line); }
  .bb-glass .bbg-tbl.is-cards td { padding: 0 !important; border: 0; }
  .bb-glass .bbg-tbl.is-cards tbody tr:hover td { background: none; }
  .bb-glass .bbg-tbl.is-cards td.is-id { font-size: 12px; } .bb-glass .bbg-tbl.is-cards td.is-st { grid-column: 2; grid-row: 1; }
  .bb-glass .bbg-tbl.is-cards td.is-gu, .bb-glass .bbg-tbl.is-cards td.is-bt { grid-column: 1 / -1; }
  .bb-glass .bbg-tbl.is-cards td.is-bt .bbg-sub { display: inline; } .bb-glass .bbg-tbl.is-cards td.is-bt .bbg-sub::before { content: " · "; }
  .bb-glass .bbg-tbl.is-cards td.is-dt { color: var(--bbg-ink-3); font-size: 13px; } .bb-glass .bbg-tbl.is-cards td.is-n { grid-column: 2; text-align: right; }
}
/* ── 14. Вход (auth/login: /auth/login и /dashboard/login) — стеклянная страница в каркасе сайта, без шапки:
   слева плашка «Кто входит?» (то же толстое стекло, что у меню кабинетов), справа карточка с формой. Выбранная
   дверь — выпуклая таблетка, как выбранный пункт меню, и раскрывает, что внутри кабинета. Тексты двери
   (заголовок, регистрация, Яндекс ID) переключает выбранная радиокнопка. Шрифт — как у сайта. ── */
.bb-glass.bbg-auth { --bbg-font: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; min-height: 0; background: transparent; }
.bbg-auth .bbg-bg { z-index: -1; }
/* подсказка города и полоса «подтвердите почту» на страницах входа не нужны: почту подтверждают своей страницей */
body:has(.bbg-auth) :is(#city-confirm-banner, #email-verify-banner) { display: none !important; }
body:has(#email-verify-banner):has(.bbg-auth) main:not([data-home]) { padding-top: 0; }
.bbg-auth:has(#au-door-business:checked) [data-door-only="client"],
.bbg-auth:has(#au-door-client:checked) [data-door-only="business"] { display: none !important; }
.bbg-auth .bbg-au { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; gap: 24px; padding: 28px max(16px, env(safe-area-inset-right, 0px)) 20px max(16px, env(safe-area-inset-left, 0px)); }
/* карточка — посередине свободного места, подвал страницы — внизу экрана */
.bbg-auth .bbg-au-main { flex: 1; width: 100%; display: grid; place-items: center; }
/* баннер cookie у нижнего края — карточка над ним */
body:has(#cookie-banner:not(.hidden)) .bbg-auth .bbg-au { padding-bottom: 150px; }
.bbg-auth .bbg-au-grid { width: 100%; max-width: 1000px; display: grid; grid-template-columns: 350px minmax(0, 1fr); gap: 14px; align-items: stretch; }
/* длинная форма (регистрация): плашка не тянется на всю высоту, а едет рядом с формой */
.bbg-auth .bbg-au-grid.is-tall { align-items: start; }
.bbg-auth .bbg-au-grid.is-tall .bbg-au-side { position: sticky; top: 24px; }

.bbg-auth .bbg-au-side { position: relative; min-width: 0; display: flex; flex-direction: column; padding: 18px 16px; border-radius: var(--bbg-r-xl); }
.bbg-auth .bbg-brand { padding: 0 0 14px; border-bottom: 1px solid var(--bbg-line); }
.bbg-auth .bbg-brand-t .bbg-wordmark { font-size: 20px; }
.bbg-auth .bbg-au-home { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--bbg-ink-2); text-decoration: none; }
.bbg-auth .bbg-au-home:hover { background: rgba(255,255,255,.6); color: var(--bbg-ink); }
.bbg-auth .bbg-au-doors { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.bbg-auth .bbg-au-doors legend { padding: 18px 4px 12px; font-size: 18px; font-weight: 700; letter-spacing: -.015em; color: var(--bbg-ink); }
.bbg-auth .bbg-au-door { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) 24px; column-gap: 12px; align-items: center; padding: 12px; border-radius: 18px;
  border: 1px solid rgba(255,255,255,.4); background: rgba(255,255,255,.2); cursor: pointer; transition: background .15s, border-color .15s, box-shadow .2s; }
.bbg-auth .bbg-au-door:hover { background: rgba(255,255,255,.46); }
.bbg-auth .bbg-au-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.6); color: var(--bbg-ink-2); box-shadow: inset 0 1px 0 rgba(255,255,255,.95); transition: background .2s, color .2s; }
.bbg-auth .bbg-au-dt { min-width: 0; display: grid; gap: 1px; }
.bbg-auth .bbg-au-dt b { font-size: 16px; font-weight: 700; letter-spacing: -.01em; color: var(--bbg-ink); }
.bbg-auth .bbg-au-dt span { font-size: 13px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-tick { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid rgba(30,50,70,.28); color: transparent; transition: background .15s, border-color .15s; }
.bbg-auth .bbg-au-pts { grid-column: 2 / -1; display: none; gap: 6px; margin: 0; padding: 0; list-style: none; }
.bbg-auth .bbg-au-pts li { position: relative; padding-left: 15px; font-size: 13.5px; line-height: 1.35; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-pts li::before { content: ""; position: absolute; left: 1px; top: .52em; width: 6px; height: 6px; border-radius: 50%; background: var(--bbg-pine); opacity: .5; }
.bbg-auth input:checked + .bbg-au-door { background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.56)); border-color: rgba(255,255,255,.95);
  box-shadow: inset 0 1px 0 #fff, inset 0 -2px 3px -1px rgba(255,255,255,.8), inset 0 0 10px rgba(255,255,255,.6), 0 14px 24px -14px rgba(36,48,96,.6), 0 2px 4px -2px rgba(36,48,96,.2); }
.bbg-auth input:checked + .bbg-au-door .bbg-au-ic { background: var(--bbg-pine); color: #fff; box-shadow: 0 10px 18px -10px rgba(10,30,36,.85), inset 0 1px 0 rgba(255,255,255,.16); }
.bbg-auth input:checked + .bbg-au-door .bbg-au-tick { background: var(--bbg-pine); border-color: var(--bbg-pine); color: #fff; }
.bbg-auth input:checked + .bbg-au-door .bbg-au-pts { display: grid; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--bbg-line); animation: bbg-au-in .25s ease; }
.bbg-auth input:focus-visible + .bbg-au-door { outline: 2px solid var(--bbg-pine); outline-offset: 2px; }
@keyframes bbg-au-in { from { opacity: 0; transform: translateY(-4px); } }
.bbg-auth .bbg-au-note { margin: auto 4px 0; padding-top: 18px; font-size: 12.5px; line-height: 1.45; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-note p { margin: 0; }
/* помощь, если вход не удаётся, — внизу плашки, отделена линией */
.bbg-auth .bbg-au-help { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px !important; padding-top: 14px; border-top: 1px solid var(--bbg-line); font-size: 13.5px; color: var(--bbg-ink); }
.bbg-auth .bbg-au-help svg { flex: none; margin-top: 2px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-help a { font-weight: 700; color: var(--bbg-pine); text-decoration: underline; text-decoration-color: rgba(22,50,58,.3); text-underline-offset: 3px; }
.bbg-auth .bbg-au-help a:hover { text-decoration-color: currentColor; }

.bbg-auth .bbg-au-card { min-width: 0; display: grid; place-items: center; min-height: 600px; padding: 44px 40px; }
.bbg-auth .bbg-au-form { width: 100%; max-width: 420px; }
.bbg-auth .bbg-au-place { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 6px 12px; border-radius: 999px; background: var(--bbg-info-bg); color: var(--bbg-info-ink); font-size: 13px; font-weight: 600; }
.bbg-auth .bbg-au-place svg { flex: none; }
.bbg-auth .bbg-au-form h1 { margin: 0; font-size: 30px; font-weight: 700; line-height: 1.12; letter-spacing: -.025em; color: var(--bbg-ink); text-wrap: balance; }
.bbg-auth .bbg-au-sub { display: none; margin: 6px 0 0; font-size: 14px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-reg { margin: 10px 0 26px; font-size: 14.5px; color: var(--bbg-ink-2); }
.bbg-auth :is(.bbg-au-reg, .bbg-au-lrow) a { color: var(--bbg-pine); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(22,50,58,.3); text-underline-offset: 3px; }
.bbg-auth :is(.bbg-au-reg, .bbg-au-lrow) a:hover { text-decoration-color: currentColor; }
.bbg-auth .bbg-alert { margin-bottom: 18px; }
.bbg-auth .bbg-au-fields { display: grid; gap: 16px; margin: 0; }
.bbg-auth .bbg-au-field label { display: block; margin-bottom: 7px; font-size: 14px; font-weight: 600; color: var(--bbg-ink); }
.bbg-auth .bbg-au-lrow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.bbg-auth .bbg-au-lrow a { font-size: 13px; font-weight: 600; }
.bbg-auth .bbg-au-input { position: relative; }
.bbg-auth .bbg-au-input > svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--bbg-ink-3); pointer-events: none; }
.bbg-auth .bbg-au-input input { width: 100%; height: 54px; padding: 0 16px 0 48px; border: 1px solid rgba(30,50,70,.18); border-radius: 15px; background: rgba(255,255,255,.74);
  font: inherit; font-size: 16px; color: var(--bbg-ink); box-shadow: inset 0 1px 2px rgba(30,50,70,.08); transition: border-color .15s, background .15s, box-shadow .15s; }
.bbg-auth .bbg-au-input input::placeholder { color: #66757C; }
.bbg-auth .bbg-au-input input:focus { outline: none; background: #fff; border-color: var(--bbg-pine); box-shadow: 0 0 0 4px rgba(22,50,58,.14); }
.bbg-auth .bbg-au-input input[aria-invalid="true"] { border-color: var(--bbg-bad-ink); }
.bbg-auth .bbg-au-input input[readonly] { background: rgba(255,255,255,.38); color: var(--bbg-ink-2); box-shadow: none; }
.bbg-auth .bbg-au-input input.has-eye { padding-right: 54px; }
.bbg-auth .bbg-au-eye { position: absolute; right: 6px; top: 50%; width: 42px; height: 42px; transform: translateY(-50%); border: 0; border-radius: 12px; background: transparent; color: var(--bbg-ink-2); display: grid; place-items: center; cursor: pointer; }
.bbg-auth .bbg-au-eye:hover { background: rgba(30,50,70,.07); color: var(--bbg-ink); }
.bbg-auth .bbg-au-eye svg { width: 20px; height: 20px; }
.bbg-auth .bbg-au-eye .is-hide, .bbg-auth .bbg-au-eye[aria-pressed="true"] .is-show { display: none; }
.bbg-auth .bbg-au-eye[aria-pressed="true"] .is-hide { display: block; }
.bbg-auth .bbg-au-caps { margin: 7px 0 0; font-size: 13px; font-weight: 600; color: var(--bbg-warn-ink); }
.bbg-auth .bbg-au-check { justify-self: start; display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--bbg-ink-2); cursor: pointer; }
.bbg-auth .bbg-au-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--bbg-pine); }
.bbg-auth .bbg-au-submit { width: 100%; height: 54px; margin-top: 4px; justify-content: center; border-radius: 15px; font-size: 15.5px; }
.bbg-auth .bbg-au-submit svg { transition: transform .15s; }
.bbg-auth .bbg-au-submit:hover svg { transform: translateX(3px); }
.bbg-auth .bbg-au-or { display: flex; align-items: center; gap: 14px; margin: 22px 0; font-size: 13px; color: var(--bbg-ink-3); }
.bbg-auth .bbg-au-or::before, .bbg-auth .bbg-au-or::after { content: ""; flex: 1; height: 1px; background: var(--bbg-line); }
.bbg-auth .bbg-au-ya { width: 100%; height: 52px; justify-content: center; border-radius: 15px; font-size: 15px; color: var(--bbg-ink); }
.bbg-auth .bbg-au-ya:hover { background: #fff; }
.bbg-auth .bbg-au-ya-i { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #FC3F1D; color: #fff; font-size: 15px; font-weight: 700; }
/* шаги владельца после регистрации — по номерам */
.bbg-auth .bbg-au-pts.is-steps { counter-reset: au-step; gap: 8px; }
.bbg-auth .bbg-au-pts.is-steps li { padding-left: 30px; counter-increment: au-step; }
.bbg-auth .bbg-au-pts.is-steps li::before { content: counter(au-step); left: 0; top: -1px; width: 21px; height: 21px; border-radius: 50%; display: grid; place-items: center;
  background: var(--bbg-pine); color: #fff; opacity: 1; font-size: 11.5px; font-weight: 700; }
/* новый пароль: требования отмечаются по мере ввода, повтор — совпадает ли */
.bbg-auth .bbg-au-rules { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 9px 0 0; font-size: 12.5px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-rules [data-rule] { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px; border-radius: 999px; background: rgba(30,50,70,.07); font-weight: 600; transition: background .2s, color .2s; }
.bbg-auth .bbg-au-rules [data-rule]::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .45; }
.bbg-auth .bbg-au-rules [data-rule].is-ok { background: var(--bbg-mint-bg); color: var(--bbg-mint-ink); }
.bbg-auth .bbg-au-rules [data-rule].is-ok::before { content: "✓"; width: auto; height: auto; background: none; opacity: 1; font-size: 11px; }
.bbg-auth .bbg-au-match { margin: 7px 0 0; font-size: 13px; font-weight: 600; color: var(--bbg-warn-ink); }
.bbg-auth .bbg-au-match.is-ok { color: var(--bbg-mint-ink); }
/* согласия при регистрации: обязательные — плашкой, рассылка — отдельно, по желанию */
.bbg-auth .bbg-au-consents { display: grid; gap: 10px; padding: 14px; border-radius: 16px; background: rgba(255,255,255,.45); border: 1px solid rgba(255,255,255,.78); }
.bbg-auth .bbg-au-consents.is-optional { padding: 2px 14px; background: transparent; border-color: transparent; }
.bbg-auth .bbg-au-ctitle { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--bbg-ink-3); }
.bbg-auth .bbg-au-cbox { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; line-height: 1.45; color: var(--bbg-ink-2); cursor: pointer; }
.bbg-auth .bbg-au-cbox input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--bbg-pine); }
.bbg-auth :is(.bbg-au-cbox, .bbg-au-links) a, .bbg-auth .bbg-au-linkbtn { color: var(--bbg-pine); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(22,50,58,.3); text-underline-offset: 3px; }
.bbg-auth .bbg-au-cbox a { font-weight: 600; }
.bbg-auth :is(.bbg-au-cbox, .bbg-au-links) a:hover, .bbg-auth .bbg-au-linkbtn:hover { text-decoration-color: currentColor; }
.bbg-auth .bbg-au-linkbtn { padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.bbg-auth .bbg-au-next { margin: -4px 0 0; text-align: center; font-size: 13px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-trial { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; padding: 12px 14px; border-radius: 16px; background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); font-size: 13.5px; line-height: 1.45; }
.bbg-auth .bbg-au-trial svg { flex: none; margin-top: 1px; }
.bbg-auth .bbg-alert.is-warn { background: var(--bbg-warn-bg); color: var(--bbg-warn-ink); }
.bbg-auth .bbg-alert.is-mute { background: var(--bbg-mute-bg); color: var(--bbg-mute-ink); }
.bbg-auth .bbg-au-submit.is-ghost { color: var(--bbg-ink); }

/* ── 14.1. Одна карточка (восстановление и новый пароль, код 2FA, подтверждение почты и устройства, согласие Яндекс ID,
   задание пароля, «Укажите телефон»): сверху логотип, ниже значок, заголовок, пояснение и форма ── */
.bbg-auth .bbg-au-solo { width: 100%; max-width: 480px; padding: 18px 16px 28px; }
.bbg-auth .bbg-au-solo-in { padding: 24px 16px 0; }
.bbg-auth .bbg-au-badge { width: 56px; height: 56px; margin-bottom: 16px; border-radius: 18px; display: grid; place-items: center; background: var(--bbg-pine); color: #fff;
  box-shadow: 0 14px 24px -14px rgba(10,30,36,.9), inset 0 1px 0 rgba(255,255,255,.16); }
.bbg-auth .bbg-au-badge svg { width: 28px; height: 28px; }
.bbg-auth .bbg-au-badge.is-ok { background: #1F7A52; }
.bbg-auth .bbg-au-badge.is-warn { background: #A8661A; }
.bbg-auth .bbg-au-badge.is-ya { background: #FC3F1D; font-size: 28px; font-weight: 700; }
.bbg-auth .bbg-au-solo h1 { margin: 0; font-size: 26px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: var(--bbg-ink); text-wrap: balance; }
.bbg-auth .bbg-au-lead { margin: 8px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-chip { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; margin: 12px 0 0; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.72);
  border: 1px solid rgba(255,255,255,.95); box-shadow: var(--bbg-raise); font-size: 14px; font-weight: 600; color: var(--bbg-ink); overflow-wrap: anywhere; }
.bbg-auth .bbg-au-chip:has(> span) { padding-left: 6px; }
.bbg-auth .bbg-au-chip > span { flex: none; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--bbg-pine); color: #fff; font-size: 12px; }
.bbg-auth .bbg-au-person { display: flex; align-items: center; gap: 12px; margin: 14px 0 0; padding: 10px 12px; border-radius: 16px; background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.92); box-shadow: var(--bbg-raise); }
.bbg-auth .bbg-au-person > span:last-child { min-width: 0; display: grid; }
.bbg-auth .bbg-au-person b { font-size: 15px; color: var(--bbg-ink); }
.bbg-auth .bbg-au-person > span:last-child > span { font-size: 13px; color: var(--bbg-ink-2); overflow-wrap: anywhere; }
.bbg-auth .bbg-au-solo-in > .bbg-alert { margin: 18px 0 0; }
.bbg-auth .bbg-au-solo-in > :is(.bbg-au-fields, .bbg-au-submit) { margin-top: 22px; }
.bbg-auth .bbg-au-hint { margin: 10px 0 0; font-size: 13px; line-height: 1.45; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-hint.is-center { text-align: center; }
.bbg-auth .bbg-au-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 10px; margin: 18px 0 0; font-size: 14px; color: var(--bbg-ink-2); }
/* код подтверждения — крупно, по цифрам */
.bbg-auth .bbg-au-code { width: 100%; height: 64px; padding: 0 0 0 .45em; border: 1px solid rgba(30,50,70,.18); border-radius: 16px; background: rgba(255,255,255,.78);
  font: 600 28px/1 ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: .45em; text-align: center; color: var(--bbg-ink); box-shadow: inset 0 1px 2px rgba(30,50,70,.08); transition: border-color .15s, background .15s, box-shadow .15s; }
.bbg-auth .bbg-au-code::placeholder { color: rgba(30,50,70,.26); }
.bbg-auth .bbg-au-code:focus { outline: none; background: #fff; border-color: var(--bbg-pine); box-shadow: 0 0 0 4px rgba(22,50,58,.14); }
.bbg-auth .bbg-au-code[aria-invalid="true"] { border-color: var(--bbg-bad-ink); }
.bbg-auth .bbg-au-code.is-recovery { padding-left: .18em; font-size: 20px; letter-spacing: .18em; }
.bbg-auth .bbg-au-code.is-sm { height: 48px; border-radius: 14px; font-size: 20px; }
.bbg-auth .bbg-au-inline { display: flex; gap: 8px; }
.bbg-auth .bbg-au-inline .bbg-au-code { flex: 1; min-width: 0; }
.bbg-auth .bbg-au-inline .bbg-btn { height: 48px; border-radius: 14px; }
.bbg-auth .bbg-au-question { margin: 22px 0 10px; text-align: center; font-size: 16px; font-weight: 700; color: var(--bbg-ink); }
.bbg-auth .bbg-au-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bbg-auth .bbg-au-pair form { margin: 0; }
.bbg-auth .bbg-au-h2 { margin: 24px 0 0; font-size: 16px; font-weight: 700; color: var(--bbg-ink); }
.bbg-auth .bbg-au-h2 + .bbg-au-fields { margin-top: 12px !important; }
.bbg-auth .bbg-au-h3 { margin: 0; font-size: 14.5px; font-weight: 700; color: var(--bbg-ink); }
.bbg-auth .bbg-au-block { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--bbg-line); }
.bbg-auth .bbg-au-block > .bbg-au-submit { margin-top: 14px; }
.bbg-auth .bbg-au-block > .bbg-au-h2:first-child { margin-top: 0; }
.bbg-auth .bbg-au-more { margin-top: 18px; border-radius: 16px; background: rgba(255,255,255,.42); border: 1px solid rgba(255,255,255,.75); }
.bbg-auth .bbg-au-more summary { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; list-style: none; cursor: pointer; font-size: 14px; font-weight: 600; color: var(--bbg-ink); }
.bbg-auth .bbg-au-more summary::-webkit-details-marker { display: none; }
.bbg-auth .bbg-au-more summary::after { content: "+"; font-size: 20px; font-weight: 400; line-height: 1; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-more[open] summary::after { content: "–"; }
.bbg-auth .bbg-au-more-in { display: grid; gap: 16px; padding: 0 14px 14px; }
.bbg-auth .bbg-au-more-in > .bbg-au-hint { margin: 0; }
/* ждём одобрения владельца — пульсирующая точка: страница сама откроется после решения */
.bbg-auth .bbg-au-wait { display: flex; align-items: flex-start; gap: 10px; margin-top: 10px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.85); font-size: 13.5px; line-height: 1.45; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-wait.is-bad { background: var(--bbg-bad-bg); border-color: transparent; color: var(--bbg-bad-ink); }
.bbg-auth .bbg-au-pulse { flex: none; width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: #2F8F5B; animation: bbg-au-pulse 1.8s infinite; }
@keyframes bbg-au-pulse { 0% { box-shadow: 0 0 0 0 rgba(47,143,91,.5); } 70%, 100% { box-shadow: 0 0 0 9px rgba(47,143,91,0); } }
/* ── 14.2. Подвал страниц входа (auth/glass/footer) вместо подвала сайта: стекло легче карточек — документы,
   «Настройки cookie», оператор и контакты одной полосой внизу экрана ── */
.bbg-auth .bbg-au-foot { --bbg-glass-a: rgba(255,255,255,.44); --bbg-glass-b: rgba(255,255,255,.26);
  width: 100%; max-width: 1000px; padding: 14px 22px; border-radius: 20px; box-shadow: 0 18px 36px -28px rgba(36,48,96,.45), var(--bbg-inset); font-size: 13px; color: var(--bbg-ink-2); }
.bbg-auth .bbg-au-foot-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 0; padding: 0; list-style: none; }
.bbg-auth .bbg-au-foot a { color: var(--bbg-ink-2); font-weight: 500; text-decoration: none; }
.bbg-auth .bbg-au-foot a:hover { color: var(--bbg-ink); text-decoration: underline; text-underline-offset: 3px; }
.bbg-auth .bbg-au-foot-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--bbg-line); }
.bbg-auth .bbg-au-foot-copy { flex: 1 1 300px; min-width: 0; margin: 0; font-size: 12.5px; line-height: 1.45; color: var(--bbg-ink-3); }
/* оператор платформы — второй строкой, как в подвале сайта */
.bbg-auth .bbg-au-foot-copy span { display: block; }
.bbg-auth .bbg-au-foot-contacts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; }
.bbg-auth .bbg-au-foot-contacts a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.bbg-auth .bbg-au-foot-contacts a[href="#cookie-settings"] { font-weight: 500; }
.bbg-auth .bbg-au-foot-contacts svg { flex: none; color: var(--bbg-ink-3); }
/* телефон и узкий планшет: плашка — над карточкой, двери — двумя плитками рядом; что внутри кабинета — строкой под заголовком */
@media (max-width: 860px) {
  .bbg-auth .bbg-au { gap: 16px; padding-top: 12px; padding-bottom: 16px; }
  .bbg-auth .bbg-au-main { place-items: start center; }
  .bbg-auth .bbg-au-grid { max-width: 520px; grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .bbg-auth .bbg-au-side, .bbg-auth .bbg-au-grid.is-tall .bbg-au-side { position: relative; top: auto; padding: 14px 12px 12px; }
  .bbg-auth .bbg-au-doors { grid-template-columns: 1fr 1fr; }
  .bbg-auth .bbg-au-doors legend { padding: 14px 4px 10px; font-size: 16px; }
  .bbg-auth .bbg-au-door { grid-template-columns: minmax(0, 1fr) 22px; align-items: start; row-gap: 10px; }
  .bbg-auth .bbg-au-ic { width: 40px; height: 40px; border-radius: 12px; }
  .bbg-auth .bbg-au-tick { grid-column: 2; grid-row: 1; width: 22px; height: 22px; }
  .bbg-auth .bbg-au-dt { grid-column: 1 / -1; grid-row: 2; }
  .bbg-auth .bbg-au-dt b { font-size: 15px; }
  .bbg-auth .bbg-au-dt span { font-size: 12.5px; line-height: 1.3; }
  .bbg-auth input:checked + .bbg-au-door .bbg-au-pts, .bbg-auth .bbg-au-note { display: none; }
  .bbg-auth .bbg-au-card { min-height: 0; place-items: stretch; padding: 26px 20px 24px; }
  .bbg-auth .bbg-au-form { max-width: none; }
  .bbg-auth .bbg-au-form h1 { font-size: 24px; }
  .bbg-auth .bbg-au-sub { display: block; }
  .bbg-auth .bbg-au-reg { margin-bottom: 20px; }
  .bbg-auth .bbg-au-solo { padding: 14px 12px 22px; }
  .bbg-auth .bbg-au-solo-in { padding: 20px 8px 0; }
  .bbg-auth .bbg-au-solo h1 { font-size: 23px; }
  .bbg-auth .bbg-au-badge { width: 50px; height: 50px; border-radius: 16px; margin-bottom: 14px; }
  .bbg-auth .bbg-au-code { font-size: 24px; }
  .bbg-auth .bbg-au-foot { padding: 14px 16px; border-radius: 18px; text-align: center; }
  .bbg-auth .bbg-au-foot-links { gap: 6px 16px; }
  .bbg-auth .bbg-au-foot-row { flex-direction: column; justify-content: center; }
  .bbg-auth .bbg-au-foot-copy { flex: none; }
  .bbg-auth .bbg-au-foot-contacts { justify-content: center; }
}
@media (max-width: 359px) { .bbg-auth .bbg-au-home span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }

/* iPhone/iPad (Safari): background-attachment: fixed не поддерживается — настоящее размытие на подложке ::before,
   у самих блоков только оттенок. Safari считает размытие на видеокарте. */
@supports (-webkit-touch-callout: none) {
  .bb-glass .bbg-glass { background: linear-gradient(160deg, var(--bbg-glass-a), var(--bbg-glass-b)); box-shadow: var(--bbg-shadow); }
  .bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side) { background: radial-gradient(130% 55% at 0% 0%, rgba(255,255,255,.55), rgba(255,255,255,0) 50%), linear-gradient(165deg, rgba(255,255,255, var(--bbg-slab-a)), rgba(255,255,255, var(--bbg-slab-b))); }
  .bb-glass .bbg-glass::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
    background: var(--bbg-hi); box-shadow: var(--bbg-inset);
    -webkit-backdrop-filter: blur(var(--bbg-blur)) saturate(var(--bbg-sat)); backdrop-filter: blur(var(--bbg-blur)) saturate(var(--bbg-sat)); }
  .bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side)::before { padding: 0; background: none; box-shadow: none; -webkit-mask: none; mask: none; }
  .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white) { background: rgba(255,255,255,.5); box-shadow: var(--bbg-shadow); }
  .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed, .absolute, .sticky):not(.bg-white .bg-white, .fixed .bg-white) { position: relative; }
  .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white)::before,
  .bb-glass .bbg-page .ua-card::before {
    content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
    background: radial-gradient(120% 60% at 0% 0%, rgba(255,255,255,.4), rgba(255,255,255,0) 55%); box-shadow: inset 1px 1px 0 rgba(255,255,255,.7);
    -webkit-backdrop-filter: blur(var(--bbg-blur)) saturate(var(--bbg-sat)); backdrop-filter: blur(var(--bbg-blur)) saturate(var(--bbg-sat));
  }
  .bb-glass .bbg-page .ua-card { position: relative; background: rgba(255,255,255,.55); }
}
@media (prefers-reduced-transparency: reduce) {
  .bb-glass .bbg-glass, .bb-glass .bbg-panel, .bb-glass .bbg-rail, .bb-glass .bbg-rail-foot, .bb-glass .bbg-au-side, .bb-glass .bbg-page .ua-card,
  .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white) { background: #F4F5FA; }
  .bb-glass .bbg-glass::before, .bb-glass .bbg-page .bg-white::before, .bb-glass .bbg-page .ua-card::before { content: none; }
  .bb-glass :is(.bbg-rail, .bbg-rail-foot, .bbg-panel, .bbg-au-side)::after { content: none; }
}
/* печать (КУДиР, книга продаж, отчёт смены и др.): только содержимое на всю ширину листа, без стекла */
@media print {
  .bb-glass { background: #fff; min-height: 0; }
  .bb-glass :is(.bbg-bg, .bbg-side, .bbg-overlay, .bbg-skip, .bbg-tip, .bbg-menu-btn, .bbg-only-off, .bbg-bell, .bbg-onsite, .bbg-head-acts) { display: none !important; }
  .bb-glass .bbg-shell, .bb-glass .bbg-shell.is-panel-off { display: block; padding: 0; min-height: 0; }
  .bb-glass .bbg-head { padding: 0 0 12px; }
  .bb-glass .bbg-head :is(h1, .bbg-date, .bbg-crumb) { text-shadow: none; }
  .bb-glass :is(.bbg-glass, .bbg-alert),
  .bb-glass .bbg-page .bg-white:not(input, select, textarea, button, option, .fixed):not(.bg-white .bg-white, .fixed .bg-white) { background: #fff !important; box-shadow: none !important; border-color: #ddd !important; }
  .bb-glass :is(.bbg-glass, .bbg-page .bg-white)::before { content: none !important; }
}
@media (prefers-reduced-motion: reduce) { .bb-glass *, .bb-glass *::before, .bb-glass *::after { transition-duration: 0s !important; animation-duration: .001s !important; } }
