/* SWP Calculator — warm & welcoming aesthetic.
   Warm light (default): ivory + terracotta + amber. AMOLED dark toggle: true black + amber. */
:root{
  --bg:#FBF4E8; --bg2:#FFFDF8; --card:#FFFDF8; --card2:#F7EBD7;
  --line:rgba(176,116,62,.20); --ink:#3D2B1F; --muted:#93765C;
  --accent:#D96C2C; --accent-deep:#B6541F; --accent2:#E9A13B;
  --good:#3E9B4F; --warn:#B97E10; --bad:#D64545;
  --chart1:#D96C2C; --chart2:#2E9E8F;
  --radius:18px; --shadow:0 10px 32px rgba(150,95,45,.12);
  --hero-glow:radial-gradient(520px 300px at 82% 8%, rgba(233,161,59,.28), transparent 65%),
               radial-gradient(640px 360px at 8% 0%, rgba(217,108,44,.16), transparent 60%);
}
[data-theme="dark"]{
  --bg:#000000; --bg2:#0B0B0D; --card:#0E0E11; --card2:#17171A;
  --line:rgba(255,255,255,.10); --ink:#F6F1E7; --muted:#A79B86;
  --accent:#F0915A; --accent-deep:#E07F36; --accent2:#F2BE6B;
  --good:#5CC475; --warn:#E0A83E; --bad:#F07272;
  --chart1:#F0915A; --chart2:#5CCABC;
  --shadow:0 10px 32px rgba(0,0,0,.65);
  --hero-glow:radial-gradient(520px 300px at 82% 8%, rgba(240,145,90,.10), transparent 65%),
               radial-gradient(640px 360px at 8% 0%, rgba(217,108,44,.06), transparent 60%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.65;
  background-image:var(--hero-glow);background-repeat:no-repeat}
h1,h2,h3,.brand{font-family:Fraunces,Georgia,"Times New Roman",serif;letter-spacing:.1px}
a{color:var(--accent-deep)}
[data-theme="dark"] a{color:var(--accent)}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
header.site{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 86%,transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:14px;padding:13px 0}
.brand{font-weight:800;font-size:1.3rem;text-decoration:none;color:var(--ink)}
.brand span{color:var(--accent)}
.nav nav{margin-left:auto;display:flex;gap:2px;align-items:center;flex-wrap:wrap}
.nav nav a{color:var(--muted);text-decoration:none;padding:9px 12px;border-radius:999px;font-size:.92rem;font-family:Inter,system-ui,sans-serif;font-weight:600}
.nav nav a:hover,.nav nav a.active{color:var(--ink);background:var(--card2)}
.tgl{cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:999px;padding:9px 14px;font-size:.88rem;font-weight:600;font-family:Inter,system-ui,sans-serif}
.tgl:hover{border-color:var(--accent)}
.hero{padding:52px 0 14px;position:relative}
.hero.slim{padding:30px 0 6px}
.hero.slim h1{font-size:clamp(1.6rem,3.4vw,2.2rem)}
.hero.slim p{font-size:.95rem;margin-bottom:0}
.hero.slim .hero-art{display:none}
.hero .kicker{display:inline-block;font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--accent-deep);
  background:var(--card2);border:1px solid var(--line);border-radius:999px;padding:7px 16px;margin-bottom:14px}
[data-theme="dark"] .hero .kicker{color:var(--accent2)}
.hero h1{font-size:clamp(2rem,4.6vw,3.1rem);margin:.15em 0 .3em;line-height:1.12;font-weight:700}
.hero h1 .grad{background:linear-gradient(92deg,var(--accent-deep),var(--accent2));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{color:var(--muted);max-width:700px;font-size:1.05rem}
.hero-art{position:absolute;right:0;top:24px;width:220px;height:220px;pointer-events:none;opacity:.9}
@media(max-width:900px){.hero-art{display:none}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);margin:20px 0}
.card h2{margin:0 0 6px;font-size:1.35rem;font-weight:700}
.card h2 .sub{display:block;font-family:Inter,system-ui,sans-serif;font-size:.85rem;color:var(--muted);font-weight:500;margin-top:4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:760px){.grid2{grid-template-columns:1fr}}
label{display:block;font-size:.83rem;font-weight:600;color:var(--muted);margin:14px 0 6px;letter-spacing:.2px}
input[type=text],input[type=number],input[type=date],select{
  width:100%;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);
  background:var(--bg2);color:var(--ink);font-size:1rem;font-family:inherit;transition:border-color .15s, box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
.row>*{flex:1;min-width:150px}
.btn{cursor:pointer;border:0;border-radius:999px;padding:14px 30px;font-size:1.03rem;font-weight:700;
  font-family:Inter,system-ui,sans-serif;color:#fff;
  background:linear-gradient(94deg,var(--accent-deep),var(--accent) 55%,var(--accent2));
  box-shadow:0 8px 22px rgba(200,100,40,.32);transition:transform .12s, box-shadow .12s, filter .12s}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 12px 28px rgba(200,100,40,.38)}
.btn:active{transform:translateY(0)}
[data-theme="dark"] .btn{color:#221105}
.btn.ghost{background:var(--card2);color:var(--ink);border:1.5px solid var(--line);box-shadow:none;font-weight:600}
.btn.ghost:hover{border-color:var(--accent);box-shadow:none}
.btn.ghost:disabled{opacity:.55;cursor:wait;transform:none}
.hint{font-size:.83rem;color:var(--muted)}
#fundResults{max-height:270px;overflow:auto;border:1.5px solid var(--line);border-radius:14px;margin-top:10px;background:var(--bg2)}
#fundResults button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);
  color:var(--ink);padding:11px 14px;cursor:pointer;font-size:.93rem;font-family:inherit}
#fundResults button:last-child{border-bottom:0}
#fundResults button:hover{background:var(--card2)}
#fundResults button small{color:var(--muted);display:block;font-size:.78rem;margin-top:2px}
.scheme{border-left:4px solid var(--accent);border-radius:0 12px 12px 0;background:var(--card2);
  padding:12px 16px;margin:16px 0}
.scheme .nm{font-weight:700;font-family:Fraunces,Georgia,serif;font-size:1.05rem}
.scheme .mt{color:var(--muted);font-size:.9rem;margin-top:4px}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;margin:18px 0}
.metric{background:linear-gradient(160deg,var(--card2),var(--bg2));border:1px solid var(--line);
  border-radius:16px;padding:16px 18px}
.metric .k{font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.metric .v{font-size:1.32rem;font-weight:800;margin-top:6px;font-family:Fraunces,Georgia,serif}
.metric .v.good{color:var(--good)}
table.sched{width:100%;border-collapse:collapse;font-size:.87rem}
table.sched thead th{position:sticky;top:0;background:var(--card2);z-index:1}
table.sched th,table.sched td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
table.sched th:first-child,table.sched td:first-child{text-align:left}
.tblwrap{overflow:auto;max-height:430px;border:1.5px solid var(--line);border-radius:14px}
canvas#chart{max-height:380px}
.adslot{margin:26px 0;text-align:center}
.adslot .tag{font-size:.68rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 18px;margin:10px 0}
.faq summary{cursor:pointer;font-weight:700;font-family:Fraunces,Georgia,serif;font-size:1.02rem}
.faq summary::marker{color:var(--accent)}
footer.site{border-top:1px solid var(--line);margin-top:48px;padding:30px 0 44px;color:var(--muted);font-size:.88rem}
footer.site .fl{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px}
footer.site a{color:var(--muted);text-decoration:none;font-weight:600}
footer.site a:hover{color:var(--accent-deep)}
.disclaimer{background:var(--card2);border:1.5px dashed var(--line);border-radius:14px;padding:15px 18px;
  font-size:.86rem;color:var(--muted);margin:24px 0}
.hidden{display:none!important}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.chip{cursor:pointer;border:1.5px solid var(--line);background:var(--card2);color:var(--ink);
  border-radius:999px;padding:7px 14px;font-size:.83rem;font-weight:600;font-family:inherit}
.chip:hover{border-color:var(--accent);color:var(--accent-deep)}
[data-theme="dark"] .chip:hover{color:var(--accent)}
.pager{display:flex;align-items:center;gap:10px;margin:10px 0 4px;flex-wrap:wrap}
.pager .pg{font-size:.85rem;color:var(--muted);font-weight:600}
.pager button{cursor:pointer;border:1.5px solid var(--line);background:var(--card2);color:var(--ink);
  border-radius:999px;padding:7px 16px;font-size:.85rem;font-weight:700;font-family:inherit}
.pager button:disabled{opacity:.4;cursor:default}
.pager button:not(:disabled):hover{border-color:var(--accent)}
.whatif{background:linear-gradient(160deg,var(--card2),var(--bg2));border:1.5px solid var(--line);
  border-radius:16px;padding:16px 20px;margin:18px 0 6px}
.whatif .wi-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.whatif .wi-head .k{font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.whatif .wi-head .v{font-size:1.25rem;font-weight:800;font-family:Fraunces,Georgia,serif;color:var(--accent-deep)}
[data-theme="dark"] .whatif .wi-head .v{color:var(--accent)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;margin:14px 0 4px;
  background:linear-gradient(90deg,var(--accent-deep),var(--accent2));outline:none;padding:0;border:0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;
  background:var(--card);border:3px solid var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;
  background:var(--card);border:3px solid var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer}
details.howcard{border:0}
details.howcard>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;
  font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:700;padding:4px 0}
details.howcard>summary::-webkit-details-marker{display:none}
details.howcard>summary .tw{margin-left:auto;font-size:1rem;color:var(--muted);transition:transform .2s}
details.howcard[open]>summary .tw{transform:rotate(180deg)}
details.howcard>summary:hover{color:var(--accent-deep)}
.err{background:rgba(214,69,69,.10);border:1.5px solid var(--bad);color:var(--ink);
  border-radius:14px;padding:13px 18px;margin:14px 0}
.ok{background:rgba(62,155,79,.10);border:1.5px solid var(--good);border-radius:14px;padding:13px 18px;margin:14px 0}
.prose h1{font-size:1.9rem;margin:.2em 0 .5em}
.prose h2{margin-top:1.7em;font-size:1.3rem}
.prose p,.prose li{color:var(--muted)}
.prose strong{color:var(--ink)}
.prose ul,.prose ol{padding-left:1.3em}
input[type=radio]{accent-color:var(--accent-deep);width:1.05em;height:1.05em}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
