/* The floor geometry is independent of occupancy, notes and timer states. */
body:has(.live-floor-map){overflow:hidden}
body:has(.live-floor-map) .app-shell{height:100dvh;min-height:0}
body:has(.live-floor-map) .rail{width:64px;min-width:64px}
body:has(.live-floor-map) .main-shell{min-width:0;min-height:0}
body:has(.live-floor-map) .topbar{height:64px;min-height:64px;padding:10px 20px}
.clock-display{font-size:34px!important;line-height:1;letter-spacing:.04em;font-variant-numeric:tabular-nums;font-weight:600;color:#233840;border-left:1px solid #d5dcde;padding-left:20px;min-width:116px}
.operations-workspace:has(.live-floor-map){height:calc(100dvh - 64px);max-width:none;padding:12px 18px 10px;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.operations-workspace:has(.live-floor-map) .operations-heading{flex:none;min-height:72px;margin:0 0 10px;align-items:center;gap:12px}
.operations-workspace:has(.live-floor-map) .floor-summary{gap:18px;margin:0;align-items:center}
.operations-workspace:has(.live-floor-map) .floor-count{min-width:110px;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:12px;padding:0;background:none;border:0}
.operations-workspace:has(.live-floor-map) .floor-count>span{font-size:14px;max-width:62px;line-height:1.3}
.operations-workspace:has(.live-floor-map) .floor-count strong{font-size:40px;line-height:1.15}
.operations-workspace:has(.live-floor-map) .floor-count strong small{font-size:14px}
.operations-workspace:has(.live-floor-map) .serving-count{font-size:14px}
.operations-workspace:has(.live-floor-map) .title-actions{flex-wrap:nowrap;gap:8px}
.operations-workspace:has(.live-floor-map) .arrival-primary{min-height:58px;font-size:23px;min-width:132px}
.operations-workspace:has(.live-floor-map) .operations-layout{display:grid;grid-template-columns:minmax(0,1fr) 226px;gap:14px;flex:1;min-height:0;align-items:stretch}
.operations-workspace:has(.live-floor-map) .operations-main{display:flex;flex-direction:column;min-height:0;min-width:0;gap:0}
.operations-workspace:has(.live-floor-map) .map-toolbar{min-height:40px;flex:none;margin:0 0 8px;padding:0;gap:8px;background:none;border:0}
.map-toolbar-actions{display:flex;align-items:center;gap:10px;white-space:nowrap}
.operations-workspace:has(.live-floor-map) .map-toolbar p{font-size:13px;margin:0}
.map-toolbar-actions .text-btn{font-size:13px;padding:4px;min-height:32px}
.live-floor-legend{flex:none;display:flex;align-items:center;justify-content:center;gap:12px;min-height:32px;font-size:11px;color:#78817f;white-space:nowrap}.live-floor-legend>span{display:flex;align-items:center;gap:3px}.live-floor-legend .person-symbol{width:12px;height:19px}.live-floor-legend .text-btn{font-size:11px;min-height:30px;padding:0}.state-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.state-dot.reserved{background:#d4a74b}.state-dot.serving{background:#76529d}
.operations-workspace:has(.live-floor-map) .dispatch-panel{position:static;top:auto;min-height:0;max-height:none;height:100%;padding:12px;overflow:hidden;display:flex;flex-direction:column;border-radius:14px;gap:8px}
.operations-workspace:has(.live-floor-map) .dispatch-panel .dispatch-list,.operations-workspace:has(.live-floor-map) .reception-roster{min-height:0;overflow:auto;flex:1;max-height:none;display:flex;flex-direction:column;gap:7px}
.operations-workspace:has(.live-floor-map) .reception-panel{flex:1;min-height:0;display:flex;flex-direction:column;border:0;padding:0;background:none}
.operations-workspace:has(.live-floor-map) .reception-card{min-width:0;width:100%;flex:none}.operations-workspace:has(.live-floor-map) .reception-people{display:flex;flex-direction:column;gap:4px}
.operations-workspace:has(.live-floor-map) .reception-panel-heading{display:none}.operations-workspace:has(.live-floor-map) .reception-hint{font-size:12px;margin:0 0 7px}
.operations-workspace:has(.live-floor-map) .dispatch-panel>p{font-size:12px;margin:0}.operations-workspace:has(.live-floor-map) .dispatch-heading{margin:0}.operations-workspace:has(.live-floor-map) .dispatch-heading h2{font-size:14px}.operations-workspace:has(.live-floor-map) .dispatch-heading .text-btn{font-size:12px}
.operations-workspace:has(.live-floor-map) .roster-tabs{flex:none;margin:0;display:flex}.operations-workspace:has(.live-floor-map) .roster-tabs button{font-size:13px;padding:8px 3px;min-height:40px;flex:1}
.operations-workspace:has(.live-floor-map) .cast-tile{flex:none;min-height:58px;background:var(--cast-shade,#ece5f3);border:1px solid transparent;color:var(--cast-ink,#523c69)}
.cast-tile .cast-pick,.cast-tile .cast-grip{background:transparent!important;color:inherit!important}.cast-tile .cast-score{color:inherit!important}
.score-tone-0{--cast-shade:#eee9f2;--cast-ink:#62556c}.score-tone-1{--cast-shade:#f0eaf7;--cast-ink:#614277}.score-tone-2{--cast-shade:#e8ddf2;--cast-ink:#614277}.score-tone-3{--cast-shade:#ded1ed;--cast-ink:#513366}.score-tone-4{--cast-shade:#d0bde3;--cast-ink:#49295f}.score-tone-5{--cast-shade:#bfa5d6;--cast-ink:#3c1c54}.score-tone-6{--cast-shade:#aa8ac6;--cast-ink:#2e103f}.score-tone-7{--cast-shade:#8761a6;--cast-ink:#fff}.score-tone-8{--cast-shade:#72508f;--cast-ink:#fff}.score-tone-9{--cast-shade:#60407c;--cast-ink:#fff}.score-tone-10{--cast-shade:#4b2d65;--cast-ink:#fff}
.live-table-actions,.live-guest-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.live-table-actions .btn,.live-guest-actions .btn{font-size:14px}
.table-service-history>section{padding:14px 0;border-bottom:1px solid #e1e5e5}.history-guest-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}.history-guest-heading>span{margin-left:auto;font-size:14px}.history-guest-heading .text-btn{font-size:18px;font-weight:700}
.service-set{margin:12px 0 18px}.service-set>strong{display:block;font-size:15px;margin-bottom:6px}.service-set>strong small{font-weight:400;color:#7c8588;margin-left:6px}.service-rounds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.service-history{border:1px solid #e1e0e6;background:#f7f5fa;border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:5px;min-width:0}.service-history b{font-size:18px}.service-history small{font-size:12px;color:#80758d}.service-history>span{font-size:12px;color:#776982;line-height:1.5}.service-history:not(.recorded){opacity:.55}.live-profile-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #e2e5e5;padding-top:16px}.live-profile-fields input{min-width:0;width:100%}.live-timer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.live-timer-fields input{font-size:26px!important;min-height:60px;font-variant-numeric:tabular-nums}.main-toggle[aria-pressed="true"]{background:#fff0b6;border-color:#ba8d21;color:#684709}.reserved-line{background:#f6edd9;padding:10px;border-radius:8px}.checked-in-time{font-size:14px;color:#596e78}
#modal .quick-person[hidden]{display:none!important}#modal .quick-intake-add{flex-wrap:nowrap;gap:8px}#modal .quick-intake-add>.btn{min-height:40px;padding:6px 10px}#modal .quick-intake-add>span{white-space:nowrap;font-size:13px}
/* Photograph-based furniture. Room and person coordinates share one contract. */
.live-floor-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(210px,1.32fr);grid-template-rows:minmax(0,1fr) 44px minmax(0,1fr);gap:0 8px;flex:1;min-height:0;position:relative;padding:12px;background:repeating-linear-gradient(0deg,#e8e3da 0,#e8e3da 2px,#e7e1d8 2px,#e7e1d8 4px);border:1px solid #d5cbbc;border-radius:16px;overflow:hidden}
.live-aisle{grid-area:2 / 1 / 3 / 5;display:flex;align-items:center;justify-content:center;gap:10px;color:#9d9180;letter-spacing:.23em;font-size:14px;position:relative}.live-aisle small{font-size:8px}.aisle-direction{font-size:10px;letter-spacing:.15em;position:absolute;left:5px;color:#a69b8c}
.live-booth{min-width:0;min-height:0;position:relative;isolation:isolate}.live-booth.vip-booth{margin-left:9px;border-radius:6px;background:#e0d6c4;border:1px solid #b7a47e;box-shadow:0 0 0 4px #d6c8b5,inset 0 0 24px #96775420;padding:5px}
.room-scene{position:relative;width:100%;height:100%;min-height:0;isolation:isolate;border-radius:7px}.room-scene>*{box-sizing:border-box}.room-furniture{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0;filter:drop-shadow(0 2px 1px #49362620)}
.sofa-body{fill:var(--leather);stroke:#955a38;stroke-width:1}.sofa-back{fill:#a8623b;stroke:#e8af7a;stroke-width:.7}.sofa-seam{stroke:#814623;stroke-width:2;fill:none}.room-wall{stroke:#766554;stroke-width:4;fill:none}.marble-top{fill:#faf7ed;stroke:#cabba1;stroke-width:1.8}.marble-vein{fill:none;stroke:#b8b3a7;stroke-width:.7;opacity:.55}.vip-wall{stroke:#6b5643;stroke-width:5;fill:none}.door-swing{stroke:#a99162;stroke-width:1.2;fill:none}.vip-medallion{fill:#a38650}
.room-vip .sofa-body{fill:#6b4848;stroke:#4c3435}.room-vip .sofa-back{fill:#503536;stroke:#ad8b6e}.room-vip .sofa-seam{stroke:#322329}.room-scene.empty .room-furniture{opacity:.5;filter:saturate(.65)}
.room-scene.occupied .marble-top{stroke:#b6a178;stroke-width:2}.room-scene.stay-due{outline:3px solid #ba493c;outline-offset:-2px;background:#b7493820}.room-scene.stay-due .live-stay{color:#a22d23}.private-room-label{position:absolute;top:1%;left:32%;width:60%;text-align:center;font-size:9px;letter-spacing:.15em;color:#8a7654;pointer-events:none}
.live-table-core{position:absolute;border:0;background:transparent;padding:2px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#4d473a;z-index:1;min-width:0;min-height:0;cursor:pointer;text-align:center;border-radius:4px;overflow:hidden}@media (hover:hover){.live-table-core:hover{background:#efe6d46e}}.room-banquette .live-table-core,.room-corner .live-table-core{border-radius:50%}.live-table-core .table-number-plate{border:1px solid #c8b999;border-radius:4px;box-shadow:0 1px 2px #40341d12;background:#f4efdf;font-size:clamp(14px,1.55vw,23px)!important;padding:3px 2px;min-width:0;line-height:1.15;white-space:nowrap}.live-table-core .room-headcount{font-size:11px;color:#716551;line-height:1.2;display:flex;align-items:baseline;gap:2px}.room-headcount b{font-size:17px}.room-headcount small{font-size:10px}.empty .room-headcount{color:#b2a795;font-size:11px}.live-score{font-size:11px;line-height:1.15;color:#6d614c;display:flex;align-items:baseline;gap:1px}.live-score b{font-size:17px;font-variant-numeric:tabular-nums}.live-score small{font-size:10px}.live-stay{display:flex;align-items:center;flex-direction:column;gap:1px;min-width:0}.live-stay small{font-size:8px;line-height:1.1;max-width:60px}.live-stay b{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.room-banquette .live-table-core{gap:1px}.room-banquette .live-table-core .room-headcount{position:absolute;right:10%;top:36%}.room-banquette .live-table-core .table-number-plate{margin-right:12px}.room-banquette .live-table-core .live-score{position:absolute;left:13%;bottom:13%}.room-banquette .live-table-core .live-stay{margin-left:19px}.room-banquette .live-stay small{display:none}.room-corner .live-table-core{gap:1px}.room-corner .live-stay small{display:none}.room-corner .live-score{position:absolute;left:10%;bottom:18%}.room-corner .live-stay{margin-left:12px}
.room-signal{position:absolute;z-index:2;left:5%;right:5%;bottom:0;text-align:center;pointer-events:none;font-size:9px;line-height:1.15;color:#9e3d30;background:#fff9eeed;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-signal:empty{display:none}.room-vip .room-signal{bottom:18%;left:35%;right:35%;white-space:normal;font-size:10px}.room-scene.empty .room-signal{display:none}
.live-seat-row{position:absolute;z-index:3;display:grid;grid-template-rows:1fr 1fr;grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;min-height:0;outline:0;border-radius:5px}.live-seat-row.flow-horizontal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr}.live-seat-row>button,.empty-occupant{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;height:100%;padding:2px;gap:2px;border-radius:5px;border:1px solid transparent;overflow:hidden;position:relative;text-align:left;line-height:1.1}.live-seat-row .person-symbol{width:11px;height:22px;flex:0 0 11px;margin:0}.live-seat-row>button>span{display:flex;flex-direction:column;min-width:0;gap:1px}.live-seat-row b{font-size:13px;line-height:1.15;white-space:nowrap}.live-seat-row small{font-size:10px;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%;font-weight:500}.live-guest{background:#e6f0f6;color:#234d68;border-color:#a9c4d5!important}.live-seat-row.is-main .live-guest{background:#fff0b6;border:2px solid #ba8d21!important;color:#684709}.live-guest .nomination-mark{font-size:8px;position:absolute;top:0;right:0;background:#235774;color:#fff;padding:1px;font-style:normal;border-radius:2px}
.live-cast{background:var(--cast-shade,#eee6f4);color:var(--cast-ink,#51306b)}.live-cast.serving{border-color:var(--cast-ink,#765790)!important}.live-cast.reserved{border:2px dashed #b17b25!important}.live-cast.reserved>i{position:absolute;right:0;top:0;background:#f6d99a;color:#614412;border-radius:3px;font-size:8px;font-style:normal;padding:1px}.live-cast.waiting,.live-cast.changeover{background:#fff4dc;border:1px dashed #d3b981!important;color:#785b26}.live-cast em{position:absolute;right:1px;bottom:1px;font-size:11px;font-style:normal}.live-cast .timer{font-size:11px!important;line-height:1;font-variant-numeric:tabular-nums;color:inherit!important;padding:0;background:transparent;min-width:0}.live-cast .slot-state{font-size:9px!important;padding:0;background:transparent;color:inherit;white-space:nowrap}
.empty-occupant{background:transparent;border:0;color:#633d2a;opacity:.15}.empty-occupant .person-symbol{width:15px;height:25px}.live-seat-row.vacant{pointer-events:auto}.empty .live-seat-row.vacant{opacity:.45}.live-seat-row.cast-soon .live-cast{outline:2px solid #d19329;outline-offset:-2px}.live-seat-row.cast-due .live-cast{outline:2px solid #b34856;outline-offset:-2px}.live-seat-row:has(button:focus-visible){outline:2px solid #29668a;outline-offset:2px}@media (hover:hover){.live-seat-row:has(.live-guest:hover){box-shadow:0 0 0 2px #5186a65c}}@media (hover:hover){.live-seat-row:has(.live-cast:hover){box-shadow:0 0 0 2px #7357845c}}.live-seat-row.drag-over{outline:3px solid #49774d;outline-offset:2px}.live-table-core.drag-over{background:#d6e7cd}.live-booth.drag-over{outline:3px solid #49774d;border-radius:7px;background:#c3d5b44d}
.live-booth.joined-booth .room-scene{background:none}.room-joined .live-table-core{gap:2px}.room-joined .live-table-core .table-number-plate{font-size:18px!important}.room-joined .live-stay{flex-direction:row}.room-joined .live-score{position:absolute;right:3%;bottom:10%}.room-joined .live-stay small{display:none}
.table-detail-top{display:grid;grid-template-columns:minmax(0,370px) minmax(0,1fr);gap:26px;align-items:start;margin-bottom:20px}.table-detail-map{background:#e8e1d6;padding:14px;border-radius:12px;aspect-ratio:200/260;max-height:510px;min-height:380px}.table-detail-map:has(.room-vip){aspect-ratio:200/440;min-height:630px;max-height:760px}.table-detail-map:has(.room-joined){grid-column:1/-1;aspect-ratio:800/260;min-height:260px;max-height:330px}.table-detail-top:has(.room-joined){grid-template-columns:1fr}.table-detail-tools{padding-top:10px}.detail-room-caption{font-size:17px;font-weight:650;margin:0 0 20px}.table-detail-tools .live-table-actions{display:grid;grid-template-columns:1fr;gap:9px}.table-detail-tools .btn{min-height:44px;font-size:16px}.table-detail-tools .muted{font-size:13px;line-height:1.7}.room-detail .live-seat-row .person-symbol{width:20px;height:33px;flex-basis:20px}.room-detail .live-seat-row b{font-size:18px}.room-detail .live-seat-row small{font-size:12px}.room-detail .live-cast .timer{font-size:15px!important}.room-detail .live-table-core .table-number-plate{font-size:27px!important;padding:5px}.room-detail .room-headcount b{font-size:24px}.room-detail .live-score b{font-size:23px}.room-detail .live-stay b{font-size:20px}.room-detail .live-stay small{font-size:10px}.room-detail .room-signal{font-size:13px}.room-detail .private-room-label{font-size:11px}.room-detail.room-joined .live-seat-row b{font-size:15px}.room-detail.room-joined .person-symbol{width:12px;flex-basis:12px}.room-detail.room-joined .live-cast .timer{font-size:12px!important}
.reseat-map{width:340px;height:460px;margin:15px auto;background:#e8e1d6;padding:12px;border-radius:12px}.reseat-map:has(.room-vip){height:650px}.reseat-map:has(.room-joined){width:100%;height:290px}.position-pick{grid-column:1/-1;grid-row:1/-1;background:#f0f7efec;border:2px solid #49764d!important;color:#244c2a;flex-direction:column}.position-pick b{font-size:22px!important}.position-pick small{font-size:12px!important}.position-pick.current-position{background:#f9edc9;border-color:#be9645!important;color:#8c712e;opacity:.8}
.operations-workspace:has(.live-floor-map) .operations-main{grid-column:1;grid-row:1;order:0}.operations-workspace:has(.live-floor-map) .dispatch-panel{grid-column:2;grid-row:1;order:0}.operations-workspace:has(.live-floor-map) .roster-arrival{min-width:0!important;width:100%;padding:8px;font-size:21px}.operations-workspace:has(.live-floor-map) .roster-tabs,.operations-workspace:has(.live-floor-map) .roster-tabs button{min-width:0!important;max-width:100%}.operations-workspace:has(.live-floor-map) .cast-pick{min-width:0;grid-template-columns:minmax(0,1fr)!important}.operations-workspace:has(.live-floor-map) .cast-pick strong{font-size:17px!important}.operations-workspace:has(.live-floor-map) .cast-grip{width:24px;padding:2px}
@media(min-width:1500px){.live-seat-row b{font-size:16px}.live-seat-row small{font-size:12px}.live-cast .timer{font-size:13px!important}.live-seat-row .person-symbol{width:16px;flex-basis:16px;height:28px}.live-stay b{font-size:16px}.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:1150px){.operations-workspace:has(.live-floor-map){padding:8px}.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr) 180px;gap:8px}.live-floor-map{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(180px,1.4fr);padding:8px;column-gap:5px}.live-seat-row .person-symbol{width:8px;flex-basis:8px;height:18px}.live-seat-row b{font-size:11px}.live-seat-row small{font-size:9px}.live-cast .timer{font-size:10px!important}.operations-workspace:has(.live-floor-map) .map-toolbar p{display:none}.live-table-core .table-number-plate{font-size:15px!important}.live-table-core .room-headcount b{font-size:14px}.live-stay b{font-size:11px}.live-stay small{display:none}.serving-count{display:none!important}.operations-workspace:has(.live-floor-map) .floor-summary{gap:12px}}
@media(max-width:850px){body:has(.live-floor-map) .rail{width:46px;min-width:46px}.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr)}.operations-workspace:has(.live-floor-map) .dispatch-panel{grid-column:auto;grid-row:auto;position:fixed;bottom:10px;right:10px;width:240px;height:240px;z-index:5;box-shadow:0 5px 30px #243c4926;transform:translateX(calc(100% - 30px));transition:transform .15s}.operations-workspace:has(.live-floor-map) .dispatch-panel:focus-within{transform:translateX(0)}@media (hover:hover){.operations-workspace:has(.live-floor-map) .dispatch-panel:hover{transform:translateX(0)}}.operations-workspace:has(.live-floor-map) .arrival-primary{font-size:18px;min-width:85px;min-height:48px}.operations-workspace:has(.live-floor-map) .title-actions .btn:not(.arrival-primary){font-size:12px;padding:8px}.operations-workspace:has(.live-floor-map) .floor-count{min-width:70px;column-gap:3px}.operations-workspace:has(.live-floor-map) .floor-count>span{font-size:11px}.operations-workspace:has(.live-floor-map) .floor-count strong{font-size:30px}.live-floor-legend{gap:6px;font-size:9px}.live-floor-legend .text-btn{display:none}.live-profile-fields,.live-timer-fields{grid-template-columns:1fr}.live-floor-map{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(140px,1.32fr);padding:5px;column-gap:4px}.live-booth.vip-booth{margin-left:4px;padding:3px}.live-seat-row{gap:1px}.live-seat-row .person-symbol{display:none}.room-detail .live-seat-row .person-symbol{display:block}.live-table-core .table-number-plate{font-size:14px!important}.clock-display{font-size:28px!important;min-width:90px;padding-left:12px}.table-detail-top{grid-template-columns:1fr}.table-detail-map{width:310px;margin:auto}.table-detail-map:has(.room-joined){width:100%}.table-detail-tools .live-table-actions{grid-template-columns:1fr 1fr}}
@media(max-height:760px) and (min-width:851px){body:has(.live-floor-map) .topbar{height:52px;min-height:52px;padding-block:6px}.operations-workspace:has(.live-floor-map){height:calc(100dvh - 52px);padding-top:6px;padding-bottom:4px}.operations-workspace:has(.live-floor-map) .operations-heading{min-height:58px;margin-bottom:6px}.operations-workspace:has(.live-floor-map) .arrival-primary{min-height:48px}.operations-workspace:has(.live-floor-map) .map-toolbar{min-height:32px;margin-bottom:4px}.live-floor-legend{min-height:24px}.live-floor-map{grid-template-rows:minmax(0,1fr) 32px minmax(0,1fr)}.room-vip:not(.room-detail) .live-seat-row>button>span{flex-direction:row;align-items:center;gap:3px}.room-vip:not(.room-detail) .live-seat-row b{font-size:12px}.room-vip:not(.room-detail) .live-seat-row small{max-width:21px;font-size:9px}.room-vip:not(.room-detail) .live-seat-row .person-symbol{width:10px;flex-basis:10px;height:18px}}
/* Keep every timer on its own full-width line on the short sofa positions. */
.flow-horizontal>button{display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-content:center;justify-items:center;gap:1px;padding:3px 2px}.flow-horizontal>button>.person-symbol{grid-column:1;grid-row:1;width:10px;flex-basis:10px;height:22px}.flow-horizontal>button>span{display:contents}.flow-horizontal>button>span>b{grid-column:2;grid-row:1;align-self:center}.flow-horizontal>button>span>small,.flow-horizontal>button>span>.timer,.flow-horizontal>button>span>.slot-state{grid-column:1/-1;grid-row:2;max-width:100%;text-align:center;width:100%}.flow-horizontal .live-cast .timer{font-size:11px!important}.flow-horizontal .live-cast .slot-state{font-size:9px!important}.main-customer-mark{position:absolute;top:0;right:0;font-size:8px;line-height:1;color:#9e7614;font-style:normal}
.core-counts{display:flex;flex-direction:column;align-items:center;gap:3px}.room-banquette .core-counts,.room-corner .core-counts,.room-joined .core-counts{flex-direction:row;gap:5px}.room-banquette .live-table-core .room-headcount,.room-banquette .live-table-core .live-score,.room-corner .live-score,.room-joined .live-score{position:static}.room-banquette .live-table-core .table-number-plate,.room-banquette .live-table-core .live-stay,.room-corner .live-stay{margin:0}.room-corner .live-table-core{gap:3px}.room-banquette .live-table-core{gap:2px}.room-detail .flow-horizontal>button{grid-template-columns:20px minmax(0,1fr)}.room-detail .flow-horizontal>button>.person-symbol{width:20px;height:30px}.room-detail .flow-horizontal .live-cast .timer{font-size:15px!important}.room-detail .main-customer-mark{font-size:11px}.room-joined.room-detail .flow-horizontal>button{grid-template-columns:10px minmax(0,1fr)}.room-joined.room-detail .flow-horizontal>button>.person-symbol{width:10px;height:20px}.room-joined.room-detail .flow-horizontal .live-cast .timer{font-size:11px!important}
.room-scene:not(.room-detail) .live-seat-row>button{display:grid;grid-template-columns:10px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;align-content:center;justify-items:center;gap:1px;padding:2px}.room-scene:not(.room-detail) .live-seat-row>button>.person-symbol{grid-column:1;grid-row:1;width:10px;height:18px}.room-scene:not(.room-detail) .live-seat-row>button>span{display:contents}.room-scene:not(.room-detail) .live-seat-row>button>span>b{grid-column:2;grid-row:1;align-self:center}.room-scene:not(.room-detail) .live-seat-row>button>span>small,.room-scene:not(.room-detail) .live-seat-row>button>span>.timer,.room-scene:not(.room-detail) .live-seat-row>button>span>.slot-state{grid-column:1/-1;grid-row:2;max-width:100%;width:100%;text-align:center}.room-scene:not(.room-detail) .live-cast .timer{font-size:10px!important}.room-scene:not(.room-detail) .live-cast .slot-state{font-size:9px!important}
@media(min-width:1450px){.room-scene:not(.room-detail) .live-cast .timer{font-size:12px!important}.room-scene:not(.room-detail) .live-seat-row>button{grid-template-columns:14px minmax(0,1fr)}.room-scene:not(.room-detail) .live-seat-row>button>.person-symbol{width:14px;height:24px}}
.room-joined .live-table-core .table-number-plate{font-size:14px!important}.room-joined .live-table-core .room-headcount b,.room-joined .live-score b{font-size:15px}.room-joined .live-table-core .core-counts{gap:3px}.room-joined.room-detail .live-table-core .table-number-plate{font-size:15px!important}
/* Keep photo proportions on tall, narrow panels instead of stretching circles. */
.live-booth{container-type:size;display:flex;align-items:center}.live-booth>.room-scene{height:min(100cqh,130cqw)}.live-booth.vip-booth>.room-scene{height:100%}.live-booth.joined-booth>.room-scene{height:min(100cqh,32.5cqw)}
.operations-workspace:has(.live-floor-map) .operations-main{container-type:inline-size}.live-floor-map{max-height:75cqw}
/* v17: Furniture supplies position; readable captions sit outside person markers. */
.live-floor-map{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(280px,1.7fr);column-gap:12px}
.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr) 190px}
.room-scene .live-seat-row{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:2px;align-items:center;overflow:visible}
.room-scene .live-seat-row>button:not(.position-pick){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:0;width:100%;height:100%;min-height:32px;position:relative;border:0!important;border-radius:0;background:transparent;color:#292633;overflow:visible;box-shadow:none;outline:none}
.room-scene .live-seat-row>button>.person-symbol{display:block;position:relative;grid-area:auto;flex:none;width:23px;height:31px;margin:0;filter:drop-shadow(0 1px 0 #fff)}
.room-scene .live-seat-row .live-guest>.person-symbol{color:var(--clothing-color,#728392);stroke:#394551;stroke-width:.4;--guest-bg:#f6f6f3}
.room-scene .live-seat-row .live-guest>.person-name{display:flex;position:absolute;top:50%;left:100%;transform:translate(-75%,-35px);width:max-content;max-width:none;line-height:1;z-index:1;pointer-events:none}
.room-scene .live-seat-row b{font-size:16px;line-height:19px;font-weight:750;white-space:nowrap;color:#282431}
.room-scene .live-seat-row .person-name b{background:#fffdf6f5;padding:1px 3px;border-radius:4px;box-shadow:0 1px 2px #30201018}
.room-scene .live-seat-row .live-cast>.cast-caption{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;position:absolute;left:0;top:50%;transform:translate(-30%,15px);width:max-content;max-width:none;padding:1px 4px;background:#faf6ffff;border-radius:4px;box-shadow:0 1px 2px #30201018;z-index:1;pointer-events:none}
.room-scene .live-seat-row .cast-caption>*{display:inline;position:static;grid-area:auto;max-width:none;width:auto;overflow:visible;text-overflow:clip;white-space:nowrap}
.room-scene .live-seat-row .live-cast .timer,.room-scene .live-seat-row .live-cast .slot-state,.room-scene .live-seat-row .live-cast small{font-size:14px!important;line-height:19px;min-width:0;color:#493b58!important;font-weight:650;padding:0}
.room-scene .live-seat-row .live-cast>.person-symbol{color:var(--cast-shade,#b69acb);stroke:#52336d;stroke-width:.65;--cast-bg:#fff}
.room-scene .live-seat-row .live-cast.reserved>.person-symbol{color:#fff5d8;stroke:#8a5a06;stroke-width:1.35}
.room-scene .live-seat-row .live-cast.reserved>.cast-caption{background:#fff0bd;box-shadow:0 0 0 1px #ba852d}
.room-scene .live-seat-row .live-cast.reserved small{color:#785005!important}
.room-scene .live-seat-row .live-cast.waiting>.person-symbol,.room-scene .live-seat-row .live-cast.changeover>.person-symbol{color:#d9d3d1;stroke:#817975;stroke-dasharray:2 1;opacity:.75}
.room-scene .live-seat-row .live-cast.waiting>.cast-caption,.room-scene .live-seat-row .live-cast.changeover>.cast-caption{background:#f4f1ec;box-shadow:0 0 0 1px #c7bdb3}
.room-scene .live-seat-row .seated-check{position:absolute;top:calc(50% - 18px);right:calc(50% - 17px);background:#684487;color:white;border:1px solid white;border-radius:50%;width:14px;height:14px;font-size:11px;line-height:12px;font-style:normal;text-align:center}
.room-scene .live-seat-row .main-customer-mark{position:absolute;left:calc(50% - 23px);top:calc(50% - 17px);right:auto;font-size:17px;text-shadow:0 0 2px white;color:#aa7200;z-index:2}
.room-scene .live-seat-row .nomination-mark{top:50%;right:-3px;font-size:10px;line-height:13px}
.room-scene .live-seat-row.is-main .live-guest>.person-name b{box-shadow:0 0 0 2px #bc8d26}
.room-scene .live-seat-row .live-cast em{right:-3px;top:calc(50% - 5px);bottom:auto;font-size:15px;color:#49315b}
.room-scene .live-seat-row.cast-soon .cast-caption{box-shadow:0 0 0 2px #ca8b1e;background:#fff0bf}.room-scene .live-seat-row.cast-due .cast-caption{box-shadow:0 0 0 2px #b0394e;background:#ffe5e9}
.room-scene .live-seat-row button:focus-visible{outline:3px solid #367491!important;outline-offset:1px;border-radius:5px}
@media (hover:hover){.room-scene .live-seat-row:has(.live-guest:hover),.room-scene .live-seat-row:has(.live-cast:hover){box-shadow:none}}@media (hover:hover){.room-scene .live-seat-row>button:hover>.person-symbol{filter:drop-shadow(0 0 3px #fff);transform:scale(1.1)}}
.room-scene .empty-occupant{height:28px;align-self:center}.room-scene .empty-occupant .person-symbol{display:block;width:20px;height:26px}
.room-detail .live-seat-row>button>.person-symbol{width:28px;height:38px}.room-detail .live-seat-row .live-guest>.person-name{transform:translate(-75%,-42px)}.room-detail .live-seat-row .live-cast>.cast-caption{transform:translate(-30%,20px)}.room-detail .live-seat-row b{font-size:18px}.room-detail .live-seat-row .live-cast .timer{font-size:16px!important}
.customer-color-marker{color:var(--clothing-color);text-shadow:0 0 1px #24333f;font-size:25px!important;line-height:1;border:1px solid #8d969a;border-radius:50%;width:25px;height:25px;flex:none;background:var(--clothing-color)}
/* Arrival, add and save stay together at the top right, at fixed positions. */
#modal.quick-intake-modal[open]{position:fixed;inset:70px 18px auto auto;margin:0;width:1100px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 84px)}
#modal.quick-intake-modal .modal-heading{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:70px}
#modal.quick-intake-modal .modal-heading h2{margin-right:auto;font-size:25px}
.intake-header-actions{display:flex;align-items:center;gap:10px;flex:none}
#modal.quick-intake-modal .intake-header-actions .btn{min-height:48px;font-size:19px;padding:8px 14px;white-space:nowrap}
#modal.quick-intake-modal .intake-add-top{width:148px;background:#edf4f8;border-color:#b4c5cf;color:#294c60}
#modal.quick-intake-modal .intake-save-top{width:154px}
#modal.quick-intake-modal .modal-body{padding:8px 12px 12px;overflow:auto}
.intake-context{display:flex;align-items:center;justify-content:space-between;min-height:34px;margin-bottom:8px;gap:12px}
#modal.quick-intake-modal .quick-intake-caption{font-size:14px;margin:0;line-height:1.4}
.intake-paging{display:flex;align-items:center;gap:6px;flex:none}.intake-paging .btn{min-height:30px;padding:3px 10px;font-size:14px}.intake-paging span{min-width:40px;text-align:center;font-size:14px}
#modal.quick-intake-modal .quick-intake-rows{grid-template-rows:repeat(6,78px);gap:5px}
#modal.quick-intake-modal .quick-person{grid-template-columns:36px 130px 138px minmax(120px,1fr) minmax(130px,1fr) 32px;grid-template-rows:34px 30px;gap:4px 6px;padding:4px 6px}
#modal.quick-intake-modal .quick-person input,#modal.quick-intake-modal .quick-person select,#modal.quick-intake-modal .quick-type button,#modal.quick-intake-modal .quick-remove{height:34px;min-height:34px;font-size:16px;padding:3px 6px}
#modal.quick-intake-modal .quick-person .quick-customer,#modal.quick-intake-modal .quick-person .quick-label,#modal.quick-intake-modal .quick-color{height:30px;min-height:30px;font-size:14px}
#modal.quick-intake-modal .quick-intake-rows.is-editing{grid-template-rows:78px}
@media(max-width:1150px){.live-floor-map{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(245px,1.6fr);column-gap:8px}.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr) 160px}.room-scene .live-seat-row>button>.person-symbol{width:20px;height:27px}.room-scene .live-seat-row .live-guest>.person-name{transform:translate(-75%,-32px)}.room-scene .live-seat-row .live-cast>.cast-caption{transform:translate(-30%,13px)}#modal.quick-intake-modal .quick-person{grid-template-columns:32px 112px 125px minmax(120px,1fr) minmax(120px,1fr) 30px}}
@media(max-height:760px){#modal.quick-intake-modal[open]{inset:56px 12px auto auto;max-height:calc(100dvh - 64px)}#modal.quick-intake-modal .modal-heading{min-height:62px;padding:6px 12px}}
@media(max-width:850px){.operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr)}.live-floor-map{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(235px,1.6fr)}#modal.quick-intake-modal[open]{inset:56px 8px auto auto;max-width:calc(100vw - 16px)}#modal.quick-intake-modal .modal-heading{gap:6px}#modal.quick-intake-modal .modal-heading h2{font-size:20px}#modal.quick-intake-modal .intake-header-actions .btn{width:130px;font-size:16px}.intake-header-actions{gap:6px}#modal.quick-intake-modal .quick-person{grid-template-columns:32px 104px 114px minmax(115px,1fr) minmax(115px,1fr) 30px}.intake-context{min-width:690px}#modal.quick-intake-modal .quick-intake-rows{min-width:690px}}
.room-scene .live-seat-row>button>.person-symbol{width:23px!important;height:31px!important}
.room-scene .live-seat-row .live-cast>.cast-caption{transform:translate(-50%,15px);padding-inline:2px;gap:2px}
.room-vip:not(.room-detail) .live-seat-row:not(.seat-bottom) .live-guest>.person-name{left:0;top:50%;transform:translate(-80%,-13px)}
.room-vip:not(.room-detail) .live-seat-row.seat-left .live-guest>.person-name{left:205%;transform:translate(0,-17px)}
.room-vip:not(.room-detail) .live-seat-row>button>.person-symbol{width:21px!important;height:28px!important}
.room-vip:not(.room-detail) .live-seat-row .live-cast>.cast-caption{transform:translate(-50%,13px)}
.room-detail .live-seat-row>button>.person-symbol{width:28px!important;height:38px!important}
/* The top-right arrival action is the primary, nearest control. */
.operations-workspace:has(.live-floor-map) .title-actions .arrival-primary{order:3}
.room-scene .live-seat-row>button>.person-symbol{flex:none!important}
.room-scene:not(.room-detail) .live-seat-row b{font-size:16px!important}
.room-detail .live-seat-row b{font-size:18px!important}
.room-scene .live-seat-row .cast-caption{column-gap:5px!important}
.room-scene .live-seat-row .live-cast .timer{font-weight:550}
.room-vip .live-seat-row.seat-bottom .live-cast>.cast-caption{flex-direction:column!important;gap:0!important;transform:translate(-50%,9px);padding:0 4px}
.room-vip:not(.room-detail) .live-seat-row.seat-bottom>button>.person-symbol{transform:translateY(-6px)}
#modal.quick-intake-modal .quick-person-number{font-size:18px;white-space:nowrap}
.room-vip .live-table-core .table-number-plate{transform:translateX(-8px)}
.room-banquette .live-table-core{transform:translateY(7px)}
.room-opposed .seat-right .live-guest>.person-name{margin-left:5px}
/* Narrow desktop panels keep full-size labels by moving the roster below the map. */
@media(min-width:700px) and (max-width:1150px){
 .operations-workspace:has(.live-floor-map) .operations-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 126px;gap:8px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel{grid-column:1;grid-row:2;position:static;transform:none;width:100%;height:126px;display:grid;grid-template-columns:170px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);gap:6px 12px;padding:8px;box-shadow:none;z-index:auto}
 .operations-workspace:has(.live-floor-map) .roster-tabs{grid-column:1;grid-row:1}.operations-workspace:has(.live-floor-map) .roster-tabs button{font-size:14px;white-space:nowrap}
 .operations-workspace:has(.live-floor-map) .roster-arrival{grid-column:1;grid-row:2;min-height:48px;align-self:stretch}
 .operations-workspace:has(.live-floor-map) .reception-panel{grid-column:2;grid-row:1/-1}
 .operations-workspace:has(.live-floor-map) .reception-hint{display:none}
 .operations-workspace:has(.live-floor-map) .reception-roster{flex-direction:row;overflow:auto;padding:1px}
 .operations-workspace:has(.live-floor-map) .reception-card{display:flex;align-items:stretch;width:max-content;min-width:250px;gap:6px;padding:5px}
 .operations-workspace:has(.live-floor-map) .reception-group-heading{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:78px;max-width:90px;margin:0}
 .operations-workspace:has(.live-floor-map) .reception-group-heading strong{font-size:14px;white-space:nowrap}.operations-workspace:has(.live-floor-map) .reception-group-heading small{display:block;font-size:12px}
 .operations-workspace:has(.live-floor-map) .group-grip{font-size:12px;min-height:30px;padding:4px;white-space:nowrap}
 .operations-workspace:has(.live-floor-map) .reception-people{flex-direction:row;align-items:stretch;gap:6px}
 .operations-workspace:has(.live-floor-map) .reception-person-tile{min-width:156px;width:156px;align-self:stretch}.operations-workspace:has(.live-floor-map) .customer-drag{min-height:60px;height:100%}
 .operations-workspace:has(.live-floor-map) .reception-cancel{font-size:12px;min-width:44px;width:44px;line-height:1.5;padding:2px;align-self:center}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .roster-idle{grid-column:2;grid-row:1/-1;align-self:center}
 .operations-workspace:has(.live-floor-map) .dispatch-heading{grid-column:1;grid-row:2;align-self:center;flex-direction:column;align-items:start;gap:0}
 .operations-workspace:has(.live-floor-map) .dispatch-panel>p:not(.roster-idle){display:none}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search{grid-column:2;grid-row:1;max-width:320px;margin:0}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search-box{min-height:40px;height:40px}.operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search input{min-height:38px;height:38px}
 .operations-workspace:has(.live-floor-map) .dispatch-list{grid-column:2;grid-row:2;flex-direction:row;align-items:stretch}
 .operations-workspace:has(.live-floor-map) .cast-tile{min-width:166px;min-height:48px}
 .live-floor-map{max-height:none;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(245px,1.6fr)}
}
.room-scene .live-seat-row .live-guest>.person-name,.room-scene .live-seat-row .live-cast>.cast-caption{pointer-events:auto;cursor:pointer}
.room-opposed .live-table-core .table-number-plate{font-size:16px!important;padding:3px 0;max-width:100%;transform:translateY(-6px)}
@media(min-width:700px) and (max-height:760px){
 .operations-workspace:has(.live-floor-map) .operations-heading{min-height:58px;height:58px;margin-bottom:6px}
 .operations-workspace:has(.live-floor-map) .arrival-primary{height:50px;min-height:50px;padding:8px 14px;line-height:1.2}
 .operations-workspace:has(.live-floor-map) .guest-count{position:relative}.operations-workspace:has(.live-floor-map) .pending-count{position:absolute;left:0;top:100%;font-size:12px;line-height:15px}
}
@media(min-width:700px) and (max-width:1150px) and (max-height:760px){
 .operations-workspace:has(.live-floor-map) .operations-layout{grid-template-rows:minmax(0,1fr) 94px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel{height:94px;grid-template-rows:34px minmax(0,1fr);padding:6px;gap:4px 10px}
 .operations-workspace:has(.live-floor-map) .roster-tabs button{min-height:32px;padding:4px;font-size:13px}.operations-workspace:has(.live-floor-map) .roster-arrival{min-height:34px;font-size:18px;padding:4px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search-box{height:32px;min-height:32px}.operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search input{height:30px;min-height:30px}
 .operations-workspace:has(.live-floor-map) .cast-tile{min-height:38px}.operations-workspace:has(.live-floor-map) .customer-drag{min-height:60px}
}
@media(min-width:700px) and (max-width:1150px) and (max-height:760px){
 .operations-workspace:has(.live-floor-map) .operations-layout{position:relative;grid-template-rows:minmax(0,1fr)}
 .operations-workspace:has(.live-floor-map) .dispatch-panel{position:absolute;left:8px;top:calc(50% - 29px);width:calc(100% - 265px);height:94px;z-index:4;background:#fffdf8;box-shadow:0 1px 4px #3d352b15}
 .live-floor-map{grid-template-rows:minmax(0,1fr) 106px minmax(0,1fr)}.live-aisle{visibility:hidden}
}
@media(min-width:700px) and (max-width:1150px) and (max-height:760px){.operations-workspace:has(.live-floor-map) .dispatch-panel{grid-area:auto;bottom:auto;right:auto}}

.room-banquette .live-table-core .live-stay{transform:translateX(-7px)}
.room-banquette .live-table-core{transform:translateY(3px)}
.room-vip:not(.room-detail) .live-table-core{transform:translateY(-24px)}
.room-banquette .live-table-core{transform:translateY(7px)}
.room-banquette .seat-front[data-seat-number="3"] .live-guest>.person-name{margin-left:4px}
.room-banquette .seat-front[data-seat-number="4"] .live-guest>.person-name{margin-left:-4px}
