:root{--ops-accent:#9b2d26;--ops-accent-soft:#f7e6df;--ops-surface:#fff;--ops-canvas:#f1eeea;--ops-muted:#766c65;--ops-border:#e2dcd5;--ops-green:#2f6654}
#shell>header{height:68px}#shell>.layout{min-height:calc(100vh - 68px);grid-template-columns:216px minmax(0,1fr)}#shell main{max-width:none;padding:28px 30px}#shell #nav{background:#30221c;padding:20px 12px;gap:4px}#shell #nav button{color:#f3e7dd;font-size:14px;padding:11px 15px}#shell #nav button.active{background:#704132;color:#fff}#shell .page-head{margin-bottom:20px}#shell .eyebrow{color:var(--ops-muted)}#shell h1{font-size:28px}.ops-workspace{font-size:14px}.ops-toolbar,.ops-daybar,.ops-filters,.ops-map-tools,.ops-map-top,.ops-form-footer,.ops-customer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.ops-toolbar{margin-bottom:20px}.ops-view-tabs{display:flex;border:1px solid var(--ops-border);padding:5px;background:#fff;border-radius:9px;gap:4px;flex-wrap:wrap}.ops-view-tabs button{border:0;background:transparent;padding:9px 16px;min-height:40px;font-size:13px}.ops-view-tabs [aria-pressed=true],.ops-room-tabs [aria-pressed=true]{background:var(--ops-accent);color:#fff}.ops-daybar{background:#fff;border:1px solid var(--ops-border);border-radius:10px;padding:16px;margin-bottom:14px}.ops-search{min-width:210px}.ops-search input{font-size:14px}.ops-date{display:flex;align-items:end;gap:8px}.ops-date input{font-size:14px;max-width:175px}.ops-date>button{height:44px;min-width:44px;padding:8px 12px}.ops-totals{display:flex;gap:20px;font-size:12px;color:var(--ops-muted)}.ops-totals b{display:block;font-size:23px;line-height:1.2;color:var(--ink);font-variant-numeric:tabular-nums}.ops-filters{justify-content:flex-start;margin-bottom:20px}.ops-filters label{min-width:165px}.ops-filters select,.ops-filters input{font-size:14px;min-height:44px}.ops-filters>button{align-self:end}.ops-footnote{font-size:12px;color:var(--ops-muted);margin:18px 0;line-height:1.7}.ops-group{margin:22px 0}.ops-group h2{font-size:18px;display:flex;gap:16px;align-items:center;margin-bottom:12px}.ops-group h2 small{font-size:12px;font-weight:400;color:var(--ops-muted)}.ops-reservation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:12px}.ops-reservation{background:#fff;border:1px solid var(--ops-border);border-radius:8px;padding:18px;min-width:0}.ops-reservation.selected{border:2px solid var(--ops-accent)}.ops-person{display:flex;align-items:center;justify-content:space-between;gap:10px}.ops-name{padding:0;min-height:34px;background:none;color:var(--ink);font-size:16px;font-weight:600;text-align:left}.ops-name:hover{color:var(--ops-accent);background:none}.ops-reservation>p{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:13px}.ops-note{display:block!important;line-height:1.6}.ops-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.ops-row-actions button{font-size:12px;min-height:38px;padding:7px 12px}.badge.waitlist{background:#e9e2f4;color:#5d387b}.badge.arrived{background:#ccebdd;color:#235b45}.ops-empty{padding:38px 22px;text-align:center;color:var(--ops-muted);background:#fff;border:1px dashed var(--ops-border);border-radius:8px}.ops-empty h3{font-size:17px;color:var(--ink);margin-bottom:8px}.ops-map-tools{margin-bottom:16px}.ops-room-tabs{display:flex;gap:6px;flex-wrap:wrap}.ops-assignment{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px;background:var(--ops-accent-soft);border:1px solid #c1846f;border-radius:8px;margin-bottom:14px}.ops-assignment>span{flex:1;min-width:210px}.ops-floor-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.ops-reserves{display:grid;gap:12px;max-height:760px;overflow-y:auto;padding-right:3px}.ops-reserves .ops-reservation{padding:16px}.ops-reserves .ops-person{display:block}.ops-map-panel{min-width:0;background:#fff;border:1px solid var(--ops-border);border-radius:10px;overflow:hidden}.ops-map-top{padding:12px 16px;border-bottom:1px solid var(--ops-border)}.ops-map-top p{font-size:13px}.ops-map-top button{padding:6px 12px;min-width:40px;min-height:40px}.ops-map-scroll{overflow:auto;max-height:640px;background:var(--ops-canvas);overscroll-behavior:contain}.ops-map-sizing{position:relative;min-width:100%}.ops-floor{width:1200px;height:800px;position:absolute;left:0;top:0;transform-origin:top left;background-image:radial-gradient(#cfc5bc 1px,transparent 1px);background-size:20px 20px}.ops-table{position:absolute;padding:8px;background:#fff;color:var(--ink);border:2px solid #b7b3ad;box-shadow:0 5px 0 #d9d3cb;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:0;touch-action:manipulation;overflow:hidden}.ops-table strong{font-size:16px}.ops-table small{font-size:12px}.ops-table span{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ops-table:hover{background:#f9e5db;border-color:var(--ops-accent);color:var(--ink)}.ops-table.occupied{background:#ead1c1;border-color:#ad6c45}.ops-table.arrived{background:#d0e7dc;border-color:#52826c}.ops-table.blocked,.ops-table.inactive{background:repeating-linear-gradient(45deg,#e9e7e4,#e9e7e4 8px,#dedbd6 8px,#dedbd6 16px);border-color:#958f88;color:#665d56}.ops-table.assigned{outline:5px solid var(--ops-accent);outline-offset:5px}.ops-table.chosen{border-color:var(--ops-accent)}.ops-floor.editing .ops-table{cursor:grab;touch-action:none}.ops-floor.editing .ops-table:active{cursor:grabbing}.ops-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 16px;font-size:12px;border-top:1px solid var(--ops-border);color:#776e65}.legend-busy{color:#a36542}.legend-arrived{color:#3d7560}.legend-blocked{color:#6d6660}.ops-inspector{padding:20px;border-top:1px solid var(--ops-border)}.ops-inspector>div+div{margin-top:14px}.ops-inspector input{max-width:100px;font-size:14px}.ops-inspector label{min-width:80px}.ops-inspector h3 small{font-weight:400;font-size:14px}.ops-timeline-scroll{overflow:auto;max-height:720px;border:1px solid var(--ops-border);border-radius:10px;background:white}.ops-timeline-head,.ops-timeline-row{display:grid;grid-template-columns:180px 1fr}.ops-timeline-head{height:48px;position:sticky;top:0;z-index:5;background:#eee7df;border-bottom:1px solid var(--ops-border)}.ops-timeline-head>span{padding:14px;position:sticky;left:0;background:#eee7df;z-index:1}.ops-timeline-head>div{position:relative}.ops-timeline-head b{position:absolute;top:15px;font-size:12px;font-weight:500;padding-left:5px}.ops-timeline-row{height:76px;border-bottom:1px solid var(--ops-border)}.ops-timeline-label{position:sticky;left:0;z-index:3;background:#fff;border:0;border-right:1px solid var(--ops-border);border-radius:0;text-align:left;font-size:14px;padding:12px}.ops-timeline-label small{display:block;font-size:11px;font-weight:400;margin-top:3px}.ops-timeline-track{position:relative;background-image:linear-gradient(90deg,#e6e0d9 1px,transparent 1px)}.ops-event{position:absolute;top:8px;height:58px;padding:8px 12px;background:#eed7cb;border:1px solid #ba8160;color:#4d2e21;border-radius:5px;min-height:0;font-size:12px;overflow:hidden;text-align:left;white-space:nowrap}.ops-event small{display:block}.ops-event.arrived{background:#d0e7dc;border-color:#52826c}.ops-event.cancelled,.ops-event.no_show,.ops-event.completed{opacity:.55}.ops-event.block{background:#ddd8d2;border-color:#958f88;pointer-events:none}.ops-event:hover{background:#d2ab95;color:var(--ink)}.ops-calendar-top{display:flex;align-items:center;gap:25px;justify-content:center;margin-bottom:20px}.ops-calendar-top h2{text-transform:capitalize;font-size:22px}.ops-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.ops-calendar>strong{text-align:center;font-size:12px}.ops-calendar button{text-align:left;background:#fff;min-height:110px;border:1px solid var(--ops-border);display:flex;flex-direction:column;gap:5px;padding:12px}.ops-calendar button b{font-size:18px}.ops-calendar button span{font-size:12px}.ops-calendar button small{font-size:11px}.ops-calendar .outside{opacity:.45}.ops-calendar .selected{border:2px solid var(--ops-accent);background:var(--ops-accent-soft)}dialog.ops-wide{max-width:1040px}.ops-booking-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.ops-booking-columns h3{margin:8px 0 20px}.ops-booking-columns section>label{margin-top:16px}.ops-booking-columns .grid{gap:14px}.ops-booking-columns fieldset{border:1px solid var(--ops-border);border-radius:8px;padding:16px;margin:18px 0 0;min-width:0}.ops-booking-columns legend{font-size:14px}.ops-booking-columns legend small{font-size:11px}.ops-table-picks{display:flex;gap:8px;flex-wrap:wrap;max-height:220px;overflow:auto;margin-top:12px}.ops-table-picks label{border:1px solid var(--ops-border);padding:8px 10px;border-radius:5px;font-size:12px}.ops-availability{margin:16px 0;font-size:12px;line-height:1.8}.ops-availability p{margin-top:10px}.ops-form-footer{justify-content:flex-start;padding-top:20px;margin-top:20px;border-top:1px solid var(--ops-border)}.ops-form-footer>span{font-size:12px;color:var(--ops-muted)}.ops-booking-form #booking-error:empty{display:none}.ops-booking-form #booking-error{margin-top:20px}.ops-customer-toolbar{justify-content:flex-start;margin-bottom:18px;align-items:end}.ops-customer-toolbar label{min-width:240px}.ops-data-scroll{overflow:auto;border:1px solid var(--ops-border);border-radius:9px}.ops-data-table{border-collapse:collapse;min-width:760px;width:100%;background:#fff;font-size:14px}.ops-data-table th{text-align:left;background:#eee7df;color:#6a5142;font-size:12px;padding:14px 18px;font-weight:500}.ops-data-table td{padding:17px 18px;border-top:1px solid var(--ops-border)}.ops-data-table small{display:block;color:var(--ops-muted);margin-top:4px}.ops-data-table td .badge{margin-left:6px}.ops-customer-history{display:grid;gap:12px;margin-top:22px}.ops-customer-history>h3{margin-bottom:5px}.ops-block-list{margin-top:18px}.ops-block-list p{margin-top:12px}
@media(max-width:1250px){.ops-floor-layout{grid-template-columns:250px minmax(0,1fr)}#shell main{padding:24px 20px}.ops-totals{gap:12px}.ops-daybar{gap:16px}.ops-date{order:0}.ops-search{min-width:180px}}
@media(max-width:950px){#shell>.layout{display:block}#shell #nav{display:flex;flex-direction:row;overflow:auto;padding:10px}#shell #nav button{white-space:nowrap}.ops-floor-layout{grid-template-columns:220px minmax(0,1fr)}.ops-booking-columns{gap:20px}}
@media(max-width:650px){#shell main{padding:20px 14px}.ops-toolbar{gap:12px}.ops-view-tabs{width:100%;flex-wrap:nowrap;overflow:auto}.ops-view-tabs button{padding:9px 14px;white-space:nowrap}.ops-daybar{padding:12px}.ops-search{width:100%}.ops-date{width:100%;gap:5px}.ops-date label{flex:1}.ops-date input{max-width:none;width:100%}.ops-totals{justify-content:space-between;width:100%;margin-top:4px}.ops-totals b{font-size:21px}.ops-filters{gap:10px}.ops-filters label{min-width:0;flex:1}.ops-filters>button{font-size:12px}.ops-floor-layout{display:flex;flex-direction:column-reverse}.ops-reserves{width:100%;max-height:400px}.ops-map-panel{width:100%}.ops-map-scroll{max-height:440px}.ops-map-top{padding:10px}.ops-map-top .row{gap:8px}.ops-map-top p{font-size:12px}.ops-map-tools button{font-size:12px;padding:8px 12px}.ops-booking-columns{grid-template-columns:1fr}.ops-calendar{gap:3px}.ops-calendar button{min-height:90px;padding:6px;font-size:11px}.ops-calendar button span{font-size:10px}.ops-calendar button small{font-size:9px}.ops-calendar button b{font-size:15px}.ops-customer-toolbar label{width:100%;min-width:0}.ops-reservation-grid{grid-template-columns:1fr}.ops-group h2{align-items:start;flex-direction:column;gap:3px}.ops-inspector{padding:14px}.ops-form-footer{position:sticky;bottom:-25px;background:#fff;padding-bottom:12px}.ops-assignment button{font-size:12px}.ops-footnote{font-size:11px}}
@media print{#shell>header,#nav,.page-head,#notice,.ops-toolbar,.ops-daybar,.ops-filters,.ops-map-tools,.ops-form-footer,.ops-footnote,.ops-row-actions,.ops-map-top button,.ops-table-inspector{display:none!important}#shell>.layout{display:block}#shell main{padding:0}.ops-reservation-grid{grid-template-columns:1fr 1fr}.ops-reservation{break-inside:avoid}.ops-timeline-scroll,.ops-map-scroll{max-height:none;overflow:visible}.ops-map-panel{overflow:visible}.ops-floor-layout{display:block}.ops-reserves{display:none}.ops-timeline{transform:scale(.5);transform-origin:top left}.ops-reservation{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.ops-workspace *{transition:none!important;scroll-behavior:auto}}

.ops-local-banner{padding:8px 18px;background:#f3d7ab;color:#5c3b18;text-align:center;font-size:12px;font-weight:500}
@media(max-width:650px){.ops-filters label{flex:1 1 calc(50% - 10px);min-width:calc(50% - 10px)}.ops-filters>button{flex:1 1 auto}.ops-filters input,.ops-filters select{width:100%}.ops-map-scroll{min-height:330px}}
/* Temporary service grouping is an operational state, never a saved floor move. */
.ops-group-suggestions{border:1px solid var(--line,#d8cabc);border-radius:8px;padding:18px;margin:20px 0;background:#faf7f2}.ops-group-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.ops-group-heading h3{margin:0}.ops-group-option{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:14px;border:1px solid var(--line,#d8cabc);border-radius:6px;background:white}.ops-group-option.selected{border-color:#743d29;box-shadow:inset 0 0 0 1px #743d29}.ops-group-option p{font-size:13px;margin:4px 0}.ops-group-option small{font-size:11px;color:#6a5b50}.ops-group-option>button{flex-shrink:0}.ops-group-warning{color:#8b392c}.ops-service-choice{margin:18px 0 10px;align-items:flex-start}.ops-service-choice small{display:block;margin-top:4px}.ops-service-groups{padding:18px 22px;margin:0 0 18px;border:1px solid #bb9779;border-radius:8px;background:#f7f0e5}.ops-service-groups h3{margin:0 0 12px}.ops-service-groups>div{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0}.ops-service-groups p{font-size:14px;line-height:1.7}.ops-service-groups small{font-size:12px}.ops-table.service-group{outline:3px dashed #b87a42;outline-offset:5px}@media(max-width:650px){.ops-group-option,.ops-service-groups>div{align-items:flex-start;flex-direction:column}.ops-group-option>button{width:100%}}
