:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;line-height:1.5;--bg: #0b1020;--fg: #e8ecff;--muted: #9aa4c7;--card: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .12);--accent: #6ea8fe;--danger: #ff7b7b;--ok: #7dffb2;--select-surface: #161d34;--select-surface-hover: #1c2540;--select-text: #e8ecff}@media(prefers-color-scheme:light){:root{--bg: #f6f7fb;--fg: #0b1020;--muted: #4b5675;--card: #ffffff;--border: rgba(11, 16, 32, .12);--accent: #1f5eff;--danger: #c62828;--ok: #0b7a45;--select-surface: #ffffff;--select-surface-hover: #eef0f7;--select-text: #0b1020}}body{margin:0;background:radial-gradient(1200px 600px at 20% 0%,#1b2a66 0%,var(--bg) 55%);color:var(--fg);min-height:100vh}a{color:var(--accent)}.layout{max-width:960px;margin:0 auto;padding:2rem 1.25rem}.layout.narrow{max-width:520px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.brand-logo{width:2.5rem;height:2.5rem;border-radius:10px;flex-shrink:0;object-fit:cover;box-shadow:0 1px 2px color-mix(in oklab,var(--fg) 12%,transparent)}.brand-logo-sm{width:2rem;height:2rem;border-radius:8px}.brand-title{display:flex;align-items:center;gap:.65rem;min-width:0}.brand-title-text{min-width:0;line-height:1.35}.brand-title-text strong{display:inline}.brand-tagline{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 .75rem;line-height:1.45}.brand-tagline .brand-logo{margin-top:.1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;display:grid;gap:.9rem}label{display:grid;gap:.35rem;font-size:.95rem}.password-field{display:flex;flex-direction:column;gap:.5rem}.password-field>label{margin:0}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin:0;padding:0}.checkbox-row>input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent)}.checkbox-label{display:inline;font-size:.9rem;color:var(--muted);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}input{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:transparent;color:inherit}button{padding:.7rem .9rem;border-radius:10px;border:1px solid var(--border);background:color-mix(in oklab,var(--accent) 22%,transparent);color:inherit;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.9em}.error{color:var(--danger);margin:0}.success{color:var(--ok);margin:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.stack{display:flex;flex-direction:column;gap:1.25rem}.nav{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.nav-link{text-decoration:none;color:var(--muted);font-weight:600;padding:.35rem 0}.nav-link:hover{color:var(--fg)}.nav-link-active{color:var(--accent);border-bottom:2px solid var(--accent);margin-bottom:-1px}.row-between{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.inline-label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.input-compact{padding:.45rem .6rem;border-radius:8px}.form-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.form-row label{min-width:140px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;align-items:end}.form-grid .span-2{grid-column:span 2}@media(max-width:640px){.form-grid .span-2{grid-column:span 1}}.filters{align-items:flex-end}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.overview-balances h3{margin-bottom:.75rem}.overview-savings-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem;padding-bottom:.85rem;margin-bottom:.85rem;border-bottom:1px solid var(--border)}.overview-balance-value{font-size:1.25rem;font-weight:700}.stat-value{font-size:1.5rem;font-weight:700}.stat-value.ok{color:var(--ok)}.stat-value.danger{color:var(--danger)}.small{font-size:.85rem}.card-warn{border-color:color-mix(in oklab,var(--accent) 40%,var(--border))}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr:last-child td{border-bottom:none}.right{text-align:right}.input-inline{width:100%;min-width:0;padding:.35rem .5rem;font:inherit}select,input[type=date]{padding:.55rem .65rem;border-radius:10px;border:1px solid var(--border);background-color:var(--select-surface);color:var(--select-text);font:inherit;color-scheme:dark}select:hover:not(:disabled),input[type=date]:hover:not(:disabled){background-color:var(--select-surface-hover)}select:disabled,input[type=date]:disabled{opacity:.65}@media(prefers-color-scheme:light){select,input[type=date]{color-scheme:light}}select option,select optgroup{background-color:var(--select-surface);color:var(--select-text)}select:focus-visible,input[type=date]:focus-visible{outline:2px solid color-mix(in oklab,var(--accent) 65%,transparent);outline-offset:2px}.impersonation-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.65rem .9rem;margin-bottom:1rem;border-radius:12px;border:1px solid color-mix(in oklab,var(--accent) 45%,var(--border));background:color-mix(in oklab,var(--accent) 14%,transparent);font-size:.9rem}.impersonation-bar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.impersonation-bar-you{font-weight:600}.link-button{background:none;border:none;padding:0;margin:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-button:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;border-color:var(--border);font-weight:600}.btn-danger{color:var(--danger);border-color:color-mix(in oklab,var(--danger) 45%,var(--border))}.btn-danger:hover:not(:disabled){background:color-mix(in oklab,var(--danger) 16%,transparent)}.btn-sm{padding:.4rem .6rem;font-size:.85rem}.badge{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:6px;border:1px solid var(--border)}.badge-in{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 50%,var(--border))}.badge-out{color:var(--danger);border-color:color-mix(in oklab,var(--danger) 50%,var(--border))}.amt-in{color:var(--ok)}.amt-out{color:var(--danger)}.report-pie-row{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:1.5rem;align-items:start}@media(max-width:720px){.report-pie-row{grid-template-columns:1fr}}.report-pie-chart{max-width:min(360px,100%);margin:0 auto}.pie-chart-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.pie-chart-caption{text-align:center;margin:0}.pie-chart-wrap{width:100%;aspect-ratio:1;max-height:min(360px,70vw);min-height:220px;filter:drop-shadow(0 4px 12px color-mix(in oklab,var(--fg) 12%,transparent))}.pie-chart-svg{width:100%;height:100%;display:block;border-radius:50%}.pie-chart-label{font-size:3.25px;font-weight:700;paint-order:stroke fill;stroke:color-mix(in oklab,var(--bg) 88%,var(--fg));stroke-width:.55px;stroke-linejoin:round;pointer-events:none}.pie-chart-label-name{fill:var(--fg)}.pie-chart-label-pct{fill:var(--muted);font-size:2.85px;font-weight:600}.pie-chart-label-stack .pie-chart-label-name{font-size:3.1px}.pie-legend-swatch{display:inline-block;width:.65rem;height:.65rem;border-radius:3px;margin-right:.5rem;vertical-align:middle;border:1px solid var(--border)}.table-tight th,.table-tight td{padding:.4rem .45rem}.txn-add-form{display:flex;flex-direction:column;gap:1rem}.txn-add-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;align-items:end}.txn-add-row label{min-width:0}.txn-add-amount{max-width:12rem}.txn-add-desc{display:grid;gap:.35rem}.txn-add-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.table-txn{table-layout:fixed;width:100%}.table-txn .col-date{width:9.5rem}.table-txn .col-desc{width:22%;min-width:0}.table-txn .col-cat,.table-txn .col-acct{width:18%;min-width:7.5rem}.table-txn .col-amt{width:6.5rem}.table-txn .col-actions{width:4.5rem}.table-txn td{vertical-align:middle;overflow:hidden}.table-txn .txn-select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.table-txn .input-amt{max-width:100%;text-align:right}@media(max-width:900px){.table-txn .col-desc{width:auto}}
