.floor-view-switch{display:inline-flex;gap:3px;padding:4px;margin:5px 0 14px;background:#eef4f0;border:1px solid #d9e5dd;border-radius:11px}
.floor-view-switch button,.floor-plan-panel button{font:600 14px/1.3 var(--sans);border:1px solid #d5e1d9;border-radius:9px;background:white;color:#24523c;padding:11px 15px;min-height:44px;cursor:pointer;letter-spacing:0;text-transform:none}
.floor-view-switch button[aria-pressed=true],.floor-room-tabs button[aria-pressed=true],.floor-service-switch button[aria-pressed=true]{background:#d9eee2;color:#124e34;border-color:#7fae94}
.floor-plan-panel button.floor-primary{background:#135c41;color:white;border-color:#135c41}
.floor-plan-panel button:disabled{opacity:.5;cursor:wait}.floor-plan-panel :is(button,input,select):focus-visible,.floor-canvas [role=button]:focus-visible{outline:3px solid #67a888;outline-offset:3px}
.floor-plan-panel{margin:15px 0 25px;min-width:0}.floor-plan-panel[hidden]{display:none!important}
.floor-plan-active .service-filters,.floor-plan-active #summary,.floor-plan-active .summary{display:none!important}
.floor-plan-active .service-service-tabs [data-service]{display:none!important}
.floor-plan-active .service-workspace{grid-template-columns:minmax(0,1fr)!important}
.floor-plan-active :is(.service-controlbar,#bookings,.service-calendar,#booking-detail){display:none!important}
.floor-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:15px}
.floor-room-tabs,.floor-mode-actions,.floor-form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.floor-room-tabs{max-width:100%}
.floor-mode-actions label{font-size:11px;letter-spacing:0;text-transform:none}.floor-mode-actions input{display:inline-block;width:100px;padding:8px;margin:0 0 0 7px;background:white;border:1px solid #d5e1d9;border-radius:7px}
.floor-workarea{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.floor-workarea:has(.floor-booking-card){grid-template-columns:minmax(0,1fr) 275px}
.floor-canvas-wrap{position:relative;min-width:0;border:1px solid #dbe2d9;border-radius:13px;background:#fff;padding:12px}
.floor-viewport{max-width:100%;overflow:auto;overscroll-behavior:contain;border-radius:8px}
.floor-canvas{display:block;width:100%;min-width:0;max-width:none;max-height:none;margin:0;height:auto;font-family:var(--sans);user-select:none;touch-action:pan-x pan-y}
.floor-canvas [data-floor-select]{cursor:pointer}.floor-canvas.is-editing [data-floor-select]{cursor:grab;touch-action:none}
.floor-canvas [data-floor-resize]{cursor:nwse-resize}.floor-canvas [data-floor-resize=ne],.floor-canvas [data-floor-resize=sw]{cursor:nesw-resize}
.floor-canvas [data-floor-room-resize]{cursor:nwse-resize;touch-action:none;outline:none}.floor-canvas [data-floor-room-resize=ne],.floor-canvas [data-floor-room-resize=sw]{cursor:nesw-resize}
.floor-room-handle-hit{pointer-events:all}.floor-canvas [data-floor-room-resize]:focus-visible>circle:not(.floor-room-handle-hit){stroke:#9dd8b5;stroke-width:5}
.floor-canvas-empty{position:absolute;top:35%;left:10%;right:10%;text-align:center;pointer-events:none}.floor-canvas-empty button{pointer-events:auto;box-shadow:0 4px 20px #294e311c}
.floor-canvas-empty p{margin:8px;background:#f7fbf5d9;padding:8px;color:#355842}
.floor-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 4px 3px;font-size:12px;color:#435e4b}
.floor-legend span{display:inline-flex;gap:7px;align-items:center}.floor-legend i{width:14px;height:14px;border-radius:50%;border:1px solid #b4c4b7;background:#fffdf7}
.floor-legend i.reserved{background:#1b7053}.floor-legend i.pending{background:#e8cf8c}.floor-occupied-count{margin-left:auto}
.floor-booking-card{position:relative;background:white;border:1px solid #d5e2d8;border-radius:13px;padding:21px;min-width:0}
.floor-booking-card h3{margin:0 20px 18px 0;color:#18583a;font:650 20px/1.3 var(--sans)}
.floor-booking-card article{padding:12px 0;border-bottom:1px solid #e2e9e3;overflow-wrap:anywhere}.floor-booking-card article strong{font-size:16px}
.floor-booking-card p{margin:7px 0;font-size:13px}.floor-booking-card .floor-card-close{position:absolute;right:8px;top:8px;padding:5px;min-width:36px;min-height:36px;border:0;background:transparent;font-size:23px}
.floor-booking-card .floor-link{border:0;background:transparent;font-size:12px;padding:8px 2px;color:#6c5942}
.floor-assign{margin:20px 0 0}.floor-plan-panel label{display:block;text-transform:none;letter-spacing:0;font-size:12px;color:#35523f}
.floor-plan-panel :is(input,select){border:1px solid #cddbd1;border-radius:7px;background:white;padding:10px;font:14px var(--sans);margin:7px 0}
.floor-assign button{width:100%;margin-top:6px}.floor-booking-status{color:#5b735f}.floor-feedback{min-height:22px;margin:12px 0;color:#286044;font-size:13px}.floor-feedback.error{color:#9b3434}
.floor-create,.floor-loading{max-width:480px;margin:25px auto;padding:32px;border:1px solid #d6e2d9;border-radius:14px;background:white;text-align:left}
.floor-create h3,.floor-loading h3{font:650 25px/1.3 var(--sans);color:#224e36;margin:10px 0 22px}.floor-create p{font-size:13px;color:#687a6e}
.floor-empty-icon{color:#659578;font-size:50px}.floor-create input{width:100%;margin:8px 0 15px}.floor-create .floor-primary{flex:1}
.floor-editor{display:flex;gap:16px;align-items:start;flex-wrap:wrap;margin:15px 0;padding:16px;border:1px solid #d8e4db;border-radius:12px;background:#f6faf7}
.floor-palette{display:flex;gap:8px;flex-wrap:wrap}.floor-palette button{display:grid;place-items:center;gap:6px;font-size:11px;min-width:85px;background:white}
.floor-object-icon{display:block;width:32px;height:32px;background:#c9c6b3;border:1px solid #a7ac96;border-radius:5px;box-shadow:0 3px 4px #244c2b16}.floor-object-icon.round{border-radius:50%}
.floor-object-icon.plant{border-radius:40% 60% 35% 70%;background:#57894d;border-color:#42713b}.floor-object-icon.divider{width:10px;background:#b8b79c}
.floor-properties{display:flex;gap:10px;align-items:end;flex-wrap:wrap;flex:1}.floor-properties label{flex:1;min-width:130px;max-width:230px}
.floor-properties input{width:100%;margin-bottom:0}.floor-size-controls{display:flex;gap:5px;align-items:center;flex-wrap:wrap;font-size:11px}
.floor-room-size{width:100%;margin:0}.floor-room-size fieldset{display:flex;gap:10px;align-items:end;flex-wrap:wrap;border:1px solid #d5e1d9;border-radius:9px;padding:10px}.floor-room-size legend{font-size:12px;color:#35523f}.floor-room-size label{flex:1;min-width:110px;max-width:180px}.floor-room-size input{width:100%;margin-bottom:0}.floor-room-size p{width:100%;margin:0;font-size:11px;color:#59715f}
.floor-size-controls button{min-width:40px;min-height:40px;padding:6px}.floor-plan-panel .floor-danger{color:#963d32;background:white}
.floor-edit-help{font-size:12px;color:#59715f;text-align:center}
@media(max-width:1000px){.floor-workarea:has(.floor-booking-card){grid-template-columns:minmax(0,1fr)}.floor-booking-card{max-width:none}.floor-toolbar{align-items:stretch}.floor-mode-actions{width:100%}.floor-canvas-wrap{padding:5px}.floor-occupied-count{margin-left:0}}
@media(max-width:520px){.floor-plan-panel button{font-size:12px;padding:9px 11px}.floor-room-tabs{gap:6px}.floor-editor{padding:10px}.floor-palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.floor-palette button{display:flex;justify-content:center}.floor-viewport{max-height:70dvh}.floor-create{padding:23px;margin:15px 0}.floor-legend{gap:10px;font-size:11px}}
.floor-live-status{font-size:12px;color:#59715f;margin:8px 0 12px}.floor-live-status[data-state="offline"],.floor-live-status[data-state="retrying"]{color:#916224}
@media(max-width:600px){.floor-canvas-wrap{padding:0;width:100%;box-sizing:border-box}.floor-viewport{width:100%;max-height:none;overflow:hidden}.floor-canvas{width:100%!important;max-width:100%;height:auto}.floor-zoom button[data-floor-zoom="in"],.floor-zoom button[data-floor-zoom="out"]{display:none}.floor-plan-panel{width:100%;max-width:100%;box-sizing:border-box}.floor-workarea{width:100%;min-width:0}}
.floor-service-switch,.floor-zoom{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.floor-service-switch{padding:3px;background:#eef4f0;border:1px solid #d9e5dd;border-radius:10px}.floor-service-switch button{min-width:80px}.floor-service-caption{font-size:12px;color:#59715f;margin:0 0 12px}.floor-zoom button{min-width:44px;padding:10px}.floor-legend i.completed{background:#e6ebe5}.floor-reuse-key{color:#80500f}.floor-visit-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.floor-visit-heading time{font-size:14px;font-weight:650;color:#35523f}.floor-visit-alias{display:inline-block;padding:4px 9px;background:#edf4ef;border-radius:6px;font-size:14px;font-weight:700;color:#24523c}.floor-visit-alias.is-reused{background:#fff0d2;color:#80500f}.floor-rotation-note,.floor-assignment-preview{padding:10px;border:1px solid #e4c887;background:#fff7e6;border-radius:8px;color:#80500f;font-size:12px;overflow-wrap:anywhere}.floor-rotation-note.error,.floor-assignment-preview.error{border-color:#d8aaa5;background:#fff2f0;color:#963d32}
