
:root{font-family:'Segoe UI',Arial,sans-serif;color:#233d39;background:#f5f6f1;--green:#214f43;--line:#dce3da;--muted:#708078}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #c28b39;outline-offset:3px}.skip{position:absolute;left:16px;top:-100px}.skip:focus{top:8px;z-index:9;background:white;padding:12px}.preview{display:flex;gap:18px;justify-content:center;padding:10px 20px;background:#e6ecde;color:#445a3c;font-size:10px;font-weight:700;letter-spacing:1px}.preview span{font-weight:400;letter-spacing:.2px}header{max-width:1340px;margin:auto;padding:25px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;letter-spacing:3px;font-weight:750;font-size:25px;text-decoration:none;color:var(--green)}.brand-mark{font-size:43px;line-height:1;font-weight:400;letter-spacing:0}.brand-caption{font-size:8px;letter-spacing:1.5px;max-width:70px;line-height:1.7;margin-left:10px;border-left:1px solid var(--line);padding-left:16px}.workspace{font-size:12px;color:var(--muted);display:flex;gap:12px;align-items:center}.workspace-dot{height:5px;width:5px;background:#b1bdac;border-radius:50%}main{max-width:1340px;margin:auto;padding:40px 48px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.eyebrow{font-size:9px;font-weight:750;letter-spacing:1.7px;color:#78866c}h1{font-size:46px;font-weight:500;letter-spacing:-2px;margin:9px 0 8px;line-height:1.12}p{line-height:1.6}.intro p{font-size:14px;color:var(--muted);margin:0}.today{font-size:12px;color:var(--muted)}h2{font-size:18px;font-weight:600;letter-spacing:-.45px;margin:7px 0 0}.layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:26px;align-items:start}.floor-panel,.booking-panel,.bookings-panel{background:white;border:1px solid var(--line);border-radius:15px}.floor-panel{padding:26px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.floor-tag,.counter{font-size:10px;color:var(--muted);padding:7px 10px;background:#f5f6f1;border-radius:5px;white-space:nowrap}.legend{display:flex;gap:18px;font-size:10px;color:var(--muted);margin:25px 0 17px}.legend span{display:flex;gap:6px;align-items:center}.legend i{width:8px;height:8px;background:#dcebd7;border:1px solid #b9ceb1;border-radius:2px}.legend .chosen{background:var(--green);border-color:var(--green)}.legend .blocked{background:#e5e5e0;border-color:#cdd1ca}.floor{padding:16px;background-color:#f8f9f5;background-image:radial-gradient(#d6dfd0 .7px,transparent .7px);background-size:13px 13px;display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:10px;border:1px solid #e8ece3;border-radius:10px}.room{min-width:0;min-height:115px;padding:16px 10px;background:#e7efdf;border:1px solid #c1d2b5;box-shadow:inset 0 0 0 4px #f4f8ee;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#40583a;position:relative}.room strong{font-size:14px;font-weight:650}.room small{font-size:10px}.room .room-table{width:46px;height:22px;border:1px solid #bac8ac;background:#d9e4cf;border-radius:6px;box-shadow:0 -6px 0 -3px #b2c39e,0 6px 0 -3px #b2c39e}.room.selected{background:#315c4b;border-color:#214f43;box-shadow:inset 0 0 0 4px #4c7462;color:#fff}.room.selected .room-table{background:#648574;border-color:#8ca38b;box-shadow:0 -6px 0 -3px #8ca38b,0 6px 0 -3px #8ca38b}.room.unavailable{background:#eceee8;color:#92998d;border-color:#d9ddd3;box-shadow:inset 0 0 0 4px #f5f6f2}.room:hover:not(:disabled){outline:2px solid #8fa980;outline-offset:1px}.room-status{position:absolute;right:8px;top:6px;font-size:10px}.corridor{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:5px 9px;color:#9ba48e;font-size:9px;letter-spacing:1.5px;min-height:30px}.lounge{display:flex;align-items:center;justify-content:center;flex-direction:column;color:#8a967e;font-size:10px;gap:12px;border:1px dashed #d1dac8;border-radius:5px;min-height:115px}.lounge span{font-size:25px;color:#b3c49a}.floor-note{font-size:10px;color:#8c9686;margin:12px 0 26px}.recommend-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:13px}.recommend-heading h2{font-size:14px;margin:0}.recommend-heading>span{font-size:9px;color:#8b9586}.recommendations{display:grid;gap:8px}.recommendation{display:flex;align-items:center;gap:12px;width:100%;background:white;border:1px solid var(--line);border-radius:8px;padding:12px;text-align:left;color:inherit}.recommendation.selected{border-color:#668b62;background:#f7faf3}.recommendation .rank{width:30px;height:30px;border-radius:7px;background:#edf2e5;display:grid;place-items:center;color:#64824a;font-size:12px}.recommendation strong{font-size:12px;display:block}.recommendation small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.recommendation .arrow{margin-left:auto;color:#7e916f}.booking-panel{padding:26px}.step-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);font-size:10px;color:#8b9882}form{margin-top:25px}label{display:block;font-size:11px;font-weight:600;margin:18px 0 7px}.label-note{float:right;font-weight:400;font-size:9px;color:#87927f}input:not([type=checkbox]),textarea{width:100%;min-width:0;border:1px solid #d9e0d3;border-radius:7px;background:#fff;padding:12px 11px;color:#31483c;font-size:12px;min-height:44px}input::placeholder,textarea::placeholder{color:#929b8b;font-size:11px}textarea{resize:vertical}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.attendees{align-items:center}.check{display:flex;align-items:center;gap:8px;font-size:10px;line-height:1.4;padding-top:22px;font-weight:500;cursor:pointer}.check input{accent-color:var(--green);width:16px;height:16px;flex-shrink:0}.check small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.selection{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:22px 0;display:flex;gap:12px;align-items:center}.selection-icon{width:37px;height:37px;display:grid;place-items:center;background:#edf2e5;border-radius:7px;font-size:19px;color:#67864f}.selection strong{font-size:13px;display:block}.selection small{font-size:10px;color:var(--muted);display:block;margin-top:4px}.selection-badge{margin-left:auto;font-size:9px;color:#5d7b45;background:#eff4e8;padding:5px 7px;border-radius:4px}.primary{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 17px;background:var(--green);color:white;border:0;border-radius:7px;min-height:48px;font-size:12px;font-weight:600}.primary:hover{background:#173e33}.primary:disabled{background:#9ba99a}.primary span{font-size:18px}.private{font-size:9px;color:#8d9786;text-align:center;margin:12px 0 0}.hint{font-size:10px;color:var(--muted);margin-top:5px}.error{font-size:12px;padding:10px;background:#fff2ee;color:#9d432e;border-radius:5px}.bookings-panel{padding:24px 26px;margin-top:26px}.empty{display:flex;align-items:center;gap:17px;padding:25px 0 5px;color:#8b9681}.empty>span{font-size:28px;color:#b0bf9d}.empty strong{font-size:12px;font-weight:500;color:#596e50}.empty p{font-size:11px;margin:4px 0}.booking{display:flex;align-items:center;gap:15px;padding:18px 0;border-top:1px solid #e9ede3;margin-top:15px}.booking strong{display:block;font-size:13px}.booking small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.booking button{margin-left:auto;border:1px solid var(--line);border-radius:6px;color:#67775e;background:white;min-height:44px;padding:10px;font-size:11px}.booking button:hover{background:#f5f6ef}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0;color:#87917e;font-size:10px}.toast:not(:empty){position:fixed;left:50%;bottom:24px;transform:translateX(-50%);border-radius:8px;background:#214f43;color:white;padding:14px 20px;box-shadow:0 10px 35px #0002;z-index:4;font-size:12px;max-width:90vw}[hidden]{display:none!important}
@media(min-width:1450px){main{padding-top:50px}.floor-panel,.booking-panel{padding:30px}.room{min-height:130px}}
@media(max-width:900px){header{padding:20px 24px}main{padding:30px 24px 0}.layout{grid-template-columns:1fr;gap:20px}.booking-panel{grid-row:1}.booking-panel form{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.booking-panel form>label,.booking-panel form>input,.booking-panel form>.selection,.booking-panel form>#explanation,.booking-panel form>.error,.booking-panel form>.primary,.booking-panel form>.private{grid-column:1/-1}.attendees .check{padding-top:18px}.intro{gap:20px}.today{display:none}}
@media(max-width:520px){.preview{flex-direction:column;align-items:center;gap:4px;font-size:9px;padding:8px}.preview span{font-size:9px}header{padding:15px 20px}.brand{font-size:22px}.brand-mark{font-size:36px}.brand-caption{display:none}.workspace{font-size:10px;gap:7px}main{padding:28px 16px 0}h1{font-size:37px}.intro p{font-size:12px}.intro{margin-bottom:23px}.floor-panel,.booking-panel,.bookings-panel{padding:20px}.booking-panel form{display:block}input:not([type=checkbox]),textarea{font-size:16px}.check{padding-top:20px}.primary{font-size:14px}.floor{padding:10px;gap:7px;grid-template-columns:1fr 1fr}.room{min-height:112px}.corridor{grid-row:3}.lounge{min-height:112px}.recommend-heading{align-items:flex-start;flex-direction:column;gap:5px}.floor-panel .panel-heading{align-items:flex-start}h2{font-size:17px}.legend{gap:12px;font-size:9px}.booking{align-items:flex-start;flex-wrap:wrap}.booking button{margin-left:0}.private{font-size:10px}footer{font-size:9px}.floor-tag{font-size:9px}.floor-note{font-size:10px}.bookings-panel{margin-top:20px}}


/* Configuration skeleton: readable names and separate capacity metadata. */
.room{min-height:138px}.room strong{white-space:normal;overflow-wrap:anywhere;text-align:center;line-height:1.4}.room .room-area{font-size:9px;line-height:1.4;color:#738468;max-width:100%;overflow-wrap:anywhere}.room.selected .room-area{color:#d5e0ca}.setup-intro{font-size:12px;color:var(--muted);margin:0 0 20px}.setup-note{padding:16px;background:#f5f7f0;border:1px solid #e4eadc;border-radius:8px;margin:0 0 20px}.setup-note h3{margin:0 0 10px;font-size:13px}.setup-note dl{margin:0}.setup-note dl>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #e4eadc;font-size:11px}.setup-note dl>div:last-child{border-bottom:0}.setup-note dt{color:var(--muted);flex-shrink:0}.setup-note dd{margin:0;text-align:right}.setup-note dd small{display:block;font-size:9px;color:var(--muted)}
@media(max-width:520px){.room{min-height:142px}.room strong{font-size:14px}.room .room-area{font-size:10px}.setup-note dl>div{font-size:12px}.selection{flex-wrap:wrap}.selection-badge{margin-left:0}.private{font-size:11px}}

.meeting-preview{margin:18px 0;border:1px solid var(--line);border-radius:8px;padding:12px}.meeting-preview summary{cursor:pointer;font-size:12px;font-weight:600;line-height:1.7}.meeting-preview summary span{font-weight:400;color:var(--muted)}.setup-note+details{margin-top:0}

.directory-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 10px}.directory-filters{display:flex;gap:14px;flex:1}.directory-filters label{margin:0;min-width:150px;font-size:11px}.directory-filters select{display:block;width:100%;min-height:44px;border:1px solid #d7dfd0;border-radius:7px;background:white;color:var(--green);padding:10px 34px 10px 12px;font:inherit;margin-top:7px;max-width:350px}.import-actions{display:flex;gap:10px}.import-actions button,.import-steps button{border:1px solid #d3ddca;background:white;border-radius:7px;color:var(--green);padding:11px 14px;min-height:44px;font-size:12px;font-weight:600}.import-actions .import-primary{background:var(--green);color:white;border-color:var(--green)}.directory-notice{font-size:10px;color:var(--muted);margin:0 0 24px;line-height:1.6}.remove-draft{min-height:44px;background:white;color:#8c4939;border:1px solid #e7d6ce;border-radius:7px;padding:10px;margin-bottom:18px;font-size:11px}dialog{width:min(850px,94vw);max-height:90vh;border:1px solid var(--line);border-radius:15px;padding:28px;color:var(--ink,#233d39);background:white;box-shadow:0 25px 100px #17372b33}dialog::backdrop{background:#18392c66}.import-dialog-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.import-dialog-heading h2{font-size:23px}.import-dialog-heading>button{border:1px solid var(--line);background:white;border-radius:50%;width:40px;height:40px;color:var(--green);font-size:24px}dialog>p{font-size:13px;color:var(--muted)}.import-steps{font-size:12px;line-height:1.7;padding-left:22px}.import-steps li{margin:8px 0}.template-help{background:#f5f7f0;border:1px solid #e0e7d8;padding:13px;border-radius:8px;font-size:12px;line-height:1.6}.template-help summary{cursor:pointer;font-weight:600}.template-help dl{display:grid;grid-template-columns:170px 1fr;gap:10px;margin-bottom:8px}.template-help dt{font-weight:600;overflow-wrap:anywhere}.template-help dd{margin:0;color:var(--muted)}.upload-label{font-size:13px;margin-top:24px}.upload-label span{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:5px}input[type=file]{font-size:12px;border:1px solid var(--line);width:100%;padding:12px;border-radius:7px}.import-summary{font-size:12px;margin-top:20px}.import-table-wrap{overflow:auto;max-height:320px;border:1px solid var(--line);border-radius:7px}.import-table-wrap table{width:100%;border-collapse:collapse;font-size:11px;text-align:left;min-width:490px}.import-table-wrap th{background:#f0f4e9;position:sticky;top:0;color:var(--green)}.import-table-wrap td,.import-table-wrap th{padding:11px;border-bottom:1px solid var(--line);vertical-align:top;max-width:300px;overflow-wrap:anywhere}.import-table-wrap small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.row-error{color:#a14a36}.import-dialog-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.import-dialog-footer p{font-size:11px;color:var(--muted);max-width:330px;line-height:1.7}.import-dialog-footer .primary{width:auto;min-width:180px;justify-content:center;white-space:nowrap}
@media(max-width:700px){.directory-toolbar{flex-direction:column;align-items:stretch}.directory-filters{display:grid;grid-template-columns:1fr 1fr}.directory-filters label{min-width:0}.directory-filters select{font-size:16px;max-width:100%}.import-actions button{flex:1}.directory-notice{font-size:11px}.import-dialog-footer{flex-direction:column;align-items:stretch;gap:8px}.import-dialog-footer .primary{width:100%}.template-help dl{grid-template-columns:1fr;gap:3px}.template-help dd{margin-bottom:8px}dialog{padding:20px}.import-steps button{font-size:12px}}

.setup-note dd{min-width:0;overflow-wrap:anywhere}.directory-filters select:focus-visible{outline:3px solid #c28b39;outline-offset:3px}

.directory-filters>div{min-width:0}.directory-filters label{display:block;min-width:0}.directory-filters>div:first-child{min-width:150px}.directory-filters>div:last-child{min-width:200px}@media(max-width:700px){.directory-filters>div:first-child,.directory-filters>div:last-child{min-width:0}}

/* Room-first availability: no fabricated free slots while backend is disconnected. */
.availability{margin:20px 0 24px}.availability-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.availability h3{font-size:15px;margin:0}.availability-heading>span{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.date-shortcuts{display:flex;gap:8px;margin-top:16px}.date-shortcuts button{min-height:44px;border:1px solid var(--line);border-radius:7px;padding:10px 16px;color:var(--green);background:white;font-size:12px}.date-shortcuts button[aria-pressed=true]{background:#edf3e7;border-color:#6b8960;font-weight:600}.availability select{width:100%;min-height:44px;background:white;border:1px solid #d9e0d3;border-radius:7px;padding:12px 10px;color:var(--green);font:inherit;font-size:13px}.availability-empty{padding:18px;margin-top:20px;background:#f5f7f0;border:1px solid #e4eadc;border-radius:8px}.availability-empty strong{font-size:13px}.availability-empty p{font-size:12px;color:var(--muted);margin:8px 0 0;overflow-wrap:anywhere}.day-placeholder{height:10px;border-radius:5px;margin-top:15px;background:repeating-linear-gradient(135deg,#e5e9e1,#e5e9e1 4px,#f5f7f0 4px,#f5f7f0 8px)}.availability-footnote{font-size:11px;color:var(--muted);margin-top:9px}.room-details{border-top:1px solid var(--line);margin:0 0 22px;padding-top:17px}.room-details>summary{cursor:pointer;font-size:12px;font-weight:600;min-height:32px}.room-details .setup-note{margin:12px 0 0}.booking-panel{scroll-margin-top:16px}.booking-panel h2{overflow-wrap:anywhere}.booking-panel h2:focus{outline:none}.booking-panel h2:focus-visible{outline:2px solid #c28b39;outline-offset:5px}
@media(max-width:900px){.booking-panel{grid-row:auto}.booking-panel form{display:block}}
@media(max-width:520px){.availability select{font-size:16px}.availability-heading>span{font-size:11px}.availability-empty strong{font-size:14px}.availability-empty p,.availability-footnote{font-size:12px}.room-details>summary{font-size:14px;min-height:44px;padding-top:8px}}

.settings-notice{padding:12px 15px;background:#f3f6ed;border:1px solid var(--line);border-radius:8px}.settings-day{display:grid;grid-template-columns:95px 1fr 1fr 1fr;gap:10px;align-items:center;margin:10px 0}.settings-day>label{margin:0}.settings-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}#office-settings-dialog select{min-height:44px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--green);padding:10px;font:inherit;font-size:13px;width:100%}#office-settings-dialog h3{font-size:15px;margin:26px 0 10px}.settings-future{font-size:12px;color:var(--muted)}#office-save-status{font-size:13px;color:var(--green)}.settings-day input:disabled{background:#f3f4ef;color:#859080}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.import-actions{flex-wrap:wrap}
@media(max-width:700px){.directory-toolbar{flex-direction:column;align-items:stretch}.settings-day{grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.settings-rule-grid{grid-template-columns:1fr}#office-settings-dialog select{font-size:16px}.settings-day>label{font-size:13px}.import-actions button{flex:1 1 130px}}

.staffing-summary{font-size:12px;color:#536c45;line-height:1.7;border-left:3px solid #8ca77b;padding:8px 12px;background:#f5f7f0;border-radius:0 5px 5px 0;margin-top:18px}

.import-reference-note{font-size:12px;color:var(--muted);line-height:1.7}.blank-template{display:block;border:0;background:none;color:var(--green);text-decoration:underline;min-height:44px;padding:8px 0;font-size:12px;cursor:pointer}

/* Interactive room-finding map */
[hidden]{display:none!important}.plan-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:24px 0 0}.plan-views{display:flex;background:#f0f3ed;padding:4px;border-radius:10px}.plan-views button,.map-zoom button{border:0;background:transparent;color:#52685b;min-height:44px;padding:0 16px;border-radius:7px;font-size:12px;font-weight:600}.plan-views button[aria-pressed=true]{background:white;color:#214f43;box-shadow:0 1px 5px #214f4314}.plan-views button:disabled{opacity:.4}.map-zoom{display:flex;gap:3px}.map-zoom button{border:1px solid #dce3da;background:white;padding:0 12px;min-width:44px}.map-zoom button:disabled{opacity:.4}.map-context{font-size:12px;color:#728174;margin:14px 0}.map-viewport{overflow:hidden;max-height:860px;border:1px solid #dce3da;border-radius:13px;background:#f6f7f1;overscroll-behavior:auto;scrollbar-width:thin}.map-canvas{position:relative;width:calc(100% * var(--map-zoom,1));min-width:100%;aspect-ratio:1200/1840}.office-map{display:block;width:100%;height:100%}.map-shell{fill:#fffefa;stroke:#637d6d;stroke-width:11;stroke-linejoin:round}.map-wing{fill:#f0f2ef;stroke:#c9d2c6;stroke-width:6}.map-neutral{fill:#f3f3ed;stroke:#c5cebf;stroke-width:5;stroke-linejoin:round}.map-partitions{fill:none;stroke:#d1d8cb;stroke-width:4}.map-walk{fill:none;stroke:#e5eadf;stroke-width:14;stroke-dasharray:2 24;stroke-linecap:round}.map-zone,.map-small,.map-room-label,.map-entry-label{text-anchor:middle;font-family:'Segoe UI',Arial,sans-serif;fill:#8d9b8a;font-size:19px;font-weight:600;letter-spacing:3px}.map-small{font-size:18px;letter-spacing:0}.map-entry{fill:#e8eee2}.map-entry-label{fill:#4b6b53;font-size:18px;letter-spacing:0}.mapped-room{fill:#e3edda;stroke:#a8bf98;stroke-width:5}.mapped-room.is-selected{fill:#315c4b;stroke:#214f43;stroke-width:7}.map-room-label{fill:#5d7454;font-size:17px;letter-spacing:0}.mapped-room.is-selected+.map-room-label{fill:#fff}.map-pin{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;padding:0}.map-pin span{display:grid;place-items:center;width:28px;height:28px;background:white;color:#315c4b;font-size:12px;font-weight:750;border:1px solid #b5c6a7;border-radius:50%;box-shadow:0 3px 9px #214f4320}.map-pin.selected span{background:#214f43;color:white;border-color:white;outline:3px solid #214f4340}.map-pin:hover span{outline:3px solid #b3c49e}.room-list-heading{font-size:12px;font-weight:600;margin:22px 0 12px;color:#71806c}.map-room-list.floor{background:#fff;border:0;padding:0;grid-template-columns:1fr 1fr;gap:8px}.map-room-list .room{min-height:76px;padding:13px 14px 13px 45px;align-items:flex-start;text-align:left;gap:4px;border-radius:8px;box-shadow:none;background:#f7f9f3}.map-room-list .room.selected{background:#315c4b}.map-room-list .room-table,.map-room-list .room-area{display:none}.room-number{position:absolute;left:13px;top:16px;font-size:11px;border:1px solid #b8c9ad;border-radius:50%;height:23px;width:23px;display:grid;place-items:center}.map-room-list .room:not(:has(.room-number)){padding-left:14px}.unplaced-label{color:#7f896f;font-style:italic}.room.selected .unplaced-label{color:#dae6d2}.booking-panel{position:sticky;top:18px}
@media(max-width:900px){.booking-panel{position:static}.map-viewport{max-height:780px}}@media(max-width:600px){.plan-toolbar{gap:6px;flex-wrap:wrap}.plan-views button{padding:0 14px}.map-zoom button{padding:0 10px}.map-viewport{max-height:620px}.map-canvas{min-width:600px}.map-room-list.floor{grid-template-columns:1fr 1fr}.map-room-list .room{padding-left:40px}.map-room-list .room strong{font-size:12px}.map-context{font-size:11px}.room-number{left:10px}}

@media(min-width:601px){.map-canvas{width:calc(min(100%,520px) * var(--map-zoom,1));min-width:0;margin-inline:auto}}
.floor-panel{min-width:0}#floor-map{min-width:0;max-width:100%}.map-viewport{min-width:0;width:100%}
@media(max-width:600px){.map-canvas{width:calc(600px * var(--map-zoom,1))}}

/* Warm architectural palette and pod layout editor */
.map-viewport{background:#ecefe7;border-color:#e0e3d8;box-shadow:inset 0 1px 12px #435c4908}.office-map{background:#f1f3ec}.map-shell{fill:url(#wood-grain);stroke:#fdfef8;stroke-width:16;paint-order:stroke;filter:drop-shadow(0 0 2px #758775)}.map-wing{fill:#e8ece5;stroke:#b8c4b3;stroke-width:7}.map-neutral{fill:#eeeee5;stroke:#d0d4c5}.map-partitions{stroke:#d0d4c5}.map-walk{stroke:#d9cdb6;stroke-width:10;opacity:.55}.map-zone{fill:#8a917c;font-size:18px;letter-spacing:4px}.mapped-room{fill:#dce7c9;stroke:#fafff1;stroke-width:8}.mapped-room.is-selected{fill:#527158;stroke:#d1e1bc}.map-tabletop{fill:#f6f4e8;stroke:#b6c5a3;stroke-width:3;opacity:.8}.map-room-label{fill:#4d6544;font-size:19px;font-weight:700}.map-entry{fill:#e0e5d3;stroke:#c7d1bd;stroke-width:2}.placed-pod rect{fill:#e1c4a0;stroke:#fff6e9;stroke-width:6;filter:drop-shadow(0 5px 4px #65533c33)}.placed-pod path{stroke:#b49065;stroke-width:5;stroke-linecap:round}.placed-pod text{fill:#705537;font-size:19px;font-weight:700;text-anchor:middle}.editing-pod rect{stroke:#a36c32;stroke-dasharray:10 5}.pod-pin{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;min-width:44px;min-height:44px;border-radius:50%;display:grid;place-items:center;color:#705537}.pod-pin span{background:#fff8ed;border:1px solid #c5a77f;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 8px #735c3d20}.pod-pin.selected span{background:#a16e3b;color:white;outline:3px solid #d8b78c88}.pod-pin.can-move{touch-action:none;cursor:grab}.is-editing .map-canvas{cursor:crosshair}.is-editing .map-pin{pointer-events:none}.plan-edit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px}.plan-design-label{font-size:9px;font-weight:750;letter-spacing:1.6px;color:#6e806a}.plan-design-label span{display:block;font-weight:400;font-size:8px;margin-top:5px;color:#96a08e}.plan-edit-heading button{min-height:44px;border:1px solid #d6dfce;background:#f7f9f3;color:#315c4b;border-radius:8px;padding:0 13px;font-size:12px}.plan-editor-controls{background:#f7f3e9;border:1px solid #e0d5bf;border-radius:12px;padding:18px;margin-top:14px}.plan-editor-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.plan-editor-top strong{font-size:14px;color:#6b573b}.plan-editor-top p,.editor-instruction,.editor-storage-note{font-size:11px;line-height:1.6;color:#8b7d66;margin:6px 0 15px}.draft-pill{font-size:8px;letter-spacing:1px;white-space:nowrap;background:#e9dfc9;border-radius:4px;padding:5px 7px;color:#8c734a}.plan-editor-controls label{font-size:11px;color:#6e644e;display:block;margin-bottom:8px}.plan-editor-controls select{width:100%;min-height:44px;border:1px solid #ded5c0;border-radius:7px;background:#fffdf7;padding:8px 12px;color:#655538}.pod-size-controls{display:flex;gap:20px;margin-top:16px}.pod-size-controls label{width:50%}.pod-size-controls input{display:block;width:100%;accent-color:#8e724c;min-height:32px}.editor-actions{display:flex;gap:8px;flex-wrap:wrap}.editor-actions button{min-height:44px;border:1px solid #d7ccb6;border-radius:7px;padding:0 13px;background:#fffdf7;color:#796548;font-size:11px}.editor-actions #plan-save{margin-left:auto;background:#315c4b;color:white;border-color:#315c4b}.editor-storage-note{margin:12px 0 0}.plan-save-status{font-size:11px;color:#527158}.plan-save-status:empty{display:none}

/* Interactive architectural model: the same room geometry in two perspectives. */
.spatial-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:26px;border-top:1px solid #edf0e7;margin-top:18px}.spatial-header h3{font-size:28px;font-weight:500;letter-spacing:-1px;margin:6px 0}.spatial-header p{font-size:11px;color:#87917e;margin:0}.spatial-switch{display:flex;border:1px solid #dce3d5;border-radius:9px;padding:3px;background:#f6f8f0;white-space:nowrap}.spatial-switch button{min-height:40px;background:transparent;border:0;border-radius:6px;padding:0 11px;font-size:11px;color:#73806b}.spatial-switch button[aria-pressed=true]{background:#315c4b;color:white;box-shadow:0 2px 5px #315c4b20}.spatial-switch button:disabled{opacity:.5}.room-plinth{fill:#a4b294;stroke:#899e7e;stroke-width:1}.raised-wall{fill:none;stroke:#fffef4;stroke-width:12;stroke-linejoin:round;filter:drop-shadow(3px 5px 2px #3c4d3929)}.isometric{perspective:1400px;background:radial-gradient(ellipse at 40% 35%,#fffef5 0,#e9eddf 58%,#dce3d5 100%);padding:22px 12px 0;max-height:950px}.isometric .map-canvas{transform:rotateX(29deg) rotateZ(-9deg) scale(.89);transform-origin:50% 0;filter:drop-shadow(13px 23px 13px #4b624134);transition:transform .45s ease}.isometric .office-map{background:transparent}.isometric .map-zone{font-size:17px;letter-spacing:5px}.isometric .room-plinth{fill:#91a682;stroke:#718d67;stroke-width:3}.isometric .raised-wall{stroke-width:18;filter:drop-shadow(5px 9px 2px #3c4d393d)}.isometric .map-pin span{box-shadow:0 5px 0 #d5ddca,0 9px 12px #213d3328;transition:box-shadow .2s}.isometric .map-pin.selected span{box-shadow:0 6px 0 #b99c61,0 11px 15px #213d3338;outline-color:#d1b67a77}.isometric .map-pin:hover span{box-shadow:0 7px 0 #b7c8a4,0 12px 14px #213d3330}.isometric .placed-pod rect{filter:drop-shadow(7px 11px 3px #65533c55)}.isometric .map-entry{fill:#d5e1c6}.map-shell{filter:drop-shadow(0 8px 0 #c7c9b4)}
@media(prefers-reduced-motion:reduce){.isometric .map-canvas{transition:none}}@media(max-width:600px){.spatial-header{align-items:flex-start;gap:8px}.spatial-header h3{font-size:24px}.spatial-header p{max-width:130px;line-height:1.5}.spatial-switch button{padding:0 9px}.isometric{padding:18px 0 0;max-height:660px}.plan-edit-heading{flex-wrap:wrap}.plan-editor-controls{padding:14px}}

/* Readable room-name callouts retain their real room anchors. */
.room-label-leader{fill:none;stroke:#647b5b;stroke-width:3;stroke-linecap:round;opacity:.85}.room-label-leader.selected{stroke:#214f43;stroke-width:5}.room-label-anchor{fill:#647b5b;stroke:#fffef6;stroke-width:2}.map-pin.map-name-label{transform:translate(0,-50%);width:max-content;max-width:156px;min-height:44px;height:auto;border-radius:8px;padding:0;z-index:2}.map-pin.map-name-label span{width:auto;height:auto;min-height:36px;max-width:156px;padding:8px 11px;border-radius:7px;background:#fffef8;color:#294d3a;border:1px solid #a8baa0;font-size:14px;line-height:1.25;letter-spacing:0;white-space:normal;text-align:left;box-shadow:0 3px 8px #314c3020}.map-pin.map-name-label.selected span{background:#214f43;color:white;border-color:#214f43;outline:2px solid #e0c58c}.isometric .map-pin.map-name-label span{font-size:16px;box-shadow:0 3px 0 #c5d1b7,0 6px 10px #213d3328}.isometric .map-pin.map-name-label.selected span{box-shadow:0 3px 0 #b99c61,0 7px 11px #213d3338}.pod-pin{width:max-content;max-width:120px;z-index:3}.pod-pin span{width:auto;height:auto;min-width:52px;min-height:34px;padding:7px 10px;border-radius:7px;font-size:14px;font-weight:700;line-height:1.25}.isometric .pod-pin span{font-size:16px}.map-pin.map-name-label:focus-visible{outline:3px solid #a46f30;outline-offset:3px}
@media(max-width:600px){.map-pin.map-name-label span{font-size:15px;min-height:38px;max-width:156px}.isometric .map-pin.map-name-label span{font-size:17px}.pod-pin span{font-size:15px}.isometric .pod-pin span{font-size:17px}}

/* ORBIT-UX-001: the page owns vertical wheel/touch scrolling. */
.map-viewport{overflow:hidden;touch-action:pan-y;cursor:grab;user-select:none}
.map-viewport.is-panning{cursor:grabbing}
.map-viewport:focus-visible,.map-scroll-cue:focus-visible{outline:3px solid #a16e3b;outline-offset:3px}
.map-scroll-cue{display:block;width:100%;min-height:44px;margin:10px 0 0;border:0;background:transparent;color:#52685b;font:inherit;font-size:12px;cursor:pointer}
.map-scroll-cue:hover{text-decoration:underline}
.room-details{scroll-margin-top:24px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* A tall details panel must remain reachable within the page. */
.booking-panel{position:static}

/* Fit the rotated drawing's bounds, rather than reserving its unrotated height. */
.map-viewport,.map-viewport.isometric{padding:12px;perspective:none;box-sizing:border-box}
.map-stage{position:relative;min-width:100%}
.map-stage .map-canvas{position:absolute;min-width:0;margin:0;transform-origin:50% 50%;transform:rotateZ(var(--map-rotation,0deg));transition:none}
.isometric .map-stage .map-canvas{transform:rotateX(29deg) rotateZ(calc(-9deg + var(--map-rotation,0deg))) scale(.89)}
.map-zoom{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:600px){.plan-toolbar{align-items:flex-start}.map-zoom{gap:3px}.map-zoom button{min-width:40px;padding:0 8px}}

/* Keep controls attached to the map while scrolling through a tall drawing. */
.map-workspace{position:relative;border:1px solid #e0e3d8;border-radius:13px;background:#f3f6ed;isolation:isolate}
.map-workspace>.map-zoom{position:sticky;top:8px;z-index:8;justify-content:center;gap:6px;padding:10px;background:#f3f6edf5;border-bottom:1px solid #dce3d5;border-radius:13px 13px 0 0;box-shadow:0 2px 5px #214f4309}
.map-workspace .map-viewport{border:0;border-radius:0 0 13px 13px}
.map-workspace .map-zoom button{min-height:44px;min-width:44px;padding:0 12px}
.map-stage .map-pin.map-name-label{transform:var(--map-label-transform,matrix(1,0,0,1,0,0)) translateY(-50%);transform-origin:0 0}
.map-stage .pod-pin:not(.can-move){transform:var(--map-label-transform,matrix(1,0,0,1,0,0)) translate(-50%,-50%);transform-origin:0 0}
@media(max-width:600px){.map-workspace>.map-zoom{gap:4px;padding:8px 4px;top:4px}.map-workspace .map-zoom button{padding:0 8px;font-size:11px}.map-workspace .map-zoom button span{font-size:10px}}

/* Compact editing glyph, with a forgiving invisible pointer target. */
.pod-pin.can-move{width:44px;height:44px;min-width:44px;min-height:44px}
.pod-pin.can-move span{width:18px;height:18px;min-width:0;min-height:0;padding:0;font-size:0;border-radius:4px}
.pod-pin.can-move span::before{content:'▦';font-size:12px;line-height:1}
.map-stage .map-pin.map-name-label{transform:var(--map-label-transform,matrix(1,0,0,1,0,0)) translateY(var(--label-shift-y,0px)) translateY(-50%)}
.map-stage .pod-pin:not(.can-move){transform:var(--map-label-transform,matrix(1,0,0,1,0,0)) translateY(var(--label-shift-y,0px)) translate(-50%,-50%)}
.map-callout-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:4}
.map-callout-links line{stroke:#647b5b;stroke-width:1.5;opacity:.8}

.back-to-floor-plan{display:inline-flex;align-items:center;min-height:44px;margin:0 0 18px;padding:9px 13px;border:1px solid #d6dfce;border-radius:8px;background:#f7f9f3;color:#315c4b;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.back-to-floor-plan:hover{background:#edf3e7}
.back-to-floor-plan:focus-visible{outline:3px solid #a16e3b;outline-offset:3px}
.map-workspace{scroll-margin-top:16px}

/* Employee booking surface; setup tools remain in the separate local admin preview. */
body[data-view=employee] .import-actions,body[data-view=employee] #directory-notice,body[data-view=employee] #edit-floor-plan,body[data-view=employee] #plan-editor-controls,body[data-view=employee] #plan-editor-error,body[data-view=employee] #plan-save-status,body[data-view=employee] #remove-imported-room,body[data-view=employee] .availability-footnote,body[data-view=employee] .unplaced-label{display:none!important}
body[data-view=employee] .directory-toolbar{margin-bottom:26px}body[data-view=employee] .floor-note{color:#82907b}
@media(max-width:600px){
 #view-map,.map-workspace,.spatial-header,.plan-edit-heading,#plan-editor-controls,#map-context,.map-context,#map-scroll-cue,.floor-note{display:none!important}
 .plan-toolbar{display:none}.room-list-heading{margin-top:20px}.floor,.map-room-list.floor{display:flex;flex-direction:column;padding:0;border:0;background:none;gap:10px}
 .floor .room,.map-room-list.floor .room{min-height:94px;width:100%;display:flex;align-items:flex-start;justify-content:center;text-align:left;padding:16px 38px 16px 76px;gap:5px;border-radius:11px;box-shadow:none;background:#f7f9f3;color:#40583a;border:1px solid #dce3d4}
 .floor .room.selected{background:#315c4b;color:white;border-color:#315c4b}.floor .room strong{font-size:16px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.floor .room small{font-size:12px;line-height:1.4}.floor .room .room-table{display:block;position:absolute;left:16px;top:34px;width:42px;height:23px}.floor .room-number{display:none}.floor .room-area{display:block}.floor .room-status{right:14px;top:16px;font-size:14px}
 .directory-filters{width:100%}.directory-filters>div{min-width:0;flex:1}.directory-filters select{width:100%;font-size:14px}.floor-panel{padding:20px}.legend{font-size:11px;gap:12px;flex-wrap:wrap}
}

body[data-view=employee] .room-number{display:none}
@media(min-width:601px){body[data-view=employee] .map-room-list .room{padding-left:14px}}
@media(max-width:600px){body[data-view=employee] #room-list-heading{display:none}.directory-filters{display:grid;grid-template-columns:1fr}.directory-filters>div{width:100%}}

.available-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;padding:8px 2px}.available-time-grid button{padding:12px 6px;border:1px solid #d7e3d7;border-radius:9px;background:white;color:#214f43}.available-time-grid button[aria-pressed="true"]{background:#214f43;color:white}.available-time-grid button:disabled{opacity:.35;text-decoration:line-through}.meeting-preview[open]{margin-bottom:18px}

.meeting-preview .field-pair:not(.attendees){display:none}.meeting-preview summary{font-size:16px;font-weight:600}.available-time-grid{margin-top:12px}

.booking-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;margin-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.booking-pagination>div{display:flex;gap:8px}.booking-pagination button{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--green)}.booking-pagination button:hover:not(:disabled){background:#edf3e9}.booking-pagination button:disabled{opacity:.45}@media(max-width:520px){.booking-pagination{align-items:flex-start;flex-direction:column}.booking-pagination>div{width:100%}.booking-pagination button{flex:1}}
