:root{--bg:#0b0f1a;--surface:#131a2b;--surface-2:#1a2340;--border:#232e4d;--text:#e6ebf5;--text-dim:#8b95ad;--accent:#2563eb;--accent-2:#f97316;--green:#22c55e;--red:#ef4444;--radius:12px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}.container{max-width:1080px;margin:0 auto;padding:24px 20px 64px}.header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:16px;display:flex}.header h1{letter-spacing:-.02em;font-size:20px;font-weight:700}.header .sub{color:var(--text-dim);margin-top:2px;font-size:13px}.grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:14px;font-size:13px}.big-number{letter-spacing:-.03em;margin:4px 0 6px;font-size:32px;font-weight:800}.small-meta{color:var(--text-dim);font-size:13px}.progress{background:var(--surface-2);border-radius:99px;height:8px;margin-top:14px;overflow:hidden}.progress>div{background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:99px;height:100%;transition:width .4s}.progress.warn>div{background:var(--red)}.cat-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.cat-row:last-child{border-bottom:none}.cat-name{align-items:center;gap:8px;display:flex}.cat-amount{font-variant-numeric:tabular-nums;font-weight:600}.oneoff-tag{color:var(--text-dim);border:1px solid var(--border);border-radius:6px;margin-left:8px;padding:1px 6px;font-size:11px}.tx-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.tx-row:last-child{border-bottom:none}.tx-left{align-items:center;gap:10px;display:flex}.tx-date{color:var(--text-dim);font-variant-numeric:tabular-nums;min-width:74px;font-size:12px}.tx-amount{font-variant-numeric:tabular-nums;font-weight:600}.emoji-badge{background:var(--surface-2);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:inline-flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.form-row.single{grid-template-columns:1fr}label{color:var(--text-dim);margin-bottom:5px;font-size:12px;display:block}input,select{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:9px 12px;font-size:14px}input:focus,select:focus{border-color:var(--accent)}.checkbox-row{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:14px;font-size:13px;display:flex}.checkbox-row input{width:auto}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}button:hover{filter:brightness(1.1)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text)}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{width:100%;max-width:360px}.login-card h1{margin-bottom:4px;font-size:22px}.login-card .sub{color:var(--text-dim);margin-bottom:24px;font-size:14px}.login-error{color:#fca5a5;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.4);border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.flex-between{justify-content:space-between;align-items:center;display:flex}.muted{color:var(--text-dim);font-size:13px}.toast{background:var(--green);color:#052e16;z-index:50;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px rgba(0,0,0,.4)}.signout{border:1px solid var(--border);color:var(--text-dim);background:0 0;padding:7px 12px;font-size:13px}
