:root{--bg: #0f1115;--panel: #171a21;--text: #e7e9ee;--muted: #9aa3b2;--accent: #6ea8fe;--danger: #ff6b6b;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:900px;margin:0 auto;padding:16px}nav{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}nav button{background:var(--panel);color:var(--muted);border:0;padding:8px 14px;border-radius:999px;cursor:pointer}nav button.active{color:var(--text);outline:1px solid var(--accent)}input,select,button{font:inherit}input,select{background:var(--panel);color:var(--text);border:1px solid #262b35;border-radius:8px;padding:8px}.sub-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px}.sub-form .cycle{display:inline-flex;gap:4px;align-items:center;color:var(--muted)}.sub-form button[type=submit]{background:var(--accent);color:#0b0d12;border:0;border-radius:8px;padding:9px 16px;cursor:pointer}.sub-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.sub-list li{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--panel);padding:10px 14px;border-radius:10px}.sub-list li.cancelled{opacity:.5}.sub-list .name{font-weight:600;flex:1}.sub-list .cycle,.sub-list .date{color:var(--muted);font-size:13px}.sub-list button{background:transparent;color:var(--muted);border:1px solid #262b35;border-radius:8px;padding:5px 10px;cursor:pointer}.gate{max-width:320px;margin:20vh auto;text-align:center}.gate form{display:flex;gap:8px;margin-top:16px}.gate button{background:var(--accent);color:#0b0d12;border:0;border-radius:8px;padding:9px 16px;cursor:pointer}.error{color:var(--danger)}.stub{color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}.tile{background:var(--panel);border-radius:12px;padding:14px;display:grid;gap:6px}.tile .label{color:var(--muted);font-size:13px}.tile strong{font-size:22px}.dashboard h3{margin:24px 0 8px;font-size:15px;color:var(--muted);font-weight:600}.chart-stack .chart-sub{margin:16px 0 4px;color:var(--muted);font-size:13px}.upcoming{list-style:none;padding:0;margin:0;display:grid;gap:6px}.upcoming li{display:flex;gap:12px;align-items:baseline;background:var(--panel);padding:8px 12px;border-radius:8px}.upcoming .date{color:var(--muted);font-variant-numeric:tabular-nums}.upcoming .name{flex:1}.upcoming .amount em{color:var(--muted);font-style:normal;font-size:13px}.total{color:var(--muted)}.reports{display:grid;gap:12px;margin-top:16px}.reports article{background:var(--panel);border-radius:12px;padding:14px}.reports header{display:flex;gap:10px;align-items:baseline;margin-bottom:8px}.reports pre{white-space:pre-wrap;margin:0;font:inherit}
