:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#313c32;background:#f6f5f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-weight:400;--forest:#3d5a43;--accent:#657e55;--line:#e4e6dc;--muted:#899081;--canvas:#f4f4ed;--paper:#fffefa}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #7e9568;outline-offset:3px}button{border:0;background:none}input,select{min-width:0}input:focus,select:focus{outline:2px solid #97ad80;outline-offset:-1px}input[type=checkbox]{accent-color:var(--forest)}.app{height:100dvh;display:flex;overflow:hidden}.rail{width:66px;flex-shrink:0;border-right:1px solid #dedfd4;background:#eceee4;display:flex;flex-direction:column;align-items:center;z-index:5}.rail-logo{height:77px;display:flex;align-items:center;text-decoration:none}.logo-mark{width:35px;height:35px;border-radius:9px;background:#425a3e;color:#f3f4e8;display:grid;place-items:center}.logo-mark svg{width:25px;height:25px}.rail-nav{display:flex;flex-direction:column;gap:15px;padding-top:33px}.rail-nav button{height:39px;width:39px;border-radius:8px;color:#8a9381;display:grid;place-items:center;position:relative}.rail-nav button:hover{background:#e0e5d6}.rail-nav button.active{color:#435f3b;background:#dce4cc}.rail-nav button.active:before{content:"";position:absolute;left:-14px;height:22px;width:3px;background:#637d50;border-radius:0 3px 3px 0}.rail-bottom{margin-top:auto;padding-bottom:21px}.rail-bottom span{display:grid;place-items:center;height:30px;width:30px;border:1px solid #bec8b3;border-radius:50%;font-size:12px;letter-spacing:1px;color:#607454}.app-shell{flex:1;min-width:0;display:flex;flex-direction:column}.header{height:76px;flex-shrink:0;background:#fffefa;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:15px}.brand{font-family:Georgia,Times New Roman,serif;font-size:24px;letter-spacing:-.9px;color:#344b36;white-space:nowrap}.brand>span{font-style:italic;margin-left:5px;font-weight:400}.brand i{font-family:inherit;font-style:normal;font-size:12px;letter-spacing:1.3px;color:#92988a;margin-left:18px;border-left:1px solid #dde1d4;padding-left:17px}.header-actions{display:flex;align-items:center;gap:13px}.saved-state{font-size:12px;color:#8e9886;display:flex;align-items:center;gap:5px;margin-right:6px;white-space:nowrap}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:9px 14px;border-radius:6px;font-size:12px;white-space:nowrap;font-weight:500}.primary{background:#435f40;border:1px solid #435f40;color:#fffefa;box-shadow:0 1px 2px #263f3220}.primary:hover{background:#344c32}.secondary{background:#fffefa;border:1px solid #dfe3d6;color:#59644e}.secondary:hover{background:#f0f3e9}.icon-button{height:33px;width:33px;display:grid;place-items:center;border-radius:5px;color:#7b8773}.icon-button:hover{background:#edf0e6}.export-anchor{position:relative}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;cursor:default}.export-menu{position:absolute;top:45px;right:0;width:255px;padding:6px;background:#fffefb;border:1px solid #dde4d5;box-shadow:0 15px 40px #35482a20;border-radius:9px;z-index:30}.export-menu>button{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:13px 10px;border-radius:5px;color:#68785e}.export-menu>button:hover{background:#eff3e7}.export-menu>button>span{flex:1;font-size:12px;color:#3d4d36}.export-menu small{display:block;font-size:12px;color:#969e8d;margin-top:4px}.project-bar{height:67px;flex-shrink:0;background:#fffefa;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;gap:15px}.project-identity{display:flex;align-items:center;gap:11px;min-width:0}.project-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #e4e8dd;border-radius:6px;color:#84916e}.project-identity>button{display:flex;gap:10px;align-items:center;padding:0;font-size:12px;letter-spacing:.3px;max-width:240px}.project-identity b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-address{font-size:11px;letter-spacing:.65px;color:#9aa18f;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-pill{font-size:11px;padding:4px 7px;border:1px solid #dedbc9;border-radius:4px;color:#948b64;white-space:nowrap}.top-tabs{height:100%;display:flex;gap:25px;white-space:nowrap}.top-tabs button{font-size:12px;color:#89917e;padding:0 2px;position:relative}.top-tabs button.active{color:#4a623d;font-weight:600}.top-tabs button.active:after{content:"";height:2px;background:#77905b;position:absolute;bottom:0;left:2px;right:2px}.main-layout{flex:1;min-height:0;display:flex}.parameters{width:291px;flex-shrink:0;background:#fffefa;border-right:1px solid var(--line);display:flex;flex-direction:column}.panel-title{padding:24px 23px 21px;display:flex;align-items:center;justify-content:space-between;color:#829273;border-bottom:1px solid #eceee5}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:500;color:#9aa18f}.panel-title h2{font-size:16px;color:#3e4c35;font-weight:500;margin:8px 0 0;letter-spacing:.3px}.param-scroll{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:#d8dece transparent}.param-section{padding:0 23px;border-bottom:1px solid #eceee5}.param-section summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:20px 0;font-size:12px;font-weight:600}.param-section summary::-webkit-details-marker{display:none}.param-section summary>span{display:flex;align-items:center;gap:9px}.param-section summary i{font-style:normal;font-size:11px;font-weight:400;color:#a4ad96}.param-section summary>svg{color:#98a48b;transform:rotate(-90deg)}.param-section[open] summary>svg{transform:none}.section-fields{padding-bottom:20px}.shape-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.shape-picker button{display:flex;align-items:center;flex-direction:column;gap:8px;border:1px solid #e2e6d9;border-radius:5px;padding:10px 0;color:#a1a691;background:#fffefa;transition:.15s}.shape-picker button span{font-size:11px;white-space:nowrap}.shape-picker button.selected{background:#edf2e2;color:#5e7749;border-color:#8fa66f;box-shadow:inset 0 0 0 .4px #8fa66f}.shape-picker button:hover{border-color:#a6b990}.field-note{font-size:11px;line-height:1.8;color:#a0a791;margin:10px 0 0}.inline-option{display:flex;align-items:center;justify-content:space-between;margin-top:13px;font-size:12px;color:#8a957d}.segmented{display:flex;border:1px solid #e1e5d8;background:#ecefe5;border-radius:6px;padding:3px;gap:2px}.segmented button{padding:7px 12px;font-size:12px;color:#95a087;display:flex;align-items:center;gap:7px;border-radius:4px}.segmented button.active{background:#fffefa;color:#4d6640;box-shadow:0 1px 4px #263d1a12}.segmented.small{padding:2px}.segmented.small button{font-size:11px;padding:5px 13px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 12px}.field{display:block;font-size:12px;min-width:0}.field>span{display:flex;align-items:center;justify-content:space-between;color:#8a937f;margin-bottom:8px}.field>span small{font-family:Georgia,serif;font-size:12px;font-style:italic;color:#acb59e}.input-shell{border:1px solid #e0e5d6;border-radius:5px;display:flex;align-items:center;height:37px;background:#fffefa;overflow:hidden;transition:border-color .15s}.input-shell:focus-within{border-color:#8ba271;box-shadow:0 0 0 2px #90a96f12}.input-shell input{width:100%;border:0;background:transparent;padding:9px 0 9px 10px;color:#566744;font-size:13px;font-variant-numeric:tabular-nums;font-weight:500;outline:none}.input-shell input:focus{outline:none}.input-shell input::-webkit-inner-spin-button{display:none}.input-shell i{font-size:11px;color:#b1b89f;font-style:normal;padding:0 9px 0 3px}.field select,.field>input{width:100%;border:1px solid #e0e5d6;border-radius:5px;background:#fffefa;padding:10px;font-size:12px;color:#566744;margin-bottom:12px}.text-action{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#778f58;padding:0;margin-top:12px}.text-action:hover{color:#3e6134}.divider{height:1px;background:#e9eddf;margin:19px 0}.fixed-field{font-size:12px;color:#8c977f}.fixed-field b{display:block;font-size:13px;font-weight:500;margin-top:19px;color:#526940}.fixed-field small{font-size:11px;color:#a2ac93}.source-tag{display:block;color:#648456;font-size:10px;margin-top:6px;font-style:normal}.param-footer{height:43px;flex-shrink:0;border-top:1px solid #e5e9dc;display:flex;align-items:center;gap:5px;padding:0 23px;color:#99a28c;font-size:11px}.param-footer>span:last-child{margin-left:auto}.green-dot{height:5px;width:5px;border-radius:50%;background:#879f69;display:inline-block;flex-shrink:0}.main-content{flex:1;min-width:0;overflow:auto;background:#f6f6f0;scrollbar-width:thin}.workspace{height:100%;min-height:680px;display:flex;flex-direction:column;padding:23px 28px 0}.workspace-toolbar{height:35px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.quiet-label{font-size:11px;color:#a4ac98;display:flex;align-items:center;gap:6px}.canvas-area{flex:1;position:relative;min-height:370px;overflow:hidden;touch-action:none}.canvas-title{position:absolute;left:7px;top:32px;z-index:1;pointer-events:none}.canvas-title h3{font-size:21px;letter-spacing:.5px;font-weight:400;margin:10px 0 8px;color:#56624a}.canvas-title p{font-size:12px;color:#a0a890;margin:0}.model{height:100%;width:100%;position:absolute;top:0;right:0;bottom:0;left:0}.model svg{width:100%;height:100%;display:block}.model.orbit{cursor:grab}.model.orbit:active{cursor:grabbing}.orientation{position:absolute;bottom:26px;left:9px;width:55px;height:55px}.orientation svg{width:100%;height:100%;font-size:10px;fill:#949f85}.canvas-controls{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;background:#fffefacf;border:1px solid #e2e7d6;border-radius:6px;padding:4px;width:37px;box-shadow:0 3px 9px #53624405}.canvas-controls button{padding:7px 3px;display:grid;place-items:center;color:#889876}.canvas-controls>span{font-size:10px;color:#a4b092;padding:2px 0}.canvas-controls hr{width:20px;border:0;border-top:1px solid #e3e8d9;margin:3px 0}.canvas-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;font-size:11px;color:#a0aa92;white-space:nowrap}.model-options{height:49px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:12px;color:#9ba38e;border-top:1px solid #e4e8db}.model-options>div{display:flex;align-items:center;gap:13px}.model-options>div>span{margin-right:7px;font-size:11px}.model-options label{display:flex;align-items:center;gap:5px;color:#849173;font-size:11px;cursor:pointer}.model-options input{width:11px;height:11px}.model-options>span{font-size:11px;color:#aeb6a0}.metric-ribbon{display:grid;grid-template-columns:repeat(4,1fr);background:#fffefa;border:1px solid #e4e8da;border-radius:7px;min-height:100px;flex-shrink:0;padding:21px 0}.metric-ribbon>div{border-right:1px solid #e6eadf;padding:0 24px}.metric-ribbon>div:last-child{border:0}.metric-ribbon>div>span{font-size:11px;color:#a0a98f;display:flex;align-items:center;justify-content:space-between;gap:5px;white-space:nowrap}.metric-ribbon i{font-family:Georgia,serif;font-style:italic;color:#bac3ab}.metric-ribbon strong{font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:400;color:#546549;margin-top:10px;display:block;line-height:1}.metric-ribbon small{font-family:Arial,sans-serif;font-size:12px;color:#a7b097;margin-left:7px}.design-note{display:flex;align-items:center;gap:8px;color:#a4ad96;min-height:46px;flex-shrink:0}.design-note svg{flex-shrink:0}.design-note p{font-size:11px;line-height:1.6}.app-footer{height:31px;flex-shrink:0;background:#f0f2e8;border-top:1px solid #e2e6d7;display:flex;align-items:center;justify-content:space-between;padding:0 23px;font-size:10px;letter-spacing:.6px;color:#97a386}.app-footer>span{display:flex;align-items:center;gap:7px}.app-footer i{font-style:normal;margin-left:13px;padding-left:13px;border-left:1px solid #d7dfca;color:#a9b299;letter-spacing:.4px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-heading h2{font-size:23px;font-weight:400;color:#42573a;margin:10px 0}.page-heading p{font-size:12px;color:#939e86;line-height:1.8;margin:0}.materials-page,.checks-page,.import-page{padding:33px 32px 45px;max-width:1400px;margin:auto}.material-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fffefa;border:1px solid var(--line);border-radius:7px;margin:25px 0}.material-stats>div{padding:19px 24px;border-right:1px solid var(--line)}.material-stats>div:last-child{border:0}.material-stats span{font-size:12px;color:#99a388}.material-stats b{display:block;font-family:Georgia,serif;font-size:28px;font-weight:400;color:#577148;margin-top:8px}.material-stats small{font-size:12px;margin-left:9px;color:#a3ac94}.content-tabs{display:flex;gap:28px;border-bottom:1px solid #dde3d2;margin-bottom:23px}.content-tabs button{font-size:12px;color:#9ba68c;padding:12px 0}.content-tabs button.active{color:#49643d;border-bottom:2px solid #6e8a52}.table-wrap{overflow:auto;border:1px solid #e0e6d6;border-radius:6px;background:#fffefa}.parts-table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.parts-table th{text-align:left;background:#f0f3e8;color:#89997a;font-size:12px;font-weight:500;padding:13px 15px}.parts-table td{border-bottom:1px solid #edf0e7;padding:13px 15px;color:#717f60}.parts-table td small{display:block;font-size:10px;color:#a9b19a;margin-top:5px;white-space:normal;max-width:260px;line-height:1.5}.parts-table tr:last-child td{border:0}.parts-table tr:hover td{background:#f8f9f2}.mono{font-variant-numeric:tabular-nums;letter-spacing:.3px}.part-code{font-size:12px;color:#846e4c;background:#f3eadb;border:1px solid #e8d9c0;border-radius:4px;display:inline-block;padding:4px 6px;min-width:30px;text-align:center}.part-code.riser{background:#ecf0e4;color:#788966;border-color:#dbe3cf}.part-code.stringer{background:#e8eddf;color:#627d48;border-color:#d1ddbf}.footnote{font-size:12px;color:#a0aa90;line-height:1.8;margin-top:17px}.nest-heading{display:flex;justify-content:space-between;align-items:center;margin:29px 0 15px}.nest-heading h3{font-size:14px;font-weight:500;color:#637951}.nest-heading small{font-size:12px;color:#a2af90;font-weight:400;padding-left:8px}.nest-heading>span{font-size:12px;color:#99a889}.nest-sheets{display:grid;grid-template-columns:1fr 1fr;gap:15px}.nest-sheet{background:#fffefa;border:1px solid #e0e6d5;border-radius:7px;padding:17px}.nest-sheet>span{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:#8d9d7b;margin-bottom:13px}.nest-sheet small{font-size:11px;letter-spacing:.3px;color:#adb69b}.nest-sheet svg{display:block;max-height:240px;width:100%}.inline-notice{display:flex;gap:10px;align-items:center;padding:15px;background:#efefdf;color:#93926d;font-size:12px;border-radius:5px;line-height:1.7}.inline-notice svg{flex-shrink:0}.inline-notice .text-action{margin:0 0 0 auto;white-space:nowrap}.error-notice{border:1px solid #e9c5b6;background:#fbefe6;color:#ae6d51;padding:15px;font-size:12px;border-radius:6px;margin-bottom:15px;line-height:1.7}.stringer-card{border:1px solid #e0e6d5;background:#fffefa;border-radius:7px;margin-bottom:20px;padding:23px}.stringer-card h3{font-size:14px;color:#647b51}.stringer-card h3 span{font-size:12px;font-weight:400;margin-left:10px;color:#a9b19b}.stringer-card svg{width:100%;height:280px}.stringer-values{display:flex;gap:30px;font-size:12px;color:#9eaa8d;border-top:1px solid #edf0e6;padding-top:15px}.stringer-values b{color:#6f845a;font-weight:500;display:block;margin-top:7px}.checks-page>.page-heading{display:block}.check-banner{display:flex;align-items:center;gap:16px;padding:22px;background:#eaf0df;border:1px solid #d9e4ca;border-radius:7px;margin-bottom:22px;color:#738d55}.check-banner b{font-size:13px;font-weight:500;color:#536d3d}.check-banner p{font-size:12px;color:#929e81;margin:7px 0 0}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.check-card{display:flex;align-items:flex-start;gap:12px;background:#fffefa;border:1px solid #e2e7d8;border-radius:7px;padding:18px}.check-card.failed{border-color:#dfb99e;background:#fff9f2}.check-card h4{font-size:12px;margin:2px 0 12px;color:#8a9978;font-weight:400}.check-card strong{font-family:Georgia,serif;font-size:22px;font-weight:400;color:#5a714b}.check-card p{font-size:11px;margin:8px 0 0;color:#a5ae97;line-height:1.6}.check-card>small{margin-left:auto;font-size:11px;white-space:nowrap;color:#a3b18c;margin-top:2px}.status-icon{height:25px;width:25px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.status-icon.ok{background:#eaf1df;color:#789859}.status-icon.review{background:#f2eddd;color:#b8a96d}.status-icon.fail{background:#f9e4d9;color:#b57451}.review-box{border:1px solid #e0e5d6;background:#f2f3e9;border-radius:6px;padding:21px 24px;margin-top:23px}.review-box h3{font-size:13px;font-weight:500;color:#7c8d65}.review-box ul{padding-left:16px;font-size:12px;color:#99a38a;line-height:2.1}.review-box a{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#7c9460;text-decoration:underline;text-underline-offset:3px}.review-box p{font-size:12px;color:#a1ab91;line-height:1.7}.invalid-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:45px;color:#a27653}.invalid-state h2{font-size:20px;font-weight:400}.invalid-state p{font-size:13px;line-height:1.7;margin:5px 0}.invalid-state>span{font-size:12px;color:#a2ad92;margin-top:25px}.toast{position:fixed;bottom:50px;left:50%;transform:translate(-50%);background:#405a39;color:#f3f7eb;padding:14px 18px;display:flex;align-items:center;gap:10px;border-radius:8px;font-size:12px;box-shadow:0 6px 35px #2f452830;z-index:80;max-width:90vw}.toast>button{color:#d6e3c7;margin-left:10px;display:flex}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#20331b40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:60}.project-modal{width:380px;max-width:90vw;background:#fffefa;border-radius:12px;padding:25px;box-shadow:0 20px 80px #28382020}.project-modal>div{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.project-modal h2{font-size:19px;font-weight:400}.project-modal>.field{margin-bottom:10px}.wide{width:100%}.dropzone{border:1.5px dashed #bdcda9;border-radius:10px;background:#f0f4e6;padding:50px 20px;text-align:center;cursor:pointer;transition:.2s}.dropzone:hover{border-color:#86a364;background:#e9f0df}.upload-icon{width:74px;height:74px;border:1px solid #cfdebd;border-radius:20px;display:grid;place-items:center;color:#7c9b5c;background:#e5eed9;margin:0 auto 22px}.dropzone h3{font-size:19px;color:#667f50;font-weight:400;letter-spacing:.4px}.dropzone p{font-size:12px;color:#94a77f}.dropzone>span{font-size:12px;color:#adba99;display:block;margin-top:22px}.demo-file{display:flex;width:100%;align-items:center;gap:17px;background:#fffefa;border:1px solid #e1e8d5;border-radius:8px;text-align:left;margin-top:18px;padding:20px 25px;color:#7f9668}.demo-file:hover{background:#f9faf2;border-color:#b6c99d}.file-icon{width:46px;height:50px;border-radius:6px;background:#f2ead9;display:grid;place-items:center;color:#b8a06a}.demo-file b{font-size:12px;color:#677d52;font-weight:500;display:block;margin-bottom:7px}.demo-file small{font-size:12px;color:#a2b091}.demo-file>svg{margin-left:auto}.import-explainer{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:35px}.import-explainer i{font-style:normal;font-size:12px;color:#acb89c;display:block;margin-bottom:15px}.import-explainer b{font-size:12px;color:#7a9063;font-weight:500}.import-explainer p{font-size:12px;line-height:1.9;color:#acb79b}.import-loading{text-align:center;padding:100px 0;color:#8da372}.import-loading h3{font-size:15px;font-weight:400;margin:25px 0}.import-loading p{font-size:12px;color:#a6b893}.import-loading progress{width:260px;accent-color:#8ca46d;height:7px}.spin{animation:spin 1.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-workbench{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:20px}.pdf-column{min-width:0}.pdf-toolbar{height:42px;background:#fffefa;border:1px solid #e1e6d6;border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:space-between;padding:0 10px;gap:10px}.pdf-toolbar>span{display:flex;align-items:center;gap:7px;max-width:200px;font-size:11px;color:#9ba88a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-toolbar>div{display:flex;align-items:center;gap:5px}.pdf-toolbar select{font-size:11px;border:0;background:none;color:#829b69;padding:5px;max-width:110px}.pdf-toolbar button{color:#8da877;display:flex;padding:3px}.pdf-scroll{padding:12px;background:#e9ede1;border:1px solid #e1e6d6;border-top:0;min-height:300px;max-height:680px;overflow:auto}.pdf-paper{width:100%;position:relative;background:#fff;box-shadow:0 2px 8px #38482e14}.pdf-paper canvas{width:100%;height:100%;display:block}.measurement-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.measure-mode-label{position:absolute;left:50%;bottom:7px;transform:translate(-50%);font-size:11px;background:#455d3dcf;color:#fff;border-radius:3px;padding:6px 9px;white-space:nowrap;pointer-events:none}.measure-tools{display:flex;align-items:center;gap:10px;color:#93a17f;padding:10px 0;font-size:11px}.measure-tools button{padding:5px 7px;border-radius:4px}.measure-tools button.active{background:#e2eccf;color:#688949}.measure-settings{display:flex;align-items:center;gap:8px;font-size:11px;flex-wrap:wrap;padding:10px;background:#f0f2e5;border-radius:5px;color:#8ca072}.measure-settings input{width:75px;border:1px solid #d4dfc3;border-radius:4px;padding:5px;background:#fff;color:#657f4b;font-size:12px}.measure-settings select{font-size:11px;border:1px solid #d4dfc3;border-radius:4px;padding:6px;max-width:130px;background:#fffefa;color:#758f5b}.measure-settings .primary{font-size:11px;min-height:27px;padding:5px 9px;margin-left:auto}.extraction-panel{border:1px solid #dde6d0;border-radius:7px;background:#fffefa;padding:19px;height:fit-content}.extraction-title h3{font-size:14px;color:#6b8155;font-weight:500;margin:9px 0 17px}.extraction-title small{display:inline-block;font-size:12px;background:#e6efd9;padding:2px 5px;margin-left:5px;border-radius:4px;color:#809b60}.house-picker{display:flex;gap:5px;border-bottom:1px solid #e7ebdf;margin-bottom:10px;padding-bottom:12px;flex-wrap:wrap}.house-picker button{font-size:11px;border:1px solid #e3e9d9;color:#9aa98a;padding:5px 10px;border-radius:4px}.house-picker button.active{background:#eaf1de;border-color:#becfa7;color:#759452}.candidate{border-bottom:1px solid #e7ecdf;padding:13px 0 17px}.candidate>label{display:flex;align-items:center;gap:6px;font-size:12px;color:#8d9c7a}.candidate input{width:12px;height:12px;margin:0}.candidate strong{margin-left:auto;font-size:17px;font-family:Georgia,serif;font-weight:400;color:#6a8750}.candidate strong small{font-size:10px;font-family:inherit;color:#a8b495;margin-left:3px}.candidate p{font-size:11px;color:#a0af8c;line-height:1.7;background:#f7f8ef;border-radius:3px;padding:7px 8px;overflow-wrap:anywhere}.candidate>button{display:flex;align-items:center;gap:5px;color:#9aaa86;font-size:10px;padding:0;width:100%}.candidate>button>span{margin-right:auto;color:#a8b49a}.pending-fields{padding:18px 0}.pending-fields h4{font-size:12px;font-weight:500;display:flex;gap:5px;align-items:center;color:#a69660;margin:0 0 10px}.pending-fields p{font-size:11px;color:#a6ad94;line-height:1.9}.import-page{padding:33px 28px 40px}.import-empty{max-width:780px;margin:auto}.import-page>.page-heading p{font-size:12px}.import-page>.page-heading h2{font-size:23px}@media(min-width:1600px){.parameters{width:321px}.param-section{padding:0 27px}.panel-title{padding-left:27px;padding-right:27px}.workspace{padding:27px 40px 0}.canvas-title{top:43px}.metric-ribbon{min-height:115px}.canvas-area{min-height:400px}.metric-ribbon strong{font-size:34px}.model{padding:0 40px}.import-workbench{grid-template-columns:minmax(0,1fr) 300px}.pdf-scroll{min-height:480px}}@media(max-width:1200px){.project-address{display:none}.top-tabs{gap:17px}.header{padding:0 20px}.brand i{display:none}.parameters{width:267px}.param-section{padding:0 19px}.panel-title{padding-left:19px;padding-right:19px}.workspace{padding-left:20px;padding-right:20px}.import-workbench{grid-template-columns:minmax(0,1fr)}.extraction-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.extraction-title,.house-picker,.pending-fields{grid-column:1/-1}.candidate{border:1px solid #e7ecdf;padding:12px}.import-page,.materials-page,.checks-page{padding:25px}.view-tabs button{padding:7px 9px}.quiet-label{display:none}.metric-ribbon>div{padding:0 17px}.metric-ribbon strong{font-size:26px}.canvas-title h3{font-size:18px}}@media(max-width:900px){.saved-state,.project-address,.brand i,.save-button{display:none}.rail{width:53px}.rail-nav button.active:before{left:-7px}.project-bar{padding:0 19px;align-items:flex-start;height:93px;flex-direction:column;justify-content:center;gap:6px}.project-identity{height:35px}.top-tabs{height:37px;gap:23px}.parameters{width:245px}.workspace{min-height:660px;padding:18px 15px 0}.segmented button{font-size:11px;gap:4px;padding:7px 8px}.segmented button svg{width:12px}.metric-ribbon>div{padding:0 11px}.metric-ribbon strong{font-size:23px}.metric-ribbon>div>span{font-size:10px}.metric-ribbon i{display:none}.metric-ribbon small{font-size:10px;margin-left:4px}.canvas-title{top:25px}.canvas-title h3{font-size:16px}.canvas-title p{font-size:11px}.check-grid{grid-template-columns:1fr}.material-stats>div{padding:15px 10px}.material-stats span{font-size:11px}.nest-sheets{grid-template-columns:1fr}.page-heading h2{font-size:20px}.page-heading p{font-size:12px}.page-heading{flex-wrap:wrap}.app-footer>span>i{display:none}.import-explainer{gap:15px}.shape-picker svg{width:39px}}@media(max-width:650px){.app{height:auto;min-height:100dvh;overflow:visible}.rail{display:none}.header{height:65px;padding:0 17px;position:sticky;top:0;z-index:25}.brand{font-size:22px}.header-actions{gap:5px}.header-actions .primary{font-size:12px;padding:8px 10px}.project-bar{padding:8px 17px;height:92px}.project-identity{gap:8px}.draft-pill{font-size:10px}.top-tabs{gap:23px;justify-content:space-between;width:100%}.top-tabs button{font-size:12px}.main-layout{display:flex;flex-direction:column-reverse}.main-content{overflow:visible;width:100%}.parameters{width:100%;border-top:1px solid #dde4d2;border-right:0}.param-scroll{overflow:visible}.param-section{padding:0 22px}.panel-title{padding:20px 22px}.param-footer{padding:0 22px}.workspace{height:660px;min-height:660px;padding:18px 18px 0}.canvas-area{min-height:365px}.model-options>span{display:none}.design-note{min-height:40px}.design-note p{font-size:10px}.metric-ribbon{min-height:90px;padding:19px 0}.canvas-title{top:22px}.canvas-title h3{font-size:17px}.field-grid{gap:16px 20px}.shape-picker{gap:14px}.shape-picker svg{width:50px;height:39px}.app-footer{padding:0 16px;height:36px}.app-footer>span:last-child{font-size:7px}.brand i{display:none}.import-page,.materials-page,.checks-page{padding:25px 18px}.import-explainer{grid-template-columns:1fr;gap:8px}.import-explainer>div{display:grid;grid-template-columns:25px 1fr;gap:0 10px}.import-explainer i{margin-top:2px}.import-explainer p{grid-column:2;margin:0 0 15px}.dropzone{padding:30px 12px}.dropzone h3{font-size:17px}.extraction-panel{padding:15px;gap:10px;grid-template-columns:1fr}.extraction-title,.house-picker,.pending-fields{grid-column:1}.extraction-panel>.wide{grid-column:1}.materials-page .page-heading{gap:15px}.parts-table th,.parts-table td{padding:11px 10px}.material-stats b{font-size:23px}.stringer-values{gap:15px}.stringer-card{padding:17px}.stringer-card svg{height:210px}.toast{bottom:25px;width:calc(100% - 35px);font-size:12px}.import-workbench{gap:20px}.invalid-state{min-height:400px;padding:30px 20px}}.report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#edf0e5;z-index:70;display:flex;flex-direction:column}.report-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:#fffefa;border-bottom:1px solid #d6dfcb;gap:15px}.report-toolbar>span{display:flex;align-items:center;gap:9px;font-size:13px;color:#6b8452}.report-toolbar>div{display:flex;gap:10px}.report-overlay iframe{flex:1;width:100%;border:0;background:#e9e8e3}.quiet-label{font-size:10px}.field-note,.footnote{color:#879078}.page-heading p,.pending-fields p{color:#8a967a}.field>span{color:#78836b}.input-shell input{font-size:14px}.brand i,.project-address{font-size:10px}.app-footer{font-size:9px}@media(max-height:820px)and (min-width:651px){.workspace{min-height:555px;padding-top:17px}.canvas-area{min-height:290px}.canvas-title{top:23px}.model-options{height:39px}.metric-ribbon{min-height:86px;padding:16px 0}.metric-ribbon strong{font-size:27px}.design-note{min-height:35px}.design-note p{font-size:10px}}.cad-page,.cnc-page{padding:34px;max-width:1600px;margin:auto}.output-actions{display:flex;gap:9px;flex-wrap:wrap}.cad-paper{background:#fffefa;border:1px solid #dce0d4;padding:28px;margin-top:22px;box-shadow:0 3px 14px #344c3d05}.cad-paper>div>svg{width:100%;height:540px}.drawing-kicker{font:11px/1.5 Arial;letter-spacing:2px;color:#71816c;display:flex;justify-content:space-between}.drawing-kicker span{letter-spacing:0}.drawing-title{display:flex;justify-content:space-between;border-top:1px solid #dfe3d8;padding-top:20px;font-size:12px;gap:15px}.joint-paper>div>svg{height:350px}.joint-notes{font-size:13px;line-height:1.9;color:#697263;border-top:1px solid #e3e4d8}.cnc-stats{margin:24px 0}.sheet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.sheet-heading b{font-size:12px;letter-spacing:1px}.sheet-heading small{display:block;font-size:11px;font-weight:400;letter-spacing:0;margin-top:6px;color:#77806e}.sheet-legend{display:flex;gap:18px;align-items:center;color:#7a826f;font-size:11px;margin-top:12px}.sheet-legend span{display:flex;align-items:center;gap:5px}.sheet-legend span:last-child{margin-left:auto}.sheet-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.legend-tread{background:#dfc29a}.legend-riser{background:#c4d5cc}.optimal-note{font-size:12px;display:flex;gap:6px;align-items:center;margin:10px 0 15px;color:#617c52}.nest-heading p{font-size:11px;font-weight:400;color:#7a826f;margin:5px 0}.top-tabs{overflow-x:auto;white-space:nowrap;flex-shrink:1}.project-identity{min-width:190px}.cnc-page .nest-sheets{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.cnc-page .nest-sheet>div>svg{height:auto;max-height:340px;width:100%}.sheet-heading .text-action{margin-top:0;white-space:nowrap;flex-shrink:0}.sheet-heading .text-action svg{width:14px;height:14px;flex-shrink:0}.cad-page .stringer-card svg{height:260px;width:100%}.cad-page .page-heading,.cnc-page .page-heading{gap:15px}.page-heading h2{line-height:1.3}@media(max-width:1150px){.project-address{display:none}.top-tabs button{padding-left:12px;padding-right:12px}.cad-page,.cnc-page{padding:24px}.page-heading{flex-wrap:wrap}.cnc-page .nest-sheets{grid-template-columns:1fr}}@media(max-width:700px){.cad-page,.cnc-page{padding:20px}.cad-paper{padding:16px}.cad-paper>div>svg{height:420px}.joint-paper>div>svg{height:220px}.drawing-title{flex-direction:column}.sheet-heading{flex-wrap:wrap}.output-actions{margin-top:8px}.cnc-stats{grid-template-columns:1fr 1fr}.drawing-kicker{font-size:10px;letter-spacing:1px}.cad-page .stringer-card svg{height:190px}}.drawing-legend{font-size:11px;line-height:1.8;color:#6d7c69}.tread-detail-paper>div>svg{height:400px}.detail-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:10px 0 22px}.detail-metrics>div{padding:12px;background:#f3f5ed;border-radius:4px}.detail-metrics span{display:block;font-size:11px;color:#73816d;margin-bottom:8px}.detail-metrics b{font-size:20px;font-weight:500;color:#435f40}.detail-metrics small{font-size:11px;font-weight:400}.cad-page .content-tabs{flex-wrap:wrap}@media(max-width:900px){.detail-metrics{grid-template-columns:1fr 1fr}.tread-detail-paper>div>svg{height:310px}}.brand{white-space:nowrap;font-size:23px}.brand span{margin-left:5px}.brand i{display:none}.detail-selector{display:flex;align-items:center;gap:8px;margin:20px 0 0;flex-wrap:wrap}.detail-selector button{background:#f5f6ef;border:1px solid #dce1d3;padding:8px 14px;border-radius:5px;color:#65795d;cursor:pointer}.detail-selector button.active{background:#496c3d;color:#fff;border-color:#496c3d}.detail-selector>span{font-size:11px;color:#718269;margin-left:8px}.manufacturing-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr);align-items:center;gap:18px;margin-top:14px}.manufacturing-grid>div>svg{width:100%;height:420px}.detail-table{font-size:11px;color:#5c6d54}.detail-table h3{font-size:13px;margin:20px 0 12px}.detail-table p{font-size:11px;line-height:1.8}.detail-table table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.detail-table th{font-weight:400;background:#eef1e6}.detail-table td,.detail-table th{text-align:left;padding:9px 8px;border-bottom:1px solid #e1e5d9;white-space:nowrap}.stock-detail-paper>div>svg{width:100%;height:230px}.revision-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:25px 0}.revision-fields input{width:100%;border:1px solid #dce1d3;background:#fafbf6;padding:12px;border-radius:5px;color:#475e3e}.revision-fields .field:last-child{grid-column:1/-1}.revision-editor h3{font-size:14px;margin-top:25px}.revision-status{color:#496c3d;font-size:12px;line-height:1.7}.revision-editor .drawing-legend{margin-top:22px}@media(max-width:1100px){.manufacturing-grid{grid-template-columns:1fr}.manufacturing-grid>div>svg{height:330px}.brand{font-size:21px}}@media(max-width:650px){.brand{font-size:17px;white-space:normal;line-height:1.2;max-width:160px}.brand span{display:block;margin:0}.revision-fields{grid-template-columns:1fr}.stock-detail-paper>div>svg{height:160px}.detail-selector>span{width:100%;margin:4px 0}}.field textarea{width:100%;min-height:85px;resize:vertical;border:1px solid #dce1d3;border-radius:5px;background:#fafbf6;color:#475e3e;padding:10px;font-family:inherit;font-size:12px;line-height:1.7}.newel-faces-paper>div>svg{height:420px}.bevel-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.bevel-grid h4{font-size:13px;color:#596e4e}.bevel-grid>div>div>svg{height:180px;width:100%}@media(max-width:900px){.bevel-grid{grid-template-columns:1fr}}.measure-tools{flex-wrap:wrap}.scope-notice{margin:12px 18px;padding:12px;background:#eaf2ee;border-radius:8px;color:#31564b;font-size:12px}.candidate-confidence{display:block;margin:7px 0;font-size:11px;color:#79796f}.candidate button{margin:3px 8px 3px 0}.house-picker{flex-wrap:wrap}.recovery-modal{max-height:80vh;overflow-y:auto}.recovery-item{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:16px;padding:14px 0;border:0;border-top:1px solid #e5e6dd;background:transparent;color:#373f35;cursor:pointer}.recovery-item small{display:block;margin-top:5px;color:#85867e;font-size:11px}.recovery-item>span:last-child{font-size:12px;white-space:nowrap}
