:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1c2430;--muted: #637083;--accent: #2459d6;--accent-hover: #1c47ad;--success: #1f9d55;--danger: #c43d3d;--warn: #b7791f}html,body{height:100%;margin:0;font-family:-apple-system,Segoe UI,Roboto,sans-serif}body{background:var(--bg);color:var(--text)}a{color:var(--accent)}.page{max-width:960px;margin:0 auto;padding:2rem}.page.narrow{max-width:420px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.error{color:var(--danger);background:#fdecec;border:1px solid #f5c2c2;border-radius:6px;padding:.75rem 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.card.empty{text-align:center}.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:6px;padding:.5rem 1rem;font:inherit;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;color:var(--accent)}.btn-ghost:hover:not(:disabled){background:#eef2fc}.form{display:flex;flex-direction:column;gap:1rem}.form label{display:flex;flex-direction:column;gap:.35rem;font-weight:500}.form input{font:inherit;padding:.5rem .65rem;border:1px solid var(--border);border-radius:6px}.form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.table th,.table td{text-align:left;padding:.6rem .9rem;border-bottom:1px solid var(--border)}.table th{background:#fafbfc;font-weight:600;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.table tr:last-child td{border-bottom:0}.table .num{text-align:right;font-variant-numeric:tabular-nums}.negative{color:var(--danger)}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:#e6f4ea;color:var(--success)}.badge-draft{background:#fff4e0;color:var(--warn)}.stats{display:flex;gap:1rem;margin:1.5rem 0 .5rem}.stat{flex:1;color:var(--muted)}.stat-value{display:block;font-size:2rem;font-weight:700;color:var(--success)}.stat-value.warn{color:var(--warn)}
