:root{--bg:#0a0a0b;--bg-card:#111113;--bg-card-2:#1a1a1d;--border:#232327;--text:#ededef;--text-dim:#8a8a90;--accent:#00e5a0;--accent-2:#00e5a0;--accent-soft:#16211c;--danger:#ff6b6b;--warning:#f5b300;--mono:"JetBrains Mono", "SF Mono", ui-monospace, Menlo, Consolas, monospace;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0}.shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border);background:#0c0c0e;flex-direction:column;flex-shrink:0;align-self:flex-start;gap:4px;width:236px;height:100vh;padding:22px 14px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 20px;display:flex}.brand-name{letter-spacing:-.01em;font-size:15px;font-weight:650}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{text-align:left;width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:11px;padding:9px 10px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item svg{flex-shrink:0}.nav-item:hover{background:var(--bg-card-2);color:var(--text)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:auto;padding-top:14px;display:flex}.who-btn{cursor:pointer;text-align:left;min-width:0;color:var(--text);background:0 0;border:none;border-radius:8px;flex:1;align-items:center;gap:10px;padding:5px 6px;transition:background .12s;display:flex}.who-btn:hover{background:var(--bg-card-2)}.who-btn.active{background:var(--accent-soft)}.who-btn.active .avatar{border-color:var(--accent);color:var(--accent)}.sidebar-foot .avatar{background:var(--bg-card-2);border:1px solid var(--border);width:30px;height:30px;color:var(--text-dim);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.sidebar-foot .who{flex:1;min-width:0}.sidebar-foot .who b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;display:block;overflow:hidden}.sidebar-foot .who span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.main{flex:1;min-width:0;padding:0 32px 64px}.main-inner{max-width:1160px;margin:0 auto}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;padding:28px 0 20px;display:flex}.page-title{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.page-sub{color:var(--text-dim);margin:4px 0 0;font-size:13px}@media (width<=900px){.shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:6px;width:auto;height:auto;padding:10px 14px;position:static;overflow-x:auto}.brand{padding:0 12px 0 2px}.brand-name{display:none}.nav{flex-direction:row}.nav-item span{display:none}.nav-item{padding:9px}.sidebar-foot{border-top:none;margin:0 0 0 auto;padding-top:0}.sidebar-foot .who{display:none}.main{padding:0 18px 50px}.topbar{padding:20px 0 16px}}.grid{gap:16px;display:grid}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:18px}.card h3{color:var(--text-dim);margin:0 0 14px;font-size:13px;font-weight:500}.kpi{flex-direction:column;gap:6px;display:flex}.kpi .label{color:var(--text-dim);font-size:13px}.kpi .value{font-size:26px;font-weight:650;font-family:var(--mono);letter-spacing:-.02em}.kpi .sub{color:var(--text-dim);font-size:12px}.value.pos{color:var(--accent-2)}.value.neg{color:var(--danger)}.value.warn{color:var(--warning)}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:var(--bg-card);border-radius:14px;padding:34px;transition:border-color .15s,background .15s}.dropzone.drag{border-color:var(--accent);background:var(--bg-card-2)}.dropzone p{color:var(--text-dim);margin:6px 0}.dropzone strong{color:var(--text)}.btn{background:var(--accent);color:#06120d;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;transition:filter .15s}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn.sm{padding:4px 10px;font-size:12px}.statements{flex-wrap:wrap;gap:10px;display:flex}.chip{background:var(--bg-card-2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;display:flex}.chip.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.chip .dot{border-radius:50%;width:10px;height:10px}.chip .meta{flex-direction:column;display:flex}.chip .meta b{font-size:13px}.chip .meta span{color:var(--text-dim);font-size:11px}.chip .x{color:var(--text-dim);margin-left:4px}.chip .x:hover{color:var(--danger)}.filter-actions{align-items:center;gap:8px;margin-bottom:10px;display:flex}.filter-list{flex-direction:column;gap:6px;display:flex}.filter-row{background:var(--bg-card-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;transition:opacity .15s;display:flex}.filter-row.off{opacity:.45}.filter-main{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.filter-main input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.filter-row .meta{flex-direction:column;min-width:0;display:flex}.filter-row .meta b{font-size:13px}.filter-row .meta span{color:var(--text-dim);font-size:11px}.filter-row .del{cursor:pointer;opacity:.55;background:0 0;border:none;padding:4px;font-size:14px}.filter-row .del:hover{opacity:1}table.list{border-collapse:collapse;width:100%;font-size:13px}table.list th{text-align:left;color:var(--text-dim);padding:6px 8px;font-weight:500}table.list td{border-top:1px solid var(--border);padding:7px 8px}table.list td.num{text-align:right;font-family:var(--mono);font-size:12.5px}.badge{background:var(--bg-card-2);color:var(--text-dim);border-radius:20px;padding:1px 8px;font-size:11px;display:inline-block}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{width:100%;max-width:380px}.auth-form{flex-direction:column;gap:12px;margin:18px 0;display:flex}.auth-form label{color:var(--text-dim);flex-direction:column;gap:5px;font-size:13px;display:flex}.auth-form input{background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:10px 12px;font-size:14px}.auth-form input:focus{border-color:var(--accent);outline:none}.auth-form .btn{margin-top:4px}.link{color:var(--accent);cursor:pointer}.link:hover{text-decoration:underline}.muted{color:var(--text-dim)}.error{color:var(--danger)}.ok{color:var(--accent);font-size:13px}.center{text-align:center}.field{color:var(--text-dim);flex-direction:column;gap:5px;font-size:13px;display:flex}.field input:disabled{opacity:.6;cursor:not-allowed}.danger-zone{border-color:#3a2427}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:30px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.tab:hover{color:var(--text);border-color:#3a3a40}.tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tab-count{background:var(--bg-card-2);color:inherit;border-radius:20px;padding:1px 7px;font-size:11px;font-weight:700}.tab.active .tab-count{background:#00e5a01f}.legend{flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:12px;display:flex}.legend .item{color:var(--text-dim);align-items:center;gap:6px;display:flex}.legend .sw{border-radius:3px;width:10px;height:10px}.tab.sm{padding:5px 11px;font-size:12.5px}.period-months{margin-top:8px}.filter-sublist{flex-direction:column;gap:5px;margin:8px 0 2px 26px;display:flex}.filter-subrow{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 9px;display:flex}.filter-subrow.off{opacity:.45}.filter-subrow .meta span{color:var(--text-dim);font-size:11px}.mov-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.mov-filters select,.mov-search{background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:8px 10px;font-size:13px}.mov-search{min-width:200px}.mov-filters select:focus,.mov-search:focus{border-color:var(--accent);outline:none}.mov-check{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.mov-check input{accent-color:var(--accent);cursor:pointer}.mov-bulk{background:var(--bg-card-2);border:1px solid var(--border);border-radius:9px;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.btn.danger{color:#fff;background:#dc2626;border-color:#dc2626}.btn.danger:hover{background:#b91c1c}.mov-table input[type=checkbox]{accent-color:var(--accent);cursor:pointer}tr.row-selected td{background:var(--accent-soft)}.budget-edit{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}@media (width<=640px){.budget-edit{grid-template-columns:1fr}}.budget-edit-row{align-items:center;gap:8px;font-size:13px;display:flex}.budget-edit-name{flex:1}.budget-edit-row .cell-input{flex:0 0 110px}.budget-list{flex-direction:column;gap:12px;display:flex}.budget-row-head{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.budget-bar{background:var(--bg-card-2);border-radius:6px;height:8px;overflow:hidden}.budget-bar-fill{border-radius:6px;height:100%;transition:width .2s}.goal-row{border-top:1px solid var(--border);padding:10px 0}.goal-row:first-child{border-top:none}.goal-head{justify-content:space-between;align-items:baseline;gap:8px;font-size:14px;display:flex}.goal-bar{background:var(--bg-card-2);border-radius:6px;height:8px;margin:6px 0 4px;overflow:hidden}.goal-bar-fill{background:var(--accent);border-radius:6px;height:100%;transition:width .2s}.goal-foot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.goal-foot select,.goal-add select{background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 9px;font-size:12px}.goal-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.goal-add input{background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 9px;font-size:13px}.mov-table th:last-child,.mov-table td.actions{white-space:nowrap}.mov-table .actions{gap:6px;display:flex}.icon-btn{cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:6px;padding:3px 6px;font-size:14px}.icon-btn:hover{opacity:1;background:var(--bg-card-2)}.sub-toggle{border:1px solid var(--border);cursor:pointer;opacity:.35;filter:grayscale();background:0 0;border-radius:6px;padding:2px 6px;font-size:13px;transition:opacity .12s,filter .12s}.sub-toggle.on{opacity:1;filter:none;border-color:var(--accent)}.sub-toggle:hover{opacity:1}tr.editing td{background:var(--bg-card-2)}.fin-top{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:10px;display:flex}.fin-month{color:var(--text-dim);flex-direction:column;gap:3px;font-size:12px;display:flex}.fin-month input{background:var(--bg-card-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 9px;font-size:13px}.fin-kpis{gap:12px;display:flex}.kpi.sm{padding:8px 14px}.kpi.sm .value{font-size:18px}.fin-actions{align-items:center;gap:12px;margin-bottom:14px;display:flex}.fin-grid{align-items:start}.fin-quad h3{margin:0 0 8px}.fin-sub{margin-bottom:10px}.fin-sub-head{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:6px 0 4px;font-size:11px;font-weight:600}.fin-line{align-items:center;gap:6px;margin-bottom:4px;display:flex}.fin-line .cell-input{flex:1}.fin-line .cell-input.num{flex:0 0 120px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:12px}.fin-total{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;font-size:13px;display:flex}.fin-line .cell-input.mini{flex:0 0 64px;padding:5px 6px;font-size:12px}.fin-recur{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:2px;font-size:13px;display:flex}.fin-recur input{accent-color:var(--accent);cursor:pointer}.fin-proj-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.fin-proj-head h3{margin:0}.fin-auto{background:var(--bg-card-2);border-radius:8px;justify-content:space-between;padding:6px 9px}.fin-auto-name{color:var(--text-dim);font-size:13px}.fin-auto-amount{font-variant-numeric:tabular-nums;font-size:13px}.cell-input,.mov-table select{background:var(--bg-card-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:7px;padding:6px 8px;font-size:13px}.cell-input:focus,.mov-table select:focus{border-color:var(--accent);outline:none}.cell-input.num{text-align:right;font-family:var(--mono)}.cat-pill{white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}
