:root{color:#292e29;font-synthesis:none;--accent:#a85330;--border:#dedfd6;--muted:#73796e;--paper:#f9f9f5;background:#f5f4f0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:0 0;border-radius:5px;padding:8px 11px;transition:background .15s,border-color .15s}button:hover{background:#e9e9e0;border-color:#c3c7b9}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #b65c33}input,select{background:#fff;border:1px solid #d9dcd1;border-radius:4px;width:100%;min-width:0;padding:9px 10px}input:disabled{color:#888e82;background:#efefe8}select{padding-right:25px}h1,h2,h3,p{margin:0}h1{letter-spacing:-.4px;font-size:18px;font-weight:600}h2{letter-spacing:-.6px;margin-top:10px;font-size:19px;font-weight:500}h3{margin-bottom:12px;font-size:13px;font-weight:600}small{font-size:11px}header{border-bottom:1px solid var(--border);background:var(--paper);align-items:center;gap:24px;height:76px;padding:0 25px;display:flex}.brand{letter-spacing:-1.2px;color:#272c26;padding:7px 6px;font-size:25px;font-weight:900;text-decoration:none;position:relative}.bracket{border-style:solid;border-color:#a85330;width:9px;height:9px;position:absolute}.left{border-width:0 0 2px 2px;bottom:3px;left:-3px}.right{border-width:2px 2px 0 0;top:3px;right:-3px}.heading{border-left:1px solid #d0d3c8;padding-left:23px}.heading span{color:var(--muted);margin-top:3px;font-size:11px;display:block}.prototype{color:#7b8175;letter-spacing:1px;background:#eeeee6;border-radius:3px;padding:6px 9px;font:10px ui-monospace,monospace}.header-actions{gap:7px;margin-left:auto;display:flex}.header-actions button{font-size:12px}.header-actions .icon{border-radius:50%;width:32px;padding:6px}main{grid-template-columns:296px minmax(330px,1fr) 294px;height:calc(100dvh - 108px);min-height:600px;display:grid}.parameters,.results{background:var(--paper);scrollbar-width:thin;scrollbar-color:#c7cbbe transparent;overflow-y:auto}.parameters{border-right:1px solid var(--border)}.results{border-left:1px solid var(--border)}.panel-heading{padding:24px 20px 20px}.eyebrow{color:#82897c;letter-spacing:1.35px;font:9px ui-monospace,SFMono-Regular,monospace}.parameters section{border-top:1px solid var(--border);padding:18px 20px}.segmented{background:#eeeee7;border:1px solid #dddfd3;border-radius:5px;gap:2px;margin-bottom:17px;padding:3px;display:flex}.segmented button{white-space:nowrap;color:#73796c;border:0;flex:1;padding:9px 8px;font-size:11px}.segmented button.active{color:#2b3128;background:#fff;box-shadow:0 1px 3px #00000012}.segmented.compact{margin:0 0 15px}.field{margin-top:12px}.field label,.select-field{color:#656e60;margin-bottom:6px;font-size:11px;display:block}.number-wrap{align-items:center;display:flex;position:relative}.number-wrap input{font-variant-numeric:tabular-nums;padding-right:45px;font:14px ui-monospace,monospace}.number-wrap:has(.lock) input{padding-right:60px}.unit{color:#8a9182;pointer-events:none;font-size:11px;position:absolute;right:10px}.number-wrap:has(.lock) .unit{right:36px}.lock{color:#9aa08f;border:0;width:27px;height:28px;padding:0;font-size:18px;position:absolute;right:3px}.lock.on{color:var(--accent);background:#f1e7dd}.invalid input{border-color:#b75a3b}.invalid small{color:#a85330;margin-top:3px;display:block}.fields-two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.select-field{margin-top:14px}.select-field select{color:#343b2e;margin-top:6px;font-size:12px;display:block}.section-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.section-title h3{margin:0}.pill{color:#747e69;background:#eceee5;border:0;padding:6px 8px;font-size:10px}.pill.active{color:#93472a;background:#e9ddcf}.check{color:#656e60;align-items:center;gap:7px;margin-top:13px;font-size:11px;line-height:1.5;display:flex}.check input{width:14px;height:14px;accent-color:var(--accent)}.primary{color:#fff;background:#354433;border-color:#354433;justify-content:space-between;align-items:center;display:flex}.primary:hover{background:#465b43;border-color:#465b43}.full{width:100%;margin-top:12px;padding:11px;font-size:11px}.hint{color:#8a9083;margin-top:10px;font-size:10px;line-height:1.65}.wing-tabs{gap:3px;display:flex}.wing-tabs button{width:28px;height:27px;padding:3px}.wing-tabs .active{color:#9a4c2a;background:#e8ddd0;border-color:#c1a387}.level-summary{background:#edf0e6;border:1px solid #dce3d2;justify-content:space-between;align-items:center;margin-top:17px;padding:12px;display:flex}.level-summary strong{letter-spacing:-1px;font:20px ui-monospace,monospace}.level-summary span{text-align:right;color:#68735d;font-size:10px;line-height:1.7}details{border-top:1px solid var(--border);margin-top:15px;padding-top:13px}summary{cursor:pointer;color:#59634f;font-size:11px;line-height:1.5}.badge{background:#e4e8db;border-radius:3px;margin-left:5px;padding:2px 5px}.placement{margin:0;padding:16px 20px}.text-button{text-underline-offset:3px;color:#7d624c;border:0;padding:8px 0;font-size:11px;text-decoration:underline}.reset{margin:0 20px 20px}.candidates{gap:6px;margin-top:10px;display:flex}.candidates button{text-align:left;background:#f3f4ec;flex:1;padding:10px 8px}.candidates strong,.candidates span,.candidates small{display:block}.candidates strong{margin-bottom:5px;font-size:14px}.candidates span{font-size:11px}.candidates small{color:#9b6746;margin-top:4px;font-size:10px}.height-fit{background:#f0f1e9;margin-top:12px;padding:5px 10px 12px}.viewport{background:#ecebe5;min-width:0;position:relative;overflow:hidden}.viewport-top{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:20px;left:24px;right:20px}.view-actions{pointer-events:auto;gap:8px;display:flex}.view-actions>button{background:#f8f8f1cf}.view-actions .segmented{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f7f0c9;margin:0}.view-actions .segmented button{padding:7px 16px}.viewport-bottom{pointer-events:none;color:#788170;justify-content:space-between;gap:10px;font-size:10px;display:flex;position:absolute;bottom:18px;left:24px;right:22px}.viewport-bottom span:first-child{align-items:center;gap:7px;display:flex}.viewport-bottom i{background:#b7653e;border-radius:50%;width:6px;height:6px;display:block}.dimension-label{white-space:nowrap;background:#faf9f2e8;border:1px solid #d2c5b3;padding:4px 7px;font:11px ui-monospace,monospace;box-shadow:0 1px 3px #0000000a}.wing-tag{color:#69725f;white-space:nowrap;background:#f9f8efed;border:1px solid #dadacd;padding:5px 9px;font-size:12px}.wing-tag.selected{color:#995f3c;border-color:#b67a51}.wing-tag small{padding-left:6px;font:10px ui-monospace,monospace}.handle-label{pointer-events:none;color:#97502e;white-space:nowrap;background:#f5f2e8c9;padding:2px 4px;font:9px ui-monospace,monospace}.origin-label{color:#8a927d;pointer-events:none;background:#ecebe5b8;padding:2px 3px;font:9px ui-monospace,monospace}.highlight-chip{color:#975e39;background:#fbf9f1ef;border:1px solid #d5c1ab;border-radius:4px;padding:6px 10px;font-size:11px;position:absolute;bottom:45px;left:24px}.highlight-chip button{border:0;padding:0 0 0 12px}.notice{z-index:20;background:#fff6e8;border:1px solid #e0c295;border-radius:5px;padding:12px 36px 12px 14px;font-size:12px;line-height:1.6;position:absolute;top:75px;left:24px;right:24px;box-shadow:0 3px 16px #0000000d}.notice button{border:0;padding:2px 4px;position:absolute;top:9px;right:10px}.help{z-index:22;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafaf4f5;border:1px solid #d2d7c6;border-radius:6px;max-width:450px;padding:25px;position:absolute;inset:75px 30px auto;box-shadow:0 6px 30px #00000010}.close{border:0;padding:3px 8px;position:absolute;top:10px;right:10px}.help dl{grid-template-columns:1fr 1.5fr;gap:10px;font-size:11px;display:grid}.help dt{color:#536148}.help dd{color:#7b8374;margin:0}.help p{color:#838a7c;margin-top:15px;font-size:11px;line-height:1.7}.area-card{background:#e9eddf;border:1px solid #d9e0ce;border-radius:6px;margin:0 20px;padding:17px}.area-card>span{color:#727e63;font-size:11px}.area-card>strong{letter-spacing:-1.8px;margin:10px 0 13px;font:30px ui-monospace,monospace;display:block}.area-card strong small{letter-spacing:0;color:#859171;font:13px sans-serif}.delta{color:#ac6a3d;border-top:1px solid #d1d8c3;justify-content:space-between;gap:5px;padding-top:10px;font:10px ui-monospace,monospace;display:flex}.delta.exact{color:#476f48}.area-card p{color:#869078;margin-top:10px;font-size:9px}.scope{margin:20px}.metric-list{border-top:1px solid var(--border)}.metric{text-align:left;background:0 0;border:0;border-bottom:1px solid #e7e9e0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px 20px;display:flex}.metric span{color:#626d58;font-size:11px;line-height:1.5}.metric span small{color:#a4ab98;margin-left:5px}.metric strong{white-space:nowrap;letter-spacing:-.6px;font:14px ui-monospace,monospace}.metric strong small{color:#9ca58e;letter-spacing:0;font:10px sans-serif}.metric.active{background:#ece1d2}.metric.sub{padding-left:30px}.metric.sub span{color:#89917f;font-size:10px}.metric.sub strong{font-size:12px}.height-results{margin:15px 20px}.height-results>div{color:#7a8570;justify-content:space-between;align-items:center;margin-top:13px;font-size:10px;display:flex}.height-results strong{color:#47503e;font:13px ui-monospace,monospace}.height-results small{color:#89947b;font-size:10px}.roof-levels{border-top:1px solid var(--border);margin:20px;padding-top:15px}.roof-levels h3{font-size:11px}.roof-levels>div{color:#7d8772;justify-content:space-between;margin-top:9px;font-size:10px;display:flex}.roof-levels strong{font:11px ui-monospace,monospace}.method-note{color:#949b8b;margin:18px 20px;font-size:10px;line-height:1.7}.method-note summary{font-size:10px}.method-note p{margin-top:8px}footer{border-top:1px solid var(--border);letter-spacing:.3px;color:#939b8a;background:#f9f9f5;justify-content:space-between;align-items:center;height:32px;padding:0 24px;font:9px ui-monospace,monospace;display:flex}@media (min-width:1650px){main{grid-template-columns:322px minmax(400px,1fr) 320px}.parameters section,.panel-heading{padding-left:25px;padding-right:25px}}@media (max-width:1150px){main{grid-template-columns:260px minmax(260px,1fr) 255px}.parameters section,.panel-heading{padding-left:15px;padding-right:15px}.metric{padding:12px 15px}.metric strong{font-size:12px}.prototype{display:none}.header-actions button{padding:7px}.heading{padding-left:16px}.viewport-bottom{flex-direction:column;gap:5px}}@media (max-width:850px){header{gap:15px;height:64px;padding:0 16px}.heading h1{font-size:15px}.heading span,.header-actions button span{display:none}.brand{font-size:21px}.header-actions{gap:4px}.header-actions button{font-size:10px}.header-actions button:nth-child(2){display:none}main{grid-template-columns:1fr 1fr;height:auto;min-height:0;display:grid}.viewport{grid-area:1/1/auto/-1;height:60dvh;min-height:390px}.parameters,.results{grid-row:2;max-height:none;overflow:visible}.viewport-top{top:15px;left:16px;right:16px}.panel-heading{padding:20px 15px}.eyebrow{font-size:8px}.area-card{margin:0 12px;padding:13px}.scope,.height-results,.roof-levels,.method-note{margin-left:12px;margin-right:12px}.area-card>strong{font-size:24px}.metric{padding:11px 12px;display:block}.metric strong{margin-top:5px;font-size:14px;display:block}.metric.sub{padding-left:20px}.fields-two{grid-template-columns:1fr}.segmented button{padding:7px 3px;font-size:9px}h2{font-size:16px}.section-title{flex-wrap:wrap}.hint{font-size:9px}.delta{flex-wrap:wrap}.parameters section{padding:15px 12px}.candidates{flex-direction:column}.number-wrap input{font-size:13px}footer{flex-wrap:wrap;gap:8px;height:auto;min-height:40px;padding:10px 15px}footer span:last-child{display:none}.help{padding:18px;inset:65px 15px auto}.viewport-bottom{left:16px}.header-actions button:nth-child(3){display:none}}.touch-handle{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;background:0 0;border:0;place-items:center;width:48px;min-width:48px;height:48px;min-height:48px;padding:0;display:grid;position:relative}.touch-handle:hover{background:0 0;border:0}.touch-handle:active{cursor:grabbing}.touch-dot{color:#fff;pointer-events:none;background:#b65c33;border:2px solid #fff8e9;border-radius:50%;place-items:center;width:24px;height:24px;font-size:15px;display:grid;box-shadow:0 2px 7px #0003}.touch-handle:active .touch-dot{background:#87401f;transform:scale(1.15)}.touch-caption{color:#925331;white-space:nowrap;pointer-events:none;background:#fbf9f0ed;border:1px solid #ddc3aa;border-radius:3px;padding:2px 4px;font-size:9px;position:absolute;top:39px}.touch-height{transform:translateY(-42px)}.touch-height:before{content:"";pointer-events:none;border-left:1px dashed #b65c3380;height:30px;position:absolute;top:36px;left:23px}.touch-height .touch-caption{top:-6px}.viewport canvas{touch-action:none}.touch-height-b{transform:translate(-54px,12px)}.touch-height-b:before{transform-origin:0;border-top:1px dashed #b65c3380;border-left:0;width:42px;height:0;top:17px;left:36px;transform:rotate(-12deg)}.touch-dot svg{pointer-events:none;flex-shrink:0;display:block}
