:root { --bg:#eef1f4; --card:#fff; --line:#dde2e8; --text:#1f2933; --muted:#4B5563; --bar:#2b3a4a; --accent:#C2410C; --ok:#2f9e44; --warn:#f08c00; --bad:#d6336c; }
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body { margin:0; background:var(--bg); color:var(--text); font:17px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
#app { max-width:560px; margin:0 auto; min-height:100vh; display:flex; flex-direction:column; background:var(--bg); }
header { display:flex; align-items:center; gap:10px; padding:14px 16px; background:var(--bar); color:#fff; position:sticky; top:0; z-index:5; }
header h1 { font-size:20px; margin:0; flex:1; font-weight:600; }
header button { background:none; border:0; color:#fff; font-size:15px; padding:6px 8px; cursor:pointer; }
main { flex:1; padding:12px 14px 110px; }
nav.tabs { display:flex; background:var(--bar); }
nav.tabs button { flex:1; padding:12px; background:none; border:0; border-bottom:4px solid transparent; color:#b8c4d0; font-size:16px; font-weight:600; cursor:pointer; }
nav.tabs button.on { color:#fff; border-bottom-color:var(--accent); }
nav.bottom { position:fixed; bottom:0; left:0; right:0; max-width:560px; margin:0 auto; display:flex; background:#fff; border-top:1px solid var(--line); }
nav.bottom button { flex:1; padding:16px 4px; background:none; border:0; color:var(--muted); font-size:16px; font-weight:600; cursor:pointer; }
nav.bottom button.on { color:var(--accent); box-shadow:inset 0 3px 0 var(--accent); }
.group { margin:18px 0 8px; color:var(--muted); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.card { background:var(--card); border-radius:10px; padding:12px 14px; margin-bottom:8px; display:flex; gap:14px; align-items:center; cursor:pointer; border-left:6px solid var(--ok); box-shadow:0 1px 2px rgba(0,0,0,.08); }
.card.pay { border-left-color:var(--warn); }
.card .big { font-size:30px; font-weight:700; min-width:52px; text-align:center; }
.card .meta { flex:1; color:var(--muted); font-size:15px; }
.card .meta b { color:var(--text); font-weight:600; font-size:17px; }
.badge { font-size:13px; padding:4px 10px; border-radius:20px; background:var(--ok); color:#fff; white-space:nowrap; font-weight:600; }
.badge.pay { background:var(--warn); }
.fab { position:fixed; right:max(16px, calc(50vw - 264px)); bottom:84px; height:60px; padding:0 24px; border-radius:30px; border:0; background:var(--accent); color:#fff; font-size:18px; font-weight:700; box-shadow:0 4px 14px rgba(0,0,0,.3); cursor:pointer; z-index:6; }
.btn { display:block; width:100%; padding:16px; border:0; border-radius:10px; background:var(--accent); color:#fff; font-size:17px; font-weight:700; cursor:pointer; margin-top:12px; }
.btn.alt { background:#fff; color:var(--text); border:2px solid var(--line); }
.btn.bad { background:#fff; color:var(--bad); border:2px solid var(--bad); }
.btn:disabled { opacity:.5; }
input { width:100%; padding:14px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--text); font-size:17px; margin-top:6px; }
label { display:block; margin-top:14px; color:var(--muted); font-size:14px; }
.tables { display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:10px; }
.tbl { padding:18px 4px; text-align:center; border-radius:10px; background:#fff; border:2px solid var(--line); font-size:24px; font-weight:700; cursor:pointer; color:var(--text); }
.tbl small { display:block; font-size:12px; font-weight:600; color:var(--warn); }
.tbl.busy { border-color:var(--warn); }
.row { display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid var(--line); }
.row .grow { flex:1; }
.row .x { background:none; border:0; color:var(--bad); font-size:15px; font-weight:600; cursor:pointer; }
.stepper { display:flex; align-items:center; gap:18px; justify-content:center; margin:18px 0; }
.stepper button { width:60px; height:60px; border-radius:50%; border:2px solid var(--line); background:#fff; color:var(--text); font-size:30px; cursor:pointer; }
.stepper span { font-size:40px; font-weight:700; min-width:60px; text-align:center; }
.sheet-bg { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:20; display:flex; align-items:flex-end; justify-content:center; }
.sheet { background:var(--bg); width:100%; max-width:560px; max-height:88vh; overflow:auto; border-radius:18px 18px 0 0; padding:18px 16px 24px; }
.sheet h2 { margin:0 0 6px; font-size:20px; }
.toast { position:fixed; top:70px; left:50%; transform:translateX(-50%); background:var(--bad); color:#fff; padding:12px 18px; border-radius:10px; z-index:30; max-width:90vw; font-weight:600; }
.toast.ok { background:var(--ok); }
.muted { color:var(--muted); font-size:15px; }
.empty { text-align:center; color:var(--muted); padding:40px 10px; }
.hint { background:#fff; border-radius:10px; padding:12px 14px; color:var(--muted); font-size:15px; margin-bottom:8px; }
.hall { background:#fff; border-radius:10px; padding:12px 14px; margin-bottom:10px; box-shadow:0 1px 2px rgba(0,0,0,.08); }
.hall h3 { margin:0 0 2px; font-size:18px; }
.hall .grp { color:var(--muted); font-size:13px; text-transform:uppercase; margin-bottom:8px; }
.people { display:flex; flex-wrap:wrap; gap:8px; }
.person { padding:10px 16px; border-radius:24px; border:2px solid var(--line); background:#fff; font-size:16px; font-weight:600; color:var(--muted); cursor:pointer; }
.person.on { background:var(--ok); border-color:var(--ok); color:#fff; }
.qty { display:flex; align-items:center; gap:8px; }
.qty button { width:38px; height:38px; border-radius:50%; border:2px solid var(--line); background:#fff; color:var(--text); font-size:22px; cursor:pointer; }
.qty button:disabled { opacity:.35; }
.qty span { min-width:22px; text-align:center; font-weight:700; }
.sum { min-width:70px; text-align:right; }
.total { display:flex; justify-content:space-between; font-size:22px; padding:16px 0 4px; }
.amount { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.amount b { font-size:18px; }
.chips { display:flex; gap:8px; overflow-x:auto; padding:10px 0; }
.chip { flex:none; padding:8px 14px; border-radius:20px; border:2px solid var(--line); background:#fff; color:var(--muted); font-size:15px; font-weight:600; cursor:pointer; }
.chip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.guest { background:#fff; border-radius:10px; padding:4px 14px 8px; margin-bottom:10px; border:2px solid transparent; box-shadow:0 1px 2px rgba(0,0,0,.08); }
.guest.cur { border-color:var(--accent); }
.gh { display:flex; justify-content:space-between; padding:10px 0 4px; font-size:17px; cursor:pointer; }
.gempty { padding:6px 0 8px; }
.mv { margin:0; font-size:13px; color:var(--muted); white-space:nowrap; }
.mv select { font-size:15px; padding:2px; }
.row { flex-wrap:wrap; }

.mods { font-size:14px; color:var(--accent); margin-top:2px; }
.mgroup h3 { margin:14px 0 0; font-size:16px; }
.req { font-size:12px; font-weight:600; color:var(--muted); }
.chips.wrap { flex-wrap:wrap; overflow-x:visible; }
.btn:disabled { opacity:.5; cursor:default; }

.sent { color:#2e9e48; font-weight:600; font-size:14px; }
.btn.go { background:var(--accent); }

.tgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); gap:10px; }
.tcell { display:flex; flex-direction:column; align-items:center; gap:2px; padding:12px 4px; border-radius:12px; border:2px solid var(--line); background:#cfd5dc; color:var(--muted); cursor:pointer; min-height:92px; justify-content:center; }
.tcell b { font-size:26px; color:var(--text); }
.tcell span { font-size:12px; }
.tcell.mine { background:var(--accent); border-color:var(--accent); color:#fff; }
.tcell.mine b, .tcell.mine strong { color:#fff; }
.tcell.other { opacity:.55; background:#fff; }
.note { font-size:14px; color:var(--warn); }
.note-btn { color:var(--muted); }

.dish.stop { opacity:.6; } .dish.stop b, .dish.stop span { color:var(--bad); }

.push { position:fixed; top:10px; left:50%; transform:translateX(-50%); width:min(92vw,480px); background:var(--ok); color:#fff; padding:14px 16px; border-radius:12px; font-weight:700; font-size:17px; box-shadow:0 6px 20px rgba(0,0,0,.35); z-index:50; cursor:pointer; }
.card.kitchen { border-left-color:var(--warn); }
.btn.ready { width:auto; margin:0; padding:12px 18px; }

#pushes { position:fixed; top:10px; left:50%; transform:translateX(-50%); width:min(92vw,480px); z-index:50; display:flex; flex-direction:column; gap:8px; }
#pushes .push { position:static; transform:none; width:auto; animation:pulse 1.2s ease-in-out 3; }
@keyframes pulse { 50% { transform:scale(1.03); } }
.offline { position:fixed; bottom:0; left:0; right:0; background:var(--bad); color:#fff; text-align:center; padding:8px; font-weight:600; z-index:60; }
.card.kitchen.late { border-left-color:var(--bad); }
.row.cancelled { opacity:.55; text-decoration:line-through; }
.row.cancelled .muted { text-decoration:none; }
.legend { display:flex; gap:14px; align-items:center; font-size:13px; color:var(--muted); margin:2px 0 6px; flex-wrap:wrap; }
.legend .d { display:inline-block; width:12px; height:12px; border-radius:4px; margin-right:-8px; }
.legend .d.free { background:#cfd5dc; border:1px solid var(--line); }
.legend .d.mine { background:var(--accent); }
.legend .d.other { background:#fff; border:1px solid var(--line); opacity:.6; }
.sheet .btn.bad { background:var(--bad); color:#fff; }

.tcell { position:relative; }
.tcell .mk { position:absolute; top:4px; right:6px; font-style:normal; font-size:14px; }
.tcell.other { opacity:1; background:#dfe6ee; border-color:#c3cfdc; color:#46576a; }
.tcell.bill { background:#f5d04a; border-color:#e0b100; color:#5a4500; }
.tcell.bill b { color:#3b2f00; }
.legend .d.other { background:#dfe6ee; border:1px solid #c3cfdc; opacity:1; }
.legend .d.bill { background:#f5d04a; }
.tgrid + .group, .chips + .legend { margin-top:6px; }

.bqwho { color:var(--text); font-size:18px; font-weight:700; margin:4px 0 2px; }
.bqtags { display:flex; flex-wrap:wrap; gap:6px; margin:2px 0 4px; }
.bqtag { background:rgba(18,184,134,.14); color:var(--text); border-radius:8px; padding:2px 9px; font-size:15px; font-weight:700; }
.bqgh { display:flex; justify-content:space-between; align-items:center; margin:10px 0 4px; font-weight:700; text-transform:uppercase; font-size:12px; color:var(--muted); }
.bqsrv { text-transform:none; font-size:14px; color:var(--text); display:flex; align-items:center; gap:6px; }
.bqsrv input { width:auto; margin:0; padding:2px 6px; font-size:15px; }
.bqwhen { font-size:18px; font-weight:700; margin:2px 0 6px; }
.bqtag.st { background:rgba(134,142,150,.18); }
.bqinfo { font-size:17px; margin:6px 0; }
.bqinfo b { font-weight:700; }
.bqtag.hall { background:rgba(121,80,242,.14); }
.crs { display:inline-block; border:0; border-radius:12px; padding:2px 10px; margin-left:6px; font-size:12px; font-weight:700; color:#fff; background:#868e96; cursor:default; vertical-align:middle; }
button.crs { cursor:pointer; }
.crs.c1 { background:#adb5bd; } .crs.c2 { background:#12b886; } .crs.c3 { background:#7950f2; } .crs.c4 { background:#495057; }
.card.kitchen.hold { opacity:.55; border-left-color:#7950f2; }
.holdtag { color:#7950f2; font-weight:700; font-size:14px; }
.row.stopped { background:#fff0f3; margin:0 -14px; padding-left:14px; padding-right:14px; }
.stopmsg { color:var(--bad); font-weight:700; font-size:14px; }
.sh { margin:14px 0 0; font-size:16px; }

.dish .price { color:var(--muted); font-size:15px; white-space:nowrap; }
.dish.in { border-left:4px solid var(--accent); padding-left:8px; }
.dish.stop { opacity:1; background:#e9ecef; margin:0 -4px; padding-left:8px; padding-right:8px; border-radius:8px; }
.dish.stop b { color:#868e96; text-decoration:line-through; }
.dish.stop .price, .dish.stop .muted { color:#868e96; }
.stoptag { background:var(--bad); color:#fff; font-size:12px; font-weight:700; padding:3px 10px; border-radius:12px; }
.bdg { display:inline-block; min-width:22px; height:22px; line-height:22px; text-align:center; border-radius:11px; background:var(--accent); color:#fff; font-size:13px; font-style:normal; font-weight:700; margin-left:8px; }
.dish .add { width:38px; height:38px; border-radius:50%; border:2px solid var(--accent); background:#fff; color:var(--accent); font-size:24px; cursor:pointer; }
.cartbar { position:sticky; bottom:-24px; display:flex; align-items:center; gap:12px; background:var(--bg); padding:10px 0 4px; margin-top:8px; border-top:1px solid var(--line); }
.cartbar span { flex:1; font-weight:700; }
.cartbar .btn { margin:0; width:auto; padding:12px 24px; }

/* Статусы столов: каждый свой цвет, чтобы не сливались */
.tcell.free { background:#d3f2dc; border-color:#69c58a; color:#2b6b43; }
.tcell.free b { color:#1b5e35; }
.tcell.other { background:#d0e4ff; border-color:#5c9cf0; color:#1f4f93; }
.tcell.other b { color:#163e78; }
.tcell.mine { background:var(--accent); border-color:#c2410c; }
.legend .d.free { background:#d3f2dc; border:1px solid #69c58a; }
.legend .d.other { background:#d0e4ff; border:1px solid #5c9cf0; }
.group { color:#1f2328; font-weight:800; font-size:16px; }

/* ---------- мобильная версия ---------- */
html { -webkit-text-size-adjust:100%; overscroll-behavior-y:contain; }
body { -webkit-touch-callout:none; }
button { touch-action:manipulation; font-family:inherit; }
input, select, textarea { font-size:16px; }
#app { min-height:100vh; min-height:100dvh; }
header { padding-top:max(14px, env(safe-area-inset-top)); padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); }
main { padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
nav.bottom { padding-bottom:env(safe-area-inset-bottom); }
.fab { bottom:calc(84px + env(safe-area-inset-bottom)); }
.sheet { max-height:88vh; max-height:88dvh; padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
.jump { position:sticky; top:var(--hh, 56px); z-index:4; display:flex; gap:8px; overflow-x:auto; padding:8px 14px; margin:0 -14px; background:var(--bg); border-bottom:1px solid var(--line); scrollbar-width:none; }
.jump::-webkit-scrollbar { display:none; }
.jump button { flex:none; padding:7px 13px; border-radius:18px; border:2px solid var(--line); background:#fff; color:var(--text); font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.jump button small { color:var(--muted); font-weight:600; margin-left:4px; }
.group { scroll-margin-top:calc(var(--hh, 56px) + 56px); }
@media (max-width:480px) {
  main { padding-left:12px; padding-right:12px; }
  .jump { margin:0 -12px; padding-left:12px; padding-right:12px; }
  .tgrid { grid-template-columns:repeat(4,1fr); gap:8px; }
  .tcell { min-height:78px; padding:8px 2px; border-radius:10px; }
  .tcell b { font-size:22px; }
  .tcell span { font-size:11px; line-height:1.15; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .tcell strong { font-size:12px; }
  .legend { gap:10px; font-size:12px; }
  .card .big { font-size:26px; min-width:44px; }
  .row .x, .row button { min-height:40px; }
}
@media (max-width:340px) { .tgrid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:481px) { .jump { margin:0 -14px; } }

/* ---------- лесная тема (AEC) ---------- */
header, nav.tabs { background:#1c2b21 url(forest.svg) center bottom/auto 100% repeat-x; color:#f3e3c6; }
header h1 { color:#f3e3c6; text-shadow:0 1px 3px rgba(0,0,0,.45); }
header button { color:#f3e3c6; }
header h1.brand::before, #title::before { content:""; display:inline-block; width:48px; height:48px; margin-right:12px; vertical-align:-14px; background:url(logo.svg) center/contain no-repeat; filter:drop-shadow(0 1px 3px rgba(0,0,0,.45)); }
header { border-bottom:3px solid #f1d9b6; }
header { min-height:76px; }

/* ---------- аккуратная шапка и вкладки на телефоне ---------- */
header h1 { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; font-size:19px; letter-spacing:.2px; }
header button { white-space:nowrap; flex:none; }
@media (max-width:480px) {
  header { gap:6px; min-height:64px; padding-top:max(10px, env(safe-area-inset-top)); padding-bottom:10px; }
  header h1 { font-size:16px; }
  header h1.brand::before, #title::before { width:38px; height:38px; margin-right:8px; vertical-align:-11px; }
  header button { font-size:14px; padding:6px 4px; }
  .chip { padding:7px 14px; font-size:14px; }
  .chips { gap:6px; padding:8px 0; }
  .legend { font-size:11.5px; gap:8px 12px; }
  nav.tabs button { padding:10px 4px; font-size:14px; }
}
.chips { scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.chips::-webkit-scrollbar { display:none; }
.card.member.off { opacity:.55; border-left-color:var(--muted); }
.sheet select { width:100%; padding:14px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--text); margin-top:6px; }
.chip small { opacity:.7; font-weight:600; margin-left:3px; }
.chip { box-shadow:0 1px 2px rgba(0,0,0,.06); transition:background .15s,color .15s; }
.chip.on { box-shadow:0 2px 6px rgba(194,65,12,.35); }

/* ---------- переработка интерфейса: меньше ошибок, понятнее, читаемее ---------- */
/* Цвета: оранжевый — главное и «моё»; зелёный — только статусы; красный — только удаление и ошибки */
.sent { color:#15803d; }
header .who { max-width:46vw; overflow:hidden; text-overflow:ellipsis; font-weight:600; }
header button { min-height:44px; }
.btn { min-height:48px; }
.btn.sec { background:#fff; color:var(--accent); border:2px solid var(--accent); }
.hint2 { text-align:center; color:var(--muted); font-size:14px; margin-top:6px; }
.sheet-gap { height:22px; }
.sheet .btn.alt { margin-top:10px; }
.chip { min-height:44px; display:inline-flex; align-items:center; }
.chip.qm { width:44px; justify-content:center; padding:0; border-radius:50%; }
.chip small { color:inherit; opacity:.85; }

/* Экран столов */
.jump button { min-height:44px; }
.jump button.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.jump button small { color:#4B5563; }
.jump button.on small { color:#fff; }
.legend { color:#4B5563; }
.legend .d.free { background:#d3f2dc; border:1px solid #69c58a; }
.legend .d.emp { background:#e9e4c8; border:1px solid #cfc690; }
.tcell.free { background:#d3f2dc; border:2px solid #69c58a; color:#2b6b43; }
.tcell.free b { color:#1b5e35; }
.tcell.mine, .tcell.mine.bill { border-color:var(--accent); }
.tcell.bill { background:#fde68a; border-color:#d9a400; color:#5a4500; animation:billglow 2.4s ease-in-out infinite; }
.tcell.mine.bill { background:var(--accent); animation:billglow 2.4s ease-in-out infinite; }
@keyframes billglow { 0%,100% { box-shadow:0 0 0 0 rgba(217,164,0,0); } 50% { box-shadow:0 0 0 4px rgba(217,164,0,.45); } }
@media (prefers-reduced-motion:reduce) { .tcell.bill { animation:none; } }
.emptytag { font-style:normal; font-size:11px; font-weight:700; background:#e9e4c8; color:#5b5320; border-radius:8px; padding:2px 6px; }
.tcell.mine .emptytag { background:#fde7d3; color:#7c2d12; }
.tcell span { color:inherit; }

/* Экран заказа */
.ohead { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px; }
.olabel { font-size:18px; font-weight:700; color:var(--text); }
.olabel.bill { color:#8a5a00; }
.gstep { display:flex; align-items:center; gap:6px; font-size:15px; color:var(--muted); white-space:nowrap; }
.gstep b { min-width:18px; text-align:center; color:var(--text); font-size:17px; }
.gstep button { width:44px; height:44px; border-radius:50%; border:2px solid var(--line); background:#fff; color:var(--text); font-size:22px; cursor:pointer; }
.gstep button:disabled { opacity:.35; }
.noitems { text-align:center; color:var(--muted); padding:28px 0; }
.blk { border-radius:12px; padding:2px 12px 6px; margin:10px 0; background:#fff; }
.blk h3 { margin:10px 0 2px; font-size:15px; }
.blk.fresh { border:2px solid var(--accent); }
.blk.fresh h3 { color:var(--accent); }
.blk.kitchen-blk { background:#e5e7eb; border:2px solid transparent; }
.blk.kitchen-blk h3 { color:var(--muted); }
.orow { padding:10px 0; border-bottom:1px solid var(--line); cursor:pointer; }
.orow:last-child { border-bottom:0; }
.orow .l1 { display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.orow .nm { flex:1; min-width:0; overflow-wrap:anywhere; }
.orow .sum { min-width:0; white-space:nowrap; text-align:right; }
.orow .l2 { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
.orow .l2.info { justify-content:flex-start; color:var(--muted); font-size:14px; margin-top:2px; }
.orow.sentrow, .orow.cancelled { cursor:default; }
.orow.sentrow { cursor:pointer; color:#374151; }
.orow.stopped { background:#fff5f5; margin:0 -12px; padding-left:12px; padding-right:12px; }
.crsdd { min-height:44px; padding:0 14px; border-radius:10px; border:1.5px solid var(--line); background:#f3f4f6; color:var(--text); font-size:15px; font-weight:600; cursor:pointer; }
.gtag { font-size:12px; font-weight:700; color:var(--muted); background:#f3f4f6; border-radius:10px; padding:2px 8px; }
.qty button { width:44px; height:44px; }
.obar { position:fixed; left:0; right:0; bottom:0; max-width:560px; margin:0 auto; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:linear-gradient(to top, var(--bg) 70%, rgba(238,241,244,0)); z-index:6; }
.obar .btn { margin:0; min-height:56px; font-size:18px; box-shadow:0 4px 14px rgba(194,65,12,.35); }

/* Меню */
.dish.stop { background:#eceef1; }
.dish.stop b { text-decoration:none; color:#6b7280; }
.dish.stop .muted, .dish.stop .price { color:#6b7280; font-style:italic; }
.dish .add { width:44px; height:44px; }
.cartbar .btn { min-height:48px; }
header .who { flex:0 1 auto; max-width:62%; }
@media (max-width:400px) { #title { font-size:0; flex:1; } header h1 { min-width:0; } }
.tgrid { grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); }
@media (max-width:480px) { .tgrid { grid-template-columns:repeat(4,minmax(0,1fr)); } .tcell { min-width:0; overflow:hidden; } }
@media (max-width:340px) { .tgrid { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* залы: все кнопки видны сразу, без горизонтальной прокрутки */
.jump { position:static; flex-wrap:wrap; overflow:visible; border-bottom:0; padding-top:4px; padding-bottom:4px; }
.jump button { flex:1 1 calc(50% - 8px); min-width:0; overflow:hidden; text-overflow:ellipsis; }
.subline { display:flex; justify-content:space-between; color:var(--muted); font-size:15px; padding:3px 0; }
.fld { display:block; margin:10px 0; font-size:14px; color:var(--muted); }
.fld input { display:block; width:100%; margin-top:4px; padding:12px; font-size:17px; border:2px solid var(--line); border-radius:10px; box-sizing:border-box; }
.l2b { display:flex; gap:8px; }


/* смена: список сотрудников с их залами */
.search { width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--line); background:#fff; font-size:16px; margin-bottom:10px; box-sizing:border-box; }
.staffrow { display:block; width:100%; text-align:left; background:#fff; border:2px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:8px; cursor:pointer; font-size:16px; color:var(--text); }
.staffrow span { display:block; margin-top:3px; font-size:14px; color:var(--muted); }
.staffrow.on { border-color:var(--ok); }
.staffrow.on span { color:var(--ok); font-weight:600; }

/* KPI */
.kpi { background:#1f5d3a; color:#fff; border-radius:12px; padding:12px 16px; margin-bottom:12px; }
.kpi-h { font-size:14px; opacity:.85; }
.kpi-n { font-size:30px; font-weight:800; line-height:1.15; }
.kpi-s { font-size:14px; opacity:.95; }
.kpi .kmuted { display:block; font-size:13px; opacity:.8; margin-top:2px; }
.kmuted { color:var(--muted); font-size:14px; }
.kpirow { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.kval { text-align:right; } .kval b { display:block; font-size:18px; color:var(--ok); }
.kpi-e { margin-top:8px; padding-top:8px; border-top:1px solid #ffffff40; font-size:16px; } .kpi-e b { font-size:20px; } .kpi-e span { opacity:.8; font-size:14px; }

/* KPI: две подписанные цифры */
.kpi-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.kpi-l { font-size:17px; font-weight:600; } .kpi-l small { display:block; font-size:13px; font-weight:400; opacity:.85; }
.kpi-v { font-size:24px; font-weight:800; white-space:nowrap; } .kpi-v.big { font-size:32px; color:#ffe27a; }
.kpi-me { margin-top:10px; padding-top:10px; border-top:1px solid #ffffff55; }
.kpi-f { margin-top:10px; font-size:13px; color:#fff; opacity:.9; }

/* Банкеты: карточка бронирования */
.bqf h2 { font-size:22px; font-weight:800; margin:0 0 4px; }
.bqf label { margin-top:16px; color:var(--text); font-size:15px; font-weight:700; letter-spacing:.01em; }
.bqf input, .bqf select { border:1.5px solid #c9d0d8; border-radius:12px; padding:14px; font-size:17px; margin-top:6px; box-shadow:0 1px 0 rgba(0,0,0,.03); }
.bqf select { display:block; width:100%; background:#fff; color:var(--text); }
.bqf input:focus, .bqf select:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(194,65,12,.18); }
.bqf input::placeholder { color:#8a94a0; }
.bqf .bqs { margin:24px 0 2px; padding:0 0 6px; border-bottom:2px solid var(--accent); color:var(--accent); font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.bqf h2 + .bqs { margin-top:14px; }
.bqf .btn { border-radius:12px; }
.bqf .meta b { font-weight:700; }

/* Выпадающий список залов */
.dd { position:relative; margin-top:6px; }
.dd-btn { width:100%; text-align:left; padding:14px 40px 14px 14px; border:1.5px solid #c9d0d8; border-radius:12px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none' stroke='%23556' stroke-width='2'%3E%3Cpath d='M1 1l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center; font-size:17px; color:var(--text); cursor:pointer; }
.dd-btn.dd-empty { color:#8a94a0; }
.dd-list { margin-top:6px; max-height:280px; overflow:auto; background:#fff; border:1.5px solid #c9d0d8; border-radius:12px; box-shadow:0 6px 18px rgba(0,0,0,.12); }
.dd-i { display:flex; align-items:center; gap:10px; padding:11px 14px; font-size:15px; font-weight:500; color:var(--text); border-bottom:1px solid #eef0f3; cursor:pointer; }
.dd-i:last-child { border-bottom:0; }
.dd-i i { flex:none; width:7px; height:7px; border-radius:50%; background:var(--accent); opacity:.55; }
.dd-i.on { background:#fff1e8; font-weight:700; }
.dd-i.on i { opacity:1; box-shadow:0 0 0 3px rgba(194,65,12,.2); }
.dd-i.dd-o { color:var(--muted); font-style:italic; }
.dd-i.dd-o i { background:#8a94a0; }

/* выбор блюд банкета */
.bqp-top { position:sticky; top:-1px; z-index:3; background:var(--card,#fff); padding:6px 0 8px; margin:0 -2px; }
.bqp-top input { width:100%; }
.bqp-chips { display:flex; gap:8px; overflow-x:auto; padding:10px 2px 2px; scrollbar-width:none; }
.bqp-chips::-webkit-scrollbar { display:none; }
.bqp-chip { flex:none; padding:8px 14px; border:1.5px solid #c9d0d8; border-radius:999px; background:#fff; font-size:14px; font-weight:600; color:var(--text); cursor:pointer; }
.bqp-chip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.bqp-h { display:flex; justify-content:space-between; align-items:center; margin:16px 0 4px; padding:0 0 5px; border-bottom:2px solid var(--accent); color:var(--accent); font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.bqp-h span { font-weight:600; opacity:.7; }
.bqp-r { display:flex; align-items:center; gap:10px; padding:11px 4px; border-bottom:1px solid #eef0f3; cursor:pointer; }
.bqp-r.on { background:#fff1e8; margin:0 -6px; padding-left:10px; padding-right:10px; border-radius:10px; }
.bqp-r.dis { opacity:.45; cursor:default; }
.bqp-n { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.bqp-n b { font-size:15px; font-weight:600; color:var(--text); }
.bqp-n span { font-size:13px; color:var(--muted); }
.bqp-add { flex:none; width:34px; height:34px; border-radius:50%; border:1.5px solid var(--accent); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:22px; line-height:1; }
.bqp-tag { flex:none; font-size:12px; font-weight:700; color:var(--muted); }
.bqp-st { flex:none; display:flex; align-items:center; gap:2px; background:#fff; border:1.5px solid var(--accent); border-radius:999px; }
.bqp-st button { width:34px; height:34px; border:0; background:none; font-size:20px; color:var(--accent); cursor:pointer; }
.bqp-st b { min-width:26px; text-align:center; font-size:15px; }
.bqp-foot { position:sticky; bottom:-1px; z-index:3; background:var(--card,#fff); padding-top:10px; }
.bqp-foot { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:4px; border-top:1px solid #dde2e8; }
.bqp-foot .btn { margin:0; }
.bqp-foot #ok { flex:1 1 100%; }
.bqp-foot .alt { flex:1 1 0; padding:10px 8px; font-size:14px; }
.bqp-st input.bqp-q { width:44px; padding:6px 0; border:0; background:none; text-align:center; font-size:16px; font-weight:700; color:var(--text); }
.bqf details.bqx { margin-top:18px; border-top:2px solid var(--accent); }
.bqf details.bqx > summary { padding:12px 0 4px; color:var(--accent); font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }

/* Календарь банкетов: на весь экран, закрыть и фильтры всегда сверху */
.sheet.bqcal { display:flex; flex-direction:column; max-width:none; width:100vw; height:100dvh; max-height:100dvh; border-radius:0; padding:10px 12px; overflow:hidden; }
.bqcal-h { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.bqcal-h h2 { margin:0; font-size:19px; }
.bqx-close { border:1.5px solid var(--line); background:#fff; color:var(--text); border-radius:10px; padding:8px 14px; font-size:15px; font-weight:700; cursor:pointer; white-space:nowrap; }
.bqcal-nav { display:flex; align-items:center; justify-content:center; gap:14px; margin:4px 0; }
.bqcal-nav .btn { width:auto; margin:0; padding:3px 16px; }
.bqtiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:8px; margin:6px 0; flex:none; }
.bqtile { display:flex; flex-direction:column; align-items:flex-start; gap:2px; background:#fff; border:2px solid var(--line); border-radius:12px; padding:8px 12px; font-family:inherit; color:var(--text); cursor:pointer; text-align:left; }
.bqt-n { font-size:13px; color:#6b7480; font-weight:600; }
.bqt-v { font-size:20px; font-weight:800; line-height:1.15; }
.bqt-s { font-size:12px; color:#8a94a0; }
.bqtile.on { border-color:var(--accent); background:#fff3ec; }
.bqtile.on .bqt-n { color:var(--accent); }
.bqlist { flex:none; max-height:20vh; overflow:auto; background:#fff; border:1px solid var(--line); border-radius:10px; padding:8px 12px; margin-bottom:6px; font-size:14px; }
.bqrow { display:flex; justify-content:space-between; gap:12px; padding:4px 0; border-top:1px solid #eef0f3; }
.bqrow:first-of-type { border-top:0; }
.bqcal-t { flex:1; min-height:0; overflow:auto; border:1px solid var(--line); border-radius:8px; }
.bqcal-f { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:6px; }
.bqcal-f .btn { width:auto; margin:0; padding:6px 12px; font-size:14px; }
.bqcal-f .hint { margin:0; font-size:12px; }

.bqcal-btns { display:flex; gap:8px; }

.bqcal-h .bqx-close { padding:12px 20px; font-size:17px; border-radius:12px; }
#pay.bqx-close { background:var(--accent); border-color:var(--accent); color:#fff; }
.bqrow.go { cursor:pointer; }
.bqrow.go:active { background:#f3f4f6; }

.bqfind { margin:0 0 10px; }
.bqfind input { width:100%; padding:12px 14px; font-size:16px; border:1.5px solid #c9d0d8; border-radius:12px; background:#fff; }
.bqdates { display:flex; gap:8px; align-items:flex-end; margin-top:8px; }
.bqdates label { flex:1; font-size:13px; color:#6b7480; margin:0; }
.bqdates input { margin-top:2px; padding:10px; }
.bqdates .btn { width:auto; margin:0; padding:10px 12px; font-size:14px; }
.tbgrid { display:flex; flex-wrap:wrap; gap:6px; max-height:170px; overflow:auto; padding:2px; }
.tbchip { min-width:44px; padding:9px 10px; font-size:15px; border:1.5px solid #c9d0d8; border-radius:10px; background:#fff; color:#222; }
.tbchip.on { background:#2a7f62; border-color:#2a7f62; color:#fff; font-weight:700; }
.tball { flex-basis:100%; font-weight:600; }

.bqp-sum { flex:1 1 100%; background:var(--card); border-radius:10px; padding:8px 12px; margin-bottom:8px; box-shadow:0 1px 3px rgba(0,0,0,.12); }
.bqp-sl { display:flex; justify-content:space-between; gap:8px; font-size:13px; color:var(--muted); }
.bqp-tot { font-size:17px; margin:2px 0; } .bqp-tot b { font-size:20px; }
.bqp-tot.over, .bqp-tot.over b { color:#e03131; }
.bqp-bud { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; flex-wrap:wrap; }
.bqp-bud label { display:flex; align-items:center; gap:6px; margin:0; }
.bqp-bud input { width:120px; margin:0; padding:3px 6px; font-size:15px; }
.bqp-bud b.ok { color:#2f9e44; } .bqp-bud b.bad { color:#e03131; }
.bqmenusum { background:rgba(18,184,134,.14); border-radius:10px; padding:10px 12px; margin:10px 0; font-size:17px; }
.bqmenusum b { font-size:21px; } .bqmenusum span { display:block; font-size:13px; color:var(--muted); margin-top:2px; }
