/* Portal das caçadas — tema escuro, que é onde este tipo de página vive.
   Sem framework: são ~200 linhas e um framework custaria mais que o total. */
:root{
  --fundo:#12100e; --painel:#1b1815; --painel-2:#231f1b;
  --linha:#332c25; --linha-forte:#4a3f34;
  --texto:#eee6d8; --texto-fraco:#9d9184;
  --brasa:#d9822b; --brasa-fraca:#3a2a17;
  --vivo:#5fa860; --vivo-fraco:#1e3020;
  --morto:#b04a3c; --morto-fraco:#33201c;
  --sombra:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--fundo); color:var(--texto);
  font:15px/1.6 "Segoe UI",system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.envolto{max-width:1080px;margin:0 auto;padding:clamp(16px,4vw,40px)}

/* ---- cabeçalho ---- */
header{border-bottom:1px solid var(--linha);padding-bottom:20px;margin-bottom:24px}
header h1{
  font-size:clamp(1.5rem,4vw,2.2rem);margin:.1em 0 .2em;font-weight:700;
  letter-spacing:-.01em;
}
.sobrescrito{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brasa);font-weight:600;
}
.resumo{color:var(--texto-fraco);font-size:.9rem;display:flex;gap:16px;
  flex-wrap:wrap;align-items:center;margin-top:10px}
.ponto{display:inline-flex;align-items:center;gap:.45em}
.ponto i{width:.6em;height:.6em;border-radius:50%;background:var(--morto);flex:none}
.ponto.ok i{background:var(--vivo)}

/* ---- abas ---- */
.abas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.aba{
  display:flex;align-items:center;gap:10px;padding:9px 15px 9px 9px;
  background:var(--painel);border:1px solid var(--linha);border-radius:12px;
  cursor:pointer;color:var(--texto-fraco);font:inherit;font-size:.9rem;
  transition:border-color .12s, color .12s, background .12s;
}
.aba:hover{border-color:var(--linha-forte);color:var(--texto)}
.aba[aria-selected="true"]{
  background:var(--painel-2);border-color:var(--brasa);color:var(--texto);
  font-weight:600;
}
.aba img{width:34px;height:34px;object-fit:contain;flex:none;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.aba .selo{
  width:.55em;height:.55em;border-radius:50%;background:var(--morto);flex:none;
}
.aba .selo.ok{background:var(--vivo)}

/* ---- cartão de estado ---- */
.estado{
  display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px;
}
.marca{
  display:inline-flex;align-items:center;gap:.5em;padding:.4em .85em;
  border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em;
  border:1px solid transparent;
}
.marca.viva{background:var(--vivo-fraco);color:var(--vivo);border-color:#2c4a2e}
.marca.morta{background:var(--morto-fraco);color:var(--morto);border-color:#4a2c26}
.marca.neutra{background:var(--brasa-fraca);color:var(--brasa);border-color:#4a3419}

/* ---- salas ---- */
h2{font-size:1.15rem;margin:0 0 12px;font-weight:650}
.salas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.sala{
  background:var(--painel);border:1px solid var(--linha);border-radius:14px;
  padding:14px;display:flex;gap:13px;align-items:flex-start;box-shadow:var(--sombra);
}
.sala img{width:52px;height:52px;object-fit:contain;flex:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.sala .nome{font-weight:650;line-height:1.3;word-break:break-word}
.sala .meta{color:var(--texto-fraco);font-size:.8rem;margin-top:5px;
  display:flex;gap:10px;flex-wrap:wrap}
.lotacao{font-variant-numeric:tabular-nums;color:var(--texto)}
.trancada{color:var(--brasa)}

.vazio{
  border:1px dashed var(--linha-forte);border-radius:14px;padding:26px;
  text-align:center;color:var(--texto-fraco);font-size:.9rem;
}

/* ---- sala clicável ---- */
.sala{
  width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  transition:border-color .12s, transform .12s;
}
.sala:hover{border-color:var(--linha-forte);transform:translateY(-1px)}
.sala:focus-visible{outline:2px solid var(--brasa);outline-offset:2px}
.esperando{color:var(--texto-fraco)}
.cheia{color:var(--vivo)}

/* ---- o que a sala guarda ---- */
.fundo-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:50;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal{
  position:relative;background:var(--painel);border:1px solid var(--linha-forte);
  border-radius:16px;padding:22px 24px;max-width:560px;width:100%;
  max-height:86vh;overflow-y:auto;box-shadow:var(--sombra);
}
.modal .fechar{
  position:absolute;top:12px;right:14px;background:none;border:0;
  color:var(--texto-fraco);font-size:1.4rem;line-height:1;cursor:pointer;
}
.modal .fechar:hover{color:var(--texto)}
.modal-topo{display:flex;gap:14px;align-items:center;margin-bottom:14px}
.modal-topo img{width:58px;height:58px;object-fit:contain;flex:none}
.modal-topo h3{margin:0;font-size:1.1rem}
.modal-sub{color:var(--texto-fraco);font-size:.83rem;margin-top:3px}
.fichas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.ficha{
  background:var(--painel-2);border:1px solid var(--linha);border-radius:9px;
  padding:.3em .65em;font-size:.79rem;color:var(--texto-fraco);
}
.modal p.secao{
  margin:20px 0 6px;font-size:.78rem;font-weight:650;letter-spacing:.04em;
  text-transform:uppercase;color:var(--brasa);
}
.ressalva{
  margin:0 0 12px;font-size:.82rem;color:var(--texto-fraco);line-height:1.5;
}
.ressalva b{color:var(--texto)}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.grade div{
  background:var(--painel-2);border:1px solid var(--linha);border-radius:9px;
  padding:.45em .7em;display:flex;justify-content:space-between;gap:10px;
  font-size:.8rem;
}
.grade span{color:var(--texto-fraco)}
.grade b{font-variant-numeric:tabular-nums;color:var(--texto);font-weight:600}
/* a quest em curso e o que a pessoa veio ver -- ganha a cor da marca */
.grade div.quest{border-color:var(--brasa)}
.grade div.quest b{color:var(--brasa)}
.ressalva.pouca{margin:6px 0 0;font-size:.78rem}

/* Os numeros crus do NEX ficam dobrados: o Marcos abre para diagnosticar, mas
 * nao poluem quem so quer ver a sala. Fechado por padrao. */
.modal details.crus{margin-top:20px}
.modal details.crus > summary{
  cursor:pointer;list-style:none;user-select:none;
  font-size:.78rem;font-weight:650;letter-spacing:.04em;
  text-transform:uppercase;color:var(--brasa);
}
.modal details.crus > summary::-webkit-details-marker{display:none}
.modal details.crus > summary::before{content:'▸ ';color:var(--texto-fraco)}
.modal details.crus[open] > summary::before{content:'▾ '}
.modal details.crus > summary span{
  text-transform:none;letter-spacing:0;font-weight:400;color:var(--texto-fraco);
}
.modal details.crus > .ressalva{margin-top:10px}

.quem{
  color:var(--texto-fraco);font-size:.79rem;margin-top:6px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cacadores{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cacadores > div{
  background:var(--painel-2);border:1px solid var(--linha);border-radius:9px;
  padding:.45em .7em;display:flex;align-items:center;gap:10px;font-size:.85rem;
}
.cacadores .vaga{
  color:var(--texto-fraco);font-variant-numeric:tabular-nums;font-size:.75rem;
  min-width:1.2em;
}
.cacadores .anfitriao{
  margin-left:auto;color:var(--brasa);font-size:.72rem;text-transform:uppercase;
  letter-spacing:.04em;
}
.cacadores .livre{opacity:.5}
.cacadores .livre b{font-weight:400;color:var(--texto-fraco)}

/* ---- tutorial ---- */
.tutorial{
  margin-top:30px;background:var(--painel);border:1px solid var(--linha);
  border-radius:14px;padding:20px 22px;box-shadow:var(--sombra);
}
.tutorial h3{font-size:1rem;margin:0 0 4px;font-weight:650}
.tutorial p.intro{color:var(--texto-fraco);font-size:.88rem;margin:0 0 16px}
.tutorial ol{margin:0;padding-left:20px}
.tutorial li{margin-bottom:11px}
.tutorial li b{color:var(--texto)}
.tutorial .req{
  display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:0;list-style:none;
}
.tutorial .req li{
  margin:0;background:var(--painel-2);border:1px solid var(--linha);
  border-radius:9px;padding:.35em .7em;font-size:.8rem;color:var(--texto-fraco);
}
code{
  font-family:ui-monospace,"Cascadia Code",Consolas,monospace;font-size:.86em;
  background:var(--painel-2);border:1px solid var(--linha);border-radius:5px;
  padding:.12em .4em;color:var(--brasa);
}
/* O tutorial de 3DS tem duas metades: a DLC so pede apontar o DNS, o hub pede
   tambem o Guild Hunter. AS DUAS pedem CFW com o Pretendo instalado -- este
   comentario dizia "a DLC nao pede CFW", e a aba repetia o erro ate 20/09. */
.tutorial p.etapa{
  margin:18px 0 10px;font-size:.8rem;font-weight:650;letter-spacing:.04em;
  text-transform:uppercase;color:var(--brasa);
}
.tutorial p.etapa:first-of-type{margin-top:2px}
.baixar{display:inline-flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.baixar a{
  background:var(--brasa-fraca);border:1px solid #4a3419;border-radius:9px;
  padding:.35em .75em;color:var(--brasa);text-decoration:none;font-size:.82rem;
}
.baixar a:hover{border-color:var(--brasa);color:var(--texto)}
.baixar-vazio{color:var(--texto-fraco);font-size:.85rem}
/* Bloco de texto para copiar (a linha do arquivo de hosts). */
pre.bloco{
  margin:8px 0;padding:9px 11px;overflow-x:auto;white-space:pre;
  font-family:ui-monospace,"Cascadia Code",Consolas,monospace;font-size:.82rem;
  background:var(--painel-2);border:1px solid var(--linha);border-radius:8px;
  color:var(--brasa);
}
/* Link no corpo do tutorial: sem isto sai o azul padrao do navegador, ilegivel
   no fundo escuro (so apareceu renderizando a aba do Switch real). */
.tutorial a{color:var(--brasa);text-decoration:underline;text-underline-offset:2px}
.tutorial a:hover{color:var(--texto)}
.tutorial .req a{color:var(--texto);text-decoration:none}
.tutorial .req a:hover{color:var(--brasa)}
/* Prints de configuracao: some sozinho o que nao tiver arquivo. */
.prints{display:grid;gap:12px;margin:14px 0 2px;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.prints figure{margin:0;max-width:520px}
.prints a{display:block}
.prints img{width:100%;height:auto;display:block;border-radius:9px;
  border:1px solid var(--linha)}
.prints figcaption{margin-top:5px;font-size:.78rem;color:var(--texto-fraco)}
.aviso{
  margin-top:16px;padding:11px 13px;border-left:3px solid var(--brasa);
  background:var(--brasa-fraca);border-radius:0 8px 8px 0;font-size:.85rem;
  color:var(--texto);
}
footer{
  margin-top:34px;padding-top:16px;border-top:1px solid var(--linha);
  color:var(--texto-fraco);font-size:.78rem;
  font-family:ui-monospace,monospace;
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Sub-abas dentro do tutorial (DLC / 3DS / Emulador / Switch real). No mesmo
   tom das abas de jogo, porém menores -- é navegação secundária. */
.subabas{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 18px}
.subaba{
  padding:6px 13px;background:var(--painel);border:1px solid var(--linha);
  border-radius:9px;cursor:pointer;color:var(--texto-fraco);font:inherit;
  font-size:.82rem;transition:border-color .12s, color .12s, background .12s;
}
.subaba:hover{border-color:var(--linha-forte);color:var(--texto)}
.subaba.ativa{
  background:var(--painel-2);border-color:var(--brasa);color:var(--brasa);
  font-weight:600;
}
