:root{--bg:#060a11;--panel:#0c131e;--panel2:#111b29;--panel3:#172337;--line:#1d2a3c;--text:#edf4ff;--muted:#8392a8;--cyan:#35d7ff;--gold:#ffc15a;--green:#4de2a7;--red:#ff7085;--shadow:0 20px 60px #0006;--r:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(900px 500px at 5% -10%,#0b3950 0,transparent 60%),radial-gradient(800px 500px at 100% 10%,#35220b 0,transparent 58%),var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;min-height:100vh}
body.light{--bg:#f4f7fb;--panel:#fff;--panel2:#f0f4f9;--panel3:#e7edf5;--line:#dbe3ed;--text:#142033;--muted:#617087;--shadow:0 18px 50px #21334a14}
button,input,select{font:inherit}button{cursor:pointer}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px 0}.brand{display:flex;gap:11px;align-items:center;font-weight:700}.brand-mark{width:36px;height:36px;border:1px solid #35d7ff55;border-radius:11px;display:grid;place-items:center;color:var(--cyan);background:#35d7ff0c;font-family:"Space Mono"}nav{display:flex;gap:8px}.icon-btn{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text)}
.hero{padding:40px 0 28px}.eyebrow{font:700 11px "Space Mono";letter-spacing:.16em;color:var(--cyan);text-transform:uppercase}.eyebrow:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan);margin-right:9px}.hero h1{font-size:clamp(38px,6vw,70px);line-height:.98;letter-spacing:-.055em;margin:15px 0 16px}.hero p{max-width:680px;color:var(--muted);font-size:17px;margin:0}
.dashboard{display:grid;grid-template-columns:350px 1fr;gap:18px;align-items:start}.panel{background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.controls{padding:22px;position:sticky;top:14px}.panel-title{font-size:14px;font-weight:700;margin-bottom:18px}.field{margin:0 0 16px}.field label{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:7px}.input{height:48px;display:flex;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:0 13px;transition:.18s}.input:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px #35d7ff16}.input span{color:var(--muted);font-family:"Space Mono";font-size:13px}.input input,.input select{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-family:"Space Mono";font-size:14px}.input select{appearance:auto}.years{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;gap:7px}.to{text-align:center;color:var(--muted)}
.presets{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 18px}.preset{border:1px solid var(--line);background:var(--panel2);color:var(--muted);padding:7px 9px;border-radius:9px;font-size:11px}.preset:hover{color:var(--text);border-color:#35d7ff55}.primary{width:100%;height:50px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--cyan),#1aa9ef);color:#031019;font-weight:800;box-shadow:0 8px 28px #35d7ff25}.secondary{width:100%;height:43px;margin-top:9px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--text);font-weight:600}.error{color:var(--red);font-size:12px;margin:12px 0 0;display:none}
.results{min-width:0}.headline{padding:22px;display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center}.headline .small{color:var(--muted);font-size:13px}.headline .big{font:700 clamp(30px,4vw,46px) "Space Mono";letter-spacing:-.05em;color:var(--gold);margin:5px 0}.pill{padding:7px 10px;border-radius:99px;background:#ffc15a16;color:var(--gold);font:700 11px "Space Mono";white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.stat{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.stat b{display:block;font:700 20px "Space Mono";margin-top:7px}.stat span{font-size:11px;color:var(--muted)}
.chart-panel{padding:20px;margin-top:10px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.chart-head b{font-size:14px}.chart-head span{font-size:11px;color:var(--muted)}canvas{width:100%;height:260px;display:block}
.table-panel{margin-top:10px;overflow:hidden}.table-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.table-head b{font-size:14px}.export{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:8px 11px;border-radius:9px;font-size:11px}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:620px}th{text-align:left;padding:13px 20px;color:var(--muted);font:700 10px "Space Mono";text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}th:not(:first-child),td:not(:first-child){text-align:right}td{padding:14px 20px;border-bottom:1px solid var(--line);font-size:13px}tr:last-child td{border-bottom:0}td:first-child{font-weight:700}.mono{font-family:"Space Mono"}.bar{height:6px;width:110px;background:var(--panel2);border-radius:8px;overflow:hidden;margin-left:auto}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));border-radius:8px}
.insight{margin-top:10px;padding:17px 20px;color:var(--muted);font-size:12px;line-height:1.7}.insight strong{color:var(--text)}footer{padding:45px 0;color:var(--muted);font-size:11px;text-align:center}.kbd{font-family:"Space Mono";padding:2px 5px;border:1px solid var(--line);border-radius:4px}
@media(max-width:850px){.dashboard{grid-template-columns:1fr}.controls{position:static}.hero{padding-top:20px}.stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:560px){.wrap{width:min(100% - 20px,1180px)}.topbar{padding:14px 0}.hero h1{font-size:42px}.headline{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.chart-panel{padding:14px}.controls{padding:17px}canvas{height:210px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
