/*
 * Served from /app.css, NOT inlined.
 *
 * The Content-Security-Policy is style-src 'self', which does not permit an
 * inline <style> block — the browser silently drops every rule and the page
 * renders unstyled, with elements meant to be hidden fully visible. The
 * page is built to fit the policy; the policy is not widened to fit the page.
 */
:root{--bg:#0f1419;--panel:#171d24;--line:#232c36;--fg:#e6edf3;--dim:#8b98a5;
--ok:#3fb950;--warn:#d29922;--bad:#f85149;--acc:#2f81f7}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{display:flex;align-items:center;gap:16px;padding:14px 20px;
border-bottom:1px solid var(--line);background:var(--panel)}
header h1{font-size:15px;margin:0;font-weight:600;letter-spacing:.3px}
header .sp{flex:1}
main{max-width:1100px;margin:0 auto;padding:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;
padding:16px;margin-bottom:16px}
.card h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;
letter-spacing:.6px;color:var(--dim);font-weight:600}
.stats{display:flex;gap:24px;flex-wrap:wrap}
.stat b{display:block;font-size:22px;font-weight:600}
.stat span{color:var(--dim);font-size:12px}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line)}
th{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
td.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;
font-weight:600}
.pill.active{background:rgba(63,185,80,.15);color:var(--ok)}
.pill.disabled{background:rgba(139,152,165,.15);color:var(--dim)}
.pill.expired,.pill.exhausted{background:rgba(248,81,73,.15);color:var(--bad)}
button{font:inherit;padding:7px 12px;border-radius:6px;border:1px solid var(--line);
background:#212b36;color:var(--fg);cursor:pointer}
button:hover{border-color:var(--acc)}
button.p{background:var(--acc);border-color:var(--acc);color:#fff}
button.d{color:var(--bad)}
input,select{font:inherit;padding:7px 10px;border-radius:6px;
border:1px solid var(--line);background:#0d1117;color:var(--fg)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.bar{height:5px;background:#0d1117;border-radius:3px;overflow:hidden;margin-top:4px}
.bar i{display:block;height:100%;background:var(--acc)}
.bar i.hi{background:var(--warn)}.bar i.full{background:var(--bad)}
#msg{padding:10px 14px;border-radius:6px;margin-bottom:14px;display:none}
#msg.e{background:rgba(248,81,73,.12);color:var(--bad);display:block}
#msg.s{background:rgba(63,185,80,.12);color:var(--ok);display:block}
#login{max-width:340px;margin:80px auto}
.hide{display:none}
code{background:#0d1117;padding:2px 6px;border-radius:4px;font-size:12px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.dim{color:var(--dim)}
