:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#213c4d;font-synthesis:none;font-size:14px;--ink:#193b50;--accent:#1574a2;--border:#dce4e8}
*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden;background:#e8edf0}button,input{font:inherit}button{cursor:pointer;transition:background .15s,color .15s,border-color .15s}button:focus-visible,input:focus-visible{outline:3px solid #62b6df;outline-offset:3px}button:disabled{opacity:.5}#stage{position:absolute;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.topbar{position:absolute;left:34px;right:34px;top:28px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.identity{display:flex;align-items:center;gap:15px}.monogram{font-weight:300;font-size:34px;border:1px solid #8298a7;padding:7px 12px;color:#365367;position:relative;height:59px}.monogram span{font-size:9px;position:absolute;bottom:3px;right:5px;font-weight:700}h1{font-size:23px;line-height:1.2;margin:4px 0 3px;font-weight:650;letter-spacing:-.8px}.identity p{margin:0;color:#6d8290;font-size:12px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:700;color:#6c8291}.top-actions{display:flex;align-items:center;gap:22px;pointer-events:auto}.live{font-size:10px;font-weight:650;letter-spacing:1.2px;color:#63808d}.live i{display:inline-block;width:6px;height:6px;background:#409e98;border-radius:50%;margin-right:6px}.button{border:0;border-radius:7px;display:flex;align-items:center;justify-content:center;gap:14px;font-size:12px;font-weight:600;padding:12px 16px}.button.dark{background:#173d53;color:white;box-shadow:0 3px 12px #173d531c}.button.dark:hover{background:#0e5678}.panel{position:absolute;top:128px;left:34px;width:263px;background:#fffffff2;backdrop-filter:blur(16px);border:1px solid #ffffff;box-shadow:0 12px 40px #1737490d;border-radius:13px;padding:21px}.panel h2{font-size:17px;letter-spacing:-.4px;line-height:1.4;margin:10px 0 19px;font-weight:550}.view-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.view{border:1px solid #e4e9ec;background:#f7f9fa;border-radius:5px;font-size:11px;padding:10px 4px;color:#6a7d89;font-weight:550}.view:hover{background:#eaf3f8}.view.active{color:#13587d;border-color:#94bfd4;background:#e9f4fa}.section-label{font-size:9px;letter-spacing:1.5px;color:#8a9ba6;font-weight:650;margin-top:23px;margin-bottom:6px}.layers label{display:flex;align-items:center;justify-content:space-between;gap:5px;cursor:pointer;position:relative;padding:10px 0;border-bottom:1px solid #edf0f2;font-size:11px;color:#4f6573}.layers label>span{display:flex;align-items:center;gap:8px}.swatch{width:7px;height:7px;border-radius:2px;background:#bcc6ce}.swatch.walls{background:#9ba4a7}.swatch.steel{background:#1f5c84}.swatch.old{background:#6b7a85}.swatch.filter{background:#596566}.layers input{position:absolute;right:0;opacity:0;width:30px;height:20px;cursor:pointer}.switch{width:27px;height:15px;border-radius:9px;background:#dce3e7;position:relative;pointer-events:none;flex-shrink:0}.switch:before{content:"";position:absolute;top:3px;left:3px;width:9px;height:9px;border-radius:50%;background:white;transition:transform .15s}.layers input:checked+.switch{background:#287ba1}.layers input:checked+.switch:before{transform:translateX(12px)}.layers input:focus-visible+.switch{outline:2px solid #368fbd;outline-offset:3px}.outline{width:100%;justify-content:space-between;background:#f6f9fb;border:1px solid #d8e3e9;color:#215674;margin-top:15px}.outline:hover{background:#eaf3f8}.options{display:flex;flex-direction:column;gap:12px;margin:18px 0 21px;font-size:10px;color:#728591}.options label{display:flex;align-items:center;gap:6px;cursor:pointer}.options input{accent-color:#23789f;margin:0;width:13px;height:13px}.panel-bottom{display:flex;gap:8px}.orbit{flex:1;justify-content:flex-start;background:#1b3f55;color:white;gap:10px;padding:11px 12px}.orbit.active{background:#1c7899}.orbit span:first-child{font-size:16px}.reset{border:1px solid #e0e7eb;border-radius:6px;background:white;width:36px;color:#6a8292;font-size:18px}.metrics{position:absolute;right:34px;top:128px;display:flex;background:#ffffffbd;border:1px solid #ffffffad;backdrop-filter:blur(16px);border-radius:10px;padding:16px 0;box-shadow:0 8px 30px #253c4e06}.metrics>div{padding:0 20px;border-right:1px solid #d8e0e5;display:flex;flex-direction:column;gap:6px}.metrics>div:last-child{border:0}.metrics strong{font-size:20px;font-weight:600;letter-spacing:-.6px;color:#23495f}.metrics small{font-size:11px;font-weight:450;letter-spacing:0}.metrics span{font-size:8px;font-weight:600;letter-spacing:1.1px;color:#708793}.view-caption{position:absolute;left:330px;bottom:81px;display:flex;align-items:center;gap:13px;pointer-events:none}.view-caption>span{font-size:31px;font-weight:250;color:#8ba0ad;border-right:1px solid #aabac3;padding-right:13px}.view-caption b{font-size:13px;font-weight:550;display:block}.view-caption small{font-size:10px;color:#728995;display:block;margin-top:6px}.navigation-hint{position:absolute;left:330px;bottom:35px;display:flex;gap:10px;align-items:center;font-size:10px;color:#80939f;pointer-events:none}.navigation-hint i{font-style:normal;color:#b3bec5}.watermark{position:absolute;right:34px;bottom:30px;display:flex;align-items:center;gap:10px;background:#f5f8fae0;padding:13px 16px;border:1px solid #ffffffa6;border-radius:7px;pointer-events:none}.watermark i{width:3px;height:27px;background:#377a9e;border-radius:4px}.watermark strong{font-size:9px;letter-spacing:1.15px;font-weight:650;display:block}.watermark span{font-size:9px;color:#7b909c;display:block;margin-top:5px}.presentation-controls{display:none;position:absolute;bottom:28px;left:34px;gap:6px}.presentation-controls button{border:1px solid #ccd8df;border-radius:5px;padding:8px 12px;background:#f7f9fbd9;font-size:10px;color:#597482}.presentation-controls kbd{font-size:9px;margin-left:8px;color:#8b9da6}body.presentation .panel,body.presentation .metrics,body.presentation .top-actions,body.presentation .navigation-hint,body.presentation .view-caption{display:none}body.presentation .presentation-controls{display:flex;opacity:.18;transition:opacity .2s}body.presentation .presentation-controls:hover{opacity:1}body.presentation .identity .eyebrow,body.presentation .identity p{display:none}body.presentation .identity h1{font-size:20px;color:#35596f}body.presentation .monogram{height:43px;font-size:24px;padding:3px 9px}body.presentation .topbar{top:26px}.dimension-label{position:absolute;padding:5px 8px;transform:translate(-50%,-50%);background:#ffffffed;border:1px solid #c9dce7;border-radius:5px;color:#245471;white-space:nowrap;font-size:11px;font-weight:650;box-shadow:0 3px 10px #133c4d08;pointer-events:none}.dimension-label.small{font-size:10px;padding:4px 6px}.dimension-label.portal{background:#1f5d81;color:white;border:1px solid #1f5d81}.dimension-label.overlap{background:#fff4cd;color:#946313;border-color:#e3c979}#labels{position:absolute;inset:0;pointer-events:none}#loading{position:absolute;inset:0;background:#e8edf0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#6e8797;font-size:12px;gap:10px}#loading .loader{width:26px;height:26px;border:2px solid #c9d9e2;border-top-color:#236c94;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error{position:absolute;inset:30%;background:white;padding:30px;border-radius:12px;z-index:20}#error p{font-size:13px;line-height:1.6;color:#6b7c88}#error[hidden]{display:none}@media(max-width:1100px){.panel{left:22px;top:112px;width:238px;padding:17px}.topbar{left:22px;right:22px;top:20px}.metrics{right:22px;top:112px}.metrics>div{padding:0 13px}.metrics strong{font-size:18px}.view-caption,.navigation-hint{left:288px}.navigation-hint{max-width:260px;flex-wrap:wrap;line-height:1.4;gap:3px 8px;bottom:28px}.watermark{right:22px}.panel h2{font-size:15px}.section-label{margin-top:18px}.layers label{padding:9px 0}.options{margin:15px 0}.top-actions .live{display:none}}@media(max-height:760px){.panel{top:112px;padding:15px 18px}.panel h2{font-size:14px;margin:8px 0 13px}.section-label{margin-top:15px}.layers label{padding:8px 0}.options{margin:13px 0;gap:9px}.outline{margin-top:11px;padding:9px 12px}.view-caption{bottom:79px}}@media(max-width:760px){.panel{top:auto;bottom:20px;left:15px;width:220px;max-height:70vh;overflow:auto}.metrics{display:none}.topbar{left:15px;right:15px}.identity .eyebrow{font-size:7px}.identity h1{font-size:19px}.top-actions .button{font-size:10px;padding:10px}.view-caption,.navigation-hint{display:none}.watermark{right:15px;bottom:20px;max-width:calc(100% - 260px)}.watermark strong{font-size:7px}.watermark span{font-size:8px}.presentation .watermark{max-width:none}}
:root .swatch.concrete{background:#b3b2aa}.panel{max-height:calc(100vh - 150px);overflow-y:auto;scrollbar-width:thin}
/* R05: fixed metric anchors with legible screen-space arrows and non-overlapping cards. */
#labels{z-index:3}.topbar,.panel,.metrics,.watermark,.presentation-controls{z-index:5}
.dimension-svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.dim-halo{fill:none;stroke:#fff;stroke-width:4.5;stroke-opacity:.9;stroke-linecap:round;stroke-linejoin:round}
.dim-extension{fill:none;stroke-width:1.25;stroke-dasharray:4 4;stroke-opacity:.85}
.dim-measure{fill:none;stroke-width:1.8;stroke-linecap:round}
.dim-leader{fill:none;stroke-width:1.2;stroke-opacity:.85}
.measure-card{position:absolute;min-width:144px;padding:8px 11px 8px 12px;border:1px solid #cbd6de;border-left:3px solid var(--measure-color);border-radius:7px;background:#fffffffa;color:#263f4e;box-shadow:0 3px 12px #173d5312;line-height:1.25;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}
.measure-card strong{display:block;font-size:17px;font-weight:700;color:var(--measure-color);letter-spacing:-.3px}
.measure-card span{display:block;font-size:11px;font-weight:650;margin-top:3px}
.measure-card small{display:block;font-size:10px;font-weight:450;color:#637785;margin-top:2px}
.measure-badge{min-width:0;padding:4px 8px;border-left-width:1px;background:var(--measure-color);border-color:var(--measure-color);color:white;border-radius:5px}
.measure-badge strong{font-size:12px;color:white;letter-spacing:0}.measure-badge span{font-size:9px;font-weight:450;color:#fff}
.measure-card[hidden],.dimension-tools[hidden]{display:none!important}
.dimension-tools{position:absolute;z-index:6;left:calc(50% + 140px);bottom:84px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 350px);padding:9px 11px 10px;border:1px solid #d5e0e6;border-radius:10px;background:#fffffff5;box-shadow:0 5px 22px #173d5310}
.dimension-tabs{display:flex;gap:4px;align-items:center}.dimension-heading{font-size:9px;letter-spacing:1.3px;font-weight:700;color:#6d8593;margin:0 10px 0 3px}
.dimension-tabs button{border:1px solid transparent;background:transparent;padding:7px 11px;border-radius:5px;color:#536c7a;font-size:11px;font-weight:600;white-space:nowrap}
.dimension-tabs button:hover{background:#eef4f7}.dimension-tabs button[aria-pressed=true]{background:#e7f2f8;border-color:#99bed0;color:#165b7c}
.dimension-help{font-size:10px;line-height:1.45;color:#637986;max-width:580px;margin:7px 3px 0}
body.dimensions-on .view-caption,body.dimensions-on .navigation-hint{display:none}
body.presentation .dimension-tools{left:50%;max-width:calc(100% - 36px)}
@media(max-width:1100px){.dimension-tools{left:calc(50% + 110px);max-width:calc(100% - 285px)}.dimension-heading{display:none}.dimension-tabs button{padding:7px 8px}}
@media(max-width:760px){.dimension-tools{left:50%;max-width:calc(100% - 24px);bottom:auto;top:92px;width:calc(100% - 24px)}.dimension-tabs{justify-content:space-between}.dimension-tabs button{font-size:10px;padding:6px}.dimension-help{font-size:9px}.measure-card{min-width:118px;padding:6px 8px}.measure-card strong{font-size:15px}.measure-card span{font-size:10px}.measure-card small{font-size:9px}.measure-badge{min-width:0}.measure-badge strong{font-size:11px}}
/* R08 perspective section: rotate the cut volume with the complete existing context. */
.plan-view-button{grid-column:1/-1;font-weight:650}.pillar-plan-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.pillar-plan-svg text{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;paint-order:stroke;stroke:#f1f4f5;stroke-width:3px;stroke-linejoin:round}
.pillar-plan-svg .plan-id{font-size:10px;font-weight:700;stroke:none}.plan-dim-text{font-size:11px;font-weight:650}.plan-note{font-size:11px;font-weight:550}.plan-area{font-size:19px;font-weight:500;letter-spacing:1px}
.pillar-plan-tools{position:absolute;z-index:6;left:calc(50% + 140px);bottom:84px;transform:translateX(-50%);padding:10px 14px;background:#fffffff5;border:1px solid #d5e0e6;border-radius:9px;max-width:calc(100% - 350px);width:max-content}
.plan-tabs{display:flex;gap:4px;align-items:center}.plan-tabs>span{font-size:9px;letter-spacing:1px;font-weight:700;color:#688291;padding-right:10px}
.plan-tabs button{font-size:11px;white-space:nowrap;border:1px solid transparent;background:transparent;padding:7px 9px;border-radius:5px;color:#3f657b}.plan-tabs button[aria-pressed=true]{border-color:#9fbfd2;background:#e6f2f8}.plan-tabs button[data-cut-detail]{border-color:#cddae1;margin-left:8px}
.pillar-plan-tools p{font-size:10px;max-width:650px;color:#69818d;margin:7px 0 0;line-height:1.4}.pillar-plan-tools[hidden]{display:none}
.plan-legend{display:none;font-size:11px;line-height:1.55;color:#5b7180;margin-top:22px}.plan-legend>b{font-size:13px;color:#23485c}.plan-legend strong{color:#34546a;font-size:11px}.plan-legend i{display:inline-block;width:9px;height:9px;margin-right:7px}.plan-blue{background:#145a84}.plan-tan{background:#c7cbca;border:1px solid #809090}
.section-mode .plan-legend{display:block}.section-mode .layers,.section-mode .section-label,.section-mode #structure,.section-mode .options,.section-mode #orbit,.section-mode #present-orbit,.section-mode #present-structure,.section-mode #present-dimensions{display:none}.section-mode .view-caption,.section-mode .navigation-hint{display:none}.section-mode .panel-bottom{justify-content:flex-end;margin-top:12px}
.presentation .pillar-plan-tools{left:50%;max-width:calc(100% - 40px)}
@media(max-width:1100px){.pillar-plan-tools{left:calc(50% + 110px);max-width:calc(100% - 290px)}.plan-tabs>span{display:none}.plan-tabs button{font-size:10px;padding:7px 5px}}

/* R09: independent 3D brand plaque; existing scene and dimensions unchanged. */
.brand-3d{position:relative;width:204px;height:82px;flex-shrink:0;pointer-events:auto;margin-left:-12px}
.brand-3d canvas{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 6px 5px #24443816)}
.brand-3d img{position:absolute;width:90%;height:auto;top:50%;left:5%;transform:translateY(-50%)}
.brand-3d img[hidden]{display:none}
.topbar{top:16px}.identity{gap:9px}
body.presentation .topbar{top:16px}body.presentation .identity h1{font-size:17px}
@media(max-width:1100px){.brand-3d{width:172px;height:76px}.identity{gap:5px}.identity h1{font-size:20px}.identity .eyebrow{letter-spacing:1px}}
@media(max-width:760px){.brand-3d{width:142px;height:62px;margin-left:-7px}.identity h1{font-size:14px}.identity p,.identity .eyebrow{display:none}.top-actions .button{padding:8px}.identity{gap:0}.topbar{top:10px}body.presentation .topbar{top:10px}body.presentation .identity h1{font-size:14px}}

.interior-view .identity{background:#f9fcf9ed;border:1px solid #ffffffb3;border-radius:10px;padding-right:16px}.interior-view .live{display:none}
/* R11: existing desktop composition, compact drawer and tablet side panel. */
html,body{max-width:100%;height:100dvh;overscroll-behavior:none}#stage{position:fixed;width:100%;height:100dvh;overflow:hidden}
button,select{touch-action:manipulation}select{font:inherit;color:#245471;background:#f7fafc;border:1px solid #b9cbd6;border-radius:5px;max-width:100%}
#options-toggle,#options-close,.responsive-select,.annotation-pager,.cut-sector,.pillar-list{display:none}
body.presentation .presentation-controls{opacity:1}
#error{inset:auto;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 32px))}
@media(max-width:1099px),(max-height:600px){
 button,select{min-height:44px;min-width:44px}.layers label,.options label{min-height:44px}.layers input{height:44px;width:44px}.options input{width:18px;height:18px}.reset{width:44px}
 #options-toggle{display:flex;position:fixed;z-index:8;bottom:calc(12px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left));min-width:114px}
 #options-close{display:flex;margin:0 0 12px auto;width:auto;position:sticky;top:0;z-index:1;background:#fff}
 .panel{display:none;left:16px;top:108px;bottom:74px;width:286px;max-height:none;padding:16px;overscroll-behavior:contain}
 .options-open:not(.presentation) .panel{display:block}.panel-head h2{font-size:15px;margin:6px 0 12px}.panel .view{font-size:12px}
 .panel-bottom{margin-bottom:4px}.metrics{display:none}.watermark{display:none}.view-caption{left:150px;bottom:24px}.navigation-hint{display:none}
 .dimension-tools,.pillar-plan-tools,.presentation .dimension-tools,.presentation .pillar-plan-tools{left:50%;width:min(620px,calc(100% - 32px));max-width:calc(100% - 32px);bottom:74px;top:auto;padding:8px 10px;transform:translateX(-50%)}
 .dimension-tabs,.plan-tabs{flex-wrap:wrap;gap:4px}.dimension-tabs button,.plan-tabs button{min-height:44px;padding:7px 9px}
 .options-open .dimension-tools,.options-open .pillar-plan-tools,.options-open #labels,.options-open .pillar-plan-svg{visibility:hidden}
 .presentation-controls{left:auto;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));gap:4px;max-width:calc(100% - 32px)}
 .presentation-controls button{padding:8px 10px}.presentation-controls kbd{display:none}.presentation #options-toggle{display:none}
 .cut-sector{display:flex;gap:6px;align-items:center;margin-top:5px}.cut-sector select{flex:1;min-width:0;padding:4px}.cut-sector label{font-size:11px}
 .pillar-list{display:block;margin-top:12px}.pillar-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600;font-size:12px}.pillar-list ul{padding-left:20px;font-size:12px;line-height:1.8}
}
@media(max-width:767px),(max-height:600px){
 .topbar,body.presentation .topbar{top:env(safe-area-inset-top);left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));height:70px;gap:4px}
 .identity{gap:0;min-width:0}.brand-3d{width:110px;height:56px;margin-left:-4px}.identity h1,body.presentation .identity h1{font-size:12px;letter-spacing:-.25px;max-width:80px}.identity p,.identity .eyebrow{display:none}.top-actions{gap:0}.top-actions .button{padding:8px;font-size:11px}.top-actions .button span{display:none}
 .panel{top:auto;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));width:auto;max-height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:14px;padding:12px 16px}.panel-head h2{display:none}
 .view-caption{display:none}.dimension-help,.pillar-plan-tools>p{display:none}.dimension-tabs,.plan-tabs{display:none}
 .responsive-select{display:block;width:100%;padding:8px;font-size:12px}
 .dimension-tools,.pillar-plan-tools,.presentation .dimension-tools,.presentation .pillar-plan-tools{width:calc(100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));max-width:none;bottom:calc(66px + env(safe-area-inset-bottom));padding:6px;border-radius:9px}
 .annotation-pager{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}.annotation-pager span{font-size:11px;flex:1;text-align:center}.annotation-pager button{border:1px solid #ccdbe3;background:#f6fafc;border-radius:5px;color:#245471;padding:4px 10px}
 .dimension-context{margin-top:4px!important}.dimension-context>span{display:none}.dimension-context select{width:100%}.measure-card{min-width:0;max-width:210px;padding:5px 7px;white-space:normal}.measure-card strong{font-size:14px}.measure-card span{font-size:10px}.measure-card small{font-size:9px}.measure-badge{white-space:nowrap}
 .cut-sector{margin-top:4px}.cut-sector label{display:none}.cut-sector select{font-size:11px}.cut-sector button{font-size:11px;padding:4px 8px;border:1px solid #ccdbe3;background:#f6fafc;border-radius:5px;color:#245471}
 .presentation-controls{left:8px;right:8px;justify-content:center;max-width:none}.presentation-controls button{font-size:10px;padding:6px 8px}.interior-view .identity{padding-right:6px}
}
@media(max-width:767px),(max-height:600px){.brand-3d{width:120px;height:44px}.identity h1,body.presentation .identity h1{max-width:72px}}
@media(max-height:600px) and (min-aspect-ratio:1/1){
 .dimension-tools,.pillar-plan-tools,.presentation .dimension-tools,.presentation .pillar-plan-tools{left:auto;right:calc(8px + env(safe-area-inset-right));width:min(340px,48%);bottom:calc(66px + env(safe-area-inset-bottom));transform:none}
 .panel{left:auto;width:min(360px,calc(100% - 16px));max-height:calc(100dvh - 86px);bottom:66px}.topbar{height:58px}.brand-3d{height:40px;width:110px}
 .cut-sector select{width:130px}.cut-sector button{padding:4px}.measure-card{max-width:200px}
}
@media(max-width:1099px),(max-height:600px){.annotation-pager{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}.annotation-pager span{font-size:11px;flex:1;text-align:center}.annotation-pager button{border:1px solid #ccdbe3;background:#f6fafc;border-radius:5px;color:#245471;padding:4px 10px}}

.touch-hint{display:none}@media(max-width:1099px),(max-height:600px){.touch-hint{display:block;font-size:11px;line-height:1.5;color:#637986;margin:4px 0 12px}.cut-sector button{font:inherit;font-size:11px;border:1px solid #ccdbe3;background:#f6fafc;border-radius:5px;color:#245471}}
