/* Host workspace: panel scroll and map scroll are independent. */
body.host-workspace{height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:#f4f5f6}
.host-workspace [hidden]{display:none!important}
.host-workspace button,.host-workspace input,.host-workspace select{min-height:44px}
.host-workspace button:focus-visible,.host-workspace a:focus-visible,.host-workspace .tbl:focus-visible{outline:3px solid #d97706;outline-offset:2px}
.host-workspace header{position:static;flex-shrink:0;background:#303534;padding:6px 12px;gap:6px;min-height:58px;flex-wrap:nowrap}
.host-workspace header b{white-space:nowrap}.host-workspace header #shifts{display:none}
.host-workspace #dateLabel{background:none;border:0;font-size:13px;color:white}
.host-workspace .metrics{flex-shrink:0;max-height:66px;overflow:auto;font-size:12px;padding:6px 12px;gap:12px}
.host-workspace .delivery{flex-shrink:0;margin:0;border-radius:0;flex-wrap:wrap}
.host-workspace .mobile-nav{display:none}
.host-workspace .layout{display:grid;grid-template-columns:64px 360px minmax(0,1fr);gap:0;padding:0;flex:1;min-height:0;align-items:stretch}
.host-workspace.nav-expanded .layout{grid-template-columns:172px 360px minmax(0,1fr)}
.workspace-nav{background:#303534;color:white;padding:10px 6px;display:flex;flex-direction:column;gap:8px;min-width:0;overflow:auto}
.workspace-nav button,.workspace-nav a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;background:transparent;border:0;color:white;border-radius:8px;text-decoration:none;font-size:13px}
.workspace-nav button:hover,.workspace-nav a:hover{background:#46504b}.workspace-nav .nav-label{display:none}.nav-expanded .workspace-nav .nav-label{display:inline}.nav-expanded .workspace-nav button,.nav-expanded .workspace-nav a{justify-content:flex-start;padding:10px}
.workspace-nav .new-party{background:#f4cd85;color:#242820;font-weight:700}.workspace-nav .nav-foot{margin-top:auto}
.work-panel{display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff;border-right:1px solid #dfe3e0}
.work-tabs{display:flex;background:#f2f4f2;padding:4px;gap:2px;flex-shrink:0}.work-tabs button{flex:1;border:0;background:transparent;border-radius:7px;font-size:13px;padding:8px 4px}.work-tabs [aria-selected=true]{background:#fff;color:#147044;font-weight:700;box-shadow:0 1px 3px #0001}
.host-workspace .work-panel .panel{border:0;border-radius:0;min-height:0;flex:1;overflow:auto;padding:12px}
.host-workspace .res{flex-wrap:wrap;padding:10px;gap:7px}.host-workspace .res .g{min-width:160px}.host-workspace .res .acts{max-width:none;width:100%;justify-content:flex-start}.host-workspace .res .name{white-space:normal}.host-workspace .srvpick{display:flex;margin-top:4px}.host-workspace .srv{min-height:36px;font-size:14px}
.host-workspace #reservations{padding-bottom:8px}.host-workspace .panel h2{font-size:12px;letter-spacing:.6px}
.reservation-filters{display:flex;gap:5px;margin:8px 0;flex-wrap:wrap}.reservation-filters button{font-size:12px;padding:6px 9px}.reservation-filters [aria-pressed=true]{background:#dceee2;border-color:#9bcaaa;color:#17452d}
.quick-walk{padding:10px;border-top:1px solid #dfe3e0;background:#fafbf9;flex-shrink:0}.quick-walk strong{display:block;font-size:12px;margin-bottom:7px}.quick-walk div{display:flex;gap:4px;overflow:auto}.quick-walk button{flex:1;min-width:34px;padding:5px}
.host-workspace #floorPanel{border:0;border-radius:0;display:flex;flex-direction:column;min-height:0;min-width:0;padding:10px 14px;overflow:auto;background:#f8f9fa}
.host-workspace #floorPanel>h2{display:none}.host-workspace #sectionTabs{flex-shrink:0;margin:0}.host-workspace #sectionTabs button{background:transparent;border:0}.host-workspace #sectionTabs .act{background:#e1eee5;color:#12653c}
.host-workspace .scrub{flex-shrink:0;margin:6px 0;max-width:650px}.host-workspace .planwrap{flex:1;min-height:200px;overflow:auto;display:flex;align-items:flex-start;justify-content:flex-start;border:0;border-radius:8px;background:#f8f9fa;overscroll-behavior:contain}
.host-workspace .plan{flex-shrink:0;margin:auto;transform-origin:top left;touch-action:pan-x pan-y}
.host-workspace .legend{flex-shrink:0;margin:7px 0;font-size:11px}.host-workspace .tbl{box-shadow:0 2px 5px #26372f12;cursor:pointer}.host-workspace .tbl .who{font-size:10px}
.host-workspace .tbl .course-label{font-size:9px;white-space:nowrap}.host-workspace .fix{border-style:solid;background:#ece5f5;border-color:#e6e0ed}.host-workspace .fix.exit{background:#e1e9f8;color:#4d596c}
.floor-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0}.floor-toolbar button{font-size:12px}.floor-toolbar .floor-help{flex:1;font-size:12px;color:#63716a}.floor-toolbar output{font-size:12px;min-width:34px;text-align:center}
.host-workspace .mobile-table-picker{margin:0;flex-shrink:0}.host-workspace .mobile-table-picker summary{padding:8px;font-size:12px}.host-workspace #mobileTableList{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:190px}
.host-workspace .service-board{margin:0;border:0;padding:0}.host-workspace .service-grid{max-height:none}.host-workspace #serviceDialog{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(460px,100%);border-radius:0;border:0;box-shadow:-8px 0 32px #0002}
.host-workspace #serviceDialog::backdrop{background:#132b222b}.host-workspace #serviceError{padding:6px;font-size:12px}
.server-card{border:1px solid #e1e5e1;border-radius:10px;padding:12px;margin:8px 0}.server-card strong{display:block}.server-card small{color:#617068}.server-card button{margin-top:8px;width:100%;text-align:left}
.composer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.composer-head h2{margin:0}.composer-tables{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.composer-tables button{font-size:12px}.composer-tables [aria-pressed=true]{background:#dceee2;border-color:#137344}
.host-workspace #addBtn{min-height:48px;background:#127644;border-color:#127644}.host-workspace .field input,.host-workspace .field select,.host-workspace textarea{font-size:16px}.host-workspace #addMsg{overflow-wrap:anywhere}
#connectionState{font-size:11px;color:#dcfce7;max-width:145px}#connectionState[data-state=stale]{color:#fde68a}
.host-workspace #joinbar{border-radius:12px;max-width:calc(100vw - 24px);flex-wrap:wrap;bottom:16px}.host-workspace .toasts{max-width:calc(100vw - 24px)}
@media(max-width:1100px){.host-workspace .layout,.host-workspace.nav-expanded .layout{grid-template-columns:52px 310px minmax(0,1fr)}.nav-expanded .workspace-nav .nav-label{display:none}.host-workspace header #signOut{display:none}.host-workspace #floorPanel{padding:8px}.host-workspace header b{font-size:12px}}
@media(max-width:900px){.host-workspace header{flex-wrap:wrap;padding:6px 8px;gap:4px}.host-workspace header b{flex:1}.host-workspace header .sp{display:none}.host-workspace header #prev,.host-workspace header #next{min-width:44px}.host-workspace header #today{display:none}.host-workspace header #dateLabel{order:2}.host-workspace header #connectionState{order:3;margin-left:auto}.host-workspace header #refresh{font-size:12px}.host-workspace .metrics{display:none}.host-workspace .layout,.host-workspace.nav-expanded .layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 58px}.workspace-nav{grid-row:2;flex-direction:row;padding:3px;gap:3px;overflow:hidden}.workspace-nav button,.workspace-nav a{flex:1;min-height:48px;font-size:12px;padding:5px}.workspace-nav .nav-label,.nav-expanded .workspace-nav .nav-label{display:inline}.workspace-nav .nav-foot,.workspace-nav .nav-reconcile{display:none}.host-workspace #navToggle{display:none}.work-panel{grid-column:1;grid-row:1;border:0}.host-workspace #floorPanel{grid-column:1;grid-row:1}.host-workspace[data-mobile-view=floor] .work-panel{display:none}.host-workspace:not([data-mobile-view=floor]) #floorPanel{display:none}.host-workspace #floorPanel{padding:7px}.host-workspace .planwrap{min-height:180px}.host-workspace .legend{font-size:10px;gap:6px}.floor-toolbar .floor-help{display:none}.host-workspace #joinbar{bottom:67px;font-size:12px}.host-workspace .toasts{bottom:67px;left:10px;right:10px}.host-workspace #serviceDialog{width:100%;height:94dvh;max-height:94dvh;margin:auto 0 0;border-radius:16px 16px 0 0}.host-workspace .quick-walk{padding-bottom:env(safe-area-inset-bottom,8px)}}

.host-workspace .plan.compact-labels .who,.host-workspace .plan.compact-labels .course-label,.host-workspace .plan.compact-labels .dot{display:none}.host-workspace .plan.compact-labels .tbl .nm{font-size:11px}.host-workspace .floor-toolbar{margin:0}.host-workspace .scrub{margin:0}.host-workspace .tbl{padding:0}

.floor-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;flex-shrink:0;gap:4px}.floor-options{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}.floor-options details{flex:1;min-width:140px}.time-view summary{min-height:44px;font-size:12px;padding:8px;cursor:pointer}.floor-bar .floor-help{display:none}.host-workspace .floor-bar .floor-toolbar{margin-left:auto}.host-workspace .floor-options .scrub{padding:6px 0}

.res-drawer{scroll-padding-bottom:64px}.res-drawer .row{flex-wrap:wrap}.res-drawer .field>.row{flex-wrap:nowrap}.res-drawer .field:has(#addTime){min-width:190px}.res-drawer .field:has(#addDuration){min-width:156px}.res-drawer #addTime{flex:0 0 112px;width:112px;padding:8px 4px}.res-drawer #addDuration{flex:0 0 52px;width:52px;padding:8px 4px}.res-drawer #addTimeMinus,.res-drawer #addTimePlus,.res-drawer #addDurationMinus,.res-drawer #addDurationPlus{flex:0 0 44px;width:44px;min-height:44px;padding:0}
@media(max-width:900px){.host-workspace .workspace-nav #navSettings{display:flex}}

.drawer-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;text-align:left;background:#fff;border:1px solid #e1e5e1;padding:12px;font-size:16px}.drawer-choice .choice-label{font-weight:600}.drawer-choice .choice-value{flex:1;text-align:right;color:#59665e;overflow-wrap:anywhere}.drawer-choice>span:last-child{font-size:20px}.composer-tables:has(.drawer-choice){display:block;margin:0}.composer-tables .drawer-choice{font-size:16px}.choice-row[aria-pressed=true]{background:#dceee2;border-color:#137344}

#composerSelection:empty{display:none}

.host-workspace .icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;padding:8px}
.table-size-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}
.table-size-controls button{min-width:44px;min-height:44px;font-size:20px;font-weight:600}
.table-size-controls output{min-width:42px;text-align:center;font-size:13px}
.floor-toolbar .table-size-controls{background:#fff;border:1px solid #dfe3e0;border-radius:10px;padding:2px 6px}
.floor-setup h3{margin:18px 0 8px}.floor-setup .drawer-choice{margin-top:12px;justify-content:space-between}
.floor-setup .editor{border:0;padding:0;margin:0;background:transparent}
.floor-setup .row{flex-wrap:wrap}.floor-setup input,.floor-setup select{font-size:16px;max-width:100%}
.floor-setup .field{min-width:100px}.floor-setup .hint{line-height:1.5}
.layout-notice{flex-shrink:0;padding:8px 10px;background:#fff3cf;color:#694e0c;border-radius:8px;font-size:13px;margin:6px 0}
.host-workspace header #layoutBtn[aria-pressed=true]{background:#fff3cf;color:#694e0c;border-color:#ce9d30}
.host-workspace .plan.layout-editing .tbl{touch-action:none;cursor:move}
.host-workspace .tbl .nm{font-size:14px}
.host-workspace .plan.compact-labels .tbl .nm{font-size:13px}
.host-workspace .planwrap{touch-action:pan-x pan-y}

.table-selection{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;background:#effaf3;border-bottom:1px solid #b6dfc4;font-size:13px}.table-selection[hidden]{display:none}.table-selection[data-capacity="short"]{background:#fff1f0;border-color:#edb6b0}.table-chips{display:flex;gap:6px;flex-wrap:wrap}.table-chip{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid #98baa5;border-radius:22px;background:white}.capacity-warning,[data-capacity="short"]#composerSelection{color:#992d25}.host-workspace .tbl.compose-fits{background:#d5f5df!important;border:3px solid #23854b!important;color:#174b2a!important}.host-workspace .tbl.compose-short{background:#ffe0dc!important;border:3px solid #be4035!important;color:#7d211a!important}


/* Keep every host entry surface above Safari's input-focus zoom threshold,
   including fields moved into the shared flyout or a service dialog. */
body.host-workspace input,
body.host-workspace select,
body.host-workspace textarea{font-size:16px!important}

/* In-page fullscreen survives the iPad software keyboard. */
body.host-workspace.workspace-fullscreen{position:fixed;inset:0;width:100%;height:100dvh;z-index:100}
.host-workspace .res-drawer,.host-workspace .choice-flyout{height:100dvh;max-height:100dvh}

/* Seat confirmation stays above messages and leaves the map available. */
.host-workspace #joinbar{z-index:70;width:min(540px,calc(100vw - 20px));gap:8px;flex-wrap:nowrap;box-sizing:border-box}
.host-workspace #joinbar>span{flex:1;min-width:0}
.host-workspace #joinbar>button{flex-shrink:0;min-height:44px;padding:8px 12px}
.host-workspace.seating-picked .toasts{bottom:calc(var(--seat-bar-height,64px) + 30px)}
@media(max-width:900px){.host-workspace.seating-picked .toasts{bottom:calc(var(--seat-bar-height,64px) + 80px)}}
#reservations [draggable=true],#waitlist [draggable=true],.tbl[draggable=true]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.party-drag-ghost{position:fixed;z-index:120;pointer-events:none;background:#173d2a;color:#fff;border-radius:10px;padding:10px 14px;max-width:240px;box-shadow:0 4px 20px #0004;font:600 14px system-ui}
body.party-drag-active{cursor:grabbing}
.party-drop-target{outline:3px solid #e11d48!important;outline-offset:2px}
#serviceDialog .service-close-row{display:block}
.service-placement-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
#serviceDialog .service-placement-actions button{width:100%;padding:8px}

/* iPad widths keep the 52px rail; the hamburger flies the labelled nav out over the list. */
@media(min-width:901px) and (max-width:1100px){
.host-workspace.nav-expanded .workspace-nav{position:relative;z-index:60;width:180px;box-shadow:8px 0 24px #0003}
.host-workspace.nav-expanded .workspace-nav .nav-label{display:inline}
}

/* Quick repeat taps (time +/−, party size, table size) must not trigger iPad double-tap zoom.
   Pinch zoom and scrolling still work; the floor plan keeps its own narrower touch-action. */
html:has(body.host-workspace),body.host-workspace,.host-workspace button,.host-workspace a,.host-workspace input,.host-workspace .choice-flyout{touch-action:manipulation}

/* Choose tables by number: full screen, one tab per seating area, big tiles. The Seat here bar
   (z-index 70) stays on top so a multi-table pick can be seated from here. */
.host-workspace .mobile-table-picker{font-weight:600}
.table-picker{position:fixed;inset:0;z-index:66;background:#f8f9fa;display:flex;flex-direction:column;padding:12px 16px calc(var(--seat-bar-height,0px) + 24px);box-sizing:border-box;overflow:auto}
.table-picker[hidden]{display:none}
.tp-head,.tp-tabs{flex:0 0 auto}.tp-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tp-head h2{margin:0;font-size:20px}.tp-hint{flex:1;color:#52635f;font-size:14px}
.tp-head #tpClose{min-width:96px;font-weight:700;background:#127644;border-color:#127644;color:#fff}
.tp-tabs{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.tp-tabs button{font-size:16px;padding:10px 18px;border-radius:999px;background:#fff}
.tp-tabs button[aria-selected=true]{background:#dceee2;border-color:#137344;color:#17452d;font-weight:700}.tp-tabs span{color:#63716a;font-weight:400;font-size:13px}
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;align-content:start;flex:0 0 auto}
.table-picker .tp-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:96px;padding:8px 4px;border-radius:12px;background:#fff;border:2px solid #b6dfc4;font-size:13px}
.tp-tile b{font-size:28px;line-height:1.1}.tp-tile small{color:#52635f}.tp-tile.busy{background:#e8eefb;border-color:#9db4e8}
.tp-tile[aria-pressed=true]{background:#137344;border-color:#0d5a34;color:#fff}.tp-tile[aria-pressed=true] small{color:#dcfce7}
body.table-picker-open .toasts{z-index:67}
.host-workspace #tablePicker #mobileTableList{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-auto-rows:minmax(96px,auto);max-height:none;overflow:visible;gap:10px}


.quick-qr{text-align:center}.quick-qr img{display:block;width:min(100%,360px);height:auto;margin:16px auto;background:white}.quick-qr a{display:block;padding:12px}.host-workspace header #qrBtn{display:inline-flex;white-space:nowrap}

/* Keep both actions visible while only the reservation fields scroll. */
.host-workspace .res-drawer{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.host-workspace .res-drawer[hidden]{display:none}
.res-drawer>.drawer-head{flex-shrink:0}
#drawerFormMount{flex:1;min-height:0;overflow-y:auto;padding-bottom:16px;overscroll-behavior:contain}
.reservation-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;flex-shrink:0;padding:12px 0 max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dfe5df;box-shadow:0 -8px 16px #00000008}
.reservation-actions button{width:100%;min-height:48px;margin:0;white-space:nowrap;font-size:16px}

