.pl-stats{margin-bottom:clamp(24px,3vw,40px)}.pl-stats .k:first-letter{text-transform:uppercase}.plan-tool{gap:var(--sp-4);padding-bottom:var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}.pl-bar{justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-5);flex-wrap:wrap;display:flex}.pl-bar .field{flex:0 auto}.pl-layout{gap:var(--sp-4);grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.pl-stage{padding:var(--sp-4);gap:var(--sp-3);display:grid;overflow:hidden}.pl-stage.zoomed{-webkit-overflow-scrolling:touch;overflow-x:auto}.pl-info{top:calc(var(--nav-h) + env(safe-area-inset-top) + var(--sp-4));scroll-margin-top:calc(var(--nav-h) + var(--sp-4));position:sticky}.plan-svg{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.pl-stage.zoomed .plan-svg{width:1000px;max-width:none}.plan-svg[data-mode=measure]{cursor:crosshair}.plan-svg :is(.pl-outdoor,.pl-furniture,.pl-fixtures,.pl-walls,.pl-openings,.pl-posts,.pl-dims,.pl-compass,.pl-north){pointer-events:none}.plan-svg[data-furniture=off] .pl-furniture,.plan-svg[data-dims=off] :is(.pl-dims,.pl-dim-text){display:none}.pl-room{fill:var(--fill);outline:none}.plan-svg[data-zones=off] .pl-room{fill:#0000}.plan-svg[data-mode=rooms] .pl-room{cursor:pointer}@media (hover:hover){.plan-svg[data-mode=rooms] .pl-room:hover{fill-opacity:.78}}.pl-outdoor [data-fill=paving] .pl-od-fill{fill-opacity:.7}.pl-outdoor .pl-water{fill:var(--plan-water,color-mix(in srgb, var(--info) 16%, var(--surface)))}.pl-outdoor .pl-coping{fill:var(--surface-2)}.pl-sel{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:3px;vector-effect:non-scaling-stroke}.pl-sel-focus{fill:none;stroke:var(--focus);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;opacity:0}.plan-svg:has(.pl-room:focus-visible) .pl-sel-focus{opacity:1}.pl-north-ring{fill:var(--surface);stroke:var(--rule-2);stroke-width:1px;vector-effect:non-scaling-stroke}.pl-north-ink{fill:var(--ink)}.pl-north-paper{fill:var(--surface);stroke:var(--ink);stroke-width:1px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.pl-north-letter{fill:var(--ink);font-family:var(--font-sans);font-weight:var(--weight-strong)}.pl-text{font-family:var(--font-mono)}.pl-num{fill:var(--ink);font-weight:var(--weight-strong)}.pl-area{fill:var(--ink-2)}.pl-num,.pl-area,.pl-item-text,.pl-dim-value,.pl-od-text,.pl-north-letter{paint-order:stroke;stroke:var(--surface);stroke-linejoin:round}.pl-od-text{fill:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--weight-medium)}.pl-od-text[data-inside=true]{stroke:none}.pl-tag{fill:var(--surface);stroke:var(--rule-2);stroke-width:1px;vector-effect:non-scaling-stroke}.pl-tag-text{fill:var(--ink)}.pl-dim-value{fill:var(--plan-dim)}.pl-dim-note,.pl-scale-text{fill:var(--ink-2)}.pl-legend{padding:var(--sp-3) var(--sp-1) 0;border-top:1px solid var(--rule);font-size:var(--fs-sm);color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin:0;list-style:none;display:flex}.pl-legend li{align-items:center;gap:8px;display:inline-flex}.pl-sw{border:1px solid var(--rule-2);background:var(--surface);border-radius:3px;flex:none;width:12px;height:12px}.pl-sw[data-fill=day]{background:var(--zone-day)}.pl-sw[data-fill=night]{background:var(--zone-night)}.pl-sw[data-fill=service]{background:var(--zone-service)}.pl-sw[data-fill=circulation]{background:var(--zone-circulation)}.pl-sw[data-fill=garage]{background:var(--zone-garage)}.pl-sw[data-fill=terrace]{background:repeating-linear-gradient(0deg, var(--plan-hatch) 0 1px, var(--zone-terrace) 1px 3px)}.pl-sw[data-fill=paving]{background-color:color-mix(in srgb, var(--map-paving) 70%, var(--surface));background-image:linear-gradient(color-mix(in srgb, var(--ink) 14%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 14%, transparent) 1px, transparent 1px);background-size:5px 5px}.pl-sw[data-fill=pool]{background:var(--plan-water,color-mix(in srgb, var(--info) 16%, var(--surface)));border-color:var(--plan-window)}.pl-measure-line{stroke:var(--accent);stroke-width:2.5px;vector-effect:non-scaling-stroke}.pl-measure-dot{fill:var(--accent);stroke:var(--surface);stroke-width:1.5px;vector-effect:non-scaling-stroke}.pl-measure-cursor{fill:none;stroke:var(--focus);stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.pl-measure-tag{fill:var(--ink)}.pl-measure-text{fill:var(--bg);font-family:var(--font-mono);font-weight:var(--weight-strong)}.pl-items[data-active=off]{pointer-events:none}.pl-item{touch-action:none;outline:none}.pl-items[data-active=on] .pl-item{cursor:grab}.pl-item-rect{fill:color-mix(in srgb, var(--accent) 30%, transparent);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.pl-item[data-selected=true] .pl-item-rect{stroke:var(--ink);stroke-width:3px}.pl-item:focus-visible .pl-item-rect{stroke:var(--focus);stroke-width:3px;stroke-dasharray:6 3}.pl-item-text{fill:var(--ink);font-family:var(--font-sans)}.pl-info-head{align-items:baseline;gap:10px;display:flex}.pl-info-no{font-size:var(--fs-ui);font-weight:var(--weight-medium)}.pl-info-name{text-wrap:balance}.pl-sub{margin:6px 0 8px}.pl-info .kv small{color:var(--ink-3);font-size:var(--fs-xs);font-family:var(--font-sans);display:block}.pl-info .kv>.txt{font-family:var(--font-sans)}.pl-info-links{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.pl-back{display:none}.pl-selected{gap:var(--sp-3);background:var(--bg-2);display:grid}.pl-actions{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.pl-custom{gap:var(--sp-2);grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;display:grid}.pl-custom .btn{grid-column:1/-1;justify-self:start}.pl-dim{color:var(--ink-3);font-size:var(--fs-xs)}.pl-jump{display:none}@keyframes pl-jump-in{0%{opacity:0;transform:translate(-50%,10px)}}.pl-section{padding-top:0}.pl-section .h2{margin-bottom:var(--sp-5)}.pl-rooms{padding-top:clamp(40px,5vw,72px)}table.data.room-table td{vertical-align:middle}.room-table .c-no{width:5.5em}.room-table .c-bar{width:112px;padding-right:0}.room-table tbody tr{cursor:pointer}.room-table tbody tr[aria-current=true]{background:var(--accent-soft)}.pl-share{height:4px;width:var(--v);background:var(--ink-3);border-radius:2px;min-width:2px;display:block}.room-table tbody tr[aria-current=true] .pl-share{background:var(--accent)}.room-table tfoot td{padding-top:12px;padding-bottom:12px}.room-table tfoot tr:first-child td{border-top:1px solid var(--rule-2)}.room-table tfoot tr:not(.pl-total-main,.pl-total-all) td{font-weight:var(--weight-body);color:var(--ink-2)}.room-table tfoot .pl-total-all td{border-top:1px solid var(--rule)}.row-btn{color:inherit;font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0}.row-btn:hover{text-decoration:underline}.pl-note{margin-top:var(--sp-3)}.pl-asm-section{padding-top:clamp(56px,7vw,112px)}.pl-asm-section>.h2{margin-bottom:var(--sp-6)}.pl-asm-group+.pl-asm-group{margin-top:var(--sp-7)}.pl-asm-group-head{align-items:baseline;gap:var(--sp-2) var(--sp-5);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.pl-asm-group-head .label{margin:0}.pl-asm-group-head .note{max-width:72ch;margin:0}.pl-asm-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,272px),1fr));display:grid}.pl-asm{gap:var(--sp-4);align-content:start;display:grid}.pl-asm-name{font-size:var(--fs-base);font-weight:var(--weight-strong);letter-spacing:-.012em;text-wrap:balance;min-height:2.5em;margin:0;line-height:1.25}.pl-asm-fig{flex-wrap:wrap;align-items:baseline;gap:2px 6px;margin:0;display:flex}.pl-asm-fig b{font:var(--weight-light) var(--fs-stat) / 1 var(--font-sans);letter-spacing:-.05em;font-variant-numeric:proportional-nums lining-nums}.pl-asm-k,.pl-asm-unit{font-size:var(--fs-sm);color:var(--ink-3)}.pl-asm-r{font-size:var(--fs-sm);color:var(--ink-3);flex-basis:100%;margin-top:4px}.pl-strip{align-items:center;gap:var(--sp-3);display:flex}.pl-strip-bar{border:1px solid var(--ink-2);background:var(--surface-2);border-radius:2px;flex:1;height:28px;display:flex;overflow:hidden}.pl-strip-layer{flex:0 0 var(--w);border-right:1px solid color-mix(in srgb, var(--ink) 55%, transparent);min-width:2px}.pl-strip-layer:last-child{border-right:0}.pl-strip-total{font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap}:is(.pl-strip-layer,.pl-layer-sw)[data-role=structure]{background:color-mix(in srgb, var(--ink) 34%, var(--surface))}:is(.pl-strip-layer,.pl-layer-sw)[data-role=insulation]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ink) 34%, transparent) 0 1px, transparent 1px 5px), var(--surface-2)}:is(.pl-strip-layer,.pl-layer-sw)[data-role=finish]{background:color-mix(in srgb, var(--ink) 10%, var(--surface))}:is(.pl-strip-layer,.pl-layer-sw)[data-role=screed]{background:color-mix(in srgb, var(--ink) 20%, var(--surface))}:is(.pl-strip-layer,.pl-layer-sw)[data-role=membrane]{background:var(--ink)}:is(.pl-strip-layer,.pl-layer-sw)[data-role=cladding]{background:color-mix(in srgb, var(--ink) 62%, var(--surface))}:is(.pl-strip-layer,.pl-layer-sw)[data-role=air]{background:radial-gradient(circle, color-mix(in srgb, var(--ink) 30%, transparent) .8px, transparent 1px) 0 0 / 4px 4px, var(--surface-2)}:is(.pl-strip-layer,.pl-layer-sw)[data-role=other]{background:color-mix(in srgb, var(--ink) 16%, var(--surface))}.pl-strip-layer[data-ignored=true]{background:var(--surface-2);opacity:.55}.pl-layers{margin:0;padding:0;list-style:none}.pl-layer{gap:var(--sp-3);border-top:1px solid var(--rule);font-size:var(--fs-sm);grid-template-columns:12px minmax(0,1fr) auto;align-items:baseline;padding:9px 0;display:grid}.pl-layer-sw{border:1px solid var(--rule-2);border-radius:3px;align-self:center;width:12px;height:12px}.pl-layer .mono{color:var(--ink-2);white-space:nowrap}.pl-layer[data-ignored=true]{color:var(--ink-3)}.pl-layer[data-ignored=true] .pl-layer-sw{opacity:.55}.pl-layer small{color:var(--ink-3);font-size:var(--fs-xs)}.pl-materials{margin-top:var(--sp-8);gap:var(--sp-4);display:grid}.pl-materials>.label{margin:0}.pl-swatches{gap:var(--sp-3) var(--sp-5);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.pl-swatches li{align-items:center;gap:var(--sp-3);font-size:var(--fs-ui);min-width:0;display:flex}.pl-swatch{border-radius:var(--r-xs);border:1px solid var(--rule-2);background:var(--sw);flex:none;width:32px;height:32px}.pl-specs{gap:var(--sp-4) var(--sp-5);margin:var(--sp-3) 0 0;padding-top:var(--sp-4);border-top:1px solid var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pl-specs dt{font:var(--weight-medium) var(--fs-label) / 1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.pl-specs dd{font-family:var(--font-mono);font-size:var(--fs-ui);font-variant-numeric:tabular-nums;margin:6px 0 0}.pl-specs sub{font-size:.72em}@media (max-width:1180px){.pl-layout{grid-template-columns:minmax(0,1fr)}.pl-info{position:static}.pl-back{display:inline-flex}.pl-jump{z-index:calc(var(--z-menu) - 1);left:50%;bottom:max(14px, env(safe-area-inset-bottom));min-height:var(--touch);border-radius:var(--r-pill);background:var(--ink);max-width:calc(100vw - 32px);color:var(--bg);font:var(--weight-medium) var(--fs-ui) / 1 var(--font-sans);box-shadow:var(--shadow-2);animation:pl-jump-in var(--dur-2) var(--ease-out) backwards;border:0;align-items:center;gap:10px;padding:0 18px;display:inline-flex;position:fixed;transform:translate(-50%)}.pl-jump .mono{font-size:var(--fs-sm);opacity:.8}.pl-jump-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pl-jump-arrow{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:8px;height:8px;margin:-4px 0 0 4px;transform:rotate(45deg)}.pl-swatches{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.pl-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}.pl-specs{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.pl-stage{padding:var(--sp-2)}.pl-legend{gap:6px 14px}.room-table :is(.c-floor,.c-bar){display:none}.room-table .c-no{width:3.6em}}@media (pointer:coarse){.row-btn{min-height:var(--touch);align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){.pl-jump{animation:none}}
