/* Área do Aluno · cores e fontes do design system Paloma B. Borba */
:root {
  --navy-950: #0a2046;
  --navy-900: #0f2b5b;
  --navy-700: #173979;
  --royal-600: #1e54b0;
  --gold-500: #e8b84b;
  --gold-200: #f1d58a;
  --gold-700: #a97b14;
  --cream-100: #fff4d8;
  --surface: #ffffff;
  --surface-tint: #f3f6fc;
  --surface-blue: #e8eefa;
  --border: #cfd9ee;
  --ink: #1d2b45;
  --ink-soft: #2a3350;
  --ink-muted: #5a6a8a;
  --on-navy: #ffffff;
  --on-navy-soft: #e7eefb;
  --on-navy-muted: #aab6d2;
  --ok: #1e7a4f;
  --danger: #c0392b;
  --serif: 'Lora', Georgia, 'Times New Roman', serif;
  --sans: 'Poppins', 'Helvetica Neue', Arial, sans-serif;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 14px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--surface-tint); font-size: 15px; line-height: 1.6; }
img { max-width: 100%; }
a { color: var(--royal-600); }
a:hover { color: var(--navy-900); }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; color: var(--navy-900); line-height: 1.25; margin: 0; }
h1 { font-size: 2rem; }
h2 { font-size: 1.45rem; }
h3 { font-size: 1.15rem; }
p { margin: 0; }
.ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 2px; }

/* Faixa de topo da marca */
.faixa { height: 5px; background: linear-gradient(90deg, var(--navy-900), var(--royal-600) 60%, var(--gold-500)); }

/* Botões e campos */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid transparent; font: 600 14px var(--sans); cursor: pointer; text-decoration: none; }
.btn-ouro { background: var(--gold-500); color: var(--navy-900); }
.btn-ouro:hover { background: #f0c45e; color: var(--navy-900); }
.btn-navy { background: var(--navy-900); color: var(--on-navy); }
.btn-navy:hover { background: var(--navy-700); color: var(--on-navy); }
.btn-linha { background: var(--surface); color: var(--navy-900); border-color: var(--border); }
.btn-linha:hover { border-color: var(--royal-600); }
.btn-perigo { background: var(--surface); color: var(--danger); border-color: #e7b8b2; }
.btn-peq { min-height: 36px; padding: 0 14px; font-size: 13px; }
.btn[disabled] { opacity: .6; cursor: wait; }

label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--navy-900); }
input, select, textarea { font: 400 15px var(--sans); color: var(--ink); padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); min-height: 44px; width: 100%; }
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--royal-600); outline: none; box-shadow: 0 0 0 3px rgba(30, 84, 176, .15); }
.form { display: grid; gap: 14px; }
.form-linha { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.dica-campo { font-weight: 400; font-size: 12px; color: var(--ink-muted); }

/* Login */
.login-pagina { min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 55%, var(--navy-700)); }
.login-centro { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px 16px; }
.login-cartao { width: 100%; max-width: 430px; background: var(--surface); border-radius: var(--radius-lg); padding: 36px 32px; display: grid; gap: 20px; box-shadow: 0 20px 50px rgba(5, 15, 35, .35); }
.login-cartao .selo { width: 64px; height: 64px; margin: 0 auto; }
.login-cartao h1 { text-align: center; font-size: 1.6rem; }
.login-cartao .sub { text-align: center; color: var(--ink-muted); font-size: 14px; }
.filete { width: 48px; height: 2px; background: var(--gold-500); margin: 0 auto; }
.aviso { padding: 12px 14px; border-radius: var(--radius-sm); font-size: 14px; }
.aviso.ok { background: #e6f4ec; color: #14532d; }
.aviso.erro { background: #fbeceb; color: #8a2419; }
.login-rodape { text-align: center; color: var(--on-navy-muted); font-size: 12px; padding: 20px; }

/* Estrutura do portal */
.portal { display: flex; min-height: 100vh; }
.lateral { width: 264px; flex: none; background: linear-gradient(180deg, var(--navy-950), var(--navy-900)); color: var(--on-navy); display: flex; flex-direction: column; gap: 24px; padding: 24px 16px; position: sticky; top: 0; height: 100vh; }
.lateral .logo { padding: 0 8px; }
.lateral .logo img { height: 44px; width: auto; }
.lateral nav { display: flex; flex-direction: column; gap: 4px; }
.lateral nav a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: var(--radius-sm); color: var(--on-navy-soft); text-decoration: none; font-size: 14px; font-weight: 500; }
.lateral nav a:hover { background: rgba(255, 255, 255, .07); color: var(--on-navy); }
.lateral nav a[aria-current="page"] { background: rgba(232, 184, 75, .14); color: var(--gold-500); }
.lateral .usuario { margin-top: auto; padding: 14px 12px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 13px; color: var(--on-navy-muted); display: grid; gap: 8px; }
.lateral .usuario strong { color: var(--on-navy); font-weight: 600; font-size: 14px; }
.lateral .usuario .cargo { color: var(--gold-500); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lateral .sair { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; color: var(--on-navy-muted); font: 500 13px var(--sans); cursor: pointer; padding: 6px 0; min-height: 36px; }
.lateral .sair:hover { color: var(--on-navy); }

.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.conteudo { width: 100%; max-width: 1080px; margin: 0 auto; padding: 36px 32px 64px; display: grid; gap: 28px; align-content: start; }
.cabecalho { display: grid; gap: 8px; }
.cabecalho .olho { font-size: 11px; font-weight: 700; letter-spacing: .3em; color: var(--royal-600); text-transform: uppercase; }
.cabecalho .filete { margin: 6px 0 0; }
.cabecalho p { color: var(--ink-muted); max-width: 680px; }

@media (max-width: 860px) {
  .portal { flex-direction: column; }
  .lateral { width: 100%; height: auto; position: static; padding: 16px; gap: 14px; }
  .lateral nav { flex-direction: row; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .lateral nav a { white-space: nowrap; padding: 9px 12px; }
  .lateral .usuario { margin-top: 0; padding: 10px 4px 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .conteudo { padding: 24px 16px 48px; }
  h1 { font-size: 1.6rem; }
}

/* Blocos */
.cartao { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; display: grid; gap: 12px; }
.grade { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.grade-2 { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.abas { display: flex; flex-wrap: wrap; gap: 8px; }
.aba { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--navy-900); font: 500 13px var(--sans); cursor: pointer; }
.aba[aria-pressed="true"] { background: var(--navy-900); border-color: var(--navy-900); color: var(--on-navy); }

.etiqueta { display: inline-flex; align-self: start; justify-self: start; padding: 3px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; background: var(--surface-blue); color: var(--royal-600); }
.etiqueta.comum { background: var(--surface-tint); color: var(--navy-900); border: 1px solid var(--border); }
.etiqueta.museologo { background: var(--cream-100); color: var(--navy-900); border: 1px solid var(--gold-200); }
.etiqueta.registro { background: var(--surface-blue); color: var(--royal-600); }
.etiqueta.pendente { background: var(--cream-100); color: var(--navy-900); }
.etiqueta.respondida { background: #e6f4ec; color: #14532d; }

.material { display: grid; gap: 10px; align-content: start; }
.material .topo { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.material .meta { font-size: 12.5px; color: var(--ink-muted); }
.material .acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.material audio { width: 100%; }

.grupo { display: grid; gap: 14px; }
.grupo-titulo { display: flex; align-items: center; gap: 10px; }
.grupo-titulo::before { content: ''; width: 4px; height: 20px; background: var(--gold-500); border-radius: 2px; }

.vazio { background: var(--surface); border: 1px dashed var(--border); border-radius: var(--radius-lg); padding: 32px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--ink-muted); text-align: center; }
.vazio .ico { width: 28px; height: 28px; color: var(--royal-600); }

.destaque { background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 60%, var(--navy-700)); color: var(--on-navy); border-radius: var(--radius-lg); padding: 28px; display: grid; gap: 12px; }
.destaque h2, .destaque h3 { color: var(--on-navy); }
.destaque .olho { color: var(--gold-500); font-size: 11px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; }
.destaque p { color: var(--on-navy-soft); }

.numeros { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.numero { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 20px; display: grid; gap: 2px; }
.numero .valor { font-family: var(--serif); font-size: 2rem; color: var(--navy-900); line-height: 1.1; }
.numero .rotulo { font-size: 12.5px; color: var(--ink-muted); }

.tabela-box { overflow-x: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { background: var(--navy-900); color: var(--on-navy); text-align: left; font-weight: 600; padding: 11px 14px; white-space: nowrap; }
td { padding: 10px 14px; border-top: 1px solid var(--border); vertical-align: top; }
tbody tr:nth-child(even) td { background: var(--surface-tint); }
td.num, th.num { text-align: right; white-space: nowrap; }

.barras { display: grid; gap: 10px; }
.barra { display: grid; grid-template-columns: minmax(110px, 180px) 1fr auto; gap: 12px; align-items: center; font-size: 13.5px; }
.barra .trilho { height: 12px; background: var(--surface-blue); border-radius: 999px; overflow: hidden; }
.barra .cheio { height: 100%; background: var(--royal-600); border-radius: 999px; }
.barra .valor { font-weight: 600; color: var(--navy-900); white-space: nowrap; }

.lista-simples { display: grid; gap: 12px; }
.mensagem { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 18px 20px; display: grid; gap: 8px; }
.mensagem .quando { font-size: 12px; color: var(--ink-muted); }
.mensagem .resposta { background: var(--surface-blue); border-radius: var(--radius-sm); padding: 12px 14px; color: var(--ink-soft); white-space: pre-wrap; }
.pre { white-space: pre-wrap; }

.encontro { display: flex; gap: 16px; align-items: flex-start; }
.encontro .dia { flex: none; width: 64px; text-align: center; background: var(--navy-900); color: var(--on-navy); border-radius: var(--radius-md); padding: 8px 4px; border-top: 3px solid var(--gold-500); }
.encontro .dia strong { display: block; font-family: var(--serif); font-size: 1.6rem; color: var(--gold-500); line-height: 1.1; }
.encontro .dia span { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.encontro .info { display: grid; gap: 4px; min-width: 0; }

.video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius-md); overflow: hidden; background: var(--navy-950); }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; transition: .25s; background: var(--navy-900); color: var(--on-navy); padding: 12px 20px; border-radius: 999px; font-size: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); z-index: 50; max-width: calc(100% - 32px); pointer-events: none; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.erro { background: var(--danger); }

.carregando { color: var(--ink-muted); padding: 24px 0; }
.rodape { text-align: center; color: var(--ink-muted); font-size: 12px; padding: 24px 16px; border-top: 1px solid var(--gold-500); margin-top: auto; background: var(--surface); }

/* ---------- Texto rico ---------- */
.rico { display: grid; gap: 10px; }
.rico strong { color: var(--navy-900); }

/* ---------- Gráficos de desempenho ---------- */
.cartao-topo { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.legenda-texto { font-size: 13px; color: var(--ink-muted); }
.grafico { position: relative; }
.grafico svg { display: block; width: 100%; height: auto; font-family: var(--sans); touch-action: pan-y; }
.grafico-vazio { color: var(--ink-muted); }
.dica-grafico { position: absolute; left: 0; top: 0; pointer-events: none; opacity: 0; transition: opacity .12s; background: var(--navy-900); color: var(--on-navy); padding: 8px 12px; border-radius: var(--radius-sm); font-size: 12.5px; line-height: 1.45; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); white-space: nowrap; z-index: 5; }
.dica-grafico strong { color: var(--gold-500); font-weight: 600; }
.dica-grafico.show { opacity: 1; }
.legenda { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; color: var(--ink); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }
.legenda .marca { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.barras-ce { display: grid; gap: 12px; padding-top: 4px; }
.linha-ce { display: grid; grid-template-columns: minmax(110px, 200px) 1fr auto; gap: 12px; align-items: center; font-size: 13.5px; }
.nome-ce { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.area-ce { min-width: 0; }
.trilho-ce { display: flex; gap: 2px; height: 16px; }
.trilho-ce .seg { height: 100%; min-width: 3px; }
.trilho-ce .seg:first-child { border-radius: 4px 0 0 4px; }
.trilho-ce .seg:last-child { border-radius: 0 4px 4px 0; }
.trilho-ce .seg:only-child { border-radius: 4px; }
.valor-ce { font-weight: 600; color: var(--navy-900); white-space: nowrap; }
.valor-ce span { font-weight: 400; color: var(--ink-muted); }
@media (max-width: 560px) {
  .linha-ce { grid-template-columns: 1fr auto; }
  .linha-ce .area-ce { grid-column: 1 / -1; grid-row: 2; }
}

/* ---------- Aulas online ---------- */
.aula-online { display: grid; gap: 24px; max-width: 820px; }
.progresso-aula { position: sticky; top: 0; z-index: 4; background: var(--surface-tint); padding: 10px 0; display: grid; gap: 6px; font-size: 13px; color: var(--ink-muted); }
.progresso-aula .trilho { height: 8px; background: var(--surface-blue); border-radius: 999px; overflow: hidden; }
.progresso-aula .cheio { height: 100%; background: var(--royal-600); border-radius: 999px; transition: width .3s; }
.apoio { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px 24px; }
.questao { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; display: grid; gap: 16px; scroll-margin-top: 80px; }
.questao .cab-q { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: space-between; }
.questao .num-q { font-family: var(--serif); font-size: 1.05rem; color: var(--navy-900); }
.questao .origem { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--royal-600); }
.questao .enunciado { font-family: var(--serif); font-style: italic; font-size: 1.08rem; line-height: 1.65; color: var(--ink); border-left: 3px solid var(--gold-500); padding: 2px 0 2px 16px; }
.botoes-ce { display: flex; gap: 12px; flex-wrap: wrap; }
.botao-ce { min-width: 120px; min-height: 48px; padding: 0 20px; border-radius: var(--radius-sm); border: 2px solid var(--navy-900); background: var(--surface); color: var(--navy-900); font: 700 15px var(--sans); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.botao-ce .letra { font-family: var(--serif); font-size: 1.3rem; font-weight: 400; }
.botao-ce:hover:not([disabled]) { background: var(--surface-blue); }
.botao-ce[disabled] { cursor: default; opacity: .55; }
.botao-ce.escolhido { opacity: 1; background: var(--navy-900); color: var(--on-navy); }
.resultado { border-radius: var(--radius-md); padding: 16px 18px; display: grid; gap: 10px; }
.resultado.oculto { position: relative; background: var(--surface-tint); color: var(--ink-muted); border: 1px dashed var(--border); overflow: hidden; min-height: 92px; align-content: center; justify-items: center; text-align: center; }
.resultado.oculto .borrado { position: absolute; inset: 12px 16px; display: grid; gap: 8px; filter: blur(5px); opacity: .55; pointer-events: none; }
.resultado.oculto .borrado i { display: block; height: 10px; border-radius: 4px; background: var(--ink-muted); }
.resultado.oculto .aviso-oculto { position: relative; font-size: 13.5px; font-weight: 500; color: var(--navy-900); display: inline-flex; gap: 8px; align-items: center; }
.resultado.certo { background: #e6f4ec; border: 1px solid #b7dfc8; }
.resultado.errado { background: #fbeceb; border: 1px solid #efc3be; }
.resultado .veredito { display: flex; gap: 10px; align-items: center; font-weight: 700; font-size: 15px; }
.resultado.certo .veredito { color: #14532d; }
.resultado.errado .veredito { color: #8a2419; }
.resultado .veredito .ico { width: 22px; height: 22px; stroke-width: 2.4; }
.resultado .gab { font-size: 13.5px; color: var(--ink-soft); }
.resultado .comentario { border-top: 1px solid rgba(15, 43, 91, .12); padding-top: 10px; color: var(--ink-soft); }
.resultado .comentario-titulo { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--navy-900); margin-bottom: 4px; }
.fim-aula { text-align: center; }
.lista-aulas .cartao { cursor: default; }
.lista-aulas .progresso-mini { font-size: 12.5px; color: var(--ink-muted); }
.lista-aulas .barra-mini { height: 6px; background: var(--surface-blue); border-radius: 999px; overflow: hidden; }
.lista-aulas .barra-mini i { display: block; height: 100%; background: var(--royal-600); }
.questao .resposta { background: var(--surface-blue); border-radius: var(--radius-sm); padding: 12px 14px; color: var(--ink-soft); }
.codigo-input { font: 600 1.6rem var(--sans); letter-spacing: .5em; text-align: center; padding-left: .5em; }
.link-btn { background: none; border: 0; color: var(--royal-600); font: 500 13px var(--sans); cursor: pointer; text-decoration: underline; padding: 8px; min-height: 36px; }
[hidden] { display: none !important; }
.conteudo:focus { outline: none; }
.alternativas { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.alternativas li { display: grid; grid-template-columns: 26px 1fr; gap: 8px; align-items: baseline; font-size: 15px; line-height: 1.55; }
.alternativas li b { color: var(--royal-600); font-family: var(--serif); font-size: 1.05rem; }
.botao-me { min-width: 56px; padding: 0 12px; }

/* ---------- Desempenho: escolha da disciplina ---------- */
.nome-botao { background: none; border: 0; padding: 6px 0; min-height: 36px; text-align: left; font: inherit; color: var(--royal-600); cursor: pointer; text-decoration: underline; text-decoration-color: var(--border); text-underline-offset: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nome-botao:hover, .nome-botao[aria-pressed="true"] { color: var(--navy-900); text-decoration-color: var(--gold-500); font-weight: 600; }
.linha-ce.escolhida { background: var(--surface-tint); border-radius: var(--radius-sm); box-shadow: 0 0 0 6px var(--surface-tint); }
.temas-painel { border-top: 1px solid var(--border); padding-top: 16px; display: grid; gap: 12px; }
.quadro-total td { font-weight: 700; color: var(--navy-900); background: var(--cream-100) !important; }
.fonte-dado { font-size: 12px; color: var(--ink-muted); }
.seletor-materia { min-height: 36px; padding: 4px 10px; width: auto; max-width: 260px; font-size: 13px; }

/* ---------- Aula online: barra e impressão ---------- */
.barra-aula { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.so-imprimir { display: none; }
@media print {
  @page { size: A4; margin: 14mm 14mm 16mm; }
  body { background: #fff !important; font-size: 11.5pt; }
  .lateral, .rodape, .nao-imprimir, .aviso-previa, .progresso-aula, .botoes-ce, #toast, .fim-aula .btn { display: none !important; }
  .portal, .principal { display: block !important; }
  .conteudo { max-width: none !important; padding: 0 !important; gap: 14px !important; }
  .faixa { height: 4px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .so-imprimir { display: flex !important; }
  .cabecalho-impressao { justify-content: space-between; align-items: center; border-bottom: 1px solid #e8b84b; padding-bottom: 8px; font-size: 9pt; color: #5a6a8a; }
  .cabecalho-impressao img { height: 34px; }
  .conteudo, .aula-online, .aula-online > div, .questao, .apoio, .rico, .resultado { display: block !important; }
  .aula-online > div { margin-bottom: 16px; }
  .questao > *, .apoio > *, .rico > *, .resultado > * { margin-bottom: 8px; }
  .conteudo > * { margin-bottom: 12px; }
  .alternativas { display: block !important; }
  .alternativas li { display: grid !important; margin-bottom: 4px; }
  .alternativas li, .cab-q, .botoes-ce, .resultado .veredito, .resultado .gab { break-inside: avoid; page-break-inside: avoid; }
  .cab-q { break-after: avoid; page-break-after: avoid; }
  .questao, .apoio { box-shadow: none !important; }
  .resultado.oculto .borrado { display: none; }
  .resultado.oculto { min-height: 0; padding: 8px 12px; border-style: dashed; }
  .resultado.oculto .aviso-oculto::after { content: " (questão ainda não respondida)"; font-weight: 400; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.sem-borda > .cartao { border: 0; padding: 0; box-shadow: none; }
@media print {
  .aula-online > .progresso-aula, .progresso-aula { display: none !important; }
}

/* ---------- Revisões: cartas que viram ---------- */
.carta { perspective: 1600px; max-width: 820px; width: 100%; }
.carta-interna { display: grid; transition: transform .6s cubic-bezier(.2,.7,.2,1); transform-style: preserve-3d; }
.carta .face { grid-area: 1 / 1; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; display: grid; gap: 14px; align-content: start; box-shadow: 0 6px 18px rgba(15, 43, 91, .08); }
.carta .frente { border-top: 4px solid var(--gold-500); }
.carta .verso { transform: rotateY(180deg); border-top: 4px solid var(--royal-600); }
.carta.virada .carta-interna { transform: rotateY(180deg); }
.carta .verso .resultado { margin: 0; }
.carta .veredito { margin: 0; font-family: var(--sans); font-size: 15px; }
.carta-topo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.carta .origem { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--royal-600); }
.carta .enunciado { font-family: var(--serif); font-style: italic; font-size: 1.08rem; line-height: 1.65; border-left: 3px solid var(--gold-500); padding: 2px 0 2px 16px; }
.apoio-carta { background: var(--surface-tint); border-radius: var(--radius-sm); padding: 12px 14px; font-size: 14px; }
details.apoio-carta summary { cursor: pointer; font-weight: 600; color: var(--royal-600); min-height: 32px; display: flex; align-items: center; }
details.apoio-carta[open] summary { margin-bottom: 8px; }
.acoes-verso { display: flex; gap: 10px; flex-wrap: wrap; justify-content: space-between; }
.status-revisao { display: flex; gap: 8px; align-items: center; font-size: 13.5px; font-weight: 600; color: var(--navy-900); background: var(--surface-blue); border-radius: var(--radius-sm); padding: 8px 12px; }
.status-revisao.ok { background: #e6f4ec; color: #14532d; }
.resumo-revisao { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-bottom: 12px; }
.palco-cartas { display: grid; justify-items: center; padding-top: 8px; scroll-margin-top: 90px; }
.lista-cartas { display: grid; gap: 22px; justify-items: center; }
.cabeca-fixacao { position: sticky; top: 0; z-index: 4; background: var(--surface-tint); padding: 10px 0 12px; display: grid; gap: 4px; margin-bottom: 8px; }
.placar-fixacao { display: flex; flex-wrap: wrap; gap: 18px; font-size: 14px; color: var(--ink-muted); }
.placar-fixacao strong { color: var(--navy-900); font-size: 1.05rem; }
.sentinela { min-height: 60px; display: grid; justify-items: center; }
@media (prefers-reduced-motion: reduce) { .carta-interna { transition: none; } }

/* ---------- Painel principal ---------- */
.marca-linha { display: inline-block; width: 22px; height: 0; vertical-align: middle; }
.painel-numeros { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.numero.sequencia { background: linear-gradient(160deg, var(--navy-950), var(--navy-900)); border-color: transparent; }
.numero.sequencia .valor { color: var(--gold-500); display: flex; align-items: center; gap: 8px; }
.numero.sequencia .valor .ico { width: 26px; height: 26px; stroke: var(--gold-500); }
.numero.sequencia .rotulo { color: var(--on-navy-soft); }
.numero .detalhe { font-size: 12px; color: var(--ink-muted); margin-top: 4px; }
.numero.sequencia .detalhe { color: var(--on-navy-muted); }
.ritmo { display: grid; gap: 14px; }
.ritmo .veredito-ritmo { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--radius-md); font-size: 15px; line-height: 1.5; }
.ritmo .veredito-ritmo .ico { width: 24px; height: 24px; margin-top: 1px; }
.ritmo .veredito-ritmo.ok { background: #e6f4ec; color: #14532d; }
.ritmo .veredito-ritmo.alerta { background: #fbeceb; color: #8a2419; }
.ritmo .veredito-ritmo.neutro { background: var(--surface-blue); color: var(--navy-900); }
.ritmo dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 20px; }
.ritmo dt { font-size: 12px; color: var(--ink-muted); }
.ritmo dd { margin: 2px 0 0; font-weight: 600; color: var(--navy-900); font-variant-numeric: tabular-nums; }
.proximo-passo { background: linear-gradient(160deg, var(--navy-950), var(--navy-900) 60%, var(--navy-700)); color: var(--on-navy); border-radius: var(--radius-lg); padding: 26px 28px; display: grid; gap: 10px; }
.proximo-passo .olho { color: var(--gold-500); font-size: 11px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; }
.proximo-passo h2 { color: var(--on-navy); font-size: 1.6rem; }
.proximo-passo .meta { color: var(--on-navy-soft); font-size: 14px; }
.proximo-passo .trilho { height: 8px; background: rgba(255,255,255,.15); border-radius: 999px; overflow: hidden; max-width: 420px; }
.proximo-passo .cheio { height: 100%; background: var(--gold-500); }
.trilha-ciclo { display: flex; flex-wrap: wrap; gap: 8px; }
.trilha-ciclo a, .trilha-ciclo span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600; text-decoration: none; border: 1px solid var(--border); background: var(--surface); color: var(--navy-900); }
.trilha-ciclo .feito { background: #e6f4ec; border-color: #b7dfc8; color: #14532d; }
.trilha-ciclo .atual { background: var(--gold-500); border-color: var(--gold-500); color: var(--navy-900); }
.trilha-ciclo .ico { width: 14px; height: 14px; }
.filtros-aulas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* chave "Ritmo até a prova" no painel da mentora */
.chave-ritmo { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 13.5px; white-space: nowrap; }
.chave-ritmo input { width: 18px; height: 18px; accent-color: var(--navy-900, #0f2b5b); margin: 0; }

/* ---------- listas e tabelas no texto rico ---------- */
.rico ul { margin: 0; padding-left: 1.25em; display: grid; gap: 4px; }
.rico li::marker { color: var(--gold-700); }
.tabela-rica { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.tabela-rica table { border-collapse: collapse; width: 100%; font-size: 14px; line-height: 1.45; }
@media (max-width: 640px) { .tabela-rica table { min-width: 560px; font-size: 13.5px; } }
.tabela-rica th, .tabela-rica td { padding: 8px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
.tabela-rica th { background: var(--surface-blue); color: var(--navy-900); font-weight: 700; font-size: 13px; }
.tabela-rica tr:last-child td { border-bottom: 0; }

/* ---------- teoria depois da resposta ---------- */
section.teoria { margin-top: 4px; background: var(--surface-tint); border: 1px solid var(--border); border-left: 4px solid var(--gold-500); border-radius: var(--radius-md); padding: 14px 18px 16px; color: var(--ink); }
.teoria-titulo { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-700); margin-bottom: 8px; }
.teoria-titulo .ico { width: 16px; height: 16px; }
details.teoria { border-top: 1px solid rgba(15, 43, 91, .12); padding-top: 10px; }
details.teoria > summary { cursor: pointer; font-weight: 700; color: var(--royal-600); font-size: 14px; min-height: 32px; display: flex; align-items: center; }
details.teoria[open] > summary { margin-bottom: 8px; }
@media print {
  section.teoria { background: none; break-inside: auto; }
  .tabela-rica { overflow: visible; }
  .tabela-rica tr { break-inside: avoid; }
}

/* figuras e caixinhas no texto rico */
.figura-rica { margin: 4px 0; }
.figura-rica img { display: block; max-width: 100%; height: auto; border-radius: var(--radius-md); border: 1px solid var(--border); background: #fff; }
.rico li.item-caixinha { list-style: none; margin-left: -1.25em; }
.caixinha { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.caixinha input { width: 18px; height: 18px; margin-top: 3px; flex: none; accent-color: var(--navy-900, #0f2b5b); }
@media print { .figura-rica img { max-height: 60vh; break-inside: avoid; } }

/* aula no formato apostila */
.passo-apostila { padding-bottom: 8px; border-bottom: 1px dashed var(--border); }
.questao-volta { display: grid; gap: 12px; padding: 18px 20px; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); border-top: 3px solid var(--gold-500); }
.questao-volta .volta-titulo { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--navy-900); }
.questao-volta .enunciado { margin: 0; }
.aguarda-resposta { display: flex; gap: 8px; align-items: center; font-size: 14px; color: var(--ink-muted); padding: 10px 12px; border: 1px dashed var(--border); border-radius: 10px; }
.aguarda-resposta svg { flex: none; width: 16px; height: 16px; }
section.teoria.teoria-aberta { background: var(--surface); border-left-color: var(--royal-600); }
section.teoria.teoria-aberta .teoria-titulo { color: var(--royal-600); }
.cap-apostila { font-family: var(--serif); color: var(--navy-900); font-size: 1.35rem; margin: 18px 0 0; padding-bottom: 6px; border-bottom: 2px solid var(--gold-500); text-wrap: balance; }

/* botão "Aula em PDF" em destaque */
.btn-pdf { min-height: 44px; padding: 0 20px; font-size: 15px; font-weight: 700; box-shadow: 0 2px 8px rgba(11, 31, 75, .18); }
.btn-pdf .ico { width: 20px; height: 20px; }
@media (max-width: 640px) { .barra-aula .btn-pdf { width: 100%; justify-content: center; } }

/* ---------- aula no formato da apostila (roteiro) ---------- */
.baixar-pdf { display: grid; justify-items: start; gap: 10px; }
.baixar-pdf p { margin: 0; font-weight: 600; color: var(--navy-900); }
.conteudo-aula { display: grid; gap: 0; }
.rico .titulo-parte { margin: 26px 0 4px; padding: 14px 18px; border-radius: 12px; background: var(--navy-900); color: #fff; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }
.rico .cap-apostila { scroll-margin-top: 80px; }
.rico .sec-apostila { font-family: var(--serif); font-weight: 500; color: var(--navy-900); font-size: 1.12rem; margin: 18px 0 6px; }
.rico .sub-apostila { font-size: 13px; font-weight: 700; color: var(--royal-600); margin: 16px 0 6px; letter-spacing: .02em; }
.caixa { margin: 12px 0; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); }
.caixa > p:last-child, .caixa > ul:last-child { margin-bottom: 0; }
.caixa > p:first-of-type { margin-top: 0; }
.caixa-titulo { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; color: var(--navy-900); }
.caixa-titulo .ico { width: 16px; height: 16px; flex: none; }
.caixa-pegadinha { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.caixa-pegadinha .caixa-titulo { color: var(--gold-500); }
.caixa-pegadinha strong { color: #f6cc61; }
.caixa-quente { background: #fdf6e3; border-color: #ecd9a4; border-left: 4px solid var(--gold-500); }
.caixa-quente .caixa-titulo { color: #a87a14; }
.caixa-estrategia { background: #fff; border: 1.5px solid var(--royal-600); }
.caixa-estrategia .caixa-titulo, .caixa-macete .caixa-titulo, .caixa-revisao .caixa-titulo { color: var(--royal-600); }
.caixa-macete { background: #fff; border-left: 4px solid var(--royal-600); }
.caixa-revisao { background: #e8eefa; border-color: #d3ddf3; }
.caixa-lei { background: #f3f6fc; border-color: #dfe6f4; border-left: 3px solid var(--navy-900); font-size: .95em; }
.caixa-lei .caixa-titulo { font-size: 10.5px; }
.caixa-novidade, .caixa-retomada { background: #fff; border-left: 4px solid #2f8f5b; }
.caixa-novidade .caixa-titulo, .caixa-retomada .caixa-titulo { color: #2f8f5b; }
.caixa-atencao { background: #fdecea; border-color: #f3c5bf; }
.sumario-aula { margin: 16px 0; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--border); background: var(--surface); }
.sumario-titulo { font-family: var(--serif); font-size: 1.2rem; color: var(--navy-900); margin-bottom: 8px; }
.sumario-aula ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.sumario-aula a { display: flex; gap: 10px; align-items: baseline; padding: 6px 8px; border-radius: 8px; text-decoration: none; color: var(--navy-900); }
.sumario-aula a:hover { background: #eef2fb; }
.sumario-aula .num { flex: none; width: 24px; height: 24px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--royal-600); color: #fff; font-size: 12px; font-weight: 700; }
.passo-questao { margin: 14px 0; }
.questao-volta { margin: 14px 0; }
.volta-releia { font-size: 13px; font-weight: 700; color: var(--royal-600); }
.conteudo-aula > p, .conteudo-aula > ul, .caixa > p, .caixa > ul { margin: 0 0 10px; }
.conteudo-aula > .tabela-rica, .conteudo-aula > .figura-rica { margin: 6px 0 14px; }
.conteudo-aula > ul li + li { margin-top: 4px; }

/* login: manter conectado */
.login-cartao label.manter-conectado { display: grid !important; grid-template-columns: auto 1fr; align-items: center; justify-items: start; gap: 10px; font-size: 14px; font-weight: 500; text-align: left; cursor: pointer; }
.login-cartao .manter-conectado input { width: 20px !important; min-height: 0 !important; height: 20px; padding: 0; margin: 0; accent-color: var(--navy-900, #0f2b5b); }
.rico ol.lista-numerada { margin: 0 0 10px; padding-left: 1.5em; display: grid; gap: 6px; }
.rico ol.lista-numerada li::marker { color: var(--royal-600); font-weight: 700; }

/* ---------- Seu mapa do edital ---------- */
.mapa-edital { border: 1.5px solid var(--navy-900); border-radius: 10px; overflow: hidden; background: #fff; }
.mapa-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; background: var(--navy-900); color: #fff; padding: 9px 16px; }
.mapa-h h2 { margin: 0; font-family: var(--serif); font-weight: 600; font-size: 16px; color: #fff; }
.mapa-h span { font-size: 11px; color: #f5cd62; letter-spacing: .06em; }
.mapa-b { padding: 12px 16px; display: grid; gap: 9px; }
.mapa-cols { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 18px; font-size: 13px; }
.mapa-cols li { display: grid; grid-template-columns: 2em 1fr; align-items: baseline; break-inside: avoid; padding: 1px 0; }
.mapa-cols b { font-weight: 600; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.mapa-sub { font-size: 12.5px; padding: 6px 10px; background: #f3f6fc; border-radius: 6px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.mapa-sub em { font-style: normal; color: var(--ink-muted); }
.mapa-now { background: #d6f5df; color: #0f5c33; font-weight: 600; border-radius: 3px; padding: 0 5px; box-shadow: inset 3px 0 0 #1e9a56; }
.mapa-done { color: #c0392b; text-decoration: line-through; }
.mapa-leg { display: flex; flex-wrap: wrap; gap: 3px 16px; font-size: 11.5px; color: var(--ink-muted); border-top: 1px solid var(--border); padding-top: 7px; }
@media (max-width: 720px) { .mapa-cols { columns: 2; } }
@media (max-width: 420px) { .mapa-cols { columns: 1; } }

/* ---------- Exercício Consciente (cartões) ---------- */
.painel-banco { display: grid; gap: 16px; }
.acoes-banco { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.acoes-banco select { max-width: 280px; }
.grupo-tema { display: grid; gap: 10px; }
.grupo-tema-cab h3 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 1.15rem; color: var(--navy-900); }
.grupo-tema-cab h3 span { font-family: var(--sans); font-size: 13px; color: var(--ink-muted); }
.grupo-tema-cab p { margin: 2px 0 0; font-size: 13px; color: var(--ink-muted); }
.chips-tema { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.chip-tema { text-align: left; display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); border-left-width: 4px; background: var(--surface); cursor: pointer; font: inherit; color: var(--ink); }
.chip-tema:hover { background: #f3f6fc; }
.chip-tema strong { color: var(--navy-900); font-size: 14.5px; }
.chip-tema span { font-size: 12.5px; color: var(--ink-muted); }
.tema-foco .chip-tema { border-left-color: #c0392b; }
.tema-progresso .chip-tema { border-left-color: var(--gold-500); }
.tema-novo .chip-tema { border-left-color: var(--royal-600); }
.tema-assimilado .chip-tema { border-left-color: #1e9a56; }
.tema-foco .grupo-tema-cab h3 { color: #a5281b; }
.tema-assimilado .grupo-tema-cab h3 { color: #0f5c33; }
.flashcard { display: grid; gap: 14px; padding: 22px; border-radius: 16px; background: var(--surface); border: 1px solid var(--border); box-shadow: 0 8px 24px rgba(15, 43, 91, .08); animation: entra-cartao .25s ease-out; }
.flashcard.virado .botoes-ce { opacity: .9; }
@keyframes entra-cartao { from { transform: translateY(8px) rotateX(6deg); opacity: 0; } to { transform: none; opacity: 1; } }
.cartao-verso { display: grid; gap: 12px; animation: vira-cartao .3s ease-out; }
@keyframes vira-cartao { from { transform: rotateX(-12deg); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .flashcard, .cartao-verso { animation: none; } }
.flash-topo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; align-items: center; }
.flash-tema { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--royal-600); }
.flash-sit { font-size: 11.5px; font-weight: 600; padding: 2px 10px; border-radius: 999px; background: #eef2fb; color: var(--navy-900); }
.flash-revisar { background: #fdf6e3; color: #8a6510; }
.flash-nova { background: #e8eefa; color: var(--royal-600); }
.flash-acoes { display: flex; justify-content: flex-end; }
.resumo-rodada { list-style: none; padding: 0; margin: 0 auto; display: grid; gap: 4px; text-align: left; width: fit-content; }
.rico pre.arvore { margin: 8px 0 14px; padding: 14px 16px; background: #f3f6fc; border: 1px solid var(--border); border-radius: 10px; overflow-x: auto; font: 12.5px/1.55 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; color: var(--navy-900); white-space: pre; }
.passo-questao.passo-seguinte { margin-top: -4px; }

/* ---------- nível de confiança (chute, com dúvida, certeza) ---------- */
.confianca { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding-top: 10px; border-top: 1px dashed var(--border); }
.conf-rotulo { font-size: 12px; color: var(--ink-muted); margin-right: 2px; }
.conf-btn { font: 600 12px var(--sans); padding: 4px 11px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--ink-muted); cursor: pointer; min-height: 28px; }
.conf-btn:hover { border-color: var(--navy-900); color: var(--navy-900); }
.conf-btn.ativo.conf-chute { background: #fdecea; border-color: #e3a49b; color: #a5281b; }
.conf-btn.ativo.conf-duvida { background: #fdf6e3; border-color: #e6c873; color: #8a6510; }
.conf-btn.ativo.conf-certeza { background: #e6f4ec; border-color: #8fcaa8; color: #0f5c33; }
.conf-cards { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.conf-card { display: grid; gap: 8px; padding: 16px; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); border-top: 4px solid var(--border); }
.conf-card-chute { border-top-color: #c0392b; }
.conf-card-duvida { border-top-color: var(--gold-500); }
.conf-card-certeza { border-top-color: #1e9a56; }
.conf-card-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.conf-card-topo strong { font-family: var(--serif); font-weight: 500; font-size: 1.15rem; color: var(--navy-900); }
.conf-card-topo span { font-size: 12px; color: var(--ink-muted); }
.conf-card p { margin: 0; font-size: 13px; color: var(--ink); }
.conf-barra { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: #eef2fb; }
.conf-barra i { display: block; height: 100%; }
.conf-ok { background: #1e9a56; }
.conf-no { background: #c0392b; }
.conf-pcts { display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; }
.conf-pcts .ok { color: #0f5c33; }
.conf-pcts .no { color: #a5281b; }
.lista-temas-conf { margin: 0; padding-left: 20px; display: grid; gap: 6px; }

/* texto-base que o aluno recolhe e expande */
details.apoio-recolhivel { padding-top: 10px; }
details.apoio-recolhivel > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font: 600 12.5px var(--sans); color: var(--royal-600); padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: #fff; margin-bottom: 10px; user-select: none; }
details.apoio-recolhivel > summary::-webkit-details-marker { display: none; }
details.apoio-recolhivel > summary::before { content: '\25BE'; font-size: 11px; transition: transform .15s; }
details.apoio-recolhivel:not([open]) > summary::before { transform: rotate(-90deg); }
details.apoio-recolhivel:not([open]) > summary { margin-bottom: 0; }
details.apoio-recolhivel[open] .rot-fechado, details.apoio-recolhivel:not([open]) .rot-aberto { display: none; }

/* ---------- Datas do concurso ---------- */
.crono { display: grid; gap: 12px; }
.crono h2 { margin: 0; }
.crono-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.crono-item { display: grid; grid-template-columns: 150px 1fr; gap: 4px 14px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--border); }
.crono-item:last-child { border-bottom: 0; }
.crono-data { font-weight: 700; color: var(--navy-900); font-variant-numeric: tabular-nums; font-size: 14px; }
.crono-item strong { color: var(--navy-900); }
.crono-destaque .crono-data { color: var(--royal-600); }
.crono-quando { font-size: 12.5px; font-weight: 600; color: #8a6510; }
.crono-detalhe { font-size: 13px; color: var(--ink-muted); margin-top: 2px; }
.crono-passou { opacity: .5; }
.crono-passou strong { text-decoration: line-through; }
.crono-todas > summary { cursor: pointer; font-weight: 600; color: var(--royal-600); font-size: 14px; }
.crono-todas[open] > summary { margin-bottom: 8px; }
@media (max-width: 560px) { .crono-item { grid-template-columns: 1fr; } }
.mapa-grupo { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--royal-600); margin-top: 2px; }

/* ---------- Fixação e Ciclo de Revisões (Q-cards e Revisão do dia) ---------- */
.resultado.duvida { background: #fdf6e3; border: 1px solid #e6c873; }
.resultado.duvida .veredito { color: #8a6510; }
.conf-dica { font-size: 12.5px; color: var(--ink-muted); }
.conf-dica[hidden] { display: none; }
.carta .confianca .conf-btn { min-height: 40px; padding: 6px 16px; font-size: 13px; }
.aviso-qcard { font-size: 12.5px; color: var(--royal-600); font-weight: 600; border-top: 1px dashed var(--border); padding-top: 8px; }
.dica-memoria { background: var(--cream-100, #fbf6e9); border-left: 3px solid var(--gold-500); border-radius: var(--radius-sm); padding: 10px 14px; }
.dica-memoria .comentario-titulo { display: inline-flex; gap: 6px; align-items: center; }
.meta-dia { position: static; }
.meta-batida { display: flex; gap: 10px; align-items: center; background: #e6f4ec; border: 1px solid #8fcaa8; color: #0f5c33; border-radius: var(--radius-md); padding: 10px 14px; font-size: 14px; }
.filtro-discreto { font-size: 12.5px; color: var(--ink-muted); justify-self: end; }
.filtro-discreto summary { cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 3px; min-height: 32px; display: inline-flex; align-items: center; }
.filtro-discreto summary::-webkit-details-marker { display: none; }
.filtro-campos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.filtro-campos select { font: inherit; padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); max-width: 100%; }
.explica-qcards p { margin: 0; }
.lista-revisoes { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.revisao-item .topo { display: flex; flex-wrap: wrap; gap: 8px; }
.revisao-item h3 { margin: 0; }
.revisao-item.atrasada { border-left: 4px solid #e3a49b; order: -1; }
.cab-revisao h2 { margin: 4px 0 0; }
.cab-revisao .olho { color: var(--gold-700); font-size: 11px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; }
.concluir-revisao { display: flex; justify-content: center; padding: 18px 0 8px; }
@media (max-width: 560px) {
  .carta .face { padding: 16px 14px; }
  .carta .botoes-ce .botao-ce { flex: 1; }
  .carta .confianca { flex-wrap: wrap; }
  .carta .confianca .conf-btn { flex: 1; }
  .acoes-verso { display: flex; flex-wrap: wrap; gap: 8px; }
  .acoes-verso .btn { flex: 1; }
}
.carta .etiqueta.incid { text-transform: none; }
.carta .etiqueta.incid-alta { background: #fde8e4; color: #9a2b16; border-color: #f2c3b8; }
.carta .etiqueta.incid-media { background: #fdf3dc; color: #7a5a06; border-color: #efdcaa; }
.carta .etiqueta.incid-baixa { background: #e9f1ea; color: #2f6337; border-color: #c7dccb; }
.carta .carta-topo .origem { text-transform: none; letter-spacing: 0; font-size: 12.5px; color: var(--ink-muted); }
.linha-opcoes { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 4px 16px; }
.linha-opcoes:empty { display: none; }
.modo-fixacao { justify-self: start; flex: 1 1 260px; }
.modo-fixacao[open] { flex-basis: 100%; }
.modo-fixacao summary strong { margin-left: 4px; color: var(--royal-600); }
.modo-corpo { display: grid; gap: 12px; margin-top: 8px; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); color: var(--ink); font-size: 14px; }
.modo-opcoes { display: grid; gap: 8px; }
.modo-corpo label { flex-direction: row; font-weight: 400; color: var(--ink); font-size: 14px; }
.modo-corpo input[type=radio], .modo-corpo input[type=checkbox] { width: 18px; height: 18px; min-height: 0; padding: 0; margin: 2px 0 0; flex: none; accent-color: var(--royal-600); }
.modo-opcao { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.modo-opcao input { margin-top: 4px; }
.modo-opcao span { display: grid; gap: 2px; }
.modo-opcao small { color: var(--ink-muted); font-size: 12.5px; }
.modo-assuntos { display: grid; gap: 6px; max-height: 420px; overflow: auto; border-top: 1px dashed var(--border); padding-top: 10px; }
.modo-assuntos[hidden] { display: none; }
.modo-disc summary { cursor: pointer; display: flex; gap: 8px; align-items: center; justify-content: space-between; font-weight: 700; min-height: 40px; }
.modo-disc summary small { font-weight: 400; color: var(--ink-muted); }
.modo-todos { font-weight: 600 !important; border-bottom: 1px dashed var(--border); padding-bottom: 6px; }
.modo-disc > div { display: grid; gap: 4px; padding: 4px 0 8px 24px; }
.modo-corpo .modo-assunto { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: start; font-size: 13.5px; cursor: pointer; }
.modo-assunto input { margin-top: 3px; }
.modo-assunto small { color: var(--ink-muted); font-variant-numeric: tabular-nums; }
