@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Plus+Jakarta+Sans:wght@400;500;600&display=swap";:root{--bg: #0b1220;--panel: rgba(18, 25, 41, .72);--panel-strong: rgba(20, 28, 48, .9);--border: rgba(255, 255, 255, .06);--muted: rgba(255, 255, 255, .68);--text: #f6f7fb;--positive: #22c55e;--negative: #fb7185;--neutral: #38bdf8;--gradient: linear-gradient(135deg, #0f766e, #2563eb, #7c3aed);--shadow: 0 25px 70px rgba(0, 0, 0, .35);--radius: 16px;--radius-sm: 12px;--radius-lg: 22px;--gap: 18px;--card-gap: 18px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Plus Jakarta Sans,Space Grotesk,Segoe UI,-apple-system,BlinkMacSystemFont,Microsoft YaHei,sans-serif;background:radial-gradient(circle at 20% 20%,rgba(45,212,191,.15),transparent 30%),radial-gradient(circle at 80% 0%,rgba(124,58,237,.2),transparent 25%),var(--bg);color:var(--text);min-height:100vh;padding:24px}.grain{position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(transparent 80%,#ffffff0a),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.15'/%3E%3C/svg%3E");opacity:.8;pointer-events:none;z-index:0}a{color:inherit}.app{position:relative;z-index:1}.topbar{position:sticky;top:12px;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;margin-bottom:22px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);background:#0e1220bf;border-radius:var(--radius);box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:12px}.brand__icon{width:42px;height:42px;border-radius:12px;background:var(--gradient);display:grid;place-items:center;font-weight:700;color:#0b1220;font-size:20px;box-shadow:0 10px 30px #7c3aed59}.brand__name{font-weight:700;letter-spacing:.3px}.brand__sub{margin:0;color:var(--muted);font-size:12px}.nav{display:flex;gap:12px;align-items:center}.nav a{color:var(--muted);text-decoration:none;padding:10px 14px;border-radius:12px;border:1px solid transparent;transition:all .2s ease}.nav a:hover{color:#fff;border-color:var(--border);background:#ffffff0f}.nav a.active{color:#fff;border-color:#ffffff1a;background:linear-gradient(120deg,#2dd4bf26,#7c3aed1a)}.chip{padding:8px 12px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px;background:#ffffff0a}.layout{position:relative;z-index:1;max-width:1200px;margin:0 auto 32px;display:flex;flex-direction:column;gap:24px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}h1{margin:2px 0 6px;font-size:28px;font-weight:700}h3{margin:0;font-size:18px}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:1px;font-size:11px;color:var(--muted)}.muted{color:var(--muted);margin:4px 0 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--gap)}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow)}.card--glow{background:linear-gradient(150deg,#2dd4bf1f,#7c3aed1f)}.card__header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.figure{font-size:28px;font-weight:700;margin:10px 0 4px}.pill{padding:6px 10px;border-radius:999px;border:1px solid var(--border);color:#fff;font-size:12px}.pill--positive{background:#22c55e29;border-color:#22c55e59;color:#bbf7d0}.pill--negative{background:#fb718524;border-color:#fb71854d;color:#fecdd3}.pill--neutral{background:#38bdf824;border-color:#38bdf859;color:#bae6fd}.btn{background:linear-gradient(120deg,#22c55e,#0ea5e9);color:#0b1220;border:none;padding:12px 16px;border-radius:12px;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 12px 24px #22c55e40}.btn:hover{transform:translateY(-1px);box-shadow:0 16px 30px #0ea5e947}.btn-ghost{background:#ffffff0a;color:#fff;border:1px solid var(--border);box-shadow:none}.btn-ghost:hover{border-color:#ffffff1f}.activity-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.activity-item{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05}.activity__title{margin:0;font-weight:600}.activity__meta{margin:4px 0 0;color:var(--muted);font-size:13px}.activity__amount{font-weight:700}.activity__amount.is-income{color:var(--positive)}.activity__amount.is-expense{color:var(--negative)}.budget-input{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.budget-input input{width:110px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:#fff}.progress{position:relative;height:18px;border-radius:999px;background:#ffffff0f;overflow:hidden;border:1px solid var(--border);margin:10px 0}.progress__bar{height:100%;background:linear-gradient(90deg,#22c55e,#10b981,#06b6d4);width:0%;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#0b1220;font-weight:700;transition:width .3s ease,background .3s ease}.progress__bar.overrun{background:linear-gradient(90deg,#f97316,#fb7185,#ef4444);color:#fff}.progress__label{font-size:12px}.filter{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff08}.filter label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.filter input,.filter select{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:#fff}.filter__actions{margin-left:auto}.table-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel-strong);box-shadow:var(--shadow)}.table-card__header{padding:14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.table-wrapper{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:13px}td{color:#e5e7eb}.col-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.table-actions{display:flex;gap:6px}.icon-btn{border:1px solid var(--border);background:#ffffff0a;color:#fff;padding:8px 10px;border-radius:10px;cursor:pointer;font-size:12px}.icon-btn.danger{border-color:#fb718566;color:#fecdd3}.chart-card{height:320px}.chart-card canvas{width:100%!important;height:100%!important}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:25}.modal{width:min(520px,100%);background:#0f172a;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.modal__body{display:flex;flex-direction:column;gap:12px;padding:16px}.modal__body label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.modal__body input,.modal__body select,.modal__body textarea{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:#fff}select,option{background-color:#0f172a;color:#f6f7fb}option:checked{background-color:#1f2937}.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.radio-group{display:flex;gap:16px}.radio-group input{margin-right:6px}.modal-open{overflow:hidden}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow)}.auth-fields{display:flex;flex-direction:column;gap:12px}.auth-fields label{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.auth-fields input{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#ffffff0a;color:#fff}.auth-actions{display:flex;gap:10px;align-items:center}@media(max-width:960px){body{padding:16px}.topbar{flex-direction:column;align-items:flex-start;gap:12px}.chip{align-self:flex-start}.layout{margin-bottom:24px}.table-card__header{flex-direction:column;align-items:flex-start;gap:6px}}@media(max-width:720px){.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.filter__actions{width:100%}.filter{align-items:stretch}th,td{padding:10px}}
