  :root{
    color-scheme: light;
    --paper:#F5F1E6;
    --paper-raise:#FBF9F2;
    --ink:#1D2B1F;
    --ink-soft:#51584C;
    --rule:#DCD2B9;
    --rule-strong:#C9BC9C;
    --accent:#1F6F5C;
    --accent-soft:#E3EEE7;
    --margin:#B33A3A;
    --sev-low:#B3261E;
    --sev-low-soft:#F7E3E1;
    --sev-mid:#B4740E;
    --sev-mid-soft:#F6EAD6;
    --sev-high:#2D6A4F;
    --sev-high-soft:#E3EEE7;
    --shadow: 0 1px 2px rgba(29,43,31,.06), 0 6px 20px rgba(29,43,31,.07);
  }
  :root[data-theme="dark"]{
    --paper:#121814;
    --paper-raise:#182019;
    --ink:#EAE5D6;
    --ink-soft:#AEB3A4;
    --rule:#28322A;
    --rule-strong:#374135;
    --accent:#6FBF9A;
    --accent-soft:#1C2B23;
    --margin:#E0796B;
    --sev-low:#FF6E60;
    --sev-low-soft:#3A1F1D;
    --sev-mid:#F0AC55;
    --sev-mid-soft:#3A2E18;
    --sev-high:#6FBF9A;
    --sev-high-soft:#1C2B23;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#121814;
      --paper-raise:#182019;
      --ink:#EAE5D6;
      --ink-soft:#AEB3A4;
      --rule:#28322A;
      --rule-strong:#374135;
      --accent:#6FBF9A;
      --accent-soft:#1C2B23;
      --margin:#E0796B;
      --sev-low:#FF6E60;
      --sev-low-soft:#3A1F1D;
      --sev-mid:#F0AC55;
      --sev-mid-soft:#3A2E18;
      --sev-high:#6FBF9A;
      --sev-high-soft:#1C2B23;
      --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
    }
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family: Georgia, "Iowan Old Style", "Palatino Linotype", serif;
    line-height:1.5;
  }
  .sans{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
  .mono{ font-family: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; }

  .wrap{ max-width:980px; margin:0 auto; padding:0 20px 64px; }

  .ribbon{
    background:var(--ink);
    color:var(--paper);
    text-align:center;
    padding:8px 16px;
    font-size:12.5px;
    letter-spacing:.04em;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  .ribbon b{ color:var(--accent); }

  header.capa{
    padding:40px 0 28px;
    border-bottom:3px solid var(--ink);
    margin-bottom:32px;
  }
  .capa-top{
    display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  }
  .capa-top h1{
    font-size:34px; margin:0 0 6px; text-wrap:balance; letter-spacing:-.01em;
  }
  .capa-top .meta{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:13.5px; color:var(--ink-soft);
  }
  .stat-row{
    display:flex; gap:28px; margin-top:22px; flex-wrap:wrap;
  }
  .stat{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  .stat .num{
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-variant-numeric: tabular-nums;
    font-size:26px; font-weight:600; color:var(--accent);
    display:block;
  }
  .stat .lbl{
    font-size:11.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft);
  }

  h2.secao{
    font-size:13px; text-transform:uppercase; letter-spacing:.08em;
    color:var(--ink-soft); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    margin:0 0 16px;
    display:flex; align-items:center; gap:10px;
  }
  h2.secao::after{ content:""; flex:1; height:1px; background:var(--rule-strong); }
  h2.secao-clicavel{ cursor:pointer; }
  h2.secao-clicavel:hover{ color:var(--accent); }

  .grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
    gap:16px;
    margin-bottom:44px;
  }

  .ficha{
    background:var(--paper-raise);
    border-radius:3px;
    box-shadow:var(--shadow);
    padding:18px 18px 16px 20px;
    position:relative;
    border-left:3px solid var(--margin);
    background-image: repeating-linear-gradient(
      to bottom, transparent, transparent 27px, var(--rule) 28px
    );
    background-position: 0 46px;
  }
  .ficha .top{
    display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:12px;
  }
  .ficha h3{
    margin:0; font-size:19px; letter-spacing:-.005em;
  }
  .ficha .n-fraco{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11px; color:var(--ink-soft); white-space:nowrap;
  }
  .topico{
    display:flex; align-items:center; justify-content:space-between;
    gap:10px;
    padding:6px 0;
  }
  .topico .nome{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:13.5px;
  }
  .topico .pill{
    font-family: ui-monospace, "SF Mono", Menlo, monospace;
    font-variant-numeric: tabular-nums;
    font-size:11.5px; font-weight:600;
    padding:2px 8px; border-radius:20px;
    white-space:nowrap;
  }
  .sev-low .pill{ background:var(--sev-low-soft); color:var(--sev-low); }
  .sev-mid .pill{ background:var(--sev-mid-soft); color:var(--sev-mid); }
  .sev-ok  .pill{ background:var(--sev-high-soft); color:var(--sev-high); }

  .ficha .rodape{
    margin-top:12px; padding-top:10px; border-top:1px dashed var(--rule-strong);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11.5px; color:var(--ink-soft);
  }

  .leitor{
    background:var(--paper-raise);
    border-radius:4px;
    box-shadow:var(--shadow);
    overflow:hidden;
    border:1px solid var(--rule-strong);
  }
  .leitor-topo{
    background:var(--accent);
    padding:16px 24px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  .leitor-topo, .leitor-topo h3{ color:#F7F4EC; }
  :root[data-theme="dark"] .leitor-topo,
  :root[data-theme="dark"] .leitor-topo h3{ color:#0C1712; }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .leitor-topo,
    :root:not([data-theme="light"]) .leitor-topo h3{ color:#0C1712; }
  }
  .leitor-trilha{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.85; }
  .leitor-topo h3{ margin:4px 0 0; font-size:21px; font-family:Georgia,serif; text-wrap:balance; }

  .leitor-corpo{ padding:8px 24px; }
  .leitor-secao{ padding:20px 0; border-bottom:1px dashed var(--rule-strong); }
  .leitor-secao:last-child{ border-bottom:none; }
  .leitor-secao h4{
    margin:0 0 8px; font-size:17px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  }
  .leitor-secao .resumo{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:14px; color:var(--ink-soft); margin:0 0 14px; max-width:62ch;
  }
  .chip-fraco{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
    background:var(--sev-low-soft); color:var(--sev-low);
    padding:2px 8px; border-radius:20px;
  }
  .fig-placeholder{
    border:1.5px dashed var(--rule-strong); border-radius:4px;
    padding:18px; text-align:center; background:var(--accent-soft);
    max-width:340px;
  }
  .fig-placeholder.sm{ max-width:none; padding:14px; }
  .fig-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; max-width:480px; }
  .fig-icone{ font-size:26px; margin-bottom:6px; }
  .fig-legenda{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11.5px; color:var(--ink-soft); font-style:italic;
  }
  .leitor-secao.destaque{ background:var(--accent-soft); margin:0 -24px; padding:20px 24px; }
  .diagrama-cadeia{
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    margin:16px 0 6px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  .elo{
    background:var(--paper-raise); border:1px solid var(--rule-strong); border-radius:8px;
    padding:10px 14px; text-align:center; font-size:24px; min-width:84px;
  }
  .elo span{ display:block; font-size:11px; margin-top:4px; color:var(--ink-soft); }
  .elo small{ display:block; font-size:9.5px; color:var(--accent); text-transform:uppercase; letter-spacing:.04em; margin-top:2px; }
  .lista-niveis{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:14px; color:var(--ink-soft); margin:0 0 14px; padding-left:20px; max-width:62ch;
  }
  .lista-niveis li{ margin-bottom:6px; }
  .lista-niveis b{ color:var(--ink); }
  .elo.produtor{ border-color:var(--sev-high); }
  .seta{ font-size:20px; color:var(--accent); }
  .seta-decomp{
    flex-basis:100%; font-size:12px; color:var(--ink-soft); margin-top:6px;
  }
  .creditos{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11px; color:var(--ink-soft); font-style:italic; margin-top:10px;
  }
  .citacao-livro{
    margin:0 0 14px; padding:12px 16px;
    border-left:3px solid var(--accent);
    background:var(--accent-soft);
    font-size:14.5px; font-style:italic;
    max-width:62ch;
  }
  .leitor-rodape{
    padding:14px 24px; border-top:1px dashed var(--rule-strong);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11.5px; color:var(--ink-soft);
    display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
  }
  .btn-real{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:12.5px; font-weight:600;
    color:var(--accent); text-decoration:none;
    border:1.5px solid var(--accent); border-radius:20px;
    padding:5px 14px; white-space:nowrap;
  }
  .btn-real:hover{ background:var(--accent-soft); }

  footer{
    margin-top:48px; padding-top:18px; border-top:1px solid var(--rule-strong);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:12px; color:var(--ink-soft);
  }

  .reta-numerica{
    position:relative; height:56px; margin:18px 0 22px; max-width:520px;
  }
  .reta-linha{
    position:absolute; left:0; right:0; top:18px; height:2px; background:var(--rule-strong);
  }
  .reta-linha::before, .reta-linha::after{
    content:""; position:absolute; top:-4px; width:0; height:0;
    border-top:5px solid transparent; border-bottom:5px solid transparent;
  }
  .reta-linha::after{ right:-1px; border-left:7px solid var(--rule-strong); }
  .reta-ponto{
    position:absolute; top:0; transform:translateX(-50%);
    font-family: ui-monospace, "SF Mono", Menlo, monospace; font-variant-numeric: tabular-nums;
    font-size:13px; font-weight:600; color:var(--ink-soft);
  }
  .reta-ponto::after{
    content:""; position:absolute; left:50%; top:22px; transform:translateX(-50%);
    width:8px; height:8px; border-radius:50%; background:var(--accent);
  }
  .reta-ponto.destaque-pt{ color:var(--accent); }
  .reta-ponto.destaque-pt::after{ width:10px; height:10px; background:var(--sev-low); }

  .exercicio{
    background:var(--paper-raise);
    border-radius:4px;
    box-shadow:var(--shadow);
    overflow:hidden;
    border:1px solid var(--rule-strong);
    margin-bottom:36px;
  }
  .exercicio .cabecalho{
    background:var(--accent);
    padding:14px 22px;
    display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color:#F7F4EC;
  }
  :root[data-theme="dark"] .exercicio .cabecalho{ color:#0C1712; }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .exercicio .cabecalho{ color:#0C1712; }
  }
  .exercicio .cabecalho .tag{
    font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.85;
  }
  .exercicio .cabecalho h3{ margin:2px 0 0; font-size:19px; font-family:Georgia,serif; color:inherit; }
  .exercicio .corpo{ padding:20px 22px; }
  .exercicio .questao{
    background:var(--accent-soft);
    border-radius:3px;
    padding:14px 16px;
    margin-bottom:10px;
    font-size:15px;
  }
  .exercicio .questao b{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:12px; color:var(--accent); display:block; margin-bottom:6px;
    letter-spacing:.03em; text-transform:uppercase;
  }
  .exercicio .rodape-ex{
    padding:14px 22px; border-top:1px dashed var(--rule-strong);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:12px; color:var(--ink-soft);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  }

  /* navegacao por materia/livro/capitulo */
  .nav-ajuda{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:13px; color:var(--ink-soft); margin:-8px 0 18px;
  }
  .nav-materias{ margin-bottom:44px; }
  .materia-acc{
    background:var(--paper-raise);
    border:1px solid var(--rule-strong);
    border-radius:4px;
    margin-bottom:8px;
  }
  .materia-acc summary{
    list-style:none;
    cursor:pointer;
    padding:14px 18px;
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }
  .materia-acc summary::-webkit-details-marker{ display:none; }
  .materia-acc summary::before{
    content:"▸"; color:var(--accent); font-size:13px; width:14px; flex:none;
  }
  .materia-acc[open] summary::before{ content:"▾"; }
  .materia-nome{ font-family:Georgia,serif; font-size:17px; }
  .badge-fraca{
    font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;
    background:var(--sev-mid-soft); color:var(--sev-mid);
    padding:2px 8px; border-radius:20px; white-space:nowrap;
  }
  .link-sae-materia{
    margin-left:auto; font-size:12px; color:var(--accent); text-decoration:none; white-space:nowrap;
  }
  .link-sae-materia:hover{ text-decoration:underline; }
  .materia-corpo{
    padding:4px 18px 16px 46px;
    display:flex; flex-wrap:wrap; gap:20px;
  }
  .livro-bloco h5{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft);
    margin:0 0 6px;
  }
  .lista-capitulos{
    list-style:none; margin:0; padding:0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:13.5px;
  }
  .lista-capitulos li{ padding:4px 0; display:flex; align-items:center; gap:8px; }
  .link-sae-cap{ font-size:11px; color:var(--ink-soft); text-decoration:none; white-space:nowrap; }
  .link-sae-cap:hover{ color:var(--accent); }
  .cap-pronto a{ color:var(--accent); font-weight:600; text-decoration:none; }
  .cap-pronto a:hover{ text-decoration:underline; }
  .tag-pronto{
    font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.03em;
    background:var(--sev-high-soft); color:var(--sev-high);
    padding:1px 7px; border-radius:20px; white-space:nowrap;
  }

  @media (max-width:520px){
    .capa-top h1{ font-size:27px; }
    .stat-row{ gap:20px; }
  }

.voltar-nav{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:13px; margin:20px 0 0;
}
.voltar-nav a{ color:var(--accent); text-decoration:none; }
.voltar-nav a:hover{ text-decoration:underline; }

.nota-espalhada{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:12.5px; color:var(--ink-soft);
  margin:0 18px 14px 46px;
  padding-top:10px; border-top:1px dashed var(--rule-strong);
}
.nota-espalhada a{ color:var(--accent); text-decoration:none; font-weight:600; }
.nota-espalhada a:hover{ text-decoration:underline; }

/* caixas didaticas no estilo do SAE (mesma funcao/rotulo, visual proprio) */
.box-saber{
  margin:16px 0; border-radius:6px; overflow:hidden;
  border:1px solid var(--rule-strong);
  background:var(--paper-raise);
}
.box-saber .box-rotulo{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em;
  padding:8px 14px; color:#fff;
}
.box-saber .box-corpo{ padding:14px 16px; font-size:14.5px; }
.box-saber.tipo-glossario .box-rotulo{ background:var(--accent); }
.box-saber.tipo-glossario .box-corpo dt{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight:700; font-size:13px; color:var(--accent); margin-top:8px;
}
.box-saber.tipo-glossario .box-corpo dt:first-child{ margin-top:0; }
.box-saber.tipo-glossario .box-corpo dd{ margin:2px 0 0; }
.box-saber.tipo-mais .box-rotulo{ background:var(--sev-mid); }
.box-saber.tipo-conversa .box-rotulo{ background:var(--margin); }

.citacao-fonte{
  border-left:3px solid var(--rule-strong);
  padding:10px 16px; margin:14px 0;
  font-size:14px; font-style:italic; color:var(--ink-soft);
  max-width:62ch;
}
.citacao-fonte .fonte{
  display:block; margin-top:6px; font-style:normal; font-size:11.5px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-transform:uppercase; letter-spacing:.04em;
}

.pagina-num{
  text-align:center; font-size:11px; color:var(--rule-strong);
  font-family: ui-monospace, monospace; margin:18px 0;
}

.figura-real{
  margin:16px 0; max-width:420px;
}
.figura-real img{
  max-width:100%; height:auto; border-radius:4px; border:1px solid var(--rule-strong);
  display:block;
}
.figura-real figcaption{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:11.5px; color:var(--ink-soft); margin-top:6px; line-height:1.4;
}

/* exercicios colapsaveis (SAE + fixacao) */
.exercicio-acc{
  background:var(--paper-raise);
  border:1px solid var(--rule-strong);
  border-radius:6px;
  margin-bottom:16px;
}
.exercicio-acc summary{
  list-style:none; cursor:pointer;
  padding:14px 18px;
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight:700; font-size:15px;
}
.exercicio-acc summary::-webkit-details-marker{ display:none; }
.exercicio-acc summary::before{ content:"▸"; color:var(--accent); font-size:13px; }
.exercicio-acc[open] summary::before{ content:"▾"; }
.tag-qtd{
  font-size:10.5px; font-weight:600; text-transform:none; letter-spacing:0;
  background:var(--accent-soft); color:var(--accent);
  padding:2px 10px; border-radius:20px;
}
.exercicio-acc-corpo{ padding:0 18px 18px; }
.aviso-sae-geral, .aviso-fixacao-geral{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:12.5px; color:var(--ink-soft); margin:0 0 16px;
  border-left:3px solid var(--rule-strong); padding-left:10px;
}

.questao-sae{
  border-top:1px dashed var(--rule-strong); padding:14px 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:13.5px;
}
.questao-sae:first-of-type{ border-top:none; }
.questao-sae b{ display:block; margin-bottom:6px; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--accent); }
.questao-sae p{ margin:0 0 10px; }
.aviso-img-sae{ font-size:11.5px; color:var(--sev-mid); margin:0 0 8px; }
.resp-sae{
  width:100%; box-sizing:border-box; font-family:inherit; font-size:13.5px;
  padding:8px 10px; border:1px solid var(--rule-strong); border-radius:4px;
  background:var(--paper); color:var(--ink); resize:vertical;
}
.btn-salvar-sae{
  margin-top:8px; font-size:12.5px; font-weight:600;
  background:var(--accent); color:#fff; border:none; border-radius:20px;
  padding:6px 16px; cursor:pointer;
}
.btn-salvar-sae:hover{ opacity:.9; }
.status-salvo-sae{ margin-left:10px; font-size:12px; color:var(--sev-high); }

/* fixacao */
.questao-fix{
  border-top:1px dashed var(--rule-strong); padding:14px 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:13.5px;
}
.questao-fix:first-child{ border-top:none; }
.questao-fix b{ display:block; margin-bottom:8px; }
.alternativas{ display:flex; flex-direction:column; gap:6px; margin-left:4px; }
.alternativas label{ cursor:pointer; }
.alternativas.vf{ flex-direction:row; gap:20px; }
.resp-completar, .resp-dissertativa{
  width:100%; box-sizing:border-box; font-family:inherit; font-size:13.5px;
  padding:8px 10px; border:1px solid var(--rule-strong); border-radius:4px;
  background:var(--paper); color:var(--ink);
}
.resp-dissertativa{ resize:vertical; }
.btn-enviar{
  margin-top:14px; font-size:13px; font-weight:700;
  background:var(--accent); color:#fff; border:none; border-radius:20px;
  padding:9px 22px; cursor:pointer;
}
.btn-enviar:hover{ opacity:.9; }
.btn-enviar:disabled{ opacity:.6; cursor:default; }
.erro-envio{ color:var(--sev-low); font-size:12.5px; margin-top:10px; }

.resultado-cabecalho{
  display:flex; align-items:center; gap:16px; padding:16px; border-radius:6px; margin-bottom:16px;
}
.resultado-ok{ background:var(--sev-high-soft); }
.resultado-pendente{ background:var(--sev-mid-soft); }
.resultado-pct{ font-family: ui-monospace, monospace; font-size:28px; font-weight:700; color:var(--ink); }
.resultado-legenda{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:13px; color:var(--ink-soft); }
.item-resultado{
  border-top:1px dashed var(--rule-strong); padding:12px 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:13.5px;
}
.item-resultado:first-child{ border-top:none; }
.item-resultado b{ display:block; margin-bottom:6px; }
.item-resultado.ok b{ color:var(--sev-high); }
.item-resultado.errou b{ color:var(--sev-low); }
.explicacao-resultado, .nota-llm{ color:var(--ink-soft); margin:0; }

.btn-imprimir{
  margin-left:14px; font-size:12px; color:var(--accent); background:var(--accent-soft);
  border:1px solid var(--accent); border-radius:16px; padding:5px 14px; cursor:pointer;
}
.btn-imprimir:hover{ opacity:.85; }
@media print{
  .no-print, .ribbon, .exercicio-acc{ display:none !important; }
}

.modal-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.5);
  display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px;
}
.modal-caixa{
  background:var(--paper-raise); border:1px solid var(--rule-strong); border-radius:10px;
  padding:24px; max-width:480px; width:100%; max-height:80vh; overflow-y:auto; position:relative;
}
.modal-caixa h3{ margin:10px 0 6px; }
.modal-caixa p{ font-size:14px; line-height:1.5; }
.modal-prazo{ font-weight:700; color:var(--sev-mid); }
.modal-fechar{
  position:absolute; top:12px; right:12px; background:none; border:none;
  font-size:18px; cursor:pointer; color:var(--ink-soft); z-index:2;
}
.modal-caixa-capitulo{
  max-width:900px; width:95%; height:90vh; padding:0; overflow:hidden;
}
.modal-caixa-capitulo .modal-fechar{
  background:var(--paper-raise); border-radius:50%; width:32px; height:32px; top:8px; right:8px;
}
.modal-caixa-boletim{ max-width:640px; }
.modal-legenda{ font-size:12px !important; color:var(--ink-soft); }
.tabela-boletim{ width:100%; border-collapse:collapse; margin-top:8px; font-size:13px; }
.tabela-boletim th{
  text-align:left; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-soft);
  border-bottom:2px solid var(--rule-strong); padding:4px 8px;
}
.tabela-boletim td{ padding:5px 8px; border-bottom:1px solid var(--rule); }
.tabela-boletim tr:last-child td{ border-bottom:none; }

.btn-concluir{
  background:none; border:none; font-size:15px; cursor:pointer; margin-left:8px;
}
.btn-concluir:disabled{ opacity:.4; cursor:default; }
.atrasada{
  border-color:var(--sev-low); opacity:.85;
}
.atrasada .notif-data{ color:var(--sev-low); font-weight:700; }
.marca-atrasada{ margin-left:6px; }
.vence-hoje{
  border-color:var(--sev-low); background:var(--sev-low-soft);
}
.vence-hoje .notif-data{ color:var(--sev-low); font-weight:700; }

.secao-hoje{ color:var(--sev-mid); }
.hoje-subtitulo{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  color:var(--ink-soft); margin:14px 0 8px;
}
.hoje-assuntos-grade{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:10px; }
.hoje-destaque{ border-color:var(--sev-mid); }
.lista-materias-acc > summary{ cursor:pointer; list-style:none; }
.lista-materias-acc > summary::-webkit-details-marker{ display:none; }
.lista-materias-acc > summary::before{ content:"▸ "; }
.lista-materias-acc[open] > summary::before{ content:"▾ "; }

.acc-colapsado > summary{ cursor:pointer; list-style:none; }
.acc-colapsado > summary::-webkit-details-marker{ display:none; }
.acc-colapsado > summary::before{ content:"▸ "; color:var(--accent); }
.acc-colapsado[open] > summary::before{ content:"▾ "; }
.acc-colapsado > summary > h2{ display:inline; }

.indice-simples{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px; }
.indice-simples li{ margin:0; }
.indice-simples a{
  display:inline-block; padding:8px 16px; background:var(--paper-raise);
  border:1px solid var(--rule-strong); border-radius:20px; color:var(--accent);
  text-decoration:none; font-weight:600; font-size:14px;
}
.indice-simples a:hover{ background:var(--accent-soft); }

.indice-disciplina{ display:flex; flex-direction:column; gap:10px; }
.volume-acc{
  background:var(--paper-raise); border:1px solid var(--rule-strong); border-radius:8px;
  overflow:hidden;
}
.volume-acc > summary{
  cursor:pointer; list-style:none; padding:12px 16px; font-weight:700;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:var(--paper);
}
.volume-acc > summary::-webkit-details-marker{ display:none; }
.volume-acc > summary::before{ content:"▸ "; color:var(--accent); }
.volume-acc[open] > summary{ background:var(--accent-soft); color:var(--accent); }
.volume-acc[open] > summary::before{ content:"▾ "; }
.volume-corpo{ padding:14px 16px; }
.capitulo-embutido{
  margin-top:16px; padding-top:16px; border-top:2px dashed var(--rule-strong);
}
.btn-marcar-atual{
  margin-left:10px; font-size:11px; color:var(--accent); background:var(--accent-soft);
  border:1px solid var(--accent); border-radius:14px; padding:2px 10px; cursor:pointer;
}
.btn-marcar-atual:hover{ opacity:.85; }
.btn-marcar-atual:disabled{ opacity:.5; cursor:default; }

/* avisos do SAE */
.notif-container{ margin-bottom:20px; }
.notif-carregando, .notif-vazio, .notif-erro{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:13px; color:var(--ink-soft);
}
.notif-destaque{
  background:var(--sev-mid-soft);
  border:1px solid var(--sev-mid);
  border-radius:6px;
  padding:12px 16px;
  margin-bottom:14px;
}
.notif-destaque-titulo{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight:700; font-size:13.5px; color:var(--sev-mid); margin:0 0 10px;
}
.notif-item{
  background:var(--paper-raise);
  border:1px solid var(--rule-strong);
  border-radius:5px;
  padding:10px 14px;
  margin-bottom:8px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.notif-item-topo{ display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.notif-tag{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:2px 8px; border-radius:20px;
}
.tipo-pontuada .notif-tag{ background:var(--sev-low-soft); color:var(--sev-low); }
.tipo-agenda .notif-tag{ background:var(--accent-soft); color:var(--accent); }
.tipo-conteudo .notif-tag{ background:var(--sev-high-soft); color:var(--sev-high); }
.tipo-cancelada .notif-tag{ background:var(--rule); color:var(--ink-soft); }
.tipo-outro .notif-tag{ background:var(--rule); color:var(--ink-soft); }
.notif-data{ font-size:11px; color:var(--ink-soft); font-family: ui-monospace, monospace; }
.agenda-dia{ margin-bottom:14px; }
.agenda-dia-titulo{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  color:var(--ink-soft); margin:0 0 6px;
}
.notif-titulo{ font-size:13.5px; font-weight:600; margin:0 0 2px; }
.notif-texto{ font-size:12.5px; color:var(--ink-soft); margin:0 0 8px; }
.notif-acoes{ text-align:right; }
.btn-marcar-lido{
  font-size:11px; color:var(--accent); background:none;
  border:1px solid var(--accent); border-radius:16px; padding:3px 12px; cursor:pointer;
}
.btn-marcar-lido:hover{ background:var(--accent-soft); }
.btn-marcar-lido:disabled{ opacity:.5; cursor:default; }
.notif-resumo{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:12.5px; color:var(--ink-soft); margin:0 0 10px;
}
.btn-ver-mais-notif{
  font-size:11.5px; color:var(--accent); background:none; border:none;
  text-decoration:underline; cursor:pointer; padding:0; margin-left:6px;
}
