/* masmorras.css: páginas /masmorras (listagem) e /masmorra/<slug> (detalhe).
   Usa as variáveis de codex.css. --mas-cor e --mas-cor2 são as cores do bioma de cada masmorra. */

/* ---------- Listagem ---------- */
.mas-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap:1.1rem; margin-bottom:2rem; }

.mas-card{
  position:relative; display:flex; flex-direction:column; text-decoration:none; color: var(--text);
  background: var(--panel); border:1px solid var(--hairline); border-radius:16px; overflow:hidden;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.mas-card:hover{
  transform: translateY(-3px); color: var(--text);
  border-color: var(--mas-cor); box-shadow: 0 10px 30px -12px var(--mas-cor);
}

.mas-card-topo{
  position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  padding:1.2rem 1.15rem .9rem; min-height:112px; overflow:hidden;
  background:
    radial-gradient(120% 140% at 0% 0%, var(--mas-cor) 0%, transparent 60%),
    linear-gradient(135deg, var(--mas-cor2) 0%, #0d111b 100%);
}
/* Padrão de rochas: círculos concêntricos suaves, lembrando a boca de uma caverna. */
.mas-card-topo::before{
  content:''; position:absolute; right:-40px; top:-40px; width:190px; height:190px; border-radius:50%;
  background: repeating-radial-gradient(circle, rgba(255,255,255,.10) 0 2px, transparent 2px 16px);
  opacity:.55; pointer-events:none;
}
.mas-card-emblema{
  position:relative; width:54px; height:54px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background: rgba(10,13,20,.55); border:1px solid rgba(255,255,255,.22); backdrop-filter: blur(3px);
  font-size:1.6rem; color:#fff;
}
.mas-card-nivel{
  position:relative; display:flex; flex-direction:column; align-items:flex-end; line-height:1.05;
  color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.55);
}
.mas-card-nivel small{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; opacity:.85; }
.mas-card-nivel b{ font-family: var(--font-display); font-size:1.9rem; font-variant-numeric: tabular-nums; }

.mas-card-corpo{ display:flex; flex-direction:column; gap:.65rem; padding:1rem 1.15rem 1.1rem; flex:1 1 auto; }
.mas-card-bioma{ font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color: var(--mas-cor); }
.mas-card-nome{ margin:0; font-family: var(--font-display); font-size:1.3rem; line-height:1.2; color: var(--text-bright); text-wrap: balance; }

.mas-card-stats{ display:flex; flex-wrap:wrap; gap:.35rem .9rem; font-size:.8rem; color: var(--text-dim); }
.mas-card-stats i{ color: var(--mas-cor); margin-right:.2rem; }

.mas-card-recompensas{ display:flex; flex-wrap:wrap; gap:.35rem; }
.mas-rec{
  width:30px; height:30px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center;
  background: var(--panel-2); border:1px solid var(--hairline); color: var(--text); font-size:.9rem;
}

/* Rodapé colado embaixo pra alinhar os cards da mesma linha. */
.mas-card-rodape{
  margin-top:auto; padding-top:.7rem; border-top:1px solid var(--hairline);
  display:flex; justify-content:space-between; align-items:center; gap:.6rem; flex-wrap:wrap;
  font-size:.78rem; color: var(--text-dim);
}
.mas-card-ver{ color: var(--mas-cor); font-weight:600; }
.mas-card:hover .mas-card-ver i{ transform: translateX(3px); }
.mas-card-ver i{ display:inline-block; transition: transform .15s ease; }

/* ---------- Detalhe ---------- */
.mas-hero{
  position:relative; display:flex; gap:1.3rem; align-items:center; overflow:hidden;
  margin-bottom:1.5rem; padding:1.6rem 1.5rem; border-radius:18px; border:1px solid var(--hairline);
  background:
    radial-gradient(90% 160% at 0% 0%, var(--mas-cor) 0%, transparent 62%),
    linear-gradient(135deg, var(--mas-cor2) 0%, #0d111b 78%);
}
.mas-hero::after{
  content:''; position:absolute; right:-70px; top:-70px; width:280px; height:280px; border-radius:50%;
  background: repeating-radial-gradient(circle, rgba(255,255,255,.09) 0 2px, transparent 2px 20px);
  opacity:.6; pointer-events:none;
}
.mas-hero-emblema{
  position:relative; z-index:1; flex:0 0 auto; width:88px; height:88px; border-radius:22px;
  display:flex; align-items:center; justify-content:center; font-size:2.6rem; color:#fff;
  background: rgba(10,13,20,.5); border:1px solid rgba(255,255,255,.25); backdrop-filter: blur(4px);
}
.mas-hero-texto{ position:relative; z-index:1; min-width:0; display:flex; flex-direction:column; gap:.55rem; }
.mas-hero-bioma{ font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color: rgba(255,255,255,.82); }
.mas-hero-nome{
  margin:0; font-family: var(--font-display); font-size:clamp(1.7rem, 4.4vw, 2.6rem); line-height:1.1;
  color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.5); text-wrap: balance;
}
.mas-hero-chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.mas-chip{
  display:inline-flex; align-items:center; gap:.4rem; padding:.25rem .75rem; border-radius:999px;
  background: rgba(10,13,20,.62); border:1px solid rgba(255,255,255,.2); color:#fff; font-size:.82rem;
  font-variant-numeric: tabular-nums; text-decoration:none; backdrop-filter: blur(3px);
}
.mas-chip i{ color: var(--mas-cor); }
.mas-chip b{ font-weight:700; }
a.mas-chip-link:hover{ border-color:#fff; color:#fff; }

.mas-recs{ display:flex; flex-wrap:wrap; gap:.5rem; }
.mas-rec-tile{
  display:inline-flex; align-items:center; gap:.55rem; padding:.45rem .85rem; border-radius:10px;
  background: var(--panel-2); border:1px solid var(--hairline); color: var(--text-bright); font-size:.86rem; font-weight:600;
}
.mas-rec-tile i{ color: var(--mas-cor); font-size:1.05rem; }

/* Pals */
.mas-pals-rotulo{
  display:flex; align-items:center; gap:.5rem; margin:.9rem 0 .55rem;
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--text-dim);
}
.mas-pals-rotulo:first-of-type{ margin-top:.2rem; }
.mas-pals-rotulo i{ color: var(--gold); }
.mas-pals-rotulo span{ background: var(--panel-2); border:1px solid var(--hairline); border-radius:999px; padding:0 .55rem; color: var(--text); font-variant-numeric: tabular-nums; }

.mas-pals{ display:grid; grid-template-columns: repeat(auto-fill, minmax(178px, 1fr)); gap:.5rem; }
.mas-pal{
  display:flex; align-items:center; gap:.6rem; min-width:0; text-decoration:none; color: var(--text);
  background: var(--panel-2); border:1px solid var(--hairline); border-left:3px solid var(--el-cor, var(--hairline));
  border-radius:10px; padding:.4rem .6rem .4rem .45rem;
  transition: border-color .15s ease, background .15s ease;
}
.mas-pal:hover{ border-color: var(--accent-line); border-left-color: var(--el-cor); background: var(--accent-soft); color: var(--text-bright); }
.mas-pal.is-alfa{ background: linear-gradient(90deg, rgba(240,216,74,.08), var(--panel-2) 60%); }
.mas-pal img{ width:44px; height:44px; object-fit:contain; flex:0 0 auto; }
.mas-pal-info{ display:flex; flex-direction:column; min-width:0; }
.mas-pal-nome{ color: var(--text-bright); font-size:.86rem; font-weight:600; overflow-wrap:anywhere; }
.mas-pal-nivel{ color: var(--text-dim); font-size:.74rem; font-variant-numeric: tabular-nums; }

/* Loot: um bloco por slot, o slot sorteia UM item entre os candidatos. */
.mas-slots{ display:grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap:.7rem; }
.mas-slot{ display:flex; flex-direction:column; gap:.5rem; min-width:0; background: var(--panel-2); border:1px solid var(--hairline); border-radius:12px; padding:.6rem; }
.mas-slot-cab{ display:flex; justify-content:space-between; align-items:center; gap:.5rem; flex-wrap:wrap; }
.mas-slot-num{
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: var(--mas-cor);
}
.mas-slot-chance{ font-size:.74rem; color: var(--text-dim); font-variant-numeric: tabular-nums; }
.mas-slot-itens{ display:flex; flex-direction:column; gap:.3rem; }

.mas-item{
  display:flex; align-items:center; gap:.6rem; min-width:0; text-decoration:none; color: var(--text);
  background: var(--panel); border:1px solid var(--hairline); border-left:3px solid var(--rarity-color, var(--hairline));
  border-radius:8px; padding:.35rem .6rem;
  transition: border-color .15s ease, background .15s ease;
}
.mas-item:hover{ border-color: var(--accent-line); border-left-color: var(--rarity-color, var(--accent-line)); background: var(--accent-soft); color: var(--text-bright); }
.mas-item img{ width:36px; height:36px; object-fit:contain; flex:0 0 auto; }
.mas-item-info{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.mas-item-nome{ color: var(--text-bright); font-size:.86rem; font-weight:600; overflow-wrap:anywhere; }
.mas-item-meta{ color: var(--text-dim); font-size:.72rem; font-variant-numeric: tabular-nums; }
.mas-item-chance{ flex:0 0 auto; font-family: var(--font-mono); font-size:.8rem; color: var(--gold); font-variant-numeric: tabular-nums; }

/* Outras masmorras */
.mas-outras{ display:grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap:.5rem; }
.mas-outra{
  display:flex; align-items:center; gap:.65rem; text-decoration:none; color: var(--text);
  background: var(--panel-2); border:1px solid var(--hairline); border-left:3px solid var(--mas-cor); border-radius:10px; padding:.55rem .75rem;
  transition: border-color .15s ease, background .15s ease;
}
.mas-outra:hover{ border-color: var(--accent-line); border-left-color: var(--mas-cor); background: var(--accent-soft); color: var(--text-bright); }
.mas-outra i{ color: var(--mas-cor); font-size:1.15rem; }
.mas-outra-nome{ flex:1 1 auto; min-width:0; font-size:.86rem; font-weight:600; color: var(--text-bright); }
.mas-outra-nivel{ font-size:.74rem; color: var(--text-dim); font-variant-numeric: tabular-nums; }

@media (max-width: 640px){
  .mas-hero{ flex-direction:column; align-items:flex-start; padding:1.3rem 1.1rem; }
  .mas-hero-emblema{ width:68px; height:68px; font-size:2rem; border-radius:18px; }
  .mas-slots{ grid-template-columns:1fr; }
  .mas-pals{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

@media (prefers-reduced-motion: reduce){
  .mas-card, .mas-card-ver i{ transition:none; }
  .mas-card:hover{ transform:none; }
}
