:root {
  --bg:#070b14;
  --bg-2:#0b1020;
  --panel:#111827;
  --panel-2:#151d30;
  --line:rgba(148,163,184,.18);
  --line-2:rgba(148,163,184,.28);
  --text:#f5f7fb;
  --ink:#f5f7fb;
  --muted:#9aa4b7;
  --blue:#7c3cff;
  --blue-2:#4f24bd;
  --violet:#8b5cf6;
  --cyan:#58c7ff;
  --green:#4ade80;
  --warn:#f2b84b;
  --bad:#fb7185;
  --shadow:0 18px 54px rgba(0,0,0,.34);
}

* { box-sizing:border-box; }
html, body { margin:0; width:100%; min-height:100%; overflow-x:hidden; font-family:Inter, Segoe UI, Arial, sans-serif; color:var(--text); background:radial-gradient(circle at 18% 0%, rgba(124,60,255,.25), transparent 28%), radial-gradient(circle at 70% 10%, rgba(88,199,255,.12), transparent 24%), var(--bg); }
button, input, select, textarea { font:inherit; }
button { border:0; cursor:pointer; }
h1, h2, h3, p { margin-top:0; }
h1 { font-size:30px; letter-spacing:0; }
h2 { font-size:20px; }
h3 { font-size:15px; }
.app { width:100%; min-height:100vh; overflow-x:hidden; }

.login { min-height:100vh; display:grid; grid-template-columns:1.1fr .9fr; background:radial-gradient(circle at 25% 20%, rgba(124,60,255,.45), transparent 28%), linear-gradient(125deg, #090d18 0%, #111a32 50%, #201052 100%); }
.login-art { padding:56px; color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:12px; font-size:20px; font-weight:900; }
.brand small { display:block; color:var(--muted); font-size:12px; font-weight:700; margin-top:2px; }
.planet-logo { width:46px; height:46px; border-radius:50%; background:#fff; color:var(--blue); display:grid; place-items:center; font-weight:900; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.balloons { position:relative; width:40px; height:44px; flex:0 0 auto; }
.balloons span { position:absolute; width:16px; height:22px; border-radius:50% 50% 45% 45%; box-shadow:0 8px 16px rgba(0,0,0,.22); }
.balloons span:nth-child(1) { left:2px; top:10px; background:#f59e0b; transform:rotate(-18deg); }
.balloons span:nth-child(2) { left:14px; top:3px; background:#8b5cf6; }
.balloons span:nth-child(3) { left:23px; top:8px; background:#f43f5e; transform:rotate(14deg); }
.balloons:after { content:""; position:absolute; left:20px; top:26px; width:18px; height:14px; border-left:1px solid #d4d9e7; border-bottom:1px solid #d4d9e7; transform:skew(-20deg); opacity:.85; }
.login-title { font-size:54px; line-height:1; font-weight:900; max-width:720px; letter-spacing:0; }
.login-sub { font-size:20px; max-width:620px; opacity:.82; }
.login-panel { background:rgba(16,24,39,.82); border:1px solid var(--line); align-self:center; margin:36px; padding:34px; border-radius:8px; box-shadow:var(--shadow); backdrop-filter:blur(18px); }
.quick-logins { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:18px; }

.field { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.field label { color:var(--muted); font-size:12px; font-weight:800; }
.field input, .field select, .field textarea, .toolbar select, .toolbar input {
  width:100%; border:1px solid var(--line); border-radius:8px; padding:12px 13px; background:#0d1424; color:var(--text); outline:none;
}
.field input:focus, .field select:focus, .field textarea:focus, .toolbar select:focus { border-color:rgba(139,92,246,.72); box-shadow:0 0 0 3px rgba(139,92,246,.16); }
.field textarea { min-height:88px; resize:vertical; }

.btn { min-height:40px; border-radius:8px; padding:10px 14px; background:linear-gradient(135deg, var(--blue), var(--blue-2)); color:#fff; font-weight:800; display:inline-flex; gap:8px; align-items:center; justify-content:center; box-shadow:0 10px 24px rgba(79,36,189,.26); }
.btn.secondary { background:rgba(139,92,246,.14); color:#d9ccff; border:1px solid rgba(139,92,246,.28); box-shadow:none; }
.btn.ghost { background:transparent; color:#dce4f7; border:1px solid var(--line-2); box-shadow:none; }
.btn.danger { background:rgba(251,113,133,.18); color:#ff9dad; border:1px solid rgba(251,113,133,.35); box-shadow:none; }
.btn.ok { background:rgba(74,222,128,.14); color:#79f0a5; border:1px solid rgba(74,222,128,.38); box-shadow:none; }
.btn.success { background:linear-gradient(135deg, #22c55e, #15803d); color:#ecfff2; border:1px solid rgba(74,222,128,.52); box-shadow:0 10px 24px rgba(21,128,61,.28); }
.btn.small { min-height:32px; padding:7px 10px; font-size:12px; }
.btn.wide { width:100%; margin-top:12px; }
.icon-btn { width:42px; height:42px; border-radius:8px; background:rgba(255,255,255,.04); border:1px solid var(--line); color:#dbe6ff; font-size:22px; }

.shell { display:grid; grid-template-columns:238px 1fr; min-height:100vh; }
.sidebar { background:rgba(8,13,24,.9); color:#fff; padding:22px 14px 12px; display:flex; flex-direction:column; gap:18px; position:sticky; top:0; height:100vh; border-right:1px solid var(--line); box-shadow:12px 0 45px rgba(0,0,0,.18); }
.role-card { display:flex; gap:11px; align-items:center; padding:12px; border-radius:8px; background:rgba(255,255,255,.035); border:1px solid var(--line); }
.avatar { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,#fde68a,#fb7185); color:#151515; font-weight:900; }
.role-card b { display:block; font-size:14px; }
.role-card span { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.nav { display:flex; flex-direction:column; gap:5px; }
.nav button { min-height:40px; border-radius:8px; padding:10px 12px; text-align:left; color:#c8d0e1; background:transparent; display:flex; align-items:center; gap:10px; font-weight:700; }
.nav button span { width:20px; color:#b69cff; }
.nav button.active, .nav button:hover { background:linear-gradient(135deg, rgba(124,60,255,.95), rgba(74,26,145,.92)); color:#fff; }
.sidebar-clock { margin-top:auto; border:1px solid var(--line); border-radius:8px; padding:13px; background:rgba(255,255,255,.04); display:grid; grid-template-columns:1fr auto; gap:3px 8px; }
.sidebar-clock span, .sidebar-clock small { color:var(--muted); font-size:12px; }
.sidebar-clock b { font-size:24px; }
.sidebar-clock small { grid-column:1 / -1; }

.main { min-width:0; max-width:100vw; overflow-x:hidden; }
.topbar { height:72px; background:rgba(7,11,20,.72); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 24px; position:sticky; top:0; z-index:4; backdrop-filter:blur(18px); }
.page-title { display:flex; align-items:center; gap:18px; }
.topbar h1 { margin:0; }
.user-badge { display:flex; gap:10px; align-items:center; color:var(--muted); font-weight:700; }
.content { padding:18px 22px 26px; }

.grid { display:grid; gap:16px; }
.cols-4 { grid-template-columns:repeat(4, minmax(0,1fr)); }
.cols-3 { grid-template-columns:repeat(3, minmax(0,1fr)); }
.cols-2 { grid-template-columns:repeat(2, minmax(0,1fr)); }
.panel, .card { background:linear-gradient(180deg, rgba(21,29,48,.92), rgba(13,19,33,.94)); border:1px solid var(--line); border-radius:8px; padding:16px; box-shadow:var(--shadow); }
.panel-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.panel-head h2, .panel-head h3 { margin:0; }
.panel-head span { color:#d8def0; font-size:13px; }

.bankets-grid { display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:18px; }
.bankets-main { min-height:438px; }
.date-switch { display:flex; gap:8px; margin-bottom:14px; }
.date-pill { min-width:110px; border-radius:8px; padding:10px 14px; background:rgba(255,255,255,.04); color:#f7f8fb; border:1px solid var(--line); font-weight:800; text-align:center; }
.date-pill span { color:var(--muted); font-size:12px; font-weight:700; }
.date-pill.active { background:linear-gradient(135deg, rgba(124,60,255,.95), rgba(59,31,112,.95)); border-color:rgba(139,92,246,.6); }
.toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:14px; }
.toolbar select, .toolbar input { min-height:38px; max-width:180px; padding:8px 12px; }
.banquet-cards { display:grid; grid-template-columns:repeat(2, minmax(260px,1fr)); gap:10px; }
.banquet-card { position:relative; min-height:138px; overflow:hidden; display:grid; grid-template-columns:86px 1fr; gap:8px; text-align:left; color:#fff; border-radius:8px; padding:13px; border:1px solid var(--line-2); background:#111827; box-shadow:0 10px 22px rgba(0,0,0,.2); isolation:isolate; }
.banquet-card:before { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,14,26,.96) 0%, rgba(10,14,26,.88) 58%, rgba(10,14,26,.42) 100%), radial-gradient(circle at 82% 54%, rgba(124,60,255,.42), transparent 18%); z-index:-1; }
.banquet-card:after { content:""; position:absolute; right:28px; top:30px; width:72px; height:72px; opacity:.2; border-radius:50%; background:repeating-radial-gradient(circle, rgba(255,255,255,.25) 0 2px, transparent 3px 10px); filter:blur(.1px); z-index:-1; }
.banquet-card.art-1:before { background:linear-gradient(90deg, rgba(10,14,26,.94), rgba(10,14,26,.62)), radial-gradient(circle at 80% 30%, rgba(88,199,255,.62), transparent 17%), radial-gradient(circle at 90% 65%, rgba(139,92,246,.7), transparent 19%); }
.banquet-card.art-2:before { background:linear-gradient(90deg, rgba(10,14,26,.94), rgba(10,14,26,.64)), radial-gradient(circle at 78% 45%, rgba(245,158,11,.55), transparent 18%), radial-gradient(circle at 92% 24%, rgba(236,72,153,.72), transparent 17%); }
.banquet-card.art-3:before { background:linear-gradient(90deg, rgba(10,14,26,.94), rgba(10,14,26,.64)), radial-gradient(circle at 82% 32%, rgba(34,197,94,.42), transparent 16%), radial-gradient(circle at 92% 60%, rgba(88,199,255,.62), transparent 17%); }
.banquet-card:hover { transform:translateY(-1px); border-color:rgba(139,92,246,.55); }
.banquet-card.selected, .waiter-card.selected { border-color:rgba(139,92,246,.9); box-shadow:0 0 0 2px rgba(139,92,246,.18), 0 16px 34px rgba(0,0,0,.28); }
.banquet-time { font-size:27px; line-height:1; font-weight:900; }
.banquet-info { display:flex; flex-direction:column; gap:6px; min-width:0; }
.banquet-info b { font-size:15px; max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card-foot { display:flex; justify-content:space-between; gap:10px; color:#d9dfed; font-size:12px; margin-top:auto; }
.event-meta { color:var(--muted); font-size:11px; display:flex; flex-wrap:wrap; gap:8px; }
.menu-ok { color:#71e89b; }
.menu-bad { color:#ff8094; }
.empty-state { min-height:180px; display:grid; place-items:center; border:1px dashed var(--line-2); border-radius:8px; color:var(--muted); }

.right-rail { display:flex; flex-direction:column; gap:14px; }
.mini-calendar { padding:15px; }
.weekdays, .month-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:8px; text-align:center; }
.weekdays span { color:var(--muted); font-size:12px; }
.month-grid span { min-height:28px; display:grid; place-items:center; color:#d6dcec; border-radius:50%; font-size:13px; }
.month-grid span.active { background:linear-gradient(135deg,var(--blue),var(--blue-2)); color:#fff; }
.stat-panel { padding:15px; }
.stat-line { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); color:var(--muted); }
.stat-line:last-child { border-bottom:0; }
.stat-line b { color:#fff; }

.operations-grid { margin-top:14px; display:grid; grid-template-columns:1.1fr .72fr .72fr; gap:14px; align-items:stretch; }
.operations-grid > .panel { min-height:320px; }
.booking-preview { min-height:320px; }
.preview-back { color:var(--muted); font-size:13px; margin-bottom:12px; }
.preview-head { display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:10px; }
.preview-head h2 { margin:0 0 6px; font-size:22px; line-height:1.15; }
.preview-columns { display:grid; grid-template-columns:1.6fr .9fr; gap:10px; }
.info-box { padding:13px; background:rgba(255,255,255,.035); border:1px solid var(--line); border-radius:8px; }
.info-box h3, .compact-panel h2, .panel-head h2 { font-size:20px; line-height:1.15; }
.full-box { grid-column:1 / -1; }
.info-row { display:grid; grid-template-columns:130px 1fr; gap:12px; padding:7px 0; color:var(--muted); font-size:13px; line-height:1.3; }
.info-row b { color:#fff; font-weight:700; }
.mini-menu-line { display:grid; gap:4px; padding:9px 0; border-bottom:1px solid var(--line); }
.mini-menu-line:last-child { border-bottom:0; }
.mini-menu-line b { color:#fff; }
.mini-menu-line span { color:var(--muted); font-size:12px; }
.payment-meter { height:12px; border-radius:999px; background:rgba(255,255,255,.08); overflow:hidden; margin:16px 0 10px; border:1px solid var(--line); }
.payment-meter span { display:block; height:100%; background:linear-gradient(90deg, #4ade80, #8b5cf6); border-radius:inherit; }
.check-row { display:flex; align-items:center; gap:8px; color:#dce4f7; font-size:13px; padding:7px 0; line-height:1.3; }
.check-row input { accent-color:#43d37a; }
.check-mark { width:18px; height:18px; border-radius:4px; border:2px solid rgba(255,255,255,.45); display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; font-weight:950; font-size:15px; color:#07130c; background:rgba(255,255,255,.65); }
.check-row.checked .check-mark { background:var(--green); border-color:var(--green); color:#06230f; box-shadow:0 0 0 2px rgba(74,222,128,.12); }
.status-checks { border:1px solid var(--line); border-radius:8px; padding:10px 12px; background:rgba(255,255,255,.025); margin-bottom:0; }
.status-checks > label:first-child { margin-bottom:4px; }
.status-check-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin-top:8px; }
.status-check-list label { min-height:42px; display:grid; grid-template-columns:24px minmax(0,1fr); align-items:center; gap:9px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); color:#dce6f7; font-weight:800; font-size:13px; line-height:1.2; }
.status-check-list input { width:18px; height:18px; accent-color:var(--green); flex:0 0 auto; }
.status-check-list span { min-width:0; white-space:normal; overflow:visible; overflow-wrap:break-word; }
.preview-actions { display:flex; gap:10px; margin-top:14px; justify-content:flex-end; }
.compact-panel { min-width:0; }
.mini-tabs { gap:4px; margin-bottom:10px; }
.tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.tabs button { border-radius:8px; padding:9px 12px; background:rgba(255,255,255,.04); color:var(--muted); font-weight:800; }
.tabs button.active { background:linear-gradient(135deg, rgba(124,60,255,.85), rgba(57,31,113,.88)); color:#fff; }
.list { display:flex; flex-direction:column; gap:10px; }
.compact-order { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.compact-order b { font-size:16px; margin-right:8px; }
.compact-order span { color:#fff; font-weight:800; }
.compact-order small { display:block; color:var(--muted); margin-top:4px; }
.waiter-card { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.waiter-card b { font-size:20px; display:block; }
.waiter-card span:not(.status) { display:block; font-weight:800; }
.waiter-card small { color:var(--muted); }
.side-notes { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.side-notes div { padding:12px; border-radius:8px; border:1px solid var(--line); background:rgba(124,60,255,.1); }
.side-notes b, .side-notes span { display:block; }
.side-notes span { color:#c5ccda; font-size:12px; margin-top:8px; }
.side-notes.single { grid-template-columns:1fr; }
.control-event-title { padding:12px; border-radius:8px; border:1px solid var(--line); background:rgba(255,255,255,.035); margin-bottom:10px; }
.control-event-title b, .control-event-title span { display:block; }
.control-event-title b { font-size:18px; text-transform:capitalize; line-height:1.2; }
.control-event-title span { color:var(--muted); margin-top:5px; font-size:13px; }
.timeline-list { display:grid; gap:7px; margin:10px 0; }
.timeline-list div { display:grid; grid-template-columns:62px 1fr; gap:10px; align-items:center; padding:9px 12px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.timeline-list b { color:#fff; font-size:16px; line-height:1.1; }
.timeline-list span { color:#c7d1e5; font-size:14px; line-height:1.25; }
.service-list { margin-top:10px; }
.menu-station { margin-top:10px; }
.menu-station h3 { margin:0 0 8px; color:#d8ccff; font-size:14px; text-transform:capitalize; }
.empty-state.small { min-height:96px; }

.card { padding:16px; }
.stat { min-height:120px; display:flex; flex-direction:column; justify-content:space-between; }
.stat .value { font-size:30px; font-weight:900; color:#fff; }
.stat .label { color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; }
.event { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:start; border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:8px; padding:13px; background:rgba(255,255,255,.035); }
.event-title { font-weight:900; margin-bottom:5px; }
.status { width:max-content; border-radius:7px; padding:5px 9px; font-size:11px; font-weight:900; background:rgba(88,199,255,.15); color:#86d9ff; white-space:nowrap; }
.status.good, .status[data-status*="залог"], .status[data-status*="готово"], .status[data-status*="завершено"] { background:rgba(74,222,128,.18); color:#86efac; }
.status.warn, .status[data-status*="меню"], .status[data-status*="работе"] { background:rgba(242,184,75,.17); color:#ffd17a; }
.status.bad, .status[data-status*="отмен"] { background:rgba(251,113,133,.18); color:#ff9dad; }
.status.new, .status[data-status*="предвар"], .status[data-status*="интерес"] { background:rgba(88,199,255,.16); color:#86d9ff; }

.calendar { display:grid; grid-template-columns:repeat(4, minmax(190px,1fr)); gap:8px; }
.calendar-month { grid-template-columns:repeat(4, minmax(190px,1fr)); }
.day { min-height:120px; background:rgba(255,255,255,.035); border:1px solid var(--line); border-radius:8px; padding:9px; }
.day-num { font-weight:900; color:#fff; margin-bottom:8px; }
.chip { display:block; width:100%; border-radius:7px; padding:6px 7px; margin-bottom:6px; color:#fff; background:linear-gradient(135deg,var(--blue),var(--blue-2)); font-size:12px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chip.restaurant { background:linear-gradient(135deg,#0ea5e9,#2563eb); }
.calendar-chip { text-align:left; white-space:normal; padding:8px 9px; display:grid; gap:4px; line-height:1.2; }
.calendar-chip.selected { outline:2px solid rgba(255,255,255,.38); box-shadow:0 0 0 2px rgba(139,92,246,.24), 0 10px 22px rgba(0,0,0,.28); }
.calendar-chip b { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-chip span { font-size:11px; color:rgba(255,255,255,.78); font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kitchen-qty { margin-top:8px; font-size:26px; line-height:1; font-weight:950; color:#fff; }
.form-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; }
.booking-form-sections { display:grid; gap:14px; }
.form-section { border:1px solid var(--line); border-radius:8px; padding:14px; background:rgba(255,255,255,.025); }
.form-section h3 { margin:0 0 12px; color:#fff; font-size:16px; }
.full { grid-column:1 / -1; }
.modal { position:fixed; inset:0; background:rgba(0,0,0,.62); z-index:10; display:grid; place-items:center; padding:20px; backdrop-filter:blur(8px); }
.modal-body { width:min(1120px, 100%); max-height:92vh; overflow:auto; background:#101827; border:1px solid var(--line-2); border-radius:8px; padding:18px; box-shadow:var(--shadow); }
.modal-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.summary-modal { z-index:12; place-items:stretch center; overflow:auto; padding:14px; }
.summary-sheet { width:min(860px, 100%); margin:auto 0; background:#030712; border:1px solid var(--line-2); border-radius:10px; padding:14px; box-shadow:var(--shadow); }
.summary-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:16px; border-radius:10px; background:linear-gradient(135deg, rgba(124,60,255,.28), rgba(88,199,255,.12)); border:1px solid rgba(139,92,246,.25); margin-bottom:12px; }
.summary-back { color:#d9ccff; background:transparent; padding:0; margin-bottom:10px; font-weight:800; }
.summary-hero h2 { margin:0 0 8px; font-size:30px; line-height:1.05; }
.summary-hero p { margin:0; color:#c7d2e8; font-weight:700; }
.summary-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:10px; margin-bottom:10px; }
.summary-card { background:#070b14; border:1px solid var(--line); border-radius:10px; padding:14px; }
.summary-card h3 { margin:0 0 12px; font-size:18px; }
.summary-card p { color:#d5deee; margin:0; line-height:1.45; }
.summary-main { grid-row:span 2; }
.summary-facts { display:grid; gap:10px; }
.summary-facts div { display:grid; gap:4px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.summary-facts div:last-child { border-bottom:0; padding-bottom:0; }
.summary-facts span, .summary-waiter span, .summary-waiter small { color:var(--muted); font-size:12px; font-weight:800; }
.summary-facts b { color:#fff; font-size:17px; line-height:1.25; }
.summary-timeline { display:grid; gap:8px; }
.summary-timeline div { display:grid; grid-template-columns:76px 1fr; align-items:center; gap:10px; padding:10px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.summary-timeline b { font-size:20px; }
.summary-timeline span { color:#dce6f7; font-weight:800; }
.summary-waiter { display:grid; gap:8px; }
.summary-waiter b { font-size:24px; }
.summary-menu { margin-top:10px; }
.summary-menu-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.summary-menu-station { border:1px solid var(--line); border-radius:10px; padding:12px; background:#05070d; }
.summary-menu-station h4 { margin:0 0 10px; color:#d8ccff; font-size:15px; }
.summary-menu-line { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--line); }
.summary-menu-line:last-child { border-bottom:0; }
.summary-menu-line b { display:block; color:#fff; line-height:1.2; }
.summary-menu-line span { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.summary-menu-line strong { color:#8ef0ad; white-space:nowrap; }
.menu-row { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(120px,.55fr) minmax(380px,2.1fr) minmax(240px,1.15fr) 76px; gap:14px; align-items:end; }
.iiko-menu-row { grid-template-columns:minmax(150px,.8fr) minmax(120px,.55fr) minmax(380px,2.1fr) minmax(240px,1.15fr) 76px; }
.menu-row .field { margin-bottom:0; }
.menu-name-field input { min-height:48px; font-size:18px; }
.menu-add-btn { width:76px; min-height:48px; font-size:24px; padding:0; align-self:end; }
.notice { border:1px solid rgba(139,92,246,.35); background:rgba(139,92,246,.12); color:#e6ddff; border-radius:8px; padding:12px 14px; margin-bottom:12px; font-weight:800; }
.station-group { border-top:4px solid var(--blue); }
.kitchen-bookings-panel { margin-bottom:14px; }
.waiter-staff-panel { margin-bottom:14px; }
.waiter-tabs { display:grid; grid-template-columns:repeat(4, minmax(120px,1fr)); gap:10px; }
.waiter-tabs button { min-height:48px; border-radius:8px; border:1px solid var(--line); background:rgba(255,255,255,.035); color:#dce6f7; font-weight:900; }
.waiter-tabs button.active { background:linear-gradient(135deg, var(--blue), var(--blue-2)); color:#fff; border-color:rgba(139,92,246,.75); box-shadow:0 0 0 2px rgba(139,92,246,.16); }
.kitchen-booking-grid { display:grid; grid-template-columns:repeat(4, minmax(150px,1fr)); gap:10px; }
.owner-kitchen-bookings { margin-bottom:10px; padding:12px; }
.owner-kitchen-bookings .kitchen-booking-grid { grid-template-columns:repeat(4, minmax(140px,1fr)); }
.kitchen-booking-card { text-align:left; min-height:78px; border-radius:8px; border:1px solid var(--line); background:rgba(255,255,255,.035); color:#fff; padding:12px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; overflow:hidden; }
.kitchen-booking-card b { font-size:14px; line-height:1.18; display:grid; grid-template-columns:auto 1fr; gap:6px; align-items:start; min-width:0; }
.kitchen-booking-card b span:last-child { min-width:0; white-space:normal; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.kitchen-booking-card span { color:var(--muted); font-size:12px; }
.kitchen-booking-card.selected { border-color:rgba(139,92,246,.9); background:rgba(139,92,246,.14); box-shadow:0 0 0 2px rgba(139,92,246,.16); }
.kitchen-selected .panel-head h2 { text-transform:capitalize; }
.kitchen-stations-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.owner-menu-grid { grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.owner-menu-grid .station-group { padding:12px; }
.owner-menu-grid .station-group h2 { font-size:18px; margin-bottom:10px; }
.kitchen-menu-line { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--line); }
.kitchen-menu-line:last-child { border-bottom:0; }
.kitchen-menu-line b { display:block; color:#fff; font-size:16px; line-height:1.2; }
.kitchen-menu-line span { display:block; color:var(--muted); font-size:11px; margin-top:4px; }
.kitchen-menu-line strong { white-space:nowrap; color:#8ef0ad; font-size:15px; }
.waiter-sheet-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.waiter-menu-box { min-width:0; }
.waiter-menu-first { grid-column:span 1; }
.waiter-menu-category { padding:8px 0; border-bottom:1px solid var(--line); }
.waiter-menu-category:last-child { border-bottom:0; }
.waiter-menu-category h4 { margin:0 0 8px; font-size:13px; color:#d8ccff; }
.menu-check { display:grid; grid-template-columns:1fr auto 42px; gap:10px; align-items:center; padding:10px 0; color:#fff; }
.menu-check.no-check { grid-template-columns:1fr auto; }
.menu-check input { width:30px; height:30px; accent-color:var(--green); justify-self:end; }
.menu-check .waiter-serve-check { width:40px; height:40px; accent-color:var(--green); cursor:pointer; filter:drop-shadow(0 3px 8px rgba(0,0,0,.35)); }
.menu-check .waiter-serve-check:checked { filter:drop-shadow(0 0 10px rgba(74,222,128,.55)); }
.menu-check span { font-weight:800; font-size:13px; }
.menu-check small { color:var(--muted); font-size:11px; }
.kitchen-item { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.kitchen-name { font-size:22px; font-weight:900; }
.kitchen-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.kitchen-status.pending { background:rgba(239,68,68,.18); color:#fecaca; border:1px solid rgba(248,113,113,.58); box-shadow:none; }
.kitchen-status.ready { background:rgba(34,197,94,.2); color:#86efac; border:1px solid rgba(74,222,128,.62); box-shadow:0 0 0 2px rgba(74,222,128,.1); }
.task { display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.035); }
.task input { width:22px; height:22px; accent-color:var(--blue); }
.client-row { display:grid; grid-template-columns:1fr auto; gap:12px; border-bottom:1px solid var(--line); padding:12px 0; }
.archive-table { padding:0; overflow:hidden; }
.archive-table-head, .archive-row { display:grid; grid-template-columns:1.2fr 1fr .9fr .55fr 1.4fr .8fr; gap:12px; align-items:center; }
.archive-table-head { padding:12px 16px; color:#9fb0ca; font-size:12px; font-weight:900; text-transform:uppercase; border-bottom:1px solid var(--line); background:rgba(255,255,255,.025); }
.archive-row { width:100%; text-align:left; padding:14px 16px; color:#dce6f7; background:transparent; border-bottom:1px solid var(--line); }
.archive-row:hover { background:rgba(139,92,246,.08); }
.archive-row:last-child { border-bottom:0; }
.archive-row b, .archive-row small { display:block; }
.archive-row b { color:#fff; font-size:14px; }
.archive-row small { color:var(--muted); margin-top:4px; font-size:11px; }
.print-only { display:none; }

@media (max-width: 1180px) {
  .bankets-grid, .operations-grid { grid-template-columns:1fr; }
  .right-rail { display:grid; grid-template-columns:1fr 1fr; }
}

@media (max-width: 900px) {
  .login { grid-template-columns:1fr; }
  .login-art { padding:28px; min-height:270px; }
  .login-title { font-size:38px; }
  .login-panel { margin:0; border-radius:0; box-shadow:none; }
  .shell { grid-template-columns:1fr; padding-bottom:74px; }
  .sidebar { position:fixed; left:0; right:0; bottom:0; top:auto; height:72px; padding:8px 10px; z-index:8; border-right:0; border-top:1px solid var(--line); }
  .sidebar .brand, .role-card, .sidebar-clock, #resetSeed { display:none; }
  .nav { flex-direction:row; overflow:auto; gap:6px; }
  .nav button { min-width:0; flex:1 1 0; justify-content:center; flex-direction:column; gap:3px; padding:7px 4px; font-size:11px; white-space:nowrap; }
  .nav button span { width:auto; }
  .topbar { padding:0 14px; height:auto; min-height:64px; align-items:flex-start; gap:10px; flex-direction:column; justify-content:center; }
  .page-title { width:100%; min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px; }
  .page-title .btn { width:auto; min-width:0; white-space:nowrap; padding:10px 12px; }
  .topbar h1 { font-size:24px; }
  .user-badge { display:none; }
  .content { width:100%; max-width:100vw; overflow-x:hidden; padding:12px; }
  .modal { width:100vw; overflow-x:hidden; padding:8px; }
  .modal-body { width:100%; max-width:100%; overflow-x:hidden; padding:12px; }
  .booking-form-sections, .form-section, .form-grid, .field, .status-checks { min-width:0; max-width:100%; overflow:hidden; }
  .panel, .card { max-width:100%; }
  .date-switch { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:6px; overflow:visible; padding-bottom:2px; }
  .date-pill { min-width:0; width:100%; padding:10px 6px; font-size:14px; }
  .date-pill span { font-size:11px; }
  .banquet-cards, .right-rail, .preview-columns, .side-notes, .cols-4, .cols-3, .cols-2, .form-grid { grid-template-columns:1fr; }
  .status-checks { padding:10px; }
  .status-check-list { grid-template-columns:1fr; width:100%; gap:8px; }
  .status-check-list label { min-width:0; width:100%; min-height:48px; max-height:none; display:grid; grid-template-columns:34px minmax(0,1fr); padding:9px 10px; align-items:center; justify-content:stretch; }
  .status-check-list span { display:block; min-width:0; max-width:100%; white-space:normal; overflow:visible; overflow-wrap:break-word; font-size:14px; line-height:1.18; }
  .status-check-list input { width:28px; height:28px; margin:0; justify-self:start; }
  .archive-table-head { display:none; }
  .archive-row { grid-template-columns:1fr; gap:6px; }
  .banquet-card { grid-template-columns:1fr; min-height:210px; }
  .banquet-time { font-size:32px; }
  .calendar { grid-template-columns:1fr; }
  .day { min-height:auto; }
  .menu-row, .kitchen-item, .event, .task, .client-row, .waiter-card { grid-template-columns:1fr; }
  .kitchen-booking-grid, .owner-kitchen-bookings .kitchen-booking-grid, .kitchen-stations-grid, .owner-menu-grid, .waiter-sheet-grid, .waiter-tabs { grid-template-columns:1fr; }
  .kitchen-booking-card { min-height:74px; }
  .kitchen-booking-card b { font-size:15px; }
  .menu-check { grid-template-columns:1fr auto 54px; gap:8px; padding:8px 0; }
  .menu-check input { width:34px; height:34px; }
  .menu-check .waiter-serve-check { width:46px; height:46px; }
  .menu-check span { font-size:15px; }
  .summary-modal { padding:0; place-items:stretch; }
  .summary-sheet { min-height:100vh; width:100%; margin:0; border-radius:0; border-left:0; border-right:0; padding:12px; }
  .summary-hero { position:relative; top:auto; z-index:auto; margin:-12px -12px 12px; border-radius:0 0 10px 10px; }
  .summary-hero h2 { font-size:28px; }
  .summary-grid, .summary-menu-grid { grid-template-columns:1fr; }
  .summary-main { grid-row:auto; }
  .summary-facts b { font-size:16px; }
  .summary-timeline div { grid-template-columns:70px 1fr; }
  .quick-logins { grid-template-columns:1fr; }
  .btn { width:100%; }
  .icon-btn { width:38px; height:38px; }
  .toolbar select, .toolbar input, .field input, .field select, .field textarea { max-width:none; width:100%; font-size:16px; }
  .preview-actions { flex-direction:column; }
}

@media print {
  :root { --text:#000; --ink:#000; --muted:#333; }
  body { background:#fff; color:#000; }
  .sidebar, .topbar, .toolbar, .tabs, .no-print, .modal-head .btn, .right-rail { display:none !important; }
  .shell, .bankets-grid, .operations-grid { display:block; }
  .content { padding:0; }
  .panel, .card { background:#fff; color:#000; border:0; box-shadow:none; padding:0; }
  .print-only { display:block; }
  .kitchen-name { font-size:26px; }
  .kitchen-item, .event, .task, .compact-order, .waiter-card { break-inside:avoid; border:2px solid #000; margin-bottom:10px; color:#000; background:#fff; }
  .status { border:1px solid #000; color:#000; background:#fff; }
}
