/* Mapas Mentais — reusa as variáveis/paleta de ../styles.css (dark premium).
   Mesmo padrão visual do Banco de Documentos, com prefixo .mapa-*. */

.mapa-wrap { max-width: 640px; padding-bottom: 40px; }

/* ---------- hero ---------- */
.mapa-hero { text-align: center; padding: 40px 0 26px; }
.mapa-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 62px; height: 62px; margin-bottom: 16px; border-radius: 18px;
  color: var(--accent);
  background: var(--accent-soft);
  border: 1px solid var(--accent-line);
}
.mapa-badge svg { width: 30px; height: 30px; }
.mapa-hero h1 { margin: 0 0 8px; font-size: 1.75rem; font-weight: 700; letter-spacing: -.02em; }
.mapa-hero .subtitle { margin: 0 auto; max-width: 42ch; color: var(--muted); font-size: 1rem; }

/* ---------- aviso "Em breve" ---------- */
.mapa-soon {
  text-align: center; margin: 6px auto 0; max-width: 460px;
  padding: 26px 22px;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
}
.mapa-soon .soon-tag {
  display: inline-block; margin-bottom: 10px; padding: 4px 12px;
  font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent); background: var(--accent-soft);
  border: 1px solid var(--accent-line); border-radius: 999px;
}
.mapa-soon p { margin: 0 0 6px; color: var(--text); font-size: 1.02rem; }
.mapa-soon p.muted { color: var(--muted); font-size: .92rem; }

/* ---------- toolbar ---------- */
.mapa-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 8px 2px 14px;
}
.mapa-selectall { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font-size: .9rem; font-weight: 600; color: var(--text); }
.mapa-selectall input { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; }
.mapa-counter { white-space: nowrap; }

/* ---------- lista de mapas ---------- */
.mapa-list { display: grid; gap: 10px; }
.mapa-item {
  display: flex; align-items: center; gap: 13px;
  padding: 15px 16px; cursor: pointer;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  transition: border-color .15s, background .15s, transform .05s;
}
.mapa-item:hover { border-color: var(--accent-line); }
.mapa-item:active { transform: scale(.996); }
.mapa-item.is-selected { border-color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 60%, var(--surface)); }

.mapa-check { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--accent); cursor: pointer; }
.mapa-icon { display: inline-flex; color: var(--muted); flex: 0 0 auto; }
.mapa-icon svg { width: 22px; height: 22px; display: block; }
.mapa-item.is-selected .mapa-icon { color: var(--accent); }
.mapa-name { flex: 1 1 auto; font-size: .98rem; font-weight: 500; color: var(--text); }
.mapa-ext {
  flex: 0 0 auto; font-size: .64rem; font-weight: 700; letter-spacing: .06em;
  color: var(--muted); background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 6px; padding: 3px 7px;
}
.mapa-item.is-selected .mapa-ext { color: var(--accent); border-color: var(--accent-line); }

/* item ainda não disponível (liberação parcial via `ready:false`) */
.mapa-item.is-soon { cursor: default; opacity: .62; }
.mapa-item.is-soon:hover { border-color: var(--border); }
.mapa-item.is-soon .mapa-name { color: var(--muted); }

/* ---------- botão de download ---------- */
.mapa-download { margin-top: 20px; padding: 14px 18px; font-size: .98rem; }

@media (max-width: 640px) {
  .mapa-hero { padding: 28px 0 20px; }
  .mapa-hero h1 { font-size: 1.5rem; }
  .mapa-download {
    position: sticky; bottom: 12px; margin-top: 16px;
    box-shadow: 0 8px 24px rgba(0,0,0,.45);
  }
}
