:root{--bg: #0a0e16;--bg-2: #0f1420;--surface: #141b29;--surface-2: #1b2436;--border: #253049;--border-soft: #1c2739;--text: #e8eef9;--muted: #8a97b1;--muted-2: #5c6883;--accent: #34d399;--accent-dim: #10b981;--gold: #f5c451;--blue: #60a5fa;--danger: #f87171;--ahead: #34d399;--behind: #f87171;--radius: 16px;--radius-sm: 10px;--shadow: 0 8px 30px rgba(0, 0, 0, .35);color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(52,211,153,.08),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(96,165,250,.06),transparent 55%),var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.app{max-width:1080px;margin:0 auto;padding:24px 20px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand .logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--blue));display:grid;place-items:center;font-size:22px;box-shadow:0 6px 18px #34d39959}.brand h1{font-size:20px;font-weight:700;letter-spacing:-.02em}.brand .tag{font-size:12px;color:var(--muted)}.tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border-soft);padding:4px;border-radius:12px}.tabs button{border:none;background:transparent;color:var(--muted);padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600;transition:all .15s ease}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.card{background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}.card .subtle{font-size:13px;color:var(--muted)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width: 760px){.grid-2,.grid-3{grid-template-columns:1fr}}.hero{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center}@media (max-width: 640px){.hero{grid-template-columns:1fr;justify-items:center;text-align:center}}.hero-figures .label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.hero-figures .big{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:4px 0}.hero-figures .of-goal{font-size:16px;color:var(--muted);font-weight:600}.hero-figures .of-goal b{color:var(--gold)}.pace-line{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px}.pace-line .chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);padding:6px 12px;border-radius:999px;font-weight:600}.chip.ahead{color:var(--ahead);border-color:#34d39966;background:#34d39914}.chip.behind{color:var(--behind);border-color:#f8717166;background:#f8717114}.ring-wrap{position:relative;width:200px;height:200px;display:grid;place-items:center}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.ring-center .pct{font-size:38px;font-weight:800;letter-spacing:-.03em}.ring-center .sub{font-size:12px;color:var(--muted)}.stat{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:16px}.stat .k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat .v{font-size:24px;font-weight:700;letter-spacing:-.02em;margin-top:6px}.stat .v.accent{color:var(--accent)}.stat .v.gold{color:var(--gold)}.stat .hint{font-size:12px;color:var(--muted-2);margin-top:4px}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:9px 16px;border-radius:10px;font-size:14px;font-weight:600;transition:all .15s ease}.btn:hover{border-color:var(--muted-2)}.btn.primary{background:linear-gradient(135deg,var(--accent-dim),var(--accent));border:none;color:#052018}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:transparent}.btn.small{padding:6px 10px;font-size:13px}.btn.danger{color:var(--danger);border-color:#f8717159}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--muted);font-weight:600}.field input,.field select{background:var(--bg-2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:10px;font-size:15px;outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.row{display:flex;gap:12px;flex-wrap:wrap}.row>.field{flex:1;min-width:120px}.acc{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--surface)}.acc+.acc{margin-top:10px}.acc .meta{display:flex;align-items:center;gap:12px}.acc .dot{width:10px;height:10px;border-radius:50%}.acc .name{font-weight:700;font-size:16px}.acc .sub{font-size:12px;color:var(--muted);margin-top:2px}.acc .bal{font-size:20px;font-weight:700;letter-spacing:-.02em}.badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.badge.fixed{background:#34d3991f;color:var(--accent)}.badge.manual{background:#60a5fa1f;color:var(--blue)}.gitem{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.gitem:last-child{border-bottom:none}.gitem .gname{flex:1;font-weight:600}.gtotal{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:14px;border-top:2px solid var(--border)}.gtotal .v{font-size:28px;font-weight:800;color:var(--gold);letter-spacing:-.02em}.insight{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:6px}.insight .ic{font-size:22px}.insight .it{font-size:13px;color:var(--muted);font-weight:600}.insight .iv{font-size:20px;font-weight:700;letter-spacing:-.02em}.bar-row{display:flex;align-items:center;gap:10px;margin:8px 0}.bar-row .bl{width:120px;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{flex:1;height:10px;background:var(--bg-2);border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px}.bar-row .bv{width:60px;text-align:right;font-size:13px;font-weight:600}.slider{width:100%;accent-color:var(--accent)}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-head h2{font-size:18px;font-weight:700;letter-spacing:-.02em}.empty{text-align:center;padding:40px 20px;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-sm)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04070cb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:20px}.modal{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.modal h3{font-size:18px;margin-bottom:16px}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.stack{display:flex;flex-direction:column;gap:12px}.mb{margin-bottom:16px}.mt{margin-top:16px}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;overflow:hidden}.confetti{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:fall linear forwards}@keyframes fall{to{transform:translateY(105vh) rotate(720deg);opacity:.9}}.celebrate-banner{position:fixed;top:24px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--gold),#ffdd80);color:#3a2a00;padding:14px 24px;border-radius:999px;font-weight:800;font-size:16px;box-shadow:0 10px 40px #f5c45166;z-index:101;animation:pop .4s ease}@keyframes pop{0%{transform:translate(-50%) scale(.7);opacity:0}}.tip{font-size:13px;color:var(--muted);line-height:1.5}
