/* =====================================================
   THEME TOKENS — dark / light, glass + aurora colors
===================================================== */
:root[data-theme="dark"]{
  --bg-deep:#06080f; --bg-deep-2:#0b0f1a;
  --text-primary:#f5f7fa; --text-body:#cbd5e1; --text-muted:#94a3b8;
  --text-dim:#6b7888; --text-hint:#4b5870;
  --glass-bg:rgba(255,255,255,.045); --glass-bg-strong:rgba(255,255,255,.08);
  --glass-border:rgba(255,255,255,.09); --glass-shadow:0 8px 32px rgba(0,0,0,.45);
  --accent-green:#34d399; --accent-green-soft:rgba(52,211,153,.15);
  --accent-amber:#fbbf24; --accent-blue:#60a5fa;
  --blob-1:#10b981; --blob-2:#3b82f6; --blob-3:#8b5cf6;
  --input-bg:rgba(255,255,255,.045); --input-border:rgba(255,255,255,.1);
  --nav-indicator:rgba(52,211,153,.16); --divider:rgba(255,255,255,.09);
  --select-arrow:%236b7888;
}
:root[data-theme="light"]{
  --bg-deep:#eef2f7; --bg-deep-2:#f8fafc;
  --text-primary:#0f172a; --text-body:#334155; --text-muted:#64748b;
  --text-dim:#8a96a8; --text-hint:#94a3b8;
  --glass-bg:rgba(255,255,255,.55); --glass-bg-strong:rgba(255,255,255,.8);
  --glass-border:rgba(255,255,255,.9); --glass-shadow:0 8px 32px rgba(30,41,59,.1);
  --accent-green:#059669; --accent-green-soft:rgba(5,150,105,.12);
  --accent-amber:#d97706; --accent-blue:#2563eb;
  --blob-1:#6ee7b7; --blob-2:#93c5fd; --blob-3:#c4b5fd;
  --input-bg:rgba(255,255,255,.6); --input-border:rgba(15,23,42,.09);
  --nav-indicator:rgba(5,150,105,.12); --divider:rgba(15,23,42,.08);
  --select-arrow:%2364748b;
}

/* =====================================================
   RESET & BASE
===================================================== */
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  background:var(--bg-deep); color:var(--text-body);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,sans-serif;
  font-size:15px; line-height:1.6; min-height:100vh; overflow-x:hidden;
  transition:background .4s ease,color .4s ease;
}
h2{font-size:28px;font-weight:800;letter-spacing:-.5px;color:var(--text-primary);}
h3{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:10px;}
h4{font-size:12px;font-weight:700;color:var(--text-hint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;}
p{color:var(--text-body);font-size:14.5px;line-height:1.7;}
.lead{color:var(--text-muted);font-size:15px;margin-top:8px;max-width:640px;}
.muted-text{color:var(--text-hint);font-size:13px;margin-bottom:16px;}
::selection{background:var(--accent-green);color:#04130c;}

/* =====================================================
   BACKGROUND AURORA
===================================================== */
.bg-aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--bg-deep);}
.blob{position:absolute;border-radius:50%;opacity:.55;will-change:transform;}
.blob-1{width:55vw;height:55vw;max-width:600px;max-height:600px;background:var(--blob-1);top:-15%;left:-12%;animation:drift1 26s ease-in-out infinite;}
.blob-2{width:50vw;height:50vw;max-width:560px;max-height:560px;background:var(--blob-2);top:30%;right:-16%;animation:drift2 30s ease-in-out infinite;}
.blob-3{width:45vw;height:45vw;max-width:500px;max-height:500px;background:var(--blob-3);bottom:-18%;left:28%;animation:drift3 34s ease-in-out infinite;}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(60px,40px) scale(1.1);}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-50px,30px) scale(.95);}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(40px,-50px) scale(1.05);}}

/* =====================================================
   GLASS UTILITY
===================================================== */
.glass{
  background:var(--glass-bg); border:1px solid var(--glass-border);
  backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%);
  box-shadow:var(--glass-shadow); border-radius:20px;
}

/* =====================================================
   TOPBAR & NAV
===================================================== */
.topbar{
  position:sticky;top:0;z-index:50;margin:16px;padding:10px 18px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border-radius:18px;flex-wrap:wrap;
}
.brand{font-weight:800;font-size:18px;color:var(--text-primary);letter-spacing:-.3px;}
.brand-dot{color:var(--accent-green);}

.nav-pills{position:relative;display:flex;gap:2px;}
.nav-btn{position:relative;z-index:2;background:transparent;border:none;padding:9px 16px;
  font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;border-radius:12px;
  transition:color .25s; font-family:inherit; text-decoration:none; display:inline-block;}
.nav-btn.active{color:var(--accent-green);}
.nav-btn:focus-visible{outline:2px solid var(--accent-green);outline-offset:2px;}
.nav-indicator{position:absolute;top:0;left:0;height:100%;background:var(--nav-indicator);
  border-radius:12px;transition:transform .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1);z-index:1;}

.topbar-right{display:flex;align-items:center;gap:12px;}
.year-badge{background:var(--accent-green-soft);color:var(--accent-green);font-size:11px;font-weight:700;
  padding:5px 10px;border-radius:20px;letter-spacing:.04em;white-space:nowrap;}

/* =====================================================
   THEME TOGGLE
===================================================== */
.theme-toggle{background:none;border:none;cursor:pointer;padding:0;}
.theme-toggle:focus-visible{outline:2px solid var(--accent-green);outline-offset:3px;border-radius:14px;}
.toggle-track{width:48px;height:26px;border-radius:14px;background:var(--input-bg);
  border:1px solid var(--input-border);position:relative;display:block;transition:background .3s;}
.toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:var(--glass-bg-strong);border:1px solid var(--glass-border);display:flex;align-items:center;
  justify-content:center;font-size:11px;transition:transform .35s cubic-bezier(.4,0,.2,1);}
[data-theme="light"] .toggle-knob{transform:translateX(22px);}

/* =====================================================
   PAGE / LAYOUT
===================================================== */
.shell{max-width:1120px;margin:0 auto;padding:10px 20px 60px;}
.hidden-page{display:none;}
.page-anim{animation:fadeSlideIn .5s cubic-bezier(.16,1,.3,1);}
@keyframes fadeSlideIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.page-head{margin:26px 0 4px;}

/* =====================================================
   CALCULATOR: layout + inputs
===================================================== */
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:24px;}
.panel{padding:30px;}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent-green);margin-bottom:12px;}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.5);}70%{box-shadow:0 0 0 6px rgba(52,211,153,0);}100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}}

.field{margin-top:22px;display:flex;flex-direction:column;gap:6px;}
.field label{font-size:12.5px;font-weight:600;color:var(--text-muted);}
.input-wrap{position:relative;}
.prefix{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-dim);font-weight:600;pointer-events:none;}
input[type=number],select{
  width:100%;padding:12px 14px;border-radius:12px;background:var(--input-bg);
  border:1px solid var(--input-border);color:var(--text-primary);font-size:15px;font-weight:500;
  outline:none;font-family:inherit;transition:border-color .2s,box-shadow .2s,background .3s;
}
input[type=number]{padding-left:30px;appearance:textfield;-moz-appearance:textfield;}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
input::placeholder{color:var(--text-hint);}
input:focus,select:focus{border-color:var(--accent-green);box-shadow:0 0 0 4px var(--accent-green-soft);}
select{appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='var(--select-arrow)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14 center;}
.hint{font-size:11.5px;color:var(--text-hint);}
.divider{height:1px;background:var(--divider);margin:24px 0 0;}

/* =====================================================
   CALCULATOR: results
===================================================== */
.results-col{display:flex;flex-direction:column;gap:16px;padding:2px 4px 4px;}
.card{padding:22px 24px;animation:fadeSlideIn .5s both;transition:transform .25s ease,box-shadow .25s ease;}
.results-col>*:nth-child(1){animation-delay:.05s;} .results-col>*:nth-child(2){animation-delay:.1s;}
.results-col>*:nth-child(3){animation-delay:.15s;} .results-col>*:nth-child(4){animation-delay:.2s;}
.results-col>*:nth-child(5){animation-delay:.25s;}
.card:hover{transform:translateY(-2px);}

.card-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--text-hint);margin-bottom:8px;}
.dot{width:6px;height:6px;border-radius:50%;background:var(--text-dim);display:inline-block;}
.dot.green{background:var(--accent-green);} .dot.blue{background:var(--accent-blue);} .dot.amber{background:var(--accent-amber);}

.big-num{font-size:27px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums;color:var(--accent-green);}
.big-num.muted{color:var(--text-muted);font-size:22px;}
.big-num.amber{color:var(--accent-amber);} .big-num.blue{color:var(--accent-blue);}
.big-num.featured-num{font-size:38px;color:var(--accent-green);background:linear-gradient(90deg,var(--accent-green),#6ee7b7);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.card-sub{font-size:12px;color:var(--text-hint);margin-top:6px;}

.mini-table{width:100%;border-collapse:collapse;margin-top:10px;}
.mini-table td{padding:5px 0;font-size:13px;}
.mini-table td:first-child{color:var(--text-dim);}
.mini-table td:last-child{text-align:right;color:var(--text-muted);font-weight:500;font-variant-numeric:tabular-nums;}
.mini-table tr.total td{border-top:1px solid var(--divider);padding-top:8px;font-weight:700;}
.mini-table tr.total td:first-child{color:var(--text-muted);} .mini-table tr.total td:last-child{color:var(--accent-green);}

.featured-wrap{border-radius:22px;padding:2px;
  background:linear-gradient(120deg,var(--blob-1),var(--blob-2),var(--blob-3),var(--blob-1));
  background-size:300% 300%;animation:gradientShift 8s ease infinite;
  box-shadow:0 0 50px -14px var(--blob-1);}
.featured-wrap .card{border-radius:20px;background:var(--bg-deep);}
@keyframes gradientShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}100%{background-position:0% 50%;}}

.rate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.rate-pill{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;padding:10px 12px;text-align:center;}
.rate-pill .rate-num{font-size:19px;font-weight:700;color:var(--accent-blue);font-variant-numeric:tabular-nums;}
.rate-pill .rate-lbl{font-size:10.5px;color:var(--text-hint);margin-top:2px;}

.quarterly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;}
.q-pill{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;padding:10px 8px;text-align:center;}
.q-pill .q-label{font-size:10px;color:var(--text-hint);font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.q-pill .q-amount{font-size:13.5px;font-weight:700;color:var(--accent-green);margin-top:4px;font-variant-numeric:tabular-nums;}
.q-pill .q-due{font-size:10px;color:var(--text-hint);margin-top:2px;}

/* =====================================================
   INFO PAGES (bento grid)
===================================================== */
.bento{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;}
.bento .card{padding:28px;animation:fadeSlideIn .5s both;}
.bento>*:nth-child(1){animation-delay:.05s;} .bento>*:nth-child(2){animation-delay:.1s;} .bento>*:nth-child(3){animation-delay:.15s;}
.span-2{grid-column:1/-1;}

.steps{list-style:none;display:flex;flex-direction:column;gap:16px;margin-top:6px;}
.steps li{display:flex;gap:14px;align-items:flex-start;}
.step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent-green-soft);
  color:var(--accent-green);font-weight:700;font-size:12.5px;display:flex;align-items:center;justify-content:center;}
.steps strong{color:var(--text-primary);}

.check-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.check-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text-body);}
.check-list li::before{content:"✓";color:var(--accent-green);font-weight:800;}

.pro-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.pro-list li{display:flex;gap:10px;font-size:14px;color:var(--text-body);}
.pro-list li::before{content:"•";color:var(--accent-blue);font-weight:800;}

.ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:14px 0 22px;}
.ref-stat{background:var(--input-bg);border:1px solid var(--input-border);border-radius:14px;padding:14px;text-align:center;}
.ref-stat-label{font-size:10px;color:var(--text-hint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;}
.ref-stat-val{font-size:17px;font-weight:700;color:var(--accent-green);font-variant-numeric:tabular-nums;}
.ref-tables-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}

/* =====================================================
   TABLES
===================================================== */
table.ref-table,table.compare-table{width:100%;border-collapse:collapse;font-size:13px;}
table.ref-table th,table.ref-table td,table.compare-table th,table.compare-table td{
  padding:9px 10px;border-bottom:1px solid var(--divider);text-align:left;}
table.ref-table th,table.compare-table th{color:var(--text-hint);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.05em;font-weight:700;}
table.ref-table td:last-child,table.compare-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;}
table.compare-table td:not(:first-child){color:var(--text-body);}

/* =====================================================
   FOOTER
===================================================== */
.disclaimer{max-width:1120px;margin:36px auto 0;padding:20px;text-align:center;font-size:11px;
  color:var(--text-hint);border-top:1px solid var(--divider);line-height:1.6;}

/* =====================================================
   RESPONSIVE
===================================================== */
@media (max-width:860px){
  .calc-grid{grid-template-columns:1fr;}
  .panel,.results-col{position:static;max-height:none;}
  .bento,.ref-tables-grid{grid-template-columns:1fr;}
  .ref-grid{grid-template-columns:1fr 1fr;}
  
  .blob, .featured-wrap { animation: none !important; }
  .glass {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: var(--bg-deep-2) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05) !important;
  }
}
@media (max-width:760px){
  .topbar{margin:10px;}
  .nav-pills{order:3;width:100%;overflow-x:auto;}
  .quarterly-grid{grid-template-columns:repeat(2,1fr);}
}

@media (prefers-reduced-motion:reduce){
  .blob,.page-anim,.results-col>*,.bento>*,.featured-wrap,.live-dot{animation:none!important;}
}