/* Painel do Terminal BTG: a identidade do Concierge (calendar.css), num layout de uma coluna. Só tokens. */
body { background-image: url('/static/img/terminal-geometry.svg'); background-position: right top; background-repeat: repeat-y; }
.skip-link:not(:focus) { clip-path: inset(50%); width: 1px; height: 1px; padding: 0; overflow: hidden; }
.tbtg-conteudo .fieldset:focus-within { box-shadow: 0 0 0 1px rgba(92,213,217,.2); }
.tbtg-conteudo { position: relative; min-width: 0; }
.tbtg-conteudo .btn, .tbtg-oferta, .tbtg-passageiro { transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.tbtg-conteudo input, .tbtg-conteudo select, .tbtg-conteudo textarea { min-width: 0; max-width: 100%; scroll-margin-top: 24px; }
.tbtg-resumo:focus-visible { outline: 2px solid var(--ocean-claro); outline-offset: 4px; }
.tbtg-request-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; padding: 14px; border: 1px solid var(--borda); border-radius: var(--radius-sm); }
.tbtg-request-tools p { margin: 0; width: 100%; overflow-wrap: anywhere; }
.tbtg-request-tools code { color: var(--ocean-claro); user-select: all; }
.tbtg-request-tools [data-btg-freshness] { flex-basis: 100%; color: var(--areia-media); font-size: var(--texto-sm); }
.tbtg-popup::backdrop { background: rgba(8,16,21,.75); backdrop-filter: blur(4px); }
@media (prefers-reduced-motion: reduce) { .tbtg-conteudo *, .tbtg-nav * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
.tbtg-topo {
    display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    padding: 16px 24px; border-bottom: 1px solid var(--borda); background: var(--vidro);
    backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
}
.tbtg-marca { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tbtg-logo { display: block; padding: 7px 10px; border-radius: 8px; background: #fff; }
.tbtg-logo img { display: block; width: min(210px, 45vw); height: auto; }
.tbtg-marca-separador { width: 1px; height: 32px; background: var(--borda); }
.tbtg-logo-revo { display: block; width: 86px; height: 25px; overflow: hidden; }
.tbtg-logo-revo img { display: block; width: 133px; max-width: none; height: auto; transform: translate(-24px, -23px); }
.tbtg-marca small { color: var(--areia-media); font-size: var(--texto-xs); }
.tbtg-nav { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tbtg-nav a { color: var(--ocean-claro); text-decoration: none; font-size: var(--texto-sm); }
.tbtg-nav a:hover, .tbtg-nav a:focus-visible { text-decoration: underline; }
.tbtg-nav form { margin: 0; }
.tbtg-conteudo { max-width: 760px; margin: 0 auto; padding: 28px 20px 64px; display: grid; gap: 18px; }
.tbtg-cartao { max-width: 420px; margin: 24px auto 0; width: 100%; }
.tbtg-grupo { border: 1px solid var(--borda); border-radius: var(--radius-sm); padding: 14px 16px 16px; margin: 16px 0; display: grid; gap: 12px; }
.tbtg-grupo legend { padding: 0 6px; color: var(--areia); font-size: var(--texto-sm); font-weight: 600; }
.tbtg-passageiros { display: grid; gap: 14px; }
.tbtg-passageiro { padding: 16px; border: 1px solid var(--borda); border-radius: var(--radius-sm); background: var(--vidro); scroll-margin-top: 24px; }
.tbtg-passageiro h3 { margin: 0 0 12px; color: var(--ocean-claro); font-size: var(--texto-lg); }
.tbtg-passageiro .campos { margin: 0; }
.tbtg-conteudo .campo { align-content: start; }
.tbtg-escolhas { display: flex; flex-wrap: wrap; gap: 8px 24px; }
/* o alvo de cada opção é o rótulo inteiro: 24 px no mínimo (WCAG 2.2, 2.5.8); no celular, 44 */
.tbtg-conteudo .checkbox-row { min-height: 32px; cursor: pointer; }
.tbtg-resumo ul { margin: 6px 0 0; padding-left: 18px; }
.tbtg-resumo a { color: var(--areia-clara); }
.erro-campo { margin: 4px 0 0; font-size: var(--texto-sm); color: var(--sol); }
.tbtg-conteudo input[aria-invalid="true"], .tbtg-conteudo select[aria-invalid="true"] { border-color: var(--sol); box-shadow: 0 0 0 1px rgba(255,200,130,.4); }
.tbtg-nav a.tbtg-novo { color: var(--sol); animation: ck-piscar 1.6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .tbtg-nav a.tbtg-novo { animation: none; text-decoration: underline; } }
.tbtg-conteudo .fieldset h2 { margin: 0 0 6px; font-size: var(--texto-lg); }
/* Horário e locais são o primeiro nível de leitura. Seleção também escrita. */
.tbtg-oferta { display: flex; align-items: flex-start; gap: 14px; padding: 16px; margin: 10px 0; border: 1px solid var(--borda); border-radius: var(--radius-sm); background: var(--vidro); }
.tbtg-oferta input { flex-shrink: 0; margin-top: 12px; }
.tbtg-oferta:has(input:checked) { border: 2px solid var(--ocean-claro); padding: 15px; background: rgba(83,213,220,.08); }
.tbtg-oferta:focus-within { outline: 2px solid var(--ocean-claro); outline-offset: 3px; }
.tbtg-oferta-conteudo { display: grid; gap: 14px; width: 100%; min-width: 0; }
.tbtg-oferta-cabecalho { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; color: var(--areia); }
.tbtg-oferta-hora { font-size: 32px; line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--ocean-claro); }
.tbtg-oferta-selecionada { display: none; font-size: var(--texto-sm); font-weight: 700; }
.tbtg-oferta:has(input:checked) .tbtg-oferta-selecionada { display: inline; }
.tbtg-oferta-trajeto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; font-size: var(--texto-lg); font-weight: 600; overflow-wrap: anywhere; }
.tbtg-oferta-trajeto small { display: block; margin-bottom: 4px; font-size: var(--texto-sm); font-weight: 400; color: var(--areia-media); }
.tbtg-oferta-detalhes { font-size: var(--texto-sm); color: var(--areia-media); }
.tbtg-conteudo .heliponto { cursor: help; text-decoration: underline dotted; text-underline-offset: 4px; }
.tbtg-conteudo .heliponto:focus-visible { outline: 2px solid var(--ocean-claro); outline-offset: 3px; }
.tbtg-campo-importante { padding: 14px; border: 1px solid var(--ocean-claro); border-radius: var(--radius-sm); background: var(--vidro); }
.tbtg-campo-importante label { color: var(--ocean-claro); font-weight: 700; }
.tbtg-campo-importante input, .tbtg-campo-importante select { font-size: var(--texto-lg); font-weight: 600; }
.tbtg-dado-importante { font-size: var(--texto-lg); font-weight: 700; color: var(--ocean-claro); padding: 10px 12px; border-left: 3px solid var(--ocean-claro); background: var(--vidro); border-radius: 4px; overflow-wrap: anywhere; }
.btg-prazo-vencido { border: 2px solid var(--sol); background: rgba(255,200,130,.16); }
.tbtg-pedido-rota { margin: 10px 0; font-size: var(--texto-lg); font-weight: 600; }
.tbtg-pedido-hora { font-size: var(--texto-lg); color: var(--ocean-claro); font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .tbtg-oferta-trajeto { grid-template-columns: 1fr; } }
.tbtg-sugestoes { display: grid; gap: 4px; }
.tbtg-sugestao { width: 100%; text-align: left; padding: 8px 10px; border: 1px solid var(--borda); border-radius: var(--radius-sm); background: var(--vidro); color: var(--areia); cursor: pointer; }
.tbtg-sugestao:hover, .tbtg-sugestao:focus-visible { border-color: var(--sol); }
/* D3: a reserva feita tem a cor da proposta gravada no Concierge */
.chip-estado.e-reservado { color: var(--floresta); border-color: rgba(72,201,132,.4); background: rgba(72,201,132,.1); }
@media (max-width: 800px) {
    .tbtg-conteudo input, .tbtg-conteudo select, .tbtg-conteudo button, .tbtg-nav a, .tbtg-nav button { min-height: 44px; }
    .tbtg-conteudo .checkbox-row { min-height: 44px; }
    .tbtg-conteudo .btn, .tbtg-nav a { display: inline-flex; align-items: center; }
}
@media (max-width: 480px) {
    .tbtg-marca { gap: 8px; }
    .tbtg-marca small { flex-basis: 100%; }
}
/* Segundo fator: o QR fica sobre branco (o leitor do celular precisa de contraste) e a chave quebra sem rolar a tela */
.tbtg-passos { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.tbtg-qr { width: min(100%, 248px); margin: 4px auto; padding: 8px; border-radius: var(--radius-sm); background: #fff; }
.tbtg-qr svg { display: block; width: 100%; height: auto; }
.tbtg-chave { color: var(--ocean-claro); letter-spacing: .06em; overflow-wrap: anywhere; user-select: all; }
/* O atributo hidden esconde sempre: o `.btn` do calendar.css (display: inline-flex) venceria a regra do navegador */
[hidden] { display: none !important; }

/* E79 (UAT da Érica, 2026-10-05): o Terminal diz, em toda página, que é teste e pede dados fictícios */
.tbtg-faixa-teste { padding: 9px 20px; background: var(--ocean-medio); color: var(--areia-clara); font-size: var(--texto-sm); text-align: center; letter-spacing: .02em; overflow-wrap: anywhere; }
.tbtg-passageiro [data-cpf-teste] { margin-top: 6px; }
