.building-map{margin-top:24px;border:2px solid #a2b6d0;border-radius:14px}
.building-map>.card-head{align-items:flex-start;gap:18px;border-bottom:1px solid #c1d0e3;background:#eef3fa}
.map-legend{display:flex;gap:10px 16px;flex-wrap:wrap;justify-content:flex-end;font-size:14px;color:#425b76}
.map-legend>span{display:flex;align-items:center;gap:5px;white-space:nowrap}.map-legend i{height:10px;width:10px;border-radius:3px;background:#cfddf8;border:1px solid #4d73b6}.map-legend b{font-weight:600}
.map-legend .vacant i{background:#b8d9c7;border-color:#338263}.map-legend .booking i{background:#ddd4f2;border-color:#8a71af}.map-legend .repair i{background:#ecd0cc;border-color:#ac6962}
.map-building-tabs{display:none}
.map-buildings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:24px 24px 10px;background:linear-gradient(#f5f8fc,#e8eff8)}
.map-building{min-width:0}.map-building-title{display:flex;gap:12px;align-items:center;margin:0 8px 20px}
.map-building-letter{display:grid;place-items:center;flex:none;width:48px;height:48px;background:#17375f;color:white;font-size:27px;font-weight:800;border-radius:12px}
.map-building-title h3{margin:0;font-size:21px;color:#17375f}.map-building-title p{margin:0;font-size:14px}.map-building-occupancy{margin-left:auto;text-align:right;flex:none}.map-building-occupancy>strong{color:#17375f;font-size:22px}.map-building-occupancy>strong span{font-size:15px;font-weight:500}.map-building-occupancy small{font-size:14px;margin:0}
.map-scene{position:relative;padding:0 12px 0 0;isolation:isolate}
.map-roof{height:32px;position:relative;background:#17375f;border:2px solid #17375f;border-radius:7px 7px 0 0;display:flex;align-items:center;justify-content:center;margin:0 -5px;color:#fff;font-size:14px;letter-spacing:1.5px;box-shadow:0 3px 0 #43668c}
.map-roof::before{content:'';position:absolute;left:7px;right:2px;bottom:100%;height:11px;background:#93abc7;clip-path:polygon(10px 0,100% 0,100% 100%,0 100%)}
.map-roof i{position:absolute;right:12px;bottom:32px;width:24px;height:18px;background:#d2deeb;border:2px solid #91a8c1;border-radius:3px 3px 0 0}
.map-facade{position:relative;background:#dce5f0;border:2px solid #8097b4;border-top:0;box-shadow:5px 5px 0 #bdcddd}
.map-facade::after{content:'';position:absolute;top:0;bottom:0;left:100%;width:12px;background:repeating-linear-gradient(to bottom,#a6bdd5 0,#a6bdd5 110px,#8097b4 111px,#8097b4 113px);transform:skewY(-18deg);transform-origin:left top;z-index:-1}
.map-floor{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;min-height:114px;padding:7px 12px 9px 8px;position:relative;border-bottom:5px solid #b5c5d8;box-shadow:inset 0 -2px #7f96b0;background:linear-gradient(90deg,#dce5f0,#e8eef5 45%,#dce5f0)}
.map-floor-label{text-align:center;color:#456383;align-self:center}.map-floor-label span{font-size:14px;display:block}.map-floor-label strong{font-size:22px;font-weight:700;line-height:1.3}
.map-windows{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px 6px;min-width:0;align-content:center}
.map-building[data-building=A] .map-windows{grid-template-columns:repeat(6,minmax(0,1fr))}
.map-window{--window-bg:#e8f0ff;--window-border:#5d80bd;--window-ink:#254f96;position:relative;display:grid;place-items:center;background:var(--window-bg);border:1.5px solid var(--window-border);border-bottom:4px solid var(--window-border);border-radius:4px;min-width:0;height:28px;padding:0 1px;line-height:1.35;color:var(--window-ink);font-size:14px;font-weight:600;box-shadow:1px 2px 0 #647f9b33;transition:transform .15s,box-shadow .15s}
.map-window.vacant{--window-bg:#d5ecdf;--window-border:#4b9072;--window-ink:#185f42}.map-window.booking,.map-window.booked{--window-bg:#eee6fa;--window-border:#9276b7;--window-ink:#684994}.map-window.repair{--window-bg:#f7e6e2;--window-border:#ba7f73;--window-ink:#92473f}
.map-window:hover{transform:translateY(-2px);box-shadow:0 3px 7px #17375f33;filter:none;z-index:1}.map-window:focus-visible{outline:3px solid #17375f;outline-offset:2px;z-index:2}
.map-window span{position:relative;z-index:1}.map-window i{position:absolute;top:0;right:2px;width:16%;height:100%;background:#ffffff44;pointer-events:none}
.map-floor-toggle,.map-floor-mini{display:none}
.map-entrance{height:64px;display:flex;align-items:flex-end;justify-content:center;gap:22px;background:#bccddd;padding:10px 12px 0;border-top:2px solid #8aa1bb}
.map-front-door{width:90px;height:54px;background:#355776;border:3px solid #708da9;border-bottom:0;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:10px 4px 0}
.map-front-door span{position:absolute;top:-9px;left:-15px;right:-15px;text-align:center;background:#17375f;color:#dce7f5;font-size:9px;letter-spacing:.5px;padding:2px}.map-front-door i{background:linear-gradient(135deg,#9bb9d1,#577f9f);border:1px solid #b9d0e2}
.map-ground-window{height:27px;width:40px;background:#8eabc3;border:3px solid #6a89a6;box-shadow:0 3px #e7eef5;position:relative;margin-bottom:12px}.map-ground-window::after{content:'';position:absolute;top:0;bottom:0;left:50%;border-left:2px solid #6a89a6}
.map-ground{height:32px;display:flex;align-items:flex-start;justify-content:space-around;border-top:3px solid #8ba1b7;margin:0 -6px;background:linear-gradient(#d7e2ee 0 7px,#c3d1e1 7px 11px,transparent 11px)}
.map-steps{width:112px;height:19px;background:repeating-linear-gradient(to bottom,#a7bacd 0,#a7bacd 5px,#e4ebf3 5px,#e4ebf3 7px);clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}
.map-tree{width:34px;height:28px;border-radius:45% 45% 5px 5px;background:#8cae9c;border-bottom:6px solid #718b7d;position:relative;top:-7px;box-shadow:8px 0 #a9c4b5,-7px 1px #9fbdaa}
.map-bottom{display:flex;gap:16px;align-items:center;padding:16px 24px;background:#f6f9fc;border-top:1px solid #bccce0;font-size:15px;color:#425b76}.map-bottom strong{color:#17375f;margin-left:7px}.map-bottom .progress{max-width:none;background:#d7e2f1;height:7px}.map-bottom .text-btn{white-space:nowrap}
@media(min-width:701px) and (max-width:1199px){.map-buildings{grid-template-columns:1fr}.map-building{width:100%;max-width:620px;justify-self:center}}
@media(max-width:700px){
 .building-map>.card-head{flex-direction:column;padding:16px;gap:12px}.map-legend{justify-content:flex-start;gap:8px 12px}.building-map>.card-head p{font-size:14px}
 .map-buildings{display:block;padding:16px 12px 6px}.map-building:not(.is-active){display:none}.map-building-title{margin:0 2px 22px;gap:9px}.map-building-letter{width:40px;height:40px;font-size:24px}.map-building-title h3{font-size:19px}.map-building-occupancy>strong{font-size:20px}.map-building-occupancy small{font-size:14px}
 .map-building-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 12px 0;background:#f5f8fc}.map-building-tabs button{min-height:44px;background:#edf2f9;color:#244f7f;border:1.5px solid #8fa6c4;border-radius:8px;font-size:15px;font-weight:600;padding:8px 4px}.map-building-tabs button[aria-pressed=true]{background:#17375f;color:white;border-color:#17375f}
 .map-scene{padding-right:8px}.map-facade::after{width:8px}.map-floor{display:block;min-height:0;padding:8px 9px 12px;border-bottom-width:4px}.map-floor-label{display:none}
 .map-floor-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;border:0;background:transparent;padding:0 0 5px;color:#244f7f;text-align:left;font-size:16px;font-weight:600}.map-floor-toggle small{font-size:14px;font-weight:400;margin:0}.map-chevron{margin-left:auto;font-size:22px}.map-floor.is-open .map-chevron{transform:rotate(180deg)}
 .map-windows,.map-building[data-building=A] .map-windows{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.map-window{height:44px;font-size:15px;border-bottom-width:4px}
 .map-floor:not(.is-open) .map-windows{display:none}.map-floor-mini{display:none}.map-floor:not(.is-open) .map-floor-mini{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:1px}
 .map-dot{width:14px;height:11px;border:1px solid #5d80bd;border-bottom-width:2px;background:#e8f0ff;border-radius:2px}.map-dot.vacant{background:#d5ecdf;border-color:#4b9072}.map-dot.booking,.map-dot.booked{background:#eee6fa;border-color:#9276b7}.map-dot.repair{background:#f7e6e2;border-color:#ba7f73}
 .map-bottom{padding:12px;gap:8px;flex-wrap:wrap;font-size:14px}.map-bottom .progress{flex:1;min-width:60px}.map-bottom .text-btn{width:100%;min-height:44px;border:1px solid #9fb4d0;border-radius:8px;background:white}
}
