.ohl-panel{margin:20px 0 26px;padding:26px;border:1px solid #d9e6e2;border-radius:22px;background:#fff;color:#193940;min-width:0}
.ohl-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.ohl-eyebrow{color:#087f78;font-size:10px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.ohl-heading h2{font-size:28px;letter-spacing:-.04em;margin:6px 0}
.ohl-heading p{font-size:12px;color:#637e80;margin:0}
.ohl-badge{border:1px solid #cfdfdb;border-radius:30px;padding:8px 12px;color:#436d64;background:#f0f6f3;font-size:11px;white-space:nowrap}
.ohl-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0 18px;padding:18px 0;border-top:1px solid #e6eeeb;border-bottom:1px solid #e6eeeb}
.ohl-summary span{display:flex;flex-direction:column;font-size:11px;color:#68827b;gap:6px}
.ohl-summary strong{font-size:23px;color:#285950;font-weight:650}
.ohl-canvas{max-width:100%;overflow-x:auto;border:1px solid #e3ece6;border-radius:18px;scrollbar-color:#7da79b #ecf3ef}
.ohl-svg{display:block;width:100%;min-width:680px;height:auto;font-family:inherit}
.ohl-svg text{fill:#30534e;font-size:14px}
.ohl-svg .ohl-drawing-title{font-size:29px;letter-spacing:1px;font-weight:750;fill:#153e3d}
.ohl-svg .ohl-drawing-subtitle{font-size:12px;fill:#77918b}
.ohl-svg .ohl-core-label{font-size:9px;fill:#698882;letter-spacing:.5px;font-weight:750}
.ohl-floor-label{font-weight:700;font-variant-numeric:tabular-nums}
.ohl-slab{fill:#d2e2dc;stroke:#b6cdc3;stroke-width:1}
.ohl-slab.ohl-underground{fill:#c2d1c2}
.ohl-apartment rect{fill:#e9f3ed;stroke:#a8cbb8;stroke-width:1}
.ohl-apartment text{fill:#357060;font-weight:600}
.ohl-room{fill:#dcecf0;stroke:#a8c8ce}
.ohl-room.ohl-basement{fill:#dbe3d4;stroke:#a5bba0}
.ohl-zone-label{font-size:13px;letter-spacing:.5px}
.ohl-shaft{fill:#c0d8e0;stroke:#88adb8}
.ohl-lift-door{fill:#ebf4f6;stroke:#638995;stroke-width:1}
.ohl-stairwell{fill:#d9e5e0;stroke:#adcbc0}
.ohl-stairs{fill:none;stroke:#739a89;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ohl-roof{fill:#c0d8cc;stroke:#6e9988}
.ohl-roof-edge{fill:none;stroke:#658c7f;stroke-width:4;stroke-linecap:round}
.ohl-machine{fill:#496e72;stroke:#365b60;stroke-width:1.5}
.ohl-sheave{fill:#709698;stroke:#c6dedd;stroke-width:2}
.ohl-ink-line{stroke:#d9e9e5;stroke-width:2;fill:none}
.ohl-svg .ohl-machine-label{fill:#f1f7f5;font-size:13px}
.ohl-duplex-link path{fill:none;stroke:#739a89;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.ohl-svg .ohl-duplex-link text{fill:#739a89;font-size:10px;font-weight:700}
.ohl-ground{stroke:#73957b;stroke-width:3}
.ohl-entrance rect{fill:#47766d;stroke:#e0eee8;stroke-width:1}
.ohl-entrance path{fill:#9db8a7;stroke:#628c78;stroke-width:1.5}
.ohl-entrance .ohl-leader{fill:none;stroke:#6d8f7c;stroke-width:1}
.ohl-svg .ohl-entrance text{font-size:11px;letter-spacing:1px}
.ohl-svg .ohl-caption{font-size:20px;font-weight:650;fill:#315f52}
.ohl-svg .ohl-caption-small{font-size:12px;fill:#6a8375}
.ohl-legend{display:flex;flex-wrap:wrap;gap:12px 20px;margin:18px 0;font-size:11px;color:#5c7870}
.ohl-legend span{display:flex;align-items:center;gap:7px}
.ohl-legend i{width:12px;height:12px;display:inline-block;border:1px solid #abc7bc;border-radius:3px}
.ohl-key-home{background:#e9f3ed}.ohl-key-commercial{background:#dcecf0}.ohl-key-core{background:#c0d8e0}
.ohl-details{border-top:1px solid #e1eae5;margin-top:16px;padding-top:4px;font-size:12px}
.ohl-details summary{padding:14px 0;cursor:pointer;min-height:44px;font-weight:650}
.ohl-details p{font-size:11px;color:#75857a}
.ohl-floor-list>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #edf2ee;line-height:1.6}
.ohl-source-note{font-size:11px;line-height:1.7;color:#76877c;margin:18px 0 0}
.ohl-scroll-hint{display:none;font-size:11px;color:#678078}
@media(max-width:900px){.ohl-scroll-hint{display:block}.ohl-panel{padding:18px}.ohl-heading h2{font-size:24px}}
@media(max-width:600px){.ohl-heading{flex-direction:column;gap:10px}.ohl-summary{grid-template-columns:1fr 1fr;gap:18px}.ohl-summary strong{font-size:22px}.ohl-panel{padding:15px;border-radius:16px}.ohl-floor-list>div{grid-template-columns:75px minmax(0,1fr)}}
@media print{.ohl-svg{min-width:0}.ohl-panel{break-inside:avoid}.ohl-scroll-hint{display:none}}
