:root{--ink:#193c38;--muted:#74827b;--teal:#167a66;--teal-dark:#0e5e4f;--line:#e1e7e0;--paper:#f5f7f2;--white:#fff;--soft:#e9f1e9;--gold:#d8ac66;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,label[for=csv-file]{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sidebar{position:fixed;width:278px;inset:0 auto 0 0;padding:38px 22px 24px;background:#fdfefb;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{font-size:26px;font-weight:760;letter-spacing:-1.2px;display:flex;align-items:center;gap:11px;padding:0 12px}.brandmark{height:37px;width:37px;background:var(--ink);border-radius:12px;color:white;font-family:Georgia,serif;font-style:italic;font-size:29px;text-align:center;line-height:31px;position:relative}.brandmark span{color:#c1d5a3;font-size:24px;position:absolute;right:3px;top:8px}.side-caption{font-size:9px;font-weight:650;letter-spacing:1.5px;color:#8c978c;margin:52px 12px 16px}nav{display:grid;gap:7px}nav button{display:flex;align-items:center;width:100%;padding:16px 12px;border:0;background:transparent;border-radius:9px;text-align:left;color:#53675e;gap:12px;font-size:12px;font-weight:650}nav button:hover{background:#f0f4ed}nav button.active{background:#e6f0e7;color:#185c48}nav small{display:block;font-size:10px;font-weight:400;color:#819083;margin-top:5px}.nav-icon{font-family:Georgia,serif;font-size:25px;width:25px;text-align:center;font-weight:400}.nav-tag{font-size:8px;margin-left:auto;color:#758c78;font-weight:600;white-space:nowrap}.side-note{padding:19px 16px;background:#f2f5ec;border:1px solid #e5eadd;border-radius:10px;margin:48px 6px 25px;font-size:11px;line-height:1.6}.side-note strong{display:block;margin-top:10px;font-size:12px}.side-note p{color:#7c8878}.note-symbol{font-family:Georgia,serif;border:1px solid #9fae90;border-radius:50%;width:19px;height:19px;display:grid;place-items:center;color:#6d8161}.side-bottom{margin-top:auto;padding:0 12px;color:#8c978d;font-size:10px;line-height:1.6;display:flex;gap:8px;align-items:baseline}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#79a68b;flex-shrink:0}.workspace{margin-left:278px}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 46px;font-size:11px;color:#89978b;background:#fbfcf9}.topbar strong{color:#516a5d;font-weight:500}.crumb{padding:0 14px;color:#c6cfc2}main{max-width:1530px;margin:auto;padding:44px 46px 22px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#79917b}h1{font-size:33px;letter-spacing:-1.2px;font-weight:620;margin:12px 0 10px;line-height:1.15}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:34px}.page-heading p{font-size:12px;color:#7c8a7f;margin:0;line-height:1.7}.task-badge{border:1px solid #dce4d6;border-radius:6px;padding:7px 11px;font-size:10px;color:#70836d;white-space:nowrap}.work-grid{display:grid;grid-template-columns:minmax(300px,.87fr) minmax(350px,1.25fr);gap:26px;align-items:start}.card{border:1px solid var(--line);background:white;border-radius:13px;box-shadow:0 4px 16px #244b3010}.input-card{padding:24px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:24px;border-bottom:1px solid #eef1e9;margin-bottom:24px}.card-heading>div{display:flex;align-items:center;gap:9px}h2{font-size:13px;margin:0;font-weight:650;letter-spacing:-.1px}.step{color:#8b9c82;font-size:9px;border:1px solid #e1e7db;border-radius:5px;padding:4px}.badge{font-size:8px;border:1px solid #e7e6d7;background:#f9f9ed;color:#9a8e51;border-radius:4px;padding:4px 6px;white-space:nowrap}.field-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:7px}label{font-size:11px;font-weight:600;color:#50665a}.text-button{background:transparent;border:0;padding:0;font-size:10px;font-weight:550;color:var(--teal);display:inline-flex;gap:8px;align-items:center}.text-button:hover{text-decoration:underline}.text-button.muted{color:#8b978b}.data-wrap{border:1px solid #dce4d9;border-radius:7px;overflow:hidden;background:#fcfdf9}.data-head{display:flex;justify-content:space-between;background:#f2f5ee;border-bottom:1px solid #e4e9df;padding:10px 14px;font-size:9px;color:#8c9987}.data-head span:first-child{font-family:ui-monospace,Consolas,monospace;color:#57785f}textarea{display:block;width:100%;resize:vertical;border:0;outline:none;background:transparent;min-height:170px;max-height:600px;padding:13px 15px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.9;color:#315b4d;tab-size:5}textarea:focus{box-shadow:inset 0 0 0 2px #7ba98c}.field-help{font-size:10px;line-height:1.7;color:#8b968a;margin:10px 0 16px}.import-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:21px;border-bottom:1px solid #edf0e8}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:6px;padding:10px 13px;font-size:10px;font-weight:550;line-height:1.4}.secondary{background:#fff;border-color:#dce5d9;color:#57755c}.button:hover{filter:brightness(.97)}.plain{background:transparent;color:#6f836f;padding:6px}.primary{color:white;background:var(--teal);width:100%;padding:14px 16px;justify-content:space-between;font-size:12px;margin-top:3px}.settings-row{display:flex;gap:15px;margin-top:20px;align-items:start}.settings-row>label{display:grid;gap:8px;flex:1}input,select{display:block;border:1px solid #dce4d9;border-radius:5px;padding:10px 11px;font-size:12px;color:#395c48;width:100%;background:#fff}input:focus,select:focus{outline:2px solid #8fbaa0;outline-offset:1px}.input-footer{margin-top:20px;padding-top:16px;border-top:1px solid #edf0e8;font-size:9px;color:#939f8e;display:flex;gap:7px}.input-footer span{color:#6a9d78}.results-heading{display:flex;justify-content:space-between;align-items:center;height:29px;margin-bottom:14px}.result-state{font-size:9px;color:#7f987b;display:flex;align-items:center;gap:6px}.result-state:before{content:"";height:5px;width:5px;background:#89a97e;border-radius:50%}.result-state.stale{color:#ab8a4e}.result-state.stale:before{background:#c8a65d}.result-hero{background:#e9f0e4;border:1px solid #dce7d5;border-radius:11px;padding:20px 23px;position:relative;overflow:hidden;margin-bottom:14px}.hero-caption{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:#819375;margin-bottom:14px}.equation{font-family:Georgia,"Times New Roman",serif;font-size:30px;letter-spacing:-.6px;color:#214c3b;line-height:1.25;overflow-wrap:anywhere}.hero-sub{font-size:10px;color:#7b9172;margin-top:12px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.metric{border:1px solid #e0e6dc;border-radius:8px;padding:14px 15px;background:#fff;min-width:0}.metric-label{color:#8a9787;font-size:9px;margin-bottom:9px}.metric-value{font-size:18px;font-weight:560;letter-spacing:-.6px;overflow-wrap:anywhere}.metric-value small{font-size:10px;font-weight:400;color:#8b9a85;margin-left:4px}.metric-note{font-size:8px;color:#8b9a85;line-height:1.5;margin-top:7px}.chart-card{padding:21px 23px;margin-bottom:14px;overflow:hidden}.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.chart-heading h3{font-size:11px;font-weight:600;margin:0}.legend{display:flex;gap:13px;color:#8e9b88;font-size:8px}.legend span{display:flex;align-items:center;gap:4px}.legend-dot{width:5px;height:5px;background:#1e8a75;border-radius:50%}.legend-line{width:13px;height:2px;background:#c7a269}.chart{width:100%;height:auto;display:block}.chart text{font-family:Inter,"Segoe UI",sans-serif;font-size:11px;fill:#90a087}.chart .grid{stroke:#edf1e8;stroke-width:1}.chart .axis{stroke:#d9e3d4;stroke-width:1}.chart .fit{stroke:#c1a06a;stroke-width:2;fill:none}.chart .point{fill:#238b75;stroke:#fff;stroke-width:2}.chart-caption{font-size:9px;color:#96a08f;margin:8px 0 0}.detail-card{padding:18px 22px}.detail-card h3{font-size:11px;font-weight:600;margin:0 0 10px}.detail-card p{font-size:10px;line-height:1.8;color:#84917d;margin:8px 0}.detail-card details{font-size:10px;color:#6d8468;margin-top:12px}summary{cursor:pointer;font-weight:600;padding:7px 0}table{width:100%;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}th,td{padding:9px 7px;text-align:right;border-bottom:1px solid #edf1e7;white-space:nowrap}th{font-weight:600;color:#899780}td:first-child,th:first-child{text-align:left}.table-scroll{overflow:auto;max-height:320px}.detail-values{display:flex;gap:18px;flex-wrap:wrap;font-size:10px;color:#7e8e77;line-height:1.7}.detail-values strong{font-weight:600;color:#42653c}.export-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;font-size:9px;color:#94a08e}.export-row>div{display:flex;gap:17px}.method-strip{display:flex;align-items:center;gap:17px;padding:22px 24px;border:1px solid #e1e7d9;border-radius:10px;margin-top:30px;background:#eff3e9}.method-icon{font-family:Georgia,serif;font-size:29px;color:#94a686;border-right:1px solid #dce4d2;padding-right:20px}.method-strip strong{font-size:11px;font-weight:600;color:#648059}.method-strip p{font-size:10px;color:#92a084;line-height:1.6;margin:4px 0 0}.method-strip button{margin-left:auto;white-space:nowrap;color:#648059}footer{font-size:8px;color:#9ca694;display:flex;gap:8px;justify-content:center;margin:27px 0 0;line-height:1.8}.empty{padding:70px 25px;text-align:center;color:#819777}.empty>span{font-family:Georgia,serif;font-size:60px;color:#b4c5a4}.empty h3{font-size:15px;font-weight:500}.empty p{font-size:11px;line-height:1.7}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px}.field-grid label input{margin-top:8px}.field-grid small{display:block;color:#95a08c;font-size:9px;font-weight:400;margin-top:7px}#error{padding:12px;border-radius:6px;background:#fff0e9;color:#a3482d;border:1px solid #eed4c8;font-size:11px;line-height:1.6;margin:12px 0}.result-warning{padding:12px 15px;border:1px solid #e8dec1;border-radius:7px;background:#fcf9ed;color:#9a8958;font-size:10px;line-height:1.7;margin-bottom:14px}dialog{max-width:760px;width:calc(100% - 30px);max-height:88vh;border:1px solid #dae4d4;border-radius:15px;padding:28px;color:var(--ink);background:#fbfcf8;box-shadow:0 20px 100px #123f3a40}dialog::backdrop{background:#183f3766;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.dialog-header h2{font-size:23px;margin-top:7px}.formula-list section{padding:12px 0;border-top:1px solid var(--line)}.formula-list h3{font-size:13px}.formula-list p{font-size:12px;color:#74856d;line-height:1.8}.formula{font-family:Georgia,serif;font-size:17px;line-height:1.9;background:#edf3e7;padding:14px;border-radius:7px;overflow-wrap:anywhere}:focus-visible{outline:2px solid #2e8b72;outline-offset:3px}
@media(min-width:1600px){main{padding-top:55px}.work-grid{gap:35px}.input-card{padding:29px}.metric-value{font-size:23px}.equation{font-size:35px}}
@media(max-width:1200px){.sidebar{width:235px;padding-left:13px;padding-right:13px}.workspace{margin-left:235px}main{padding:32px 25px}.topbar{padding:0 25px}.work-grid{grid-template-columns:minmax(270px,.9fr) minmax(300px,1.1fr);gap:19px}.input-card{padding:19px}.nav-tag{display:none}.side-note{margin-top:35px}.metric{padding:12px 10px}.metric-value{font-size:17px}.legend{gap:8px}.equation{font-size:26px}.chart-card{padding:20px 17px}}
@media(max-width:980px){.sidebar{width:205px}.workspace{margin-left:205px}.brand{font-size:23px;padding:0 8px}.side-caption{font-size:8px;letter-spacing:1px}.nav-icon{width:18px;font-size:23px}nav button{font-size:11px;padding:14px 9px;gap:9px}nav small{font-size:9px}.work-grid{grid-template-columns:1fr}.input-card textarea{min-height:135px}.side-note{padding:15px 12px}.results-heading{margin-top:7px}.page-heading{align-items:start}.task-badge{margin-top:29px}.method-strip{flex-wrap:wrap}.method-strip button{margin-left:50px}.metrics{gap:12px}.metric-value{font-size:22px}}
@media(max-width:640px){.sidebar{position:static;width:100%;padding:20px 18px 12px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:24px}.brandmark{height:32px;width:32px;font-size:25px;line-height:27px}.side-caption,.side-note,.side-bottom,nav small{display:none}nav{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:19px}nav button{font-size:11px;padding:12px}.nav-icon{font-size:21px}.workspace{margin-left:0}.topbar{height:56px;padding:0 20px;font-size:10px}main{padding:27px 18px 18px}.page-heading{margin-bottom:24px}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:29px}.task-badge{font-size:8px;padding:6px 8px;margin-top:22px}.page-heading p{font-size:11px}.input-card{padding:19px}.metrics{gap:8px}.metric{padding:12px 9px}.metric-value{font-size:18px}.metric-label{font-size:8px}.metric-note{font-size:8px}.equation{font-size:28px}.result-hero{padding:21px}.chart-card{padding:18px 14px}.chart-heading{gap:8px}.legend{font-size:7px}.method-strip{padding:18px;gap:12px}.method-strip>div:nth-child(2){flex:1}.method-strip p{font-size:9px}.method-strip button{margin-left:41px}.method-icon{padding-right:14px}.export-row{align-items:start}.export-row>div{gap:12px}.export-row>span{max-width:85px}footer{font-size:8px;display:block;text-align:center}.field-grid{gap:16px 12px}dialog{padding:20px}}
@media print{.sidebar,.topbar,.input-card,.method-strip,.export-row,dialog{display:none!important}.workspace{margin:0}main{padding:0;max-width:none}.work-grid{display:block}.results-heading{margin-top:0}.card,.result-hero,.metric{box-shadow:none;break-inside:avoid}.page-heading{margin-bottom:20px}.chart-card{max-width:700px}.table-scroll{max-height:none;overflow:visible}details:not([open]){display:none}.result-state.stale{color:#a3482d}footer{margin-top:20px}}
.sidebar nav{margin-top:38px}.sidebar-action{margin:32px 12px 20px}.topbar{justify-content:flex-end}.page-heading h1{margin:0}.field-actions{display:flex;align-items:center;gap:14px}.export-row{justify-content:flex-end}@media(max-width:640px){.sidebar nav{margin-top:20px}.sidebar-action{display:none}}
