:root{color-scheme:light dark;--bg:#0f1420;--bg-raised:#171d2c;--border:#2b3348;--fg:#e7ebf3;--fg-dim:#9aa3b8;--accent:#4c8dff;--good:#46b17c;--bad:#e0605a;--warn:#d6a94c}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font:inherit;color:inherit}.login-main{max-width:26rem;margin:0 auto;padding:5rem 1.5rem}.login-main form{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.login-main input{padding:.6rem .8rem;border-radius:.4rem;border:1px solid var(--border);background:var(--bg-raised);color:var(--fg)}.login-main button{padding:.6rem .8rem;border-radius:.4rem;border:none;background:var(--accent);color:#06101f;font-weight:600;cursor:pointer}[role=alert]{color:var(--bad)}.app-shell{max-width:72rem;margin:0 auto;padding:1.25rem 1.5rem 4rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.app-header h1{font-size:1.3rem;margin:0}.app-header button{padding:.4rem .8rem;border-radius:.4rem;border:1px solid var(--border);background:transparent;color:var(--fg-dim);cursor:pointer}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:2rem}.summary-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:.6rem;padding:.9rem 1rem}.summary-card .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--fg-dim);margin-bottom:.3rem}.summary-card .value{font-size:1.25rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-card .value.good{color:var(--good)}.summary-card .value.bad{color:var(--bad)}.budget-section{margin-bottom:2.5rem}.budget-section>h2{font-size:1rem;margin:0 0 .75rem;display:flex;align-items:center;gap:.6rem}.budget-section>h2 .section-total{font-weight:400;color:var(--fg-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.account-group{margin-bottom:1.25rem;border:1px solid var(--border);border-radius:.6rem;overflow:hidden}.account-group-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:var(--bg-raised);font-weight:600;font-size:.85rem}.account-group-header .subtotal{font-weight:400;color:var(--fg-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.budget-table-wrap{overflow-x:auto}table.budget-table{width:100%;border-collapse:collapse;font-size:.85rem}.budget-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.02em;color:var(--fg-dim);padding:.4rem .6rem;white-space:nowrap}.budget-table td,.budget-table th{border-bottom:1px solid var(--border)}.budget-table td{padding:.3rem .6rem;vertical-align:middle}.budget-table tr:last-child td{border-bottom:none}.budget-table tr.to-cancel{opacity:.6}.budget-table tr.card-info-only{opacity:.8}.budget-table input[type=number],.budget-table input[type=text],.budget-table select{width:100%;min-width:5.5rem;padding:.3rem .4rem;border-radius:.3rem;border:1px solid transparent;background:transparent;color:var(--fg)}.budget-table input[type=number]:focus,.budget-table input[type=number]:hover,.budget-table input[type=text]:focus,.budget-table input[type=text]:hover,.budget-table select:focus,.budget-table select:hover{border-color:var(--border);background:var(--bg-raised)}.budget-table input[type=number],.col-amount,.col-monthly{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.col-amount,.col-monthly{white-space:nowrap}.col-note textarea{width:100%;min-width:12rem;resize:vertical;border-radius:.3rem;border:1px solid transparent;background:transparent;color:var(--fg-dim);font-size:.8rem;padding:.3rem .4rem}.col-note textarea:focus,.col-note textarea:hover{border-color:var(--border);background:var(--bg-raised);color:var(--fg)}.row-delete{background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:1rem;padding:.2rem .4rem}.row-delete:hover{color:var(--bad)}.category-badge{display:inline-block;font-size:.65rem;padding:.1rem .4rem;border-radius:.25rem;border:1px solid;margin-left:.4rem;white-space:nowrap}.category-badge.card_info_only{color:var(--warn)}.category-badge.to_cancel{color:var(--bad)}.add-row-btn{margin-top:.6rem;padding:.4rem .75rem;border-radius:.4rem;border:1px dashed var(--border);background:transparent;color:var(--fg-dim);cursor:pointer;font-size:.8rem}.add-row-btn:hover{color:var(--fg);border-color:var(--accent)}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));grid-gap:.9rem;gap:.9rem}.account-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:.6rem;padding:.9rem 1rem}.account-card h3{margin:0 0 .5rem;font-size:.95rem}.account-card .field-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.2rem 0;font-size:.82rem}.account-card .field-row label{color:var(--fg-dim)}.account-card input,.account-card select{border:1px solid transparent;background:transparent;color:var(--fg);text-align:right;padding:.15rem .3rem;border-radius:.25rem;width:8rem}.account-card input:focus,.account-card input:hover,.account-card select:focus,.account-card select:hover{border-color:var(--border);background:var(--bg)}.account-card .utilization-bar{height:.35rem;border-radius:.2rem;background:var(--border);margin-top:.5rem;overflow:hidden}.account-card .utilization-bar>div{height:100%;background:var(--accent)}.account-card .utilization-bar>div.high{background:var(--bad)}.tx-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.tx-form input,.tx-form select{padding:.45rem .6rem;border-radius:.4rem;border:1px solid var(--border);background:var(--bg-raised);color:var(--fg)}.tx-form input[type=text]{flex:1 1;min-width:12rem}.tx-form button{padding:.45rem .9rem;border-radius:.4rem;border:none;background:var(--accent);color:#06101f;font-weight:600;cursor:pointer}.tx-day{margin-bottom:1rem}.tx-day-header{font-size:.78rem;font-weight:600;text-transform:capitalize;color:var(--fg-dim);padding-bottom:.3rem;border-bottom:1px solid var(--border);margin-bottom:.4rem}.tx-event{margin-bottom:.5rem}.tx-event-label{font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:.2rem}.tx-list{list-style:none;margin:0;padding:0}.tx-row{display:flex;align-items:center;gap:.6rem;padding:.25rem 0;font-size:.85rem}.tx-label{flex:1 1}.tx-account{color:var(--fg-dim);font-size:.78rem}.tx-amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:6rem;text-align:right}.tx-amount.good{color:var(--good)}.tx-amount.bad{color:var(--bad)}.status-line{font-size:.78rem;color:var(--fg-dim);min-height:1.2rem}.status-line.error{color:var(--bad)}