/* ==================================================================
   A AREA DE CLIENTE: /account/ (EN, PT, ES) e /account/admin/
   O mesmo desenho do bilhete da reserva: cartao branco de contorno
   preto, topo amarelo com picotado, sombra dura. So carrega nestas
   paginas. As cores sao as variaveis do site.css, por isso o modo
   escuro funciona sozinho (o topo amarelo e o botao preto ja estao
   nas excecoes do site.css).
   ================================================================== */
.conta-topo{background:var(--black);color:var(--white);padding:44px 0 46px;}
.conta-topo h1{font-weight:400;}
.conta-topo h1 .k{display:block;font-size:1.05rem;font-weight:600;margin-bottom:10px;color:#D8D8D3;}
.conta-topo h1 .big{display:block;font-family:var(--display);font-size:clamp(2.8rem,7vw,5.2rem);line-height:.95;text-transform:uppercase;overflow-wrap:anywhere;}
.conta-sub{margin-top:14px;color:#D8D8D3;font-size:1.1rem;max-width:560px;}

.conta{padding:44px 24px 96px;}
/* o atributo hidden vence sempre o display das vistas e dos botoes */
.conta [hidden]{display:none !important;}
.conta-carrega{padding:24px 0 120px;font-weight:600;color:var(--gray);}

/* o cartao (o mesmo do /checkout/) */
.cartao-a{background:var(--white);border:3px solid var(--black);border-radius:22px;box-shadow:10px 10px 0 var(--black);overflow:hidden;}
.cartao-top{background:var(--yellow);padding:18px 24px;border-bottom:3px dashed var(--black);color:#141414;}
.cartao-top b{display:block;font-family:var(--display);font-weight:400;font-size:2rem;line-height:1;text-transform:uppercase;}
.cartao-top p{font-weight:600;margin-top:6px;overflow-wrap:anywhere;}
.cartao-corpo{padding:22px 24px 26px;}
.campo{margin-bottom:14px;}
.campo label{display:block;font-size:.88rem;font-weight:700;margin-bottom:6px;}
.campo label span{font-weight:400;}
.campo input,.campo select,.campo textarea{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--black);border-radius:12px;font:inherit;font-size:1rem;background:var(--white);color:var(--black);}
.campo textarea{min-height:84px;resize:vertical;}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;box-shadow:0 0 0 3px var(--yellow);}
.campo [aria-invalid="true"]{border-color:#B42318;}
.confirmar{display:block;width:100%;height:58px;margin-top:6px;border:3px solid var(--black);border-radius:14px;background:var(--black);color:var(--yellow);font:inherit;font-weight:700;font-size:1.1rem;cursor:pointer;}
.confirmar:disabled,.btn:disabled{opacity:.6;cursor:wait;}
.alternativa{margin-top:14px;font-size:.95rem;text-align:center;}
.alternativa a,.aceito a,.conta-porque a,.conta-ajuda a,.reserva-nota a{border-bottom:2px solid var(--yellow);font-weight:600;}
.aceito{display:flex;gap:12px;align-items:flex-start;margin:6px 0 14px;font-size:.95rem;}
.aceito input{width:22px;height:22px;margin-top:2px;accent-color:#141414;flex-shrink:0;}
.form-intro{margin-bottom:14px;color:var(--ink);}
.secao{font-family:var(--display);font-weight:400;font-size:1.8rem;line-height:1.1;text-transform:uppercase;margin:34px 0 14px;}
.secao:first-of-type{margin-top:0;}
.btn-linha{background:var(--white);color:var(--black);}
.btn-linha:hover{background:var(--yellow-soft);}

/* os separadores Entrar / Criar conta, no topo amarelo */
.separadores{display:flex;gap:6px;background:#141414;border-radius:999px;padding:5px;width:max-content;max-width:100%;}
.separadores button{border:0;border-radius:999px;padding:9px 18px;font-weight:700;font-size:.98rem;background:transparent;color:#FFFFFF;cursor:pointer;}
.separadores button[aria-pressed="true"]{background:#FFC72C;color:#141414;}
.separadores button:focus-visible{outline:3px solid #FFFFFF;outline-offset:2px;}

/* as mensagens por baixo dos formularios */
.aviso{margin-top:14px;padding:11px 14px;border:2px solid var(--black);border-radius:12px;font-weight:600;font-size:.95rem;background:var(--yellow-soft);}
.aviso-erro{border-color:#B42318;background:#FEF2F2;color:#8A1C12;}
.aviso-ok{border-color:#166534;background:#ECFDF3;color:#14532D;}
.link-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;color:inherit;}

/* entrar: o cartao e, ao lado, o porque de ter conta */
.conta-entrar{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:56px;align-items:start;}
.conta-porque{padding-top:8px;max-width:520px;}
.conta-porque h2{font-family:var(--display);font-weight:400;font-size:2rem;text-transform:uppercase;line-height:1;margin-bottom:16px;}
.conta-porque ul{list-style:none;display:grid;gap:12px;margin-bottom:22px;}
.conta-porque li{position:relative;padding-left:34px;font-size:1.05rem;}
.conta-porque li::before{content:'';position:absolute;left:0;top:4px;width:20px;height:20px;border:2px solid var(--black);border-radius:6px;background:var(--yellow);}
.conta-porque li::after{content:'';position:absolute;left:6px;top:8px;width:6px;height:10px;border:solid #141414;border-width:0 2.5px 2.5px 0;transform:rotate(45deg);}
.conta-porque p{color:var(--ink);margin-top:10px;}

/* com sessao: as reservas e, ao lado, os dados */
.conta-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:start;}
.conta-lado{position:sticky;top:110px;}
.conta-lado form + form{margin-top:26px;padding-top:22px;border-top:2px dashed var(--line);}
.conta-lado h3{font-family:var(--display);font-weight:400;font-size:1.5rem;text-transform:uppercase;margin-bottom:12px;}
.conta-lado .btn{width:100%;}
.conta-fim{display:grid;gap:10px;margin-top:26px;padding-top:22px;border-top:2px dashed var(--line);}
.conta-ajuda{margin-top:22px;font-size:.95rem;color:var(--ink);}
.conta-reservas > .aviso{margin:0 0 20px;}

/* uma reserva: um bilhete */
.lista-reservas{display:grid;gap:22px;}
.reserva-b{background:var(--white);border:3px solid var(--black);border-radius:20px;box-shadow:8px 8px 0 var(--black);overflow:hidden;}
.reserva-topo{background:var(--yellow);padding:16px 22px;border-bottom:3px dashed #141414;color:#141414;}
.reserva-topo small{display:block;font-size:.82rem;font-weight:700;letter-spacing:.3px;font-variant-numeric:tabular-nums;}
.reserva-topo b{display:block;font-family:var(--display);font-weight:400;font-size:1.7rem;line-height:1.05;text-transform:uppercase;margin-top:4px;overflow-wrap:anywhere;}
.reserva-b.anulada{box-shadow:8px 8px 0 var(--line);}
.reserva-b.anulada .reserva-topo{background:var(--line);}
html[data-tema="escuro"] .reserva-b.anulada .reserva-topo{background:#3A3934;color:#F2EFE6;border-bottom-color:#F2EFE6;}
.reserva-corpo{padding:16px 22px 22px;}
.reserva-corpo dl{display:grid;grid-template-columns:110px minmax(0,1fr);margin-top:10px;}
.reserva-corpo dt{font-weight:700;padding:8px 0;border-top:1px solid var(--line);}
.reserva-corpo dd{padding:8px 0;border-top:1px solid var(--line);overflow-wrap:anywhere;}
.reserva-corpo dt:first-of-type,.reserva-corpo dd:first-of-type{border-top:0;}
.estado{display:inline-block;border:2px solid var(--black);border-radius:999px;padding:3px 12px;font-size:.85rem;font-weight:700;}
.estado-ok{background:#ECFDF3;color:#14532D;border-color:#166534;}
.estado-feita{background:var(--white);}
.estado-pendente{background:var(--yellow-soft);}
.estado-feito{background:#ECFDF3;color:#14532D;border-color:#166534;}
.estado-recusado{background:#FEF2F2;color:#8A1C12;border-color:#B42318;}
.reserva-nota{margin-top:14px;font-size:.95rem;color:var(--ink);}
.cancelar{margin-top:16px;}
.cancelar-conf{margin-top:4px;padding:16px 18px;border:2px solid var(--black);border-radius:14px;background:var(--yellow-soft);}
.cancelar-conf > p{margin-bottom:10px;}
.cancelar-t{font-weight:700;font-size:1.05rem;}
.cancelar-acoes{display:flex;gap:10px;flex-wrap:wrap;}
.vazio{padding:22px 24px;border:2px dashed var(--black);border-radius:18px;}
.vazio p{margin-bottom:16px;font-size:1.05rem;overflow-wrap:anywhere;}
.vazio-curto{color:var(--gray);}

/* /account/admin/ */
.admin-tab{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums;}
.admin-tab th,.admin-tab td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;}
.admin-tab th{font-weight:700;border-bottom:2px solid var(--black);white-space:nowrap;}
.admin-rolar{overflow-x:auto;border:2px solid var(--black);border-radius:14px;background:var(--white);}
.admin-num{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:999px;background:#FFC72C;color:#141414;font-family:var(--text);font-size:1rem;vertical-align:middle;margin-left:8px;}

@media(max-width:960px){
  .conta-entrar,.conta-grid{grid-template-columns:1fr;gap:40px;}
  .conta-lado{position:static;}
}
@media(max-width:520px){
  .conta{padding:32px 16px 72px;}
  .cartao-corpo{padding:18px 16px 22px;}
  .reserva-corpo{padding:14px 16px 18px;}
  .reserva-corpo dl{grid-template-columns:92px minmax(0,1fr);}
  .separadores button{padding:8px 13px;}
}

/* /account/support/ (7 out 2026): as conversas com a equipa */
.sup-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start;}
.sup-principal{display:grid;gap:18px;min-width:0;}
.sup-voltar{justify-self:start;font-size:.95rem;}
.sup-acoes{display:flex;flex-wrap:wrap;gap:10px;}
.ch-novo{justify-self:start;margin-bottom:16px;}
.sup-lista{list-style:none;display:grid;gap:12px;}
.sup-item{display:block;width:100%;text-align:left;background:var(--white);color:var(--black);border:2px solid var(--black);border-radius:16px;
  padding:14px 18px;cursor:pointer;box-shadow:5px 5px 0 var(--black);font:inherit;}
.sup-item:hover{background:var(--yellow-soft);}
.sup-top{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;}
.sup-top b{font-size:1.05rem;}
.sup-ultima{margin:6px 0 4px;color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;}
.sup-item small{color:var(--gray);font-variant-numeric:tabular-nums;}
.sup-conversa{display:flex;flex-direction:column;height:min(680px,78vh);background:var(--white);border:3px solid var(--black);
  border-radius:20px;box-shadow:10px 10px 0 var(--black);overflow:hidden;}
.sup-conversa > .aviso{margin:18px;}
.sup-conversa .ch-form{overflow-y:auto;}
.sup-outras{list-style:none;display:grid;gap:14px;}
.sup-outras li{display:grid;gap:2px;}
.sup-outras b{font-size:.85rem;}
.sup-outras a{font-weight:600;border-bottom:2px solid var(--yellow);justify-self:start;overflow-wrap:anywhere;}
@media(max-width:960px){.sup-grid{grid-template-columns:1fr;gap:36px;}.sup-lado{position:static;}}
@media(max-width:520px){.sup-conversa{height:calc(100dvh - 160px);box-shadow:6px 6px 0 var(--black);}}
