:root{color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:#183d37;background:#f4f1e8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #f4f1e8;--ink: #183d37;--accent: #d36b3a;--muted: #65736a;--rule: #cbd0c2;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}body{margin:0;min-width:0}#root{width:100%;min-width:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button,input,select,textarea,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.45}button{color:inherit}a{color:inherit;text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p,label,li,td,th,.material-row,.bottom-note{overflow-wrap:anywhere}svg,img{max-width:100%}.app-header{min-height:100px;padding:24px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--ink)}.brand{display:flex;align-items:center;gap:15px;min-width:0}.brand-mark{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:27px Georgia,Times New Roman,serif}.brand h1,.brand>h1{margin:0;font:42px/.95 Georgia,Times New Roman,serif;letter-spacing:-2px}.brand p{margin:7px 0 0;color:var(--muted);font-size:12px;letter-spacing:.04em}.brand strong{display:block;font:42px/.95 Georgia,serif;letter-spacing:-2px}.brand div>span{display:block;margin-top:7px;font:9px/1.5 var(--mono);letter-spacing:.1em}.toolbar h1{margin:0;font:30px/1.2 Georgia,serif;letter-spacing:-.7px}.toolbar>div:first-child{display:block}.header-tag{color:var(--muted);font:10px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.12em;text-align:right}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:15px 36px;border-bottom:1px solid var(--rule)}.toolbar>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.toolbar p{margin:0;color:var(--muted);font:11px/1.6 var(--mono)}.button{min-height:39px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--rule);border-radius:2px;background:transparent;color:var(--ink);font-size:12px;font-weight:600;line-height:1.3;text-decoration:none;transition:background-color .15s,border-color .15s}.button:hover:not(:disabled){border-color:var(--ink);background:#e7e8dc}.button.primary{border-color:var(--ink);background:var(--ink);color:#fffdf5}.button.primary:hover:not(:disabled){background:#28554b}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr) 310px;align-items:stretch;min-width:0;border-bottom:1px solid var(--ink)}.workspace>*{min-width:0}.config-panel,.result-panel{padding:25px 22px 30px}.config-panel{border-right:1px solid var(--rule)}.result-panel{border-left:1px solid var(--rule)}.panel-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:23px}.panel-heading h2,.panel-heading h3{margin:0;font:25px/1.15 Georgia,Times New Roman,serif;letter-spacing:-.6px}.panel-heading>span{color:var(--muted);font:10px var(--mono)}.eyebrow{display:block;margin:0 0 9px;color:var(--accent);font:10px/1.5 var(--mono);font-weight:600;letter-spacing:.13em;text-transform:uppercase}.form-section{margin:0 0 24px;padding:0 0 23px;border:0;border-bottom:1px solid var(--rule);min-width:0}.form-section h3,.form-section legend{margin:0 0 15px;padding:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.field{display:flex;flex-direction:column;gap:7px;min-width:0;margin-bottom:14px}.field label,.select-field{font-size:12px;line-height:1.5}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field input,.field select,.select-field select,input[type=number],input[type=text],select{width:100%;min-width:0;min-height:40px;padding:9px 10px;border:1px solid #bfc7b8;border-radius:2px;background:#fbf9f2;color:var(--ink);font:12px/1.5 var(--mono)}select{padding-right:26px}.select-field{display:flex;flex-direction:column;gap:7px;min-width:0;margin-bottom:14px}.field-help{margin:0;color:var(--muted);font-size:11px;line-height:1.65}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--ink)}.status-banner{margin-top:16px;padding:12px;border-left:3px solid var(--accent);background:#eae6d9;font-size:11px;line-height:1.65;overflow-wrap:anywhere}.canvas-panel{display:flex;flex-direction:column;background:#eaece2}.canvas-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:65px;padding:14px 20px;border-bottom:1px solid var(--rule);background:var(--paper)}.canvas-toolbar h2{margin:0;font:19px Georgia,Times New Roman,serif}.canvas-toolbar p{margin:4px 0 0;color:var(--muted);font:10px/1.5 var(--mono)}.canvas-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.canvas-controls button{min-width:34px;min-height:34px;padding:6px 9px;border:1px solid var(--rule);border-radius:2px;background:var(--paper);font:11px var(--mono)}.canvas-controls button:hover{border-color:var(--ink)}.canvas-controls span{font:10px var(--mono)}.layer-list{display:flex;flex-wrap:wrap;gap:8px 15px;padding:13px 20px;border-bottom:1px solid var(--rule);background:#f0f0e7}.layer-toggle{display:inline-flex;align-items:center;gap:6px;min-height:28px;color:var(--muted);font-size:10px;line-height:1.4;cursor:pointer}.layer-toggle input{margin:0;width:13px;height:13px}.drawing-viewport{position:relative;width:100%;min-width:0;min-height:440px;max-height:650px;overflow:auto;overscroll-behavior:contain;background-color:#edece3;background-image:linear-gradient(#183d3708 1px,transparent 1px),linear-gradient(90deg,#183d3708 1px,transparent 1px);background-size:20px 20px;scrollbar-color:#a9b5a5 #eaece2;scrollbar-width:thin}.plan-svg{display:block;width:100%;min-width:450px;max-width:none;height:auto}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px 20px;border-top:1px solid var(--rule);background:var(--paper)}.legend>*{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font:10px/1.5 var(--mono)}.legend-dot{display:inline-block;flex:0 0 19px;width:19px;height:0;border-top:2px solid var(--ink)}.legend-dot.primary-line{border-color:#183d37;border-top-width:3px}.legend-dot.secondary-line{border-color:#d36b3a}.legend-dot.support-line{border-color:#9e824e;border-top-style:dashed}.legend-dot.hanger-dot{flex-basis:8px;width:8px;height:8px;border:2px solid #183d37;border-radius:50%;background:#f4f1e8}.legend-dot.board-line{border-color:#a5977a;border-top-style:dashed}.legend-dot.insulation-line{border-color:#b7aa65;border-top-width:5px}.section-preview{margin:20px;padding-top:17px;border-top:1px solid var(--rule);min-width:0;overflow-wrap:anywhere}.section-preview h3{margin:0 0 12px;color:var(--muted);font:10px var(--mono);letter-spacing:.09em;text-transform:uppercase}.section-preview svg{display:block;width:100%;height:auto}.section-preview p{font-size:12px;line-height:1.7}.section-preview strong{font:11px/1.7 var(--mono)}.field{font-size:12px}.material-row small{display:block}details{margin:18px 0}summary{cursor:pointer;font-size:12px;font-weight:600}.piece-list{max-height:350px;overflow:auto}.result-panel>.button{margin-top:18px;width:100%}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 24px;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}.stat{min-width:0;padding:16px 8px 16px 0;overflow-wrap:anywhere}.stat:nth-child(2n){padding-left:13px;border-left:1px solid var(--rule)}.stat:nth-child(n+3){border-top:1px solid var(--rule)}.stat strong,.stat>b{display:block;font:26px/1.25 var(--mono);letter-spacing:-1.3px}.stat span,.stat small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.5}.result-panel h3{margin:23px 0 10px;font-size:11px;letter-spacing:.07em;text-transform:uppercase}.material-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:12px;line-height:1.5}.material-row>:first-child{min-width:0}.material-value{flex-shrink:0;max-width:50%;text-align:right;font:12px/1.5 var(--mono);overflow-wrap:anywhere}.warning-list{margin:18px 0;padding:12px 12px 12px 27px;border-left:2px solid var(--accent);background:#eee4d6;color:#825036;font-size:11px;line-height:1.7}.warning-list li+li{margin-top:7px}.details-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px;line-height:1.5}.details-table th,.details-table td{padding:9px 5px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.details-table th{color:var(--muted);font-weight:500}.details-table td{font-family:var(--mono)}.details-table th:last-child,.details-table td:last-child{text-align:right}.piece-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;padding:0;list-style:none}.piece-list>*{padding:5px 7px;border:1px solid var(--rule);font:10px/1.5 var(--mono);overflow-wrap:anywhere;max-width:100%}.empty-state{padding:45px 20px;color:var(--muted);text-align:center;font-size:12px;line-height:1.8}.empty-state h2,.empty-state h3{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-weight:400}.feedback,.feedback[role=status],.feedback.success{margin:12px 0;padding:11px 13px;border:1px solid #b3c6b4;background:#e4ecdf;color:#214c38;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.feedback.error,.error{color:#973e29}.feedback.error{border-color:#d6aa96;background:#f1e1d5}.tabs{display:none}.bottom-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin:0;padding:19px 36px;color:var(--muted);font:10px/1.7 var(--mono)}.bottom-note p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.board-cuts{padding:24px 20px;border-top:1px solid var(--rule);background:var(--paper)}.board-cuts>p{font-size:12px;line-height:1.7}.board-cuts .panel-heading{display:block}.board-cuts .panel-heading strong{display:block;margin-top:12px;font:12px/1.6 var(--mono)}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:18px;margin-top:20px}.sheet-card{min-width:0;padding:15px;border:1px solid var(--rule);background:#fbf9f2}.sheet-card h3{font:18px Georgia,serif}.sheet-card h3 small{display:block;font:10px/1.8 var(--mono);color:var(--muted)}.sheet-card svg{width:100%;display:block;max-height:360px}.sheet-card svg text{fill:var(--ink);font-family:var(--mono)}.cut-legend{display:flex;flex-wrap:wrap;gap:12px;margin:15px 0;font-size:11px}.cut-legend span{display:flex;align-items:center;gap:5px}.cut-legend i{display:inline-block;width:20px;border-top:2px solid}.cut-legend .edge-ba{border-color:#183d37;border-width:4px}.cut-legend .edge-factory{border-color:#557c9b}.cut-legend .edge-cut{border-color:#d36b3a;border-style:dashed}.placement-list{padding:0;margin:10px 0;list-style:none}.placement-list li{padding:8px 0;border-top:1px solid var(--rule)}.placement-list small{display:block;font-size:10px;line-height:1.7;color:var(--muted)}.piece-button{border:0;background:transparent;color:var(--ink);padding:6px 0;text-align:left;font:11px/1.6 var(--mono);text-decoration:underline;text-underline-offset:3px}.piece-button[aria-pressed=true]{color:#a54d29;font-weight:700}.cut-steps{padding-left:20px;font:10px/1.8 var(--mono)}.sheet-pagination{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:15px 0;font:11px var(--mono)}.layout-comparison{padding:24px 20px;border-top:1px solid var(--rule);background:#fbf9f2}.layout-comparison h2{font:25px Georgia,serif}.layout-comparison p{font-size:12px;line-height:1.7}.comparison-scroll{overflow-x:auto;margin:15px 0}.comparison-table{border-collapse:collapse;width:100%;font:11px/1.6 var(--mono)}.comparison-table caption{text-align:left;margin-bottom:10px}.comparison-table td,.comparison-table th{padding:10px 8px;text-align:left;border-bottom:1px solid var(--rule)}.comparison-table th{font-weight:500}.comparison-table small{display:block;color:var(--accent)}.comparison-current{background:#e4ecdf}.comparison-table .button{font-size:11px}.exclusion-fields{margin:15px 0;padding:12px;border:1px solid var(--rule);min-width:0}.exclusion-fields legend{font:11px var(--mono)}.exclusion-summary{padding:16px 20px;background:#fff1d7;border-top:1px solid #d8b792;font:11px/1.7 var(--mono)}.exclusion-summary p{margin:6px 0}.exclusion-summary small{font-size:10px}.manual-axis-row{display:flex;align-items:center;gap:8px}.manual-axis-row .field{flex:1}.manual-axis-row .button{padding:8px;font-size:10px}.primary-axis-list{margin:15px 20px;font:11px/1.8 var(--mono)}.share-panel{padding:18px 24px;border-bottom:1px solid var(--rule);background:#e4ecdf}.share-panel textarea{width:100%;resize:vertical;padding:10px;font:11px/1.6 var(--mono);border:1px solid var(--rule);background:#fbf9f2;overflow-wrap:anywhere;word-break:break-all}.share-panel .button{margin-top:12px}.share-note{padding:10px 24px}@media(min-width:1500px){.app-header,.toolbar,.bottom-note{padding-left:48px;padding-right:48px}.drawing-viewport{min-height:560px}}@media(max-width:1100px)and (min-width:901px){.workspace{grid-template-columns:280px minmax(0,1fr) 310px}.config-panel,.result-panel{padding-right:16px;padding-left:16px}.canvas-toolbar,.layer-list,.legend{padding-right:12px;padding-left:12px}}@media(max-width:900px){.app-header{min-height:87px;padding:21px 22px;gap:15px}.brand h1{font-size:36px}.header-tag{font-size:9px;max-width:145px}.toolbar{padding:13px 22px}.tabs{display:flex;width:100%;border-bottom:1px solid var(--ink);background:var(--paper)}.tabs button,.tabs [role=tab]{flex:1 1 0;min-width:0;min-height:48px;padding:12px 6px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-size:12px}.tabs .active,.tabs [aria-selected=true]{border-bottom-color:var(--accent);color:var(--ink);font-weight:700;background:#eaeade}.workspace{display:grid;grid-template-columns:minmax(0,1fr)}.config-panel,.result-panel{padding:25px 22px;border:0}.workspace[data-tab=config]>.canvas-panel,.workspace[data-tab=config]>.result-panel,.workspace[data-tab=plan]>.config-panel,.workspace[data-tab=plan]>.result-panel,.workspace[data-tab=results]>.config-panel,.workspace[data-tab=results]>.canvas-panel{display:none}.drawing-viewport{min-height:390px;max-height:650px}.plan-svg{min-width:0}.bottom-note{padding:17px 22px}}@media(max-width:480px){.app-header{padding:19px 16px}.app-header>.header-tag:nth-child(2){display:none}.brand{gap:10px}.brand-mark{flex-basis:35px;width:35px;height:35px;font-size:23px}.brand h1{font-size:33px}.brand p{font-size:10px;max-width:175px;line-height:1.5}.header-tag{max-width:95px;font-size:8px;letter-spacing:.04em}.toolbar{padding:12px 16px}.toolbar .button{flex:1 1 auto}.config-panel,.result-panel{padding:23px 16px}.canvas-toolbar,.layer-list,.legend{padding-right:16px;padding-left:16px}.canvas-toolbar{align-items:flex-start}.drawing-viewport{min-height:350px}.bottom-note{padding:16px;font-size:9px}input[type=number],input[type=text],select,.field input,.field select,.select-field select{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
