:root{color:#14231b;font-synthesis:none;--ink:#14231b;--green:#155f3b;--lime:#c8ef68;--paper:#fbfaf5;--line:#ccd2c8;--muted:#657269;--danger:#a8322d;--warning:#966315;--info:#315e72;background:#f2f0e7;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button-link{border:1px solid var(--green);color:var(--green);cursor:pointer;background:0 0;border-radius:999px;padding:.58rem .9rem;font-weight:650;text-decoration:none}button:hover,.button-link:hover{background:#e5eedf}button.primary,.unit-toggle button.active{background:var(--green);color:#fff}.danger{color:var(--danger);border-color:#0000}main{max-width:1440px;min-height:100vh;margin:auto;padding:0 28px}nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:76px;display:flex}.brand{color:var(--ink);letter-spacing:-.03em;font-weight:850;text-decoration:none}.nav-actions{color:var(--muted);align-items:center;gap:14px;font-size:.86rem;display:flex}.hero{justify-content:space-between;align-items:flex-end;gap:30px;padding:58px 0 38px;display:flex}.hero>div:first-child{max-width:850px}.eyebrow{text-transform:uppercase;color:var(--green);letter-spacing:.13em;margin:0 0 .8rem;font-size:.74rem;font-weight:800}.hero h1,.prose h1{letter-spacing:-.065em;margin:0 0 1rem;font-size:clamp(3rem,7vw,6.8rem);line-height:.9}.hero p{max-width:720px;color:var(--muted);font-size:1.12rem}.unit-toggle{background:#e1e4db;border-radius:999px;padding:4px;display:flex}.unit-toggle button{border:0;min-width:60px}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 35px #22362a0b}.calculator-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);align-items:start;gap:20px;display:grid}.input-panel{padding:24px}.result-panel{gap:14px;display:grid;position:sticky;top:16px}.section-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.section-heading h2,.section-heading h3{margin:0}.status-dot{color:var(--green);background:#e3f1e3;border-radius:999px;padding:.35rem .6rem;font-size:.75rem}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0;display:grid}.field{color:var(--muted);gap:6px;font-size:.82rem;display:grid}.field input,.field select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.72rem}.field small{color:var(--danger)}.profile-summary{background:var(--line);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:16px;display:grid;overflow:hidden}.profile-summary div{background:#f5f5ef;gap:3px;padding:12px;display:grid}.profile-summary span{color:var(--muted);font-size:.7rem}.profile-summary strong{font-size:.84rem}.check-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:10px;padding:14px 0;display:flex}.load-block{margin-top:26px}.load-block .section-heading{margin-bottom:12px}.load-row{background:#f2f3ec;border-radius:12px;align-items:end;gap:10px;margin-top:8px;padding:10px;display:grid}.load-row.point{grid-template-columns:28px 1fr 1fr 36px}.load-row.distributed{grid-template-columns:28px 1fr 1fr 1fr 36px}.load-number{text-align:center;color:var(--muted);align-self:center}.icon-button{width:34px;height:34px;padding:0;font-size:1.4rem}.muted{color:var(--muted);font-size:.85rem}.metrics{grid-template-columns:1fr 1fr;gap:12px;display:grid}.metric{gap:6px;padding:16px;display:grid}.metric span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem}.metric strong{letter-spacing:-.04em;font-size:1.45rem}.metric small{color:var(--muted)}.reaction-card,.limits,.utilization{padding:18px}.reaction-card h3,.limits h3,.utilization h3{margin:0 0 12px}.reaction-card div,.limits div{border-top:1px solid #e3e6df;justify-content:space-between;gap:12px;padding:8px 0;font-size:.84rem;display:flex}.limits div{grid-template-columns:1fr 1fr 1fr;display:grid}.limits .pass{color:var(--green)}.limits .fail{color:var(--danger)}.utilization>div{grid-template-columns:80px 1fr 58px;align-items:center;gap:8px;margin:10px 0;font-size:.82rem;display:grid}.utilization progress{width:100%;accent-color:var(--green)}.utilization small{color:var(--muted);margin-top:12px;line-height:1.45;display:block}.notice{border-left:5px solid;gap:4px;padding:16px;font-size:.86rem;line-height:1.45;display:grid}.notice.danger{border-color:var(--danger);color:var(--ink);background:#fff1ef}.notice.warning{border-color:var(--warning);background:#fff8e8}.notice.info{border-color:var(--info);background:#edf6f8}.diagram-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0;display:grid}.diagram{margin:0;padding:14px}.diagram figcaption{justify-content:space-between;display:flex}.diagram figcaption span{color:var(--muted);font-size:.8rem}.diagram svg{width:100%;margin-top:8px}.diagram text{fill:var(--muted);font-size:11px}.diagram-axis{stroke:#8a958c;stroke-width:1px}.diagram-grid{stroke:#dfe3dc}.diagram-line{fill:none;stroke:var(--green);stroke-width:2.5px}.diagram-fill{fill:#80bf8733}.warnings-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 35px;display:grid}.modal-backdrop{z-index:20;background:#10251ad9;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{max-width:620px;padding:32px}.modal h2{margin:.2rem 0;font-size:2.3rem}.modal p{line-height:1.65}.prose{max-width:850px;margin:80px auto;padding:50px}.prose p{margin-bottom:30px;font-size:1.12rem;line-height:1.8}footer{border-top:1px solid var(--line);color:var(--muted);padding:24px 0 36px;font-size:.75rem;line-height:1.5}footer a{color:var(--green);font-weight:700}footer p{max-width:900px}@media (width<=1000px){.calculator-grid{grid-template-columns:1fr}.result-panel{position:static}.diagram-grid,.warnings-grid{grid-template-columns:1fr}.profile-summary{grid-template-columns:1fr 1fr}}@media (width<=650px){main{padding:0 14px}.nav-actions span{display:none}.hero{padding-top:35px;display:block}.hero h1{font-size:3.6rem}.field-grid,.metrics{grid-template-columns:1fr}.load-row.point,.load-row.distributed{grid-template-columns:28px 1fr 36px}.load-row .field{grid-column:2}.load-row .icon-button{grid-area:1/3}.profile-summary{grid-template-columns:1fr 1fr}.input-panel{padding:16px}}.nav-link{color:var(--green);text-overflow:ellipsis;max-width:260px;font-weight:700;text-decoration:none;overflow:hidden}.auth-card{max-width:520px;margin:70px auto;padding:32px}.auth-card h1{letter-spacing:-.05em;margin:.2rem 0 1.5rem;font-size:2.8rem}.auth-card form{gap:16px;display:grid}.auth-card form button{justify-self:start}.auth-card>.button-link{margin-top:20px;display:inline-block}.auth-divider{color:var(--muted);align-items:center;gap:12px;margin:20px 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-message{background:#edf6f0;border-radius:10px;padding:12px;line-height:1.5}.auth-switches{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.auth-switches button{border-color:#0000;padding-left:0}.account-page{min-height:65vh;padding:60px 0}.account-page h1{letter-spacing:-.05em;margin:.2rem 0;font-size:clamp(2rem,5vw,4.5rem)}.projects-card{margin-top:28px;padding:24px}.projects-card article{border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding:14px 0;display:flex}.projects-card article span{color:var(--muted);font-size:.85rem}@media (width<=650px){.nav-link{max-width:110px}.auth-card{margin:35px auto;padding:22px}.projects-card article{display:grid}}.frame-page{max-width:1180px;margin:auto;padding:2rem}.frame-layout{grid-template-columns:minmax(0,1fr) 300px;gap:1rem;display:grid}.frame-canvas{background:#fff;border:1px solid #aac0bb;border-radius:12px;width:100%}.frame-toolbar,.save-row{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.frame-toolbar .active{outline:3px solid #f2a900}.frame-editor{flex-direction:column;gap:.7rem;padding:1rem;display:flex}.frame-editor label{flex-direction:column;gap:.25rem;display:flex}.frame-editor input,.frame-editor select,.save-row input{padding:.55rem}.dirty{color:#a85215;font-weight:700}.result-table{padding:1rem;overflow:auto}.frame-page table{border-collapse:collapse;width:100%}.frame-page th,.frame-page td{text-align:left;border-bottom:1px solid #d9e2df;padding:.5rem}@media (width<=800px){.frame-layout{grid-template-columns:1fr}.frame-page{padding:1rem}}
