@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');*{box-sizing:border-box}body{margin:0;background:#f5f5f0;color:#263b35;font-family:Manrope,system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}header{height:86px;border-bottom:1px solid #dedfd5;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:#fafaf6}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#263b35;font-size:22px;font-weight:800}.logo{width:43px;height:43px;border-radius:12px;background:#284e42;color:#e4eacb;display:grid;place-items:center;font-size:25px}.brand small{display:block;font-size:8px;letter-spacing:2.5px;margin-top:2px}.headright{display:flex;align-items:center;gap:20px}.prototype{font-size:11px;color:#69766b;border:1px solid #d9ded2;padding:7px 12px;border-radius:30px}.avatar{background:#e3e8d3;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:14px}main{max-width:1750px;margin:auto;padding:36px 4vw 20px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow,.asideeyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#85947c}h1{font-size:clamp(24px,2.7vw,42px);letter-spacing:-1.8px;margin:12px 0 10px;line-height:1.2}h1 span{color:#6f9274}.heading p{font-size:12px;color:#829084;display:flex;gap:10px;align-items:center}.heading p i{width:3px;height:3px;border-radius:50%;background:#9baa96}.primary{padding:13px 19px;background:#294e42;color:#f6f6ee;border-radius:12px;font-size:12px;box-shadow:0 5px 12px #24473816}.toolbar{display:flex;align-items:center;justify-content:space-between;border:1px solid #dce2d6;border-radius:18px;background:#fcfcf8;padding:12px 16px;margin-top:26px;gap:10px}.counts{display:flex;gap:24px}.counts span{font-size:11px;color:#6f7c71;white-space:nowrap}.counts b{font-size:17px;color:#2a4036;margin:0 6px}.counts i,.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.viewtoggle{display:flex;background:#edf0e7;padding:4px;border-radius:11px}.viewtoggle button{background:none;padding:8px 13px;color:#7b887c;font-size:12px;border-radius:8px}.viewtoggle button.active{background:#fff;color:#284c3d;box-shadow:0 2px 7px #243c3210}nav{display:flex;gap:8px;margin:18px 0;overflow:auto;padding-bottom:4px}nav button{border:1px solid #dce2d6;border-radius:30px;background:transparent;padding:9px 14px;color:#7b8678;font-size:11px;white-space:nowrap}nav button.active{background:#e2e9d8;border-color:#cbd8bf;color:#34513c}nav button i{width:6px;height:6px;display:inline-block;border-radius:50%;margin-right:7px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px}#mapPanel,#teamPanel{border:1px solid #dce2d6;border-radius:20px;background:#eeefe7;overflow:hidden;min-width:0}.maptitle{display:flex;justify-content:space-between;padding:20px 22px 0;color:#8b9884;font-size:9px;letter-spacing:1.5px}.maptitle span+span{letter-spacing:0}#mapScroll{overflow:auto;min-height:300px;position:relative}#office{width:100%;min-width:600px;display:block;margin:auto}svg .interactive{cursor:pointer;outline:none}svg .interactive:hover{filter:brightness(1.04)}svg .roomlabel{font-size:12px;font-weight:700;fill:#425746}svg .personname{font-size:10px;font-weight:700;fill:#3b5544}svg .person{transition:opacity .25s}svg .person:hover .halo{opacity:1}svg .halo{opacity:0;transition:opacity .2s}/* Keep SVG positioning transform stable across status changes. */svg .person .body{animation:none}.mapfooter{border-top:1px solid #dde2d4;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#87927f}.mapfooter div{display:flex;align-items:center;gap:7px}.mapfooter button{background:#fbfcf5;padding:5px 10px;border-radius:6px;color:#5a6b53}.mapfooter #zoomValue{width:33px;text-align:center}aside{padding:24px;border:1px solid #dce2d6;border-radius:20px;background:#fcfcf8;height:fit-content}.welcomeicon{margin:36px 0 18px;color:#73885f;font-size:44px}h2{font-size:23px;letter-spacing:-.8px;line-height:1.2;margin:12px 0}aside p{font-size:12px;color:#819079;line-height:1.8}.hint{border-top:1px solid #e4e8dd;margin-top:25px;padding-top:20px;font-size:11px;color:#617357}.hint p{font-size:10px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:10px;margin-top:25px;color:#6b7e61}.personavatar{margin:26px 0 14px;border-radius:20px;width:74px;height:74px;display:grid;place-items:center;font-size:28px;background:#e3ead9;color:#536c48}.role{margin:0;color:#7d8c74;font-size:12px}.statusoptions{display:grid;gap:7px;margin:20px 0}.statusoptions button{text-align:left;padding:11px 12px;border:1px solid #e0e5d7;background:#f6f7ef;border-radius:9px;font-size:11px;color:#6f7e63}.statusoptions button.selected{border-color:#7d9e6c;background:#e6eddc;color:#3a6030}.close{float:right;background:none;color:#819074}.deskmeta{font-size:10px;color:#8c9785;border-top:1px solid #e0e5d7;padding-top:15px;line-height:1.8}#teamGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;padding:20px}.teamcard{border:1px solid #e0e5d8;background:#fcfdf8;text-align:left;padding:18px;border-radius:14px;color:#3e5636}.teamcard b{display:block;margin-bottom:5px}.teamcard small{font-size:10px;color:#849177}.teamcard .badge{display:block;margin-top:18px;font-size:10px}footer{display:flex;justify-content:space-between;margin-top:18px;color:#8e9a86;font-size:9px;line-height:1.7;gap:20px}@media(max-width:1000px){.workspace{grid-template-columns:1fr}aside{display:none}aside.open{display:block;position:fixed;bottom:12px;left:12px;right:12px;z-index:5;box-shadow:0 0 0 100vmax #132a2850;max-height:80vh;overflow:auto}.counts{gap:10px}.counts span{font-size:10px}.counts b{font-size:14px}.personavatar{margin:12px 0}.statusoptions{grid-template-columns:1fr 1fr}}@media(max-width:600px){header{height:72px;padding:0 18px}.brand{font-size:18px}.logo{width:37px;height:37px}.prototype{font-size:9px;padding:6px 9px}.avatar{display:none}main{padding:25px 16px}.heading{display:block}h1{font-size:29px;letter-spacing:-1.2px;max-width:320px}.primary{margin-top:10px}.toolbar{align-items:stretch;flex-direction:column;padding:12px;gap:14px}.counts{justify-content:space-between;gap:0}.counts b{margin:0 3px}.viewtoggle{align-self:flex-start}.maptitle{padding:16px 15px 0;font-size:8px}.maptitle span+span{display:none}#office{min-width:800px;margin-left:-40px;width:800px}#mapScroll{height:560px}.mapfooter{font-size:9px;padding:10px}.mapfooter>span{max-width:90px}footer{display:block}footer span{display:block;margin-top:5px}#teamGrid{grid-template-columns:1fr 1fr;padding:12px;gap:8px}.teamcard{padding:13px;font-size:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#remoteRail{border-top:1px solid #ddd9cf;padding:20px 24px;background:#f5f3ed;border-radius:0 0 20px 20px}#remoteRail b{font-size:14px}#remoteRail small{display:block;color:#85877d;font-size:11px;margin:5px 0 12px}#remoteRail button{border:1px solid #d4d9cf;background:white;padding:8px 12px;border-radius:22px;margin:3px;color:#526650;cursor:pointer}#remoteRail p{font-size:11px;max-width:650px;line-height:1.6;color:#787d72}.personname{font-size:10px;paint-order:stroke;stroke:#f5f3eb;stroke-width:3px;stroke-linejoin:round}.counts{flex-wrap:wrap}.teamcard small{line-height:1.5}

/* Spacious map: the entire row belongs to the floor plan, detail opens as a sheet. */
.workspace{display:block}#office{width:1150px;min-width:1150px;margin:0 auto}#mapScroll{max-height:790px;min-height:400px;overflow:auto;overscroll-behavior:contain}aside{display:none}aside.open{display:block;position:fixed;top:100px;right:24px;bottom:auto;left:auto;width:330px;z-index:20;max-height:80vh;overflow:auto;box-shadow:0 18px 80px #152f3545}svg .roomlabel{font-size:14px;fill:#293f36}svg .personname{display:none;font-size:15px}svg .person:hover .personname,svg .person:focus .personname{display:block}svg .person:hover .halo,svg .person:focus .halo{opacity:1}.maptitle{font-size:11px;padding-bottom:12px}#roomNav{margin:0;padding:14px 20px;gap:8px;flex-wrap:wrap;background:#f8f8f3;border-bottom:1px solid #dce2d6}#roomNav button{font-size:12px;background:#fff;color:#456351;padding:9px 12px}#remoteRail{margin-top:0}.teamcard small{display:block}#mapPanel{position:relative}.mapfooter{font-size:12px}.mapfooter button{min-width:38px;min-height:38px}.close{font-size:20px;min-height:38px;min-width:38px}
@media(max-width:600px){#office{width:1150px;min-width:1150px;margin:0}#mapScroll{height:600px;max-height:65vh}#roomNav{flex-wrap:nowrap;padding:12px;overflow:auto}#roomNav button{min-height:40px;flex:none}.maptitle span+span{display:block;font-size:10px;letter-spacing:0;max-width:150px;text-align:right}.maptitle{letter-spacing:0;font-size:10px}aside.open{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:75vh}.counts{justify-content:flex-start;gap:10px}.counts span{font-size:11px}.mapfooter>span{max-width:160px}}

.room-zone polygon{transition:fill .15s,stroke .15s,opacity .15s}.room-zone.zone-active polygon,.room-zone:focus-visible polygon{fill:#c4debb;stroke:#345f4b;stroke-width:3;opacity:.85}.room-zone:focus-visible{outline:none}.maptitle{position:relative;min-height:62px;flex-wrap:wrap;gap:8px;align-items:center}.maptitle>span:nth-child(2){display:none!important}#roomHover{letter-spacing:0;font-size:13px;font-weight:600;padding:8px 12px;border:1px solid transparent;border-radius:9px;color:#677966}#roomHover.active{background:#e2edda;border-color:#b7cdae;color:#294f38}@media(max-width:600px){#roomHover{font-size:12px;width:100%;padding:7px 9px}.maptitle{padding:12px}}

.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}#activeRoomLabel{pointer-events:none}#activeRoomLabel rect{stroke:#6b9067;stroke-width:1.5}#activeRoomLabel text{font-size:14px}.maptitle{min-height:46px}
