@media(min-width:1151px) and (max-width:1366px){
 .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)}
}
/* v18: preserve furniture, enlarge the controls around it. */
.recommendation-heading{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}
.recommendation-heading strong{font-size:19px!important;color:#302238}
.recommendation-score{font-size:26px!important;color:#644181;white-space:nowrap}.recommendation-score small{font-size:14px;margin-left:3px}
.recommendation-tags{font-size:15px;color:#66546e;min-height:22px;overflow-wrap:anywhere}
.recommendation-rank{font-size:14px;color:#654d22;background:#f6ead0;border-radius:5px;padding:3px 7px;align-self:flex-start}
.recommendation-reasons{display:flex;flex-direction:column;gap:3px;font-size:15px;line-height:1.5;color:#4c5554;text-align:left;overflow-wrap:anywhere}
.recommendation-time{font-size:15px!important;color:#755128}
#modal .replace-options,#modal .next-cast-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#modal .replace-option,#modal .next-cast-option{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:left;gap:7px;padding:14px;border:2px solid #e5dce9;border-radius:12px;background:#fff;min-height:175px;height:auto}
#modal .replace-option[aria-pressed=true],#modal .next-cast-option[aria-pressed=true]{border-color:#78509d;background:#f4edf9;box-shadow:0 0 0 1px #78509d}
#modal .replace-option:disabled,#modal .next-cast-option:disabled{opacity:.65;background:#f0eeee}
#modal .modal-footer{position:sticky;bottom:0;background:#fffdf9;z-index:5;flex-shrink:0}
.tablet-instructions{font-size:17px;line-height:1.65}.tablet-instructions li{margin:12px 0}.tablet-url{display:block;width:100%;font-size:20px;padding:12px;margin-top:10px;border:1px solid #d6dbd9;border-radius:8px}
.pairing-code{display:block;font-size:36px;letter-spacing:.12em;color:#3d3049;font-variant-numeric:tabular-nums;user-select:all}
.tablet-pair .field{margin:24px auto;max-width:300px;text-align:left}.tablet-pair input{min-height:54px;font-size:26px;letter-spacing:.15em}.tablet-pair .large{min-height:54px}
.owner-login{margin:28px auto 0;max-width:300px;text-align:left}.owner-login summary{min-height:44px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer}.owner-login .field{margin:12px 0}.owner-login input{font-size:20px;letter-spacing:normal}.owner-login .btn{width:100%;min-height:48px}
.customer-grip{touch-action:none;user-select:none;-webkit-user-select:none;min-width:44px;min-height:48px;border:0;background:#e7efed;color:#315e58;font-size:28px;border-radius:8px;cursor:grab}
.cast-grip{touch-action:none;-webkit-user-select:none;user-select:none;min-width:44px!important;min-height:48px!important;font-size:28px!important;width:44px!important}
.customer-drag,.cast-pick{touch-action:pan-x pan-y!important}
.reception-person-tile{display:flex;align-items:stretch}.reception-person-tile .customer-drag{min-width:0;flex:1}.reception-person-tile>.text-btn{flex:none}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #755490;outline-offset:2px}
@media (pointer:coarse),(min-width:700px) and (max-width:1366px){
 .btn,.text-btn,.icon-btn,.sound-btn,.roster-tabs button,summary,.map-toolbar-actions .text-btn{min-height:44px!important;touch-action:manipulation}
 .btn,.text-btn{font-size:16px}.icon-btn,.sound-btn{min-width:44px}.modal-heading .icon-btn{width:48px;height:48px}
 input,select,textarea{font-size:16px!important;min-height:44px}
 #modal{max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px)}
 #modal .modal-heading{padding:12px 18px;min-height:64px}#modal .modal-heading h2{font-size:23px}
 #modal .modal-footer .btn{min-height:52px!important;font-size:18px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search-box{min-height:44px;height:44px}.operations-workspace:has(.live-floor-map) .dispatch-panel .cast-search input{height:42px;min-height:42px}
 .operations-workspace:has(.live-floor-map) .cast-tile{min-width:190px;min-height:52px}.cast-pick strong{font-size:17px!important}
 .operations-workspace:has(.live-floor-map) .reception-person-tile{min-width:232px;width:232px}.customer-drag strong{font-size:17px!important}.customer-drag small{font-size:14px!important}
 .operations-workspace:has(.live-floor-map) .group-grip{min-height:44px;font-size:14px}
 .live-room-focus .live-seat-row>button{min-width:44px;min-height:44px}
 .room-detail .live-seat-row>button{min-width:44px;min-height:44px}
 #modal.quick-intake-modal .quick-intake-rows{grid-template-rows:repeat(4,104px)}
 #modal.quick-intake-modal .quick-person{grid-template-rows:44px 44px;padding:5px 6px;grid-template-columns:32px 112px 125px minmax(120px,1fr) minmax(120px,1fr) 44px}
 #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,#modal.quick-intake-modal .quick-person .quick-customer,#modal.quick-intake-modal .quick-person .quick-label,#modal.quick-intake-modal .quick-color{height:44px;min-height:44px;font-size:16px}
 #modal.quick-intake-modal .quick-intake-rows.is-editing{grid-template-rows:104px}
}
@media(min-width:700px) and (max-width:1366px){
 .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;grid-area:auto;left:8px;top:calc(50% - 37px);right:auto;bottom:auto;width:calc(100% - 265px);height:122px;grid-template-rows:44px 52px;padding:8px;gap:6px 10px;z-index:4;background:#fffdf8}
 .live-floor-map{grid-template-rows:minmax(0,1fr) 142px minmax(0,1fr)}.live-aisle{visibility:hidden}
 .operations-workspace:has(.live-floor-map) .dispatch-heading .text-btn{min-height:44px}
 .operations-workspace:has(.live-floor-map) .map-toolbar{min-height:44px}.map-toolbar p{max-width:40%;line-height:1.4}
}
@media (orientation:portrait) and (min-width:700px) and (max-width:1024px){
 .topbar .wordmark{font-size:20px}.topbar .demo-badge{display:none}.top-actions{gap:8px}.clock-display{font-size:28px!important;min-width:94px;padding-left:10px}
 .topbar .connection{font-size:12px}.tablet-connect{padding:4px 8px}
 .operations-workspace:has(.live-floor-map) .floor-summary{gap:10px}.operations-workspace:has(.live-floor-map) .floor-count{min-width:88px;column-gap:5px}.operations-workspace:has(.live-floor-map) .floor-count strong{font-size:34px}
 .operations-workspace:has(.live-floor-map) .serving-count{display:none}.operations-workspace:has(.live-floor-map) .title-actions .btn{padding:8px}.operations-workspace:has(.live-floor-map) .arrival-primary{min-width:104px}
 #modal .replace-options,#modal .next-cast-options{grid-template-columns:repeat(2,minmax(0,1fr))}
 .live-floor-legend{flex-wrap:wrap;white-space:normal;gap:8px}
}
@media(max-width:699px){#modal .replace-options,#modal .next-cast-options{grid-template-columns:1fr}.recommendation-heading strong{font-size:19px}.tablet-connect{display:none}}
@supports(padding:max(0px)){.app-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}#modal{padding-bottom:env(safe-area-inset-bottom)}}
@media (pointer:coarse),(min-width:700px) and (max-width:1366px){
 #modal.quick-intake-modal .quick-person{grid-template-columns:32px 132px 132px minmax(85px,1fr) minmax(85px,1fr) 44px}
 #modal.quick-intake-modal .quick-colors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;min-width:0}
 #modal.quick-intake-modal .quick-color{min-width:0;padding:2px 3px;gap:3px;white-space:nowrap}
 #modal.quick-intake-modal .quick-type button{white-space:nowrap;padding:3px 5px}
 .room-scene .live-table-core{min-width:44px;min-height:44px}
}

@media(min-width:700px) and (max-width:1366px){.operations-workspace:has(.live-floor-map) .reception-card{min-width:max-content;width:max-content;flex-shrink:0}.operations-workspace:has(.live-floor-map) .reception-people{flex-shrink:0}.operations-workspace:has(.live-floor-map) .reception-roster{gap:12px}}
@media(min-width:700px) and (max-width:1366px){
 .operations-workspace:has(.live-floor-map) .dispatch-panel{top:calc(50% - 57px);width:min(calc(100% - 265px),calc((100% - 58px) * .7142857 + 24px))}
}
@media(min-width:700px) and (max-width:1366px){
 .operations-workspace:has(.live-floor-map) .dispatch-panel .dispatch-list{flex-direction:row;align-items:stretch;overflow-x:auto;overflow-y:hidden}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-tile{height:52px;min-height:52px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-pick{height:50px;min-height:50px}
 .operations-workspace:has(.live-floor-map) .dispatch-panel .cast-grip{height:50px;min-height:48px}
 .operations-workspace:has(.live-floor-map) .dispatch-heading h2{display:none}
}
/* Portrait keeps the floor proportions; the roster uses the space below it. */
@media(orientation:portrait) and (min-width:700px) and (max-width:1024px){
 .operations-workspace:has(.live-floor-map) .operations-layout{display:flex;flex-direction:column;gap:12px}
 .operations-workspace:has(.live-floor-map) .operations-main{flex:0 0 auto;height:auto}
 .live-floor-map{flex:none;aspect-ratio:1.4;height:auto;max-height:none;grid-template-rows:minmax(0,1fr) 44px minmax(0,1fr)}
 .operations-workspace:has(.live-floor-map) .dispatch-panel{position:static;flex:1;width:100%;height:auto;min-height:160px;max-height:260px;grid-template-rows:44px minmax(0,1fr)}
 .live-floor-map .cast-caption .timer{display:none}.live-floor-map .cast-caption{gap:0!important}
 .operations-workspace:has(.live-floor-map) .map-toolbar{flex-wrap:wrap;gap:0}.operations-workspace:has(.live-floor-map) .map-toolbar p{display:block;max-width:none;width:100%;font-size:13px}
 .operations-workspace:has(.live-floor-map) .reception-person-tile{align-self:flex-start;height:88px}
 .rail .nav-item span{white-space:nowrap;font-size:12px}
}
