:root{--bg: #0a0f1c;--bg-2: #0f172a;--card: #121b30;--text: #e5edf7;--muted: #8595ad;--accent: #38bdf8;--accent-2: #a78bfa;--danger: #f87171;--border: #1f2a44;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:radial-gradient(1200px 600px at 100% 0%,rgba(167,139,250,.06),transparent 60%),radial-gradient(900px 500px at 0% 0%,rgba(56,189,248,.06),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.container{max-width:1024px;margin:0 auto;padding:16px}header.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#0a0f1cd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10}header.app-header h1{font-size:1.05rem;margin:0;letter-spacing:.2px}header.app-header nav a{margin-left:16px;font-size:.9rem;color:var(--muted)}header.app-header nav a:hover{color:var(--text);text-decoration:none}.card{background:linear-gradient(180deg,#ffffff05,#fff0),var(--card);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 1px #ffffff05 inset}.card-title{margin:0 0 14px;font-size:.95rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.page-title{margin:0 0 16px;font-size:1.5rem;font-weight:700}button,.button{background:var(--accent);color:#06121f;border:none;border-radius:8px;padding:10px 16px;font-weight:600;font-size:.92rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #38bdf82e}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}button.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button.ghost:hover:not(:disabled){border-color:var(--accent);background:#38bdf80f;box-shadow:none}input,select{background:#0b1225;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:.95rem;width:100%;transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf829}label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:6px;letter-spacing:.3px}.error{color:var(--danger);font-size:.92rem}table{width:100%;border-collapse:collapse}th,td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left;font-size:.92rem}th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px}tbody tr:hover{background:#38bdf80a}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>div{flex:1;min-width:140px}.total-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.total-label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:.78rem}.total-amount{font-size:1.6rem;font-weight:700;letter-spacing:-.4px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.cat-btn{position:relative;background:linear-gradient(180deg,#ffffff06,#fff0),#0b1225;border:1px solid var(--border);color:var(--text);border-radius:12px;padding:14px 14px 14px 18px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"name pct" "amount pct";column-gap:10px;row-gap:4px;align-items:center;cursor:pointer;text-align:left;font:inherit;font-weight:500;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease,background .15s ease;overflow:hidden}.cat-btn:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 24px #00000059,0 0 0 1px #38bdf840 inset;background:linear-gradient(180deg,#38bdf80d,#fff0),#0b1225}.cat-btn-dot{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px}.cat-btn-name{grid-area:name;font-size:.92rem;color:var(--text);font-weight:600}.cat-btn-amount{grid-area:amount;font-size:1.05rem;color:var(--accent);font-weight:700;letter-spacing:-.2px}.cat-btn-pct{grid-area:pct;font-size:.78rem;color:var(--muted);font-weight:500}.cat-btn-new{border-style:dashed;border-color:var(--border);background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}.cat-btn-new:hover{border-color:var(--accent);color:var(--accent);background:#38bdf80a}.cat-btn-new .cat-btn-plus{font-size:1.1rem;font-weight:700;line-height:1}.cat-btn-new .cat-btn-name{color:inherit}.cat-btn-new.editing{border-style:solid;border-color:var(--accent);display:flex;flex-direction:column;gap:8px;padding:12px;cursor:default}.cat-btn-new.editing input{font-size:.92rem;padding:8px 10px}.cat-btn-new.editing:hover{transform:none;box-shadow:none}.cat-btn-new-actions{display:flex;gap:6px}.cat-btn-new-actions button{padding:6px 10px;font-size:.85rem;flex:1}.cat-chip{display:inline-flex;align-items:center;gap:6px;background:#38bdf814;color:var(--accent);border:1px solid rgba(56,189,248,.18);padding:4px 10px;border-radius:999px;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}.cat-chip:hover{background:#38bdf829;border-color:var(--accent);transform:none;box-shadow:none}.cat-chip-overridden{background:#a78bfa1a;color:var(--accent-2);border-color:#a78bfa40}.cat-chip-overridden:hover{background:#a78bfa2e;border-color:var(--accent-2)}.cat-chip-caret{opacity:.7}.cat-select{background:#0b1225;color:var(--text);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;font-size:.85rem;width:auto;min-width:160px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.stat{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:#ffffff05;border:1px solid var(--border);border-radius:10px}.stat-label{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.1rem;font-weight:700;letter-spacing:-.2px}.back-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--accent);border:1px solid var(--border);padding:8px 14px;border-radius:999px;font-weight:500;font-size:.9rem;margin-bottom:16px}.back-btn:hover{border-color:var(--accent);background:#38bdf814;transform:translate(-2px);box-shadow:none}.back-btn svg{display:block}@media (max-width: 600px){.container{padding:12px}header.app-header{padding:12px 14px}header.app-header h1{font-size:.95rem}header.app-header nav a{margin-left:10px}.total-amount{font-size:1.35rem}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.cat-btn{padding:12px 12px 12px 16px}}
