:root { color-scheme: dark; --paper:#e9e4d8; --ink:#10151a; --mist:#82909a; --line:rgba(233,228,216,.18); --hot:#ff603c; --lime:#bcd47a; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:#10151a; color:var(--paper); font-family:"Noto Serif SC","Songti SC",Georgia,serif; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.24; background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.07) 50%,transparent 50.2%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px); background-size:100% 100%,100% 54px; }
.console { width:min(1120px,calc(100% - 40px)); margin:0 auto; padding:22px 0 70px; }
.masthead { display:flex; align-items:center; justify-content:space-between; min-height:58px; border-bottom:1px solid var(--line); font:12px ui-monospace,"Cascadia Mono",monospace; letter-spacing:.14em; }
.brand { color:var(--paper); text-decoration:none; letter-spacing:.2em; }.brand i { color:var(--hot); font-style:normal; }.session { color:var(--mist); }
.hero { max-width:700px; padding:72px 0 48px; }.kicker { margin:0 0 12px; color:var(--hot); font:11px ui-monospace,monospace; letter-spacing:.18em; }.hero h1,.denied h1 { margin:0; font-weight:400; font-size:clamp(38px,7vw,76px); letter-spacing:-.07em; }.hero > p:last-child,.denied p { max-width:520px; color:#aeb9bd; line-height:1.8; font-size:15px; }
.dashboard { display:grid; grid-template-columns:minmax(310px,.9fr) minmax(0,1.4fr); gap:18px; }.panel { min-height:360px; padding:22px; border:1px solid var(--line); background:rgba(7,11,14,.66); box-shadow:20px 24px 70px rgba(0,0,0,.18); }.panel-title { display:flex; align-items:baseline; gap:10px; border-bottom:1px solid var(--line); padding-bottom:14px; }.panel-title span { color:var(--hot); font:11px ui-monospace,monospace; }.panel-title h2 { margin:0; font-weight:400; font-size:22px; }.quiet { margin-left:auto; padding:5px 0; border:0; color:var(--lime); background:none; }
.hero.compact { padding:58px 0 32px; }.metric-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; margin-bottom:28px; border:1px solid var(--line); background:var(--line); }.metric-grid article { min-height:112px; padding:18px; background:#10151a; }.metric-grid strong,.metric-grid span { display:block; }.metric-grid strong { color:#fff0cf; font:400 34px/1 ui-monospace,monospace; }.metric-grid span { margin-top:12px; color:var(--mist); font-size:11px; letter-spacing:.08em; }.admin-tabs { display:flex; gap:8px; margin:0 0 14px; }.tab { min-height:36px; padding:7px 13px; border-color:transparent; color:var(--mist); background:transparent; }.tab.active { border-color:rgba(255,96,60,.7); color:#fff; background:rgba(143,53,31,.45); }.tab-panel[data-panel="users"] { display:grid; grid-template-columns:minmax(320px,1.25fr) minmax(290px,.75fr); gap:18px; }.users-panel,.detail-panel { min-height:500px; }.search-row { grid-template-columns:1fr auto; gap:8px; margin:16px 0; }.search-row button { min-height:42px; }.user-list { display:grid; gap:1px; border-top:1px solid rgba(255,255,255,.08); }.user-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; width:100%; min-height:72px; padding:12px 4px; border:0; border-bottom:1px solid rgba(255,255,255,.08); text-align:left; background:transparent; }.user-row:hover,.user-row.selected { border-left:3px solid var(--hot); padding-left:10px; background:rgba(255,96,60,.08); }.user-row strong,.user-row span { display:block; }.user-row strong { font-size:15px; font-weight:400; }.user-row span { margin-top:4px; color:var(--mist); font:10px/1.4 ui-monospace,monospace; }.user-row > div:last-child { min-width:110px; text-align:right; }.facts { margin:16px 0; }.facts p { display:grid; grid-template-columns:70px minmax(0,1fr); gap:10px; margin:8px 0; font-size:12px; }.facts span { color:var(--mist); }.facts b { overflow-wrap:anywhere; font-weight:400; }.detail-section { margin-top:22px; padding-top:15px; border-top:1px solid rgba(255,255,255,.1); }.detail-section h3 { margin:0 0 10px; color:#f0d4c7; font-size:12px; font-weight:400; }.detail-row,.event-row { padding:9px 0; border-bottom:1px solid rgba(255,255,255,.06); }.detail-row strong,.detail-row span,.event-row b,.event-row span { display:block; }.detail-row strong { font-size:13px; font-weight:400; }.detail-row span,.event-row span { margin-top:3px; color:var(--mist); font:10px ui-monospace,monospace; }.event-row b { color:#dec9af; font:10px ui-monospace,monospace; font-weight:400; }.admin-login { max-width:430px; padding:12vh 0; }.admin-login form { max-width:380px; }.admin-login h1 { margin:0; font-weight:400; font-size:clamp(42px,7vw,70px); letter-spacing:-.07em; }
.insight-deck { margin:0 0 32px; padding:20px; border:1px solid var(--line); background:linear-gradient(135deg,rgba(255,96,60,.07),transparent 42%),rgba(7,11,14,.72); }.deck-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:18px; }.deck-heading .kicker { margin-bottom:5px; }.deck-heading h2 { margin:0; font-size:24px; font-weight:400; }.chart-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr; gap:14px; }.chart-card { min-height:218px; padding:16px; border:1px solid rgba(233,228,216,.13); background:rgba(16,21,26,.78); overflow:hidden; }.chart-card h3 { margin:0; font-size:14px; font-weight:400; }.chart-card p { margin:5px 0 14px; color:var(--mist); font:10px ui-monospace,monospace; }.line-chart { width:100%; height:126px; display:block; overflow:visible; }.chart-key { display:flex; flex-wrap:wrap; gap:12px; margin-top:9px; color:var(--mist); font:10px ui-monospace,monospace; }.chart-key i { display:inline-block; width:7px; height:7px; margin-right:5px; border-radius:50%; background:var(--hot); }.chart-key i.save { background:var(--lime); }.distribution { display:grid; gap:10px; }.distribution-row { display:grid; grid-template-columns:minmax(65px,1fr) 42px; gap:8px; align-items:center; font-size:11px; }.distribution-row span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.distribution-row b { text-align:right; color:#ffe5bf; font:11px ui-monospace,monospace; font-weight:400; }.distribution-row em { grid-column:1 / -1; height:5px; background:#202a31; }.distribution-row em::after { content:""; display:block; width:var(--value); height:100%; background:linear-gradient(90deg,var(--hot),#ffad6e); }.mini-stack { display:grid; gap:9px; }.mini-row { display:grid; grid-template-columns:86px 1fr 28px; gap:8px; align-items:center; color:#bac2c4; font:10px ui-monospace,monospace; }.mini-row em { height:7px; background:#202a31; }.mini-row em::after { content:""; display:block; width:var(--value); height:100%; background:var(--lime); }.mini-row b { color:#fff0cf; font-weight:400; text-align:right; }
form { display:grid; gap:17px; margin-top:24px; } label { display:grid; gap:8px; color:#c8c5bb; font-size:14px; } label small { color:var(--mist); font-size:11px; } input,select { width:100%; min-height:46px; padding:10px 11px; border:1px solid var(--line); color:var(--paper); background:#151d23; font:14px ui-monospace,monospace; } button { border:1px solid rgba(255,96,60,.7); min-height:46px; padding:10px 14px; color:#fff; background:#8f351f; font:12px ui-monospace,monospace; letter-spacing:.08em; cursor:pointer; } button:hover { background:#b74628; } button:disabled { opacity:.55; cursor:wait; }
.issued-code { display:grid; gap:9px; margin-top:22px; padding:16px; border:1px solid rgba(188,212,122,.55); background:rgba(188,212,122,.08); }.issued-code span { color:var(--lime); font:10px ui-monospace,monospace; letter-spacing:.14em; }.issued-code strong { overflow-wrap:anywhere; color:#fff4d3; font:600 18px ui-monospace,monospace; letter-spacing:.1em; }.issued-code button { border-color:rgba(188,212,122,.5); background:transparent; }.message { min-height:20px; color:#ffb094; font-size:13px; }
.code-list { display:grid; gap:1px; margin-top:18px; }.code-row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.08); }.code-row strong,.code-row span { display:block; }.code-row strong { font-size:14px; font-weight:400; }.code-row span { margin-top:4px; color:var(--mist); font:10px ui-monospace,monospace; }.tag { padding:5px 7px; border:1px solid var(--line); color:var(--lime); font:9px ui-monospace,monospace; letter-spacing:.08em; }.tag.redeemed { color:#f0b077; }.tag.disabled { color:#ff8d7c; }.empty { color:var(--mist); font-size:13px; }.denied { max-width:560px; padding:17vh 0; }.denied a { color:var(--lime); }
@media (max-width:900px) { .chart-grid { grid-template-columns:1fr 1fr; }.chart-card:first-child { grid-column:span 2; } }
@media (max-width:720px) { .console { width:min(100% - 28px,1120px); }.masthead { font-size:10px; }.hero { padding:48px 0 32px; }.dashboard,.tab-panel[data-panel="users"],.chart-grid { grid-template-columns:1fr; }.panel { min-height:auto; }.recent-panel { min-height:300px; }.metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.metric-grid article:last-child { grid-column:span 2; }.metric-grid strong { font-size:28px; }.chart-card:first-child { grid-column:auto; }.deck-heading { align-items:start; flex-direction:column; }.users-panel,.detail-panel { min-height:0; }.user-row { grid-template-columns:1fr; gap:4px; }.user-row > div:last-child { text-align:left; }.admin-tabs { overflow:auto; } }
