/* One semantic palette across the floor, roster and reservation lists. */
:root{--guest-bg:#e8f0f8;--guest-edge:#91abc2;--guest-ink:#294961;--cast-bg:#e7efe9;--cast-edge:#96b09f;--cast-ink:#2d5843;--table-bg:#eae2d5;--table-edge:#b7a58c;--table-ink:#534630;--extension-bg:#fbeae4;--extension-edge:#b94c37;--extension-ink:#843422;--cast-alert-bg:#fff1cc;--cast-alert-edge:#b77b1c;--cast-alert-ink:#734f12}
.live-map.seat-map{background-color:#f2f3ef}.seat-map .map-zone{background:#fff5;border-color:#c9cec5;color:#637065}.seat-map .map-caption{color:#5b6961}
.customer-chair,.customer-chair.vacant,.detail-setting .customer-chair{background:var(--guest-bg);border-color:var(--guest-edge);color:var(--guest-ink)}
.customer-chair b,.customer-chair .guest-type-line,.customer-chair .guest-type-line.nominated,.customer-chair .guest-brief-line>em{color:var(--guest-ink)}
.customer-chair.vacant{opacity:.65}.reception-card{background:#f3f7fb;border-color:#becdda}.reception-person-tile{background:var(--guest-bg);border-color:var(--guest-edge)}
.customer-drag,.customer-drag>span:first-child,.reception-person-tile .text-btn,.reception-group-heading,.reception-cancel{color:var(--guest-ink)}
.group-grip{background:var(--guest-bg);color:var(--guest-ink);border-color:var(--guest-edge)}
.roster-tabs button[data-tab=customers]{border-color:var(--guest-edge);color:var(--guest-ink)}.roster-tabs button[data-tab=customers].selected{background:var(--guest-ink);color:#fff}
.roster-tabs button[data-tab=casts]{border-color:var(--cast-edge);color:var(--cast-ink)}.roster-tabs button[data-tab=casts].selected{background:var(--cast-ink);color:#fff}
.cast-chair,.cast-chair.serving,.cast-chair.reserved,.cast-chair.changeover,.cast-chair.empty{background:var(--cast-bg);border-color:var(--cast-edge);color:var(--cast-ink);box-shadow:0 2px 0 #f9f6fc}
.cast-chair.reserved{border-style:dashed}.cast-chair.empty{opacity:.5}.cast-chair.changeover{opacity:.75}
.cast-tile{background:var(--cast-bg);border-color:var(--cast-edge)}.cast-tile.picked{background:#e4d9ef;border-color:var(--cast-ink);box-shadow:0 0 0 2px var(--cast-edge)}
.cast-grip,.cast-pick,.cast-score{color:var(--cast-ink)}.cast-grip{border-color:var(--cast-edge)}.cast-pick .avatar,.cast-card .avatar{background:#e0d4ec;color:var(--cast-ink)}
.next-summary,.seat-next,.next-reservation,.next-cast-option,.nomination-queue,.nomination-queue h3,.cast-chair>.map-next-name{background:var(--cast-bg);border-color:var(--cast-edge);color:var(--cast-ink)}
.next-list-trigger{background:#f6f2fa;border-color:var(--cast-edge);color:var(--cast-ink)}.queue-order{background:#dfd3eb;color:var(--cast-ink)}
.next-cast-option[aria-pressed=true]{background:#e2d6ed;border-color:var(--cast-ink);box-shadow:inset 0 0 0 1px var(--cast-ink);color:var(--cast-ink)}
.next-reservation.blocked,.seat-next.blocked,.nomination-queue-row.blocked{background:var(--cast-alert-bg);border-color:var(--cast-alert-edge);color:var(--cast-alert-ink)}
.table-setting>.furniture-table,.live-map .table-setting>.furniture-table.map-table{background:var(--table-bg)!important;border-color:var(--table-edge)!important;color:var(--table-ink)!important;box-shadow:0 4px 0 #cbbda540}
.table-setting.stay-empty>.furniture-table{opacity:.7}.map-setting.selected{border-color:#9baeb0;background:#f7faf67a;box-shadow:0 0 0 3px #a8b9bb25}
.table-setting.stay-due{border:3px solid var(--extension-edge);background:#fae9e260;border-radius:18px;box-shadow:0 0 0 4px #b94c3720}
.table-setting.stay-due>.furniture-table,.live-map .table-setting.stay-due>.furniture-table.map-table{background:var(--extension-bg)!important;border-color:var(--extension-edge)!important;color:var(--extension-ink)!important}
.table-setting .stay-clock{border-top:1px solid #ae9e8745;padding-top:6px;margin-top:4px;min-height:32px}.table-setting .stay-clock>span{font-size:14px;font-weight:650}.table-setting .stay-clock>b{font-size:24px;letter-spacing:.02em}
.table-cast-status{font-size:14px;line-height:1.4;min-height:20px;text-align:right;display:block}.signal-soon .table-cast-status,.signal-overdue .table-cast-status{background:var(--cast-alert-bg);color:var(--cast-alert-ink)!important;border-radius:5px;padding:2px 5px}
.cast-soon .cast-chair,.cast-due .cast-chair{border:2px solid var(--cast-alert-edge);border-bottom-width:5px}.cast-due .cast-chair{border-color:#b25037}
.cast-soon .cast-chair .timer,.cast-due .cast-chair .timer{background:var(--cast-alert-bg);color:var(--cast-alert-ink);padding:2px 5px;border-radius:4px}.cast-due .cast-chair .timer{background:#fae2d9;color:#8b3523}
.role-key i.guest-color{background:var(--guest-bg);border-color:var(--guest-edge)}.role-key i.cast-color{background:var(--cast-bg);border-color:var(--cast-edge)}.role-key i.table-color{background:var(--table-bg);border-color:var(--table-edge)}
.stay-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid #dcd8cd;background:#f8f5ef;color:var(--table-ink);font-size:16px;line-height:1.5}.stay-control .btn{flex-shrink:0}.stay-control.due{background:var(--extension-bg);color:var(--extension-ink)}.stay-control.confirmed{background:#f2f3ef;color:#556451}
.stay-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;border:2px solid var(--extension-edge);border-left-width:7px;background:var(--extension-bg);color:var(--extension-ink);border-radius:12px;padding:14px 18px;margin:0 0 18px}.stay-alert-banner>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.stay-alert-banner strong{font-size:22px}.stay-alert-banner span{font-size:16px}.stay-alert-banner .btn{background:#fff6f1;border-color:#cf9282;color:var(--extension-ink);min-height:48px;font-weight:700}
@media(max-width:700px){.stay-control{flex-wrap:wrap;padding:12px 14px;font-size:15px}.stay-control .btn{width:100%}.stay-alert-banner{display:block;padding:12px;margin-bottom:14px}.stay-alert-banner>div+div{margin-top:10px}.stay-alert-banner span{font-size:15px}.stay-alert-banner strong{font-size:21px}.stay-alert-banner .btn{flex:1}.role-key{gap:10px}.role-key span{font-size:14px}}
/* Keep full-table extension outlines clear of the neighboring table's chairs. */
.live-map.seat-map{height:1200px}.live-map.seat-map.has-guest-notes{height:1360px}.live-map.seat-map.has-next-reservations{height:1520px}
/* A suit and a dress identify the two seats without repeated empty-seat copy. */
.person-symbol{width:30px;height:42px;display:block;flex:0 0 auto}.person-symbol.guest{color:var(--guest-ink)}.person-symbol.cast{color:var(--cast-ink)}
.role-key{align-items:center}.role-key>span{display:flex;align-items:center;gap:5px}.role-key .person-symbol{width:18px;height:25px}
.table-setting .customer-chair{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:7px 8px;min-height:84px;border-bottom-width:3px}
.table-setting .customer-heading{display:flex;align-items:center;gap:7px;width:100%}.table-setting .customer-heading .person-symbol{width:26px;height:36px}
.table-setting .customer-identity{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.table-setting .customer-identity b{font-size:18px;line-height:1.2}.table-setting .customer-identity>span{font-size:13px;color:#4c677e;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.table-setting .customer-chair .guest-type-line{font-size:14px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.table-setting .customer-chair .guest-brief{font-size:14px;line-height:1.4;font-weight:650;white-space:normal;overflow-wrap:anywhere;padding-top:4px;border-top:1px solid #91abc255}
.table-setting .cast-chair{min-height:82px;gap:5px;padding:7px 5px}.cast-chair .cast-identity{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;width:100%;justify-content:center}.cast-identity .person-symbol{width:24px;height:34px}.cast-identity strong{font-size:15px;line-height:1.25;font-weight:750;min-width:0;overflow-wrap:anywhere}.cast-chair .cast-timer-row{gap:6px}.cast-chair .timer{font-size:19px;font-variant-numeric:tabular-nums}.chair-points{font-size:13px;font-weight:650}.cast-chair .slot-state{font-size:14px;font-weight:700}.cast-chair.reserved .slot-state{border-radius:5px;background:#dfd2ec;color:#513969;padding:3px 5px}
.table-setting .customer-chair.vacant,.table-setting .cast-chair.empty{min-height:48px;padding:5px;align-items:center;justify-content:center;background:transparent;opacity:.25;border-style:dashed;box-shadow:none}.vacant-station .person-symbol{width:22px;height:31px}
.table-setting.is-occupied{background:#fff8;border-color:#c7c0b4;box-shadow:0 4px 14px #51463212}.table-setting.is-occupied.selected{border-color:#897d68;box-shadow:0 0 0 3px #897d6818}
.table-setting.is-occupied>.furniture-table,.live-map .table-setting.is-occupied>.furniture-table.map-table{background:#e8ddc9!important;border-color:#a18b67!important;border-bottom-width:6px;box-shadow:0 3px 0 #a18b6725}
.table-setting.needs-seating>.furniture-table,.live-map .table-setting.needs-seating>.furniture-table.map-table{background:#f3e5c5!important;border-color:#b49356!important}
.occupancy-state{display:block;align-self:flex-start;padding:3px 8px;background:#d7c6a7;border-radius:5px;font-weight:750;font-size:14px}.needs-seating .occupancy-state{background:#775922;color:#fff!important}
.table-setting .table-topline>strong{font-size:32px;letter-spacing:-.04em}.table-topline strong>small{font-size:14px;font-weight:600;letter-spacing:0;margin-left:3px}.table-headcount{display:flex!important;gap:5px;align-items:center}.table-headcount .person-symbol{width:18px;height:25px;color:var(--table-ink)}.table-headcount b{font-size:24px}.table-headcount b>small{font-size:14px;margin-left:2px}.table-setting .table-score{font-size:14px!important}.table-setting .table-score>b{font-size:24px}.table-setting .stay-clock>span{font-size:13px}.table-setting .stay-clock>b{font-size:23px}.table-cast-status:empty{display:none}
.live-map .map-setting.is-empty{background:transparent;border-color:transparent;box-shadow:none;min-height:100px;align-content:center}.map-setting.is-empty .seat-station{display:none}.live-map .map-setting.is-empty>.furniture-table.map-table{min-height:84px;padding:15px 20px;justify-content:center;background:#eeeDE880!important;border:1px dashed #bcc0b5!important;border-bottom-width:1px;box-shadow:none;opacity:1;color:#71776b!important}.map-setting.is-empty .table-topline>strong{font-size:23px;font-weight:500}.map-setting.is-empty .table-topline{justify-content:center}.live-map .map-setting.is-empty.selected>.furniture-table.map-table{outline:2px solid #a2aa98;outline-offset:3px}
.table-setting.stay-due{border:3px solid var(--extension-edge);background:#fae9e260;box-shadow:0 0 0 4px #b94c3720}.table-setting.stay-due>.furniture-table,.live-map .table-setting.stay-due>.furniture-table.map-table{background:var(--extension-bg)!important;border-color:var(--extension-edge)!important;color:var(--extension-ink)!important}
.seat-map .map-zone{border-color:#d5d8cf;color:#8c9588;font-size:13px}.seat-map .map-caption{font-size:13px;color:#778272}.map-toolbar>p{font-size:15px}.seat-map-hint{color:#71796c;font-size:13px}.detail-setting .cast-identity strong{font-size:19px}.detail-setting .cast-identity .person-symbol{width:30px;height:42px}.detail-setting .cast-chair .timer{font-size:22px}
.replace-current{display:flex;align-items:center;gap:14px;background:var(--cast-bg);border:1px solid var(--cast-edge);padding:14px 18px;border-radius:12px;color:var(--cast-ink)}.replace-current>div{display:flex;flex-direction:column;gap:4px;flex:1}.replace-current strong{font-size:23px}.replace-current small{font-size:14px}.replace-current .timer{font-size:23px}.replace-explanation{font-size:16px;line-height:1.65;margin:16px 0}.replace-note{font-size:14px;line-height:1.6;color:#665979;margin:6px 0}
.replace-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.replace-option{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:3px 8px;text-align:left;border:1px solid var(--cast-edge);border-radius:10px;background:#f6f2fa;color:var(--cast-ink);padding:12px;min-height:80px}.replace-option .person-symbol{grid-row:1/3;width:24px;height:34px}.replace-option strong{font-size:17px;overflow-wrap:anywhere}.replace-option small{font-size:14px;line-height:1.4;overflow-wrap:anywhere}.replace-option[aria-pressed=true]{border:2px solid #695082;background:#e6daf1;padding:11px;box-shadow:0 0 0 2px #69508215}.replace-option:disabled{background:#f2f2ef;border-color:#d6d8d0;color:#767a71;opacity:.75}.replace-option:disabled .person-symbol{opacity:.4}.replace-option:focus-visible{outline:3px solid #375a86;outline-offset:3px}.replace-shortcuts{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid #e0ded5;padding-top:14px;margin-top:16px}.replace-shortcuts .text-btn{margin-right:auto}.replace-options .notice{grid-column:1/-1}
@media(max-width:700px){.replace-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.replace-option{padding:9px;gap:3px 5px}.replace-option[aria-pressed=true]{padding:8px}.replace-option strong{font-size:16px}.replace-current{padding:12px}.replace-explanation{font-size:15px}.detail-setting .cast-identity strong{font-size:16px}.detail-setting .cast-chair .timer{font-size:19px}}
.cast-chair .cast-identity strong{font-size:21px;letter-spacing:.01em}.table-setting .guest-type-line>span{display:inline-block;font-size:14px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.table-setting .guest-type-line>span+span:before{content:' · ';white-space:pre}.cast-chair .timer{color:var(--cast-ink)}.cast-soon .cast-chair .timer{color:var(--cast-alert-ink)}.cast-due .cast-chair .timer{color:#8b3523}
.cast-pick .person-symbol{width:27px;height:38px}.roster-idle{font-size:14px;color:#727c70;margin:8px 0 0}.dispatch-panel:has(.roster-idle){padding:14px}.detail-setting .cast-identity strong{font-size:23px}
@media(min-width:1251px) and (max-width:1440px){.operations-layout{display:flex;flex-direction:column;gap:14px}.operations-main{width:100%}.dispatch-panel{order:-1;width:100%;position:sticky;top:0;z-index:10;padding:12px 14px;box-shadow:0 3px 10px #263e2612}.dispatch-list{flex-direction:row;max-height:none;overflow-y:hidden;overflow-x:auto;padding:3px 3px 6px;gap:10px}.cast-tile{width:200px;min-height:58px;flex-shrink:0}.cast-pick{touch-action:pan-x;min-height:56px}.cast-grip{width:44px;min-width:44px;touch-action:none}.customer-mode .reception-roster{display:flex;flex-direction:row;overflow-x:auto;max-height:300px}.reception-card{width:320px;flex:0 0 320px}.table-detail{scroll-margin-top:190px}}
@media(min-width:701px) and (max-width:1440px){.dispatch-panel:has(.roster-idle){display:flex;align-items:center;gap:20px}.dispatch-panel:has(.roster-idle) .roster-tabs{width:330px;margin-bottom:0}.dispatch-panel:has(.roster-idle) .roster-idle{margin:0}}
@media(min-width:701px) and (max-width:1440px){.dispatch-panel.customer-mode .reception-panel-heading{display:none}.dispatch-panel.customer-mode .reception-hint{margin:0 0 8px}.customer-mode .reception-roster{display:flex;max-height:246px;overflow:auto}.customer-mode .reception-people{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-mode .reception-card{min-width:380px;flex:0 0 380px}.customer-mode .reception-cancel{min-height:28px}.roster-tabs{max-width:400px;margin-bottom:8px}}
.live-map .map-setting.drag-over{outline:3px solid var(--guest-ink);outline-offset:3px}.live-map .map-setting.is-empty.drag-over>.furniture-table.map-table{background:var(--guest-bg)!important;border-color:var(--guest-edge)!important;color:var(--guest-ink)!important}

/* Search stays usable in a busy roster and in cast selection dialogs. */
.cast-search{width:100%;max-width:520px;margin:12px 0}.cast-search-box{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 10px 0 14px;border:1px solid var(--cast-edge);border-radius:10px;background:#fff;color:var(--cast-ink)}.cast-search-box:focus-within{outline:3px solid #69508238;border-color:#695082}.cast-search-box>svg{flex-shrink:0}.cast-search-box input[type=search]{min-width:0;flex:1;width:100%;height:50px;border:0;border-radius:0;background:transparent;padding:10px 0;font-size:18px;color:#342c3d;box-shadow:none;outline:none}.cast-search-box input::placeholder{color:#7a7380;opacity:1}.cast-search-box input::-webkit-search-cancel-button{display:none}.cast-search-box button{flex-shrink:0;width:44px;height:44px;border:0;border-radius:8px;background:#eee8f3;color:var(--cast-ink);font-size:28px;line-height:1;cursor:pointer}.cast-search-box button:focus-visible{outline:3px solid #695082;outline-offset:1px}.cast-search-count{display:block;margin-top:6px;font-size:14px;color:#665b70}.cast-search-count:empty{display:none}.cast-search-empty{padding:20px 12px;margin:12px 0;background:#f3f0f5;border-radius:10px;text-align:center;font-size:17px;color:#655a6f}.dispatch-panel .cast-search{margin:10px 0;max-width:none}
[data-cast-match][hidden],[data-cast-empty][hidden],[data-cast-search-clear][hidden],[data-cast-results] details[hidden]{display:none!important}
.cast-pick{display:grid;grid-template-columns:27px minmax(0,1fr);gap:3px 7px}.cast-pick .person-symbol{grid-row:1/3}.cast-pick strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35}.cast-pick .cast-score{grid-column:2;font-size:14px;line-height:1.2}.cast-pick .cast-score small{font-size:12px}
.dispatch-panel .cast-search-empty{font-size:17px;line-height:1.5;color:#655a6f;margin:12px 0;padding:20px 12px}

.cast-pick .cast-score small{display:inline}
.feedback-shortcut{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0}.feedback-shortcut span{font-size:14px;color:#766882}.learning-caption{font-size:16px;line-height:1.7;color:#665b70}.feedback-records{display:grid;gap:14px}.feedback-record{border:1px solid var(--cast-edge);border-radius:12px;padding:16px;background:#faf8fc}.feedback-record>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.feedback-record strong{font-size:20px;color:var(--cast-ink)}.feedback-record time{font-size:14px;color:#756a7c}.feedback-choices{display:flex;flex-wrap:wrap;gap:8px}.feedback-choices .btn{font-size:16px;min-height:48px}.feedback-choices .btn[aria-pressed=true]{border:2px solid #695082;background:#e8def2;color:#4b335f;box-shadow:0 0 0 2px #69508220}.feedback-record>.text-btn{margin-top:8px}.learning-stats{display:flex;gap:28px;margin:20px 0}.learning-stats>div{display:flex;flex-direction:column;gap:6px}.learning-stats span{font-size:15px;color:#766882}.learning-stats strong{font-size:30px;color:var(--cast-ink)}.learning-stats small{font-size:15px;margin-left:6px;font-weight:500}.archive-files{display:grid;gap:12px}.archive-files article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;background:#f4f1f7;border-radius:10px}.archive-files article>div{display:flex;flex-direction:column;gap:5px}.archive-files strong{font-size:20px}.archive-files span{font-size:14px}.archive-files .btn{flex-shrink:0;min-height:48px}.archive-learning .learning-caption{font-size:16px}
@media(max-width:700px){.feedback-record{padding:12px}.feedback-record>div:first-child{align-items:flex-start;flex-direction:column;gap:5px}.feedback-choices .btn{flex:1 0 calc(50% - 8px);padding:10px 7px}.feedback-choices .btn:last-child{flex-basis:100%}.archive-files article{flex-wrap:wrap}.archive-files .btn{width:100%}}
