@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#192e38;--muted:#718087;--line:#e0e5e4;--paper:#f5f6f3;--card:#fff;--teal:#0c7972;--lime:#cae786;--amber:#b47824;--red:#ae3e3e;--radius:12px;font-family:'DM Sans',sans-serif;color:var(--ink);font-synthesis:none;background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.drawing:focus-visible{outline:3px solid #3faaa2;outline-offset:3px}[hidden]{display:none!important}button{color:inherit}a{color:var(--teal)}.topbar{height:80px;padding:0 36px;display:flex;align-items:center;gap:40px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;color:var(--ink);font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-1px;font-weight:800;text-decoration:none;position:relative;gap:6px}.brand-mark{font-size:33px;letter-spacing:-10px;color:var(--teal);margin-right:18px;transform:translateY(-2px)}.brand-dot{color:var(--teal);margin-left:-6px}.brand-sub{font-size:8px;letter-spacing:1.5px;position:absolute;left:49px;top:34px;color:var(--muted)}.module-tag{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.module-tag span{margin:0 12px;color:#b5c3c5}.top-actions{margin-left:auto;display:flex;gap:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:12px;border:1px solid transparent;padding:12px 17px;border-radius:7px;background:#fff;white-space:nowrap}.button.quiet{border-color:var(--line)}.button.dark{color:#fff;background:var(--ink)}.button.outline{border-color:var(--line);background:transparent}.button:hover{filter:brightness(.95)}.full{width:100%}main{max-width:1800px;margin:0 auto;padding:34px 36px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.9px;color:var(--teal);margin:0 0 10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:39px;letter-spacing:-1.8px;display:flex;align-items:center;gap:16px;margin-bottom:6px;font-weight:800}.version-label{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:500;background:#e8eeea;letter-spacing:0;border:1px solid #dce4dd;border-radius:6px;padding:6px 10px;transform:translateY(3px)}.intro{font-size:13px;color:var(--muted);margin:0}.heading-meta{font-size:10px;line-height:2;letter-spacing:1px;text-align:right}.heading-meta>span:last-child{color:var(--muted);letter-spacing:0}.status-dot{background:#dcaf51;display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 6px 1px 0}.safety-banner{display:flex;align-items:center;gap:13px;border:1px solid #e8d9b6;border-radius:8px;background:#faf6eb;padding:12px 16px;color:#79603a;font-size:11px;line-height:1.7}.warning-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #b38a43;width:22px;height:22px;border-radius:50%;font-weight:700}.text-button{border:0;background:transparent;font-size:11px;font-weight:600;white-space:nowrap}.safety-banner .text-button{margin-left:auto;color:#79603a}.tabs{display:flex;gap:28px;margin:23px 0 20px;border-bottom:1px solid var(--line)}.tab{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:0 0 14px;font-size:10px;display:flex;gap:10px;align-items:center}.tab span{font-size:12px;font-weight:600}.tab.active{color:var(--teal);border-bottom-color:var(--teal)}.autosave{font-size:10px;color:var(--muted);margin-left:auto}.workbench{display:grid;grid-template-columns:300px minmax(350px,1fr) 265px;gap:18px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:19px 20px;border-bottom:1px solid #edf0ed;min-height:65px}.panel-heading h2{font-size:13px;margin:0;font-weight:800}.panel-heading p{font-size:10px;color:var(--muted);margin:5px 0 0}.tiny-tag{font-size:8px;letter-spacing:1px;color:var(--muted);white-space:nowrap}.input-panel{max-height:806px;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd5d3 transparent}.input-panel>.panel-heading{position:sticky;top:0;background:white;z-index:1}form{padding:17px}fieldset{border:0;padding:0;margin:0}legend{font-size:10px;color:var(--muted);margin-bottom:9px}.segmented{display:flex;background:#f1f4f1;border-radius:6px;padding:3px;margin-bottom:20px}.segmented label{flex:1}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{display:block;font-size:10px;padding:10px 4px;text-align:center;border-radius:5px;cursor:pointer}.segmented input:checked+span{background:#fff;color:var(--teal);box-shadow:0 1px 5px #10252b12;font-weight:700}.segmented input:focus-visible+span{outline:2px solid var(--teal)}details{border-top:1px solid var(--line);padding-top:13px;margin-bottom:14px}summary{list-style:none;font-size:11px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:13px}summary:after{content:'+';color:var(--muted)}details[open]>summary:after{content:'−'}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 11px}.field{display:block;min-width:0}.field.wide{grid-column:1/-1}.field-label{display:block;font-size:10px;color:#5d7078;margin-bottom:6px;line-height:1.4}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap input{width:100%;min-width:0;background:#fafbf9;border:1px solid #dce3df;border-radius:5px;padding:9px 29px 9px 9px;color:var(--ink);font-size:12px;outline-offset:1px;appearance:textfield}.input-wrap input[type=text]{padding-right:9px}.input-wrap input::-webkit-inner-spin-button{appearance:none}.input-wrap input:invalid{border-color:#c86a59;background:#fff5f2}.unit{position:absolute;right:9px;font-size:9px;color:#8a9799;pointer-events:none}.field-hint{font-size:9px;color:var(--muted);line-height:1.5;margin:11px 0 0}.drawing{height:649px;overflow:hidden;background:radial-gradient(ellipse at 45% 50%,#f9fbf7 0,#edf1ec 100%);touch-action:none;cursor:grab;position:relative}.drawing:active{cursor:grabbing}.drawing svg{display:block;width:100%;height:100%}.view-buttons{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;gap:2px}.view-buttons button{border:0;background:transparent;font-size:9px;padding:5px 8px;border-radius:3px;color:var(--muted)}.view-buttons .selected{background:var(--ink);color:white}.drawing-footer{display:flex;align-items:center;gap:15px;padding:15px 17px;font-size:9px;flex-wrap:wrap;color:#64777a}.drawing-footer>span{display:flex;align-items:center;gap:5px}.legend-line{width:15px;height:2px;background:var(--ink);display:inline-block}.legend-line.pole{background:#d7ad49;height:3px}.legend-line.guy{background:#0e8980}.legend-line.support{background:#bd7942}.legend-line.rope{background:#a56d5b}.drag-hint{margin-left:auto;color:#8e9b9c}.geometry-note{border-top:1px solid #edf0ed;background:#fafbf9;padding:12px 17px;font-size:10px;line-height:1.7;color:var(--muted);min-height:53px}.summary-heading{display:flex;justify-content:space-between;padding:4px 1px 12px}.summary-heading .eyebrow{margin:0;color:var(--muted);font-size:9px}.live-dot{width:6px;height:6px;background:var(--teal);border-radius:50%;margin-top:2px}.metric{padding:19px 19px 17px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}.metric.primary{background:var(--ink);color:white;border-color:var(--ink)}.metric-label{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:12px}.primary .metric-label{color:#bfd1d0}.metric-value{font-family:Manrope,sans-serif;font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1}.metric-value small{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:0;margin-left:6px;font-weight:400;color:var(--muted)}.primary .metric-value small{color:#bfd1d0}.metric-sub{font-size:9px;line-height:1.5;color:var(--muted);margin-top:10px}.primary .metric-sub{color:#bbcfcb}.metric-meter{height:3px;background:#e9eeeb;margin-top:13px;border-radius:2px;overflow:hidden}.metric-meter>i{display:block;height:100%;background:var(--teal)}.metric-meter>i.danger{background:var(--red)}.primary .metric-meter{background:#3f5259}.primary .metric-meter>i{background:var(--lime)}.metric-meter>i.danger{background:var(--red)}.status-card{font-size:10px;line-height:1.6;color:#886837;background:#f7f0e0;padding:11px 13px;border-radius:7px;margin-bottom:12px}.status-card.danger{background:#f9e9e5;color:#a54335}.support-detail{margin:13px 0}.support-detail .panel-heading{min-height:49px;padding:13px}.support-detail .panel-heading h2{font-size:10px}#support-detail{height:154px}#support-detail svg{width:100%;height:100%}.anchor-panel{margin-top:20px;padding:22px}.anchor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.anchor-header .eyebrow{font-size:8px}.anchor-header h2{font-size:17px;letter-spacing:-.4px;margin:0 0 6px}.anchor-header p:not(.eyebrow){font-size:11px;color:var(--muted);margin:0}.anchor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.anchor-card{border-left:1px solid var(--line);padding-left:20px}.anchor-card:first-child{border:0;padding:0}.anchor-card h3{font-size:11px;display:flex;justify-content:space-between;margin:0 0 13px}.anchor-card h3 span{font-weight:400;color:var(--teal);font-family:'DM Sans',sans-serif;font-size:10px}.anchor-card .field-grid{grid-template-columns:repeat(4,1fr);gap:7px}.anchor-card .input-wrap input{padding:8px 17px 8px 7px;font-size:11px}.anchor-card .unit{right:5px;font-size:8px}.anchor-card .field-label{font-size:9px}footer{display:flex;align-items:center;gap:25px;justify-content:space-between;padding:25px 0;font-size:8px;letter-spacing:.7px;color:#84918f}footer b{font-weight:400;padding:0 8px;color:#b0bcba}footer .text-button{font-size:9px;color:var(--muted)}.content-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.content-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:20px}.content-card h2{font-size:19px;letter-spacing:-.5px;margin-bottom:16px}.content-card h3{font-size:13px;margin:22px 0 10px}.content-card p,.content-card li{font-size:12px;color:#596e74;line-height:1.85}.content-card li{margin:7px 0}.content-card ul{padding-left:18px}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}th{font-size:9px;color:var(--muted);font-weight:500;background:#f5f7f4}td,th{padding:13px 10px;border-bottom:1px solid var(--line)}td:not(:first-child),th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}td:first-child{font-weight:500}.over{color:var(--red);font-weight:700}.pill{padding:4px 7px;border-radius:4px;background:#f6efdf;color:#8d6b2e;font-size:9px}.equation{background:#f2f5f1;border-radius:6px;padding:14px;font-family:monospace;font-size:11px;line-height:1.8;overflow-x:auto}.issues{list-style:none;padding:0!important}.issues li{border-left:2px solid #c69b4c;background:#fbf8ef;padding:9px 12px;font-size:11px}.issues li.stop{border-color:var(--red);background:#fcf0ed;color:#954b3c}.empty-state{padding:25px;background:#fff1eb;border:1px solid #e3b4a8;border-radius:9px;font-size:12px;line-height:1.8}.empty-state strong{display:block;margin-bottom:8px}.sources a{word-break:break-word}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;max-width:900px;width:calc(100% - 30px);max-height:90vh;color:var(--ink)}dialog::backdrop{background:#10252c88;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top h2{margin:0;font-size:24px}.icon-button{background:#edf1eb;border:0;width:30px;height:30px;border-radius:50%;font-size:23px}.report-intro{font-size:12px;line-height:1.7;color:var(--muted);margin:15px 0}.dialog-actions{display:flex;gap:9px;margin-bottom:20px}#report-preview{background:#f8f9f6;padding:20px;border:1px solid var(--line)}.report{font-family:Arial,sans-serif;font-size:11px;line-height:1.65;color:#20343a}.report h1{display:block;font-size:25px;letter-spacing:-.5px;margin-top:12px}.report h2{font-size:16px;margin:26px 0 9px}.report h3{font-size:12px}.report .report-warning{border:2px solid #b17c28;padding:12px;background:#fff9ea}.report table{font-size:10px}.report th,.report td{padding:7px;border-bottom:1px solid #ddd}.report .report-drawing{max-height:440px;overflow:hidden}.report .report-drawing svg{width:100%;height:430px}.report code{font-size:10px;overflow-wrap:anywhere}.report li{margin:5px 0}.report p{margin-bottom:10px}#print-report{display:none}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:90vw;padding:13px 20px;background:var(--ink);color:white;border-radius:8px;box-shadow:0 5px 30px #0002;font-size:12px;z-index:20}.chart{display:block;width:100%;height:210px}.chart text{font-family:'DM Sans',sans-serif;font-size:10px;fill:var(--muted)}.source-meta{font-size:10px!important;color:var(--muted)!important}
@media(min-width:1500px){.workbench{grid-template-columns:330px minmax(400px,1fr) 290px}.drawing{height:649px}.anchor-card .field-grid{gap:12px}}@media(max-width:1200px){main{padding:25px 20px 0}.topbar{padding:0 20px;gap:20px}.module-tag{display:none}.workbench{grid-template-columns:270px minmax(320px,1fr)}.summary-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 210px;gap:15px}.summary-heading{grid-column:1/-1;padding-bottom:0}.summary-panel #live-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.status-card{grid-column:1/-1;margin:0}.support-detail{margin:0}.summary-panel>.button{grid-column:1/-1}.anchor-grid{grid-template-columns:repeat(2,1fr);gap:20px}.anchor-card:nth-child(3){border:0;padding-left:0}.drawing{height:655px}.content-grid{grid-template-columns:1fr}}@media(max-width:720px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:17px;gap:21px}.brand{font-size:23px}.top-actions{gap:5px}.button{font-size:10px;padding:10px}.top-actions .button.quiet{font-size:0}.top-actions .button.quiet:first-child:after{content:'↓';font-size:15px}.top-actions .button.quiet:nth-child(2):after{content:'↑';font-size:15px}main{padding:24px 15px 0}.page-heading{align-items:flex-start}h1{font-size:31px;gap:10px}.version-label{font-size:9px;padding:5px}.heading-meta{font-size:8px;letter-spacing:.3px}.intro{font-size:11px}.eyebrow{font-size:8px}.safety-banner{font-size:10px;align-items:flex-start;padding:12px}.safety-banner .text-button{display:none}.tabs{gap:18px;overflow-x:auto;white-space:nowrap}.tab{gap:5px}.tab span{font-size:10px}.autosave{display:none}.workbench{display:flex;flex-direction:column}.drawing-panel{order:-1;width:100%}.drawing{height:460px}.input-panel{width:100%;max-height:none}.summary-panel{display:flex;flex-direction:column;width:100%;gap:10px}.summary-panel #live-results{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric.primary{grid-column:1/-1}.metric{margin:0;padding:16px}.summary-heading{padding:7px 0}.metric-value{font-size:26px}.support-detail{display:none}.anchor-panel{padding:17px}.anchor-header{align-items:flex-start}.anchor-header>.tiny-tag{display:none}.anchor-header h2{font-size:15px}.anchor-grid{grid-template-columns:1fr}.anchor-card,.anchor-card:nth-child(3){border:0;border-top:1px solid var(--line);padding:16px 0 0}.anchor-card:first-child{padding:0;border:0}.anchor-card .field-grid{gap:12px}.content-card{padding:18px;overflow:auto}.content-card h2{font-size:17px}.content-card td,.content-card th{padding:11px 7px;font-size:9px}footer{flex-wrap:wrap;font-size:7px;gap:15px}footer>span:nth-child(2){order:3;width:100%;line-height:1.7}.drawing-footer{gap:10px;font-size:8px}.drag-hint{display:none}.dialog-actions{flex-wrap:wrap}.field-grid{gap:14px}.report h1{font-size:21px}}
.report .content-grid{display:block}.report .content-card{padding:0;border:0;border-radius:0}.report .content-card h2{font-size:15px}.report .content-card p,.report .content-card li{font-size:11px;color:#20343a}.report .issues li{font-size:10px}.report .content-card ul,.report .content-card ol{padding-left:20px}
@media print{body{background:#fff}body>*{display:none!important}#print-report{display:block!important}#print-report .report{font-size:10px;color:#000}.report h2,.report h3{break-after:avoid}.report table{break-inside:auto}.report tr{break-inside:avoid}.report .report-drawing{break-inside:avoid}.report .report-warning{background:none}.report th{background:#eee!important}@page{size:A4;margin:16mm}}
