:root { --ink:#16181d; --muted:#626a76; --line:#e2e5ea; --bg:#f5f6f8; --card:#fff; --accent:#1a56db; --ok:#0d7a4a; --bad:#b42318; --warn:#b54708; --info:#1a56db; }
@media (prefers-color-scheme: dark) { :root { --ink:#eceef2; --muted:#9aa2ae; --line:#2c3038; --bg:#111317; --card:#1a1d23; --accent:#5b8cff; --ok:#3ccf8e; --bad:#ff7a70; --warn:#f5a524; --info:#7aa2ff; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
a { color:var(--accent); }
main { max-width:1100px; margin:0 auto; padding:24px 16px 64px; }
main.narrow { max-width:520px; padding-top:8vh; }
h1 { font-size:24px; margin:0 0 16px; letter-spacing:-.01em; } h2 { font-size:17px; margin:28px 0 10px; } h3 { font-size:15px; margin:18px 0 6px; }
small, .muted { color:var(--muted); } .center { text-align:center; } .big { font-size:22px; font-weight:650; margin:2px 0; }
code { background:var(--bg); padding:2px 6px; border-radius:6px; }

nav.top { display:flex; gap:18px; align-items:center; padding:12px 16px; background:var(--card); border-bottom:1px solid var(--line); flex-wrap:wrap; }
nav.top a { text-decoration:none; color:var(--ink); } nav.top .brand { font-weight:700; } .grow { flex:1; }
.inline { display:inline; margin:0; }

.panel { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:20px; }
.panel.two { display:grid; grid-template-columns:1fr 1fr; gap:4px 24px; } .panel.two p { margin:2px 0 12px; }
.head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; } .head h1 { margin:0; }

.grid { display:grid; grid-template-columns:1fr 1fr; gap:4px 14px; } .wide { grid-column:1 / -1; }
label { display:block; margin:8px 0; } label > span { display:block; font-size:13px; color:var(--muted); margin-bottom:4px; }
input, select, textarea { width:100%; padding:10px 12px; font:inherit; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:8px; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--accent); outline-offset:-1px; }
label.consent { display:flex; gap:10px; align-items:flex-start; margin:16px 0; padding:12px; border:1px solid var(--line); border-radius:8px; }
label.consent input { width:auto; margin-top:4px; } label.consent span { color:var(--ink); font-size:14px; margin:0; }

button, .button { display:inline-block; padding:9px 16px; font:inherit; font-weight:600; border-radius:8px; border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer; text-decoration:none; }
button.primary, .button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
button.danger { background:var(--bad); border-color:var(--bad); color:#fff; }
button.link { border:0; background:none; color:var(--accent); padding:0; font-weight:400; }
button[disabled] { opacity:.6; cursor:wait; } .wide-button { width:100%; margin-top:18px; padding:13px; }
.actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:16px; }
form.inline button { padding:5px 10px; font-size:13px; }

.flash { padding:11px 14px; border-radius:8px; border:1px solid currentColor; margin-bottom:16px; }
.flash.ok { color:var(--ok); } .flash.bad { color:var(--bad); } .flash.warn { color:var(--warn); }
.badge { display:inline-block; padding:1px 9px; border-radius:99px; font-size:12px; font-weight:600; border:1px solid currentColor; white-space:nowrap; vertical-align:middle; }
.badge.ok { color:var(--ok); } .badge.bad { color:var(--bad); } .badge.warn { color:var(--warn); } .badge.info { color:var(--info); } .badge.muted { color:var(--muted); }

.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.stat { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; } .stat b { display:block; font-size:24px; margin:2px 0; font-variant-numeric:tabular-nums; } .stat span { color:var(--muted); font-size:13px; }

.scroll { overflow-x:auto; background:var(--card); border:1px solid var(--line); border-radius:12px; }
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--line); font-size:14px; }
th { font-size:12px; color:var(--muted); font-weight:600; } tr:last-child td { border-bottom:0; } td { font-variant-numeric:tabular-nums; }
.search { display:flex; gap:8px; margin-bottom:14px; max-width:520px; }
.filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; } .filters a { text-decoration:none; padding:3px 6px; border-radius:8px; } .filters a.on { background:var(--card); outline:1px solid var(--line); }

.pay .brand-line { font-weight:700; font-size:18px; margin-bottom:14px; }
.pay .due { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:8px; }
.pay .due p { margin:2px 0; font-weight:600; } .pay .due b { font-size:26px; font-variant-numeric:tabular-nums; }

@media (max-width:640px) { .grid, .panel.two, .stats { grid-template-columns:1fr; } nav.top { gap:12px; } }
