:root{--bg:#f7f8fb;--surface:#fff;--surface-2:#eef2f7;--text:#111827;--muted:#64748b;--border:#d9e0ea;--blue:#2563eb;--green:#15803d;--red:#dc2626;--teal:#0f766e;--amber:#b45309;--shadow:0 12px 30px #0f172a14;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,input{border-radius:8px}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #2563eb38}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.15}h2{font-size:17px;line-height:1.2}svg{width:18px;height:18px}.login-shell{place-items:center;min-height:100svh;padding:24px;display:grid}.login-panel{background:var(--surface);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);border-radius:8px;gap:24px;padding:26px;display:grid}.login-brand{color:var(--text)}.login-brand span{color:var(--muted)}.login-form{gap:14px;display:grid}.login-form label{color:var(--muted);gap:6px;font-size:13px;display:grid}.login-form button,.secondary-button{background:var(--blue);color:#fff;border:0;min-height:40px;padding:0 14px;font-weight:700}.form-error,.sync-error{color:var(--red)}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{color:#f8fafc;background:#111827;flex-direction:column;gap:26px;height:100svh;padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--blue);border-radius:8px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.brand span,.eyebrow,.panel-header span,.hint,.empty,.item-list span,.transaction-list span{color:var(--muted)}.brand span{color:#cbd5e1;font-size:13px;display:block}.tabs{gap:6px;display:grid}.tabs button{color:#cbd5e1;text-align:left;background:0 0;border:0;align-items:center;gap:10px;min-height:42px;padding:0 12px;display:flex}.tabs button.active,.tabs button:hover{color:#fff;background:#ffffff1a}.workspace{min-width:0;padding:28px}.topbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;display:flex}.session-tools{align-items:end;gap:10px;display:flex}.secondary-button{background:#111827;align-items:center;gap:8px;display:inline-flex}.sync-pill{background:var(--surface-2);min-height:30px;color:var(--muted);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.sync-pill.synced{color:var(--green)}.sync-pill.error{color:var(--red)}.sync-error{margin:-12px 0 16px}.eyebrow{text-transform:uppercase;letter-spacing:0;font-size:12px;font-weight:700}.period-picker{color:var(--muted);gap:6px;font-size:13px;display:grid}select,input{border:1px solid var(--border);color:var(--text);background:#fff;min-height:38px;padding:0 10px}.page-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.page-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{gap:16px;display:grid}.metric,.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px}.metric{gap:8px;min-height:106px;padding:18px;display:grid}.metric span{color:var(--muted);font-size:13px}.metric strong{font-size:26px}.metric.income strong,.metric.savings strong{color:var(--green)}.metric.expense strong,.negative{color:var(--red)}.metric.investment strong{color:var(--teal)}.panel{padding:18px}.panel.wide{grid-column:span 2}.panel-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.category-bars,.forecast-list,.form-grid,.item-list,.signal-list,.transaction-list{gap:10px;display:grid}.bar-row{grid-template-columns:minmax(160px,1fr) 2fr auto;align-items:center;gap:12px;display:grid}.bar-row div{justify-content:space-between;gap:12px;display:flex}progress{background:var(--surface-2);border:0;border-radius:999px;width:100%;height:10px;overflow:hidden}progress::-webkit-progress-bar{background:var(--surface-2)}progress::-webkit-progress-value{background:var(--blue)}.transaction-list,.item-list,.signal-list{margin:0;padding:0;list-style:none}.transaction-list li,.item-list li,.signal-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.signal-list li{justify-content:flex-start}.signal-list svg{color:var(--amber)}.item-list li>div{display:grid}.import-box{border:1px dashed var(--border);background:var(--surface-2);border-radius:8px;align-items:center;gap:14px;padding:18px;display:flex}.import-box label{gap:8px;display:grid}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.summary-grid span{background:var(--surface-2);border-radius:8px;padding:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:0;font-size:12px}.clickable-name{cursor:pointer}.clickable-name:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{color:var(--muted);gap:6px;font-size:13px;display:grid}.form-grid .checkbox-label{align-items:center;gap:10px;display:flex}.checkbox-label input{min-height:auto}.form-grid button,.danger{background:var(--blue);color:#fff;border:0;min-height:40px;padding:0 14px;font-weight:700}.forecast-row{background:var(--surface-2);border-radius:8px;grid-template-columns:80px repeat(3,minmax(110px,1fr)) auto;align-items:center;gap:10px;padding:12px;display:grid}.icon-button{border:1px solid var(--border);background:#fff;place-items:center;width:34px;height:34px;display:grid}.danger{background:var(--red);align-items:center;gap:8px;margin-top:16px;display:inline-flex}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:18px}.topbar,.bar-row,.forecast-row{grid-template-columns:1fr}.topbar{align-items:stretch;display:grid}.page-grid,.page-grid.two,.form-grid,.summary-grid{grid-template-columns:1fr}.panel.wide{grid-column:span 1}}
