:root{--bg:#fff;--surface:#fff;--text:#1b1b1f;--muted:#5c5c66;--border:#e3e3e8;--accent:#6b2fb3;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg:#16171d;--surface:#1f2028;--text:#f1f1f4;--muted:#a2a2ad;--border:#2e303a;--accent:#c084fc}}*{box-sizing:border-box}body{margin:0}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);padding:16px 20px}.app-brand{color:var(--text);letter-spacing:-.2px;font-size:20px;font-weight:600;text-decoration:none}.app-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:24px 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.card h1{margin:0 0 12px;font-size:28px}.card h2{margin:0 0 12px;font-size:22px}.card p{color:var(--muted);margin:0 0 10px}.card p:last-child{margin-bottom:0}code{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--text);word-break:break-all;border-radius:4px;padding:2px 6px;font-family:ui-monospace,Consolas,monospace;font-size:.9em}a{color:var(--accent)}.jornada{flex-direction:column;gap:16px;display:flex}.jornada .card{margin:0}.event-sessao{color:var(--text);font-weight:600}.event-meta{flex-wrap:wrap;gap:16px 32px;margin:12px 0 0;display:flex}.event-meta div{flex-direction:column;display:flex}.event-meta dt{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-size:12px}.event-meta dd{color:var(--text);margin:2px 0 0;font-weight:600}.legenda{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.chip{border:1px solid var(--border);color:var(--text);border-radius:999px;padding:2px 10px;font-size:13px}.chip.disp{background:color-mix(in srgb, var(--accent) 8%, transparent)}.chip.sel{background:var(--accent);color:#fff;border-color:var(--accent)}.chip.indisp{background:color-mix(in srgb, var(--muted) 20%, transparent);color:var(--muted)}.seat-group{margin-bottom:16px}.seat-group-title{color:var(--muted);margin:0 0 8px;font-size:14px}.seat-row{flex-wrap:wrap;gap:10px;display:flex}.seat{border:2px solid var(--border);background:var(--surface);min-width:72px;min-height:56px;color:var(--text);cursor:pointer;font:inherit;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 10px;display:flex}.seat-label{font-size:14px;font-weight:600}.seat-preco{color:var(--muted);font-size:12px}.seat-disp:hover{border-color:var(--accent)}.seat-sel{border-color:var(--accent);background:var(--accent);color:#fff}.seat-sel .seat-preco{color:#ffffffd9}.seat-indisp{cursor:not-allowed;opacity:.5;text-decoration:line-through}.seat:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--text);font-size:14px;font-weight:600}.field input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 12px}.field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hint{color:var(--muted);font-size:13px}.selecao-lista{margin:8px 0;padding:0;list-style:none}.selecao-lista li{border-bottom:1px solid var(--border);justify-content:space-between;padding:6px 0;display:flex}.total-estimado{justify-content:space-between;align-items:baseline;margin-top:12px;font-size:18px;display:flex}.btn-primary{width:100%;font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:10px;margin-top:16px;padding:14px 16px;font-weight:600}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-primary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.aviso,.erro{border-radius:8px;margin:0;padding:10px 12px;font-size:14px}.aviso{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text)}.erro{color:var(--text);background:#dd333324}.voltar{margin-top:4px}.pedido-total{justify-content:space-between;align-items:baseline;margin:12px 0;font-size:18px;display:flex}.countdown{flex-direction:column;gap:2px;margin:12px 0;display:flex}.countdown-label{color:var(--muted);font-size:13px}.countdown-valor{font-variant-numeric:tabular-nums;color:var(--text);font-family:ui-monospace,Consolas,monospace;font-size:32px}.pix-qr{background:#fff;border-radius:12px;justify-content:center;margin:12px 0;padding:16px;display:flex}.pix-codigo-label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.pix-codigo{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);resize:none;word-break:break-all;white-space:pre-wrap;border-radius:8px;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.4}.pix-codigo:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tickets-panel{flex-direction:column;gap:16px;display:flex}.tickets-titulo{margin:4px 0;font-size:22px}.ticket-card{margin:0}.ticket-cabecalho{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ticket-evento{margin:0;font-size:18px}.ticket-status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;flex:none;padding:3px 10px;font-size:12px;font-weight:600}.ticket-status-valido{color:var(--text);background:#2e9e5b29}.ticket-status-utilizado{background:color-mix(in srgb, var(--muted) 20%, transparent);color:var(--muted)}.ticket-status-cancelado{color:var(--text);background:#dd333329}.ticket-status-desconhecido{background:color-mix(in srgb, var(--muted) 14%, transparent);color:var(--muted)}.ticket-sessao{color:var(--text);margin:8px 0 0;font-weight:600}.ticket-meta{flex-wrap:wrap;gap:8px 24px;margin:12px 0;display:flex}.ticket-meta dt{text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-size:12px}.ticket-meta dd{color:var(--text);margin:2px 0 0}.ticket-assento{flex-direction:column;gap:2px;margin:8px 0 12px;display:flex}.ticket-assento strong{color:var(--text);font-size:20px}.ticket-assento-detalhe{color:var(--muted);font-size:14px}.ticket-qr{background:#fff;border-radius:12px;justify-content:center;padding:16px;display:flex}.ticket-qr-indisponivel{text-align:center;color:var(--muted);padding:24px 0}
