/* ───────────────────────────────────────────────────────────────────────────
   «Веранда» — HeroUI-style design system
   Clean · white · minimal. Tokens, shadows, radii mirror HeroUI defaults.
   ─────────────────────────────────────────────────────────────────────────── */

:root{
  /* palette */
  --bg:#f4f4f5;
  --card:#ffffff;
  --content2:#f4f4f5;     /* subtle fills: tab track, icon buttons */
  --content3:#e9e9ec;
  --border:#e4e4e7;
  --border-soft:#f1f1f3;

  --fg:#11181c;           /* foreground */
  --fg-2:#71717a;         /* muted */
  --fg-3:#a1a1aa;         /* faint */

  --primary:#006fee;      /* HeroUI primary (Tweakable) */
  --primary-600:#0058c7;
  --primary-soft:#e6f1fe;

  --success:#17c964; --success-soft:#e8faf0; --success-fg:#0e7a3c;
  --danger:#f31260;  --danger-soft:#fde7ee;  --danger-fg:#c40f4f;
  --warning:#f5a524; --warning-soft:#fdf0db; --warning-fg:#9a6206;
  --neutral:#a1a1aa; --neutral-soft:#f1f1f3; --neutral-fg:#71717a;

  /* radii */
  --r-sm:8px; --r-md:11px; --r-lg:14px; --r-xl:16px;

  /* shadows — HeroUI small / medium */
  --sh-sm:0 2px 8px rgba(17,24,28,.06), 0 0 0 1px rgba(17,24,28,.04);
  --sh-md:0 8px 26px rgba(17,24,28,.08), 0 0 0 1px rgba(17,24,28,.04);
  --sh-pop:0 12px 34px rgba(17,24,28,.14), 0 0 0 1px rgba(17,24,28,.05);

  /* density (Tweakable) */
  --row-h:54px;
  --pill-font:13.5px;
  --lane-pad:6px;

  --hour-w:128px;
  --rail-w:208px;

  --font:"Inter","SF Pro Text",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
}

[data-theme="dark"]{
  --bg:#000000;--card:#18181b;--content2:#27272a;--content3:#3f3f46;
  --border:#27272a;--border-soft:#1f1f22;
  --fg:#ecedee;--fg-2:#a1a1aa;--fg-3:#71717a;
  --primary-soft:#001731;
  --success-soft:#0c2e1c;--danger-soft:#3a0f20;--warning-soft:#34250a;--neutral-soft:#27272a;--neutral-fg:#a1a1aa;
  --sh-sm:0 2px 8px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.05);
  --sh-md:0 8px 26px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);
  --sh-pop:0 12px 34px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.06);
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--font);color:var(--fg);background:var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}

/* fixed desktop stage, scaled to viewport */
.fit{position:fixed;inset:0;overflow:hidden;background:var(--bg);display:grid;place-items:center}
.stage{position:absolute;top:50%;left:50%;width:1440px;height:900px;transform-origin:center center;background:var(--bg);overflow:hidden}
/* vivid ambient band behind the control layer so the glass refracts color (Apple pattern) */
.stage::before{content:"";position:absolute;left:0;right:0;top:0;height:200px;pointer-events:none;z-index:0;
  background:linear-gradient(105deg, #5b8def 0%, #7b6ff0 52%, #9a7ce4 100%);
  opacity:.36;
  -webkit-mask:linear-gradient(#000 62%, transparent);mask:linear-gradient(#000 62%, transparent)}
.app{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;padding:20px 28px;gap:13px}

/* ── Liquid Glass material (interface layer only) ─────────────────────────── */
.glassmat{position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,.66), rgba(255,255,255,.44));
  -webkit-backdrop-filter:blur(18px) saturate(185%) brightness(1.04);
  backdrop-filter:blur(18px) saturate(185%) brightness(1.04);
  box-shadow:
    inset 0 1px .5px rgba(255,255,255,.95),
    inset 0 0 0 .5px rgba(255,255,255,.55),
    inset 0 -6px 12px -10px rgba(60,50,40,.12),
    0 4px 16px rgba(17,24,28,.10);}
.glassmat::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,.5) 12%, transparent 26%);
  mix-blend-mode:screen;opacity:.7}
[data-theme="dark"] .glassmat{
  background:linear-gradient(180deg, rgba(70,70,78,.6), rgba(44,44,50,.42));
  box-shadow:inset 0 1px .5px rgba(255,255,255,.2), inset 0 0 0 .5px rgba(255,255,255,.12), 0 6px 20px rgba(0,0,0,.5)}

/* gel tap response (Apple-style) */
.tap{transition:transform .2s cubic-bezier(.34,1.5,.5,1), filter .18s ease, box-shadow .2s ease}
.tap:hover{filter:brightness(1.05)}
.tap:active{transform:scale(.94)}

/* entrance motion — base state is VISIBLE; animation only enhances (never hides) */
@keyframes riseIn{from{transform:translateY(16px)}to{transform:none}}
.anim{animation:riseIn .55s cubic-bezier(.22,1,.36,1);animation-delay:0 !important}
@media (prefers-reduced-motion:reduce){.anim{animation:none}}

/* ── Header row ───────────────────────────────────────────────────────────── */
.headbar{display:grid;grid-template-columns:1fr 600px auto;grid-template-rows:auto auto;column-gap:18px;row-gap:12px;align-items:center;flex:0 0 auto}
.hb-brand{display:flex;align-items:center;gap:14px;min-width:0;justify-self:start}
.hb-actions{justify-self:end;display:flex;align-items:center;gap:10px}
.hb-date{justify-self:end}
.hb-date .btn-primary-lg{padding:13px 34px;font-size:15px;min-width:210px;justify-content:center}
.brand-mark{width:44px;height:44px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--primary);color:#fff;box-shadow:var(--sh-sm)}
.brand-mark svg{width:23px;height:23px}
.hdr-title{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.1}
.hdr-sub{font-size:13.5px;color:var(--fg-2);font-weight:450;margin-top:2px}
.brand-tx{min-width:0}
.search{width:100%;display:flex;align-items:center;gap:10px;height:46px;padding:0 10px 0 17px;border-radius:999px;cursor:text}
.search > svg{width:18px;height:18px;color:var(--fg-2);flex:0 0 auto}
.search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:14px;color:var(--fg);outline:none}
.search input::placeholder{color:var(--fg-2)}
.kbd{flex:0 0 auto;font-size:11px;font-weight:500;color:var(--fg-2);background:rgba(255,255,255,.55);border:.5px solid rgba(255,255,255,.6);border-radius:7px;padding:3px 7px}
[data-theme="dark"] .kbd{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.14)}
.hdr-r{display:flex;align-items:center;gap:10px;flex:0 0 auto}

.iconbtn{width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;flex:0 0 auto;
  color:var(--fg-2);display:grid;place-items:center;position:relative;overflow:hidden}
.iconbtn:hover{color:var(--fg)}
.iconbtn svg{width:19px;height:19px;position:relative;z-index:1}
.iconbtn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2.5px var(--bg);z-index:2}

.btn-primary{appearance:none;border:0;cursor:pointer;font:inherit;font-weight:550;font-size:14px;white-space:nowrap;position:relative;overflow:hidden;
  color:#fff;background:var(--primary);padding:11px 18px;border-radius:var(--r-md);
  display:inline-flex;align-items:center;gap:8px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 4px 14px color-mix(in srgb,var(--primary) 40%,transparent)}
.btn-primary::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.4) 14%,transparent 30%);mix-blend-mode:screen;opacity:.8}
.btn-primary:hover{background:var(--primary-600)}
.btn-primary svg{width:18px;height:18px;position:relative;z-index:1}

/* ── Controls row ─────────────────────────────────────────────────────────── */
.stats{width:100%;display:flex;align-items:stretch;gap:0;padding:5px 6px;border-radius:14px}
.stat{flex:1;display:flex;flex-direction:column;justify-content:center;padding:2px 18px;position:relative}
.stat + .stat::before{content:"";position:absolute;left:0;top:16%;height:68%;width:1px;background:rgba(17,24,28,.1)}
[data-theme="dark"] .stat + .stat::before{background:rgba(255,255,255,.12)}
.stat-top{display:flex;align-items:center;gap:7px}
.stat-v{font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1}
.stat-l{font-size:11px;color:var(--fg-2);font-weight:500;margin-top:3px}

.seg{position:relative;display:inline-flex;border-radius:13px;padding:4px;gap:0;justify-self:start}
.seg button{position:relative;z-index:1;flex:1 0 0;appearance:none;border:0;background:transparent;font:inherit;font-size:14px;font-weight:500;
  color:var(--fg-2);padding:8px 18px;border-radius:9px;cursor:pointer;white-space:nowrap;transition:color .2s}
.seg button.on{color:var(--fg);font-weight:550}

.btn-ghost{appearance:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;color:var(--fg);
  border:0;border-radius:var(--r-md);padding:10px 14px;display:inline-flex;align-items:center;gap:8px}
.btn-ghost svg{width:17px;height:17px;color:var(--fg-2);position:relative;z-index:1}
.btn-ghost span,.btn-ghost{position:relative}
.btn-ghost .chev{margin-left:2px;color:var(--fg-3)}
.icon-ghost{width:42px;height:42px;border-radius:var(--r-md);border:0;color:var(--fg-2);display:grid;place-items:center;cursor:pointer;flex:0 0 auto;position:relative;overflow:hidden}
.icon-ghost:hover{color:var(--fg)}
.icon-ghost svg{position:relative;z-index:1}

/* ── KPI cards ────────────────────────────────────────────────────────────── */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;flex:0 0 auto}
.kpi{background:var(--card);border-radius:var(--r-lg);padding:13px 18px;box-shadow:var(--sh-sm)}
.kpi-l{font-size:13px;color:var(--fg-2);font-weight:500}
.kpi-row{display:flex;align-items:center;gap:11px;margin-top:7px}
.kpi-v{font-size:25px;font-weight:600;letter-spacing:-.02em;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1}
.delta{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:550;padding:3px 9px;border-radius:999px;white-space:nowrap}
.delta svg{width:13px;height:13px}
.delta.up{background:var(--success-soft);color:var(--success-fg)}
.delta.down{background:var(--danger-soft);color:var(--danger-fg)}
.delta.flat{background:var(--neutral-soft);color:var(--neutral-fg)}

/* ── Board card ───────────────────────────────────────────────────────────── */
.board{flex:1 1 auto;min-height:0;background:var(--card);border-radius:var(--r-xl);box-shadow:var(--sh-md);
  display:flex;flex-direction:column;overflow:hidden}
.board-scroll{flex:1 1 auto;overflow:auto;position:relative}
.board-scroll::-webkit-scrollbar{width:12px;height:12px}
.board-scroll::-webkit-scrollbar-thumb{background:var(--content3);border-radius:7px;border:3px solid var(--card);background-clip:content-box}
.board-scroll::-webkit-scrollbar-thumb:hover{background:#d4d4d8;background-clip:content-box}
.board-scroll::-webkit-scrollbar-corner{background:transparent}

.grid{position:relative;display:grid;grid-template-columns:var(--rail-w) calc(var(--hours) * var(--hour-w));width:max-content;min-width:100%}

/* sticky corner + axis + rail */
.cell-corner{position:sticky;left:0;top:0;z-index:7;grid-column:1;grid-row:1;background:var(--card);
  border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border);display:flex;align-items:flex-end;padding:0 18px 9px}
.clock{display:flex;flex-direction:column;gap:3px}
.clock-t{font-size:21px;font-weight:600;letter-spacing:-.02em;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1}
.clock-sub{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--fg-3);font-weight:500}
.clock-sub svg{width:13px;height:13px}

.axis{position:sticky;top:0;z-index:5;grid-column:2;grid-row:1;height:52px;background:var(--card);border-bottom:1px solid var(--border)}
.axis-hour{position:absolute;top:0;bottom:0;width:var(--hour-w);border-left:1px solid var(--border-soft);padding:9px 0 0 11px}
.axis-hour .h{font-size:13px;font-weight:500;color:var(--fg-2);font-variant-numeric:tabular-nums}
.axis-hour .hl{position:absolute;left:11px;right:8px;bottom:8px;height:13px;display:flex;align-items:flex-end}
.axis-hour .hl i{width:100%;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--primary) 22%,transparent);min-height:2px}

.rail{position:sticky;left:0;z-index:4;grid-column:1;background:var(--card);border-right:1px solid var(--border)}
.hall-head{display:flex;align-items:center;gap:8px;height:42px;padding:0 20px;position:sticky;left:0;
  background:color-mix(in srgb, var(--hall) 10%, var(--card));
  border-top:1px solid color-mix(in srgb, var(--hall) 24%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--hall) 24%, transparent)}
.hall-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--hall) 18%,transparent)}
.hall-name{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:color-mix(in srgb,var(--hall) 78%, #2a211c)}
.hall-meta{font-size:11px;color:var(--fg-3);margin-left:auto;font-variant-numeric:tabular-nums;font-weight:500}

.row-rail{height:var(--row-h);display:flex;align-items:center;gap:9px;padding:0 20px;border-top:1px solid var(--border-soft);position:relative}
.row-rail::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--hall);opacity:.42}
.tbl-id{font-size:14px;font-weight:600;letter-spacing:-.01em}
.tbl-cap{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--fg-2);font-variant-numeric:tabular-nums;
  background:var(--content2);padding:2px 8px;border-radius:999px}
.tbl-cap svg{width:13px;height:13px;opacity:.7}
.row-rail .occ{margin-left:auto;width:8px;height:8px;border-radius:50%}

/* lanes */
.lanes{grid-column:2;position:relative}
.lane{height:var(--row-h);position:relative;border-top:1px solid var(--border-soft)}
.hall-spacer{grid-column:2;height:42px;display:flex;align-items:center;padding:0 18px;
  background:color-mix(in srgb, var(--hall) 10%, var(--card));
  border-top:1px solid color-mix(in srgb, var(--hall) 24%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--hall) 24%, transparent)}
.hall-note{font-size:12px;color:var(--fg-2);font-weight:450}
.lane-grid{position:absolute;inset:0;pointer-events:none}
.lane-grid i{position:absolute;top:0;bottom:0;width:1px;background:var(--border-soft)}
.lane-grid i.half{background:color-mix(in srgb,var(--border-soft) 55%,transparent)}

/* booking pill — clean calendar-event card */
.pill{position:absolute;top:1.5px;bottom:1.5px;border-radius:7px;padding:0 10px 0 15px;
  display:flex;flex-direction:column;justify-content:center;gap:3px;overflow:hidden;cursor:pointer;
  background:var(--st-soft);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--st) 16%,transparent);
  transition:transform .14s cubic-bezier(.22,1,.36,1), box-shadow .14s ease}
.pill::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5px;background:var(--st)}
.pill:hover{z-index:3;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--st) 34%,transparent), 0 6px 18px rgba(17,24,28,.14)}
.pill .p-top{display:flex;align-items:center;gap:7px;min-width:0}
.pill .p-party{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;
  font-size:11.5px;font-weight:600;color:var(--st-fg);font-variant-numeric:tabular-nums}
.pill .p-party svg{width:13px;height:13px}
.pill .p-name{font-size:var(--pill-font);font-weight:550;letter-spacing:-.01em;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}
.pill .p-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--fg-2);white-space:nowrap;overflow:hidden}
.pill .p-time{font-variant-numeric:tabular-nums;font-weight:500;color:var(--fg-2);flex:0 0 auto}
.pill .p-flag{flex:0 0 auto;font-size:9.5px;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:5px;color:#fff}
.pill .p-reqs{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}
.pill .p-req{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;flex:0 0 auto;
  background:var(--card);color:var(--fg-2);box-shadow:inset 0 0 0 1px var(--border-soft)}
.pill .p-req svg{width:12px;height:12px}
.pill .p-note{display:inline-flex;align-items:center;font-size:10.5px;color:var(--fg-2);background:var(--card);
  border-radius:6px;padding:1.5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pill.done{opacity:.62}
.pill.done::before{background:var(--fg-3)}
.pill.late{box-shadow:0 1px 2px rgba(17,24,28,.07), inset 0 0 0 1px color-mix(in srgb,var(--st) 38%,transparent)}
.pill.late::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;animation:latepulse 2.2s ease-in-out infinite}
@keyframes latepulse{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--st) 16%,transparent)}}
.pill.narrow{padding:0 9px 0 14px}
.pill.narrow .p-meta{display:none}
.p-tag{position:absolute;top:6px;right:8px;font-size:9.5px;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:5px;color:#fff;z-index:2}

/* now line */
.nowline{position:absolute;top:0;bottom:0;width:2px;z-index:4;pointer-events:none;background:var(--primary)}
.nowline::before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--primary)}
.now-bub{position:absolute;bottom:8px;transform:translateX(-50%);white-space:nowrap;z-index:7;
  font-size:11px;font-weight:600;color:#fff;padding:3px 8px;border-radius:7px;background:var(--primary);
  box-shadow:var(--sh-sm);font-variant-numeric:tabular-nums}

/* ── Legend ───────────────────────────────────────────────────────────────── */
.legend{display:flex;align-items:center;gap:18px;flex:0 0 auto;padding:0 4px}
.legend .lg{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--fg-2)}
.legend .lg i{width:9px;height:9px;border-radius:3px}
.legend .sp{margin-left:auto;font-size:12.5px;color:var(--fg-3)}

/* ── Booking sheet (C5) — HeroUI modal ────────────────────────────────────── */
.bs-scrim{position:fixed;inset:0;z-index:60;display:grid;place-items:center;
  background:rgba(17,24,28,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:bs-fade .2s ease}
@keyframes bs-fade{from{opacity:0}to{opacity:1}}
.bs-card{width:792px;max-width:calc(100vw - 48px);max-height:calc(100vh - 60px);display:flex;flex-direction:column;background:var(--card);
  border-radius:22px;overflow:hidden;box-shadow:var(--sh-pop);animation:bs-rise .26s cubic-bezier(.22,1,.36,1)}
@keyframes bs-rise{from{transform:translateY(16px) scale(.99);opacity:0}to{transform:none;opacity:1}}
.bs-head{padding:22px 26px 16px}
.bs-grab{display:none}
.bs-head-row{display:flex;align-items:flex-start;justify-content:space-between}
.bs-title{font-size:20px;font-weight:600;letter-spacing:-.02em}
.bs-sub{font-size:13px;color:var(--fg-2);margin-top:3px;font-weight:450}
.bs-close{appearance:none;border:0;width:32px;height:32px;border-radius:50%;cursor:pointer;
  background:var(--content2);color:var(--fg-2);display:grid;place-items:center;transition:background .15s}
.bs-close:hover{color:var(--fg);background:var(--content3)}
.bs-close svg{width:16px;height:16px}

.bs-body{padding:2px 26px 12px;display:flex;flex-direction:column;gap:20px;overflow-y:auto}
.bs-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.bs-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.bs-full{}
.bs-body::-webkit-scrollbar{width:8px}
.bs-body::-webkit-scrollbar-thumb{background:var(--content3);border-radius:5px;border:2px solid var(--card);background-clip:content-box}
.bs-field{display:flex;flex-direction:column;gap:9px}
.bs-field > label{font-size:13px;font-weight:500;color:var(--fg-2)}
.bs-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.bs-chips{display:flex;flex-wrap:wrap;gap:8px}
.bs-chip{appearance:none;font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;padding:8px 14px;border-radius:10px;
  border:1px solid var(--border);background:var(--card);color:var(--fg);font-variant-numeric:tabular-nums;transition:all .14s}
.bs-chip:hover{background:var(--content2)}
.bs-chip.on{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--sh-sm)}

.bs-step{display:flex;align-items:center;gap:6px;background:var(--content2);border-radius:12px;padding:5px}
.bs-step button{appearance:none;border:0;width:34px;height:34px;border-radius:9px;cursor:pointer;
  background:var(--card);color:var(--fg);display:grid;place-items:center;box-shadow:var(--sh-sm);transition:background .14s}
.bs-step button:hover{background:var(--content2)}
.bs-step button svg{width:17px;height:17px}
.bs-step-v{flex:1;text-align:center;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;justify-content:center;gap:5px}
.bs-step-v span{font-size:12px;font-weight:500;color:var(--fg-3)}
.bs-static{display:flex;align-items:center;gap:8px;height:46px;padding:0 14px;border-radius:12px;
  background:var(--content2);font-size:14px;font-weight:500;color:var(--fg)}
.bs-static svg{width:17px;height:17px;color:var(--fg-2)}

.bs-tables{display:flex;flex-direction:column;gap:9px}
.bs-table{position:relative;appearance:none;text-align:left;font:inherit;cursor:pointer;padding:12px 15px;border-radius:13px;
  border:1px solid var(--border);background:var(--card);transition:all .14s}
.bs-table:hover{background:var(--content2)}
.bs-table.on{border-color:var(--primary);background:var(--primary-soft)}
.bs-t-id{font-size:15px;font-weight:550;display:flex;align-items:center;gap:9px;color:var(--fg)}
.bs-best{font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--success-fg);background:var(--success-soft);padding:2px 8px;border-radius:6px}
.bs-t-meta{font-size:12.5px;color:var(--fg-2);margin-top:2px}
.bs-t-check{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;
  background:var(--primary);color:#fff;display:grid;place-items:center}
.bs-t-check svg{width:15px;height:15px}

.bs-input{display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;border-radius:12px;background:var(--content2);transition:box-shadow .14s}
.bs-input:focus-within{box-shadow:inset 0 0 0 2px var(--primary)}
.bs-input + .bs-input{margin-top:9px}
.bs-ic{color:var(--fg-3);display:grid;place-items:center}
.bs-ic svg{width:17px;height:17px}
.bs-input input{flex:1;border:0;background:transparent;font:inherit;font-size:14px;font-weight:500;color:var(--fg);outline:none}
.bs-input input::placeholder{color:var(--fg-3)}

.bs-seg{display:flex;background:var(--content2);border-radius:12px;padding:4px;gap:3px}
.bs-seg button{flex:1;appearance:none;border:0;background:transparent;font:inherit;font-size:13px;font-weight:500;
  color:var(--fg-2);padding:8px 4px;border-radius:9px;cursor:pointer;transition:all .14s}
.bs-seg button.on{background:var(--card);color:var(--fg);font-weight:550;box-shadow:var(--sh-sm)}

.bs-reqs{display:flex;flex-wrap:wrap;gap:8px}
.bs-req{display:inline-flex;align-items:center;gap:6px;appearance:none;cursor:pointer;font:inherit;font-size:12.5px;font-weight:500;
  color:var(--fg-2);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:7px 11px;transition:all .14s}
.bs-req:hover{background:var(--content2)}
.bs-req.on{color:var(--primary);background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 42%,transparent)}
.bs-req svg{width:16px;height:16px}
.bs-reqs + .bs-input{margin-top:10px}

.bs-foot{display:flex;gap:10px;padding:18px 26px;border-top:1px solid var(--border-soft)}
.bs-ghost{flex:0 0 auto;appearance:none;font:inherit;font-size:14px;font-weight:500;cursor:pointer;padding:0 18px;border-radius:12px;
  border:1px solid var(--border);background:var(--card);color:var(--fg);transition:background .14s}
.bs-ghost:hover{background:var(--content2)}
.bs-primary{flex:1;appearance:none;border:0;font:inherit;font-size:15px;font-weight:550;cursor:pointer;height:50px;border-radius:13px;
  color:#fff;background:var(--primary);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--sh-sm);transition:background .15s}
.bs-primary:hover{background:var(--primary-600)}
.bs-primary svg{width:18px;height:18px}

/* ── Liquid Glass applied to the control layer ────────────────────────────── */
/* ── iOS 26 Liquid Glass on the control layer ─────────────────────────────── */
.iconbtn, .icon-ghost, .btn-ghost, .seg, .search, .stats{
  background:linear-gradient(155deg, rgba(255,255,255,.46), rgba(255,255,255,.2));
  -webkit-backdrop-filter:blur(13px) saturate(195%) brightness(1.1) url(#lqd-edge);
  backdrop-filter:blur(13px) saturate(195%) brightness(1.1) url(#lqd-edge);
  box-shadow:
    inset 0 1.2px 0 rgba(255,255,255,1),
    inset 1px 0 0 rgba(255,255,255,.6),
    inset -1px 0 0 rgba(255,255,255,.35),
    inset 0 -1.5px 2px rgba(80,80,120,.16),
    inset 0 0 0 .5px rgba(255,255,255,.45),
    0 6px 20px rgba(30,35,60,.18);
}
.btn-ghost,.icon-ghost{border-radius:999px}
.seg{box-shadow:inset 0 1px .5px rgba(255,255,255,.9), inset 0 0 0 .5px rgba(255,255,255,.4), inset 0 -1.5px 3px rgba(90,90,120,.1), 0 4px 14px rgba(30,35,60,.12)}
[data-theme="dark"] .iconbtn,[data-theme="dark"] .icon-ghost,[data-theme="dark"] .btn-ghost,[data-theme="dark"] .seg{
  background:linear-gradient(155deg, rgba(90,90,100,.5), rgba(50,50,58,.3));
  box-shadow:inset 0 1px .5px rgba(255,255,255,.25), inset 0 0 0 .5px rgba(255,255,255,.12), 0 6px 18px rgba(0,0,0,.5)}

/* primary = tinted Liquid Glass capsule */
.btn-primary{border-radius:999px;
  background:linear-gradient(155deg, color-mix(in srgb,var(--primary) 76%,transparent), color-mix(in srgb,var(--primary) 94%,transparent));
  -webkit-backdrop-filter:blur(12px) saturate(170%);backdrop-filter:blur(12px) saturate(170%);
  box-shadow:inset 0 1px .5px rgba(255,255,255,.6), inset 0 0 0 .5px rgba(255,255,255,.3), 0 6px 20px color-mix(in srgb,var(--primary) 42%,transparent)}
.btn-primary:hover{background:linear-gradient(155deg, color-mix(in srgb,var(--primary) 84%,transparent), var(--primary))}

/* travelling specular sweep on round glass buttons */
.iconbtn::before,.icon-ghost::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.6) 46%,transparent 60%);
  transform:translateX(-120%);transition:transform .55s ease}
.iconbtn:hover::before,.icon-ghost:hover::before{transform:translateX(120%)}

/* gooey (metaball) tab indicator — liquid flow between tabs */
.seg-goo{position:absolute;inset:0;z-index:0;pointer-events:none;filter:url(#goo)}
.seg-blob{position:absolute;top:4px;bottom:4px;left:4px;width:0;border-radius:999px;
  background:rgba(255,255,255,.9);
  transition:left .52s cubic-bezier(.5,1.25,.4,1), width .52s cubic-bezier(.5,1.25,.4,1)}
[data-theme="dark"] .seg-blob{background:rgba(120,120,132,.85)}
.seg-blob.glint{box-shadow:inset 0 1px 0 rgba(255,255,255,.95)}

/* now indicator pulse */
.now-bub{animation:nowpulse 2.6s ease-in-out infinite}
@keyframes nowpulse{0%,100%{box-shadow:var(--sh-sm)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 16%,transparent)}}
@media (prefers-reduced-motion:reduce){.now-bub{animation:none}}

/* booking pill entrance — rests visible */
@keyframes pillIn{from{transform:translateY(6px) scale(.985)}to{transform:none}}
.pill{animation:pillIn .45s cubic-bezier(.22,1,.36,1)}
@media (prefers-reduced-motion:reduce){.pill{animation:none}}

/* sheet = clear Liquid Glass */
.bs-scrim{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.bs-card{
  background:linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.7));
  -webkit-backdrop-filter:blur(40px) saturate(200%) brightness(1.05);
  backdrop-filter:blur(40px) saturate(200%) brightness(1.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), inset 0 0 0 .5px rgba(255,255,255,.6), var(--sh-pop)}
[data-theme="dark"] .bs-card{background:linear-gradient(180deg, rgba(40,40,46,.86), rgba(28,28,32,.74));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 0 .5px rgba(255,255,255,.1), var(--sh-pop)}

/* ── Details sheet (C7) ───────────────────────────────────────────────────── */
.ds-card{width:476px;max-width:calc(100vw - 48px)}
.ds-head{padding:22px 24px 14px}
.ds-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ds-titlewrap{min-width:0}
.ds-title-row{display:flex;align-items:center;gap:9px;min-width:0}
.ds-stdot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.ds-title{font-size:20px;font-weight:600;letter-spacing:-.02em;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-tag{flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.02em;color:#fff;padding:2px 7px;border-radius:6px}
.ds-sub{font-size:13px;color:var(--fg-2);margin-top:4px;font-weight:450}
.ds-body{padding:2px 24px 14px;display:flex;flex-direction:column;gap:18px}
.ds-seg{width:100%}
.ds-seg button{flex:1}

.ds-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.ds-cell{display:flex;flex-direction:column;gap:3px;min-width:0}
.ds-cell .l{font-size:11.5px;color:var(--fg-3);font-weight:500}
.ds-cell .v{font-size:14px;font-weight:550;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ds-people{display:inline-flex;align-items:center;gap:5px}
.ds-people svg{width:15px;height:15px;color:var(--fg-2)}

.ds-field{display:flex;flex-direction:column;gap:9px}
.ds-field .l{font-size:11.5px;color:var(--fg-3);font-weight:500}
.ds-reqs{display:flex;flex-wrap:wrap;gap:8px}
.ds-req{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--fg);
  background:var(--content2);border-radius:9px;padding:6px 11px}
.ds-req svg{width:15px;height:15px;color:var(--fg-2)}
.ds-note{display:inline-flex;align-items:center;font-size:12.5px;color:var(--fg-2);background:var(--primary-soft);
  border-radius:9px;padding:6px 11px}

.ds-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 24px 16px}
.ds-act{appearance:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:550;color:var(--fg);
  background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 12px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .14s}
.ds-act:hover{background:var(--content2)}
.ds-act svg{width:16px;height:16px}
.ds-act.primary{grid-column:1 / -1;color:#fff;background:var(--primary);border-color:transparent;box-shadow:var(--sh-sm)}
.ds-act.primary:hover{background:var(--primary-600)}
.ds-act.danger{color:var(--danger-fg)}
.ds-act.danger:hover{background:var(--danger-soft)}

.ds-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-top:1px solid var(--border-soft)}
.ds-foot > span{font-size:11.5px;color:var(--fg-3)}
.ds-history{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:12.5px;font-weight:550;color:var(--primary)}
.ds-history:hover{text-decoration:underline}

/* ── Список / реестр (C4) ──────────────────────────────────────────────────── */
.lv-bar{display:flex;align-items:center;gap:16px;padding:13px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex:0 0 auto}
.lv-tabs{display:flex;gap:5px;flex-wrap:wrap}
.lv-tab{appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:500;color:var(--fg-2);
  background:var(--content2);border:0;border-radius:999px;padding:7px 13px;display:inline-flex;align-items:center;gap:7px;transition:all .14s}
.lv-tab:hover{background:var(--content3)}
.lv-tab.on{background:var(--card);color:var(--fg);font-weight:600;box-shadow:var(--sh-sm)}
.lv-tab-n{font-size:11px;font-weight:600;color:var(--fg-3);background:rgba(17,24,28,.06);border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}
.lv-tab.on .lv-tab-n{color:var(--primary);background:var(--primary-soft)}
.lv-search{width:320px;flex:0 0 auto;margin-left:auto;height:42px}

.lv-scroll{flex:1 1 auto;min-height:0;overflow:auto}
.lv-table{min-width:960px}
.lv-row{display:grid;grid-template-columns:132px 1.5fr 150px 1.4fr 132px 92px 1.1fr;align-items:center;gap:14px;padding:0 20px;height:54px;border-top:1px solid var(--border-soft)}
.lv-row:not(.lv-head){cursor:pointer;transition:background .12s}
.lv-table .lv-row:nth-child(even):not(.lv-head){background:color-mix(in srgb,var(--content2) 55%,transparent)}
.lv-row:not(.lv-head):hover{background:var(--content2)}
.lv-head{position:sticky;top:0;z-index:2;background:var(--card);border-top:0;border-bottom:1px solid var(--border);height:42px}
.lv-head span{font-size:11.5px;font-weight:600;color:var(--fg-3);text-transform:uppercase;letter-spacing:.03em}
.lv-cancel{cursor:default;opacity:.6}
.lv-cancel .lv-guest b{text-decoration:line-through}

.lv-time{font-size:13.5px;font-weight:550;color:var(--fg);font-variant-numeric:tabular-nums}
.lv-time .lv-dash{color:var(--fg-3);font-weight:450}
.lv-guest{display:flex;align-items:center;gap:8px;min-width:0}
.lv-guest b{font-size:14px;font-weight:550;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv-party{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;color:var(--fg-3);font-variant-numeric:tabular-nums;flex:0 0 auto}
.lv-party svg{width:13px;height:13px;opacity:.7}
.lv-phone{font-size:13px;color:var(--fg-2);font-variant-numeric:tabular-nums}
.lv-tbl{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg);font-weight:500;min-width:0}
.lv-hdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.lv-hall{color:var(--fg-2);font-weight:450;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv-chip{display:inline-flex;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.lv-created{font-size:13px;color:var(--fg-3);font-variant-numeric:tabular-nums}
.lv-author{font-size:12.5px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lv-empty{padding:48px;text-align:center;color:var(--fg-3);font-size:13.5px}

.lv-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--border);flex:0 0 auto}
.lv-total{font-size:12.5px;color:var(--fg-2)}
.lv-total b{color:var(--fg);font-weight:600}
.lv-page{display:flex;align-items:center;gap:8px}
.lv-pg{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--card);color:var(--fg-2);display:grid;place-items:center;cursor:pointer}
.lv-pg:disabled{opacity:.4;cursor:default}
.lv-pg svg{width:16px;height:16px}
.lv-pg-n{font-size:12.5px;color:var(--fg-2);font-variant-numeric:tabular-nums}

/* ── Дашборд (D1) ──────────────────────────────────────────────────────────── */
.db-bar{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--border);flex:0 0 auto}
.db-title{font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--fg)}
.db-sub{font-size:12.5px;color:var(--fg-2);margin-top:2px}
.db-period{margin-left:auto;width:auto}
.db-period button{padding:7px 16px}
.db-range{padding:9px 14px}
.db-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}

.db-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.db-kpi{background:var(--card);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--sh-sm)}
.db-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.db-kpi-l{font-size:13px;color:var(--fg-2);font-weight:500}
.db-kpi-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:12px}
.db-kpi-v{font-size:30px;font-weight:600;letter-spacing:-.025em;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1}
.db-spark{width:76px;height:26px;flex:0 0 auto;opacity:.9}

.db-charts{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.db-card{background:var(--card);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--sh-sm)}
.db-card.db-wide{grid-column:1 / -1}
.db-card-h{display:flex;align-items:baseline;gap:9px;font-size:14.5px;font-weight:600;color:var(--fg);margin-bottom:18px}
.db-card-s{font-size:11.5px;font-weight:450;color:var(--fg-3)}

.db-bars{display:flex;align-items:flex-end;gap:14px;height:172px}
.db-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%}
.db-bar-track{flex:1;width:100%;max-width:46px;display:flex;align-items:flex-end;justify-content:center}
.db-bar-fill{width:100%;border-radius:8px 8px 4px 4px;position:relative;min-height:6px;
  background:color-mix(in srgb,var(--primary) 24%,transparent)}
.db-bar-fill.today{background:var(--primary)}
.db-bar-v{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;color:var(--fg-2);font-variant-numeric:tabular-nums}
.db-bar-fill.today .db-bar-v{color:var(--primary)}
.db-bar-x{font-size:11.5px;color:var(--fg-3);font-weight:500}
.db-bar-x.today{color:var(--fg);font-weight:600}

.db-chan{display:flex;flex-direction:column;gap:14px}
.db-chan-row{display:grid;grid-template-columns:76px 1fr 40px;align-items:center;gap:10px}
.db-chan-l{font-size:13px;color:var(--fg);font-weight:500}
.db-chan-track{height:9px;border-radius:999px;background:var(--content2);overflow:hidden}
.db-chan-fill{height:100%;border-radius:999px}
.db-chan-v{font-size:12.5px;font-weight:600;color:var(--fg-2);text-align:right;font-variant-numeric:tabular-nums}

.db-area{width:100%;height:172px}

/* ── Floor map (C2) ───────────────────────────────────────────────────────── */
.fm-bar{display:flex;align-items:center;gap:16px;padding:13px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex:0 0 auto}
.fm-halls{display:flex;gap:7px}
.fm-hall{appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:500;color:var(--fg-2);
  background:var(--content2);border:0;border-radius:999px;padding:7px 13px;display:inline-flex;align-items:center;gap:7px;transition:all .14s}
.fm-hall:hover{background:var(--content3)}
.fm-hall.on{background:var(--card);color:var(--fg);font-weight:600;box-shadow:var(--sh-sm)}
.fm-hdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.fm-lens{width:auto}
.fm-lens button{padding:7px 16px}
.fm-legend{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.fm-lg{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--fg-2)}
.fm-lg i{width:9px;height:9px;border-radius:3px}

.fm-canvas{flex:1 1 auto;min-height:0;overflow:auto;padding:22px;background:
  repeating-linear-gradient(0deg,transparent,transparent 31px,color-mix(in srgb,var(--border-soft) 60%,transparent) 31px,color-mix(in srgb,var(--border-soft) 60%,transparent) 32px),
  repeating-linear-gradient(90deg,transparent,transparent 31px,color-mix(in srgb,var(--border-soft) 60%,transparent) 31px,color-mix(in srgb,var(--border-soft) 60%,transparent) 32px),
  var(--bg)}
.fm-room{position:relative;border-radius:20px;min-height:calc(100% - 0px);padding:46px 30px 30px;
  display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--hall) 7%,var(--card));
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--hall) 26%,transparent), var(--sh-sm)}
.fm-room-tag{position:absolute;top:14px;left:18px;display:flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;color:color-mix(in srgb,var(--hall) 75%,#2a211c)}
.fm-tables{display:flex;flex-wrap:wrap;gap:26px 30px;align-items:center;justify-content:center;max-width:600px}

/* overview — пространственный план */
.fm-plan{position:relative;width:100%;min-width:880px;height:564px;margin:0 auto}
.fm-plan .fm-zone-plan{position:absolute;margin:0;min-height:0;padding:12px 14px;overflow:visible}
.fm-zone-plan .fm-zone-tables{margin-top:12px;gap:9px 11px}
.fm-znum{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;
  background:color-mix(in srgb,var(--hall) 80%,#000 14%);flex:0 0 auto;margin-right:1px}
.fm-win{position:absolute;background:#bfe0ff;box-shadow:inset 0 0 0 1px #8ec5ff;border-radius:2px;z-index:3}
.fm-win.h{width:42px;height:6px}
.fm-win.v{height:42px;width:6px}
.fm-entrance{position:absolute;left:23%;bottom:9px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--fg-3)}
.fm-entrance svg{width:38px;height:28px}
.fm-entrance span{font-size:11px;font-weight:600;color:var(--fg-2)}

/* overview — все залы (2×2, не используется) */
.fm-overview{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fm-zone{position:relative;border-radius:18px;padding:15px 18px 18px;cursor:pointer;min-height:170px;
  background:color-mix(in srgb,var(--hall) 7%,var(--card));
  box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--hall) 24%,transparent), var(--sh-sm);
  transition:box-shadow .15s ease, transform .15s ease}
.fm-zone:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--hall) 42%,transparent), var(--sh-md)}
.fm-zone-head{display:flex;align-items:center;gap:8px}
.fm-zone-name{font-size:14.5px;font-weight:600;color:color-mix(in srgb,var(--hall) 75%,#2a211c)}
.fm-zone-meta{font-size:11.5px;color:var(--fg-3);font-variant-numeric:tabular-nums;font-weight:500}
.fm-chev{margin-left:auto;color:var(--fg-3);display:grid;place-items:center}
.fm-chev svg{width:18px;height:18px}
.fm-zone-note{font-size:11.5px;color:var(--fg-2);margin-top:2px}
.fm-zone-tables{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:16px;align-items:center}
.fm-table.mini .fm-tid{font-size:10.5px}

.fm-back{appearance:none;border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:550;color:var(--fg-2);
  background:var(--card);border-radius:999px;padding:5px 11px 5px 8px;display:inline-flex;align-items:center;gap:3px;
  box-shadow:var(--sh-sm);margin-right:4px}
.fm-back:hover{color:var(--fg)}
.fm-back svg{width:14px;height:14px}
.fm-room-tag{align-items:center}
.fm-cell{position:relative;display:grid;place-items:center;cursor:pointer}
.fm-chair{position:absolute;width:10px;height:10px;border-radius:3px;background:var(--content3);box-shadow:inset 0 0 0 1px var(--border)}
.fm-table{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  transition:transform .14s cubic-bezier(.22,1,.36,1), box-shadow .14s ease}
.fm-cell:hover .fm-table{transform:translateY(-2px) scale(1.03);z-index:2}
.fm-tid{font-size:13px;font-weight:600;color:var(--fg);letter-spacing:-.01em}
.fm-tcap{display:inline-flex;align-items:center;gap:2px;font-size:10.5px;color:var(--fg-2);font-variant-numeric:tabular-nums}
.fm-tcap svg{width:11px;height:11px;opacity:.7}
.fm-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:9;white-space:nowrap;
  background:var(--fg);color:#fff;border-radius:10px;padding:8px 11px;box-shadow:var(--sh-pop);pointer-events:none}
.fm-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--fg)}
.fm-tip-h{font-size:12px;font-weight:600}
.fm-tip-b{font-size:11.5px;opacity:.85;margin-top:2px}
.fm-tip-b b{font-weight:600;opacity:1}
.fm-tip-free{opacity:.8}
[data-theme="dark"] .fm-tip{background:#000}

/* List placeholder (C4 — заглушка) */
.fm-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--fg-3);padding:40px}
.fm-empty-t{font-size:16px;font-weight:600;color:var(--fg-2)}
.fm-empty-s{font-size:13px}

/* ── Core extras: тосты · уведомления · walk-in · конфликт · мультиселект · drag ── */
.toasts{position:absolute;right:24px;top:84px;z-index:90;display:flex;flex-direction:column;gap:9px;width:348px}
.toast{display:flex;align-items:center;gap:10px;padding:11px 12px 11px 14px;border-radius:14px;
  background:var(--card);box-shadow:var(--sh-pop);font-size:13px;font-weight:500;animation:bs-rise .25s cubic-bezier(.22,1,.36,1)}
.toast .t-ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.toast .t-ic svg{width:14px;height:14px}
.toast.ok .t-ic{background:var(--success-soft);color:var(--success-fg)}
.toast.err .t-ic{background:var(--danger-soft);color:var(--danger-fg)}
.toast.info .t-ic{background:var(--primary-soft);color:var(--primary)}
.toast.saving .t-ic{background:var(--content2)}
.t-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--content3);border-top-color:var(--primary);animation:tspin .8s linear infinite;display:block}
@keyframes tspin{to{transform:rotate(360deg)}}
.toast .t-tx{flex:1;min-width:0;line-height:1.35}
.toast .t-act{appearance:none;border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:600;
  color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:6px 12px;flex:0 0 auto}
.toast.err .t-act{color:var(--danger-fg);background:var(--danger-soft)}
.toast .t-x{appearance:none;border:0;background:transparent;color:var(--fg-3);cursor:pointer;padding:2px;display:grid;place-items:center;flex:0 0 auto}
.toast .t-x svg{width:13px;height:13px}

.hb-actions{position:relative}
.nbadge{position:absolute;top:2px;right:0;min-width:17px;height:17px;border-radius:999px;background:var(--danger);color:#fff;
  font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px;z-index:3;box-shadow:0 0 0 2px var(--bg);font-variant-numeric:tabular-nums}
.ntf-pop{position:absolute;top:50px;right:0;width:344px;z-index:70;background:var(--card);border-radius:16px;
  box-shadow:var(--sh-pop);overflow:hidden;animation:bs-rise .22s cubic-bezier(.22,1,.36,1)}
.ntf-h{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--border-soft);font-size:13.5px;font-weight:600}
.ntf-h button{appearance:none;border:0;background:none;cursor:pointer;font:inherit;font-size:12px;font-weight:550;color:var(--primary)}
.ntf-empty{padding:26px 18px;text-align:center;font-size:12.5px;color:var(--fg-3);line-height:1.5}
.ntf-row{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;appearance:none;border:0;background:none;
  cursor:pointer;font:inherit;padding:11px 16px;border-top:1px solid var(--border-soft)}
.ntf-row:hover{background:var(--content2)}
.ntf-dot{width:7px;height:7px;border-radius:50%;background:transparent;margin-top:6px;flex:0 0 auto}
.ntf-row.un .ntf-dot{background:var(--primary)}
.ntf-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ntf-tx b{font-size:13px;font-weight:550}
.ntf-tx span{font-size:12px;color:var(--fg-2)}
.ntf-t{font-size:11px;color:var(--fg-3);font-variant-numeric:tabular-nums;margin-top:2px;flex:0 0 auto}

.wk-card{width:420px}
.wk-addc{appearance:none;cursor:pointer;font:inherit;font-size:13px;font-weight:550;color:var(--primary);
  background:var(--primary-soft);border:0;border-radius:11px;padding:11px 14px;
  display:inline-flex;align-items:center;gap:8px;justify-content:center}
.wk-addc svg{width:15px;height:15px}
.wk-warn{font-size:12px;color:var(--warning-fg);background:var(--warning-soft);border-radius:9px;padding:7px 11px;font-weight:500;line-height:1.4}
.wk-busy{font-size:12.5px;color:var(--danger-fg);background:var(--danger-soft);border-radius:11px;padding:10px 13px;font-weight:500;line-height:1.45}
.bs-primary.dis{background:var(--content3);color:var(--fg-3);box-shadow:none;cursor:default}

.cf-card{width:470px}
.cf-alts{display:flex;flex-direction:column;gap:9px;padding:4px 26px 18px}
.cf-alt{display:flex;align-items:center;gap:10px;appearance:none;text-align:left;font:inherit;cursor:pointer;
  padding:13px 16px;border-radius:13px;border:1px solid var(--border);background:var(--card);transition:all .14s}
.cf-alt:hover{border-color:var(--primary);background:var(--primary-soft)}
.cf-alt-t{font-size:14.5px;font-weight:600;flex:0 0 auto;font-variant-numeric:tabular-nums}
.cf-alt-s{font-size:12.5px;color:var(--fg-2);flex:1;min-width:0}
.cf-go{color:var(--fg-3);display:grid;place-items:center}
.cf-go svg{width:16px;height:16px}
.cf-none{font-size:13px;color:var(--fg-2);padding:8px 2px;line-height:1.5}

.fm-menu{position:absolute;top:calc(100% - 4px);left:50%;transform:translateX(-50%);z-index:12;
  background:var(--card);border-radius:13px;box-shadow:var(--sh-pop);padding:5px;
  display:flex;flex-direction:column;min-width:182px;animation:bs-rise .18s cubic-bezier(.22,1,.36,1)}
.fm-menu button{appearance:none;border:0;background:none;font:inherit;font-size:13px;font-weight:550;color:var(--fg);
  text-align:left;padding:10px 12px;border-radius:9px;cursor:pointer;display:flex;gap:9px;align-items:center;white-space:nowrap}
.fm-menu button svg{width:16px;height:16px;color:var(--fg-2);flex:0 0 auto}
.fm-menu button:hover{background:var(--content2)}

.fm-cell.sel .fm-table{box-shadow:0 0 0 2.5px var(--primary), var(--sh-sm)}
.fm-multibar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:20;
  display:flex;align-items:center;gap:14px;background:var(--fg);color:var(--bg);
  border-radius:999px;padding:8px 9px 8px 20px;box-shadow:var(--sh-pop);white-space:nowrap;
  animation:bs-rise .22s cubic-bezier(.22,1,.36,1)}
.fm-multibar .m-tx{font-size:13px;font-weight:550}
.fm-multibar .m-tx span{opacity:.6;font-weight:450;margin-left:8px}
.fm-multibar .m-btn{appearance:none;border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:600;
  background:var(--primary);color:#fff;border-radius:999px;padding:9px 16px}
.fm-multibar .m-x{appearance:none;border:0;background:rgba(255,255,255,.16);color:inherit;border-radius:50%;
  width:30px;height:30px;display:grid;place-items:center;cursor:pointer}
[data-theme="dark"] .fm-multibar .m-x{background:rgba(0,0,0,.25)}
.fm-multibar .m-x svg{width:14px;height:14px}

.pill{cursor:grab;touch-action:none}
.pill.dragging{transition:none;z-index:9;cursor:grabbing;opacity:.92;
  box-shadow:0 14px 30px rgba(17,24,28,.25), inset 0 0 0 1px color-mix(in srgb,var(--st) 40%,transparent)}

.ds-hist{display:flex;flex-direction:column;padding:0 24px 10px}
.ds-hist-row{display:flex;gap:11px;padding:8px 0;border-top:1px solid var(--border-soft);font-size:12.5px;align-items:baseline}
.ds-hist-row:first-child{border-top:0}
.ds-hist-row .t{flex:0 0 56px;color:var(--fg-3);font-variant-numeric:tabular-nums}
.ds-hist-row .a{flex:0 0 104px;font-weight:550;color:var(--fg-2)}
.ds-hist-row .x{color:var(--fg);flex:1;min-width:0;line-height:1.4}
.ds-hist-row .x b{font-weight:550}
.ds-hist-note{font-size:11.5px;color:var(--fg-3);padding:6px 0 2px}
.bs-repeat{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--fg-2);padding:2px 2px 0}
