:root{--ink:#132031;--muted:#64748b;--blue:#4a7c59;--line:#cad5e3;--bg:#e9edf3;--paper:#edf2f8;--red:#b91c1c;--orange:#9a3412;--green:#15803d;--main:#165fb5;--edge:#a4479b;--links:#c77615;--vert:#8252ae;--strut:#248678;--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}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:focus-visible,summary:focus-visible,canvas:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button.primary{background:var(--blue);color:#fff;border-color:#2d5a3a}button.primary:hover{background:#3d6b4b}button:disabled{opacity:.45;cursor:not-allowed}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;margin:0;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.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}.intro{color:#42536a;padding:10px 3px 12px;font-size:12px}.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;margin:0}.small{color:var(--muted);font-size:11px}.panelHead .small{font:10px/1.5 var(--mono)}.block{margin-bottom:14px}.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;background:var(--blue);border-color:#2d5a3a}.tab{display:none}.tab.active{display:block}.notice{border:1px solid #bcd0bf;border-left:4px solid var(--blue);color:#2d5a3a;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 ul{margin:7px 0;padding-left:20px}.notice .small{color:inherit;margin-top:3px;font-size:10px}.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 17px;position:relative;overflow:hidden;box-shadow:0 1px 4px #00000012}.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}.stat .bar{background:#d5dee9;border-radius:4px;height:6px;margin:9px 8px 0;overflow:hidden}.stat .bar i{background:var(--green);border-radius:4px;height:100%;transition:width .2s;display:block}.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}.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.fail{color:var(--red);background:#fee2e2}.pill.warn{color:var(--orange);background:#fff7ed}.statusChip.warn{color:var(--orange);background:#fff7ed;border-color:#fed7aa}.wallWarnings{border-left:3px solid var(--orange);color:#7c3e0a;background:#fff7ed;margin-top:10px;padding:10px 12px}.prose{padding:14px 18px;font-size:13px}.prose p{margin:0 0 12px}.prose h3{color:#1f3349;margin:22px 0 9px;font-size:14px}.prose h3:first-child{margin-top:0}.prose ul{margin:6px 0 15px;padding-left:22px}.prose li{margin:6px 0}.formula{font:12px/1.8 var(--mono);border-left:3px solid var(--blue);background:#f8fafc;margin:12px 0;padding:10px 13px;overflow-x:auto}.callout{color:#7c2d12;background:#fff7ed;border-left:3px solid #b45309;margin:12px 0;padding:10px 13px;font-size:12px}.rowList{font:11px/1.6 var(--mono);grid-template-columns:1fr auto;gap:7px 16px;display:grid}.rowList .num{font-variant-numeric:tabular-nums}.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}.statusline{flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;display:flex}.printOnly{display:none}.disabledResult{opacity:.4;pointer-events:none}.key{font:11px var(--mono);color:#64748b}.number{font-variant-numeric:tabular-nums}.statusheading{font-size:14px}@media (width<=1150px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=980px){.workspace{grid-template-columns:1fr}.inputs>.panelHead{padding:10px 14px}.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}}.reportInputs{columns:2;font:11px/1.6 var(--mono);column-gap:30px}.reportInputs div{break-inside:avoid;border-bottom:1px solid #d8e3ee;justify-content:space-between;gap:12px;padding:5px 0;display:flex}@media (width<=600px){.reportInputs{columns:1}}.inputs{align-self:start;min-width:0}.inputs>.panelHead{background:var(--paper);border:1px solid var(--line);border-radius: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.toolLink{font:11px/1.4 var(--mono)}.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{color:#2d5a3a;width:24px;min-height:16px;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)}.inputWrap input.invalid{background:#fef2f2;border-color:#dc2626}.inputWrap input:disabled{color:#4d6076;cursor:not-allowed;background:#eef2f7;border-style:dashed}.stepBtn:disabled{opacity:.4;cursor:not-allowed}.field.lockedField .fieldHint{color:#2d5a3a;display:block}.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}.hint{color:var(--muted);padding:0 14px 12px;font-size:11px}.inputGuide{font:10px/1.6 var(--mono);color:#2d5a3a;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}.toast{color:#fff;z-index:10;background:#2d5a3a;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<=980px){.formPanel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.formPanel>.formSection:first-child{grid-column:1/-1}.formPanel>.formSection:first-child .fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.formPanel{display:flex}}.viewGrid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.viewGrid .wide{grid-column:1/-1}.drawing{background:#f8fafc;width:100%;display:block}.drawingWrap{background:#f8fafc;min-width:0;padding:10px;overflow:auto}.totalStrip{color:#2d5a3a;background:#e2ebe2;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 14px;font-size:12px;display:flex}.nodecards{grid-template-columns:1fr 1fr;gap:14px;display:grid}.nodeHead{font-size:24px;font-weight:700}.nodeHead span{font:12px var(--mono);color:var(--muted);font-weight:400}.nodeSvg{width:100%;height:250px;display:block}@media (width<=1150px){.viewGrid,.nodecards{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);color:#fff;border-color:#2d5a3a}.canvasWrap{background:#f5f9fc;height:490px;position:relative;overflow:hidden}.canvasWrap canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.canvasWrap canvas:active{cursor:grabbing}.viewMode{color:#2d5a3a;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:14px}.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:440px}}@media (width<=980px){.canvasWrap{height:490px}}@media (width<=600px){.canvasWrap{height:400px}.toolbar label{font-size:10px}.legend{gap:8px 12px;font-size:10px}}.moduleNav{flex-wrap:wrap;gap:8px;max-width:1360px;margin:0 auto 20px;display:flex}.moduleNav button[aria-pressed=true]{color:#fff;background:var(--blue);border-color:#2d5a3a}.modulePage[hidden]{display:none!important}.dappedWorkspace .formPanel{margin-top:14px}.dappedWorkspace .field>input,.dappedWorkspace .field>select{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;min-width:0;min-height:38px;padding:8px 10px}.dappedWorkspace .fields{padding:12px}.dappedCaption,.dappedScope{padding:0 16px 12px}.dappedScope{background:#fff8e6;border:1px solid #e5cb86;border-radius:8px;margin:10px 0 16px;padding:10px 14px;font-size:12px}.dappedDrawings svg{width:100%;height:auto;display:block}.dappedWorkspace .toolbar label{align-items:center;gap:6px;display:flex}.dappedWorkspace .notice button{float:right}.dappedWorkspace .formula{white-space:normal}.dappedWorkspace .formSection summary{white-space:normal;overflow-wrap:anywhere}@media (width<=980px){.workspace.dappedWorkspace{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.moduleNav button{flex:1}.dappedWorkspace .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.dappedWorkspace .tab>.panel{break-inside:auto}.dappedWorkspace .tab[data-panel=dapped-basis]{break-before:page}.dappedReport{break-inside:auto}.dappedDrawings svg{break-inside:avoid}.dappedDrawings svg+svg{max-height:75mm}.dappedWorkspace .checkTable table,.dappedReport table{font-size:8pt}.dappedWorkspace .checkTable tr,.dappedReport tr{break-inside:avoid}@page{size:A4 portrait;margin:13mm}body{background:#fff;padding:0;font-size:10pt}header{border-bottom:2px solid #132031;padding:0 0 12px}header h1{font-size:20px}.headerActions,.inputs,.tabs,.toolbar,.viewHelp,.viewMode,.foot,.noPrint{display:none!important}.workspace{padding:12px 0;display:block}.content{width:100%}.tab{margin-bottom:15px;display:block!important}.printOnly{display:block}.panel{break-inside:avoid;box-shadow:none;background:#fff;border-color:#bbc7d0;margin-bottom:12px}.stats{grid-template-columns:repeat(4,1fr)}.stat{box-shadow:none;background:#fff;padding:8px}.stat .value{font-size:18px}.nodecards,.viewGrid{display:block}.canvasWrap{height:360px}.notice{font-size:10pt}.prose{padding:12px}th,td{padding:6px 8px;font-size:9pt}.nodeSvg{height:180px}.drawing{max-height:420px}.reportInputs{columns:2}.panelHead{padding:8px 12px}a{color:inherit}.small,.hint,.legend{font-size:9pt}.tab[data-panel=basis]{break-before:page}.verifyPanel:not(.printable){display:none!important}.verifyPanel.printable{break-before:page}}
