:root{color-scheme:light;--bg: #f6f5f2;--surface: #ffffff;--text: #18181a;--muted: #6b6a66;--border: rgba(0,0,0,.1);--accent: #c8102e;--accent-text: #ffffff;--good: #127a12;--warn: #a86b00;--bad: #c62828;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:inherit}.shell{max-width:1100px;margin:0 auto;padding:0 16px 48px}.top{display:flex;justify-content:space-between;align-items:center;padding:16px 0;gap:12px;flex-wrap:wrap}.brand{font-weight:800;text-decoration:none;font-size:1.15rem}.brand span{color:var(--accent)}.top nav{display:flex;gap:16px;align-items:center}.top nav a{text-decoration:none}h1{font-size:1.6rem;margin:8px 0 12px}h2{font-size:1.15rem;margin:0 0 8px}h3{font-size:1rem;margin:16px 0 8px}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.mono,.code{font-family:ui-monospace,Menlo,Consolas,monospace}.code{font-size:1.5rem;letter-spacing:.08em;font-weight:700;margin:4px 0}.right{text-align:right}.nowrap{white-space:nowrap}.grow{flex:1;min-width:0}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.between{justify-content:space-between}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;margin:12px 0}.narrow{max-width:380px;margin:40px auto}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.event-card{text-decoration:none;display:flex;flex-direction:column;gap:4px;margin:0}.event-card .btn{align-self:flex-start;margin-top:8px}.tags{display:flex;gap:6px;margin:4px 0}.tag{font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--border)}.btn{display:inline-block;background:var(--accent);color:var(--accent-text);border:0;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;font-size:.95rem}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}button.link{background:none;border:0;color:var(--accent);cursor:pointer;padding:0;font:inherit}.banner{padding:10px 14px;border-radius:8px;margin:12px 0;border:1px solid}.banner.error{background:color-mix(in srgb,var(--bad) 12%,transparent);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.banner.info{background:color-mix(in srgb,#2a78d6 12%,transparent);border-color:color-mix(in srgb,#2a78d6 40%,transparent)}.description{white-space:pre-line}.buy section{margin:20px 0}.ticket-option{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:8px;margin:6px 0;background:var(--surface);cursor:pointer}.ticket-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.ticket-option.disabled{opacity:.55;cursor:default}.price{text-align:right;font-weight:700;white-space:nowrap}.field{display:flex;flex-direction:column;gap:4px;margin:10px 0}.field span{font-size:.85rem;color:var(--muted)}input,select,textarea{font:inherit;padding:9px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);max-width:100%}.check{display:flex;gap:8px;align-items:center;margin:10px 0}.total{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:16px;font-size:1.1rem}.status{font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.status.paid{color:var(--good)}.status.pending{color:var(--warn)}.status.expired,.status.cancelled{color:var(--muted)}.tickets{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.ticket{display:flex;gap:12px;align-items:center;margin:0}.ticket img{background:#fff;border-radius:6px;padding:4px}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin:12px 0;font-size:.92rem}th,td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{font-size:.8rem;color:var(--muted);font-weight:600}tr.dim{opacity:.55}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.tab{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;color:var(--text);font:inherit}.tab.active{border-color:var(--accent);color:var(--accent)}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 16px}.grid-form .wide{grid-column:1 / -1}.code-input{font-family:ui-monospace,monospace;font-size:1.4rem;letter-spacing:.08em;min-width:260px}.checkin.ok{border-color:var(--good)}.checkin.ok h2{color:var(--good)}.checkin.bad{border-color:var(--bad)}.checkin.bad h2{color:var(--bad)}@media(max-width:640px){table{display:block;overflow-x:auto}.ticket{flex-direction:column;align-items:flex-start}}@media print{.top,.btn,button{display:none!important}body,.card{background:#fff;color:#000}}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:12px 0 20px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.kpi-label{font-size:.78rem;color:var(--muted)}.kpi-value{font-size:1.4rem;font-weight:700}tr.sub td{background:color-mix(in srgb,var(--text) 3%,transparent);font-size:.88rem}.bar{height:6px;border-radius:3px;background:color-mix(in srgb,var(--text) 10%,transparent);margin-top:4px;min-width:80px}.bar span{display:block;height:100%;border-radius:3px;background:var(--accent)}.bar-cell{width:30%}
