@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;color:#233c34;background:#f6f7f3;font-synthesis:none;--green:#214f40;--line:#e0e5df;--muted:#7a877f}*{box-sizing:border-box}body{margin:0;font-size:13px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,[aria-disabled=true]{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #87b79b;outline-offset:3px}input:focus,select:focus{outline:2px solid #83a895;outline-offset:1px}h1,h2,h3,p{margin:0}h1{font-size:34px;font-weight:500;letter-spacing:-1.1px;margin:9px 0 6px}h2{font-size:15px;font-weight:600}h3{font-size:12px;font-weight:600}small{font-size:11px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600;letter-spacing:-.5px}.brand-mark{width:31px;height:34px;background:var(--green);color:#fff;display:grid;place-items:center;font-family:serif;font-size:28px;border-radius:3px}.version{font:10px 'IBM Plex Mono',monospace;color:#8b988f;border:1px solid var(--line);padding:1px 5px;margin-left:1px}.header-right{display:flex;gap:28px;align-items:center}.region{font:11px 'IBM Plex Mono',monospace;color:var(--muted)}.language{display:flex;background:#f3f5f1;padding:3px;border:1px solid var(--line);border-radius:6px}.language a{padding:5px 11px;color:#879189;font-size:11px}.language a[aria-current]{background:white;color:#294d3e;box-shadow:0 1px 4px #00000012;border-radius:3px}.layout{display:grid;grid-template-columns:205px 1fr;min-height:calc(100vh - 76px)}.sidebar{border-right:1px solid var(--line);padding:34px 18px;display:flex;flex-direction:column;background:#fafbf8}.eyebrow{font-size:10px;color:#89958c;letter-spacing:1.4px;font-weight:600}.sidebar>.eyebrow{font-size:9px;margin:0 12px 23px;letter-spacing:1.1px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;color:#768178;border-radius:5px}.sidebar nav a.active{color:#254e3e;background:#e9efe6;font-weight:600}.nav-icon{font-size:19px;line-height:1}.sidebar-bottom{margin-top:auto;padding:90px 11px 4px;font-size:10px;color:#7f8b82}.sidebar-bottom small{display:block;padding-left:12px;margin-top:5px;font:10px 'IBM Plex Mono',monospace}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#74957c;margin-right:7px}main{min-width:0;padding:35px 38px 60px;max-width:1700px;width:100%;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}.page-heading p{color:var(--muted);font-size:12px}.secondary{background:#fff;border:1px solid #d6ddd5;border-radius:5px;padding:9px 15px;font-size:11px;white-space:nowrap;display:inline-block}.secondary:hover{background:#eef2eb}.calculator-grid{display:grid;grid-template-columns:318px minmax(0,1fr);gap:25px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-heading a{font-size:10px;color:#7f8d80}.panel-heading h2{font-size:13px}.panel-heading>.muted{font-size:10px}.form-section{padding:21px 20px 6px;border-bottom:1px solid #edf0eb}.form-section h3{margin-bottom:18px;display:flex;align-items:center;gap:9px}.form-section h3>span{font:10px 'IBM Plex Mono',monospace;color:#91a08e}.field{display:block;margin-bottom:16px;font-size:11px;min-width:0}.field>span{display:flex;justify-content:space-between;color:#65746a;margin-bottom:7px}.field em{font:10px 'IBM Plex Mono',monospace;color:#9ba69c}input,select{border:1px solid #dfe4dc;border-radius:4px;background:#fff;min-width:0;width:100%;padding:10px;color:#31443a;font-size:12px}select{height:38px;padding:7px}.input-wrap{position:relative}.input-wrap input{padding-right:42px;font-family:'IBM Plex Mono',monospace;font-size:12px;height:38px}.input-wrap>span{position:absolute;right:10px;top:11px;color:#98a195;font-size:10px;pointer-events:none}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button{appearance:none}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.field-grid .field>span{font-size:10px;min-height:15px}.form-footer{padding:19px 20px}.primary{color:#fff;background:var(--green);border:1px solid var(--green);border-radius:5px;padding:12px 16px;font-size:12px;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#34634e}.form-footer .primary{width:100%}.small-note{font-size:11px;color:#8a9489;line-height:1.7;margin-bottom:16px}.output{display:grid;gap:19px}.result-heading{display:flex;justify-content:space-between;align-items:center;min-height:67px}.result-heading h2{font-size:25px;letter-spacing:-.7px;font-weight:500;margin:5px 0 3px}.result-heading .eyebrow{font-size:9px}.muted{color:var(--muted);font-size:11px}.dot-separator{margin:0 9px;color:#c7cec2}.badge{padding:4px 8px;border-radius:4px;font-size:9px;white-space:nowrap;display:inline-block}.badge.pass{background:#edf4ed;color:#52725b}.badge.fail{background:#fbefe2;color:#aa6c38}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:white;border:1px solid var(--line);border-radius:6px;padding:20px 0}.metrics>div{padding:0 20px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics span{display:block;font-size:10px;color:#84907f}.metrics strong{display:block;font:27px 'IBM Plex Mono',monospace;letter-spacing:-1px;margin:11px 0 7px;font-weight:400;white-space:nowrap}.metrics strong small{margin-left:7px;font:10px 'DM Sans',sans-serif;letter-spacing:0;color:#899781}.metrics .warn strong{color:#ac7642}.diagrams{display:grid;grid-template-columns:1fr 1fr;padding:16px;gap:15px}.diagram{min-width:0}.diagram-heading{display:flex;justify-content:space-between;font-size:10px;padding:0 0 12px;color:#6d7c6f}.diagram-heading b{font-weight:500}.diagram-heading span{color:#9da695;font-family:monospace}.diagram svg{width:100%;display:block;background:#f9fbf7;border-radius:4px}.diagram text{font:10px 'IBM Plex Mono',monospace;fill:#6f8071}.diagram text.diagram-secondary{font-size:9px;fill:#92a08f}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-size:9px;color:#8b9789;font-weight:500;background:#fafbf8;padding:12px 18px;white-space:nowrap}td{padding:14px 18px;border-top:1px solid #ecf0e8;font-family:'IBM Plex Mono',monospace;font-size:11px;white-space:nowrap}td:first-child{font-family:inherit}td b{font-weight:500;font-size:11px}td small,th small{display:block;font-size:9px;font-weight:400;color:#9aa38f;margin-top:4px}td.bad{color:#b4783e}.results-table td:first-child{white-space:normal;min-width:140px}.results-table td{padding:15px 17px}.results-table td:last-child small{font-size:9px}.utilization{width:62px;height:2px;background:#edf0e7;margin-top:7px;overflow:hidden}.utilization i{display:block;height:100%}.results-footer{padding:12px 20px;font-size:10px;color:#89937e;border-top:1px solid var(--line);background:#fdfefb}.count{font:10px 'IBM Plex Mono',monospace;color:#92a08c}.properties dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:18px 20px;gap:20px}.properties dt{font-size:10px;color:#899781}.properties dd{margin:6px 0 0;font:13px 'IBM Plex Mono',monospace}.properties dd small{font:10px 'DM Sans',sans-serif;color:#95a08b}.source-line{font-size:10px;color:#8d9983;padding:10px 20px;border-top:1px solid var(--line)}.formula-details summary{padding:15px 20px;cursor:pointer;font-size:12px}.formula-details .small-note{padding:15px 20px;margin:0}.method{padding:5px 0}.method h3{margin-bottom:10px;font-size:11px}.method p{font-size:10px;color:#909982;line-height:1.9;margin-bottom:6px}.output-actions{display:flex;align-items:center;gap:18px}.output-actions p{font-size:10px;color:#899780;max-width:360px}.error-banner,#stale-message{background:#fff0de;color:#996132;padding:14px 18px;border-radius:5px;font-size:12px}.field-error{display:block;color:#ab543d;font-size:10px;margin-top:5px}[aria-invalid=true]{border-color:#b76e55}.empty-state{padding:45px;text-align:center;color:#829079}.library-search{display:flex;gap:12px;margin-bottom:18px}.library-search input{max-width:400px}.library-search select{max-width:240px;height:auto}.use-link{color:#487354;font-family:'DM Sans',sans-serif;font-size:10px}.basis-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}.text-panel{padding:30px}.text-panel h2{font-size:20px;margin:12px 0}.text-panel h3{margin:24px 0 8px}.text-panel p{color:#7f8c79;line-height:1.9;margin-bottom:16px}.text-panel a{color:#4f7557}.source-name{overflow-wrap:anywhere}
@media(min-width:1550px){.calculator-grid{grid-template-columns:350px minmax(0,1fr)}main{padding-left:50px;padding-right:50px}.metrics strong{font-size:33px}}
@media(max-width:1200px){.layout{grid-template-columns:160px 1fr}.sidebar{padding:28px 10px}.sidebar>.eyebrow{font-size:8px}main{padding:28px 24px}.calculator-grid{grid-template-columns:285px minmax(0,1fr);gap:18px}.metrics>div{padding:0 13px}.metrics strong{font-size:22px}.diagrams{gap:10px}.results-table td{padding:14px 11px}.panel-heading{padding:16px}.form-section{padding:18px 16px 4px}}
@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{padding:12px 24px;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;gap:10px}.sidebar>.eyebrow,.sidebar-bottom{display:none}.sidebar nav a{padding:7px 14px}.page-heading{margin-bottom:25px}.topbar{height:66px;padding:0 24px}.calculator-grid{grid-template-columns:290px minmax(0,1fr)}.metrics strong{font-size:20px}.metrics span:last-child{font-size:9px}.diagrams{grid-template-columns:1fr}.diagram svg{max-height:200px}.basis-grid{grid-template-columns:1fr}}
@media(max-width:730px){main{padding:25px 18px}.topbar{padding:0 18px}.brand{font-size:17px}.header-right{gap:12px}.region{display:none}.sidebar{padding:10px}.sidebar nav{justify-content:center;gap:0}.sidebar nav a{font-size:11px}.page-heading{align-items:flex-start;gap:14px}h1{font-size:28px}.page-heading p{max-width:230px}.print-button{font-size:10px;padding:7px 9px;margin-top:28px}.calculator-grid{grid-template-columns:1fr}.field-grid{gap:0 18px}.inputs .form-section{padding:22px}.output{margin-top:9px}.metrics strong{font-size:24px}.diagrams{grid-template-columns:1fr 1fr}.properties dl{gap:20px 9px}.properties dd{font-size:12px}.results-table td{padding:14px 12px}.library-search{flex-wrap:wrap}.library-search input{max-width:none}.library-search select{flex:1}.output-actions{align-items:flex-start;flex-direction:column}.text-panel{padding:24px}.source-line{overflow-wrap:anywhere}}
@media(max-width:420px){.diagrams{grid-template-columns:1fr}.metrics strong{font-size:20px}.metrics>div{padding:0 10px}.metrics strong small{margin-left:3px}}
@media print{body{background:white;color:black}.topbar{height:50px;padding:0}.sidebar,.header-right,.print-button,.form-footer,.output-actions,.panel-heading a,#stale-message{display:none!important}.layout{display:block}main{padding:20px 0;max-width:none}.page-heading{margin-bottom:15px}h1{font-size:25px}.calculator-grid{display:block}.inputs{margin-bottom:20px}.inputs .form-section{display:inline-block;vertical-align:top;width:32.8%;border:0;padding:10px}.inputs .panel-heading{padding:10px}.field{margin-bottom:8px}input,select{border:0;padding:1px!important;height:24px!important}.input-wrap>span{top:3px}.output{gap:12px}.panel,.metrics,.diagram{break-inside:avoid}.diagrams{grid-template-columns:1fr 1fr}.method p{color:#555}.formula-details{display:none}.brand-mark{background:white;color:black}.library-search{display:none}}
.catalog-warning{padding:12px 20px;background:#fff5e9;color:#9d6d40;font-size:11px;border-top:1px solid var(--line)}
.section-orientation{margin:0 0 20px;border:1px solid #e1e7dd;border-radius:5px;background:#f7faf5;overflow:hidden}.section-orientation[hidden]{display:none}.section-orientation figcaption{padding:12px 13px 0;display:flex;flex-direction:column;gap:3px}.section-orientation figcaption b{font-size:11px;font-weight:500}.section-orientation figcaption span{font:10px 'IBM Plex Mono',monospace;color:#71816d;overflow-wrap:anywhere}.section-orientation svg{display:block;width:100%;max-height:245px}.section-orientation svg text{font:600 14px 'IBM Plex Mono',monospace}.axis-legend{display:flex;justify-content:space-between;gap:5px;margin:0 12px 12px;font:10px 'IBM Plex Mono',monospace}.axis-legend i{font-style:normal;font-weight:600;display:inline-block;margin-right:4px}.axis-x{color:#a35c32}.axis-y{color:#356b8a}.axis-z{color:#57763e}.section-orientation p{padding:0 13px;font-size:10px;line-height:1.7;color:#677761}.section-orientation>small{display:block;padding:8px 13px 13px;font-size:9px;line-height:1.6;color:#829079}@media print{.section-orientation{break-inside:avoid}.section-orientation svg{max-height:155px}}
.auth-page{max-width:460px;padding-top:80px}.auth-page .language{width:max-content;margin:20px 0}.auth-page .field{margin-top:20px}.auth-page .primary{width:100%;justify-content:center}.section-editor{max-width:700px}.section-editor>form{margin-top:24px}.section-editor .field{margin-top:14px}.delete-section{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.delete-section summary{cursor:pointer;color:#a25538}.delete-section p{margin:12px 0}.header-right>form{margin:0}@media(max-width:730px){.header-right{gap:6px}.header-right .secondary{padding:6px 8px}.header-right .region{display:none}}

.print-snapshot{display:none}
@media print{#calculator-form{display:none!important}.print-snapshot{display:block;overflow-wrap:anywhere}.print-snapshot dl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.print-snapshot dd{margin:0}.print-snapshot p{font-size:9px}#stale-message:not([hidden]){display:block!important}}

.snapshot-orientation .section-orientation{margin:0;display:grid;grid-template-columns:minmax(170px,240px) 1fr;column-gap:16px;padding:12px}
.snapshot-orientation svg{grid-column:1;grid-row:1 / span 5;max-height:220px;align-self:center}
.snapshot-orientation figcaption,.snapshot-orientation .axis-legend,.snapshot-orientation p,.snapshot-orientation small{grid-column:2}
.snapshot-orientation .axis-legend{justify-content:flex-start;gap:18px;margin-top:12px}
@media(max-width:730px){.snapshot-orientation .section-orientation{grid-template-columns:minmax(130px,180px) 1fr;column-gap:4px;padding:6px}.snapshot-orientation .axis-legend{flex-wrap:wrap;gap:8px}}
@media print{.snapshot-orientation{break-inside:avoid}.snapshot-orientation .section-orientation{grid-template-columns:170px 1fr}.snapshot-orientation svg{max-height:155px}}

.distributed-loads{border-top:1px solid #edf0eb;padding-top:16px}
.field.toggle{display:flex;align-items:center;gap:9px;margin-bottom:15px}
.field.toggle input[type=checkbox]{width:15px;height:15px;flex:none;padding:0;accent-color:var(--green)}
.field.toggle>span{display:block;margin:0;font-size:11px;color:#65746a}
td.reduced{color:#7b6a45}
td.reduced::after{content:' φ';font-size:9px;color:#a2977c}
