#floor-view{--floor-free:#d4eee0;--floor-booked:#ffe7a0;--floor-occupied:#f4b7b5;--floor-leaving:#e2f0cb;--floor-unavailable:#d7dce0}
.floor-workspace{color:#183b2e}
.floor-toolbar,.floor-palette,.floor-map-controls,.floor-legend,.floor-table-list{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.floor-toolbar{align-items:end}.floor-toolbar label{margin:0;min-width:100px}.floor-toolbar label.check{align-self:center;min-width:0}.floor-toolbar input[type=number]{max-width:130px}.floor-toolbar input[type=date]{width:160px}.floor-toolbar input[type=time]{width:115px}.floor-toolbar select{max-width:220px}.floor-palette{margin-top:12px}.floor-palette button{padding:9px 12px}.floor-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;margin:16px 0}.floor-map-panel{background:#fff;border:1px solid #d6e0d8;border-radius:16px;overflow:hidden}.floor-map-controls{padding:10px;border-bottom:1px solid #e2e8e2}.floor-map-controls label.check{margin:0;font-size:12px}.floor-map-controls button{padding:8px 12px}#floor-scroll-viewport{position:relative;width:100%;height:560px;min-width:0;overflow:scroll;overscroll-behavior:contain;background:#f7faf8;scrollbar-color:#718b7d #edf3ee}#floor-scroll-space{position:relative;min-width:100%;min-height:100%}#floor-canvas{position:sticky;top:0;left:0;touch-action:none;background:#f7faf8}.floor-legend{padding:12px;border-top:1px solid #e2e8e2;font-size:12px}.floor-legend span{display:flex;gap:5px;align-items:center}.floor-legend span:before{content:'';width:14px;height:14px;border:1px solid #62756c;border-radius:4px;background:var(--floor-free)}.floor-legend [data-state=booked]:before{background:var(--floor-booked)}.floor-legend [data-state=occupied]:before{background:var(--floor-occupied)}.floor-legend [data-state=leaving]:before{background:var(--floor-leaving)}.floor-legend [data-state=unavailable]:before{background:var(--floor-unavailable)}.floor-sidebar{margin:0;padding:18px;max-height:820px;overflow:auto}.floor-sidebar h2{font-size:18px;margin:0 0 14px}.floor-sidebar h3{font-size:15px;margin:18px 0 8px}.floor-sidebar label{margin-bottom:12px}.floor-sidebar .floor-prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.floor-sidebar .floor-prop-grid label{min-width:0}.floor-sidebar button{padding:10px 12px}.floor-sidebar .floor-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.floor-sidebar p{overflow-wrap:anywhere}.floor-upcoming-item{display:block;width:100%;text-align:left;margin-bottom:8px;font-size:12px}.floor-table-list{padding:0 12px 12px}.floor-table-list button{font-size:12px;padding:8px 12px}.floor-combination-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #e0e6e1}.floor-combination-row input{width:90px}.floor-combination-row label{margin:0}.floor-combination-row strong{flex:1}.floor-help{font-size:12px;line-height:1.55;color:#617a70}.floor-save-error{color:#a92d20!important}#floor-combination-form{margin-top:20px}#floor-combination-tables{margin-bottom:12px}#floor-enabled{width:auto}#floor-status{min-height:20px}#floor-view [hidden]{display:none!important}#floor-booking-detail dl{display:grid;grid-template-columns:85px 1fr;gap:8px;font-size:13px}#floor-booking-detail dt{font-weight:bold}#floor-booking-detail dd{margin:0;overflow-wrap:anywhere}
.floor-assignment-pick{padding:16px;background:#eaf3fa;border-bottom:2px solid #2474ab}.floor-assignment-pick p{margin:8px 0;font-size:13px}.floor-assignment-combinations{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.floor-assignment-message{margin:0;padding:14px;background:#edf4ed}#floor-pick-table{display:block;width:100%;margin-bottom:8px}
.floor-layout-editor{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #d6e0d8}.floor-layout-editor>label{max-width:520px}.floor-layout-editor .floor-toolbar select{max-width:260px}#floor-layout-active{padding:10px 14px;background:#eaf3ef;border-radius:8px}#floor-layout-description{font-size:13px}
@media(max-width:1100px){.floor-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:850px){.floor-workspace{grid-template-columns:1fr}.floor-sidebar{max-height:none}#floor-scroll-viewport{height:460px}.floor-toolbar label{flex:1}.floor-toolbar input,.floor-toolbar select{max-width:100%}.floor-map-controls{gap:6px}.floor-palette button{min-height:42px}}
.floor-workspace{position:relative}.floor-workspace.is-operational{grid-template-columns:minmax(0,1fr)}.floor-workspace>.floor-sidebar{display:none;position:absolute;z-index:5;top:var(--floor-overlay-top,76px);right:12px;width:min(355px,calc(100% - 24px));max-height:calc(100% - var(--floor-overlay-top,76px) - 12px);box-shadow:0 12px 36px #153f3333;border:1px solid #b5cbbc;background:#fff}.floor-workspace>.floor-sidebar.is-open{display:block}#floor-close-sidebar{float:right;margin:0 0 10px 12px}#floor-selected-title{clear:both}#floor-map-context{margin:0;padding:8px 12px;border-bottom:1px solid #e2e8e2}#floor-map-error{margin:8px 12px}#floor-canvas{cursor:grab}#floor-canvas.is-panning{cursor:grabbing}.floor-workspace:fullscreen,.floor-workspace.is-fullscreen{width:100%;height:100%;margin:0;padding:12px;background:#f3f6f2;align-items:stretch;overflow:auto;box-sizing:border-box}.floor-workspace.is-fullscreen{position:fixed;inset:0;z-index:10000;width:100vw;height:100dvh}.floor-workspace:fullscreen>.floor-map-panel,.floor-workspace.is-fullscreen>.floor-map-panel{min-height:0;display:flex;flex-direction:column}.floor-workspace:fullscreen #floor-scroll-viewport,.floor-workspace.is-fullscreen #floor-scroll-viewport{flex:1;min-height:180px;height:auto}.floor-workspace:fullscreen .floor-table-list,.floor-workspace.is-fullscreen .floor-table-list{max-height:90px;overflow:auto;flex-shrink:0}.floor-workspace:fullscreen .floor-legend,.floor-workspace.is-fullscreen .floor-legend{flex-shrink:0}.floor-workspace:fullscreen>.floor-sidebar,.floor-workspace.is-fullscreen>.floor-sidebar{max-height:calc(100% - var(--floor-overlay-top,76px) - 12px)}body.floor-fullscreen-fallback{overflow:hidden}@media(max-width:600px){.floor-workspace:fullscreen,.floor-workspace.is-fullscreen{padding:4px}.floor-map-controls button{font-size:12px}.floor-workspace:fullscreen .floor-table-list,.floor-workspace.is-fullscreen .floor-table-list{display:none}}

.floor-legend [data-state=late]:before{background:#ffe066}.floor-upcoming-item.is-late,.floor-late-notice{background:#ffe066;color:#493a12;padding:10px 12px;border-radius:8px}

.floor-list-actions{display:flex;gap:8px;flex-wrap:wrap;clear:both;margin-bottom:14px}.floor-map-controls{position:relative;z-index:6}.floor-assignment-pick .floor-actions{display:flex;gap:8px;flex-wrap:wrap}

.floor-legend [data-state=reserved]:before{background:#d9c5ef}#floor-table-reserved{margin:10px 0 16px;padding:10px 12px;background:#f4eefb;border-radius:8px}

#floor-walkins-panel{width:min(520px,calc(100% - 24px))}.walkin-card{border-top:1px solid #d6e0d8;padding:12px 0}.walkin-notice{padding:8px;background:#fff2d5;border-radius:7px}.walkin-notice.is-sent{background:#d4eee0}#walkins-form{padding:14px 0}#walkins-error{color:#a92d20}#walkins-close{float:right}

.floor-save-feedback{flex-basis:100%;margin:2px 0 0;padding:10px 14px;border-radius:8px;background:#e2f2e5;color:#1d5134;font-size:13px;line-height:1.5}.floor-save-feedback[data-state=pending]{background:#eaf1f8;color:#245f91}.floor-save-feedback[data-state=error]{background:#f8e4df;color:#91452e}

.floor-table-list button small{display:block;margin-top:4px;color:inherit;font-size:11px;font-weight:400}.floor-table-list button.is-assignment-flash{opacity:.35}#floor-auto-assign{margin-left:auto}

.floor-toolbar>#floor-layout-active{flex:1 1 240px;min-width:200px;max-width:460px;margin:0;align-self:flex-end;padding:8px 12px;line-height:1.45}

#floor-workspace>#floor-assignment-pick,#floor-workspace>#floor-reserved-confirm{position:absolute;z-index:7;top:var(--floor-overlay-top,76px);right:12px;width:min(355px,calc(100% - 24px));max-height:calc(100% - var(--floor-overlay-top,76px) - 12px);overflow:auto;margin:0;border:1px solid #b9cfe1;border-radius:12px;box-shadow:0 12px 36px #153f3333;font-size:13px;line-height:1.5}
#floor-workspace>#floor-reserved-confirm{z-index:8}
#floor-workspace>#floor-assignment-message{position:absolute;z-index:7;right:12px;bottom:12px;width:min(355px,calc(100% - 24px));max-height:120px;overflow:auto;margin:0;border-radius:10px;box-shadow:0 5px 20px #153f3322;font-size:13px}

#floor-auto-assign{margin-left:0}#floor-fullscreen{margin-left:auto}

.floor-reminder-dot{display:inline-block;width:9px;height:9px;margin-left:5px;border-radius:50%;background:#d62828;vertical-align:middle}

/* State colors use stylesheet rules so CSP permits them on every refresh. */
.floor-state-button[data-floor-state="reserved"]{background:#d9c5ef;color:#183b2e}
.floor-state-button[data-floor-state="late"]{background:#ffe066;color:#183b2e}
.floor-state-button[data-floor-state="free"]{background:#d4eee0;color:#183b2e}
.floor-state-button[data-floor-state="booked"]{background:#ffe7a0;color:#183b2e}
.floor-state-button[data-floor-state="occupied"]{background:#f4b7b5;color:#183b2e}
.floor-state-button[data-floor-state="leaving"]{background:#e2f0cb;color:#183b2e}
.floor-state-button[data-floor-state="unavailable"]{background:#d7dce0;color:#183b2e}

.floor-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;position:sticky;top:-18px;background:#fff;z-index:2;margin:-4px 0 14px;padding:4px 0}.floor-sidebar-header #floor-close-sidebar{float:none;margin:0;flex-shrink:0}.floor-sidebar-header .floor-drag-handle{cursor:grab;touch-action:none;user-select:none;text-align:left;font-size:12px}.floor-sidebar-header .floor-drag-handle.is-dragging{cursor:grabbing}

.walkins-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.walkins-header h2{flex:1;margin:0;min-width:160px}.walkins-header #walkins-close{float:none;margin:0}.walkins-header #walkins-filter[aria-pressed=true]{background:#214f42;color:#fff}

#floor-unassigned.has-pending,#floor-walkins.has-pending{color:#c62828}

/* Keep refresh feedback beside the filters instead of using a separate row. */
.floor-toolbar-meta{flex:1 1 280px;max-width:520px;margin-left:auto;min-width:0;align-self:end}#floor-view .floor-toolbar-meta #floor-status{margin:4px 0 0;min-height:0;font-size:12px;line-height:1.4;text-align:right;overflow-wrap:anywhere}#floor-view .floor-toolbar-meta #floor-layout-active{margin:0}
@media(max-width:700px){.floor-toolbar-meta{flex-basis:100%;max-width:none;margin-left:0}#floor-view .floor-toolbar-meta #floor-status{text-align:left}}

.walkins-resource-choice{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.walkins-resource-choice label{flex:1 1 160px;min-width:0;margin-bottom:0}.walkins-resource-choice button{flex:0 0 auto;white-space:nowrap}.walkins-resource-choice{margin-bottom:12px}

/* The details panel floats in the browser viewport, beyond the map bounds. */
#floor-workspace>#floor-sidebar{position:fixed;z-index:60;width:min(355px,calc(100vw - 16px));max-height:calc(100dvh - 16px)}
