:root { --bg:#f5f6f8; --card:#fff; --ink:#1d2430; --mute:#5d6878; --line:#dde2e8; --pri:#0b5cad; --ok:#2e7d32; --warn:#ef6c00; --bad:#c62828; }
@media (prefers-color-scheme: dark) { :root { --bg:#14171c; --card:#1d2127; --ink:#e6e9ee; --mute:#9aa4b2; --line:#2e343d; --pri:#5aa3f0; } }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.45 system-ui, "Segoe UI", Roboto, sans-serif; background:var(--bg); color:var(--ink); }
header { display:flex; justify-content:space-between; align-items:center; padding:10px 16px; background:var(--card); border-bottom:1px solid var(--line); gap:8px; flex-wrap:wrap; }
.brand { font-weight:600; }
main { max-width:1100px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:14px; margin-bottom:12px; }
h2 { font-size:17px; margin:0 0 10px; } h3 { font-size:15px; margin:12px 0 6px; }
.tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.tabs button.on { background:var(--pri); color:#fff; border-color:var(--pri); }
button, select, input, textarea { font:inherit; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:7px; padding:6px 10px; }
button { cursor:pointer; } button.pri { background:var(--pri); color:#fff; border-color:var(--pri); }
input, select, textarea { width:100%; } label { display:block; color:var(--mute); font-size:12px; margin-top:6px; }
.row { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; } .row > * { flex:1 1 160px; }
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:6px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--mute); font-weight:500; font-size:12px; }
.wrap { overflow-x:auto; }
.mute { color:var(--mute); font-size:12px; }
.pill { display:inline-block; padding:1px 8px; border-radius:20px; font-size:12px; border:1px solid var(--line); }
.TRIAL, .AWAITING_PAYMENT, .OPEN, .DRAFT { color:var(--warn); border-color:var(--warn); }
.ACTIVE, .FULFILLED, .ALLOCATED, .APPROVED, .MATCHED { color:var(--ok); border-color:var(--ok); }
.GRACE, .PARTIALLY_PAID, .REFUND_PENDING { color:var(--warn); border-color:var(--warn); }
.EXPIRED, .SUSPENDED, .CANCELLED, .IGNORED, .RETIRED { color:var(--bad); border-color:var(--bad); }
.msg { padding:8px 10px; border-radius:8px; margin:8px 0; background:#fff3e0; color:#5d3a00; } .msg.err { background:#ffebee; color:#7f1d1d; }
.qr { display:flex; gap:16px; flex-wrap:wrap; align-items:flex-start; } .qr #qrbox { background:#fff; padding:8px; border-radius:8px; }
.code { font-family:ui-monospace, Consolas, monospace; font-size:15px; letter-spacing:1px; }

.banklist { border:1px solid var(--line); border-radius:8px; margin-top:4px; max-height:320px; overflow:auto; background:var(--card); }
.banklist button { display:block; width:100%; text-align:left; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:7px 10px; }
.banklist button:hover, .banklist button:focus { background:var(--bg); }
input[readonly] { background:var(--bg); }
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; }
.stats b.big { font-size:20px; } button:disabled { opacity:.5; cursor:not-allowed; }
details { margin-top:8px; } summary { cursor:pointer; }
