/* Sobko apartment explorer. Structure follows the project reference; typography and colours use Sobko. */
#plan-dialog{width:min(1580px,96vw);height:94svh;max-width:96vw;max-height:94svh;margin:auto;padding:0;overflow:hidden;border:0;background:var(--soft);color:var(--ink)}
#plan-dialog::backdrop{background:rgb(37 37 38 / .78)}
#plan-dialog .dialog-toolbar{height:86px;display:flex;align-items:center;gap:22px;padding:18px 28px;background:white;border-bottom:1px solid var(--line)}
.dialog-toolbar>div{margin-right:auto;min-width:0}.dialog-toolbar h2{font-size:23px;margin:0}.dialog-toolbar>a{font-size:14px;white-space:nowrap;text-underline-offset:5px}
#dialog-close{display:grid;place-items:center;min-width:46px;width:46px;height:46px;padding:12px;background:var(--ink);color:white;border:0}
.explorer-body{height:calc(100% - 86px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}
.explorer-overview{padding:24px 28px;overflow-y:auto;background:#e6e6e2;border-right:1px solid var(--line);overscroll-behavior:contain}
.explorer-instructions{margin-bottom:18px}.explorer-instructions strong{font-size:17px;display:block}.explorer-instructions p{font-size:14px;margin:5px 0 0}
.explorer-floors{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.explorer-floors button{font-size:12px;min-height:44px;padding:10px 12px;border:1px solid #a3a3a0;background:white;color:var(--ink)}
.explorer-floors button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.apartment-map{background:white;padding:10px;max-width:660px;margin:auto}.apartment-map>svg{display:block;width:100%;height:auto;max-height:68svh}
.unit-hotspots>g{cursor:pointer;outline:none}.unit-hotspots>g>polygon{fill:transparent;stroke:var(--ink);stroke-width:1.5;vector-effect:non-scaling-stroke;transition:fill 160ms ease}
.unit-hotspots>g:is(:hover,:focus)>polygon{fill:rgb(190 175 135 / .24);stroke:var(--ink);stroke-width:3}
.unit-hotspots>g[aria-pressed=true]>polygon{fill:rgb(190 175 135 / .3);stroke:#81704a;stroke-width:3}
.map-badge rect{fill:var(--ink);stroke:white;stroke-width:2}.map-badge text{fill:white;text-anchor:middle;dominant-baseline:central;font-family:'DM Sans',sans-serif;font-weight:600;pointer-events:none}.unit-hotspots>g[aria-pressed=true] .map-badge rect{fill:var(--gold);stroke:var(--ink)}.unit-hotspots>g[aria-pressed=true] .map-badge text{fill:var(--ink)}
.map-key{font-size:12px;color:var(--ink);display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0}.map-key>span{width:12px;height:12px;background:var(--ink)}.map-key>.active-dot{background:var(--gold);margin-left:12px}
.apartment-pills{display:flex;flex-wrap:wrap;gap:8px}.apartment-pills button{min-width:48px;min-height:44px;padding:10px 14px;border:1px solid #a3a3a0;background:white;color:var(--ink);font-size:14px}.apartment-pills button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}
.apartment-detail{overflow-y:auto;padding:30px;background:white;overscroll-behavior:contain}.apartment-intro h3{font-size:clamp(29px,3vw,40px);letter-spacing:-.035em;margin:0 0 12px}.apartment-building{font-size:14px;color:var(--muted);margin:0 0 18px}.apartment-facts{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:14px}.apartment-facts strong{font-size:17px;font-weight:600}.room-description{font-size:14px;line-height:1.6;margin:14px 0 0;color:var(--muted)}
.apartment-views{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);margin-top:24px;padding-bottom:10px}.apartment-views button{border:0;min-height:44px;padding:12px 14px;background:var(--soft);font-size:14px;color:var(--ink)}.apartment-views button[aria-pressed=true]{background:var(--gold);font-weight:600}
.apartment-visual{margin-top:20px;min-height:200px}.apartment-render{margin:0}.render-image-link{display:block;position:relative;background:var(--soft);color:white}.render-image-link img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.render-enlarge{position:absolute;bottom:12px;right:12px;background:var(--ink);color:white;padding:10px 14px;font-size:13px}.apartment-render figcaption{padding:20px 0;border-bottom:1px solid var(--line)}.render-type{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}.apartment-render figcaption strong{font-size:20px;line-height:1.4;display:block;color:var(--ink);font-weight:600}.apartment-render figcaption p{font-size:14px;margin:8px 0 0;line-height:1.7}.render-palette{display:flex;gap:12px;align-items:center;margin-top:16px;font-size:13px}.palette-swatches{display:inline-flex;gap:4px}.palette-swatches i{width:18px;height:18px}
.apartment-note{font-size:12px;line-height:1.65;color:var(--muted);margin:18px 0}.apartment-offer{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.apartment-offer p{font-size:14px;margin:0 0 12px}.apartment-offer .apartment-price{font-family:Manrope,sans-serif;font-size:34px;line-height:1.2;color:var(--ink);letter-spacing:-.025em}.apartment-offer .small-note{font-size:12px}.apartment-contact{display:flex;width:100%;align-items:center;justify-content:space-between;text-decoration:none;background:var(--ink);color:white;padding:17px 20px;font-size:15px;border:0;min-height:52px;margin-top:24px}.apartment-contact:hover{background:#4a4843;color:white}
.schedule-mapping{margin-top:28px}.schedule-mapping h4{font-size:21px;margin:0 0 14px}.schedule-mapping p{font-size:15px}.schedule-facts{font-size:14px}.schedule-facts>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0}.schedule-facts dd{margin:0;text-align:right}.all-existing{margin:24px 0}
.plan-tools{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.plan-tools button{min-height:44px;min-width:44px;border:1px solid #a3a3a0;background:white;color:var(--ink);font-size:13px;padding:10px 12px}.plan-tools button:disabled{opacity:.45;cursor:default}.plan-tools button[aria-pressed=true]{background:var(--ink);color:white}.plan-zoom-controls{display:flex;gap:6px;align-items:center}.plan-zoom-value{font-size:14px;min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
.unit-plan-viewport{border:1px solid var(--line);background:white;max-height:60svh;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-gutter:stable}.unit-plan-viewport .unit-original{width:100%;max-width:none;height:auto;display:block;padding:12px;background:white}.plan-source-links{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-top:14px;font-size:12px;line-height:1.7;color:var(--muted)}.plan-source-links a{color:var(--ink);font-weight:600}
#plan-dialog.plan-focus .explorer-body{grid-template-columns:minmax(0,1fr)}#plan-dialog.plan-focus .explorer-overview{display:none}#plan-dialog.plan-focus .apartment-detail{width:100%;max-width:1200px;margin:auto}#plan-dialog.plan-focus .unit-plan-viewport{max-height:65svh}
.empty-apartments{padding:60px 10px;max-width:430px;margin:auto}.empty-apartments .explorer-step{display:none}.empty-apartments h3{font-size:30px;margin:0 0 20px}.empty-apartments p{font-size:16px}
.inline-unit-picker{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.inline-unit-picker>p{font-size:15px;margin:0 0 14px}.inline-unit-picker>div{display:flex;flex-wrap:wrap;gap:8px}.inline-unit-picker button{font-size:14px;min-height:44px;padding:10px 14px;border:1px solid #a3a3a0;background:white;color:var(--ink)}.inline-unit-picker button:hover{background:var(--ink);color:white}
/* The model retains the reference geometry; gold and neutral faces belong to Sobko. */
.building-explorer{margin:80px 0;background:white;color:var(--ink)}.model-header{display:flex;justify-content:space-between;gap:20px;padding:32px}.model-header h3{font-size:34px;margin:0 0 16px}.model-header p{font-size:16px;margin:0;color:var(--muted)}.model-count{font-size:14px;white-space:nowrap;align-self:start;padding:10px 0}.model-toolbar{display:flex;gap:20px;align-items:end;flex-wrap:wrap;padding:0 32px 24px;border-bottom:1px solid var(--line)}.model-toolbar label{font-size:14px;display:grid;gap:8px}.model-toolbar select{font:inherit;font-size:15px;min-height:44px;border:1px solid #a3a3a0;background:white;color:var(--ink);padding:10px 30px 10px 12px;max-width:290px}.model-actions{display:flex;gap:8px;margin-left:auto}.model-actions button{font-size:14px;min-height:44px;min-width:44px;padding:10px 12px;background:white;color:var(--ink);border:1px solid #a3a3a0}.model-actions button[aria-pressed=true]{background:var(--ink);color:white}.model-stage{background:var(--soft);position:relative}.model-stage>svg{display:block;width:100%;height:auto;max-height:650px}.model-status{position:absolute;left:24px;bottom:18px;right:24px;text-align:center;font-size:14px;color:var(--ink);pointer-events:none}.model-unit{cursor:pointer;outline:none}.model-unit polygon{stroke:white;stroke-width:1;stroke-linejoin:round;transition:fill 150ms ease}.model-roof{fill:#e6e6e2}.model-side{fill:#777367}.model-front{fill:#d7d7d2}.existing .model-roof{fill:#dbd2ba}.existing .model-front{fill:var(--gold)}.existing .model-side{fill:#81704a}.model-unit .model-window{fill:#49494a;stroke:#d7d7d2;stroke-width:2}.model-label-bg{fill:var(--ink)}.model-unit text{font:600 13px 'DM Sans',sans-serif;fill:white;pointer-events:none}.model-unit:is(:hover,:focus,.highlighted) .model-roof{fill:var(--gold)}.model-unit:is(:hover,:focus,.highlighted) .model-label-bg{fill:#81704a}.model-unit:focus .model-roof{stroke:var(--ink);stroke-width:3}.model-footer{display:flex;gap:20px;padding:22px 32px;border-top:1px solid var(--line);flex-wrap:wrap;font-size:14px}.model-footer i{display:inline-block;width:12px;height:12px;background:var(--gold);margin-right:6px}.model-footer>span:nth-child(2) i{background:#777367}.model-footer small{flex-basis:100%;font-size:12px;color:var(--muted);line-height:1.6}.model-unit-list{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 32px}.model-unit-list button{padding:10px 14px;min-height:44px;border:1px solid #a3a3a0;background:white;color:var(--ink);font-size:14px}.model-unit-list button.highlighted{background:var(--ink);color:white}
#plan-dialog [hidden]{display:none!important}.explorer-body button:active,.model-toolbar button:active{transform:scale(.98)}
#wohnungen .floor-browser{margin-top:0}.floor-panel .plan-preview{align-self:start}#wohnungen .table-wrap{margin-top:28px}
@media(max-width:1050px){.explorer-overview{padding:20px 18px}.apartment-detail{padding:25px 20px}.apartment-intro h3{font-size:29px}.apartment-map>svg{max-height:57svh}.model-actions{margin-left:0}.model-header h3{font-size:30px}}
@media(max-width:700px){#plan-dialog{width:100vw;max-width:100vw;height:100svh;max-height:100svh;margin:0}#plan-dialog .dialog-toolbar{padding:12px 16px;height:76px;gap:12px}#plan-dialog .dialog-toolbar h2{font-size:19px}#plan-dialog .dialog-toolbar>a{display:none}.explorer-body{display:block;height:calc(100% - 76px);overflow-y:auto}.explorer-overview{overflow:visible;padding:20px 18px;border-right:0;border-bottom:1px solid var(--line)}.explorer-instructions{margin-bottom:16px}.explorer-floors{gap:6px}.explorer-floors button{font-size:12px;padding:9px}.apartment-map{max-width:440px;padding:7px}.apartment-map>svg{max-height:46svh}.apartment-detail{padding:26px 20px;overflow:visible}.apartment-views{gap:5px}.apartment-views button{font-size:13px;padding:10px 12px}.apartment-facts{gap:8px 14px}.plan-tools{gap:8px}.plan-tools button{padding:9px}.plan-source-links{flex-direction:column;gap:8px}.unit-plan-viewport .unit-original{padding:5px}.model-header{padding:24px 20px;display:block}.model-count{display:block;margin-top:16px}.model-header h3{font-size:28px}.model-toolbar{padding:0 20px 20px;gap:12px}.model-toolbar label{width:100%}.model-toolbar select{width:100%;max-width:none}.model-actions{flex-wrap:wrap}.model-stage>svg{min-height:340px}.model-status{font-size:12px;bottom:10px}.model-footer{padding:20px}.model-unit-list{padding:0 20px 24px}.building-explorer{margin:50px 0}.apartment-offer .apartment-price{font-size:32px}}
@media(prefers-reduced-motion:reduce){.unit-hotspots>g>polygon,.model-unit polygon{transition:none}}
#wohnungen .floor-section{margin-top:0}
@media(max-width:640px){
 #wohnungen tbody tr{grid-template-columns:44px 1fr auto;gap:5px 12px}
 #wohnungen tbody th{grid-column:1;grid-row:1/5;align-self:start}
 #wohnungen tbody td:nth-child(2){display:block;grid-column:2;grid-row:1}
 #wohnungen tbody td:nth-child(3){display:block;grid-column:3;grid-row:1;text-align:right}
 #wohnungen tbody td:nth-child(4){display:block;grid-column:2;grid-row:2;font-size:14px;text-align:left;margin:0}
 #wohnungen tbody td:nth-child(5){display:block;grid-column:3;grid-row:2;font-size:14px;text-align:right}
 #wohnungen tbody td:nth-child(6),#wohnungen tbody td:nth-child(8){display:none}
 #wohnungen tbody td:nth-child(7){display:block;grid-column:2/4;grid-row:3;font-size:19px;text-align:left;padding-top:7px}
 #wohnungen tbody td:nth-child(9){display:block;grid-column:2/4;grid-row:4}
 #wohnungen tbody td:nth-child(9) button{width:100%;justify-content:space-between;min-height:44px}
}
.back-to-floor{display:none}
@media(max-width:700px){.back-to-floor{display:block;background:transparent;color:var(--ink);border:0;text-decoration:underline;text-underline-offset:5px;padding:10px 0;min-height:44px;font-size:13px;margin-bottom:14px}}
