:root{--bg: #ffffff;--fg: #1a1a2e;--muted: #6b7280;--border: #e5e7eb;--card: #fafafa;--accent: #c0392b;--accent-fg: #ffffff;--ok: #15803d;--warn: #b45309;--danger: #b91c1c;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #14141c;--fg: #ececf1;--muted: #9ca3af;--border: #2a2a38;--card: #1c1c28;--accent: #e74c3c}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);line-height:1.5}a{color:var(--accent)}header.app{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border)}header.app .brand{font-weight:700;letter-spacing:.2px}header.app .spacer{flex:1}header.app .who{color:var(--muted);font-size:.9rem}main.app{max-width:880px;margin:0 auto;padding:1.5rem 1.25rem 3rem}h1{font-size:1.4rem;margin:.25rem 0 1rem}h2{font-size:1.1rem;margin:0 0 .5rem}.card{border:1px solid var(--border);background:var(--card);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:.9rem}.row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.row .spacer{flex:1}.meta{color:var(--muted);font-size:.88rem}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge.active{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.badge.expired{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.badge.revoked{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--fg);padding:.45rem .9rem}button.primary{background:var(--accent);color:var(--accent-fg);border-color:transparent}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--border))}button:disabled{opacity:.55;cursor:not-allowed}.seatbar{height:8px;border-radius:999px;background:var(--border);overflow:hidden;margin-top:.35rem}.seatbar>span{display:block;height:100%;background:var(--accent)}.empty,.error,.loading{color:var(--muted);padding:2rem 0;text-align:center}.error{color:var(--danger)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--border)}th{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
