@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;font-size:16px;color:#253139;background:#e9edf0;font-synthesis:none;--accent:#1f5ce5;--ink:#253139;--line:#e0e5e8;--muted:#626e76}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 13px;transition:background .18s,border-color .18s,box-shadow .18s}button:hover{background:#f3f5f7;border-color:#b6c0c7}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.45;cursor:default}button:disabled:hover{background:white}a{color:inherit}
header{height:90px;display:flex;align-items:center;gap:30px;padding:0 32px;background:#fff;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:17px;flex-shrink:0}.brand img{display:block;object-fit:contain;width:67px;height:55px}.brand-caption{font-size:10px;letter-spacing:1.2px;line-height:1.7;color:#47535b}.project{font-size:12px;letter-spacing:1.3px;flex:1;display:flex;align-items:center;gap:10px;color:#647078}.dot{width:5px;height:5px;background:var(--accent)}.project em{font-style:normal;color:#abb3b8}.roles{display:flex;padding:4px;background:#edf0f2;border-radius:8px}.roles button{border:0;background:transparent;font-size:14px;padding:9px 18px}.roles button.active{background:#243139;color:white;box-shadow:0 2px 5px #14212a15}.outline{font-size:14px;padding:12px 17px}.outline span{margin-left:20px}
main{display:grid;grid-template-columns:minmax(0,1fr) 398px;height:calc(100dvh - 132px);min-height:640px}#viewport{position:relative;overflow:hidden;background:#202a31}#canvas{position:absolute;inset:95px 0 104px}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.scene-title{position:absolute;top:29px;left:35px;z-index:2;pointer-events:none}.eyebrow{font-size:11px;font-weight:600;letter-spacing:1.8px;color:#6f7c85}h1{font-family:Manrope,sans-serif;font-size:clamp(25px,2.4vw,36px);line-height:1.2;letter-spacing:-1.2px;font-weight:500;margin:10px 0;color:#f1f3f3}.scene-title .eyebrow{color:#a4b2ba}#scene-sub{font-size:14px;color:#b5c1c9;margin:9px 0}.view-switch{position:absolute;right:25px;top:30px;display:flex;padding:4px;background:#172128;z-index:3;border:1px solid #435059;border-radius:7px}.view-switch button{border:0;font-size:13px;background:transparent;color:#bbc6cc;padding:10px 14px}.view-switch .active{background:#edf0f1;color:#253139}.stage-label{position:absolute;right:28px;bottom:120px;color:#a4b5bf;font-size:11px;letter-spacing:2px;pointer-events:none;text-align:right;opacity:.5}.stage-label span{display:block;font-size:9px;letter-spacing:1.5px;margin-top:5px}.scene-bottom{position:absolute;bottom:77px;left:30px;right:30px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px}.scene-tools{display:flex;gap:7px}.scene-tools button{background:#2b3942;border:1px solid #475660;color:#e0e8ec;min-width:40px;min-height:40px;font-size:14px}.scene-tools button:hover{background:#3a4a55}.scene-tools button.active{background:#f0f2f2;color:#26323b}.hint{font-size:12px;color:#a5b3bb}.scene-metrics{height:57px;position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:28px;padding:0 31px;border-top:1px solid #394852;background:#1d272f;font-size:12px;color:#a8b6be}.scene-metrics b{font-family:Manrope;font-size:21px;font-weight:500;color:#eff3f5;margin-right:4px}.scene-metrics .concept{margin-left:auto;font-size:11px;color:#8d9fa9}
aside{background:#fff;display:flex;flex-direction:column;min-height:0;min-width:0;border-left:1px solid var(--line)}.aside-top{padding:25px 27px 20px;border-bottom:1px solid var(--line)}h2{font-family:Manrope,sans-serif;font-size:23px;line-height:1.25;letter-spacing:-.7px;font-weight:600;margin:10px 0 0}.scroll{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#cad2d8 transparent;overscroll-behavior:contain}.control-section{padding:23px 27px;border-bottom:1px solid var(--line)}.section-label{display:flex;align-items:center;gap:9px;margin-bottom:17px}.section-label>b{font-size:11px;color:var(--accent);font-weight:500}.section-label h3{font-size:16px;margin:0;font-weight:600}.section-label>span{margin-left:auto;font-size:12px;color:#74818a}.materials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.material{font-size:12px;padding:5px 5px 9px;text-align:left;border:1px solid #dce3e7;border-radius:6px;min-width:0}.material.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:#f0f5ff}.material .sample{height:55px;display:block;border-radius:3px;margin-bottom:8px;background-size:cover;box-shadow:inset 0 0 20px #0000000d}.material>span:last-child{display:block;padding-left:3px;font-weight:500}.note{font-size:12px;color:#63717b;line-height:1.6;margin:13px 0}.label{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:14px;margin:18px 0 11px}.label strong{font-weight:400;color:#63717b}.finishes{display:flex;gap:13px;padding:2px}.finish{border-radius:50%;padding:0;width:36px;height:36px;border:4px solid white;box-shadow:0 0 0 1px #d9e0e4;position:relative}.finish.selected{box-shadow:0 0 0 2px var(--accent)}select,input[type=number],input[type=text],textarea{border:1px solid #d9e1e6;border-radius:5px;padding:11px 12px;background:#f8fafb;color:var(--ink);width:100%;font-size:14px;min-height:42px}select{cursor:pointer}.fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.fields label{font-size:14px;display:block;min-width:0;line-height:1.4}.fields label>span{float:right;color:#63717b}.fields input,.fields select{margin-top:11px}input[type=range]{width:100%;accent-color:var(--accent);min-height:26px}.compare-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px}.compare-controls button{font-size:12px;padding:12px 7px}.compare-controls p{grid-column:1/-1;margin:0}.estimate{padding:20px 27px;background:#f4f7f9;border-top:1px solid #d9e1e6;box-shadow:0 -8px 25px #25313906;z-index:1}.estimate-head{display:flex;align-items:center;justify-content:space-between;font-size:14px}.estimate-head small{font-size:10px;letter-spacing:.8px;color:#184ac0;border:1px solid #c5d7ff;background:#f0f5ff;padding:4px 5px;border-radius:3px}.price{display:flex;align-items:baseline;gap:13px;margin:8px 0}.price strong{font-family:Manrope,sans-serif;font-weight:500;font-size:36px;letter-spacing:-1.4px;font-variant-numeric:tabular-nums}.price>span{font-size:12px;color:#65747e}.price-detail{font-size:12px;color:#63717b;line-height:1.5;margin-bottom:15px}.primary{border:none;background:var(--accent);color:white;padding:14px 17px;font-size:15px;font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border-radius:5px;box-shadow:0 4px 10px #1f5ce514}.primary:hover{background:#184ac0}.estimate>small{display:block;text-align:center;font-size:11px;margin-top:10px;color:#6f7d87}
footer{height:42px;padding:0 31px;display:flex;align-items:center;justify-content:space-between;font-size:11px;gap:20px;color:#697780;background:white;border-top:1px solid var(--line)}footer b{letter-spacing:1px;font-size:10px;color:#394953}footer a{color:inherit;text-decoration:none}footer a:hover{text-decoration:underline}footer button{border:0;background:none;font-size:11px;padding:0;color:#56656f}#layer-legend{position:absolute;top:165px;left:30px;z-index:2;background:#233039ed;border:1px solid #485963;color:#d8e1e6;border-radius:7px;padding:18px;max-width:225px;font-size:12px;pointer-events:none}#layer-legend>b{font-weight:500;font-size:14px}#layer-legend span{display:flex;align-items:center;gap:8px;margin:14px 0}#layer-legend i{width:7px;height:7px;border-radius:50%;flex-shrink:0}#layer-legend small{font-size:10px;color:#9aacb7}.is-exploded #canvas{left:240px}.is-exploded .stage-label{display:none}
dialog{border:1px solid #dce3e7;border-radius:12px;max-width:790px;width:calc(100% - 32px);padding:37px;color:var(--ink);box-shadow:0 30px 130px #101b2977;max-height:90dvh}dialog::backdrop{background:#10202b99;backdrop-filter:blur(8px)}.close{position:absolute;right:13px;top:11px;font-size:24px;border:0;padding:2px 9px}dialog h2{font-size:30px;margin:16px 0 20px;line-height:1.3}dialog p{font-size:16px;line-height:1.65;color:#566873}dialog .fields{margin:22px 0}dialog table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}td,th{text-align:left;border-bottom:1px solid #e0e6e9;padding:12px 9px;line-height:1.4}th{font-size:12px;color:#697984;background:#f7f9fa}td:first-child{color:#60727e}td b{color:#253139}.table-wrap{overflow-x:auto}dialog .actions{display:flex;gap:10px;margin-top:25px}dialog .actions>*{flex:1}textarea{min-height:90px;resize:vertical}#toast{position:fixed;left:50%;bottom:65px;max-width:calc(100vw - 32px);transform:translateX(-50%);border:1px solid #4a5b66;border-radius:7px;padding:15px 23px;background:#24363f;color:white;font-size:14px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}#error{position:absolute;z-index:5;top:42%;left:10%;right:10%;background:#fff;padding:25px;border-radius:8px;line-height:1.6}#tour-card{position:fixed;bottom:115px;left:32px;max-width:385px;width:calc(100% - 64px);padding:24px;background:#fffffff5;border:1px solid #d5dfe6;border-radius:9px;box-shadow:0 12px 55px #0004;z-index:20;backdrop-filter:blur(10px)}#tour-card h3{font-family:Manrope;font-size:21px;line-height:1.3;letter-spacing:-.4px;margin:13px 0}#tour-card p{font-size:14px;line-height:1.6;color:#52646e}.tour-exit{position:absolute;right:10px;top:9px;border:0;font-size:21px;padding:0 8px;background:transparent}.tour-actions{display:flex;gap:8px;margin-top:18px}.tour-actions button{font-size:12px;flex:1;padding:10px 8px}.tour-actions button:first-child{background:#23343f;color:white}.print-only{display:none}[hidden]{display:none!important}
@media(min-width:1650px){main{grid-template-columns:minmax(0,1fr) 440px}.control-section{padding:25px 30px}.material .sample{height:65px}.scene-title{left:42px;top:35px}#canvas{top:110px}.scene-title h1{font-size:37px}}
@media(max-width:1200px){header{gap:19px;padding:0 22px}.project{font-size:11px;letter-spacing:.7px}.project em{display:none}.brand-caption{display:none}.hint{display:none}main{grid-template-columns:minmax(0,1fr) 365px}.control-section{padding:22px}.aside-top,.estimate{padding:20px 22px}.scene-title{left:26px}.view-switch{top:auto;bottom:125px;right:22px}.scene-metrics{gap:18px;padding:0 24px}.scene-metrics .concept{display:none}.stage-label{display:none}.is-exploded #canvas{left:0;top:115px}#layer-legend{top:auto;bottom:173px;left:20px;padding:13px;max-width:210px;background:#233039cf;font-size:11px}#layer-legend span{margin:10px 0}}
@media(max-width:800px){header{height:78px;padding:0 17px;gap:12px}.brand img{height:46px;width:59px}.project{display:none}.roles{margin-left:auto}.roles button{font-size:13px;padding:9px 13px}.outline{font-size:0;padding:9px 12px}.outline span{font-size:20px;margin:0}main{display:flex;flex-direction:column;height:auto;min-height:0}#viewport{height:65dvh;min-height:440px;max-height:760px}.scene-title{top:22px;left:23px}.scene-title h1{font-size:27px}.scene-title .eyebrow{font-size:10px}.scene-title p{font-size:13px}#canvas{top:108px;bottom:125px}.scene-bottom{left:20px;bottom:66px;right:20px}.scene-metrics{height:48px;font-size:11px;padding:0 20px;gap:18px}.scene-metrics b{font-size:19px}.view-switch{bottom:119px;right:17px}.view-switch button{font-size:12px;padding:8px 10px}.scroll{overflow:visible}aside{border-left:0}.aside-top{padding:24px}.materials{grid-template-columns:repeat(3,minmax(0,1fr))}.material{font-size:14px}.material .sample{height:64px}.control-section{padding:24px}.estimate{padding:22px 24px}.estimate .price strong{font-size:35px}.price-detail{margin-bottom:15px}.compare-controls button{font-size:13px}.estimate>small{font-size:12px}footer{height:auto;min-height:80px;padding:17px;flex-wrap:wrap;gap:12px}#layer-legend{left:17px;right:17px;top:112px;bottom:auto;max-width:none;padding:10px 13px;font-size:10px;display:flex;flex-wrap:wrap;gap:8px 12px;background:#223039e8}#layer-legend>b{font-size:11px;width:100%}#layer-legend span{margin:0;font-size:10px}#layer-legend small{font-size:9px}.is-exploded #canvas{top:206px;bottom:130px}.is-exploded{min-height:570px!important}dialog{padding:28px 22px}dialog h2{font-size:25px}dialog table{font-size:13px;min-width:460px}dialog .fields{grid-template-columns:1fr}dialog .actions{flex-direction:column}#tour-card{left:17px;bottom:24px;width:calc(100% - 34px);max-width:420px}.brand-caption{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{@page{margin:16mm}body>*{display:none!important}dialog[open]{display:block!important;position:static;max-height:none;max-width:none;width:100%;box-shadow:none;border:none;padding:0;overflow:visible}dialog::backdrop{background:none}dialog .close,dialog .actions,.no-print,dialog .fields,dialog textarea,dialog .label{display:none!important}.print-only{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.print-only p{font-size:12px}.table-wrap{overflow:visible}dialog table{min-width:0;font-size:11px}dialog p,dialog .note{font-size:11px}dialog h2{font-size:22px}tr{break-inside:avoid}}

.brand img{width:190px;height:36px;object-fit:contain}.brand-caption{display:none}@media(max-width:800px){.brand img{width:145px;height:32px}}
.area-picker{display:flex;gap:6px;padding:16px 24px;border-bottom:1px solid var(--line)}.area-picker button{flex:1;font-size:14px}.area-picker [aria-pressed=true]{background:#1f5ce5;color:#fff;border-color:#1f5ce5}body.industrial-mode aside>div:not(.area-picker){display:none}#industrial-controls{padding:24px;overflow-y:auto}#industrial-controls .note{font-size:14px}#industrial-controls h2{margin-top:10px}.industrial-wide{width:100%;margin:18px 0 0}.industrial-summary{font-size:20px;padding:18px 0 0;color:#1f5ce5}.industrial-actions{display:flex;gap:8px}.industrial-actions button{flex:1;font-size:14px}body.industrial-mode #explode,body.industrial-mode #before,body.industrial-mode #tour,body.industrial-mode .roles{display:none}body.industrial-mode .view-switch{display:none}#industrial-ab{position:absolute;inset:100px 0 115px;pointer-events:none;z-index:4}.ab-labels{display:flex;justify-content:space-between;padding:14px 25px;color:white;font-size:14px}.ab-labels span{background:#182a40dc;border:1px solid #7a9ac0;padding:8px 12px;border-radius:5px}#ab-divider{position:absolute;left:50%;top:0;bottom:40px;border-left:2px solid #fff9}#industrial-ab label{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:14px;color:#dce7f6}#ab-split{position:absolute;bottom:-12px;left:10%;width:80%;pointer-events:auto}#industrial-controls select{font-size:16px}@media(max-width:800px){#industrial-controls{overflow:visible}.industrial-mode #canvas{top:108px;bottom:125px}#industrial-ab{top:108px;bottom:125px}.ab-labels{padding:4px 15px}.area-picker{position:sticky;top:0;background:#fff;z-index:5}.industrial-mode .scene-title h1{font-size:26px}}@media print{#industrial-ab{display:none!important}}
#compare-visual{grid-column:1/-1;color:#1f5ce5;font-size:14px}#ab-close{position:absolute;top:58px;right:25px;pointer-events:auto;font-size:14px;background:#203044;color:white;border-color:#5c7898}#industrial-ab{top:95px;bottom:104px}@media(max-width:800px){#industrial-ab{top:108px;bottom:125px}}

#industrial-product,#industrial-finish{display:none}#industrial-controls h2{font-family:Manrope;font-size:21px;letter-spacing:-.5px}#industrial-controls .materials{margin:12px 0 20px;grid-template-columns:repeat(3,minmax(0,1fr))}#industrial-controls .material{font-size:14px}#industrial-controls canvas.sample{width:100%;object-fit:cover;display:block}#industrial-controls .finishes{display:flex;gap:12px;margin:12px 0 20px}.industrial-finish-label{display:flex;justify-content:space-between;font-size:14px;margin-top:20px}.industrial-finish-label span{color:#63717b}.industrial-summary{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}#industrial-controls{min-height:0;flex:1}#industrial-controls .primary{width:100%}

@media(min-width:1650px){#industrial-ab{top:110px}}#industrial-controls canvas.sample{cursor:pointer;touch-action:auto}
