:root{
  --bg:#f5f3ee;--surface:#fff;--surface2:#f9f8f5;
  --border:#e4e0d8;--border2:#cdc9bf;
  --ink:#1a1814;--ink2:#4a463e;--ink3:#8a8478;
  --accent:#1a6b55;--accent2:#22896c;--accent-bg:#eaf4f0;
  --amber:#c47f17;--amber-bg:#fdf4e3;
  --red:#c0392b;--red-bg:#fdf0ee;
  --blue:#1a4d7a;--blue-bg:#eaf0f7;
  --gold:#b8860b;--gold-bg:#fdf8e8;
  --radius:14px;--radius-sm:8px;
  --shadow:0 2px 12px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);
  --shadow-md:0 8px 32px rgba(0,0,0,.10),0 2px 8px rgba(0,0,0,.06);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}


/* HEADER */
header{padding:52px 0 40px;border-bottom:1px solid var(--border);margin-bottom:32px}
.header-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.header-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
.header-eyebrow::before{content:'';width:24px;height:1px;background:var(--accent)}
h1{font-family:'Syne',sans-serif;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:800;line-height:1.08;letter-spacing:-1.5px}
h1 em{color:var(--accent);font-style:normal}
.header-desc{font-size:14px;color:var(--ink3);max-width:480px;margin-top:12px;line-height:1.65}
.header-badges{display:flex;gap:8px;flex-wrap:wrap;align-self:flex-start;padding-top:8px}
.hbadge{font-size:11px;font-weight:500;padding:5px 12px;border-radius:100px;border:1px solid}
.hbadge-g{color:var(--accent);background:var(--accent-bg);border-color:rgba(26,107,85,.2)}
.hbadge-a{color:var(--amber);background:var(--amber-bg);border-color:rgba(196,127,23,.2)}
.hbadge-b{color:var(--blue);background:var(--blue-bg);border-color:rgba(26,77,122,.2)}

/* STEP NAV */
.step-nav{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px;margin-bottom:28px;overflow-x:auto}
.step-btn{flex:1;min-width:110px;display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;border-radius:10px;background:transparent;cursor:pointer;font-family:'Epilogue',sans-serif;font-size:13px;font-weight:500;color:var(--ink3);transition:all .2s;white-space:nowrap}
.snum{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:500;background:var(--bg);color:var(--ink3);transition:all .2s;flex-shrink:0}
.step-btn.active{color:var(--ink);background:var(--accent-bg)}
.step-btn.active .snum{background:var(--accent);color:#fff}
.step-btn:hover:not(.active){background:var(--surface2)}

/* LAYOUT */
.main-grid{display:grid;grid-template-columns:1fr 420px;gap:24px;align-items:start}
@media(max-width:1080px){.main-grid{grid-template-columns:1fr}}

/* CARDS */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:20px}
.card-head{padding:16px 22px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface2)}
.card-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:10px}
.card-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;background:var(--accent-bg)}
.card-body{padding:20px 22px}
.section-head{font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:var(--ink3);padding:12px 22px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:1px}
.section-head::before{content:'';width:3px;height:11px;background:var(--accent);border-radius:2px}

/* INPUTS */
.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.input-grid.c3{grid-template-columns:1fr 1fr 1fr}
.input-group{display:flex;flex-direction:column;gap:5px}
.input-group.full{grid-column:1/-1}
@media(max-width:600px){.input-grid,.input-grid.c3{grid-template-columns:1fr}}
.ilabel{font-size:11px;font-weight:600;color:var(--ink3);letter-spacing:.4px;text-transform:uppercase;display:flex;align-items:center;gap:5px}
.ihint{font-size:11px;color:var(--ink3);font-style:italic;margin-top:1px;line-height:1.4}
.ibox{position:relative;display:flex;align-items:center}
.ipre,.isuf{position:absolute;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500;color:var(--ink3);pointer-events:none}
.ipre{left:11px}.isuf{right:11px}
input[type=number],input[type=text],input[type=date],select{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;color:var(--ink);font-family:'Epilogue',sans-serif;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;-moz-appearance:textfield}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}
.has-pre{padding-left:26px!important}.has-suf{padding-right:32px!important}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(26,107,85,.1);background:var(--surface)}
select option{background:var(--surface)}

/* REGIME TOGGLE */
.regime-toggle{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.regime-btn{padding:9px 14px;border:none;font-family:'Epilogue',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;color:var(--ink3);background:transparent}
.regime-btn.an{background:var(--accent);color:#fff}
.regime-btn.ao{background:var(--amber);color:#fff}

/* GRANT ROWS */
.grant-row{display:grid;grid-template-columns:24px 1fr 90px 100px 100px 28px;gap:8px;align-items:center;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px}
.gr-num{width:22px;height:22px;border-radius:50%;background:var(--accent-bg);color:var(--accent);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace}
.gr-label{font-size:13px;font-weight:500}
.gr-sub{font-size:11px;color:var(--ink3)}
.add-btn{width:100%;padding:9px;border:1.5px dashed var(--border2);border-radius:var(--radius-sm);background:none;color:var(--ink3);font-family:'Epilogue',sans-serif;font-size:13px;cursor:pointer;transition:all .2s;margin-top:4px}
.add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.rm-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--red-bg);color:var(--red);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1}
.rm-btn:hover{background:var(--red);color:#fff}

/* CALC BUTTON */
.calc-btn{width:100%;padding:15px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-family:'Syne',sans-serif;font-size:16px;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:all .2s;position:relative;overflow:hidden}
.calc-btn:hover{background:var(--accent2);transform:translateY(-1px);box-shadow:0 8px 24px rgba(26,107,85,.3)}
.calc-btn:active{transform:none}

/* HERO RESULT */
.hero-card{background:var(--accent);border-radius:var(--radius);padding:26px 22px 20px;color:#fff;margin-bottom:18px;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}
.hero-card::after{content:'';position:absolute;right:-40px;bottom:-40px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.hero-ey{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:6px}
.hero-val{font-family:'Syne',sans-serif;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:800;line-height:1;letter-spacing:-1px;margin-bottom:4px}
.hero-sub{font-size:12px;color:rgba(255,255,255,.65);margin-bottom:18px}
.metrics-strip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:rgba(255,255,255,.15);border-radius:10px;overflow:hidden}
.mbox{background:rgba(255,255,255,.08);padding:11px 12px;text-align:center}
.mb-l{font-size:9px;color:rgba(255,255,255,.55);letter-spacing:1px;text-transform:uppercase;margin-bottom:3px}
.mb-v{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500;color:#fff}

/* SCENARIO PILLS */
.sc-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:18px}
.sc-pill{border:1px solid var(--border);border-radius:10px;padding:12px 10px;text-align:center;background:var(--surface);cursor:pointer;transition:all .15s}
.sc-pill .sp-l{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px}
.sc-pill .sp-v{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500}
.sc-pill.bear .sp-l,.sc-pill.bear .sp-v{color:var(--red)}
.sc-pill.base .sp-l,.sc-pill.base .sp-v{color:var(--accent)}
.sc-pill.bull .sp-l,.sc-pill.bull .sp-v{color:var(--amber)}
.sc-pill.bear.sel{background:var(--red-bg);border-color:var(--red)}
.sc-pill.base.sel{background:var(--accent-bg);border-color:var(--accent)}
.sc-pill.bull.sel{background:var(--gold-bg);border-color:var(--gold)}

/* TABLE */
.bt{width:100%;border-collapse:collapse;font-size:13px}
.bt th{padding:7px 14px;text-align:left;font-size:10px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.6px;background:var(--surface2);border-bottom:1px solid var(--border)}
.bt th:last-child,.bt td:last-child{text-align:right}
.bt td{padding:8px 14px;border-bottom:1px solid var(--border);color:var(--ink)}
.bt tr:last-child td{border-bottom:none}
.bt .tot td{font-weight:600;color:var(--accent);background:var(--accent-bg);border-top:1px solid var(--border)}
.bt .neg td:last-child{color:var(--red)}
.bt .dim td{color:var(--ink3);font-size:12px}
.mono{font-family:'JetBrains Mono',monospace;font-size:12px}

/* REGIME CMP */
.rcmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.rcmp-c{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px}
.rcmp-c.win{border-color:var(--accent);background:var(--accent-bg)}
.rcmp-l{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink3);margin-bottom:5px;display:flex;align-items:center;gap:5px}
.rcmp-c.win .rcmp-l{color:var(--accent)}
.wbadge{font-size:9px;background:var(--accent);color:#fff;padding:1px 6px;border-radius:100px}
.rcmp-v{font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:500;color:var(--ink);margin-bottom:2px}
.rcmp-c.win .rcmp-v{color:var(--accent)}
.rcmp-t{font-size:11px;color:var(--ink3)}

/* TIMELINE BAR */
.tbar-wrap{padding:4px 0 0}
.tbar{display:flex;height:34px;border-radius:6px;overflow:hidden;border:1px solid var(--border);margin-bottom:10px}
.tbar-seg{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;transition:flex .5s ease;cursor:default}
.tbar-seg:hover{filter:brightness(1.1)}
.tleg{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px}
.tleg-i{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink3)}
.tleg-d{width:10px;height:10px;border-radius:2px;flex-shrink:0}

/* SENSITIVITY */
.stbl{width:100%;border-collapse:separate;border-spacing:3px;font-size:11px}
.stbl th{font-size:10px;color:var(--ink3);padding:5px 6px;text-align:center;font-weight:600}
.stbl td{padding:6px 5px;text-align:center;border-radius:5px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:500;cursor:default;transition:transform .15s}
.stbl td:hover{transform:scale(1.08);z-index:5;position:relative}
.stbl-lbl{color:var(--ink3)!important;font-family:'Epilogue',sans-serif!important;font-size:10px!important;text-align:right!important;padding-right:8px!important;background:transparent!important;font-weight:600!important}

/* TIP */
.tip{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--bg);border:1px solid var(--border2);border-radius:50%;font-size:9px;color:var(--ink3);cursor:help;position:relative;flex-shrink:0}
.tip:hover::after{content:attr(data-t);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:8px;padding:10px 14px;font-size:11px;width:230px;white-space:normal;line-height:1.5;font-family:'Epilogue',sans-serif;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.2)}

/* TAG */
.tag{font-size:10px;font-weight:600;padding:2px 8px;border-radius:100px;letter-spacing:.5px;text-transform:uppercase}
.tm{background:rgba(192,57,43,.1);color:var(--red)}
.to{background:var(--blue-bg);color:var(--blue)}

/* WATERFALL BARS */
.wf{display:flex;flex-direction:column;gap:7px}
.wf-row{display:flex;align-items:center;gap:8px;font-size:11px}
.wf-lbl{width:120px;color:var(--ink3);font-size:11px;flex-shrink:0;text-align:right}
.wf-track{flex:1;height:22px;background:var(--bg);border-radius:4px;overflow:hidden}
.wf-fill{height:100%;border-radius:4px;display:flex;align-items:center;justify-content:flex-end;padding-right:7px;transition:width .8s cubic-bezier(.4,0,.2,1)}
.wf-fill span{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;color:rgba(0,0,0,.65);white-space:nowrap}

/* EMPTY STATE */
.empty{text-align:center;padding:36px 18px;color:var(--ink3)}
.empty .ei{font-size:32px;margin-bottom:10px}
.empty p{font-size:13px;line-height:1.6}

.disclaimer{background:var(--amber-bg);border:1px solid rgba(196,127,23,.2);border-radius:var(--radius-sm);padding:12px 16px;font-size:11px;color:var(--amber);line-height:1.6;margin-top:18px}

.chart-wrap{position:relative;width:100%;height:200px}

.sp{height:18px}.sp-sm{height:8px}
.results-sticky{position:sticky;top:24px}

@media(max-width:768px){
  .main-grid{grid-template-columns:1fr}
  .step-btn{min-width:90px;padding:9px 10px;font-size:12px}
  .header-inner{flex-direction:column;align-items:flex-start}
  .sc-row,.metrics-strip,.input-grid.c3{grid-template-columns:1fr 1fr}
  .rcmp{grid-template-columns:1fr}
  .grant-row{grid-template-columns:20px 1fr 80px 90px 90px 24px;gap:6px}
}