:root{
  --bg:#060d18;--panel:#0b1625;--panel2:#101d30;--border:#20324a;--text:#f5f8fc;--soft:#c5d0df;--muted:#8ea2bb;
  --primary:#3377ff;--primary2:#4a88ff;--success:#21c77a;--warning:#f5b83d;--danger:#ef5965;--radius:16px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(180deg,#060d18,#09111f);color:var(--text)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}button{touch-action:manipulation}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr;grid-template-rows:82px 1fr;grid-template-areas:"top top" "side main"}
.topbar{grid-area:top;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:12px 22px;background:rgba(8,15,28,.97);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{display:grid;place-items:center;width:88px;height:48px;border-radius:14px;background:linear-gradient(135deg,#1d4ed8,#0ea5e9);font-weight:1000;letter-spacing:.08em}.small-mark{width:66px;height:40px;font-size:.9rem}.brand-copy{display:grid;gap:2px}.brand-copy strong{font-size:1.25rem}.brand-copy span{color:var(--muted);font-size:.88rem}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.status-pill,.user-pill,.badge{border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:850}.status-pill{background:#103626;color:#9df0c5;border:1px solid #176541}.user-pill{background:#102745;color:#bfdbfe;border:1px solid #1d4ed8}
.sidebar{grid-area:side;padding:16px 12px;border-right:1px solid var(--border);background:#081120;overflow:auto}.nav-group{margin:18px 10px 8px;color:#7187a5;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.nav-btn{width:100%;min-height:44px;border:0;background:transparent;color:#b8c7d9;text-align:left;padding:11px 13px;border-radius:13px;cursor:pointer;font-weight:750;margin-bottom:4px}.nav-btn:hover,.nav-btn.active{background:#17345f;color:#fff}
.main{grid-area:main;min-width:0}.view-host{padding:20px;max-width:1680px;margin:auto}.page-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}.page-head>div:first-child{flex:1}.page-head h1{font-size:clamp(1.7rem,2.4vw,2.25rem);margin:0 0 5px}.page-head p{margin:0;color:var(--muted)}
.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn,.icon-btn{border:1px solid transparent;border-radius:12px;cursor:pointer;transition:.15s}.btn{padding:10px 14px;font-weight:800;background:var(--primary);color:#fff;min-height:42px}.btn:hover{background:var(--primary2)}.btn.secondary{background:var(--panel2);border-color:var(--border)}.btn.success{background:#15955b}.btn.danger{background:#b63f4a}.btn.compact{padding:7px 10px;min-height:36px}.icon-btn{display:none;background:var(--panel2);color:#fff;padding:9px 12px;border-color:var(--border)}
.grid{display:grid;gap:14px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:linear-gradient(180deg,var(--panel),#091523);border:1px solid var(--border);border-radius:var(--radius);padding:17px}.card h2,.card h3{margin:0 0 12px}.kpi-label{color:var(--muted);font-weight:800;font-size:.82rem;text-transform:uppercase}.kpi{font-size:clamp(1.65rem,3vw,2.2rem);font-weight:950;margin-top:8px}.positive{color:#67e6a5}.negative{color:#ff8c96}.muted{color:var(--muted)}.small{font-size:.86rem}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar label{display:flex;align-items:center;gap:8px;color:var(--soft)}
input,select,textarea{width:100%;background:#0c192a;border:1px solid var(--border);color:#fff;border-radius:11px;padding:10px 11px;min-height:42px}input:focus,select:focus,textarea:focus{outline:2px solid rgba(51,119,255,.35);border-color:var(--primary)}label{display:grid;gap:6px;color:var(--soft);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stack{display:grid;gap:14px}.span-2{grid-column:1/-1}
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:720px;background:#091523}.table th,.table td{padding:11px 12px;border-bottom:1px solid #1b2c42;text-align:left;vertical-align:middle}.table th{color:#8fa6c4;background:#0d1a2b;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.money{text-align:right!important;font-variant-numeric:tabular-nums}.confidence-high{color:#66e3a2}.confidence-medium{color:#ffd276}.confidence-low{color:#ff8f99;font-weight:850}
.bar-list{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(120px,3fr) auto;gap:10px;align-items:center}.bar-track{height:9px;border-radius:999px;background:#15243a;overflow:hidden}.bar-fill{height:100%;border-radius:999px;background:#507fe8}.bar-row strong{font-variant-numeric:tabular-nums}
.upload-zone{border:1.5px dashed #365579;border-radius:18px;padding:26px;text-align:center;background:#0a1728}.upload-zone input{max-width:560px;margin:12px auto 0}.ai-note{padding:12px 14px;border:1px solid #2c4f7a;border-radius:13px;background:#0d2240;color:#c8ddff}.alert{padding:11px 13px;border-radius:12px;border:1px solid}.alert.error{background:#3a171c;border-color:#7a2d37;color:#ffb7bd}.alert.warn{background:#3b2d10;border-color:#806321;color:#ffe08d}.alert.success{background:#123524;border-color:#226945;color:#a8f0c8}
.total-box{display:flex;justify-content:flex-end;margin-top:12px}.total-box>div{min-width:320px;display:grid;grid-template-columns:1fr auto;gap:7px 18px;padding:14px;border-radius:14px;background:#0d1b2d;border:1px solid var(--border)}.total-box strong{font-size:1.1rem}
.empty{padding:24px;text-align:center;color:var(--muted)}.loading{padding:40px;text-align:center;color:var(--muted)}.toast{position:fixed;right:18px;bottom:18px;z-index:200;max-width:360px;background:#0f2036;color:#fff;border:1px solid #2e4b6d;border-radius:13px;padding:12px 14px;box-shadow:0 16px 44px rgba(0,0,0,.35);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{border-color:#8d3f47;background:#36171c}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left,rgba(29,78,216,.24),transparent 34%),radial-gradient(circle at bottom right,rgba(14,165,233,.12),transparent 30%),#050a14}.login-shell{width:min(520px,100%)}.login-card{padding:28px;border-radius:24px;background:linear-gradient(180deg,rgba(10,20,36,.98),rgba(7,14,26,.99));border:1px solid rgba(255,255,255,.09);box-shadow:0 30px 80px rgba(0,0,0,.38)}.brand-block{display:flex;align-items:center;gap:16px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}.brand-block h1{margin:0 0 4px}.brand-block p{margin:0;color:var(--muted)}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr;grid-template-areas:"top" "main"}.sidebar{position:fixed;z-index:80;left:0;top:82px;bottom:0;width:min(300px,88vw);transform:translateX(-103%);transition:.2s;box-shadow:22px 0 48px rgba(0,0,0,.45)}.sidebar.open{transform:translateX(0)}.icon-btn{display:inline-flex}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.view-host{padding:12px}.page-head{align-items:flex-start;flex-direction:column}.grid-4,.grid-3,.grid-2,.form-grid{grid-template-columns:1fr}.brand-copy span{display:none}.user-pill{display:none}.topbar{padding:12px}.bar-row{grid-template-columns:1fr auto}.bar-track{grid-column:1/-1;grid-row:2}.total-box>div{min-width:0;width:100%}.table th,.table td{padding:9px}.upload-zone{padding:18px 12px}}
.section-title-row{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title-row h2{margin:0 0 4px}.section-title-row p{margin:0}.income-payment-list{display:grid;gap:10px}.income-payment-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:13px;background:#0a1727}.income-total-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid #24466f;border-radius:15px;background:#0d2038}.income-total-card span{color:var(--soft);font-weight:800}.income-total-card strong{font-size:1.7rem}.payment-chips,.subcategory-chips{display:flex;gap:7px;flex-wrap:wrap}.payment-chip,.subcategory-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:999px;background:#10233b;border:1px solid #27415f;color:#dbe8f8;font-size:.82rem}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.category-card{background:linear-gradient(180deg,var(--panel),#091523);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.category-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.category-card-head strong{font-size:1.1rem}.category-card-head span{color:var(--muted);font-size:.8rem}.inline-create{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.subcategory-create{display:grid;grid-template-columns:minmax(130px,.8fr) minmax(160px,1.2fr) auto;gap:10px;align-items:end}
@media(max-width:1000px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.income-payment-row,.inline-create,.subcategory-create,.category-grid{grid-template-columns:1fr}.section-title-row{align-items:flex-start;flex-direction:column}.income-payment-row .btn{width:100%}}
