:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9ece7;background:#101715;--muted:#9ba9a0;--line:#33423a;--green:#bcdf84;--panel:#1b2620}*{box-sizing:border-box}body{margin:0}header{height:82px;padding:20px 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:25px;position:sticky;top:0;background:#101715;z-index:3}header b{font-size:23px;letter-spacing:5px}.sub{font-size:10px;display:block;letter-spacing:3px;color:var(--muted);margin-top:4px}nav{display:flex;gap:8px;flex:1}button,input,select{font:inherit}button{background:#2b3b31;color:#f3f6f1;border:1px solid #425345;border-radius:8px;padding:11px 15px;cursor:pointer;min-height:43px}button:hover{border-color:var(--green);background:#354b3b}button.primary{background:var(--green);color:#172216;border:0;font-weight:650}button.danger{color:#ffb4a3}button:disabled{opacity:.4;cursor:not-allowed}input,select{background:#111b15;color:#fff;border:1px solid #435247;border-radius:7px;padding:11px;width:100%;min-height:43px}label{display:block;font-size:13px;color:#afbeb3;margin-bottom:6px}h1{font-weight:500;font-size:32px;margin:0 0 8px}h2{font-weight:550;font-size:21px;margin:0}h3{font-size:16px;margin:0}p{line-height:1.55}.muted{color:var(--muted);font-size:13px}#connection{font-size:12px;color:var(--green)}main{padding:28px 30px;max-width:1800px;margin:auto}.topline{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:26px}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.row>button{flex:0 auto}.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.table{padding:23px;text-align:left;background:var(--panel);min-height:155px;border-radius:12px;display:flex;flex-direction:column;gap:15px}.table strong{font-size:25px}.table.open{border-color:#9fbd75}.table em{font-size:12px;color:#c3df98;font-style:normal}.layout{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(400px,1fr);gap:24px}.panel{background:var(--panel);padding:22px;border:1px solid var(--line);border-radius:12px}.menu{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.menu button{text-align:left;display:flex;flex-direction:column;gap:15px;min-height:100px}.menu span{color:var(--green)}.category{margin:24px 0 12px;color:var(--muted);font-size:12px;letter-spacing:2px;text-transform:uppercase}.item{padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:13px}.item .desc{flex:1}.item small{display:block;margin-top:5px;color:var(--muted)}.badge{display:inline-block;font-size:10px;font-weight:650;border-radius:4px;padding:4px 7px;background:#35463b;color:#c8d8cc;text-transform:uppercase;letter-spacing:1px}.badge.sent{background:#5a4524;color:#f9d38a}.badge.served{background:#314c2c;color:#caf4b3}.badge.void{color:#ffbcae}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.totals{padding:20px 0;font-size:14px}.totals div{display:flex;justify-content:space-between;margin:10px 0}.totals .total{font-size:22px;border-top:1px solid var(--line);padding-top:14px}.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;align-items:start}.ticket{background:var(--panel);border:1px solid #4a5b4a;border-radius:12px;overflow:hidden}.ticket-head{padding:18px;background:#293a2e;display:flex;justify-content:space-between;align-items:center}.ticket-body{padding:0 18px 18px}.ticket .served{opacity:.65}.ticket .served strong{text-decoration:line-through}.ticket .dish{width:100%;text-align:left;margin-top:12px;padding:14px;display:block}.ticket .dish small{display:block;margin-top:7px}.ticket .dish.served{border-color:#72975b}.ticket .dish.sent{border-left:4px solid #dfb564}.empty{padding:60px 25px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.login{max-width:420px;margin:70px auto}.login input,.login select{margin-bottom:18px}.login button{width:100%}dialog{background:#1b2620;color:#eef3eb;border:1px solid #536d57;border-radius:14px;padding:26px;width:min(600px,95vw);max-height:90vh}dialog::backdrop{background:#000b}dialog h2{margin-bottom:20px}dialog input,dialog select{margin-bottom:15px}.check{display:flex;gap:12px;align-items:center;color:#e9ece7;padding:10px 0;border-bottom:1px solid var(--line)}.check input{width:22px;min-height:22px;margin:0}.bill-head{display:flex;justify-content:space-between;gap:10px}.warning{background:#463721;border:1px solid #806434;color:#f2d5a2;padding:12px 16px;border-radius:8px;margin:16px 0;font-size:13px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#f1d8b6;color:#31281e;padding:16px 24px;max-width:90vw;border-radius:10px;display:none;z-index:10}.receipt{background:white;color:black;padding:30px;max-width:420px;margin:auto}.receipt div{margin:10px 0}.receipt hr{border:0;border-top:1px dashed #888}.receipt .total{font-size:22px}.paid{color:#b6da9b}.voided{opacity:.45;text-decoration:line-through}.timer{font-size:13px;color:#ead2a1}.recent{margin-top:30px}.linkbutton{background:none;padding:6px 8px;font-size:12px;min-height:32px}.note{color:#f4d398!important}.login .muted{margin-bottom:25px}@media(max-width:900px){.layout{grid-template-columns:1fr}header{padding:15px;gap:12px;height:auto;flex-wrap:wrap}main{padding:20px 15px}nav{order:3;width:100%}.sub{display:none}.topline{align-items:start}h1{font-size:26px}}@media print{body{background:white}body>*{display:none!important}dialog{display:block!important;position:static;border:0;background:white;width:100%;max-height:none}dialog>*:not(.receipt){display:none!important}.receipt{display:block!important}dialog::backdrop{display:none}}
.floor-scroll{overflow:auto}.floor-map{position:relative;display:block;width:100%;min-width:800px;height:780px;background-color:#17221c;background-image:radial-gradient(#324337 1px,transparent 1px);background-size:24px 24px;border:1px solid var(--line);border-radius:12px}.floor-map .table,.layout-table{position:absolute;width:13%;height:13%;min-height:0;padding:10px;gap:5px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.floor-map .table strong{font-size:20px}.floor-map .table span,.floor-map .table em{font-size:10px}.floor-map .round{border-radius:50%}.floor-map .wide{width:15%;height:10%}.layout-table{touch-action:none;user-select:none}.layout-table.selected{outline:3px solid var(--green)}.layout-table strong{font-size:22px}.layout-table small{color:var(--muted)}.editor{height:700px}.admin-form input[type=checkbox]{width:20px}
/* v3 low-light service theme */
:root{color-scheme:dark;background:#101010;color:#d8d8da;--muted:#96969d;--line:#353539;--green:#b8b8bf;--panel:#1b1b1e}body,header{background:#101010}header b{color:#d5d5d8}nav{flex-wrap:wrap}button{background:#27272b;color:#d8d8df;border-color:#414147}button:hover{background:#343439;border-color:#777782}button.primary{background:#414149;color:#ededf0;border:1px solid #64646f}input,select,textarea{background:#161619;color:#dedee3;border:1px solid #414147}textarea{width:100%;border-radius:7px;padding:12px;font:inherit;margin-bottom:15px}input:focus,select:focus,textarea:focus{outline:2px solid #777782;outline-offset:2px}.table.open{border-color:#777782}.table em,.menu span{color:#aeb6ba}.badge{background:#303037;color:#c2c2ca}.badge.sent{background:#403728;color:#cab88b}.badge.served{background:#2b3830;color:#a8b8aa}.ticket{background:#1b1b1e;border-color:#46464e}.ticket-head{background:#25252a}.ticket .dish.sent{border-left-color:#a38c62}.ticket .dish.served{border-color:#566b5c}dialog{background:#1c1c20;color:#dedee3;border-color:#565660}.warning{background:#302a22;border-color:#514733;color:#c3b79d}.note{color:#bab4a5!important}.timer{color:#b4aa94}.paid{color:#9eb0a5}#connection{color:#aaaeb4}#toast{background:#36363e;color:#e4e4e8;border:1px solid #676771}.floor-map{background-color:#161619;background-image:radial-gradient(#333337 1px,transparent 1px)}.receipt{background:#202024;color:#d5d5db}.receipt-tax{font-size:12px;color:#a2a2aa}.reminder{padding:12px 15px;margin:12px 0;border:1px solid #44444b;border-left-width:4px;border-radius:7px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.tone-amber{border-color:#806737!important;background-color:#2b261e!important}.tone-red{border-color:#82504e!important;background-color:#2c2020!important}.tone-blue{border-color:#4c667f!important;background-color:#1d252d!important}.tone-purple{border-color:#715f84!important;background-color:#28212f!important}.tone-green{border-color:#557363!important;background-color:#202a24!important}.occasion{font-weight:650}.table-note-short{max-width:100%;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stats-grid h2{margin-top:10px}.report-filter{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.report-filter label{flex:1;min-width:160px;margin:0}.option-picker{border:1px solid #44444b;border-radius:8px;margin:10px 0 18px;padding:12px}.option-picker legend{font-size:13px;color:#a6a6ae}.option-edit input[type=hidden]{display:none}.option-edit label{min-width:0}.option-edit button{align-self:center}.new-order{border:2px solid #a24c4c}.new-order .ticket-head{animation:newTicket 2s ease-in-out infinite}.ack-button{margin-top:14px;background:#542d2d;color:#dfb7b7;border-color:#a05959;width:100%;font-weight:650}@keyframes newTicket{0%,100%{background:#25252a}50%{background:#6b2c2c}}@media(prefers-reduced-motion:reduce){.new-order .ticket-head{animation:none;background:#532b2b}}@media(max-width:900px){header{position:static}nav{gap:5px}nav button{padding:8px 10px}.topline>div:last-child{display:flex;gap:6px;flex-wrap:wrap}}@media print{.receipt{background:white!important;color:black!important}.receipt-tax{color:black!important}}
/* v4 tiers and per-dish arrival/firing indicators */
.kitchen-tier{margin-top:18px}.tier-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #494952;padding-top:12px;font-size:13px;color:#b6b6c2}.tier-heading span{font-size:11px;color:#90909d}.arrival-red{border-color:#985352}.dish-red{animation:dishArrival 2s ease-in-out infinite!important;opacity:1!important}.dish-blue{animation:dishUnfired 3s ease-in-out infinite!important;opacity:1!important}.kitchen-clock{color:#b8ac94;font-variant-numeric:tabular-nums}.menu-category h2{font-size:20px}.receipt-tax{display:flex;justify-content:space-between}.ticket .dish{line-height:1.4}.ticket .dish small{font-size:12px}.ticket .dish-red.served strong{color:#d0bcbc}@keyframes dishArrival{0%,100%{background:#322424;border-color:#744242}50%{background:#69302f;border-color:#b36462}}@keyframes dishUnfired{0%,100%{background:#20262f;border-color:#3b506c}50%{background:#293b51;border-color:#6a8db7}}@media(prefers-reduced-motion:reduce){.dish-red{animation:none!important;background:#58302f!important;border-color:#a8615e!important}.dish-blue{animation:none!important;background:#29394d!important;border-color:#6688b1!important}}
/* v5: only incoming, unfired dishes pulse red; existing fired dishes stay steady. */
.arrival-red .ticket-head{animation:newTicket 2s ease-in-out infinite}.ticket .dish.void{opacity:.65;background:#222226;border-color:#48484d}.ticket .dish.void strong{text-decoration:line-through;text-decoration-thickness:2px;color:#b6a6a6}@media(prefers-reduced-motion:reduce){.arrival-red .ticket-head{animation:none;background:#532b2b}}

/* v6: low-light, distinct service priorities and selected navigation. */
nav button.nav-selected {background:#394b5d;color:#fff;border-color:#a6bfd5;box-shadow:inset 0 -3px #a6bfd5;}
.table.open {border-width:3px;box-shadow:0 0 0 2px #738b9f;background:#283f46;}
.table.open.tone-neutral {border-color:#82bcab;background:#253d37;}
.table.open>span:first-child {font-weight:800;color:#f0f5f5;letter-spacing:.04em;}
.ticket.urgent-ticket {border:3px solid #d4b542;background:#39331d;}
.ticket.urgent-ticket .ticket-head {background:#514720;}
.ticket-flags {display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;}
.urgent-label {color:#ffe48a;letter-spacing:.08em;}
.held-summary {padding:0 14px 12px;color:#b9c8dc;}
.ticket-body[hidden] {display:none;}
.kitchen-category h3 {font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:#bccbd7;margin:15px 0 7px;}
.hourly-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;}
.hour-stat {display:flex;flex-direction:column;gap:6px;background:#242a31;padding:12px;border-radius:8px;}
.hour-stat small {color:#a7b2bf;}

/* v7: clearly yellow urgent tickets and dark melon selection. */
nav button.nav-selected,button.choice-selected {background:#9a782b;color:#fff3cc;border-color:#c9a14a;box-shadow:inset 0 -3px #c9a14a;}
nav button.nav-selected:hover,button.choice-selected:hover {background:#ad8732;}
.send-controls {margin-top:16px;padding:14px;border:1px solid #51472e;border-radius:8px;}
.service-choices {display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;}
.service-choices button {font-size:12px;}
.urgent-check input {accent-color:#c8a144;}
.fold-control {width:100%;font-weight:700;border:2px solid #ae8b3c;background:#6c5426;color:#fff0c0;}
.service-label {font-size:13px;padding:8px 10px;border:1px solid #a68a49;}
.ticket.urgent-ticket {background:#c6a447;color:#251d0c;border-color:#e2bd56;}
.ticket.urgent-ticket .ticket-body,.ticket.urgent-ticket .ticket-flags {background:#c6a447;}
.ticket.urgent-ticket .ticket-head {background:#b59032;color:#211908;}
.ticket.urgent-ticket .muted,.ticket.urgent-ticket .timer,.ticket.urgent-ticket .tier-heading,.ticket.urgent-ticket .tier-heading span,.ticket.urgent-ticket .kitchen-category h3,.ticket.urgent-ticket .held-summary,.ticket.urgent-ticket .urgent-label {color:#33270d;}
.ticket.urgent-ticket .tier-heading {border-color:#6f571f;}
.ticket.urgent-ticket .dish:not(.dish-red):not(.dish-blue) {background:#dec476;color:#271e0a;border-color:#8d6e25;}
.ticket.urgent-ticket .dish:not(.dish-red):not(.dish-blue) .note {color:#493716!important;}
.ticket.urgent-ticket.arrival-red .ticket-head {animation:urgentArrival 2s ease-in-out infinite;}
@keyframes urgentArrival {0%,100%{background:#b59032}50%{background:#b55442}}
@media(prefers-reduced-motion:reduce){.ticket.urgent-ticket.arrival-red .ticket-head{animation:none;border-bottom:4px solid #a53c2e;}}

.receipt-settings {margin-bottom:24px;}
.elegant-receipt {background:#fff;color:#242424;padding:26px 18px;font-size:12px;max-width:420px;font-family:Arial,sans-serif;}
.receipt-brand {text-align:center;padding-bottom:16px;border-bottom:1px solid #333;}
.receipt-brand h2 {font-size:23px;font-weight:700;letter-spacing:1px;}
.receipt-brand p {margin:6px 0;overflow-wrap:anywhere;}
.receipt-address {white-space:pre-line;}
.receipt-slogan {font-style:italic;}
.receipt-meta {padding:8px 0;font-size:12px;}
.receipt-lines {border-collapse:collapse;width:100%;font-size:11px;}
.receipt-lines th {border-bottom:1px solid #333;padding:8px 3px;text-align:right;}
.receipt-lines td {padding:10px 3px;vertical-align:top;text-align:right;border-bottom:1px dotted #bbb;}
.receipt-lines th:first-child,.receipt-lines td:first-child {text-align:left;width:8%;}
.receipt-lines th:nth-child(2),.receipt-lines td:nth-child(2) {text-align:left;width:48%;overflow-wrap:anywhere;}
.receipt-logo {display:block;max-width:55mm;max-height:30mm;margin:0 auto 12px;}
.receipt-lines small {display:block;font-size:10px;margin-top:4px;}
.receipt-summary>div {display:flex;justify-content:space-between;gap:10px;margin:9px 0;}
.receipt-grand {border-top:2px solid #333;padding-top:12px;font-size:17px;}
.receipt-greeting {text-align:center;border-top:1px solid #aaa;padding-top:16px;}
@media print {.elegant-receipt{width:76mm;max-width:100%;padding:3mm;font-size:11px}.receipt-lines{font-size:10px}.receipt-grand{font-size:14px}}

.send-pending {background:#eab63c!important;color:#171717!important;border:2px solid #f8d878!important;box-shadow:0 0 0 3px #eab63c33;font-weight:800;}
.send-idle {opacity:.6;}
.split-selected {background:#d9aa41!important;color:#171717!important;border-color:#d9aa41!important;}

.split-receipt {margin:24px 0;border-top:1px solid #ccc;padding-top:12px;}
@media print {.split-receipt {break-after:page;border:0;margin:0;padding:0}.split-receipt:last-of-type {break-after:auto}}

.guest-count-picker {border:0;padding:0;margin:14px 0 20px;}
.guest-count-picker legend {font-size:13px;color:var(--muted);margin-bottom:8px;}
.guest-count-options {display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.guest-count-options button {min-width:48px;}
[hidden] {display:none!important;}

/* Reservation book */
.reservation-filter,.reservation-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.reservation-filter {grid-template-columns:180px 1fr auto auto;align-items:end;}
.reservation-card {margin:14px 0;border-left:4px solid #a3c77c;}
.reservation-card.status-cancelled,.reservation-card.status-no_show {border-left-color:#dd998b;opacity:.75;}
.reservation-card.status-waitlist {border-left-color:#d7ae56;}
.reservation-card small {display:block;margin-top:5px;}
.reservation-messages {font-size:12px;padding:10px 0;border-top:1px solid var(--line);}
.reservation-messages>div {margin-bottom:8px;}
.reservation-stats {display:flex;gap:10px;flex-wrap:wrap;}
.reservation-allocation {margin:22px 0;}
.reservation-floor {min-width:720px;}
.reservation-floor .table {min-height:100px;padding:10px;gap:4px;}
.reservation-floor .table strong {font-size:18px;}
.reservation-floor .res-selected {outline:3px solid var(--green);background:#3b5736;}
.reservation-floor .res-conflict {border:2px solid #f09080;background:#5c322b;}
.reservation-floor .res-occupied {box-shadow:inset 0 0 0 2px #c99d46;}
.floor-reservation {color:#e3bb68;font-size:11px;line-height:1.3;}
.reservation-fields input,.reservation-fields select {margin-bottom:5px;}
#reservation-booking {max-width:100%;}
@media(max-width:650px){.reservation-filter,.reservation-fields {grid-template-columns:1fr;}nav {flex-wrap:wrap;}header {height:auto;}}

dialog:has(#reservation-booking) {width:min(1000px,96vw);}

header {height:auto;min-height:82px;}

/* Floor plan: one quarter reservation book, three quarters tables. */
.floor-workspace {display:grid;grid-template-columns:minmax(230px,1fr) minmax(0,3fr);gap:18px;height:clamp(540px,calc(100dvh - 230px),900px);min-height:0;}
.floor-reservation-pane {display:flex;flex-direction:column;min-height:0;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;}
.floor-reservation-header {padding:16px;border-bottom:1px solid var(--line);flex-shrink:0;}
.floor-reservation-header h2 {font-size:18px;}
.floor-reservation-header p {font-size:12px;margin:7px 0;}
.floor-reservation-header small {font-size:11px;color:var(--muted);line-height:1.5;display:block;}
.floor-reservation-list {overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:10px;scrollbar-gutter:stable;}
.floor-booking {border:1px solid var(--line);border-radius:9px;margin-bottom:10px;padding:12px;background:#202024;}
.floor-booking-meta {display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;}
.floor-booking h3 {margin-top:8px;overflow-wrap:anywhere;}
.floor-booking p {font-size:11px;color:var(--muted);margin:5px 0;}
.floor-booking small {display:block;font-size:12px;color:#d2b676;}
.floor-booking .actions {gap:5px;margin-top:10px;flex-wrap:wrap;}
.floor-booking .actions button {font-size:12px;padding:8px 10px;min-height:36px;}
.floor-booking-selected {border-color:#e1ba65;box-shadow:0 0 0 1px #e1ba65;background:#302b20;}
.floor-reservation-footer {border-top:1px solid var(--line);padding:10px;display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0;}
.floor-reservation-footer button {font-size:12px;padding:8px;}
.floor-reservation-empty {padding:24px 8px;color:var(--muted);font-size:13px;line-height:1.6;}
.floor-table-pane {min-width:0;min-height:0;display:flex;flex-direction:column;}
.floor-table-heading,.floor-allocation-bar {display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;margin-bottom:10px;flex-shrink:0;}
.floor-allocation-bar {background:#302b20;border-color:#b19351;font-size:13px;}
.floor-allocation-bar small {display:block;margin-top:5px;color:var(--muted);}
.floor-table-pane>.floor-scroll {flex:1;min-height:0;border-radius:12px;}
.floor-table-pane .floor-map {min-width:640px;height:100%;min-height:470px;}
.floor-table-pane .floor-map .table strong {font-size:clamp(14px,1.4vw,20px);}
.floor-map .allocation-ready {border:2px solid #d3af5e;box-shadow:0 0 0 2px #d3af5e33;background:#342e20;}
.floor-map .allocation-unavailable {opacity:.5;}
@media(max-width:760px){.floor-workspace {grid-template-columns:1fr;height:auto;}.floor-reservation-pane {height:320px;}.floor-table-pane {height:620px;}.floor-table-heading {flex-wrap:wrap;}}

/* Compact iPad table cards: contained lines and no redundant labels. */
.floor-table-pane .floor-map .table {padding:5px;gap:2px;overflow:hidden;min-width:0;line-height:1.15;}
.floor-table-pane .floor-map .table>* {max-width:100%;min-width:0;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.floor-table-pane .floor-map .table strong {font-size:clamp(12px,1.35vw,18px);line-height:1.15;}
.floor-table-pane .floor-map .table small,.floor-table-pane .floor-map .table em,.floor-table-pane .floor-map .table span {font-size:10px;line-height:1.2;margin:0;}
.floor-table-pane .floor-map .table.round {padding:7px;}
.floor-reservation-header {padding:10px 12px;}
.floor-reservation-header h2 {font-size:16px;}
.floor-reservation-date {display:flex;align-items:end;gap:6px;margin:8px 0;}
.floor-reservation-date label {flex:1;min-width:0;margin:0;font-size:11px;}
.floor-reservation-date input {min-height:34px;padding:6px;width:100%;margin:3px 0 0;font-size:12px;}
.floor-reservation-date button {font-size:11px;padding:5px;min-height:34px;}
.floor-reservation-list {padding:6px;}
.floor-booking {padding:8px 9px;margin-bottom:6px;border-radius:7px;}
.floor-booking-meta {font-size:11px;gap:6px;flex-wrap:wrap;}
.floor-booking-status {font-size:10px;color:var(--muted);margin-left:auto;}
.floor-booking-summary {display:flex;align-items:center;gap:8px;margin:5px 0;}
.floor-booking-summary h3 {font-size:13px;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.floor-booking-summary small {font-size:10px;flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.floor-booking .actions {margin-top:5px;gap:5px;}
.floor-booking .actions button {min-height:30px;padding:4px 9px;font-size:11px;}

/* Table minimum heights must not override saved proportional geometry. */

.floor-reservation-date input {font-size:16px;min-width:0;}

/* v17: image branding, right-aligned navigation, and iPad-safe date controls. */
header {height:auto;min-height:82px;gap:18px;flex-wrap:wrap;}
.header-brand {flex:0 0 auto;display:flex;align-items:center;}
.header-brand img {display:block;width:138px;height:70px;object-fit:contain;}
header nav {flex:1 1 0;min-width:0;justify-content:flex-end;margin-left:auto;}
#connection[hidden] {display:none;}
#connection:not([hidden]) {flex:0 0 100%;text-align:right;color:#f2b4a5;}
.floor-reservation-date {display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:stretch;}
.floor-reservation-date label {display:block;width:100%;min-width:0;overflow:hidden;}
.floor-reservation-date input {display:block;width:100%;max-width:100%;min-width:0;min-inline-size:0;box-sizing:border-box;}
.floor-reservation-date input::-webkit-date-and-time-value {text-align:left;min-width:0;}
.floor-reservation-date button {justify-self:end;white-space:nowrap;min-width:54px;margin:0;}
.floor-booking-history {display:block;color:var(--muted);font-size:10px;margin-top:3px;}
@media(max-width:900px){header nav {order:0;width:auto;}header {padding:10px 15px;}.header-brand img {width:118px;height:60px;}}
@media(max-width:580px){header nav {flex-basis:100%;}header nav button {padding:8px 10px;font-size:12px;}}

/* v18 order and checkout controls */
.dish-guest-picker {border:0;padding:0;margin:16px 0;}
.dish-guest-picker legend {font-size:13px;color:var(--muted);margin-bottom:9px;}
.dish-guest-buttons {display:flex;flex-wrap:wrap;gap:8px;}
.dish-guest-buttons button {min-width:46px;min-height:46px;padding:9px;}
.new-order-item {background:#182d48;border-left:4px solid #529eff;border-radius:7px;padding:13px 10px;margin:7px 0;}
.new-item-label {font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#98c8ff;margin-left:9px;}
.archive-date {display:flex;align-items:end;gap:10px;margin-bottom:22px;flex-wrap:wrap;}
.archive-date label {max-width:220px;margin:0;}
.archive-control {background:#314257;}
.hybrid-preview {padding:12px;border:1px solid var(--line);border-radius:8px;margin-top:12px;}
.hybrid-preview>div {display:flex;justify-content:space-between;padding:6px 0;}
[hidden] {display:none!important;}

/* v19: equal-size adjacent Chef actions, including narrow iPad tickets. */
.ticket-controls {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0;}
.ticket-controls .fold-control,.ticket-controls .archive-control {width:100%;min-width:0;min-height:44px;height:44px;padding:8px;border-width:2px;font-weight:700;white-space:nowrap;}

/* v20 dense kitchen tickets; approximately 15% smaller text. */
.kitchen-board {grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:10px;}
.kitchen-board .ticket {font-size:13.6px;border-radius:8px;}
.kitchen-board .ticket-head {padding:9px 10px;gap:6px;}
.kitchen-board .ticket h2 {font-size:17.85px;white-space:nowrap;}
.kitchen-board .ticket-title-line {display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.kitchen-board .service-label {font-size:10.2px;padding:3px 5px;border-radius:4px;}
.kitchen-board .muted,.kitchen-board .timer {font-size:11.05px;}
.kitchen-board .ticket-flags {padding:6px 8px;gap:4px;}
.kitchen-board .ticket-controls {grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;}
.kitchen-board .ticket-controls button {font-size:10.2px;width:100%;min-width:0;height:38px;min-height:38px;padding:5px 2px;border-width:2px;font-weight:700;}
.kitchen-board .ticket-body {padding:0 8px 8px;}
.kitchen-board .kitchen-tier {margin-top:8px;}
.kitchen-board .tier-heading {font-size:11.05px;padding-top:6px;}
.kitchen-board .ticket .dish {font-size:13.6px;line-height:1.25;margin-top:5px;padding:7px 8px;min-height:0;border-radius:6px;}
.kitchen-board .ticket .dish small {font-size:10.2px;margin-top:3px;line-height:1.3;}
.kitchen-board .ticket .dish .kitchen-item-note,.kitchen-board .kitchen-table-note {color:#ff2828!important;font-weight:800;white-space:pre-wrap;overflow-wrap:anywhere;}
.kitchen-board .kitchen-table-note {font-size:11.05px;margin:5px 0;}
.kitchen-board .dish-options {overflow-wrap:anywhere;}
.kitchen-board .held-summary {font-size:11.05px;padding:0 8px 8px;margin:0;}
.kitchen-board .priority-control {background:#302d51;color:#e9ddff;border-color:#8371bd;}
.kitchen-board .priority-control.priority-active {background:#6745a8;color:#fff;border-color:#cfb3ff;}
.kitchen-board .priority-ticket {box-shadow:0 0 0 2px #a981e6;}
.kitchen-board .priority-marker {font-size:9px;font-weight:800;color:#dbb5ff;}
.kitchen-board .urgent-label {font-size:10.2px;}

.kitchen-board .ticket .dish.served,.kitchen-board .ticket .dish.void {opacity:1;}

/* v21 shared app landing and staff ownership */
.screen-home {max-width:900px;margin:8vh auto;padding:25px;}
.screen-home>img {display:block;width:210px;max-width:70%;height:auto;margin-bottom:42px;}
.screen-home h1 {font-size:30px;margin-bottom:24px;}
.screen-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.screen-options a {display:flex;flex-direction:column;gap:15px;padding:36px 24px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:inherit;text-decoration:none;}
.screen-options a:hover {border-color:#ff9c00;}
.screen-options strong {font-size:27px;}
.screen-options span {font-size:13px;color:var(--muted);}
.floor-table-claim {font-size:9.5px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#edbf6d;}
.check-claim {display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;}
.kitchen-board .ticket-staff-line {font-size:10.2px;padding:5px 9px;overflow-wrap:anywhere;}
@media(max-width:600px){.screen-options {grid-template-columns:1fr;}.screen-home {margin-top:3vh;}}

#staff-identity {max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* V22: use the designer's 800 × 700 proportions; scale cards and type together. */
.floor-table-pane .floor-map {min-width:0;width:100%;height:auto;min-height:0;aspect-ratio:8 / 7;container-type:inline-size;}
.floor-table-pane .floor-map .table {min-height:0;padding:3px;padding:.45cqw;gap:1px;gap:.18cqw;line-height:1.1;}
.floor-table-pane .floor-map .table.round {padding:3px;padding:.45cqw;}
.floor-table-pane .floor-map .table strong {font-size:11px;font-size:1.8cqw;line-height:1.1;}
.floor-table-pane .floor-map .table small,.floor-table-pane .floor-map .table em,.floor-table-pane .floor-map .table span {font-size:8px;font-size:1.12cqw;line-height:1.1;}
#staff-identity {display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;max-width:180px;gap:3px;text-align:right;}
#staff-identity:empty {display:none;}
#staff-identity strong {color:#ffdc57;font-size:14px;font-weight:650;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
#staff-identity small {display:block;color:#aaa6a0;font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.password-panel {max-width:600px;}

.floor-map.editor {height:auto;aspect-ratio:8 / 7;}

/* paro 1.0: fit the complete live floor plan to width AND available height. */
.floor-workspace {height:calc(100dvh - 260px);min-height:0;grid-template-columns:minmax(190px,1fr) minmax(0,3fr);}
.floor-workspace .floor-reservation-pane,.floor-workspace .floor-table-pane {height:auto;min-height:0;}
.floor-table-pane>.floor-scroll {display:flex;align-items:center;justify-content:center;overflow:hidden;min-width:0;}
.floor-table-pane .floor-map {flex:none;max-width:100%;max-height:100%;}
.floor-table-pane .floor-map .floor-table-claim {font-size:8px!important;font-size:1.12cqw!important;}
@media(max-width:760px){.floor-workspace {grid-template-columns:minmax(170px,1fr) minmax(0,2fr);gap:10px;}.floor-table-heading {padding:8px;font-size:11px;}.floor-table-heading .muted {font-size:10px;}}
@media(max-width:500px){.floor-workspace {grid-template-columns:minmax(135px,.85fr) minmax(0,1.5fr);gap:6px;}}

/* paro 1.1: compact header and edge-to-edge floor workspace. */
#floor-header-summary[hidden] {display:none;}
#floor-header-summary {flex:0 0 auto;max-width:170px;}
#floor-header-summary h1 {font-size:18px;font-weight:650;letter-spacing:.03em;margin:0 0 4px;}
#floor-header-summary>span {font-size:11px;color:var(--muted);white-space:nowrap;}
#app.floor-page {padding:12px 18px 14px;max-width:none;}
.floor-page .floor-workspace {grid-template-columns:clamp(235px,25vw,300px) minmax(0,1fr);gap:12px;}
.floor-reservation-title {display:flex;align-items:center;gap:6px;margin-bottom:8px;min-width:0;}
.floor-reservation-title h2 {margin:0 auto 0 0;font-size:16px;white-space:nowrap;}
.floor-reservation-title .floor-service-badge {display:block;text-align:center;font-size:10px;padding:4px 6px;white-space:nowrap;line-height:1.2;}
.floor-service-badge small {display:block;font-size:8px;}
.floor-reservation-title button {flex:none;min-height:38px;padding:6px;font-size:11px;}
.floor-page .floor-table-pane .floor-map {aspect-ratio:auto;container-type:size;}
.floor-page .floor-map .table strong {font-size:clamp(9px,min(1.8cqw,2.2cqh),20px);}
.floor-page .floor-map .table small,.floor-page .floor-map .table em,.floor-page .floor-map .table span {font-size:clamp(7px,min(1.12cqw,1.4cqh),12px);}
.floor-page .floor-map .floor-table-claim {font-size:clamp(7px,min(1.12cqw,1.4cqh),12px)!important;}
@media(max-width:1100px){header {gap:12px;padding:10px 15px;}header nav {gap:5px;}header nav button {font-size:12px;padding:8px 9px;}#floor-header-summary {max-width:155px;}#floor-header-summary h1 {font-size:16px;}.header-brand img {width:118px;height:60px;}}
@media(max-width:600px){.floor-page .floor-workspace {grid-template-columns:minmax(175px,1fr) minmax(0,1.5fr);gap:8px;}.floor-reservation-title {flex-wrap:wrap;}.floor-reservation-title h2 {flex:1 1 100%;}#app.floor-page {padding:10px;}}

/* paro 1.2: kitchen controls share the top banner; tickets start immediately below it. */
#app.kitchen-page {padding:12px 18px 14px;max-width:none;}
.kitchen-header-date {display:flex;flex-direction:column;justify-content:center;margin:0;font-size:10px;gap:2px;}
.kitchen-header-date input {width:145px;min-height:34px;padding:5px 8px;font-size:13px;margin:0;}
header nav {align-items:center;}
header nav .kitchen-pending {white-space:nowrap;font-size:11px;padding:8px 10px;}
@media(max-width:600px){#app.kitchen-page {padding:10px;}.kitchen-header-date input {width:135px;}}

.order-category-nav{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;z-index:5;background:#181818;padding:12px 0;border-bottom:1px solid #444}.order-category-nav button{font-size:12px;padding:9px 12px}.category[id^="order-category-"]{scroll-margin-top:130px}

/* Bounded iPad ordering workspace; only the two panels scroll. */
.order-page{padding-top:16px;padding-bottom:16px;}
.order-page>.topline{margin-bottom:12px;}
.order-workspace{height:calc(100dvh - 250px);min-height:0;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;overflow:hidden;}
.order-workspace>.panel{min-width:0;min-height:0;}
.order-menu-panel{display:flex;flex-direction:column;overflow:hidden;padding:16px;}
.order-menu-panel>.row{flex:none;flex-wrap:wrap;}
.order-menu-panel>.order-category-nav{position:static;flex:none;order:0;width:100%;max-height:124px;overflow:auto;padding:10px 0;margin:0;overscroll-behavior:contain;}
.order-menu-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;}
.order-menu-scroll>.category{scroll-margin-top:0;}
.order-check-panel{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.order-menu-scroll .menu button{min-width:0;overflow-wrap:anywhere;}
@media(min-width:700px) and (max-width:1100px){.order-page{padding:12px 15px;}.order-workspace{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;}.order-workspace>.panel{padding:12px;}.order-menu-panel h2{font-size:18px;}.order-menu-panel>.row>button{font-size:11px;padding:8px;}.order-menu-scroll .menu{gap:8px;}.order-menu-scroll .menu button{padding:10px;gap:8px;min-height:80px;}}
@media(max-width:699px){.order-workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:10px;}.order-menu-panel>.order-category-nav{flex-wrap:nowrap;overflow-x:auto;max-height:none;}.order-category-nav button{flex:none;}}

#processing-overlay{position:fixed;inset:12px auto auto 12px;margin:0;width:auto;max-width:340px;height:auto;max-height:70vh;padding:12px 16px;background:#263329;color:white;border:1px solid #819a70;border-radius:8px;font-size:14px;box-shadow:0 3px 12px #0005;z-index:2147483647}#processing-overlay:not([hidden]){display:flex;flex-direction:column;gap:8px}#processing-overlay::backdrop{background:transparent;backdrop-filter:none}#processing-overlay button{font-size:13px}
/* Compact ordering layout: font sizes stay unchanged. */
.order-page{padding-top:8px;padding-bottom:8px}.order-page>.topline{display:block;margin-bottom:8px}.order-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.order-title-row h1{margin-bottom:4px}.order-title-row .check-claim{margin:0;padding:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.order-tools{display:flex;gap:6px;flex-wrap:wrap}.order-tools button{padding:8px 12px;min-height:40px}.order-menu-panel>.order-category-nav{padding:4px 0 8px}.order-menu-scroll .category{margin:14px 0 8px}.order-menu-scroll .category:first-child{margin-top:8px}.order-menu-scroll .menu button{padding:8px 10px;min-height:64px;gap:5px}.order-check-panel>.actions:first-child{margin-top:0}.monthly-sales{margin-bottom:24px}.month-chart-scroll{overflow-x:auto}.month-chart-scroll svg{display:block;width:100%;min-width:650px}.monthly-sales table{width:100%;text-align:left}.monthly-sales td,.monthly-sales th{padding:6px}

.table.table-blocked{border-color:#d56d6d;background:#352828}.table-blocked::after{content:"";position:absolute;inset:6px;background:linear-gradient(35deg,transparent calc(50% - 1px),#ed8c8c88 50%,transparent calc(50% + 1px)),linear-gradient(-35deg,transparent calc(50% - 1px),#ed8c8c88 50%,transparent calc(50% + 1px));pointer-events:none}.blocked-by,.table-occasion{position:relative;z-index:1;background:#171d18dd;padding:2px 4px;border-radius:3px;white-space:normal!important}.close-table{background:#862e2e!important;color:#fff!important;border-color:#b85454!important}.revenue-table{width:100%;text-align:right;border-collapse:collapse}.revenue-table th,.revenue-table td{padding:7px;border-bottom:1px solid #33423a}.revenue-table th:first-child,.revenue-table td:first-child{text-align:left}

button.checkout-green{background:#399d55!important;color:#fff!important;border:1px solid #5ec57b!important}button.checkout-green:hover{background:#2f8647!important}
