:root{
  --bg:#f6f7fb; --card:#ffffff; --texto:#1c2033; --suave:#5b6280; --borda:#dde1ee;
  --acento:#4f46e5; --acento-t:#ffffff; --ok:#16a34a; --ok-bg:#dcfce7; --erro:#dc2626; --erro-bg:#fee2e2;
  --dica:#b45309; --dica-bg:#fef3c7; --code-bg:#12172b; --code-t:#e6e9f5; --sombra:0 2px 10px rgba(30,35,70,.08);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0e1120; --card:#171b30; --texto:#e8ebf8; --suave:#99a0c2; --borda:#2a3050;
    --acento:#818cf8; --acento-t:#0e1120; --ok:#4ade80; --ok-bg:#12351f; --erro:#f87171; --erro-bg:#3b1618;
    --dica:#fbbf24; --dica-bg:#3a2d0b; --code-bg:#0a0d1a; --sombra:none;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--texto);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--borda);position:sticky;top:0;z-index:5}
.marca{font-weight:800;color:var(--texto);text-decoration:none;font-size:1.05rem}
.placar{font-size:.9rem;color:var(--suave);text-align:right}
.placar b{color:var(--texto)}
main{max-width:1060px;margin:0 auto;padding:20px 16px 40px}
h1{font-size:1.7rem;margin:.2em 0}
.sub{color:var(--suave);margin:0 0 20px}
.grade-lang{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.lang{background:var(--card);border:1px solid var(--borda);border-radius:14px;padding:16px;text-align:left;cursor:pointer;color:inherit;font:inherit;box-shadow:var(--sombra);transition:transform .12s,border-color .12s}
.lang:hover,.lang:focus-visible{transform:translateY(-2px);border-color:var(--cor)}
.sigla{display:inline-grid;place-items:center;min-width:46px;height:46px;padding:0 8px;border-radius:12px;background:var(--cor);color:#fff;font-weight:800;margin-bottom:10px}
.lang h2{margin:0;font-size:1.1rem}
.lang small{color:var(--suave)}
.barra{height:7px;background:var(--borda);border-radius:99px;overflow:hidden;margin-top:10px}
.barra i{display:block;height:100%;background:var(--cor)}
.acoes-home{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}

.cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.cab h1{margin:0;font-size:1.4rem}
.cab .sigla{margin:0;min-width:40px;height:40px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;align-items:start}
@media (max-width:820px){.layout{grid-template-columns:1fr}.nav{order:2}}
.cartao{background:var(--card);border:1px solid var(--borda);border-radius:14px;padding:20px;box-shadow:var(--sombra)}
.meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--suave);font-size:.85rem;margin-bottom:10px}
.tag{padding:2px 10px;border-radius:99px;background:var(--borda);color:var(--texto);font-weight:600}
.n1{background:var(--ok-bg);color:var(--ok)} .n2{background:var(--dica-bg);color:var(--dica)} .n3{background:var(--erro-bg);color:var(--erro)}
.pergunta{font-size:1.15rem;font-weight:650;margin:0 0 12px}
pre.codigo{background:var(--code-bg);color:var(--code-t);padding:14px 16px;border-radius:10px;overflow:auto;font:14px/1.55 ui-monospace,Consolas,Menlo,monospace;margin:0 0 14px;white-space:pre}
.opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}
.opc{padding:12px 14px;border:2px solid var(--borda);border-radius:10px;background:var(--card);color:var(--texto);font:14px ui-monospace,Consolas,Menlo,monospace;cursor:pointer;text-align:left;word-break:break-word}
.opc:hover:not(:disabled){border-color:var(--acento)}
.opc.certa{border-color:var(--ok);background:var(--ok-bg)}
.opc.errada{border-color:var(--erro);background:var(--erro-bg);opacity:.8}
.opc:disabled{cursor:default}
.digitar{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.digitar input{flex:1 1 240px;padding:12px 14px;border:2px solid var(--borda);border-radius:10px;background:var(--card);color:var(--texto);font:15px ui-monospace,Consolas,Menlo,monospace}
.digitar input:focus{outline:none;border-color:var(--acento)}
.digitar input.certa{border-color:var(--ok)} .digitar input.errada{border-color:var(--erro)}
button.btn{padding:10px 16px;border-radius:10px;border:2px solid var(--borda);background:var(--card);color:var(--texto);font:inherit;font-weight:600;cursor:pointer}
button.btn:hover:not(:disabled){border-color:var(--acento)}
button.btn:disabled{opacity:.5;cursor:default}
button.primario{background:var(--acento);color:var(--acento-t);border-color:var(--acento)}
button.dica{background:var(--dica-bg);color:var(--dica);border-color:transparent}
.linha-btn{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.msg{margin-top:14px;padding:12px 14px;border-radius:10px;font-weight:600}
.msg.ok{background:var(--ok-bg);color:var(--ok)} .msg.erro{background:var(--erro-bg);color:var(--erro)} .msg.dica{background:var(--dica-bg);color:var(--dica)} .msg.info{background:var(--borda);color:var(--texto)}
.msg code{font-family:ui-monospace,Consolas,monospace}
.dicas .msg{margin-top:8px}
.nav{background:var(--card);border:1px solid var(--borda);border-radius:14px;padding:14px}
.nav h3{margin:0 0 10px;font-size:.95rem}
.num{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.num button{padding:6px 0;border-radius:8px;border:1px solid var(--borda);background:var(--card);color:var(--texto);font:600 .8rem inherit;cursor:pointer}
.num button.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.num button.hint{background:var(--dica-bg);color:var(--dica);border-color:var(--dica)}
.num button.rev{background:var(--erro-bg);color:var(--erro);border-color:var(--erro)}
.num button.atual{outline:2px solid var(--acento);outline-offset:1px}
.leg{font-size:.75rem;color:var(--suave);margin-top:10px}
.rodape{text-align:center;color:var(--suave);font-size:.85rem;padding:20px 16px}
a.voltar{color:var(--acento);cursor:pointer;background:none;border:0;font:inherit;font-weight:600;padding:0}

/* ---- notícias ---- */
.noticias{margin-top:34px}
.noticias h2,.outros h2{margin:0 0 4px;font-size:1.35rem}
.abas{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.aba{padding:8px 14px;border-radius:99px;border:2px solid var(--borda);background:var(--card);color:var(--texto);font:inherit;font-weight:600;cursor:pointer}
.aba[aria-selected="true"]{background:var(--acento);color:var(--acento-t);border-color:var(--acento)}
.desc-cat{color:var(--suave);margin:0 0 12px}
.noticias-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.noticia{display:flex;gap:12px;padding:14px;background:var(--card);border:1px solid var(--borda);border-radius:12px;color:inherit;text-decoration:none;box-shadow:var(--sombra);transition:transform .12s,border-color .12s}
.noticia:hover,.noticia:focus-visible{transform:translateY(-2px);border-color:var(--acento)}
.noticia-icone{font-size:1.6rem;line-height:1}
.noticia-corpo{min-width:0}
.noticia h3{margin:6px 0 6px;font-size:.98rem;line-height:1.35;overflow-wrap:anywhere}
.noticia small{color:var(--suave)}
.carregando{color:var(--suave)}
.fontes{margin-top:14px;font-size:.9rem;color:var(--suave)}
.fontes a,.rodape a,.ver-port{color:var(--acento);font-weight:600}

/* ---- outros projetos ---- */
.outros{border-top:1px solid var(--borda);margin-top:20px;padding:34px 16px}
.outros-in{max-width:1060px;margin:0 auto}
.outros-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.outros .sub{margin:0}
.cards-proj{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px}
.cards-proj li{display:flex}
.card-proj{display:flex;flex-direction:column;width:100%;background:var(--card);border:1px solid var(--borda);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:var(--sombra);transition:transform .12s,border-color .12s}
.card-proj:hover,.card-proj:focus-visible{transform:translateY(-2px);border-color:var(--acento)}
.card-proj img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top;display:block;background:var(--borda)}
.card-proj-corpo{display:flex;flex-direction:column;flex:1;padding:14px}
.card-proj .status{align-self:flex-start;font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:99px;background:var(--ok-bg);color:var(--ok)}
.card-proj h3{margin:10px 0 4px;font-size:1.02rem}
.card-proj p{margin:0;color:var(--suave);font-size:.88rem}
.stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.stack span{font-size:.72rem;padding:2px 8px;border-radius:6px;background:var(--borda)}
.card-proj .cta{margin-top:auto;padding-top:12px;color:var(--acento);font-weight:700;font-size:.9rem}

/* ---- ferramentas do topo ---- */
.ferr{display:flex;gap:8px;align-items:center;margin-left:auto;flex-wrap:wrap}
.ferr-b{padding:6px 12px;font-size:.9rem}
.wx-info{color:var(--suave);font-size:.85rem;white-space:nowrap}
@media(max-width:560px){.ferr .lbl{display:none}}
@media(max-width:860px){.wx-info{display:none}}
.wx-box{position:fixed;top:60px;right:16px;z-index:60;min-width:230px;max-width:300px;padding:14px;border-radius:12px;background:var(--card);border:1px solid var(--borda);box-shadow:0 8px 24px rgba(0,0,0,.3);font-size:.9rem;line-height:1.5}
.wx-box .btn{margin-top:10px;padding:6px 12px}
.wx-big{font-size:1.4rem;font-weight:700}
.wx-bad{color:var(--erro)}
.calc-back{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}
.calc-box{width:100%;max-width:340px;max-height:90vh;overflow:auto;background:var(--card);color:var(--texto);border:1px solid var(--borda);border-radius:14px;padding:16px}
.calc-cab{display:flex;justify-content:space-between;align-items:center}
.calc-cab .btn{padding:2px 10px}
.calc-abas{display:flex;gap:6px;margin:10px 0}
.calc-abas .aba{padding:5px 12px;font-size:.85rem}
.calc-abas .aba.on{background:var(--acento);color:var(--acento-t);border-color:var(--acento)}
.calc-disp{width:100%;font-size:1.4rem;text-align:right;padding:10px;box-sizing:border-box;border:2px solid var(--borda);border-radius:10px;background:var(--card);color:var(--texto)}
.calc-res{text-align:right;min-height:22px;color:var(--suave);margin:4px 0 8px}
.calc-res.err{color:var(--erro)}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.calc-k{padding:12px 0;font-size:1rem}
.calc-eq{grid-column:1/-1;padding:12px}
.calc-f{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:8px 0;font-size:.9rem}
.calc-f input,.calc-f select{width:60%;box-sizing:border-box;padding:8px;border:2px solid var(--borda);border-radius:8px;background:var(--card);color:var(--texto);font:inherit}
.calc-row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid var(--borda);font-size:.9rem}
.calc-row b{font-family:ui-monospace,Consolas,monospace;word-break:break-all;text-align:right}
