.drawingEditTools{border-bottom:1px solid var(--line);background:#f0f6fa;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;display:flex}.drawingEditTools>span{color:#536779;margin-right:4px;font-size:11px}.drawingEditTools button{color:#165b92;background:#fff;border-color:#bfd1df;min-height:32px;padding:6px 9px;font-size:11px}.drawingEditTools button:hover{background:#deeffb}.drawingEditable{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.drawingEditable:hover,.drawingEditable:focus{fill:#005cac;outline-offset:4px;outline:2px solid #2381ba}.drawingEditor{background:var(--paper,white);width:min(440px,100vw - 24px);max-height:min(680px,100dvh - 24px);color:var(--ink,#1e3246);border:1px solid #aac3d5;border-radius:12px;margin:0;padding:0;position:fixed;overflow:auto;box-shadow:0 12px 60px #203c5b40}.drawingEditor::backdrop{background:#18364b12}.drawingEditorHead{z-index:2;border-bottom:1px solid var(--line);background:#f0f6fa;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;top:0}.drawingEditorHead span{letter-spacing:.1em;color:#53718b;font-size:9px}.drawingEditorHead h2{margin:3px 0 0;font-size:16px}.drawingEditorHead button{min-width:36px;min-height:36px}.drawingEditorHelp{margin:0;padding:12px 16px;font-size:12px;line-height:1.6}.drawingEditor .formPanel{padding:0 12px;display:flex}.drawingEditor .formSection{margin-bottom:8px}.drawingGrain{padding:12px}.drawingEditorFoot{background:var(--paper,white);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;bottom:0}.drawingEditorFoot span{color:var(--muted);font-size:10px}.canvasEditLabels{pointer-events:none;position:absolute;inset:0}.canvasEditLabel{pointer-events:auto;color:#0000;cursor:pointer;min-height:24px;box-shadow:none;background:#f8fcff12;border:1px dashed #4e8cb890;border-radius:4px;padding:3px 4px;font-size:0;position:absolute;transform:translateY(-50%)}.canvasEditLabel:hover,.canvasEditLabel:focus-visible{background:#1d80c81a;border:2px solid #126ba9;outline:none}@media (width<=600px){.drawingEditTools{gap:5px;padding:8px}.drawingEditTools>span{flex-basis:100%}.drawingEditTools button{min-height:36px}.drawingEditor{max-height:calc(100dvh - 24px)!important;top:12px!important;left:12px!important}}@media print{.drawingEditable{text-decoration:none}.canvasEditLabels{display:none}}.viewGrid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.viewGrid .wide{grid-column:1/-1}.drawing{background:#f8fafc;width:100%;height:auto;display:block}.drawingWrap{background:#f8fafc;min-width:0;padding:10px;overflow:auto}.viewGrid{align-items:start}.drawingNote{font:10px/1.6 var(--mono);color:var(--muted);border-top:1px solid var(--line);background:var(--paper);padding:8px 14px 12px}@media (width<=1150px){.viewGrid{grid-template-columns:1fr}.viewGrid .wide{grid-column:auto}}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;display:flex}.toolbar label{font:11px var(--mono);align-items:center;gap:4px;display:flex}.toolbar input{accent-color:var(--blue);width:15px;height:15px}.toolbar button{border-radius:7px;padding:6px 9px;font-size:10px}.toolbar button.active{background:var(--blue);border-color:var(--blue-dark);color:#fff}.canvasWrap{background:#f5f9fc;height:520px;position:relative;overflow:hidden}.canvasWrap canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.canvasWrap canvas:active{cursor:grabbing}.viewMode{color:var(--blue-dark);font:700 10px var(--mono);pointer-events:none;background:#f8fafcf2;border:1px solid #bcd0bf;border-radius:6px;padding:5px 8px;position:absolute;top:12px;right:14px}.viewHelp{font:10px/1.5 var(--mono);color:#64748b;pointer-events:none;position:absolute;bottom:12px;left:14px;right:130px}.legend{font:10px/1.5 var(--mono);border-top:1px solid var(--line);color:#42536a;flex-wrap:wrap;gap:8px 18px;padding:10px 14px;display:flex}.legend span{align-items:center;gap:7px;display:flex}.legend i{border-radius:2px;width:20px;height:4px;display:inline-block}@media (width<=1150px){.canvasWrap{height:460px}}@media (width<=600px){.canvasWrap{height:400px}.viewMode{top:34px;right:10px}.toolbar label{font-size:10px}.legend{gap:8px 12px}.viewHelp{bottom:6px;right:14px}}.inputs{align-self:start;min-width:0}.inputs>.panelHead{background:var(--paper);border:1px solid var(--line);border-radius:12px}.intro{color:#42536a;padding:10px 3px 12px;font-size:12px}.formPanel{flex-direction:column;gap:14px;display:flex}.formSection{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:0;overflow:hidden;box-shadow:0 1px 4px #00000012}.formSection summary{color:var(--blue);font:700 11px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;align-items:center;gap:8px;margin:0;padding:10px 14px;list-style:none;display:flex}.formSection summary::-webkit-details-marker{display:none}.formSection summary:after{content:"+";margin-left:auto;font-size:15px;line-height:1}.formSection[open] summary{border-bottom:1px solid #dde6f0}.formSection[open] summary:after{content:"−"}.formSection summary:hover{background:#e2ebe2}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 10px;padding:12px 14px;display:grid}.field{min-width:0}.field.full{grid-column:1/-1}.field label{font:700 10px/1.5 var(--mono);letter-spacing:.04em;color:#37485d;text-transform:uppercase;margin-bottom:3px;display:block}.inputWrap{align-items:stretch;gap:5px;min-width:0;display:flex}.inputWrap input,.inputWrap select{width:100%;min-width:0;font:14px/1.4 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;background:#e8eef6;border:1.5px solid #afbccb;border-radius:6px;padding:7px 8px}.inputWrap input:focus,.inputWrap select:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 2px #4a7c591f}.inputWrap select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;text-overflow:ellipsis}.inputWrap select option{color:var(--ink);background:#e8eef6}.fieldUnit{min-width:22px;font:11px var(--mono);color:var(--muted);white-space:nowrap;flex:none;align-self:center}.stepper{flex-direction:column;flex:none;gap:2px;display:flex}.stepBtn{width:24px;min-height:16px;color:var(--blue-dark);font:800 9px/1 var(--mono);background:#f8fafc;border:1px solid #aebdd0;border-radius:5px;flex:1;padding:0}.stepBtn:hover{border-color:var(--blue);background:#e2ebe2}.stepBtn:active{transform:translateY(1px)}.stepBtn:disabled{opacity:.4;cursor:not-allowed}.inputWrap input.invalid{background:#fef2f2;border-color:#dc2626}.fieldError{color:var(--red);font:10px/1.45 var(--mono);margin-top:4px}.fieldError:empty{display:none}.fieldHint{color:var(--muted);font:10px/1.45 var(--mono);margin-top:4px;display:none}.field:focus-within .fieldHint{display:block}.field.hasError .fieldHint{display:none}.fieldHint.always{display:block}.hint{color:var(--muted);padding:0 14px 12px;font-size:11px}.hint.standalone{padding:0 4px}.derived{font:11px/1.6 var(--mono);color:var(--blue-dark);background:#e2ebe2;border:1px solid #bcd0bf;border-radius:8px;margin:0 14px 14px;padding:10px 12px}.derived-why{color:#42536a;margin-top:3px;font-size:10px;display:block}.inputGuide{font:10px/1.6 var(--mono);color:var(--blue-dark);background:#e2ebe2;border:1px solid #bcd0bf;border-radius:8px;margin-top:14px;padding:10px 12px}.saveStatus{font:10px/1.6 var(--mono);min-height:18px;color:var(--muted);padding:9px 2px}@media (width<=980px){.formPanel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.formPanel>.formSection:first-child{grid-column:1/-1}}@media (width<=600px){.formPanel{display:flex}}.material-data{margin-top:6px;font-size:12px}.material-data summary{cursor:pointer;font-weight:600}.material-data dl{margin:10px 0}.material-data dl>div{margin-top:7px}.material-data dt{font-weight:500}.material-data dd{font-variant-numeric:tabular-nums;margin:2px 0 6px}.material-data p{overflow-wrap:anywhere;margin:8px 0;line-height:1.5}.fieldGroupTitle{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);grid-column:1/-1;margin:.6rem 0 0;font-size:.8rem;font-weight:700}.spacingFail{color:var(--red);font-weight:700}.sectionTitle{margin:.4rem 0 0;font-size:1rem}.panelNote{margin:0;padding:.5rem 1rem .8rem}.formPanel{counter-reset:step}.formSection>summary:before{counter-increment:step;content:counter(step);background:var(--blue);color:#fff;letter-spacing:0;border-radius:50%;place-items:center;min-width:20px;height:20px;font-size:10px;display:inline-grid}.steps{margin:6px 0 0;padding-left:18px}.steps li{margin:2px 0}.autoActions{border:1px dashed var(--blue);background:#f3f7f3;border-radius:8px;flex-wrap:wrap;gap:8px;padding:10px;display:flex}.autoActions .hint{flex-basis:100%;margin:0}.advanced{border-top:1px solid #dde6f0;grid-column:1/-1;padding-top:6px}.advanced>summary{cursor:pointer;font:700 10px/1.5 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:#37485d}.advanced>.fields{padding:8px 0 0}:root{--ink:#132031;--muted:#64748b;--blue:#4a7c59;--blue-dark:#2d5a3a;--line:#cad5e3;--bg:#e9edf3;--paper:#edf2f8;--red:#b91c1c;--orange:#9a3412;--green:#15803d;--steel:#7d8b99;--force:#165fb5;--mono:"JetBrains Mono", "Fira Code", Consolas, "Liberation Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:linear-gradient(170deg,#d9e4d5 0%,#e2e9de 30%,#e9edf3 70%);margin:0;padding:20px;font:14px/1.5 Segoe UI,Helvetica Neue,Arial,sans-serif}h1,h2,h3,p{margin:0}sub,sup{line-height:0}button,input,select{font:inherit}button{cursor:pointer;color:#1f3349;font:600 12px/1.4 var(--mono);background:#eef3f9;border:1.5px solid #aebdd0;border-radius:8px;padding:8px 13px;transition:background .15s,border-color .15s}button:hover{background:#e6edf6;border-color:#7d93ad}button.primary{background:var(--blue);border-color:var(--blue-dark);color:#fff}button.primary:hover{background:#3d6b4b}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,summary:focus-visible,canvas:focus-visible,a:focus-visible,[role=tab]:focus-visible{outline:2px solid var(--blue);outline-offset:3px}a{color:var(--blue)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#9fb0c4;border-radius:3px}header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;max-width:1360px;margin:0 auto 18px;display:flex}header h1{letter-spacing:-.02em;font-size:24px;font-weight:700}header p{color:#42536a;margin:3px 0 0;font-size:13px}.brand{align-items:center;gap:10px;display:flex}.mark{color:#fff;width:38px;height:38px;font:800 12px var(--mono);background:linear-gradient(135deg,#4a7c59,#2d5a3a);border-radius:9px;flex:none;place-items:center;display:grid}.headerActions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.statusChip{font:800 12px var(--mono);letter-spacing:.02em;color:#42536a;white-space:nowrap;background:#eef3f9;border:1.5px solid #aebdd0;border-radius:999px;padding:7px 12px}.statusChip.pass{color:#15803d;background:#dcfce7;border-color:#86efac}.statusChip.warn{color:var(--orange);background:#fff7ed;border-color:#fed7aa}.statusChip.fail{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.workspace{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:20px;max-width:1360px;margin:auto;display:grid}.content{min-width:0}@media (width>=981px) and (height>=640px){.inputs{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:calc(100vh - 24px);padding-right:6px;position:sticky;top:12px;overflow-y:auto}}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #00000012}.panelHead{border-bottom:1px solid #dde6f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.panelHead h2{font:700 11px/1.5 var(--mono);letter-spacing:.08em;color:var(--blue);text-transform:uppercase}.small{color:var(--muted);font-size:11px}.panelHead .small{font:10px/1.5 var(--mono)}.panelHead button{border-radius:7px;padding:5px 9px;font-size:10px}.panelStack{gap:14px;display:grid}.sectionHeading{font:800 12px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blue-dark);align-items:center;gap:12px;margin:6px 0 12px;display:flex}.sectionHeading:after{content:"";background:var(--line);flex:1;height:1px}.content>.sectionHeading:first-child,.panelStack>.sectionHeading:first-child{margin-top:0}.content>.sectionHeading:not(:first-child){margin-top:26px}.panelStack>.sectionHeading:not(:first-child){margin-top:12px}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tabs button{color:#1f3349;background:#eef3f9;border:1.5px solid #aebdd0;border-radius:9px;padding:9px 16px;font-size:12px;font-weight:700}.tabs button.active{color:#fff;border-color:var(--blue-dark);background:var(--blue)}.tab{display:none}.tab.active{display:block}.notice{border:1px solid #bcd0bf;border-left:4px solid var(--blue);color:var(--blue-dark);background:#e2ebe2;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:12px}.notice.error{border-color:#fca5a5;border-left-color:var(--red);color:#991b1b;background:#fef2f2}.notice strong{font-weight:700}.notice .small{color:inherit;margin-top:3px;font-size:10px}.diagnostics{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.diagnostic{border-left:3px solid;border-radius:8px;gap:10px;padding:8px 12px;font-size:12px;display:flex}.diagnostic-warning{color:#7c3e0a;border-color:var(--orange);background:#fff7ed}.diagnostic-error{color:#991b1b;border-color:var(--red);background:#fff}.diagnostic-tag{font:800 10px/1.8 var(--mono);text-transform:uppercase;letter-spacing:.05em;flex:none}.clause{opacity:.75;white-space:nowrap}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.stat{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--blue);text-align:center;border-radius:12px;padding:12px 10px 14px;box-shadow:0 1px 4px #00000012}.stat.primary{border-top-color:var(--green)}.stat .name{font:700 10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}.stat .value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.3}.stat .unit{font:11px var(--mono);color:var(--muted)}.stat .sub{font:10px/1.5 var(--mono);color:var(--muted);margin-top:3px}.tableWrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font:11px/1.6 var(--mono);background:#f8fafc}th{text-align:left;color:#64748b;white-space:nowrap;background:#eef3f9;border-bottom:2px solid #d8e3ee;padding:7px 9px;font-size:10px;font-weight:700}td{vertical-align:top;border-bottom:1px solid #e2e8f0;padding:7px 9px}tr:last-child td{border-bottom:0}td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}td .stepLabel{color:var(--muted);font-size:10px;display:block}td.symbol{white-space:nowrap;font-weight:700}td.substituted{color:var(--muted);overflow-wrap:anywhere}tr.result td{background:#e2ebe2;font-weight:800}.pill{font:700 10px/1.5 var(--mono);white-space:nowrap;border-radius:5px;padding:3px 7px;display:inline-block}.pill.pass{color:var(--green);background:#dcfce7}.pill.warn{color:var(--orange);background:#fff7ed}.prose{padding:14px 18px;font-size:13px}.prose p{margin:0 0 12px}.prose h3{color:#1f3349;margin:18px 0 8px;font-size:14px}.prose h3:first-child{margin-top:0}.prose ul{margin:6px 0 14px;padding-left:22px}.prose li{margin:6px 0}.prose .muted{color:var(--muted);font-size:12px}.rowList{grid-template-columns:max-content 1fr;gap:5px 16px;margin:0 0 14px;font-size:12px;display:grid}.rowList dt{font:700 10px/1.9 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:#37485d}.rowList dd{color:#42536a;margin:0}.foot{border-top:1px dashed var(--line);max-width:1360px;font:10px/1.6 var(--mono);color:var(--muted);margin:18px auto 0;padding:10px 0 4px}.toast{background:var(--blue-dark);color:#fff;z-index:10;border-radius:8px;max-width:90%;padding:11px 19px;font-size:13px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 3px 15px #0003}@media (width<=1150px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.workspace{grid-template-columns:1fr}.headerActions{margin-left:0}}@media (width<=600px){body{padding:10px}header{margin-bottom:14px}header h1{font-size:21px}header p{font-size:11px}.brand{align-items:flex-start}.headerActions{gap:6px;width:100%}.headerActions button,.statusChip{padding:7px 9px;font-size:10px}.tabs{gap:6px}.tabs button{padding:8px 10px;font-size:10px}.prose{padding:12px}}@media print{body{color:#000;background:#fff;padding:0}.headerActions button,.inputs,.tabs,.toolbar,.toast,.noPrint{display:none}.statusChip{border-color:#999}.workspace{grid-template-columns:1fr}.tab{margin-bottom:14px;display:block}.panel,.stat,.notice{box-shadow:none;break-inside:avoid}.panel{border-color:#999}}.fields>.full{grid-column:1/-1}.article-dimensions{background:var(--panel-soft,#f4f7fa);border-radius:.5rem;gap:.4rem;padding:.8rem;font-size:.88rem;display:grid}.check-field{align-items:flex-start;gap:.6rem;font-size:.85rem;line-height:1.5;display:flex}.check-field input{flex:none;width:1.2rem;height:1.2rem;margin-top:.15rem}.connection-value{font:700 1.35rem var(--mono);padding-top:.4rem}.connection-sketch{width:min(100%,640px);margin:auto;font:12px sans-serif;display:block}.field textarea{box-sizing:border-box;border:1px solid var(--line);width:100%;min-width:0;font:13px var(--mono);background:#f7fafc;padding:.7rem}.autoOffer{border-left-color:var(--orange);color:#7c2d12;background:#fff7ed;border-color:#fdba74;flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.autoOffer p{flex:260px;margin:0}.autoReport.warn{border-left-color:var(--orange)}.autoReportHead{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.linkButton{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}.autoChanges{border-collapse:collapse;width:100%;margin:8px 0 4px;font-size:11px}.autoChanges th,.autoChanges td{text-align:left;vertical-align:top;border-bottom:1px solid #bcd0bf;padding:3px 6px}.autoChanges th{font:700 10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.04em}@media (width<=560px){.autoChanges td.small,.autoChanges th:last-child{display:none}}
