/* Base compartilhada do +Eventos: tokens, menu, botões, formulários */
*{margin:0;box-sizing:border-box}
[hidden]{display:none!important}
:root{--bg:#07080A;--p1:color-mix(in srgb,var(--bg),#fff 4%);--p2:color-mix(in srgb,var(--bg),#fff 7%);--line:color-mix(in srgb,var(--bg),#fff 11%);--cy:#26C9C3;--cyd:#0F6F6B;--on:#04191A;--cy4:color-mix(in srgb,var(--cy) 40%,transparent);--cy1:color-mix(in srgb,var(--cy) 10%,transparent);--w:#F4F6F7;--mut:#8A939D;--err:#FF5A6A;--ok:#3DDC97}
html,body{overflow-x:clip}
body{background:var(--bg);color:var(--w);font-family:Archivo,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
input,select,textarea{-webkit-user-select:text;user-select:text}
a{color:inherit;text-decoration:none}
img{-webkit-user-drag:none}
.mono{font-family:'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.disp{font-family:var(--ft,Archivo),Archivo,sans-serif;font-style:italic;font-weight:900;font-variation-settings:'wdth' 125;letter-spacing:-.02em;line-height:.92}
.cy{color:var(--cy)}
nav{height:84px;display:flex;align-items:center;gap:40px;position:absolute;top:0;left:0;right:0;z-index:6;padding:0 64px;background:linear-gradient(#07080Ad9,#07080A00)}
nav.solida{position:sticky;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.logo{height:44px;width:auto;display:block}
nav ul{display:flex;gap:30px;list-style:none;font-size:15px;color:#C9CFD5;margin-left:12px}
nav .sp{flex:1}
.search{width:300px;height:44px;border-radius:22px;background:#ffffff10;border:1px solid #ffffff1a;padding:0 18px;color:var(--w);font:14px Archivo,sans-serif;outline:none;-webkit-user-select:text;user-select:text}.search::placeholder{color:var(--mut)}.search:focus{border-color:var(--cy)}
.btn{height:44px;padding:0 22px;border-radius:22px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 15px Archivo,sans-serif;cursor:pointer;border:0;color:var(--w);background:none;white-space:nowrap}
.btn.cy{background:var(--cy);color:var(--on)}.btn.gh{border:1px solid #ffffff2e}
.btn.lg{height:58px;padding:0 30px;border-radius:29px;font-size:17px}
.btn.full{width:100%}
.btn:disabled{opacity:.4;cursor:not-allowed}
.conta-btn{display:inline-flex;align-items:center;gap:8px}
.conta-btn i{width:30px;height:30px;border-radius:50%;background:var(--cy);color:var(--on);display:grid;place-items:center;font:800 13px Archivo;font-style:normal}
/* formulários */
.campo{display:block;margin-bottom:16px}
.campo>span{display:block;font-size:13px;color:#C9CFD5;margin-bottom:7px;font-weight:600}
.campo input{width:100%;height:52px;border-radius:14px;border:1px solid #ffffff22;background:#ffffff08;color:var(--w);font:500 16px Archivo,sans-serif;padding:0 16px;outline:none;transition:border-color .2s,background .2s}
.campo input:focus{border-color:var(--cy);background:var(--cy1)}
.campo.erro input{border-color:var(--err)}
.campo small{display:none;color:var(--err);font-size:12.5px;margin-top:6px}
.campo.erro small{display:block}
.duplo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opcoes{display:flex;gap:10px}
.opcoes label{flex:1;height:52px;border-radius:14px;border:1px solid #ffffff22;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;cursor:pointer;transition:all .2s}
.opcoes input{position:absolute;opacity:0;pointer-events:none}
.opcoes label:has(input:checked){border-color:var(--cy);background:var(--cy1);color:var(--cy)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#C9CFD5;line-height:1.45;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--cy);flex:none;margin-top:1px}
.toast{position:fixed;left:50%;top:calc(20px + env(safe-area-inset-top));transform:translate(-50%,-140%);z-index:60;background:#0E1013f2;border:1px solid var(--cy);color:var(--w);padding:12px 18px;border-radius:14px;font-size:14px;max-width:calc(100% - 32px);transition:transform .4s cubic-bezier(.2,.7,.2,1);backdrop-filter:blur(10px)}
.toast.on{transform:translate(-50%,0)}
.proto{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:20;background:#07080Aee;border:1px solid #ffffff22;border-radius:22px;padding:10px 18px;font-size:12px;color:var(--mut);backdrop-filter:blur(10px);white-space:nowrap}
.proto a{color:var(--cy);margin-left:10px}
@media (prefers-reduced-motion:no-preference){
 .btn,.buy,.chip{transition:transform .25s,background .25s,opacity .25s}.btn:not(:disabled):hover{transform:translateY(-2px)}
 .btn.cy{position:relative;overflow:hidden}.btn.cy:after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,#fff0,#ffffff8c,#fff0);transform:skewX(-20deg);animation:brilho 3.2s 1.5s infinite}
 @keyframes brilho{0%{left:-60%}35%,100%{left:130%}}
 @keyframes sobe{from{opacity:0;transform:translateY(34px);filter:blur(12px)}}
 .entra{animation:sobe .8s cubic-bezier(.2,.7,.2,1) both}
}
@media(max-width:900px){
 nav{padding:0 20px;padding-top:env(safe-area-inset-top);gap:12px}nav ul,.search{display:none}.logo{height:36px}
 .proto{white-space:normal;width:calc(100% - 24px);text-align:center;line-height:1.6}
 .duplo{grid-template-columns:1fr}
}
/* carregamento: logo +Eventos animada (E gira e entra, +VENTOS revela, subtítulo sobe, barra enche) */
#carregando{position:fixed;inset:0;z-index:100;background:radial-gradient(60% 50% at 50% 50%,#0B3B3E 0%,#07080A 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;transition:opacity .6s cubic-bezier(.2,.7,.2,1),visibility .6s;animation:failsafe 0s 7s forwards}
#carregando.sai{opacity:0;visibility:hidden}
#carregando.sai svg{transform:scale(1.25);filter:blur(10px);transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .6s}
#carregando svg{width:min(440px,72vw);height:auto;overflow:visible}
#carregando .barra{width:min(220px,46vw);height:3px;border-radius:2px;background:#ffffff14;overflow:hidden}
#carregando .barra i{display:block;height:100%;width:0;background:var(--cy);box-shadow:0 0 14px var(--cy);animation:enche 1.5s cubic-bezier(.6,0,.2,1) forwards}
#carregando .ce,#carregando .sb{transform-box:fill-box}
#carregando .ce{transform-origin:center;animation:entraE .8s cubic-bezier(.3,1.5,.5,1) both}
#carregando .br{animation:revela .75s .35s cubic-bezier(.7,0,.2,1) both}
#carregando .sb{animation:sobeSub .6s .95s cubic-bezier(.2,.7,.2,1) both}
#carregando.rapido .ce,#carregando.rapido .br,#carregando.rapido .sb{animation-duration:.01s;animation-delay:0s}
#carregando.rapido .barra i{animation-duration:.35s}
@keyframes entraE{from{transform:scale(.2) rotate(-25deg);opacity:0;filter:blur(8px)}}
@keyframes revela{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes sobeSub{from{opacity:0;transform:translateY(40px)}}
@keyframes enche{to{width:100%}}
@keyframes failsafe{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){#carregando *{animation:none!important}}
/* cenários (mesmo padrão da PH Store): entalhe do iPhone, dedo, celular deitado, app instalado */
nav{padding-left:max(64px,env(safe-area-inset-left));padding-right:max(64px,env(safe-area-inset-right))}
nav.solida{top:0;padding-top:env(safe-area-inset-top);height:calc(84px + env(safe-area-inset-top))}
@media(max-width:900px){nav{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}}
/* dedo precisa de 44 px; mouse continua fino */
@media (pointer:coarse){.btn,.buy,.chip,.som,.qtd button,.reenviar{min-height:44px}.qtd button{width:44px;height:44px}}
/* celular deitado: menu afina e sobra tela para o cartaz */
@media (max-height:500px) and (orientation:landscape){nav{height:56px}.logo{height:30px}nav.solida{height:calc(56px + env(safe-area-inset-top))}.proto{display:none}}
/* app instalado: sem barra do navegador, o topo respeita a barra de status */
@media (display-mode:standalone){nav{padding-top:env(safe-area-inset-top);height:calc(84px + env(safe-area-inset-top))}.proto{bottom:calc(10px + env(safe-area-inset-bottom))}}
/* ingresso: 3 modelos (cartão, canhoto, credencial) com cores do painel: --tk destaque, --tk-bg fundo, --tk-tx texto */
.tk{position:relative;border-radius:24px;overflow:hidden;background:var(--tk-bg);color:var(--tk-tx);border:1px solid color-mix(in srgb,var(--tk-tx) 14%,transparent);width:100%;max-width:380px}
.tk-capa{height:150px;position:relative;background-size:cover!important}
.tk-capa:after{content:'';position:absolute;inset:0;background:linear-gradient(#0003,var(--tk-bg))}
.tk-capa img{position:absolute;left:18px;top:16px;height:30px;z-index:1}
.tk-tipo{position:absolute;top:16px;right:16px;z-index:2;background:var(--tk);color:var(--tk-on);font:700 11px 'JetBrains Mono',monospace;padding:6px 10px;border-radius:8px;letter-spacing:.08em}
.tk-corpo{padding:0 22px 22px;position:relative;margin-top:-34px;z-index:1}
.tk h3{font-size:30px;color:var(--tk-tx);overflow-wrap:anywhere}
.tk-info{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin:14px 0 16px}
.tk-info div{min-width:0}.tk-info small{display:block;font-size:11px;opacity:.6;margin-bottom:2px}.tk-info b{font-size:13.5px;overflow-wrap:anywhere}
.tk-picote{border-top:2px dashed color-mix(in srgb,var(--tk-tx) 18%,transparent);margin:0 -22px 18px;position:relative}
.tk-picote:before,.tk-picote:after{content:'';position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--bg)}.tk-picote:before{left:-12px}.tk-picote:after{right:-12px}
.tk .qrw{background:#fff;border-radius:16px;padding:12px;width:190px;height:190px;margin:0 auto}.tk .qrw img,.tk .qrw canvas{width:100%!important;height:100%!important}
.tk .cod{text-align:center;font:700 15px 'JetBrains Mono',monospace;letter-spacing:.2em;margin-top:12px}
.tk-rodape{font-size:11.5px;opacity:.65;text-align:center;margin-top:14px;line-height:1.45}
/* canhoto: faixa lateral na cor do evento, como ingresso de papel */
.tk.m-canhoto{border-left:10px solid var(--tk)}
.tk.m-canhoto .tk-capa{height:110px}.tk.m-canhoto .tk-corpo{margin-top:-20px}
.tk.m-canhoto .tk-qr{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:center}.tk.m-canhoto .qrw{width:120px;height:120px;padding:8px;margin:0}.tk.m-canhoto .cod{text-align:left;font-size:13px;letter-spacing:.12em;margin:0}
/* credencial: crachá com furo para cordão; o setor ou a senha vira a faixa gigante (vaquejada) */
.tk.m-credencial{border-radius:20px;padding-top:26px}
.tk.m-credencial:before{content:'';position:absolute;top:12px;left:50%;width:56px;height:10px;border-radius:5px;background:var(--bg);transform:translateX(-50%);z-index:3;box-shadow:inset 0 1px 3px #000a}
.tk.m-credencial .tk-capa{height:130px;margin:0 14px;border-radius:14px;overflow:hidden}
.tk.m-credencial .tk-corpo{margin-top:0;padding-top:16px}
.tk.m-credencial .tk-faixa{display:block}
.tk-faixa{display:none;background:var(--tk);color:var(--tk-on);text-align:center;font:900 italic 24px Archivo,sans-serif;font-variation-settings:'wdth' 125;padding:12px 8px;margin:14px -22px 0}
.tk.m-credencial .tk-tipo{display:none}

/* equipe: login da bilheteria e da portaria */
.login-eq{width:min(400px,calc(100% - 32px));margin:max(40px,8vh) auto 120px;display:flex;flex-direction:column;gap:6px}
.login-eq .logo{height:46px;margin-bottom:18px}.login-eq h1{font-size:46px;margin-bottom:18px}
.login-eq select,.st-sel{width:100%;height:52px;border-radius:14px;border:1px solid #ffffff22;background:#14171B;color:var(--w);font:600 16px Archivo,sans-serif;padding:0 14px}
.login-eq #eq-pin{font:700 26px 'JetBrains Mono',monospace;letter-spacing:.5em;text-align:center}
.ajuda-eq{color:var(--mut);font-size:13px;line-height:1.5;margin-top:12px;text-align:center}
