
:root{--ink:#233d32;--muted:#778078;--line:#e2e5dc;--paper:#fbfcf8;--accent:#d5e5a5;--soft:#eef2e5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);padding:11px 15px;border-radius:8px;font-size:12px;font-weight:550;transition:background .18s,transform .18s,border-color .18s}button:hover{background:var(--soft);border-color:#b2c0ad}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82a94e;outline-offset:3px}button:disabled{opacity:.35;cursor:default}a{color:inherit;text-decoration:none}header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);position:relative;z-index:5;background:var(--paper)}.brand{display:flex;gap:12px;align-items:center;font-size:26px;letter-spacing:5px;font-weight:650}.brand-symbol{font-family:Georgia,serif;font-size:34px;display:grid;place-items:center;letter-spacing:-5px;width:43px;height:43px;background:var(--ink);color:var(--accent);border-radius:50% 50% 8px 8px;padding-right:5px}.brand small{display:block;font-size:7px;letter-spacing:2.4px;margin-top:3px}.header-center{display:flex;align-items:center;gap:9px;font-size:11px;color:#728072}.live-dot,.pill i{width:6px;height:6px;background:#66894d;border-radius:50%;display:inline-block}.demo-tag{font-size:8px;letter-spacing:1px;padding:5px 7px;border:1px solid #d6decd;border-radius:4px;margin-left:8px}header nav{display:flex;gap:8px}.dark{background:var(--ink);color:white;border-color:var(--ink)}.dark:hover{background:#365d49;color:white}main{display:grid;grid-template-columns:minmax(0,1fr) 385px;height:calc(100dvh - 82px);min-height:700px}.stage{position:relative;overflow:hidden;background:#e8ebe2;min-width:0}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}.scene-heading{position:absolute;z-index:2;top:34px;left:37px;pointer-events:none}.eyebrow{font-size:8px;font-weight:650;letter-spacing:2px;color:#7c8873}.scene-heading h1{font-size:clamp(32px,3.3vw,54px);font-weight:400;letter-spacing:-2px;line-height:1.1;margin:15px 0 12px}.scene-heading h1 em{font-family:Georgia,serif;font-weight:400;color:#677853}.scene-heading p{font-size:11px;color:#79816f}.scene-top{position:absolute;right:25px;top:30px;display:flex;gap:8px;align-items:center}.pill{display:flex;align-items:center;gap:7px;font-size:7px;letter-spacing:1px;border:1px solid #cdd3c5;padding:10px 11px;border-radius:20px;background:#f7f8f077}.scene-top button{background:#f7f8f099;border-color:#d6dccf;border-radius:20px;font-size:10px}.scene-tools{position:absolute;top:44%;left:25px;display:flex;flex-direction:column;gap:7px;padding:6px;background:#fafcf8d9;border:1px solid #fff8;border-radius:12px;box-shadow:0 8px 24px #233d320c}.scene-tools button{width:34px;height:34px;padding:0;background:transparent;border:none;font-size:20px;font-weight:400}.scene-tools span{height:1px;background:var(--line)}button[aria-pressed=true]{background:var(--accent);border-color:#a3b386}.scene-bottom{position:absolute;bottom:25px;left:32px;right:25px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#7c8373;pointer-events:none}.scene-bottom b{padding:0 10px}.scene-bottom button{font-size:10px;background:#fbfcf4bc;pointer-events:auto}.scene-card{position:absolute;left:32px;bottom:86px;border-left:2px solid #728a58;padding:0 15px;pointer-events:none}.scene-card strong{display:block;font-size:26px;font-weight:400;letter-spacing:-1px;margin:7px 0 0}.scene-card>span:last-child{font-size:10px;color:#7c8373}.configuration{background:var(--paper);display:flex;flex-direction:column;border-left:1px solid var(--line);min-height:0;z-index:3}.config-head{padding:27px 26px 21px;display:flex;justify-content:space-between;align-items:center}.config-head h2{font-size:19px;letter-spacing:-.6px;font-weight:500;margin:8px 0 0}.step-counter{font-size:9px;color:#8c9789}#steps{display:grid;grid-template-columns:repeat(5,1fr);padding:0 21px;border-bottom:1px solid var(--line)}#steps button{font-size:9px;padding:12px 0 15px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:#8b9486}#steps button span{display:block;margin-bottom:7px;font-size:16px}#steps button.active{border-color:var(--ink);color:var(--ink)}.controls{overflow:auto;padding:25px 26px;flex:1;scrollbar-width:thin;scrollbar-color:#c9d1bf transparent}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:13px;font-weight:600}.section-title small{font-size:9px;color:#8a9482;font-weight:400}.description{font-size:11px;line-height:1.7;color:#7a8672;margin:8px 0 19px}.roof-card{display:flex;align-items:center;text-align:left;gap:12px;width:100%;padding:12px;margin-bottom:9px;border-radius:10px;background:transparent}.roof-card.active{background:#eff3e7;border-color:#99ad7a;box-shadow:inset 0 0 0 1px #99ad7a}.roof-icon{width:58px;height:51px;background:#e7ecdf;border-radius:6px;display:grid;place-items:center;flex:none}.roof-icon svg{width:48px;height:36px}.roof-card strong{display:block;font-size:12px;font-weight:550;margin-bottom:5px}.roof-card small{display:block;font-size:10px;font-weight:400;color:#86917c}.roof-card .radio{margin-left:auto;border:1px solid #b9c4ae;width:15px;height:15px;border-radius:50%;flex:none}.roof-card.active .radio{border:4px solid var(--ink);background:var(--accent)}.badge{display:inline-block;padding:4px 7px;background:#e8eedb;border-radius:4px;font-size:8px;color:#687c4b;margin-top:8px}.divider{height:1px;background:var(--line);margin:22px 0}.segments{display:flex;gap:6px}.segments button{flex:1;font-size:10px;padding:11px 6px}.segments .active{color:white;background:var(--ink);border-color:var(--ink)}.field{margin:18px 0 24px}.field-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:12px}.field-label strong{font-size:13px;font-weight:500}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:#98a18e;margin-top:8px}input[type=range]{width:100%;height:4px;accent-color:#567448;cursor:pointer;margin:8px 0}select{width:100%;padding:12px;border:1px solid #dce2d3;border-radius:7px;background:#fff;color:var(--ink);font-size:11px}label{font-size:11px}.note{padding:12px 13px;font-size:10px;line-height:1.65;background:#f0f3e8;border-radius:8px;color:#79876b}.swatches{display:flex;gap:12px;margin:16px 0}.swatch{width:49px;height:49px;border-radius:50%;padding:3px;border:1px solid transparent;background:transparent}.swatch i{display:block;width:100%;height:100%;border-radius:50%;border:1px solid #0001}.swatch.active{border-color:#637c4c;box-shadow:0 0 0 3px #e7eddb}.side-field{display:grid;grid-template-columns:68px 1fr;align-items:center;gap:8px;margin:12px 0}.side-field select{font-size:10px;padding:10px}.toggle{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.toggle span{flex:1}.toggle strong{display:block;font-size:12px;font-weight:500}.toggle small{display:block;font-size:10px;color:#8b947f;margin-top:6px}.toggle input{appearance:none;width:33px;height:20px;border-radius:30px;background:#d9dfd0;position:relative;cursor:pointer;flex:none}.toggle input:after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;background:white;border-radius:50%;transition:left .15s}.toggle input:checked{background:var(--ink)}.toggle input:checked:after{left:16px}.step-footer{padding:15px 25px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line)}.step-footer button{border:0;padding:5px;font-size:10px;background:transparent}.step-footer span{font-size:9px;color:#9aa38d}.quote{padding:22px 26px;background:#eef2e4;border-top:1px solid #dce4cf}.quote-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:12px}.quote-top small{display:block;font-size:8px;color:#8a967d;margin-top:6px}.quote-top strong{font-size:25px;font-weight:450;letter-spacing:-1px}.primary{background:var(--ink);border-color:var(--ink);color:#fff;padding:16px 18px}.primary:hover{background:#3e5942;color:#fff}.quote .primary{width:100%;display:flex;justify-content:space-between}.quote p{font-size:8px;text-align:center;color:#879278;margin:12px 0 0}.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.presets button{font-size:9px;padding:10px 3px}dialog{border:1px solid #d9e0ce;padding:36px;width:620px;max-width:calc(100vw - 24px);max-height:90dvh;border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:0 30px 100px #172a3260}dialog::backdrop{background:#182f2ac0;backdrop-filter:blur(5px)}dialog h2{font-size:32px;font-weight:450;letter-spacing:-1px;line-height:1.15}.close{position:absolute;top:15px;right:15px;padding:6px 10px;border:0;background:transparent;font-size:24px}dialog p{font-size:12px;line-height:1.7;color:#75836e}#summary-image{width:100%;height:260px;object-fit:cover;border-radius:10px;background:#e8ebe2}#summary-content dl{display:grid;grid-template-columns:1fr 1fr;font-size:12px;line-height:1.6;gap:10px}dt{color:#88917e}dd{margin:0;text-align:right}#summary-content .total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font-size:20px}.modal-actions{display:flex;gap:8px}.modal-actions>*{flex:1}dialog p.fine{font-size:9px}.cost-row{display:flex;justify-content:space-between;gap:20px;font-size:11px;padding:8px 0}.cost-row span:first-child{color:#77836c}#share-url{width:100%;padding:14px;margin:10px 0 20px;border:1px solid #cdd7c0;border-radius:8px;color:#45573e;font-size:12px}#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(100px);opacity:0;background:#233d32;color:white;border-radius:9px;padding:15px 23px;z-index:50;font-size:12px;transition:.25s;max-width:90vw}#toast.show{transform:translateX(-50%);opacity:1}#viewer-error{position:absolute;top:50%;left:15%;right:15%;padding:25px;background:white;border-radius:15px;z-index:2;font-size:13px;line-height:1.8}.night .scene-heading,.night .scene-card{color:#ebeedf}.night .scene-heading em,.night .scene-heading p,.night .scene-card>span,.night .scene-bottom{color:#b9c8a5}.night .scene-heading .eyebrow{color:#a5ba92}
@media(min-width:1600px){main{grid-template-columns:minmax(0,1fr) 420px}.controls{padding:30px}.scene-heading{top:42px;left:48px}}@media(max-width:1100px){.header-center{display:none}main{grid-template-columns:minmax(0,1fr) 350px}.scene-heading h1{font-size:34px}.scene-top{top:auto;bottom:84px;right:23px}.pill{display:none}.scene-card{bottom:125px}.scene-tools{left:14px}.scene-heading{left:25px}.config-head{padding:23px}.controls{padding:20px 23px}}@media(max-width:760px){header{height:69px;padding:0 17px}.brand{font-size:21px;letter-spacing:3px}.brand-symbol{width:33px;height:36px;font-size:27px}.brand small{font-size:5px;letter-spacing:1.5px}header nav{gap:5px}header nav button{font-size:9px;padding:9px 8px}#load{display:block;font-size:0;width:27px;padding:8px 0}#load:after{content:"↑";font-size:15px}main{display:flex;flex-direction:column;height:auto;min-height:0}.stage{height:53dvh;min-height:365px}.scene-heading{top:20px;left:22px}.scene-heading h1{font-size:28px;letter-spacing:-1px;margin:10px 0}.scene-heading p{font-size:9px}.scene-heading .eyebrow{font-size:6px;letter-spacing:1.4px}.scene-tools{top:45%;left:10px;padding:3px;gap:0}.scene-tools button{width:29px;height:29px;font-size:17px}.scene-card{display:none}.scene-bottom{bottom:12px;left:17px;right:15px;font-size:8px}.scene-bottom b{padding:0 3px}.scene-bottom button{font-size:9px;padding:9px}.scene-top{bottom:62px;right:15px}.configuration{border-left:0}.config-head{padding:20px 23px}.controls{min-height:300px;overflow:visible}.quote{padding:20px 23px}.scene-heading{pointer-events:none}.step-footer{padding:15px 23px}dialog{padding:25px}#summary-image{height:200px}.modal-actions{flex-wrap:wrap}dialog h2{font-size:29px}}@media print{body>*{display:none!important}body>dialog#summary-dialog[open]{display:block!important;position:static;width:100%;max-width:100%;max-height:none;border:0;box-shadow:none;padding:15px;overflow:visible}dialog::backdrop{display:none}dialog .close,.modal-actions{display:none}#summary-image{height:230px;object-fit:contain}#summary-content{break-inside:avoid}.fine{break-inside:avoid}@page{size:A4;margin:15mm}}
