:root{--bg:#070b16;--card:rgba(255,255,255,.055);--line:rgba(255,255,255,.13);--tx:#e8eefc;--mut:#98a5c2;--ac:#22d3ee;--ac2:#a78bfa;--r:18px;color-scheme:dark}
[data-theme=light]{--bg:#f3f6fc;--card:rgba(255,255,255,.82);--line:rgba(10,20,50,.14);--tx:#0e1730;--mut:#50607f;color-scheme:light}
@media(prefers-color-scheme:light){:root:not([data-theme]){--bg:#f3f6fc;--card:rgba(255,255,255,.82);--line:rgba(10,20,50,.14);--tx:#0e1730;--mut:#50607f;color-scheme:light}}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--tx);background:radial-gradient(900px 520px at 8% -8%,color-mix(in srgb,var(--ac) 20%,transparent),transparent),radial-gradient(800px 520px at 100% 0,color-mix(in srgb,var(--ac2) 18%,transparent),transparent),var(--bg);background-attachment:fixed;min-height:100vh}
a{color:var(--ac)}img{max-width:100%}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--bg);padding:8px;z-index:99}
.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:14px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--tx);text-decoration:none;white-space:nowrap}
.orb{width:22px;height:22px;border-radius:50%;background:conic-gradient(var(--ac),var(--ac2),var(--ac));box-shadow:0 0 16px var(--ac);animation:spin 8s linear infinite}
nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}nav a{color:var(--mut);text-decoration:none;padding:8px 12px;border-radius:10px;white-space:nowrap}nav a:hover{color:var(--tx);background:var(--card)}
.tt{background:var(--card);border:1px solid var(--line);color:var(--tx);border-radius:10px;width:40px;height:40px;font-size:1.1rem;cursor:pointer}
.hero{padding:56px 0 26px;text-align:center}
.hero h1{font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.1;margin:0 auto 16px;max-width:900px;background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px color-mix(in srgb,var(--ac) 35%,transparent))}
.hero p{max-width:720px;margin:0 auto 14px;color:var(--mut);font-size:1.1rem}
.btn{display:inline-block;padding:12px 22px;border-radius:12px;border:1px solid transparent;background:linear-gradient(90deg,var(--ac),var(--ac2));color:#05101f;font-weight:700;text-decoration:none;cursor:pointer;font:inherit;font-weight:700;box-shadow:0 0 22px color-mix(in srgb,var(--ac) 40%,transparent)}
.btn.ghost{background:transparent;color:var(--tx);border-color:var(--line);box-shadow:none;margin-left:10px}
.stack{display:grid;gap:22px;padding-bottom:50px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 40px rgba(0,0,0,.18);transition:box-shadow .3s,border-color .3s}
.card:hover{border-color:color-mix(in srgb,var(--ac) 45%,var(--line));box-shadow:0 0 28px color-mix(in srgb,var(--ac) 18%,transparent)}
.sec h2,.page h1{margin:0 0 4px;font-size:1.5rem}.page h1{font-size:clamp(1.7rem,4vw,2.4rem);margin-top:26px}.lead{color:var(--mut);margin:0 0 16px}
.calc{display:grid;grid-template-columns:minmax(240px,330px) 1fr;gap:22px;margin-top:14px}
.inputs{display:grid;gap:12px;align-content:start}.inputs.row2{grid-template-columns:2fr 1fr;align-items:end}.inputs.row2 .chk{grid-column:1/-1}
.f{display:grid;gap:5px;font-size:.86rem;color:var(--mut)}.f small{color:var(--mut)}
input,select,textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(127,127,127,.12);color:var(--tx);font:inherit;font-size:1rem}
select option{color:#111}
.chk{display:flex;gap:8px;align-items:center;color:var(--mut);font-size:.9rem}.chk input{width:auto}
.amt{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:14px;padding:4px 14px;background:rgba(127,127,127,.12)}.amt i{font-style:normal;font-size:1.6rem;color:var(--ac)}.amt input{border:0;background:transparent;font-size:1.8rem;font-weight:800;padding:8px 0}
.rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:14px}.calc .rows{margin-top:0}
.stat{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:rgba(127,127,127,.07);display:grid;gap:2px;align-content:start}
.stat span{font-size:.8rem;color:var(--mut)}.stat b{font-size:1.28rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat small{color:var(--mut);font-size:.78rem;min-height:1em}
.stat.hl{border-color:color-mix(in srgb,var(--ac) 60%,var(--line));box-shadow:0 0 18px color-mix(in srgb,var(--ac) 22%,transparent)}.stat.hl b{color:var(--ac)}
.ticker{margin:16px 0 0;padding:16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--ac) 50%,var(--line));background:linear-gradient(90deg,color-mix(in srgb,var(--ac) 14%,transparent),color-mix(in srgb,var(--ac2) 14%,transparent));display:grid;gap:2px}
.ticker span{color:var(--mut);font-size:.85rem}.tick{font-size:clamp(1.7rem,5vw,2.6rem);font-variant-numeric:tabular-nums;color:var(--ac);text-shadow:0 0 18px var(--ac);overflow-wrap:anywhere}
.chips{display:flex;flex-wrap:wrap;gap:8px}.pre,.tabs{margin:6px 0 4px}
.chip{background:var(--card);border:1px solid var(--line);color:var(--tx);padding:8px 14px;border-radius:999px;cursor:pointer;font:inherit;font-size:.9rem}.chip:hover{border-color:var(--ac)}.chip.on{background:linear-gradient(90deg,var(--ac),var(--ac2));color:#05101f;border-color:transparent;font-weight:700}
.chartbox{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:12px}.ch-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;color:var(--mut);font-size:.9rem;margin-bottom:6px}
.cw{position:relative}canvas{width:100%;height:290px;display:block;touch-action:pan-y}
.tip{position:absolute;top:6px;pointer-events:none;background:var(--bg);border:1px solid var(--ac);border-radius:10px;padding:8px 10px;font-size:.82rem;box-shadow:0 0 18px color-mix(in srgb,var(--ac) 30%,transparent);white-space:nowrap}.tip i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.notes{margin:14px 0 0;padding-left:18px;color:var(--mut);font-size:.84rem}
.tgtop{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.ring{position:relative;width:150px;height:150px}.ring svg{width:100%;height:100%}
.rb{fill:none;stroke:var(--line);stroke-width:10}.rf{fill:none;stroke:var(--ac);stroke-width:10;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transform:rotate(-90deg);transform-origin:60px 60px;transition:stroke-dashoffset .5s;filter:drop-shadow(0 0 6px var(--ac))}
.rc{position:absolute;inset:0;display:grid;place-content:center;text-align:center}.rc b{font-size:1.5rem}.rc small{color:var(--mut)}
.cd{display:grid;gap:4px}.cd span{color:var(--mut);font-size:.85rem}.cdv{font-size:clamp(1.4rem,4vw,2.1rem);font-variant-numeric:tabular-nums;color:var(--ac);text-shadow:0 0 16px var(--ac)}
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.tool{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(127,127,127,.07);color:var(--tx);text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
.tool:hover{transform:translateY(-3px);border-color:var(--ac);box-shadow:0 0 22px color-mix(in srgb,var(--ac) 25%,transparent)}.tool small{color:var(--mut)}.ti{font-size:1.6rem}
.skel{min-height:220px;border-radius:14px;background:linear-gradient(90deg,transparent 25%,rgba(127,127,127,.2) 50%,transparent 75%);background-size:200% 100%;animation:sh 1.3s infinite}
.page{padding-bottom:50px}.page .card{margin:18px 0}.crumbs{margin-top:20px;color:var(--mut);font-size:.9rem}.crumbs a{color:var(--mut)}
.prose{max-width:820px}.prose h2{margin-top:28px}.prose p,.prose li{color:color-mix(in srgb,var(--tx) 88%,transparent)}
.faq{max-width:820px;margin:24px 0}details{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:10px 0;background:var(--card)}summary{cursor:pointer;font-weight:600}details p{margin:8px 0 0;color:var(--mut)}
.cform{max-width:560px;display:grid;gap:12px}.hp{position:absolute;left:-9999px}.flash{padding:12px 16px;border:1px solid var(--ac);border-radius:12px;background:var(--card)}
.ad{max-width:1180px;margin:10px auto;padding:0 18px;text-align:center}
.foot{border-top:1px solid var(--line);margin-top:30px;padding:30px 0 20px;background:color-mix(in srgb,var(--bg) 70%,transparent)}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px}.fcols a{display:block;color:var(--mut);text-decoration:none;padding:3px 0}.fcols a:hover{color:var(--ac)}.fcols p{color:var(--mut);margin:6px 0}.copy{color:var(--mut);font-size:.82rem;margin-top:20px}
/* admin */
.adm{display:grid;grid-template-columns:210px 1fr;gap:20px;padding:20px 0 50px}.adm aside{display:grid;gap:4px;align-content:start}.adm aside a{padding:9px 12px;border-radius:10px;color:var(--tx);text-decoration:none;border:1px solid transparent}.adm aside a.on,.adm aside a:hover{background:var(--card);border-color:var(--line)}
.adm form.card{display:grid;gap:14px;max-width:760px}.adm h1{margin:0 0 14px;font-size:1.6rem}.adm table{width:100%;border-collapse:collapse}.adm td,.adm th{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top;font-size:.9rem}
.adm .grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.adm .chk label,.adm label.chk{display:flex}.adm .danger{background:#dc2626;color:#fff;box-shadow:none}
.login{max-width:380px;margin:12vh auto}
@keyframes sh{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:820px){.calc{grid-template-columns:1fr}.inputs.row2{grid-template-columns:1fr}.hero{padding-top:34px}.btn.ghost{margin:8px 0 0}.adm{grid-template-columns:1fr}.adm .grid2{grid-template-columns:1fr}canvas{height:240px}.bar{flex-wrap:wrap;padding:6px 0}nav{order:3;width:100%;margin-left:0}.tt{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
