:root{--bg: #f6f6f4;--surface: #ffffff;--text: #1a1c1e;--muted: #6b7075;--line: #e4e4e0;--accent: #2456a8;--inflow: #1d7a46;--warn-bg: #fdf3d7;--warn-text: #6a5312;--ok-bg: #e3f2e8;--ok-text: #1d5c38}@media(prefers-color-scheme:dark){:root{--bg: #16181b;--surface: #1f2226;--text: #e8eaec;--muted: #9aa0a6;--line: #2c3036;--accent: #7aa7e8;--inflow: #66c58e;--warn-bg: #3a3320;--warn-text: #e8d48a;--ok-bg: #20372a;--ok-text: #9fd8b4}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,Segoe UI,Roboto,sans-serif}main{max-width:640px;margin:0 auto;padding:16px}.center{text-align:center;padding:48px 16px}.muted{color:var(--muted)}.login{padding-top:12vh;display:flex;flex-direction:column;gap:12px}.login h1{text-align:center;font-size:1.5rem;margin:0 0 12px}.login form{display:flex;flex-direction:column;gap:12px}.login label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted)}.login input{font-size:1rem;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}button{font-size:1rem;padding:12px 16px;min-height:44px;border-radius:8px;border:none;background:var(--accent);color:#fff;cursor:pointer}button.secondary{background:transparent;color:var(--accent);border:1px solid var(--line)}.error{color:#b3261e;text-align:center}.feed header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 0 4px}.feed h1{font-size:1.25rem;margin:0}.asof{font-size:.8rem;margin:2px 0 0}.stale{color:var(--warn-text)}.who{font-size:.9rem;white-space:nowrap}.banner{background:var(--warn-bg);color:var(--warn-text);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:.9rem}.banner.ok{background:var(--ok-bg);color:var(--ok-text)}.feed h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:20px 0 6px}.feed ul{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.feed li{padding:10px 12px;border-bottom:1px solid var(--line)}.feed li:last-child{border-bottom:none}.row-main{display:flex;justify-content:space-between;gap:12px}.payee{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.amount.inflow{color:var(--inflow)}.row-sub{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;margin-top:2px}.row-sub span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending{color:var(--warn-text);white-space:nowrap}footer{display:flex;gap:12px;margin:24px 0 8px}footer button{flex:1}.tabs{display:flex;gap:8px;margin:8px 0 4px}.tabs button{flex:1;padding:8px 12px;min-height:40px;font-size:.9rem}.periods{display:flex;gap:6px;margin:12px 0}.period{flex:1;background:transparent;color:var(--muted);border:1px solid var(--line);padding:8px 6px;min-height:40px;font-size:.85rem}.period.on{background:var(--accent);color:#fff;border-color:var(--accent)}.grand{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 16px}.grand-amount{font-size:2rem;font-weight:650;font-variant-numeric:tabular-nums}.grand .muted{font-size:.85rem}.cat{margin-bottom:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.cat-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600}.cat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat ul{list-style:none;margin:0;padding:0;background:transparent;border:none;border-radius:0}.sub{display:flex;justify-content:space-between;gap:12px;width:100%;background:transparent;color:var(--text);border:none;border-bottom:1px solid var(--line);border-radius:0;padding:10px 12px 10px 20px;min-height:44px;font-size:.92rem;text-align:left}.sub-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill{padding:4px 12px 8px 20px;border-bottom:1px solid var(--line)}.drill li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:6px 0;font-size:.85rem}.drill-payee{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-date{grid-column:1 / -1;font-size:.78rem}.proposals{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:14px}.proposals h2{margin:0;font-size:.95rem}.proposals>.muted{font-size:.82rem;margin:4px 0 10px}.proposal{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}.proposal .muted{font-size:.8rem}.proposal-actions{display:flex;gap:8px;flex-shrink:0}.proposal-actions button{padding:8px 14px;min-height:44px;font-size:.85rem}.runline{font-size:.78rem;text-align:center;margin:16px 0 0}
