/* Layout: ferramenta de operação — topo fixo com matrícula e abas, conteúdo em largura confortável,
   tabelas densas com números alinhados. Inspiração: cartas aeronáuticas (azul e magenta) e placas de instrumento. */
:root {
  --bg: #f3f5f8;
  --superficie: #ffffff;
  --superficie-2: #eaeff5;
  --tinta: #13202d;
  --tinta-2: #4b5a6a;
  --tinta-3: #758495;
  --linha: #d5dde6;
  --linha-forte: #b9c5d2;
  --azul: #1c4f92;
  --azul-hover: #163f75;
  --azul-suave: #e2ebf7;
  --amarelo: #7d6000;
  --ok: #2c7a4c; --ok-suave: #e1f1e7;
  --atencao: #9a6100; --atencao-suave: #fbefd8;
  --critico: #b0261d; --critico-suave: #fbe3e1;
  --pendente: #5c4400; --pendente-suave: #fae9b7; --pendente-borda: #f2c94c; /* amarelo do logo */
  --laranja: #a34a0a; --laranja-suave: #fde2cc; --laranja-borda: #e0701e;
  --sobre-azul: #ffffff;
  --sombra: 0 10px 30px rgba(19, 32, 45, .18);
  --f-display: 'Barlow Condensed', 'Arial Narrow', 'Roboto Condensed', sans-serif;
  --f-texto: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --raio: 6px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0e151d; --superficie: #151f2a; --superficie-2: #1b2836; --tinta: #e5ecf3; --tinta-2: #a2b2c2; --tinta-3: #7d8e9f;
    --linha: #273747; --linha-forte: #36495c; --azul: #7eaeea; --azul-hover: #9cc2f0; --azul-suave: #1a3150; --amarelo: #f2c94c;
    --ok: #6cc28e; --ok-suave: #173826; --atencao: #e2ad4a; --atencao-suave: #3a2c10; --critico: #f0877d; --critico-suave: #42201d;
    --pendente: #f2c94c; --pendente-suave: #3d3112; --pendente-borda: #f2c94c; --laranja: #f6a466; --laranja-suave: #47260e; --laranja-borda: #e9813a;
    --sobre-azul: #0e151d; --sombra: 0 10px 30px rgba(0, 0, 0, .5); color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0e151d; --superficie: #151f2a; --superficie-2: #1b2836; --tinta: #e5ecf3; --tinta-2: #a2b2c2; --tinta-3: #7d8e9f;
  --linha: #273747; --linha-forte: #36495c; --azul: #7eaeea; --azul-hover: #9cc2f0; --azul-suave: #1a3150; --amarelo: #f2c94c;
  --ok: #6cc28e; --ok-suave: #173826; --atencao: #e2ad4a; --atencao-suave: #3a2c10; --critico: #f0877d; --critico-suave: #42201d;
    --pendente: #f2c94c; --pendente-suave: #3d3112; --pendente-borda: #f2c94c; --laranja: #f6a466; --laranja-suave: #47260e; --laranja-borda: #e9813a;
  --sobre-azul: #0e151d; --sombra: 0 10px 30px rgba(0, 0, 0, .5); color-scheme: dark;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--tinta); font: 14px/1.5 var(--f-texto); }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }
.mono, .icao, td.num, dd { font-variant-numeric: tabular-nums; }
.mono { font-family: var(--f-mono); font-size: .92em; }
.icao { font-family: var(--f-mono); font-size: .92em; letter-spacing: .02em; }
.sutil { color: var(--tinta-3); font-size: .9em; }
.bloco { display: block; }
.txt-critico { color: var(--critico); }
.txt-atencao { color: var(--atencao); }
.txt-ok { color: var(--ok); }
.carregando { padding: 2rem; color: var(--tinta-3); }

/* ---------- topo ---------- */
.topo { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: var(--superficie); border-bottom: 1px solid var(--linha);
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.topo-linha { max-width: 1280px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; padding-block: 12px 8px; }
.marca { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; min-width: 0; }
.marca-matricula { font-family: var(--f-display); font-weight: 600; font-size: 28px; letter-spacing: .04em; line-height: 1; }
.marca-detalhe { color: var(--tinta-2); font-size: 13px; }
.ponto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin: 0 5px 1px 0; background: var(--ok); }
.ponto-aog { background: var(--critico); } .ponto-manutencao { background: var(--atencao); }
.topo-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ver-como { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--tinta-3); text-transform: uppercase; letter-spacing: .06em; }
.ver-como select { text-transform: none; letter-spacing: 0; font-size: 13px; }
.usuario { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--azul-suave); color: var(--azul); font-weight: 600; }
.abas { max-width: 1280px; margin: 0 auto; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.aba { padding: 10px 12px 9px; color: var(--tinta-2); text-decoration: none; border-bottom: 3px solid transparent; white-space: nowrap;
  font-family: var(--f-display); font-weight: 600; font-size: 17px; letter-spacing: .03em; }
.aba:hover { color: var(--tinta); }
.aba.ativa { color: var(--azul); border-bottom-color: var(--azul); }

/* ---------- avisos ---------- */
.avisos { max-width: 1280px; margin: 12px auto 0; display: flex; gap: 8px; flex-wrap: wrap;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.aviso { border: 1px solid transparent; border-radius: 999px; padding: 4px 12px; font-size: 13px; cursor: pointer; background: var(--superficie-2); color: var(--tinta-2); }
.aviso-critico { background: var(--critico-suave); color: var(--critico); }
.aviso-atencao { background: var(--atencao-suave); color: var(--atencao); }
.aviso:hover { border-color: currentColor; }

/* ---------- conteúdo ---------- */
.conteudo { max-width: 1280px; margin: 0 auto; padding-block: 16px 40px;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); outline: none; }
.rodape { max-width: 1280px; margin: 0 auto; padding-block: 0 24px; color: var(--tinta-3); font-size: 12px;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.barra-ferramentas { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.titulo-pagina, .titulo-periodo { font-family: var(--f-display); font-weight: 600; font-size: 26px; letter-spacing: .02em; line-height: 1.1; }
.titulo-periodo { min-width: 9.5em; text-align: center; text-transform: capitalize; }
.rotulo-secao { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-2); margin-bottom: 10px; }
.rotulo-secao .sutil { text-transform: none; letter-spacing: 0; font-weight: 400; margin-left: 6px; }
section.bloco { margin-top: 22px; }
.titulo-com-acao { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.titulo-com-acao .rotulo-secao { margin: 0; }
.duas-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 0 28px; }
.duas-colunas > * { min-width: 0; }
.nota { color: var(--tinta-3); font-size: 12.5px; margin: 8px 0 0; max-width: 75ch; }
.vazio { color: var(--tinta-3); }
.vazio-grande { padding: 48px 16px; text-align: center; color: var(--tinta-2); background: var(--superficie); border: 1px dashed var(--linha-forte); border-radius: var(--raio); }
.erro-aba { padding: 20px; border-radius: var(--raio); background: var(--critico-suave); color: var(--critico); }

/* ---------- botões e controles ---------- */
.btn { border: 1px solid var(--linha-forte); background: var(--superficie); border-radius: var(--raio); padding: 6px 12px; cursor: pointer; white-space: nowrap; font-size: 13.5px; }
.btn:hover { border-color: var(--tinta-3); }
.btn-primario { background: var(--azul); border-color: var(--azul); color: var(--sobre-azul); font-weight: 500; }
.btn-primario:hover { background: var(--azul-hover); border-color: var(--azul-hover); }
.btn-leve { background: transparent; border-color: transparent; color: var(--azul); }
.btn-leve:hover { background: var(--azul-suave); border-color: transparent; }
.btn-perigo { background: var(--critico); border-color: var(--critico); color: var(--sobre-azul); }
.btn-icone { border: 1px solid var(--linha); background: var(--superficie); border-radius: var(--raio); width: 32px; height: 32px; cursor: pointer; font-size: 18px; line-height: 1; }
.segmentado { display: inline-flex; border: 1px solid var(--linha-forte); border-radius: var(--raio); overflow: hidden; background: var(--superficie); }
.segmentado button { border: 0; background: transparent; padding: 6px 12px; cursor: pointer; font-size: 13px; color: var(--tinta-2); }
.segmentado button + button { border-left: 1px solid var(--linha); }
.segmentado button.ativo { background: var(--azul-suave); color: var(--azul); font-weight: 600; }
input, select, textarea { border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); padding: 6px 8px; min-width: 0; width: 100%; }
input:disabled, select:disabled { background: var(--superficie-2); color: var(--tinta-2); }
input[readonly] { background: var(--superficie-2); }
input[type=checkbox] { width: auto; accent-color: var(--azul); }
.maiusc { text-transform: uppercase; }
label { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--tinta-2); min-width: 0; }
label.check { flex-direction: row; align-items: center; gap: 6px; font-size: 13.5px; color: var(--tinta); }
label.largo { margin-top: 10px; }
.campo-inline { flex-direction: row; align-items: center; gap: 8px; }
.campo-inline input { width: auto; }

/* ---------- selos e estados ---------- */
.selo, .status, .chip { display: inline-block; border-radius: 999px; padding: 1px 8px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.selo-ok { background: var(--ok-suave); color: var(--ok); }
.selo-atencao { background: var(--atencao-suave); color: var(--atencao); }
.selo-neutro { background: var(--superficie-2); color: var(--tinta-2); }
.selo-exemplo { background: transparent; border: 1px dashed var(--amarelo); color: var(--amarelo); font-size: 11px; padding: 0 6px; margin-left: 6px; }
.status-solicitada { background: var(--pendente-suave); color: var(--pendente); }
.status-confirmada { background: var(--ok-suave); color: var(--ok); }
.status-reagendar { background: var(--atencao-suave); color: var(--atencao); }
.status-fechada { background: var(--ok-suave); color: var(--ok); }
.status-aguardando_taxas { background: var(--atencao-suave); color: var(--atencao); }
.status-realizada { background: var(--superficie-2); color: var(--tinta-2); }
.status-cancelada { background: var(--critico-suave); color: var(--critico); }
.chip { border: 1px solid var(--linha-forte); color: var(--tinta-2); margin-right: 4px; padding: 0 7px; font-size: 11.5px; }
.chip-taxas { border-color: var(--atencao); color: var(--atencao); }
.semaforo { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--linha-forte); vertical-align: -1px; }
.semaforo-verde { background: var(--ok); } .semaforo-amarelo { background: var(--atencao); } .semaforo-vermelho { background: var(--critico); }

/* ---------- tabelas ---------- */
.tabela-rolagem { overflow-x: auto; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.tabela { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tabela th { text-align: left; font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2);
  padding: 9px 10px; border-bottom: 1px solid var(--linha-forte); background: var(--superficie-2); white-space: nowrap; }
.tabela td { padding: 8px 10px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela .num { text-align: right; white-space: nowrap; }
.tabela tfoot td { font-weight: 600; border-top: 1px solid var(--linha-forte); }
.tabela-compacta { font-size: 13px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.tabela-compacta td, .tabela-compacta th { padding: 6px 9px; }
.linha-viagem:hover td { background: var(--superficie-2); }
.linha-viagem.expandida td { background: var(--azul-suave); border-bottom-color: transparent; }
tr.detalhe > td { background: var(--superficie-2); padding: 14px; }
.trip { display: inline-block; margin-right: 8px; white-space: nowrap; }
.valor-principal { font-weight: 600; }
.acoes-celula { text-align: right; white-space: nowrap; }
.mais { text-align: center; margin-top: 12px; }

/* ---------- calendário ---------- */
.cal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; }
.nav-periodo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cal-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.cal-cab { background: var(--superficie-2); padding: 6px 8px; font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-2); font-weight: 600; }
.cal-dia { background: var(--superficie); min-height: 92px; padding: 6px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal-semana .cal-dia { min-height: 260px; }
.cal-dia.clicavel { cursor: pointer; }
.cal-dia.clicavel:hover { background: var(--superficie-2); }
.cal-dia.fora { background: var(--bg); }
.cal-dia.fora .cal-num { color: var(--tinta-3); }
.cal-num { font-family: var(--f-display); font-size: 17px; font-weight: 500; line-height: 1; color: var(--tinta-2); }
.cal-dia.hoje .cal-num { color: var(--sobre-azul); background: var(--azul); border-radius: 4px; padding: 2px 5px; align-self: flex-start; }
.ev { display: block; width: 100%; text-align: left; border: 0; border-radius: 4px; padding: 2px 6px; font-size: 11.5px; font-family: var(--f-mono);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; border-left: 3px solid transparent; }
.ev-hora { opacity: .75; margin-right: 4px; }
.ev-agendado { background: var(--pendente-suave); color: var(--pendente); border-left-color: var(--pendente-borda); }
.ev-confirmado { background: var(--ok-suave); color: var(--ok); border-left-color: var(--ok); }
.ev-realizado { background: var(--superficie-2); color: var(--tinta-2); border-left-color: var(--linha-forte); }
.ev-manutencao { background: var(--laranja-suave); color: var(--laranja); border-left-color: var(--laranja-borda); font-family: var(--f-texto); }
.ev-alerta { background: var(--critico-suave); color: var(--critico); border-left-color: var(--critico); }
.ev-mais { font-size: 11px; color: var(--tinta-3); padding-left: 4px; }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 10px; font-size: 12px; color: var(--tinta-2); }
.legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 5px; vertical-align: -2px; }
.legenda i.ev-agendado { background: var(--pendente-borda); } .legenda i.ev-confirmado { background: var(--ok); }
.legenda i.ev-realizado { background: var(--linha-forte); } .legenda i.ev-manutencao { background: var(--laranja-borda); } .legenda i.ev-alerta { background: var(--critico); }
.cal-lado .rotulo-secao { margin-top: 4px; }
.cal-lado .rotulo-secao + * { margin-bottom: 22px; }
.lista-simples { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.item-voo { display: grid; gap: 1px; width: 100%; text-align: left; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px 10px; cursor: pointer; }
.item-voo:hover { border-color: var(--azul); }
.item-voo-data { font-family: var(--f-mono); font-size: 12px; color: var(--tinta-2); }
.item-voo-rota { font-family: var(--f-mono); font-weight: 500; }
.item-voo-meta { font-size: 12px; color: var(--tinta-2); }
.resumo-mes { display: grid; gap: 1px; margin: 0; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.resumo-mes div { display: flex; justify-content: space-between; padding: 8px 10px; background: var(--superficie); }
.resumo-mes dt { color: var(--tinta-2); } .resumo-mes dd { margin: 0; font-weight: 600; }

/* ---------- agendamentos / composições ---------- */
.detalhe-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 18px 28px; }
.detalhe-grade > * { min-width: 0; }
.meteo-linha { margin: 10px 0 0; font-size: 13px; }
.composicao { margin: 0; display: grid; gap: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.composicao > div { display: flex; justify-content: space-between; gap: 16px; padding: 7px 10px; border-bottom: 1px solid var(--linha); }
.composicao > div:last-child { border-bottom: 0; }
.composicao dt { font-size: 13px; } .composicao dd { margin: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.composicao .soma { background: var(--superficie-2); font-weight: 600; }
.acoes-linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linha); }
.confirmar-perigo span { color: var(--critico); margin-right: 6px; }

/* ---------- voos realizados ---------- */
.exportar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.filtros { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 12px; }
.filtros label { width: 150px; }
.filtros label.check { width: auto; padding-bottom: 6px; }
.faixa-totais { display: flex; flex-wrap: wrap; gap: 1px; margin: 0 0 14px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.faixa-totais div { flex: 1 1 140px; background: var(--superficie); padding: 10px 14px; }
.faixa-totais dt { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-2); }
.faixa-totais dd { margin: 2px 0 0; font-family: var(--f-display); font-size: 24px; font-weight: 600; line-height: 1.1; }
.faixa-totais small { font-family: var(--f-texto); font-size: 12px; color: var(--tinta-3); font-weight: 400; }
.cartao-trecho { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; }
.cartao-trecho + .cartao-trecho { margin-top: 10px; }
.cartao-trecho > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.cartao-trecho h3 { font-size: 15px; font-weight: 600; }
.cartao-acoes { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.grade-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px 20px; }
.grade-dados h4 { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--amarelo); margin-bottom: 4px; }
.grade-dados dl { margin: 0; }
.grade-dados dl div { display: flex; justify-content: space-between; gap: 10px; padding: 2px 0; border-bottom: 1px dotted var(--linha); font-size: 13px; }
.grade-dados dt { color: var(--tinta-2); } .grade-dados dd { margin: 0; text-align: right; }
.grade-dados .destaque { font-weight: 600; color: var(--azul); }
.grade-dados .soma { font-weight: 600; border-bottom: 0; }
.obs { margin: 10px 0 0; font-size: 13px; }
.historico { margin-top: 10px; font-size: 12.5px; color: var(--tinta-2); }
.historico summary { cursor: pointer; color: var(--azul); }
.historico ul { margin: 6px 0 0; padding-left: 18px; }

/* ---------- financeiro / manutenção / aeronave ---------- */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; margin: 0; }
.kpis > div { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; display: grid; }
.kpis dt { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-2); }
.kpis dd { margin: 2px 0; font-family: var(--f-display); font-size: 28px; font-weight: 600; line-height: 1.1; }
.kpis small { color: var(--tinta-3); font-size: 12px; }
.grafico { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px 4px; }
.g-area { height: 180px; display: flex; align-items: stretch; gap: 6px; border-bottom: 1px solid var(--linha-forte); padding-top: 4px; }
.g-coluna { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 3px; }
.g-barra { display: block; width: 70%; max-width: 48px; background: var(--azul); opacity: .5; border-radius: 3px 3px 0 0; }
.g-barra-destaque { opacity: 1; }
.g-coluna:hover .g-barra { opacity: .85; }
.g-valor { font-size: 11px; color: var(--tinta-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.g-valor.g-max { color: var(--tinta); font-weight: 600; }
.g-rotulos { display: flex; gap: 6px; padding: 4px 0 6px; }
.g-rotulos span { flex: 1 1 0; min-width: 0; text-align: center; font-size: 11px; color: var(--tinta-2); overflow: hidden; text-overflow: clip; white-space: nowrap; }
.ficha { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 1px; background: var(--linha); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.ficha div { background: var(--superficie); padding: 8px 12px; }
.ficha dt { font-size: 11.5px; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .06em; } .ficha dd { margin: 2px 0 0; font-weight: 600; }
.destaque-suave .composicao { border-color: var(--azul); }
.doc-linha { font-size: 13px; margin: 10px 0 8px; }
.documento { border: 1px solid var(--linha-forte); border-radius: var(--raio); padding: 16px; background: var(--superficie); display: grid; gap: 12px; }
.documento > header { display: flex; justify-content: space-between; font-family: var(--f-display); font-size: 18px; letter-spacing: .04em; border-bottom: 2px solid var(--tinta); padding-bottom: 6px; }
.doc-partes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; font-size: 13px; }
.doc-partes small { display: block; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-3); font-size: 11px; }
.documento .soma td { font-weight: 600; background: var(--superficie-2); }
.vencimentos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.vencimento { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; display: grid; gap: 6px; }
.venc-topo { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.venc-resta { font-weight: 600; font-size: 13px; margin-left: auto; }
.barra { height: 8px; border-radius: 4px; background: var(--superficie-2); overflow: hidden; }
.barra span { display: block; height: 100%; border-radius: 4px; background: var(--ok); }
.barra-atencao span { background: var(--atencao); } .barra-critico span { background: var(--critico); }
.ranking { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ranking li { display: grid; grid-template-columns: 52px 1fr 32px; align-items: center; gap: 8px; }
.ranking-barra { height: 10px; border-radius: 3px; background: var(--amarelo); opacity: .7; }
.ranking .mono { text-align: right; }

/* ---------- formulários e modal ---------- */
.modal-fundo { position: fixed; inset: 0; z-index: 50; background: rgba(10, 18, 26, .5); display: flex; align-items: flex-start; justify-content: center;
  padding: max(24px, env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) max(24px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); overflow-y: auto; }
.modal { width: min(560px, 100%); background: var(--superficie); border-radius: 10px; box-shadow: var(--sombra); }
.modal-largo { width: min(980px, 100%); }
.modal-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--linha); }
.modal-topo h2 { font-family: var(--f-display); font-weight: 600; font-size: 22px; letter-spacing: .02em; }
.modal-corpo { padding: 16px 18px 18px; }
.form-trecho { display: grid; gap: 12px; }
.grupo { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px 12px; margin: 0; min-width: 0; }
.grupo legend { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--amarelo); padding: 0 4px; }
.grupo legend .sutil { text-transform: none; letter-spacing: 0; font-weight: 400; }
.campos { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 120px), 1fr)); }
.campos-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.campos + .campos { margin-top: 10px; }
.checks { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; }
.checks label:not(.check) { width: 180px; }
.botoes-tempo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.btn-tempo { border: 1px solid var(--azul); background: var(--azul-suave); color: var(--azul); border-radius: 8px; padding: 10px 6px; cursor: pointer;
  font-family: var(--f-display); font-size: 19px; font-weight: 600; letter-spacing: .04em; display: grid; line-height: 1.1; }
.btn-tempo span { font-family: var(--f-texto); font-size: 11px; font-weight: 400; letter-spacing: 0; opacity: .8; }
.btn-tempo:hover { background: var(--azul); color: var(--sobre-azul); }
.calculados { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px; margin-top: 10px; }
.calculados div { background: var(--superficie-2); border-radius: var(--raio); padding: 8px 10px; display: grid; }
.calculados span { font-size: 11.5px; color: var(--tinta-2); text-transform: uppercase; letter-spacing: .06em; }
.calculados strong { font-family: var(--f-mono); font-size: 20px; }
.calculados small { color: var(--tinta-3); font-size: 11.5px; }
.calculados div:first-child { background: var(--azul-suave); } .calculados div:first-child strong { color: var(--azul); }
.erros, .erro-campo { color: var(--critico); margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.erro-campo { padding-left: 0; min-height: 0; }
.erro-campo:empty, .erros:empty { display: none; }
.rodape-form { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.rodape-form .sutil { margin-right: auto; }
.linha-trecho { display: grid; grid-template-columns: 24px repeat(4, minmax(0, 1fr)) minmax(90px, auto) 32px; gap: 8px; align-items: end; padding: 6px 0; border-bottom: 1px dotted var(--linha); }
.num-trecho { font-family: var(--f-display); font-size: 20px; color: var(--amarelo); padding-bottom: 6px; }
.tempo-previsto { display: grid; font-size: 12px; padding-bottom: 4px; }
.tempo-previsto strong { font-family: var(--f-mono); font-size: 15px; }
.tempo-previsto small { color: var(--tinta-3); }
.checagens { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.checagens li { padding: 6px 10px; border-radius: var(--raio); background: var(--superficie-2); }
.check-trava { background: var(--critico-suave) !important; color: var(--critico); }
.check-aviso { background: var(--atencao-suave) !important; color: var(--atencao); }
.check-ok { background: var(--ok-suave) !important; color: var(--ok); }
.previa { max-height: 340px; overflow: auto; margin: 6px 0 12px; }
.texto-copia { width: 100%; height: 120px; font-family: var(--f-mono); font-size: 12px; margin-bottom: 10px; }
.toast { position: fixed; z-index: 60; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--tinta); color: var(--bg);
  padding: 10px 16px; border-radius: 8px; box-shadow: var(--sombra); font-size: 14px; max-width: calc(100% - 32px); transition: opacity .3s; }
.toast.saindo { opacity: 0; }

@media (max-width: 900px) {
  .cal-layout { grid-template-columns: 1fr; }
  .cal-dia { min-height: 64px; }
  .ev { font-size: 10.5px; padding: 1px 3px; }
}
@media (max-width: 620px) {
  .marca-matricula { font-size: 24px; }
  .topo-acoes { width: 100%; justify-content: space-between; }
  .cal-cab { font-size: 10px; padding: 4px; }
  .cal-dia { min-height: 52px; padding: 3px; }
  .cal-mes .ev { font-size: 0; height: 6px; padding: 0; border-left-width: 0; }
  .titulo-periodo { min-width: 0; font-size: 22px; }
  .linha-trecho { grid-template-columns: 24px 1fr 1fr; }
  .linha-trecho .tempo-previsto { grid-column: 2 / 3; }
  .botoes-tempo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filtros label { width: calc(50% - 6px); }
  .g-valor:not(.g-max) { visibility: hidden; }
  .g-coluna:hover .g-valor { visibility: visible; }
  .g-rotulos span { font-size: 9.5px; }
}
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }
.rolagem-x { overflow-x: auto; max-width: 100%; }
.rolagem-x > .tabela { min-width: max-content; }
@media (min-width: 621px) { .rolagem-x > .tabela { min-width: 100%; } }

/* ---------- entrada (login) ---------- */
.entrada { min-height: 100%; display: grid; place-items: start center; padding-block: 8vh 40px;
  padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.entrada-cartao { width: min(420px, 100%); background: var(--superficie); border: 1px solid var(--linha); border-radius: 10px; padding: 24px; display: grid; gap: 14px; }
.entrada-cartao.largo { width: min(560px, 100%); }
.entrada-cartao h1 { font-family: var(--f-display); font-weight: 600; font-size: 28px; letter-spacing: .02em; }
.entrada-marca { margin: 0 0 6px; display: flex; align-items: center; gap: 12px; font-size: 26px; }
.entrada-marca img { border-radius: 13px; }
.entrada-links { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.aviso-ok { margin: 0; padding: 8px 10px; border-radius: var(--raio); background: var(--ok-suave); color: var(--ok); font-size: 13px; }
.convite { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.papel-atual { font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-2); }
details summary { cursor: pointer; color: var(--azul); }

/* ---------- campo de aeródromo com sugestões ---------- */
.campo-aero { position: relative; }
.sugestoes { position: absolute; z-index: 20; top: calc(100% - 18px); left: 0; width: min(440px, 86vw); max-height: 320px; overflow-y: auto;
  background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio); box-shadow: var(--sombra); padding: 4px 0; }
.sug-grupo { font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--amarelo); font-weight: 600; padding: 8px 12px 4px; }
.sug-item { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 7px 12px; cursor: pointer; color: var(--tinta); }
.sug-item:hover, .sug-item[aria-selected="true"] { background: var(--azul-suave); }
.sug-cod { font-family: var(--f-mono); font-weight: 500; color: var(--azul); }
.sug-nome { font-size: 13px; min-width: 0; }
.sug-nome small { display: block; color: var(--tinta-3); font-size: 11.5px; }
.sug-dist { font-family: var(--f-mono); font-size: 12px; color: var(--tinta-2); white-space: nowrap; }
.sug-vazio { padding: 10px 12px; font-size: 13px; color: var(--tinta-3); }
.aero-escolhido { display: block; min-height: 1.2em; font-size: 11.5px; color: var(--tinta-3); line-height: 1.3; }
.aero-escolhido.pendente { color: var(--atencao); }
.linha-trecho { align-items: start; }
.linha-trecho > label, .linha-trecho .tempo-previsto { padding-top: 0; }
.linha-trecho .num-trecho, .linha-trecho .btn-icone { margin-top: 22px; }
.linha-trecho .tempo-previsto { margin-top: 18px; }
.sug-cod.sem-icao { font-size: 11px; color: var(--tinta-2); }
.pista { display: block; font-family: var(--f-mono); font-size: 11px; color: var(--tinta-2); }
.pista-sem { color: var(--atencao); font-family: inherit; }
.aero-escolhido > span:first-child { display: block; }

/* ---------- perfil pessoal e abas de aeronaves ---------- */
.topo-global { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "marca abas acoes"; align-items: center;
  gap: 8px 16px; padding-block: 8px; border-bottom: 1px solid var(--linha); }
.topo-global .topo-acoes { grid-area: acoes; width: auto; flex-wrap: nowrap; }
.marca-app { grid-area: marca; display: inline-flex; align-items: center; gap: 8px; font-size: 18px; white-space: nowrap; }
.marca-app img { border-radius: 6px; }
.marca-nome { font-family: 'Plus Jakarta Sans', var(--f-texto); font-weight: 800; letter-spacing: -.02em; color: var(--azul); }
.marca-nome span { color: #e2a33b; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .marca-nome span { color: #f2c94c; } }
:root[data-theme="dark"] .marca-nome span { color: #f2c94c; }
.hangar-abas { grid-area: abas; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; min-width: 0; padding: 2px; }
.hangar-abas::-webkit-scrollbar { display: none; }
.hangar-aba { display: inline-flex; align-items: baseline; gap: 6px; padding: 5px 12px; border-radius: 999px; white-space: nowrap; text-decoration: none;
  color: var(--tinta-2); background: var(--superficie-2); border: 1px solid transparent; font-size: 13px; font-weight: 500; }
.hangar-aba:hover { border-color: var(--linha-forte); color: var(--tinta); }
.hangar-aba.ativa { background: var(--azul); color: var(--sobre-azul); }
.ha-mat { font-family: var(--f-display); font-weight: 600; font-size: 16px; letter-spacing: .04em; line-height: 1; }
.ha-papel { font-size: 11px; opacity: .8; }
.hangar-aba.convite-pendente { background: var(--atencao-suave); color: var(--atencao); }

.hangar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.cartao-aeronave { display: grid; gap: 6px; text-align: left; cursor: pointer; padding: 14px 16px; background: var(--superficie);
  border: 1px solid var(--linha); border-radius: 10px; color: var(--tinta); border-top: 4px solid var(--azul); }
.cartao-aeronave:hover { border-color: var(--linha-forte); border-top-color: var(--azul); box-shadow: 0 2px 10px rgba(19, 32, 45, .08); }
.ca-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ca-matricula { font-family: var(--f-display); font-weight: 600; font-size: 26px; letter-spacing: .04em; line-height: 1; }
.chip-papel { border-color: var(--azul); color: var(--azul); }
.ca-modelo { color: var(--tinta-2); font-size: 13px; }
.ca-linha { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; border-bottom: 1px dotted var(--linha); padding: 2px 0; }
.ca-linha > span { color: var(--tinta-2); }
.ca-linha strong { font-weight: 500; text-align: right; }
.ca-abrir { color: var(--azul); font-size: 13px; font-weight: 500; margin-top: 2px; }
.cartao-form { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; margin-bottom: 12px; }
.kpis dd.kpi-texto { font-size: 22px; }
.tabela tr.clicavel { cursor: pointer; }
.tabela tr.clicavel:hover td { background: var(--superficie-2); }
.horas-por-aeronave { margin-top: 12px; }
.lista-simples li { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.convites-perfil { background: var(--atencao-suave); border-radius: var(--raio); padding: 10px 14px; }
.convites-perfil .convite { border-bottom-color: transparent; }
@media (max-width: 620px) {
  .topo-global { grid-template-columns: 1fr auto; grid-template-areas: "marca acoes" "abas abas"; }
  .topo-global .topo-acoes { width: auto; }
}
.titulo-pagina .email-perfil { display: block; font-family: var(--f-texto); font-size: 13px; font-weight: 400; letter-spacing: 0; color: var(--tinta-3); margin-top: 2px; }

/* ---------- registro de voo realizado ---------- */
.titulo-grupo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.escolha-registro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; }
.escolha-registro section { display: grid; gap: 8px; align-content: start; }
.escolha-registro section + section { border-left: 1px solid var(--linha); padding-left: 20px; }
.lista-escolha { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 50vh; overflow-y: auto; }
.item-escolha { width: 100%; text-align: left; display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--linha); border-radius: var(--raio);
  background: var(--superficie); color: var(--tinta); cursor: pointer; }
.item-escolha:hover, .item-escolha:focus-visible { border-color: var(--azul); background: var(--azul-suave); }
.item-escolha strong { font-family: var(--f-mono); font-size: 13px; font-weight: 500; }
.cartao-registro { border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: 10px; background: var(--superficie); }
.cartao-registro > summary { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; }
.cartao-registro > summary::-webkit-details-marker { display: none; }
.cartao-registro > summary::after { content: '▾'; margin-left: auto; color: var(--tinta-3); }
.cartao-registro:not([open]) > summary::after { content: '▸'; }
.cartao-registro > summary .btn-icone { order: 2; }
.cartao-registro .r-rota { font-family: var(--f-mono); font-weight: 500; }
.cartao-registro-corpo { display: grid; gap: 10px; padding: 0 12px 12px; }
.acoes-viagem { margin-bottom: 10px; }
@media (max-width: 620px) { .escolha-registro section + section { border-left: 0; padding-left: 0; border-top: 1px solid var(--linha); padding-top: 14px; } }
.chip-admin { border-color: var(--amarelo); color: var(--amarelo); text-transform: none; letter-spacing: 0; margin-left: 6px; }
.painel-admin { border: 1px solid var(--linha); border-left: 4px solid var(--amarelo); border-radius: var(--raio); background: var(--superficie); padding: 12px 14px; }
.painel-admin .tabela tr[hidden] { display: none; }
.zona-perigo { margin-top: 22px; border: 1px solid var(--critico); border-radius: var(--raio); padding: 12px 14px; background: var(--critico-suave); }
.zona-perigo .rotulo-secao { color: var(--critico); }
.zona-perigo p { margin: 0 0 10px; }
.zona-perigo-acao { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.zona-perigo-acao label { display: grid; gap: 4px; font-size: 13px; }
.btn-perigo:disabled { opacity: .45; cursor: not-allowed; }
.ficha-admin { display: grid; gap: 14px; }
.kpis-compactos dd { font-size: 22px; }

/* ---------- fotos e perfil ---------- */
.avatar { --tam: 32px; width: var(--tam); height: var(--tam); flex: none; border-radius: 50%; display: inline-grid; place-items: center;
  background: var(--azul-suave) center / cover no-repeat; color: var(--azul); font-weight: 600; font-size: calc(var(--tam) * .38); letter-spacing: .02em; overflow: hidden; }
.avatar.com-foto { color: transparent; }
.usuario-topo { display: inline-flex; border-radius: 50%; }
.usuario-topo { cursor: default; }
.cabecalho-perfil { display: flex; align-items: center; gap: 14px; min-width: 0; }
.pessoa-linha { display: inline-flex; align-items: center; gap: 8px; }
.foto-aeronave { display: inline-grid; place-items: center; flex: none; background: var(--superficie-2) center / cover no-repeat; color: var(--tinta-3);
  border-radius: var(--raio); overflow: hidden; width: 48px; height: 32px; }
.foto-aeronave-icone { width: 55%; height: 55%; opacity: .55; }
.foto-aeronave.com-foto .foto-aeronave-icone { display: none; }
.foto-aeronave.mini { width: 36px; height: 24px; border-radius: 4px; }
.foto-aeronave.topo { width: 54px; height: 36px; margin-right: 4px; align-self: center; }
.foto-aeronave.grande { width: min(100%, 420px); aspect-ratio: 16 / 9; height: auto; border-radius: 10px; }
.foto-aeronave.grande .foto-aeronave-icone { width: 22%; height: 22%; }
.cartao-aeronave .ca-foto { width: calc(100% + 32px); margin: -14px -16px 6px; height: 120px; border-radius: 0; }
.cartao-aeronave { overflow: hidden; }
.matricula-com-foto { display: inline-flex; align-items: center; gap: 8px; }
.editor-foto-aeronave { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 16px; }
.editor-foto-acoes { display: grid; gap: 6px; justify-items: start; }
.editor-foto-acoes label.btn, .foto-perfil-acoes label.btn { cursor: pointer; }
.foto-perfil { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.foto-perfil-acoes { display: grid; gap: 6px; justify-items: start; }
.trocar-senha { margin-top: 14px; border-top: 1px solid var(--linha); padding-top: 10px; }
.trocar-senha form { margin-top: 10px; }

/* ---------- pendentes no SACI ---------- */
.lista-saci { display: grid; gap: 6px; }
.saci-item { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.saci-item[open] { border-color: var(--azul); }
.saci-item > summary { display: grid; grid-template-columns: 92px 64px minmax(0, 1fr) 52px auto; gap: 10px; align-items: center;
  padding: 9px 12px; cursor: pointer; list-style: none; }
.saci-item > summary::-webkit-details-marker { display: none; }
.saci-item > summary::after { content: '▸'; color: var(--tinta-3); grid-column: auto; }
.saci-item[open] > summary::after { content: '▾'; }
.saci-item > summary { grid-template-columns: 92px 64px minmax(0, 1fr) 52px auto 12px; }
.saci-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 14px; margin: 0; padding: 4px 12px 10px; }
.saci-campo { border-bottom: 1px dotted var(--linha); padding: 4px 0; }
.saci-campo dt { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-2); }
.saci-campo dd { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-family: var(--f-mono); font-size: 14px; }
.btn-copiar { border: 1px solid var(--linha-forte); background: transparent; color: var(--azul); border-radius: 4px; font: 11px var(--f-texto); padding: 1px 6px; cursor: pointer; }
.btn-copiar:hover { background: var(--azul-suave); }
.saci-acoes { display: flex; justify-content: flex-end; align-items: center; gap: 12px; flex-wrap: wrap; padding: 0 12px 12px; }
.saci-acoes small { margin-right: auto; }
@media (max-width: 620px) { .saci-item > summary { grid-template-columns: 80px 1fr auto 12px; } .saci-item > summary .chip, .saci-item > summary > span:nth-child(2) { display: none; } }

/* ---------- manutenção: próximas ---------- */
.cartoes-manut { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.cartao-manut { background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--ok); border-radius: var(--raio); padding: 12px 14px; display: grid; gap: 6px; }
.cartao-manut.estado-atencao { border-left-color: var(--atencao); }
.cartao-manut.estado-critico { border-left-color: var(--critico); }
.cartao-manut.estado-neutro { border-left-color: var(--linha-forte); }
.cm-rotulo { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-2); }
.cm-valor { font-family: var(--f-display); font-size: 30px; font-weight: 600; line-height: 1.1; }
.cartao-manut small { color: var(--tinta-3); font-size: 12.5px; }
.faixa-manut { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; padding: 8px 12px; margin-bottom: 12px; border-radius: var(--raio);
  background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--ok); font-size: 13.5px; }
.faixa-manut.estado-atencao { border-left-color: var(--atencao); background: var(--atencao-suave); }
.faixa-manut.estado-critico { border-left-color: var(--critico); background: var(--critico-suave); }
.faixa-manut a { margin-left: auto; color: var(--azul); font-size: 13px; }
.faixa-manut-dica { margin: -6px 0 12px; }

/* ---------- habilitações e CMA ---------- */
.etiquetas-doc { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.etiqueta-doc { display: inline-flex; gap: 4px; align-items: baseline; border-radius: 999px; padding: 1px 8px; font-size: 12px; font-weight: 500; white-space: nowrap;
  background: var(--ok-suave); color: var(--ok); }
.etiqueta-doc.doc-atencao { background: var(--atencao-suave); color: var(--atencao); }
.etiqueta-doc.doc-critico { background: var(--critico-suave); color: var(--critico); }
.etiqueta-doc.doc-neutro { background: var(--superficie-2); color: var(--tinta-2); }

/* ---------- despesas: voo ligado e comprovantes ---------- */
.lista-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .5rem 1rem; margin: 0 0 1rem; }
.lista-dados dt { font-size: .75rem; color: var(--tinta-2); }
.lista-dados dd { margin: 0; }
.bloco-modal { margin: 0 0 1rem; }
.linha-campo { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.linha-campo select { flex: 1 1 220px; min-width: 0; }
.btn-link { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.comprovante-previa { display: block; max-width: 100%; max-height: 60vh; border-radius: var(--raio); border: 1px solid var(--linha); background: #fff; }
.despesas-trecho { margin-top: .75rem; padding-top: .5rem; border-top: 1px dashed var(--linha); }
.despesas-trecho h4 { margin: 0; }
.lista-despesas { list-style: none; margin: .25rem 0 0; padding: 0; }
.lista-despesas li { padding: .3rem 0; display: flex; flex-wrap: wrap; gap: .25rem .4rem; align-items: center; }
.filtros-linha { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: end; margin: 0 0 .75rem; }
.filtros-linha label { display: flex; flex-direction: column; font-size: 12px; color: var(--tinta-2); gap: 2px; }
.filtros-linha .segmentado { flex-wrap: wrap; max-width: 100%; }
.hangar-aba.aba-admin:not(.ativa) { border-style: dashed; color: var(--amarelo); }

/* ---------- avisos (sino) ---------- */
.sino-area { position: relative; display: inline-flex; }
.sino { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--linha); background: var(--superficie); color: var(--tinta-2); cursor: pointer; }
.sino:hover { color: var(--azul); border-color: var(--linha-forte); }
.sino.com-avisos { color: var(--azul); }
.sino-num { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--critico);
  color: #fff; font-size: 11px; font-weight: 600; line-height: 18px; text-align: center; }
.sino-painel { position: absolute; right: 0; top: calc(100% + 8px); width: min(380px, calc(100vw - 32px)); max-height: min(70vh, 520px); overflow: auto;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); z-index: 60; }
.sino-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--linha);
  position: sticky; top: 0; background: var(--superficie); font-size: 13px; }
.sino-lista { list-style: none; margin: 0; padding: 0; }
.sino-lista li { display: flex; align-items: flex-start; border-bottom: 1px solid var(--linha); }
.sino-lista li.nao-lida { background: var(--azul-suave); }
.sino-item { flex: 1; min-width: 0; text-align: left; background: none; border: 0; padding: 10px 12px; cursor: pointer; color: var(--tinta); font: inherit; display: grid; gap: 2px; }
.sino-titulo { font-weight: 600; font-size: 13px; }
.sino-corpo { font-size: 12px; color: var(--tinta-2); white-space: pre-line; }
.sino-quando { font-size: 11px; color: var(--tinta-3); }
.sino-apagar { margin: 6px 6px 0 0; }
.sino-vazio { padding: 16px 12px; margin: 0; }
.push-aparelho { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border-radius: var(--raio);
  background: var(--superficie-2); margin-bottom: 8px; font-size: 13px; }
.push-aparelho.push-ativo { background: var(--ok-suave); color: var(--ok); }
.push-aparelho.push-bloqueado, .push-aparelho.push-instalar { background: var(--atencao-suave); color: var(--atencao); }
.tabela-avisos td { vertical-align: top; }
.tabela-avisos .centro, .tabela-avisos th.centro { text-align: center; width: 72px; }
.tabela-avisos input[type=checkbox] { width: 18px; height: 18px; }
@media (max-width: 600px) {
  .sino-painel { position: fixed; left: 16px; right: 16px; top: 60px; width: auto; }
}
.chip-sem-taxas { background: var(--superficie-2); color: var(--tinta-2); border: 1px dashed var(--linha-forte); }
.fechar-sem-taxas { margin: 10px 0 0; }

/* ---------- mapa de componentes ---------- */
.ttaf-faixa { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 10px 12px; border-radius: var(--raio); background: var(--superficie-2); margin: 0 0 10px; font-size: 13px; }
.ttaf-faixa.sem-base { background: var(--atencao-suave); color: var(--atencao); }
.ttaf-faixa .btn { margin-left: auto; }
.tabela-mapa td { vertical-align: top; }
.tabela-mapa tr.linha-critico td:first-child { box-shadow: inset 3px 0 0 var(--critico); }
.tabela-mapa tr.linha-atencao td:first-child { box-shadow: inset 3px 0 0 var(--atencao); }
.mapa-colunas label { font-size: 12px; }
.imp-modo { margin: 10px 0; }
.largo2 { grid-column: span 2; }
@media (max-width: 600px) { .largo2 { grid-column: auto; } }
.grupo-comp { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
.obs-comp { font-size: 12px; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Resumo do dia (calendário) */
.dia-resumo .rotulo-secao { margin: 14px 0 6px; }
.dia-resumo .rotulo-secao:first-child { margin-top: 0; }
.dia-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.dia-item { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.dia-hora { display: flex; flex-direction: column; min-width: 64px; font-size: 13px; }
.dia-desc { display: flex; flex-direction: column; flex: 1 1 180px; min-width: 0; }
.dia-desc small { overflow-wrap: anywhere; }
.dia-acoes { margin-top: 14px; border-top: 1px solid var(--linha); padding-top: 12px; }
.dia-resumo .cartao-form { margin-top: 12px; }
.aviso-linha { padding: 8px 10px; border-radius: var(--raio); margin: 0 0 8px; }
.cal-dia:focus-visible { outline: 2px solid var(--azul); outline-offset: -2px; }

/* Observações e panes dos voos (manutenção / CTM) */
.lista-obs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.obs-item { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px; background: var(--superficie); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.obs-item.obs-nova { border-left: 4px solid var(--laranja-borda); }
.obs-cab { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: 13px; }
.obs-texto { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ca-obs { font-size: 12.5px; color: var(--tinta-2); text-align: left; overflow-wrap: anywhere; }
.chip-ok { border-color: var(--ok); color: var(--ok); }
.calc-comb { margin: 6px 0 0; font-size: 12.5px; }
.campo-calculado { display: block; padding: 7px 10px; border: 1px dashed var(--linha-forte); border-radius: var(--raio); background: var(--superficie-2); min-height: 36px; }
.info-taxas { white-space: normal; }

[hidden] { display: none !important; }
.check-mini { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--tinta-2); margin-top: 4px; font-weight: 400; text-transform: none; letter-spacing: 0; }

/* Boas-vindas */
.bv { display: flex; flex-direction: column; gap: 10px; }
.bv p { margin: 0; line-height: 1.5; }
.bv-grupo { font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--amarelo); font-weight: 600; }
.bv-titulo { margin: 0; font-family: var(--f-display); font-size: 24px; font-weight: 600; }
.bv-lista { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; line-height: 1.45; }
.bv-pontos { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.bv-pontos span { width: 8px; height: 8px; border-radius: 50%; background: var(--linha-forte); }
.bv-pontos span.feito { background: var(--azul-suave); }
.bv-pontos span.ativo { background: var(--azul); }
.bv-rodape { margin-top: 6px; }
.bv-rodape .bv-pular { margin-right: auto; }

.mapa-recolher { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 8px 0; }

.saldo-cartao { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border-radius: var(--raio); margin: 0 0 10px; }
.saldo-cartao strong { font-family: var(--f-mono); font-size: 20px; }
.saldo-cartao small { font-size: 12px; opacity: .85; }
.saldo-positivo { background: var(--ok-suave); color: var(--ok); }
.saldo-negativo { background: var(--critico-suave); color: var(--critico); }

/* ADM: controle de perfis */
.controles-vinculo { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.controles-vinculo select { max-width: 220px; }
.lista-vinculos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lista-vinculos li { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tabela-perfis .linha-inativa, .lista-vinculos .linha-inativa { opacity: .6; }
.convite-admin { margin-top: 8px; }
.btn.btn-leve.txt-critico { color: var(--critico); }

/* Sem internet / fila de envio */
.barra-conexao { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px));
  background: var(--atencao-suave); color: var(--atencao); border-top: 1px solid var(--atencao); font-size: 13.5px; font-weight: 500;
  text-align: center; cursor: pointer; }
.barra-conexao.sem-internet { background: var(--tinta); color: var(--bg); border-top-color: transparent; }
body.com-barra-conexao { padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px)); }
body.com-barra-conexao .toast { bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }
.tabela-conflito td:nth-child(2) { color: var(--tinta); }

/* Registro do voo: Operação e Passageiros empilhados ao lado do Combustível; despesas incluídas no voo */
.registro-colunas { gap: 10px 12px; align-items: start; }
.coluna-empilhada { display: grid; gap: 10px; }
.campos-fixo-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.despesas-no-voo { margin-top: 12px; border-top: 1px dashed var(--linha); padding-top: 10px; display: grid; gap: 8px; justify-items: start; }
.despesas-no-voo h4 { margin: 0; }
.despesas-no-voo .lista-despesas { margin: 0; justify-self: stretch; }
.linha-desp-voo { justify-self: stretch; display: grid; gap: 8px; align-items: end;
  grid-template-columns: minmax(120px, 1fr) minmax(90px, .7fr) minmax(150px, 1.2fr) minmax(140px, 1.4fr) minmax(150px, 1.2fr) auto;
  background: var(--fundo-2, transparent); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px 10px; }
.linha-desp-voo input[type=file] { font-size: 12px; max-width: 100%; }
@media (max-width: 760px) {
  .linha-desp-voo { grid-template-columns: 1fr 1fr; }
  .linha-desp-voo .largo-2 { grid-column: 1 / -1; }
}
.campos-custos { align-items: end; }
@media (max-width: 760px) { .linha-desp-voo .nd-forma { grid-column: 1 / -1; } }
/* Registro: Operação | Combustível e Passageiros | Horímetro na mesma grade (linhas e caixas alinhadas) */
.grade-registro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.grade-registro .campos { align-items: end; }
@media (max-width: 760px) { .grade-registro { grid-template-columns: 1fr; } }
.resumo-custo { margin-top: 12px; }
.resumo-custo caption { text-align: left; padding-bottom: 6px; }
.resumo-custo td:nth-child(2) { width: 100%; }
.resumo-custo tfoot td { font-weight: 600; }
.grade-registro input, .grade-registro select, .grade-registro output { height: 36px; box-sizing: border-box; margin-top: 4px; }
.grade-registro output.campo-calculado { display: flex; align-items: center; }
.grupo > .despesas-no-voo { margin-top: 0; border-top: 0; padding-top: 0; }
.linha-desp-voo { align-items: end; }
.linha-desp-voo label { display: flex; flex-direction: column; gap: 4px; }
.linha-desp-voo input, .linha-desp-voo select { height: 36px; box-sizing: border-box; margin: 0; }
.linha-desp-voo input[type=file] { padding: 5px 6px; }
.linha-desp-voo .btn-icone { height: 36px; }
.resumo-custo td:first-child { white-space: nowrap; }
/* linha de despesa no voo: dados em cima, arquivos embaixo, sempre na mesma grade */
.linha-desp-voo { grid-template-columns: minmax(120px, 1fr) minmax(90px, .7fr) minmax(150px, 1.2fr) minmax(140px, 1.6fr) auto; }
.linha-desp-voo .nd-arquivo:nth-of-type(n) { grid-column: span 2; }
.linha-desp-voo .nd-arquivo + .nd-arquivo { grid-column: span 3; }
.chave-nfe { word-break: break-all; font-size: 11.5px; }
@media (max-width: 760px) { .linha-desp-voo .nd-arquivo, .linha-desp-voo .nd-arquivo + .nd-arquivo { grid-column: 1 / -1; } }
@media (max-width: 760px) { .linha-desp-voo { grid-template-columns: 1fr 1fr; } .linha-desp-voo .nd-forma, .linha-desp-voo .largo-2 { grid-column: 1 / -1; } }
.kpis-5 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); margin-bottom: 12px; }
.fechamento-mes .acoes-celula { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fechamento-mes select { height: 36px; }
td.anexos { white-space: nowrap; }
.anexo-ok, .anexo-falta { display: inline-block; font-size: 11px; font-weight: 600; margin-right: 4px; padding: 1px 4px; border-radius: 4px; }
.anexo-ok { color: var(--ok); background: var(--ok-suave); }
.anexo-falta { color: var(--tinta-3); opacity: .45; }
/* formulários em grade: caixas da mesma altura e alinhadas pela base */
.campos-alinhados { align-items: end; }
.campos-alinhados input, .campos-alinhados select { height: 36px; box-sizing: border-box; }
.campos-alinhados > p { grid-column: 1 / -1; margin: 0; }
.fechamento-mes > .titulo-com-acao { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 16px; }
.fechamento-mes > .titulo-com-acao h2 { margin: 0; }
.fechamento-mes select { width: auto; min-width: 180px; }
#form-desp p:empty, .form-trecho p.sutil:empty { display: none; }
.aviso-mes { margin: 0 0 12px; padding: 10px 12px; border-radius: var(--raio); background: var(--superficie-2); color: var(--tinta-2); font-size: 13.5px; line-height: 1.45; }
.aviso-mes.ok { background: var(--ok-suave); color: var(--ok); }
.aviso-mes.atencao { background: var(--atencao-suave); color: var(--atencao); }
.aviso-mes .lista-pendentes { margin: 6px 0 8px; padding-left: 18px; color: var(--tinta); }
.aviso-mes .btn { margin-top: 2px; }
.fechamento-mes button[disabled] { opacity: .5; cursor: not-allowed; }
tr.linha-previa td { color: var(--tinta-2); }
.lista-dados dd .bloco, .ficha dd .bloco { display: block; }
.campos-fixo-3 > .largo-2 { grid-column: span 2; }
.campos-alinhados > .rodape-form { margin: 0; justify-content: flex-end; align-self: end; }
.campos-alinhados .btn { height: 36px; }
.campos-alinhados input[type=file] { padding: 5px 6px; }
.resolver-conflito { border: 1px solid var(--atencao); background: var(--atencao-suave); border-radius: var(--raio); padding: 10px 12px; margin: 10px 0; display: grid; gap: 8px; justify-items: start; }
.resolver-conflito h3 { margin: 0; }
.linha-resolver { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.linha-resolver > span:first-child { min-width: 120px; font-weight: 600; }
.linha-resolver select, .linha-resolver .btn { height: 36px; }
.datas-livres { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 4px 0; } .datas-livres .chip { cursor: pointer; border: 0; }
.ficha-linha { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px 16px; margin: 12px 0; }
.opcoes-modo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px; margin-bottom: 12px; }
.cartao-opcao { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; align-items: start; border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px; cursor: pointer; }
.cartao-opcao input { grid-row: span 2; margin-top: 3px; }
.cartao-opcao:has(input:checked) { border-color: var(--azul, #1c4f92); background: var(--superficie-2); }
.ev-reserva { background: var(--superficie-2); color: var(--tinta-2); border-left-color: #7a5fb0; font-family: var(--f-texto); }
.ev-ocupado { background: transparent; color: var(--tinta-3); border-left-color: var(--tinta-3); border-left-style: dashed; font-family: var(--f-texto); }
.legenda i.ev-reserva { background: #7a5fb0; } .legenda i.ev-ocupado { background: var(--tinta-3); }
.linha-destaque td { background: var(--superficie-2); font-weight: 600; }
.regra-uso-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px 24px; margin: 14px 0; }
.regra-uso-resumo dt { font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em; color: var(--tinta-2); }
.regra-uso-resumo dd { margin: 2px 0 0; font-weight: 600; }
.regra-uso-resumo dd .sutil { font-weight: 400; }
.linha-resolver { display: grid; grid-template-columns: minmax(100px, auto) minmax(160px, 240px) minmax(140px, 200px) auto; gap: 8px; align-items: center; }
.linha-resolver select { width: 100%; margin: 0; }
@media (max-width: 560px) { .linha-resolver { grid-template-columns: 1fr; } }

/* ficha de 3 colunas fixas (sem célula vazia) */
.ficha-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .ficha-3 { grid-template-columns: 1fr; } }
/* formulário da regra de remuneração: grupos com respiro */
.form-regra .grupo { margin: 0 0 14px; }
.form-regra .grupo > p.sutil { margin: 8px 0 0; }
.form-regra .rodape-form > .sutil { margin-right: auto; }
.form-regra input:disabled { background: var(--superficie-2); color: var(--tinta-3); }
/* pop-up extra-largo (registro de voo): mais espaço para as caixas */
.modal-extra { width: min(1240px, 100%); }
.modal-extra .grade-registro { gap: 16px 20px; }
.modal-extra .grupo { padding: 12px 16px 16px; }
.modal-extra .campos { gap: 12px 16px; }
.modal-extra input:not([type=checkbox]):not([type=radio]):not([type=file]), .modal-extra select { height: 36px; box-sizing: border-box; }
.campos-fixo-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 760px) { .campos-fixo-4 { grid-template-columns: 1fr 1fr; } }

.escala-fds { margin: 12px 0; }
.escala-fds p { margin: 0 0 6px; }
.lista-chips { list-style: none; padding: 0; margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 6px; }
.chip-meu { background: var(--ok-suave); color: var(--ok); }
#ru-fds { margin-top: 12px; }
#ru-fds .check { margin: 8px 0; }

.campo-alerta { border-color: var(--atencao) !important; background: var(--atencao-suave); }
input.maiusc { text-transform: uppercase; }
input.maiusc::placeholder { text-transform: none; }

/* Voos realizados: tabela e cartão do trecho alinhados */
td.nowrap, th.nowrap { white-space: nowrap; }
.tabela td.rota { min-width: 150px; }
@media (max-width: 760px) { .tabela td.rota { white-space: nowrap; } }
.grade-dados dl div { align-items: baseline; min-height: 24px; box-sizing: border-box; white-space: nowrap; }
.grade-dados dt { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.grade-dados dd { flex-shrink: 0; }
.grade-dados dd.mono { font-family: inherit; }
/* Todas as caixas de formulário com a mesma altura (inputs, selects, data e hora) */
.campos input:not([type=checkbox]):not([type=radio]):not([type=file]), .campos select, .campos output,
.linha-trecho input:not([type=checkbox]), .linha-trecho select, .filtros input:not([type=checkbox]), .filtros select { height: 36px; box-sizing: border-box; }
/* rótulo com dica ao lado ("(opcional)") pode quebrar linha: alinha as caixas pela base */
.campos:has(> label > span.sutil) { align-items: end; }

/* Solicitar voo › Passageiros */
.passageiros .lista-pax { list-style: none; margin: 0 0 8px; padding: 0; }
.passageiros .lista-pax li { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px dotted var(--linha); flex-wrap: wrap; }
.passageiros .pax-nome { flex: 1 1 260px; min-width: 0; }
.passageiros .pax-chips .chip { margin-right: 2px; }
.passageiros .pax-form { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px; margin: 6px 0 10px; background: var(--superficie-2); display: grid; gap: 10px; }
.passageiros .pax-form .campos { margin: 0; }
.passageiros .pax-trechos { display: flex; gap: 6px 16px; flex-wrap: wrap; align-items: center; }
.passageiros .pax-form .rodape-form { margin: 0; }
.passageiros .pax-form [hidden] { display: none !important; }
.doc-monitorar { color: var(--atencao); background: var(--atencao-suave); }
tr.linha-monitorar td:first-child { box-shadow: inset 3px 0 0 var(--atencao); }
#s-trechos.com-alternativa .linha-trecho { grid-template-columns: 24px repeat(5, minmax(0, 1fr)) minmax(90px, auto) 32px; }
.checklist-329 { display: grid; grid-template-columns: 1fr; gap: 8px; }
.checklist-329 .checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
@media (max-width: 760px) { .checklist-329 .checklist { grid-template-columns: 1fr; } }
.campos-fixo-4 > .largo-2 { grid-column: span 2; }
.campos-topo { align-items: start; }
.campos-topo > label > input + input, .campos-topo > label > select + input { margin-top: 6px; }
.checklist-329 .check { display: flex; gap: 8px; align-items: flex-start; }
.checklist-329 .check input { flex: 0 0 auto; margin-top: 3px; }
.como-instalar ol { margin: 8px 0 12px; padding-left: 20px; display: grid; gap: 8px; }
.segmentado .contagem { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px; border-radius: 9px; background: var(--linha); font-size: 11.5px; line-height: 18px; text-align: center; }
.segmentado .ativo .contagem { background: rgba(255,255,255,.25); }
.lista-aog li { padding: 6px 0; } .lista-aog .check { align-items: flex-start; } .lista-aog .check input { margin-top: 3px; }
.aceite-termos { align-items: flex-start; font-size: 13.5px; }
.aceite-termos input { margin-top: 3px; flex: 0 0 auto; }
.links-legais a { color: inherit; }

/* Versão nova publicada */
.barra-versao { position: fixed; z-index: 70; left: 50%; top: calc(10px + env(safe-area-inset-top, 0px)); transform: translateX(-50%);
  display: flex; align-items: center; gap: 12px; padding: 8px 10px 8px 14px; border-radius: 10px; background: var(--superficie); color: var(--tinta);
  border: 1px solid var(--linha-forte); box-shadow: var(--sombra); font-size: .92rem; max-width: calc(100vw - 32px); }
.barra-versao .btn { white-space: nowrap; }
[data-resto][hidden] { display: none !important; }
.linha-mais td { text-align: center; padding: 8px; }
.link-anac { margin: 8px 0 0; font-size: .86rem; }
.link-anac a { color: var(--azul); }
/* Assinatura da aeronave */
.faixa-assinatura { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; justify-content: space-between; margin: 12px max(16px, calc((100% - 1248px) / 2)) 0; padding: 10px 14px;
  border-radius: 10px; font-size: .92rem; background: var(--azul-suave); color: var(--tinta); border: 1px solid var(--linha); }
.faixa-assinatura a { color: var(--azul); font-weight: 600; }
.faixa-assinatura.assinatura-vencendo { background: var(--atencao-suave); }
.faixa-assinatura.assinatura-vencida { background: var(--critico-suave); border-color: var(--critico); }
.chip-assinatura-vencida { background: var(--critico-suave); color: var(--critico); }
.chip-assinatura-teste, .chip-assinatura-vencendo { background: var(--atencao-suave); color: var(--atencao); }
.campo-acoes { display: flex; flex-direction: column; gap: 6px; }
.campo-acoes .acoes-celula { display: flex; gap: 8px; height: 36px; align-items: stretch; }
.campo-acoes .acoes-celula .btn { min-height: 0; padding-top: 0; padding-bottom: 0; }
.campo-acoes .acoes-celula .btn { flex: 1; }

/* Solicitar voo no celular: cada trecho em linhas (data e partida lado a lado; origem, destino e alternativa com a largura toda) */
@media (max-width: 620px) {
  .linha-trecho, #s-trechos.com-alternativa .linha-trecho {
    grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "num data partida" ". origem origem" ". destino destino" ". altn altn" ". tempo remover";
    row-gap: 10px; padding: 10px 0;
  }
  .linha-trecho .num-trecho { grid-area: num; }
  .linha-trecho .c-data { grid-area: data; }
  .linha-trecho .c-partida { grid-area: partida; }
  .linha-trecho .c-origem { grid-area: origem; }
  .linha-trecho .c-destino { grid-area: destino; }
  .linha-trecho .c-altn { grid-area: altn; }
  .linha-trecho .tempo-previsto { grid-area: tempo; grid-column: auto; margin-top: 0; }
  .linha-trecho .btn-icone { grid-area: remover; justify-self: end; margin-top: 0; }
}
@media (max-width: 620px) {
  .sugestoes { width: 100%; min-width: 0; }
  .sug-item { grid-template-columns: 50px minmax(0, 1fr); }
  .sug-item > :nth-child(3) { grid-column: 2; }
}
.campos-fixo-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 480px) { .campos-fixo-2 { grid-template-columns: 1fr; } }
.segmentado [data-s="solicitada"] .contagem { background: var(--pendente-borda); color: #3a2c00; }
/* Excluir conta / aeronave: discreto e fechado; o aviso vermelho só aparece ao abrir */
.zona-discreta { margin-top: 28px; }
.zona-discreta > summary { cursor: pointer; color: var(--critico); font-size: 13px; list-style: none; display: inline-block; padding: 4px 0; }
.zona-discreta > summary::-webkit-details-marker { display: none; }
.zona-discreta > summary:hover { text-decoration: underline; }
.zona-discreta[open] > summary { color: var(--critico); }
.zona-discreta > .zona-perigo { margin-top: 8px; }
