/* Páginas internas do site do Daniel (currículo, ferramentas, wiki, quiz). Usa os tokens do :root de
   estilo.css; cor nova só lá (o teste mede o contraste). */

.pagina{padding:clamp(48px,7vw,96px) max(16px,5vw) clamp(72px,9vw,120px);max-width:1200px;margin:0 auto}
.pagina-cabeca{text-align:center;margin-bottom:clamp(32px,5vw,56px)}
.pagina-cabeca h1{font-size:clamp(2.6rem,7vw,5.4rem);letter-spacing:-.05em}
.dica{color:var(--suave);font-size:.82rem}
@media (max-width:820px){.topo nav{display:block;margin-left:auto;overflow-x:auto;scrollbar-width:none;max-width:none;min-width:0}.topo{gap:10px}
  .topo nav::-webkit-scrollbar{display:none}.topo nav ul{gap:0}.topo nav a{padding:8px 7px;font-size:.8rem;white-space:nowrap}
  .topo .topo-cta{display:none}.marca-nome{display:none}.topo nav li:first-child{display:none}.topo .tema-botao{margin-left:0}}

/* ---- campos ---- */
.campo{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;flex:1;min-width:0}
.campo>span{font:600 .78rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--suave)}
.campo textarea,.campo input{width:100%;font:500 .9rem/1.6 var(--mono);color:var(--texto);background:var(--poco);border:1px solid var(--linha);border-radius:14px;
  padding:12px 14px;resize:vertical;transition:border-color .2s,box-shadow .2s}
.campo textarea:focus,.campo input:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 4px color-mix(in srgb,var(--azure) 18%,transparent)}
.campo-arquivo input{padding:10px;cursor:pointer}
.campo-linha{display:flex;gap:14px;flex-wrap:wrap}
.campo-linha>.campo{min-width:min(100%,200px)}
.campo-curto{flex:0 0 240px}
@media (max-width:640px){.campo-curto{flex:1 1 100%}}
.ferramenta-acoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 16px}
.estado{font:600 .86rem/1.5 var(--mono);color:var(--suave);min-height:1.5em;margin-bottom:10px;overflow-wrap:anywhere}
.estado[data-ok="true"]{color:var(--ok)}
.estado[data-ok="false"]{color:var(--erro)}
.saida-texto{margin:0;padding:14px 16px;border-radius:14px;background:var(--poco);border:1px solid var(--linha);font:500 .85rem/1.6 var(--mono);
  color:var(--tk-s);white-space:pre-wrap;overflow-wrap:anywhere;min-height:60px;max-height:460px;overflow:auto}
.saida-sql-tabela{margin-top:12px}

/* ---- ferramentas ---- */
.ferramenta-intro{text-align:center;margin-bottom:24px}
.ferramenta-intro h2{font-size:clamp(1.6rem,3vw,2.4rem);margin-bottom:8px}
.ferramenta-intro p{color:var(--suave);max-width:640px;margin:0 auto}
.ferramenta{max-width:920px;margin:0 auto;padding:clamp(18px,3vw,32px);border-radius:28px;background:linear-gradient(180deg,var(--superficie-2),var(--superficie));
  border:1px solid color-mix(in srgb,var(--tinta) 7%,transparent)}
.ferramenta .chips-cmd{margin-bottom:14px}
.ferramenta-viva .sem-js{display:none}
.tabela-rolagem{overflow-x:auto}
.tabela{width:100%;border-collapse:collapse;font-size:.9rem}
.tabela th,.tabela td{padding:10px 12px;border-bottom:1px solid var(--linha);text-align:left;white-space:nowrap}
.tabela th{font:600 .74rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--suave)}
.tabela td{font-family:var(--mono);font-size:.84rem}
.tabela td:first-child{color:var(--azure);font-weight:600}
.lista-saida{counter-reset:o;display:grid;gap:6px}
.lista-saida li{counter-increment:o;display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--tinta) 4%,transparent);font:500 .88rem/1.4 var(--mono)}
.lista-saida li::before{content:counter(o);font:700 .8rem/1 var(--mono);color:var(--azure);min-width:1.4em}
.schema-saidas{display:grid;gap:12px}
.schema-saidas pre{white-space:pre-wrap;overflow-wrap:anywhere}
.resumo-calculo{display:grid;gap:8px}
.resumo-calculo li{padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--tinta) 4%,transparent);font:500 .9rem/1.5 var(--mono)}
.resumo-calculo li:first-child{color:var(--azure);font-size:1.05rem;font-weight:700}

/* ---- currículo (tela) ---- */
.cv-acoes{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:880px;margin:0 auto 20px;color:var(--suave)}
.cv{max-width:880px;margin:0 auto;padding:clamp(26px,5vw,60px);border-radius:24px;background:var(--cv-fundo);color:var(--cv-texto);
  box-shadow:0 50px 120px -50px color-mix(in srgb,var(--azure) 45%,transparent)}
.cv-cabeca{border-bottom:3px solid var(--cv-texto);padding-bottom:16px;margin-bottom:18px}
.cv h1{font-size:clamp(2.2rem,5vw,3.2rem);letter-spacing:-.045em}
.cv-titulo{margin-top:8px;font-weight:600;color:var(--cv-suave);font-size:.98rem;line-height:1.45}
.cv-contato{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:.92rem}
.cv-contato a{color:var(--cv-acento);font-weight:600}
.cv h2{font:700 .76rem/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--cv-acento);margin-bottom:10px}
.cv-h2-2{margin-top:16px}
.cv-secao{margin-bottom:18px}
.cv-exps{display:grid;gap:10px}
.cv-exp p+p{margin-top:2px}
.cv-exp-topo{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cv-colunas{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.cv-rotulo{font-weight:700;margin:12px 0 6px}
.cv-lista-limpa{display:grid;gap:8px}
.cv-chips{display:flex;flex-wrap:wrap;gap:6px}
.cv-chips li{padding:3px 10px;border-radius:999px;border:1px solid var(--cv-linha);font-size:.86rem;font-weight:600}
.cv-forte{font-weight:700}
.cv-fino{color:var(--cv-suave);font-size:.9rem}
.cv-nota{margin-top:10px;padding-top:12px;border-top:1px solid var(--cv-linha-2);font-size:.78rem;color:var(--cv-suave)}
@media (max-width:640px){.cv-colunas{grid-template-columns:1fr;gap:0}}

/* ---- currículo (impressão: uma página A4, fundo branco) ---- */
@page{size:A4;margin:11mm 13mm}
@media print{
  html,body{background:#ffffff!important;color:#111111!important;color-scheme:light}
  body{font-size:8.6pt;line-height:1.32}
  .proposta,.pular,.topo,.rodape,.cv-acoes{display:none!important}
  .pagina{padding:0;max-width:none}
  .cv{max-width:none;padding:0;border-radius:0;background:#ffffff;box-shadow:none;color:#111111}
  .cv h1{font-size:20pt}
  .cv-titulo{font-size:8.6pt}
  .cv h2{color:#111111;margin-bottom:4pt;font-size:7.4pt}
  .cv-cabeca{margin-bottom:8pt;padding-bottom:6pt}
  .cv-secao{margin-bottom:7pt;break-inside:avoid}
  .cv-exps{gap:4pt}
  .cv-contato{font-size:8.4pt}
  .cv-contato a{color:#111111}
  .cv-contato a::after{content:" (" attr(href) ")";font-weight:400}
  .cv-chips li{border-color:#999999;padding:0 6pt;font-size:7.6pt}
  .cv-fino{font-size:7.8pt}
  .cv-colunas{gap:16pt}
  .cv-nota{font-size:6.8pt}
  a{text-decoration:none}
}

/* ---- wiki: índice ---- */
.wiki-busca{position:sticky;top:64px;z-index:5;max-width:860px;margin:0 auto 40px;padding:14px;border-radius:22px;background:color-mix(in srgb,var(--superficie) 86%,transparent);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--linha)}
.wiki-busca:not(.busca-viva){display:none}
.campo-busca{margin:0}
.campo-busca input{font:500 1.05rem/1.4 var(--sans);padding:14px 18px;border-radius:14px}
.wiki-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:12px;padding-bottom:2px}
.wiki-chips::-webkit-scrollbar{display:none}
.wiki-chip{flex:none;white-space:nowrap;cursor:pointer;padding:7px 12px;border-radius:999px;border:1px solid var(--linha);background:transparent;color:var(--suave);font-size:.82rem;font-weight:600}
.wiki-chip[aria-pressed="true"]{background:var(--acento);color:var(--acento-contraste);border-color:var(--acento)}
.wiki-contagem{margin-top:10px;font:500 .78rem/1 var(--mono);color:var(--suave)}
.wiki-grupo{margin-bottom:40px}
.wiki-grupo h2{font-size:1.4rem;margin-bottom:14px;letter-spacing:-.02em}
.wiki-cartoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.wiki-cartao a{display:flex;flex-direction:column;gap:6px;height:100%;padding:20px;border-radius:18px;background:var(--superficie);border:1px solid color-mix(in srgb,var(--tinta) 7%,transparent);
  text-decoration:none;transition:transform .3s var(--mola),border-color .2s}
.wiki-cartao a:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--azure) 55%,transparent)}
.wiki-cartao b{font-size:1.05rem;letter-spacing:-.01em}
.wiki-cartao span{color:var(--suave);font-size:.9rem;line-height:1.5}
.wiki-vazio,.wiki-nota{text-align:center;color:var(--suave);font-size:.9rem;max-width:760px;margin:0 auto}

/* ---- wiki: artigo ---- */
.wiki-pagina{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.wiki-nav{position:sticky;top:84px;max-height:calc(100vh - 110px);overflow:auto;font-size:.86rem;scrollbar-width:thin}
.wiki-nav-cat{font:600 .7rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--suave);margin:16px 0 6px}
.wiki-nav a{display:block;padding:5px 10px;border-radius:8px;color:var(--suave);text-decoration:none}
.wiki-nav a:hover{color:var(--texto)}
.wiki-nav a[aria-current="page"]{color:var(--acento-contraste);background:var(--acento);font-weight:600}
.wiki-artigo{min-width:0;max-width:800px}
.wiki-trilha{font:500 .8rem/1 var(--mono);color:var(--suave);margin-bottom:14px}
.wiki-trilha a{color:var(--azure)}
.wiki-artigo h1{font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:-.045em}
.wiki-resumo{margin:14px 0 30px;text-align:left}
.wiki-corpo{font-size:1.04rem}
.wiki-corpo p{margin:0 0 16px}
.wiki-corpo .saida p,.wiki-corpo .saida-esperada p{margin:0}
.wiki-corpo h2{font-size:1.5rem;margin:40px 0 14px;letter-spacing:-.025em}
.wiki-corpo ul{list-style:disc;padding-left:1.3em;margin:0 0 16px;color:var(--suave)}
.wiki-corpo li{margin:6px 0}
.wiki-corpo a,.wiki-fontes a{color:var(--azure)}
.wiki-corpo :not(pre)>code{font:500 .88em/1 var(--mono);padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--tinta) 8%,transparent);color:var(--texto);overflow-wrap:anywhere}
.exemplo{margin:0 0 22px}
.codigo-bloco{margin:0;border-radius:16px;background:var(--poco);border:1px solid var(--linha);overflow:hidden}
.codigo-bloco figcaption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 10px 8px 16px;border-bottom:1px solid var(--linha);
  font:600 .72rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--suave)}
.codigo-bloco pre{margin:0;padding:16px 18px;overflow-x:auto;font:500 .86rem/1.7 var(--mono);color:var(--texto)}
.codigo-bloco code{font:inherit}
.codigo-bloco code[contenteditable]{display:block;outline:none}
.codigo-bloco code[contenteditable]:focus{box-shadow:inset 3px 0 0 var(--azure)}
.marca-exemplo{text-transform:none;letter-spacing:0;font-weight:500;color:var(--tk-n)}
.rodar{cursor:pointer;padding:7px 14px;border-radius:999px;border:0;background:var(--acento);color:var(--acento-contraste);font:700 .78rem/1 var(--sans);letter-spacing:0;text-transform:none}
.rodar:disabled{opacity:.5}
.saida-esperada{margin-top:8px;padding:10px 16px;border-radius:12px;border:1px dashed var(--linha)}
.saida-rotulo{font:600 .7rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--suave);margin-bottom:6px}
.saida-esperada pre{margin:0;font:500 .82rem/1.6 var(--mono);color:var(--tk-s);overflow-x:auto}
.saida{margin-top:12px}
.wiki-fontes{margin-top:40px;padding-top:20px;border-top:1px solid var(--linha)}
.wiki-fontes h2{font-size:1rem;margin-bottom:10px}
.wiki-fontes ul{display:grid;gap:6px;font-size:.92rem}
.wiki-selo{margin-top:24px;font:600 .78rem/1 var(--mono);color:var(--suave)}
.wiki-vizinhos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.wiki-vizinho{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:16px;border:1px solid var(--linha);text-decoration:none}
.wiki-vizinho:hover{border-color:var(--azure)}
.wiki-vizinho span{font:600 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--suave)}
.wiki-proximo{grid-column:2;text-align:right}
@media (max-width:900px){.wiki-pagina{grid-template-columns:minmax(0,1fr)}.wiki-nav{display:none}}

/* ---- quiz ---- */
.pagina-quiz{max-width:880px}
.quiz-tela{text-align:center}
.quiz-tela h1{font-size:clamp(2.4rem,6.4vw,4.6rem);letter-spacing:-.05em}
.quiz-tela .lead{margin-bottom:28px}
.quiz-niveis{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:26px}
.quiz-niveis small{opacity:.7;font-family:var(--mono);margin-left:4px}
.quiz-acoes{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}
.quiz-recorde{margin-top:16px;color:var(--suave);font-size:.9rem}
.quiz-vivo .sem-js{display:none}
.quiz-pergunta{text-align:left}
.quiz-progresso{height:6px;border-radius:999px;background:color-mix(in srgb,var(--tinta) 8%,transparent);overflow:hidden;margin-bottom:18px}
.quiz-progresso span{display:block;height:100%;width:calc(var(--p,0) * 100%);border-radius:inherit;background:linear-gradient(90deg,var(--bronze),var(--prata),var(--ouro));transition:width .6s var(--mola)}
.quiz-topo{display:flex;justify-content:space-between;align-items:center;gap:10px;font:600 .82rem/1 var(--mono);color:var(--suave);margin-bottom:20px}
.quiz-enunciado{font-size:clamp(1.4rem,3.2vw,2.1rem);margin-bottom:16px;line-height:1.2}
/* no celular a linha de código do quiz não pode cortar na borda: quebra (lição do site do Rainier) */
.quiz-codigo pre{font-size:.92rem;white-space:pre-wrap;overflow-wrap:anywhere}
.quiz-codigo[hidden]{display:none}
.quiz-opcoes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.quiz-opcao{cursor:pointer;width:100%;height:100%;display:flex;align-items:center;gap:12px;text-align:left;min-height:56px;padding:12px 16px;border-radius:16px;
  background:var(--superficie);border:1px solid color-mix(in srgb,var(--tinta) 10%,transparent);color:var(--texto);transition:transform .2s var(--mola),border-color .2s,background-color .2s}
.quiz-opcao:hover:not(:disabled){border-color:var(--azure);transform:translateY(-2px)}
.quiz-opcao kbd{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;border:1px solid var(--linha);font:700 .8rem/1 var(--mono);color:var(--suave)}
.quiz-opcao code,.quiz-opcao span{font:600 .92rem/1.4 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}
.quiz-opcao span{font-family:var(--sans);font-weight:600}
.quiz-opcao:disabled{cursor:default}
.quiz-opcao[data-estado="certa"]{background:var(--ok);color:var(--acento-contraste);border-color:var(--ok)}
.quiz-opcao[data-estado="errada"]{background:var(--erro);color:var(--acento-contraste);border-color:var(--erro)}
.quiz-opcao[data-estado] kbd{color:inherit;border-color:currentColor}
.quiz-opcao:disabled:not([data-estado]){opacity:.45}
.quiz-retorno:empty{display:none}
.quiz-retorno{padding:16px 18px;border-radius:16px;background:color-mix(in srgb,var(--tinta) 4%,transparent);border:1px solid var(--linha)}
.quiz-retorno[data-certo="true"]{border-color:var(--ok)}
.quiz-retorno[data-certo="false"]{border-color:var(--erro)}
.quiz-veredito{font-weight:800;font-size:1.1rem;margin-bottom:6px;overflow-wrap:anywhere;white-space:pre-wrap}
.quiz-retorno[data-certo="true"] .quiz-veredito{color:var(--ok)}
.quiz-retorno[data-certo="false"] .quiz-veredito{color:var(--erro)}
.quiz-retorno p{color:var(--suave)}
.quiz-retorno a{display:inline-block;margin-top:8px;color:var(--azure);font-weight:600}
.quiz-nota-python{margin-top:8px;font-size:.84rem}
.quiz-pergunta .quiz-acoes{justify-content:flex-end}
.quiz-pergunta .dica{text-align:right;margin-top:10px}
.quiz-nota{font-size:clamp(5rem,16vw,9rem);letter-spacing:-.06em;line-height:1;margin:8px 0}
.quiz-nota b{background:linear-gradient(180deg,var(--ouro),var(--bronze));-webkit-background-clip:text;background-clip:text;color:transparent}
.quiz-nota span{color:var(--suave);font-size:.4em}
.quiz-nota:focus{outline:none}
.quiz-resumo{display:grid;gap:6px;text-align:left;margin:20px auto 0;max-width:660px;font:500 .82rem/1.5 var(--mono)}
.quiz-resumo li{padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--tinta) 4%,transparent);color:var(--suave);overflow-wrap:anywhere}
.quiz-resumo li[data-certo="true"]{color:var(--ok)}
.quiz-resumo li[data-certo="false"]{color:var(--erro)}
.quiz-resumo a{color:var(--texto);margin-left:6px}
@media (max-width:640px){.quiz-opcoes{grid-template-columns:1fr}.quiz-pergunta .dica{display:none}}
@media (prefers-reduced-motion:no-preference){
  .quiz-tela.entrando{animation:quiz-entra .5s cubic-bezier(.16,1,.3,1)}
  .quiz-retorno:not(:empty){animation:quiz-entra .4s cubic-bezier(.16,1,.3,1)}
  .quiz-opcao[data-estado="errada"]{animation:quiz-treme .35s}
}
@keyframes quiz-entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes quiz-treme{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
