/* ── Tutorial — visual dos capítulos ──────────────────────────────────────────
   Carregado por DOIS consumidores: a tela do app (`_head.html`) e a página
   pública `/tutorial` (`sistema/tutorial_web.py`). As duas mostram o MESMO HTML
   gerado por `build_tutorial.py` (.tut-secao, .tut-lista, .tut-tabela,
   .tut-aviso, .tut-fig, .tut-caminho) — por isso o CSS é um arquivo só.
   ⚠️ Só variáveis de tema aqui: é a tela com mais texto do sistema, e cor fixa
   quebraria a leitura no tema escuro. Renomear classe exige mexer no gerador.
   ⚠️⚠️ ESCALA DE LEITURA, NÃO DE OPERAÇÃO (2026-08-31). O corpo nasceu em 13.5px
   — a escala do resto do sistema — e o dono relatou: "as letras ficaram muito
   pequenas, dificultando a leitura, o que pode desanimar a pessoa a ver". A
   diferença é o uso: nas outras telas a pessoa BATE O OLHO num campo; aqui ela lê
   900 palavras seguidas, e a tela concorre com desistir de ler. Hoje o corpo é
   15.5px/1.8 e o resto é proporcional. ⚠️ Ao mexer, mexa TAMBÉM na medida da
   linha (`.tut-corpo{max-width}`): aumentar a fonte sem encurtar a largura dá
   linha longa demais, que cansa pelo motivo oposto — hoje são ~75 caracteres. */
.tut-layout{display:flex;gap:18px;align-items:flex-start}
.tut-indice{flex:0 0 320px;max-height:calc(100vh - 190px);overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:6px}
.tut-painel{flex:1;min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);min-height:420px;max-height:calc(100vh - 190px);overflow-y:auto}

.tut-grupo + .tut-grupo{margin-top:2px}
.tut-grupo-head{display:flex;align-items:center;gap:9px;padding:11px 10px;cursor:pointer;user-select:none;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border-radius:8px}
.tut-grupo-head:hover{background:var(--active-bg);color:var(--text)}
.tut-grupo-ico{font-size:15px;line-height:1}
.tut-grupo-nome{flex:1;min-width:0}
.tut-grupo-prog{font-family:var(--font-mono);font-size:10.5px;color:var(--muted-light);letter-spacing:0}
.tut-grupo-chev{font-size:9px;opacity:.55;transition:transform .2s}
.tut-grupo.aberto .tut-grupo-chev{transform:rotate(90deg)}
.tut-grupo-itens{display:none;padding:2px 0 6px}
.tut-grupo.aberto .tut-grupo-itens{display:block}
.tut-idx-item{display:flex;align-items:flex-start;gap:7px;padding:8px 11px 8px 13px;border-radius:6px;font-size:14px;cursor:pointer;color:var(--text);line-height:1.4}
.tut-idx-item:hover{background:var(--active-bg)}
.tut-idx-item.ativo{background:var(--primary-dark);color:#fff;font-weight:600}
.tut-idx-item.lido{color:var(--muted)}
.tut-idx-item.ativo.lido{color:#fff}
.tut-idx-check{flex:0 0 12px;font-size:11px;color:var(--success);line-height:1.5}
.tut-idx-item.ativo .tut-idx-check{color:#fff}

/* Capa: as trilhas */
.tut-capa{padding:28px 30px}
.tut-capa-titulo{font-size:25px;font-weight:800;color:var(--text);letter-spacing:-.3px}
.tut-capa-sub{font-size:15px;color:var(--muted);margin:6px 0 22px;max-width:640px;line-height:1.6}
.tut-trilhas{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.tut-trilha-card{display:flex;gap:14px;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);cursor:pointer;transition:box-shadow .2s,transform .2s,border-color .2s}
.tut-trilha-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary)}
.tut-trilha-ico{font-size:26px;line-height:1}
.tut-trilha-corpo{flex:1;min-width:0}
.tut-trilha-nome{font-size:16.5px;font-weight:700;color:var(--text);margin-bottom:5px}
.tut-trilha-desc{font-size:14px;color:var(--muted);line-height:1.6}
.tut-trilha-barra{height:4px;border-radius:99px;background:var(--border);margin:12px 0 7px;overflow:hidden}
.tut-trilha-barra span{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .3s}
.tut-trilha-meta{font-size:11px;color:var(--muted-light);font-family:var(--font-mono)}
.tut-capa-rodape{margin-top:24px;padding-top:18px;border-top:1px solid var(--border);font-size:14px;color:var(--muted)}

/* Cabeçalho do capítulo */
.tut-head{padding:24px 30px 20px;background:linear-gradient(180deg,var(--active-bg),transparent);border-bottom:1px solid var(--border)}
.tut-eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:8px}
.tut-titulo{font-size:27px;font-weight:800;color:var(--text);margin:0 0 8px;letter-spacing:-.3px}
.tut-resumo{font-size:15.5px;line-height:1.7;color:var(--text-secondary);margin:0;max-width:680px}
.tut-meta{font-size:12px;color:var(--muted-light);font-family:var(--font-mono);margin-top:10px}
.tut-btn-tela{margin-top:14px}
.tut-carregando{color:var(--muted);font-size:13px;padding:40px 0;text-align:center}

/* Corpo do capítulo — o HTML gerado */
.tut-corpo{padding:26px 30px 34px;max-width:750px;margin:0}
.tut-corpo p{font-size:15.5px;line-height:1.8;color:var(--text-secondary);margin:0 0 14px}
.tut-secao{font-size:19.5px;font-weight:800;color:var(--text);margin:30px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);letter-spacing:-.2px}
.tut-secao:first-child{margin-top:0}
.tut-sub{font-size:16px;font-weight:700;color:var(--text);margin:22px 0 9px}
.tut-lista{margin:0 0 17px;padding-left:24px;display:flex;flex-direction:column;gap:9px}
.tut-lista li{font-size:15.5px;line-height:1.8;color:var(--text-secondary)}
.tut-corpo strong{color:var(--text);font-weight:700}
.tut-corpo em{font-style:italic}
.tut-corpo code{font-family:var(--font-mono);font-size:13.5px;background:var(--surface3);border:1px solid var(--border);border-radius:5px;padding:1px 6px;color:var(--text)}
.tut-hr{border:none;border-top:1px solid var(--border);margin:26px 0}
.tut-link{color:var(--primary);cursor:pointer;text-decoration:none;font-weight:600}
.tut-link:hover{text-decoration:underline}
.tut-link-tela::after{content:" ↗";font-size:10px;opacity:.7}

.tut-caminho{display:inline-flex;align-items:center;gap:8px;background:var(--surface3);border:1px solid var(--border);border-radius:99px;padding:7px 16px;font-size:13.5px;font-weight:600;color:var(--text-secondary);margin:0 0 14px}
.tut-caminho-ico{font-size:12px}
.tut-caminho-sep{color:var(--muted-light);margin:0 2px}

.tut-aviso{display:flex;gap:11px;border-radius:9px;padding:14px 17px;margin:0 0 18px;font-size:14.5px;line-height:1.7}
.tut-aviso-ico{flex:0 0 auto;line-height:1.4}
.tut-aviso-dica{background:var(--active-bg);border-left:3px solid var(--primary);color:var(--text-secondary)}
.tut-aviso-atencao{background:var(--warn-bg);border-left:3px solid var(--warn);color:var(--text-secondary)}
[data-theme="dark"] .tut-aviso-atencao{background:rgba(217,119,6,.12)}

.tut-tabela-wrap{overflow-x:auto;margin:0 0 18px;border:1px solid var(--border);border-radius:9px}
.tut-tabela{width:100%;border-collapse:collapse;font-size:14px;background:var(--surface)}
.tut-tabela th{text-align:left;padding:11px 15px;background:var(--surface3);color:var(--text);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.tut-tabela td{padding:12px 15px;border-top:1px solid var(--border);color:var(--text-secondary);line-height:1.65;vertical-align:top}

.tut-fig{margin:0 0 20px}
.tut-fig img{width:100%;border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow-sm);cursor:zoom-in;display:block}
.tut-fig-leg{font-size:12.5px;color:var(--muted);margin-top:7px;text-align:center;font-style:italic}
.tut-fig-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;height:180px;border:1px dashed var(--border);border-radius:9px;background:var(--surface2);color:var(--muted-light);font-size:12.5px;font-weight:600}
.tut-fig-placeholder small{font-family:var(--font-mono);font-size:10.5px;opacity:.75}

.tut-rodape{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 30px 24px;border-top:1px solid var(--border);background:var(--surface2)}
.tut-nav{display:flex;gap:8px;flex-wrap:wrap}

@media(max-width:900px){
  .tut-layout{flex-direction:column}
  .tut-indice{flex:none;width:100%;max-height:320px}
  .tut-painel{max-height:none;width:100%}
  .tut-corpo,.tut-head,.tut-capa,.tut-rodape{padding-left:18px;padding-right:18px}
  .tut-rodape{flex-direction:column;align-items:stretch}
}
