/* VERSIÓN 2 — Comunidad y páginas varias (prefijo .zm-).
   Foro, perfiles, chat, eventos, wallpapers, recomendados, buscador, publicidad y 404. */

/* ---------- Base común ---------- */
.zm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.zm-panel { background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; padding: 0; min-width: 0; }
[data-theme="dark"] .zm-panel { background: #0f1b2d; border-color: #1e2e45; }
.zm-h2 { display: flex; align-items: center; gap: 9px; margin: 0; padding: 14px 18px; font: 800 15px/1.2 var(--font-display); color: var(--text-main); border-bottom: 1px solid var(--border-color); }
.zm-h2 i { color: var(--nx-canal-txt, var(--v2-activo)); }
.zm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 0; border-radius: 10px; background: var(--v2-amarillo); color: #141005; font: 800 14px/1 var(--font-primary); cursor: pointer; text-decoration: none; white-space: nowrap; }
.zm-btn:hover { filter: brightness(1.06); }
.zm-btn-suave { background: var(--v2-tarjeta); color: var(--text-main); border: 1px solid var(--border-color); }
.zm-btn-suave:hover { background: var(--v2-tarjeta-hover); filter: none; }
.zm-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12.5px; color: var(--v2-texto-3); }
.zm-meta a, .zm-meta-g a { color: var(--text-main); font-weight: 600; text-decoration: none; }
.zm-meta a:hover, .zm-meta-g a:hover { color: var(--v2-activo); }
.zm-meta img { border-radius: 50%; object-fit: cover; }
.zm-apagado { font-style: italic; }
.zm-vacio { margin: 0; padding: 16px 18px; color: var(--v2-texto-2); font-size: 14px; }
.zm-vacio-g { padding: 46px 20px; text-align: center; font-style: italic; }
.zm-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: var(--v2-tarjeta); border: 1px solid var(--border-color); color: var(--v2-texto-2); }
.zm-chip-fijo { color: var(--v2-activo); border-color: var(--v2-activo); }
.zm-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.zm-cab > div:first-child { min-width: 0; flex: 1 1 320px; }
.zm-cab-col { flex-direction: column; align-items: stretch; }
.zm-cab-id { display: flex; align-items: center; gap: 16px; }
.zm-cab-acc { display: flex; gap: 8px; flex-wrap: wrap; }
.zm-cab-acc form { margin: 0; }
.zm-buscar { display: flex; align-items: center; gap: 8px; flex: 0 1 380px; padding: 5px 5px 5px 14px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; }
.zm-buscar:focus-within { border-color: var(--v2-amarillo); }
.zm-buscar > i { color: var(--v2-texto-3); }
.zm-buscar input { flex: 1; min-width: 0; padding: 9px 4px; border: 0; outline: 0; background: transparent; color: var(--text-main); font: 500 14.5px var(--font-primary); }
.zm-buscar-g { flex: 0 0 auto; width: 100%; max-width: 620px; margin-top: 14px; }
/* Paginación */
.zm-pag { display: flex; justify-content: center; align-items: center; gap: 6px; flex-wrap: wrap; margin: 22px 0 8px; }
.zm-pag a, .zm-pag-gap { min-width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--v2-superficie); color: var(--text-main); font-weight: 700; font-size: 14px; text-decoration: none; }
.zm-pag-gap { border: 0; background: none; color: var(--v2-texto-3); }
.zm-pag a:hover { background: var(--v2-tarjeta-hover); }
.zm-pag a.on { background: var(--v2-amarillo); border-color: var(--v2-amarillo); color: #141005; }
.zm-pag a.off { opacity: .4; pointer-events: none; }

/* ---------- Foro ---------- */
.zm-dos { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 20px; align-items: start; }
.zm-tabla-cab { display: grid; grid-template-columns: 56px minmax(0, 1fr) 150px minmax(0, 230px); gap: 14px; padding: 11px 18px; border-bottom: 1px solid var(--border-color); font: 800 11.5px var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-3); }
.zm-tabla-cab span:first-child { grid-column: 1 / 3; }
.zm-cat { display: grid; grid-template-columns: 56px minmax(0, 1fr) 150px minmax(0, 230px); gap: 14px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--border-color); }
.zm-cat:last-child { border-bottom: 0; }
.zm-cat:hover { background: var(--v2-tarjeta); }
.zm-cat-ico { width: 56px; height: 56px; border-radius: 12px; background: #0a1220 center / 80% no-repeat; border: 1px solid var(--border-color); }
.zm-cat-ico-g { flex: 0 0 auto; width: 68px; height: 68px; }
.zm-cat-txt h3 { margin: 0; font: 800 16.5px/1.25 var(--font-display); color: var(--text-main); }
.zm-cat-txt a { text-decoration: none; }
.zm-cat-txt a:hover h3 { color: var(--v2-activo); }
.zm-cat-txt p { margin: 3px 0 0; font-size: 13.5px; line-height: 1.45; color: var(--v2-texto-2); }
.zm-cat-cifras { display: grid; gap: 4px; font-size: 13px; color: var(--v2-texto-2); }
.zm-cat-cifras i { width: 16px; color: var(--v2-texto-3); }
.zm-cat-cifras b { color: var(--text-main); }
.zm-cat-ult { min-width: 0; display: grid; gap: 4px; }
.zm-cat-ult-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; font-size: 13.5px; color: var(--text-main); text-decoration: none; }
.zm-cat-ult-t:hover { color: var(--v2-activo); }
.zm-lateral { display: grid; gap: 16px; position: sticky; top: 84px; }
.zm-linea { list-style: none; margin: 0; padding: 6px 18px 10px; }
.zm-linea li { display: flex; gap: 11px; align-items: flex-start; padding: 11px 0; border-bottom: 1px dashed var(--border-color); }
.zm-linea li:last-child { border-bottom: 0; }
.zm-linea li > div { min-width: 0; display: grid; gap: 3px; }
.zm-linea li > div > a { font-weight: 700; font-size: 13.5px; line-height: 1.35; color: var(--text-main); text-decoration: none; overflow-wrap: anywhere; }
.zm-linea li > div > a:hover { color: var(--v2-activo); }
.zm-sprite { flex: 0 0 32px; width: 32px; height: 32px; image-rendering: pixelated; }
.zm-av { flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border-color); }

/* Temas (categoría y búsqueda) */
.zm-temas { overflow: hidden; }
.zm-tema { display: grid; grid-template-columns: 52px minmax(0, 1fr) 190px 170px; gap: 16px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--border-color); border-left: 3px solid transparent; }
.zm-tema:last-child { border-bottom: 0; }
.zm-tema:hover { background: var(--v2-tarjeta); }
.zm-fijo { border-left-color: var(--v2-amarillo); background: color-mix(in srgb, var(--v2-amarillo) 6%, transparent); }
.zm-tema-av { position: relative; width: 44px; height: 44px; }
.zm-tema-av > img:first-child { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid var(--border-color); }
.zm-tema-poke { position: absolute; right: -8px; bottom: -6px; width: 28px; height: 28px; image-rendering: pixelated; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 50%; }
.zm-tema-tit { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 3px; }
.zm-tema-tit > a { font: 800 16px/1.3 var(--font-display); color: var(--text-main); text-decoration: none; overflow-wrap: anywhere; }
.zm-tema-tit > a:hover { color: var(--v2-activo); }
.zm-tema-cifras { display: flex; gap: 8px; }
.zm-tema-cifras span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); font-size: 12.5px; color: var(--v2-texto-2); white-space: nowrap; }
.zm-tema-cifras b { color: var(--text-main); }
.zm-tema-ult { display: flex; align-items: center; gap: 9px; min-width: 0; font-size: 13px; color: var(--v2-texto-2); }
.zm-tema-ult > img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.zm-tema-ult span { display: block; min-width: 0; line-height: 1.4; }
.zm-tema-ult a { display: inline-block; max-width: 100%; vertical-align: bottom; color: var(--text-main); font-weight: 700; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zm-tema-ult small { display: block; font-size: 11.5px; color: var(--v2-texto-3); }
.zm-tema-fecha { justify-content: flex-end; }
.zm-resumen { margin: 4px 0 14px; color: var(--v2-texto-2); font-size: 15px; }
.zm-resumen span { color: var(--v2-activo); font-weight: 800; }

/* Hilo */
.zm-h1-poke { width: 40px; height: 40px; image-rendering: pixelated; vertical-align: middle; }
.zm-h1-ico { font-size: .6em; color: var(--v2-activo); vertical-align: middle; }
.zm-meta-g { color: var(--v2-texto-3); }
.zm-hilo-lista { display: grid; gap: 14px; }
.zm-post { background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; overflow: hidden; }
[data-theme="dark"] .zm-post { background: #0f1b2d; border-color: #1e2e45; }
.zm-post-tema { border-color: var(--v2-amarillo); }
.zm-post-autor { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "av quien medallas" "num num num"; gap: 4px 14px; align-items: center; padding: 14px 18px 0; }
.zm-post-autor > a { grid-area: av; }
.zm-post-quien { grid-area: quien; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; min-width: 0; }
.zm-medallas { grid-area: medallas; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; justify-content: flex-end !important; }
.zm-post-num { grid-area: num; padding: 10px 0; border-bottom: 1px solid var(--border-color); font-size: 12.5px; color: var(--v2-texto-3); }
.zm-post-num b { color: var(--text-main); }
.zm-post-av { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--border-color); display: block; }
.zm-post-nombre { font: 800 16px var(--font-display); color: var(--text-main); text-decoration: none; }
.zm-post-nombre:hover { color: var(--v2-activo); }
.zm-rol { padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .03em; border: 1px solid var(--border-color); color: var(--v2-texto-2); }
.zm-rol-admin { background: #c0392b; border-color: #c0392b; color: #fff; }
.zm-rol-mod { background: #2563eb; border-color: #2563eb; color: #fff; }
.zm-post-dato { flex-basis: 100%; font-size: 12.5px; color: var(--v2-texto-3); }
.zm-post-dato strong { color: var(--text-main); }
.zm-post-cuerpo { padding: 16px 18px 6px; font-size: 15.5px; line-height: 1.65; }
.zm-post-cuerpo img { max-width: 100%; height: auto; border-radius: 8px; }
.zm-post-firma { margin: 8px 18px 16px; padding: 0; border-top: 0; }
.zm-post-firma img { max-width: 100%; height: auto; }
.zm-post-acc { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; padding: 8px 14px; border-top: 1px solid var(--border-color); background: var(--v2-tarjeta); }
.zm-acc-form { margin: 0; display: inline-flex; }
.zm-acc { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border: 0; border-radius: 8px; background: transparent; color: var(--v2-texto-2); font: 600 13px var(--font-primary); cursor: pointer; text-decoration: none; }
.zm-acc:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.zm-acc-borrar:hover { color: #e5484d; }
.zm-cola { margin-top: 24px; }
.zm-cola .editor-container { background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; padding: 18px; box-shadow: none; }

@media (max-width: 1100px) {
    .zm-dos { grid-template-columns: minmax(0, 1fr); }
    .zm-lateral { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zm-tema { grid-template-columns: 52px minmax(0, 1fr) 170px; }
    .zm-tema-ult { display: none; }
    .zm-tema-fecha { display: flex; grid-column: 2 / 4; justify-content: flex-start; }
}
@media (max-width: 760px) {
    .zm-lateral { grid-template-columns: minmax(0, 1fr); }
    .zm-tabla-cab { display: none; }
    .zm-cat { grid-template-columns: 48px minmax(0, 1fr); gap: 8px 12px; }
    .zm-cat-ico { width: 48px; height: 48px; }
    .zm-cat-cifras { grid-column: 2; display: flex; gap: 14px; flex-wrap: wrap; }
    .zm-cat-ult { grid-column: 1 / 3; padding-top: 8px; border-top: 1px dashed var(--border-color); }
    .zm-tema { grid-template-columns: 44px minmax(0, 1fr); gap: 8px 12px; padding: 12px 14px; }
    .zm-tema-cifras { grid-column: 1 / 3; }
    .zm-tema-ult { display: flex; grid-column: 1 / 3; }
    .zm-tema-fecha { grid-column: 1 / 3; }
    .zm-buscar { flex-basis: 100%; }
    .zm-post-autor { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "av quien" "medallas medallas" "num num"; padding: 12px 14px 0; }
    .zm-medallas { justify-content: flex-start !important; }
    .zm-post-cuerpo { padding: 14px 14px 6px; }
    .zm-cab-id { align-items: flex-start; }
    .zm-cat-ico-g { width: 52px; height: 52px; }
}

/* ---------- Formularios comunes ---------- */
.zm-form { display: grid; gap: 14px; padding: 16px 18px 18px; }
.zm-form-fila { display: grid; grid-template-columns: minmax(0, 1fr) 90px; gap: 12px; }
.zm-campo { display: grid; gap: 6px; min-width: 0; }
.zm-campo > span { font: 800 12.5px var(--font-primary); letter-spacing: .02em; color: var(--text-main); }
.zm-campo input, .zm-campo select { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); color: var(--text-main); font: 500 14px var(--font-primary); }
.zm-campo input:focus, .zm-campo select:focus { outline: 2px solid var(--v2-amarillo); outline-offset: 1px; }
.zm-campo small { font-size: 12px; color: var(--v2-texto-3); line-height: 1.4; }
.zm-btn-ancho { width: 100%; padding: 13px 18px; font-size: 15px; }
.zm-intro { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: var(--v2-texto-2); }
.zm-intro a { color: var(--v2-activo); font-weight: 700; }
.zm-vacio-c { padding: 14px 0; text-align: center; }
.zm-bloque { margin-bottom: 16px; }
.zm-bloque-c { padding: 16px 18px 18px; }
.zm-bloque-c .zm-intro:last-child { margin-bottom: 0; }

/* ---------- Perfil público ---------- */
.zm-perfil-migas { margin-bottom: 16px; }
.zm-perfil-rejilla { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 22px; align-items: start; }
.zm-id { position: sticky; top: 84px; overflow: hidden; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; }
[data-theme="dark"] .zm-id { background: #0f1b2d; border-color: #1e2e45; }
.zm-id-portada { position: relative; display: grid; place-items: center; height: 230px; background: radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--v2-amarillo) 24%, transparent), transparent 68%), var(--v2-tarjeta); border-bottom: 1px solid var(--border-color); }
.zm-id-poke { width: 200px; height: 200px; object-fit: contain; }
.zm-id-av { position: absolute; left: 16px; bottom: -28px; width: 84px; height: 84px; border-radius: 50%; object-fit: cover; border: 4px solid var(--v2-superficie); background: var(--v2-tarjeta); }
[data-theme="dark"] .zm-id-av { border-color: #0f1b2d; }
.zm-id-cuerpo { padding: 38px 20px 20px; }
.zm-id-cuerpo h1 { margin: 0 0 10px; font: 800 28px/1.1 var(--font-display); overflow-wrap: anywhere; }
.zm-id-chapas { margin: 0 0 16px; display: flex; flex-wrap: wrap; gap: 6px; }
.zm-chapa { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 8px; font-size: 11.5px; font-weight: 800; background: var(--v2-tarjeta); border: 1px solid var(--border-color); color: var(--v2-texto-2); text-decoration: none; max-width: 100%; }
.zm-chapa-oro { background: color-mix(in srgb, #ffa726 20%, transparent); border-color: color-mix(in srgb, #ffa726 50%, transparent); color: #8a4f00; }
[data-theme="dark"] .zm-chapa-oro { color: #ffc266; }
.zm-chapa-socio { color: var(--v2-activo); }
.zm-chapa-titulo { background: linear-gradient(135deg, #3d1f55, #c2410c); border-color: transparent; color: #fff; }
.zm-chapa-titulo img { height: auto; }
.zm-id-datos { margin: 0 0 12px; display: grid; gap: 0; }
.zm-id-datos div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--border-color); font-size: 14px; }
.zm-id-datos dt { color: var(--v2-texto-3); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; align-self: center; }
.zm-id-datos dd { margin: 0; font-weight: 700; text-align: right; }
.zm-id-vet { margin: 0 0 16px; font-size: 13px; color: var(--v2-texto-3); }
.zm-id-med-t { display: block; margin-bottom: 9px; font: 800 12px var(--font-display); letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-3); }
.zm-id-med-t b { color: var(--text-main); }
.zm-id-med-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.zm-med { display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%; font-size: 15px; background: var(--v2-tarjeta); color: var(--v2-texto-3); opacity: .55; }
.zm-med.on { opacity: 1; background: color-mix(in srgb, var(--med) 22%, transparent); color: var(--med); box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--med) 55%, transparent); }
.zm-perfil-main { display: grid; gap: 0; min-width: 0; }
.zm-cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.zm-cifra { display: grid; gap: 2px; padding: 14px 16px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; color: inherit; text-decoration: none; min-width: 0; }
[data-theme="dark"] .zm-cifra { background: #0f1b2d; border-color: #1e2e45; }
.zm-cifra i { color: var(--nx-canal-txt, var(--v2-activo)); font-size: 15px; }
.zm-cifra strong { font: 800 28px/1.1 var(--font-display); font-variant-numeric: tabular-nums; }
.zm-cifra span { font-size: 12.5px; color: var(--v2-texto-2); }
.zm-cifra-a:hover { border-color: var(--v2-amarillo); }
.zm-sets { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.zm-sets a { display: grid; grid-template-columns: minmax(0, 1fr) 110px auto; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--border-color); border-radius: 10px; color: inherit; text-decoration: none; background: var(--v2-tarjeta); }
.zm-sets a:hover { border-color: var(--v2-amarillo); }
.zm-set-nom { font-size: 13.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zm-set-barra { height: 7px; border-radius: 99px; background: color-mix(in srgb, var(--v2-texto-3) 25%, transparent); overflow: hidden; }
.zm-set-barra i { display: block; height: 100%; background: var(--v2-amarillo); }
.zm-set-barra.ok i { background: #3ddc84; }
.zm-set-num { font-size: 12.5px; font-weight: 700; color: var(--v2-texto-2); font-variant-numeric: tabular-nums; }
.zm-mas { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 800; color: var(--v2-activo); text-decoration: none; }
.zm-favs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.zm-fav { display: grid; justify-items: center; gap: 4px; padding: 10px 6px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); color: inherit; text-decoration: none; min-width: 0; }
.zm-fav:hover { border-color: var(--v2-amarillo); }
.zm-fav img { width: 64px; height: 64px; object-fit: contain; }
.zm-fav span { max-width: 100%; font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zm-grafica { padding: 12px 8px 4px; margin-bottom: 14px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); }
.zm-grafica svg { width: 100%; height: 140px; overflow: visible; }
.zm-guia { stroke: var(--border-color); }
.zm-linea { stroke: var(--v2-amarillo); }
.zm-punto { fill: var(--v2-superficie); stroke: var(--v2-amarillo); }
.zm-valor { font-size: 10px; font-weight: 800; fill: var(--text-main); }
.zm-fecha { font-size: 8.5px; font-weight: 600; fill: var(--v2-texto-3); }
.zm-tabla-caja { overflow-x: auto; }
.zm-tabla-t { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.zm-tabla-t th { text-align: left; padding: 9px 12px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-3); border-bottom: 1px solid var(--border-color); white-space: nowrap; }
.zm-tabla-t td { padding: 10px 12px; border-bottom: 1px solid var(--border-color); white-space: nowrap; font-variant-numeric: tabular-nums; }
.zm-tabla-t tr:last-child td { border-bottom: 0; }
.zm-racha { font-weight: 800; color: var(--v2-activo); }
.zm-firma-img { max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--border-color); }
.zm-invita { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 20px 22px; border-radius: 12px; background: var(--v2-tarjeta); border: 1px dashed var(--border-color); }
.zm-invita h2 { margin: 0 0 4px; font: 800 20px var(--font-display); }
.zm-invita p { margin: 0; max-width: 56ch; font-size: 14px; line-height: 1.55; color: var(--v2-texto-2); }

/* ---------- Mi perfil (cuenta) ---------- */
.zm-cuenta-av { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 3px solid var(--v2-amarillo); }
.zm-cuenta-rej { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 22px; align-items: start; }
.zm-cuenta-nav { position: sticky; top: 84px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; padding: 8px; }
[data-theme="dark"] .zm-cuenta-nav { background: #0f1b2d; border-color: #1e2e45; }
.zm-cuenta-nav .profile-tabs { display: grid; gap: 2px; margin: 0; padding: 0; border: 0; background: none; overflow: visible; }
.zm-cuenta-nav .btn-tab { display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box; padding: 11px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--v2-texto-2); font: 700 14px var(--font-primary); text-align: left; cursor: pointer; white-space: normal; }
.zm-cuenta-nav .btn-tab i { width: 18px; text-align: center; color: var(--v2-texto-3); }
.zm-cuenta-nav .btn-tab:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.zm-cuenta-nav .btn-tab.active { background: var(--v2-amarillo); color: #141005; }
.zm-cuenta-nav .btn-tab.active i { color: #141005; }
.zm-cuenta-main { min-width: 0; }
.zm-cuenta-main .card { background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; box-shadow: none; }
[data-theme="dark"] .zm-cuenta-main .card { background: #0f1b2d; border-color: #1e2e45; }
.zm-cuenta-main .trainer-card { border-radius: 12px; }
.zm-cuenta-main input[type="text"], .zm-cuenta-main input[type="email"], .zm-cuenta-main input[type="password"], .zm-cuenta-main select, .zm-cuenta-main textarea { border-radius: 10px; }
.zm-cuenta-main .btn-primary { border-radius: 10px; }

/* ---------- Editor del foro ---------- */
.zm-editor .forum-container { max-width: none; padding: 0; margin: 0; }
.zm-editor-migas { margin-bottom: 16px; }
.zm-editor .editor-container { max-width: 880px !important; margin: 0 !important; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; padding: 22px; box-shadow: none; }
[data-theme="dark"] .zm-editor .editor-container { background: #0f1b2d; border-color: #1e2e45; }
.zm-editor .editor-title { font-family: var(--font-display); }
.zm-editor .editor-input, .zm-editor input[type="text"] { width: 100%; box-sizing: border-box; padding: 11px 13px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); color: var(--text-main); font: 500 15px var(--font-primary); }
.zm-editor .editor-form-group label { font-weight: 800; font-size: 13px; }
.zm-editor .btn-primary { border-radius: 10px; }

/* ---------- Chat ---------- */
.zm-chat .chat-page { max-width: none; padding: 0; }
.zm-chat .chat-app { grid-template-columns: minmax(0, 1fr) 250px; grid-template-areas: "canales canales" "hilo gente"; gap: 14px; }
.zm-chat .chat-canales { grid-area: canales; position: static; padding: 0; overflow-x: auto; display: flex; align-items: stretch; border-radius: 12px; background: var(--v2-superficie); border-color: var(--border-color); }
.zm-chat .chat-canales .chat-col-titulo { display: flex; align-items: center; margin: 0; padding: 0 16px; border-right: 1px solid var(--border-color); white-space: nowrap; }
.zm-chat .chat-canales-lista { display: flex; margin: 0; }
.zm-chat .chat-canal { width: auto; white-space: nowrap; border-left: 0; border-bottom: 3px solid transparent; padding: 13px 18px; }
.zm-chat .chat-canal[aria-current="true"] { border-left-color: transparent; border-bottom-color: var(--v2-amarillo); background: var(--v2-tarjeta); color: var(--text-main); }
.zm-chat .chat-canal.es-privado[aria-current="true"] { border-bottom-color: var(--v2-azul); }
.zm-chat .chat-canal-num { margin-left: 6px; }
.zm-chat .chat-hilo { grid-area: hilo; border-radius: 12px; background: var(--v2-superficie); border-color: var(--border-color); box-shadow: none; }
.zm-chat .chat-gente { grid-area: gente; border-radius: 12px; background: var(--v2-superficie); border-color: var(--border-color); box-shadow: none; }
[data-theme="dark"] .zm-chat .chat-hilo, [data-theme="dark"] .zm-chat .chat-gente, [data-theme="dark"] .zm-chat .chat-canales { background: #0f1b2d; border-color: #1e2e45; }
.zm-chat .chat-enviar { border-radius: 10px; }
.zm-chat .chat-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 26px; max-width: none; padding: 0; }
.zm-chat .chat-info section { margin: 0; padding: 20px 22px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; min-width: 0; }
[data-theme="dark"] .zm-chat .chat-info section { background: #0f1b2d; border-color: #1e2e45; }
.zm-chat .chat-info section + section { margin-top: 0; padding-top: 20px; border-top: 1px solid var(--border-color); }
.zm-chat .chat-info section:last-child { grid-column: 1 / -1; }
.zm-chat .chat-info section:nth-last-child(2) { grid-column: 1 / -1; }

/* ---------- Eventos ---------- */
.zm-evt-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.zm-evt-stats span { display: inline-flex; align-items: baseline; gap: 6px; padding: 7px 12px; border-radius: 10px; background: var(--v2-superficie); border: 1px solid var(--border-color); font-weight: 700; font-size: 13.5px; }
.zm-evt-stats b { font: 800 18px var(--font-display); color: var(--zm-c, var(--v2-activo)); font-variant-numeric: tabular-nums; }
.zm-evt-rej { grid-template-columns: minmax(0, 1fr) 340px; }
.zm-evt-col { min-width: 0; }
.zm-evt-filtro { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.zm-evt-filtro button { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--v2-superficie); color: var(--v2-texto-2); font: 700 13.5px var(--font-primary); cursor: pointer; }
.zm-evt-filtro button:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.zm-evt-filtro button.active { background: var(--v2-amarillo); border-color: var(--v2-amarillo); color: #141005; }
.zm-evt-mesbloque { margin-bottom: 26px; }
.zm-evt-mesbloque h2 { display: flex; align-items: baseline; gap: 12px; margin: 0 0 12px; font: 800 20px var(--font-display); text-transform: capitalize; }
.zm-evt-mescuenta { font: 700 13px var(--font-primary); color: var(--v2-texto-3); text-transform: none; }
.zm-evt-lista { display: grid; gap: 10px; }
.zm-evt { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 0; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; overflow: hidden; }
[data-theme="dark"] .zm-evt { background: #0f1b2d; border-color: #1e2e45; }
.zm-evt:hover { border-color: var(--zm-c); }
.zm-evt[hidden] { display: none; }
.zm-evt-fecha { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 12px 6px; background: color-mix(in srgb, var(--zm-c) 14%, transparent); border-right: 1px solid var(--border-color); text-align: center; }
.zm-evt-dia { font: 800 30px/1 var(--font-display); color: var(--text-main); }
.zm-evt-mes { font: 800 12px var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-2); }
.zm-evt-rango { margin-top: 4px; font-size: 11px; font-weight: 700; line-height: 1.25; color: var(--v2-texto-2); }
.zm-evt-cuerpo { padding: 14px 18px; min-width: 0; }
.zm-evt-fila1 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.zm-evt-tipo { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-main); }
.zm-evt-tipo i { color: var(--zm-c); }
.zm-evt-cuenta { padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 800; background: var(--v2-tarjeta); border: 1px solid var(--border-color); color: var(--v2-texto-2); }
.zm-evt h3 { margin: 0 0 4px; font: 800 17px/1.3 var(--font-display); }
.zm-evt p { margin: 0 0 8px; font-size: 14px; line-height: 1.5; color: var(--v2-texto-2); display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.zm-evt-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; font-size: 13px; font-weight: 600; color: var(--v2-texto-2); }
.zm-evt-meta i { color: var(--zm-c); margin-right: 4px; }
.zm-evt-meta a { color: var(--text-main); text-decoration: none; border-bottom: 1px dashed var(--border-color); }
.zm-evt-meta a:hover { border-color: var(--zm-c); }
.zm-evt-link { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 8px; background: var(--v2-amarillo); color: #141005 !important; font-weight: 800; font-size: 12.5px; text-decoration: none !important; border: 0 !important; margin-left: auto; }
.zm-evt-link i { color: inherit !important; margin: 0 !important; }
.zm-evt-arte { display: flex; align-items: center; padding: 8px 14px 8px 0; }
.zm-evt-arte img { width: 72px; height: 72px; object-fit: contain; margin-left: -14px; }
.zm-evt-arte img:first-child { margin-left: 0; }
.zm-evt-pasado { opacity: .78; }
.zm-evt-pasados { margin-top: 26px; }
.zm-evt-pasados summary { cursor: pointer; font-weight: 800; color: var(--v2-texto-2); padding: 10px 0; }
.zm-evt-pasados .zm-evt-lista { margin-top: 10px; }
.zm-evt-prox { position: sticky; top: 84px; padding: 22px; border-radius: 12px; border: 1px solid var(--zm-c); background: linear-gradient(180deg, color-mix(in srgb, var(--zm-c) 20%, var(--v2-superficie)), var(--v2-superficie) 65%); display: grid; gap: 10px; min-width: 0; }
[data-theme="dark"] .zm-evt-prox { background: linear-gradient(180deg, color-mix(in srgb, var(--zm-c) 24%, #0f1b2d), #0f1b2d 65%); }
.zm-evt-prox-tag { display: inline-flex; align-items: center; gap: 8px; width: fit-content; padding: 4px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: var(--zm-c); color: #fff; }
.zm-evt-prox-arte { display: flex; justify-content: center; padding: 6px 0; }
.zm-evt-prox-arte img { width: 130px; height: 130px; object-fit: contain; filter: drop-shadow(0 10px 12px rgba(0,0,0,.3)); }
.zm-evt-prox-arte img + img { margin-left: -24px; }
.zm-evt-prox h2 { margin: 0; font: 800 22px/1.15 var(--font-display); }
.zm-evt-prox-cuenta { width: fit-content; padding: 4px 14px; border-radius: 10px; background: var(--text-main); color: var(--v2-superficie); font: 800 17px var(--font-display); }
.zm-evt-prox-cuando { margin: 0; font-size: 14px; font-weight: 600; color: var(--v2-texto-2); }
.zm-evt-prox-cuando i { color: var(--zm-c); margin-right: 6px; }
.zm-evt-prox-desc { margin: 0; font-size: 14px; line-height: 1.55; color: var(--v2-texto-2); }
.zm-evt-prox-link { width: fit-content; margin-left: 0; padding: 9px 16px; }
.zm-evt-nota { margin: 20px 0 0; font-size: 13px; color: var(--v2-texto-3); max-width: 90ch; }

/* ---------- Fondos de pantalla ---------- */
.zm-wall-legal { margin-top: 6px !important; font-size: 12.5px !important; color: var(--v2-texto-3) !important; }
.zm-wall-rej { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 22px; align-items: start; }
.zm-wall-filtros { position: sticky; top: 84px; padding: 10px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; }
[data-theme="dark"] .zm-wall-filtros { background: #0f1b2d; border-color: #1e2e45; }
.zm-wall-filtros-t { margin: 4px 8px 8px; font: 800 11.5px var(--font-display); letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-3); }
.zm-wall .filters-wrapper { display: grid; gap: 2px; }
.zm-wall .filter-btn { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--v2-texto-2); font: 700 13.5px var(--font-primary); text-align: left; cursor: pointer; }
.zm-wall .filter-btn i { width: 16px; text-align: center; color: var(--v2-texto-3); }
.zm-wall .filter-btn:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.zm-wall .filter-btn.active { background: var(--v2-amarillo); color: #141005; }
.zm-wall .filter-btn.active i { color: #141005; }
.zm-wall-main { min-width: 0; }
.zm-wall .wallpapers-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.zm-wall .wallpaper-card { display: flex; flex-direction: column; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; overflow: hidden; min-width: 0; }
[data-theme="dark"] .zm-wall .wallpaper-card { background: #0f1b2d; border-color: #1e2e45; }
.zm-wall .wallpaper-card:hover { border-color: var(--v2-amarillo); }
.zm-wall .card-image-wrapper { position: relative; aspect-ratio: 16 / 10; background: var(--v2-tarjeta); overflow: hidden; }
.zm-wall .wallpaper-thumb { width: 100%; height: 100%; object-fit: cover; display: block; }
.zm-wall .card-overlay { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(5, 11, 20, .55); opacity: 0; transition: opacity .15s ease; }
.zm-wall .wallpaper-card:hover .card-overlay, .zm-wall .wallpaper-card:focus-within .card-overlay { opacity: 1; }
.zm-wall .btn-preview { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 10px; background: var(--v2-amarillo); color: #141005; font: 800 13.5px var(--font-primary); cursor: pointer; }
.zm-wall .card-content { display: flex; flex-direction: column; gap: 8px; padding: 14px; flex: 1; }
.zm-wall .card-header-info { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.zm-wall .type-badge { display: inline-block; padding: 3px 9px; border-radius: 6px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; }
.zm-wall .type-planta { background: #4caf50; color: #0f172a; } .zm-wall .type-fuego { background: #c2410c; } .zm-wall .type-agua { background: #2563eb; }
.zm-wall .type-hielo { background: #8fd6e8; color: #0f172a; } .zm-wall .type-normal { background: #8a8a5c; } .zm-wall .type-electrico { background: #ffca28; color: #141005; }
.zm-wall .type-fantasma { background: #6d4c9f; } .zm-wall .type-psiquico { background: #d6336c; } .zm-wall .type-dragon { background: #5b2bd6; } .zm-wall .type-legendario { background: linear-gradient(135deg, #0ea5e9, #7c5cf0); }
.zm-wall .role-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; background: var(--v2-tarjeta); border: 1px solid var(--border-color); color: var(--v2-texto-2); }
.zm-wall .descargas-tag { font-size: 12px; font-weight: 700; color: var(--v2-texto-3); }
.zm-wall .wallpaper-title { margin: 0; font: 800 16px/1.25 var(--font-display); }
.zm-wall .wallpaper-desc { margin: 0; font-size: 13px; line-height: 1.5; color: var(--v2-texto-2); display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.zm-wall .download-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: auto; padding-top: 4px; }
.zm-wall .btn-download { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 10px; border-radius: 9px; font-weight: 800; font-size: 13px; text-decoration: none; border: 1px solid var(--border-color); background: var(--v2-tarjeta); color: var(--text-main); }
.zm-wall .btn-download:hover { border-color: var(--v2-amarillo); }
.zm-wall .btn-download.mobile { background: var(--v2-amarillo); border-color: var(--v2-amarillo); color: #141005; }
.zm-wall .btn-txt { display: flex; flex-direction: column; align-items: center; line-height: 1.25; }
.zm-wall .btn-txt small { font-size: .74em; font-weight: 600; font-variant-numeric: tabular-nums; }
.zm-wall .wp-galerias { margin-top: 32px; padding: 20px 22px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; }
[data-theme="dark"] .zm-wall .wp-galerias { background: #0f1b2d; border-color: #1e2e45; }
.zm-wall .wp-galerias h2 { margin: 0 0 6px; font: 800 18px var(--font-display); }
.zm-wall .wp-galerias-nota { margin: 0 0 14px; max-width: 66ch; font-size: 13.5px; color: var(--v2-texto-2); }
.zm-wall .wp-galerias-enlaces, .zm-wg-enlaces { display: flex; flex-wrap: wrap; gap: 8px; }
.zm-wall .wp-galerias-enlaces a, .zm-wg-enlaces a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--v2-tarjeta); color: var(--text-main); font-weight: 700; font-size: 13.5px; text-decoration: none; }
.zm-wall .wp-galerias-enlaces a:hover, .zm-wg-enlaces a:hover { border-color: var(--v2-amarillo); }
.zm-wall .wp-galerias-enlaces img, .zm-wg-enlaces img { width: 34px; height: 34px; object-fit: contain; }
.zm-wall .pagination-container { display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; }
.zm-wall .pagination-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--v2-superficie); color: var(--text-main); font: 700 14px var(--font-primary); cursor: pointer; }
.zm-wall .pagination-btn:hover:not(:disabled) { background: var(--v2-amarillo); border-color: var(--v2-amarillo); color: #141005; }
.zm-wall .pagination-btn:disabled { opacity: .4; cursor: default; }
.zm-wall .pagination-info { font-weight: 700; color: var(--v2-texto-2); }
/* Modal de vista previa */
.zm-wall .preview-modal { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(3, 8, 16, .82); }
.zm-wall .preview-modal.open { display: flex; }
.zm-wall .modal-content-wrapper { position: relative; width: min(1080px, 100%); max-height: 100%; overflow: auto; border-radius: 14px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .zm-wall .modal-content-wrapper { background: #0f1b2d; border-color: #1e2e45; }
.zm-wall .close-btn { position: absolute; top: 10px; right: 10px; z-index: 3; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(0,0,0,.6); color: #fff; font-size: 16px; cursor: pointer; }
.zm-wall .modal-body { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.zm-wall .modal-image-container { position: relative; display: grid; place-items: center; background: #050b14; padding: 16px; min-height: 280px; }
.zm-wall .modal-image-container img { max-width: 100%; max-height: 72vh; height: auto; border-radius: 8px; }
.zm-wall .modal-image-container img.preview-format-mobile { max-height: 72vh; width: auto; }
.zm-wall .modal-format-indicator { position: absolute; left: 14px; bottom: 14px; padding: 4px 10px; border-radius: 6px; font-size: 12px; font-weight: 700; background: rgba(0,0,0,.65); color: #fff; }
.zm-wall .modal-details { display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.zm-wall .modal-details h2 { margin: 0; font: 800 22px/1.2 var(--font-display); }
.zm-wall .modal-desc { margin: 0; font-size: 14px; line-height: 1.55; color: var(--v2-texto-2); }
.zm-wall .resolution-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.zm-wall .res-option-card { display: grid; justify-items: center; gap: 2px; padding: 12px 8px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); cursor: pointer; text-align: center; }
.zm-wall .res-option-card span { font-weight: 800; font-size: 14px; }
.zm-wall .res-option-card small { font-size: 11.5px; color: var(--v2-texto-3); }
.zm-wall .res-option-card.active { border-color: var(--v2-amarillo); background: color-mix(in srgb, var(--v2-amarillo) 14%, transparent); }
.zm-wall .btn-modal-download { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; box-sizing: border-box; padding: 13px 16px; border-radius: 10px; background: var(--v2-amarillo); color: #141005; font-weight: 800; font-size: 15px; text-decoration: none; }

/* Galería de un Pokémon */
.zm-wg-resumen { margin-top: 4px; }
.zm-wg-entrada { padding: 18px 22px; margin-bottom: 20px; max-width: 880px; }
.zm-wg-entrada p { margin: 0 0 12px; font-size: 15.5px; line-height: 1.7; color: var(--v2-texto-2); }
.zm-wg-entrada p:last-child { margin: 0; }
.zm-wg-rejilla { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 30px; }
.zm-wg-poster { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--border-color); background: #050b14; min-width: 0; }
.zm-wg-img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.zm-wg-datos { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: 40px 14px 14px; background: linear-gradient(180deg, transparent, rgba(5, 11, 20, .92) 45%); color: #f5f7fc; }
.zm-wg-datos h2 { margin: 0; font: 800 15.5px/1.25 var(--font-display); color: #fff; }
.zm-wg-datos p { margin: 0; font-size: 12.5px; line-height: 1.45; color: #c9d3e2; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.zm-wg-datos .zm-wg-veces { font-size: 11.5px; color: #b4c1d4; }
.zm-wg-botones { display: flex; gap: 8px; margin-top: 4px; }
.zm-wg-btn { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 8px; border-radius: 9px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); color: #fff; font-weight: 800; font-size: 12.5px; text-decoration: none; }
.zm-wg-btn span { display: flex; flex-direction: column; align-items: center; line-height: 1.2; }
.zm-wg-btn small { font-size: .74em; font-weight: 600; }
.zm-wg-btn-m { background: var(--v2-amarillo); border-color: var(--v2-amarillo); color: #141005; }
.zm-wg-otras-c { padding: 16px 18px 18px; }
.zm-wg-legal { margin: 20px 0 0; font-size: 12.5px; color: var(--v2-texto-3); }

/* ---------- Recomendados ---------- */
.zm-shop-datos { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 14px 0 0; padding: 0; font-size: 13.5px; color: var(--v2-texto-2); }
.zm-shop-datos strong { color: var(--text-main); }
.zm-shop-aviso { margin: 0; max-width: 340px; padding: 10px 14px; border-radius: 10px; border: 1px dashed var(--border-color); font-size: 13px; line-height: 1.45; color: var(--v2-texto-2); }
.zm-shop-aviso i { color: var(--v2-activo); margin-right: 6px; }
.zm-shop-col { min-width: 0; }
.zm-shop-sec { margin-bottom: 30px; scroll-margin-top: 90px; }
.zm-shop-sec-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.zm-shop-sec-cab h2 { margin: 0; font: 800 22px var(--font-display); }
.zm-shop-sec-ico { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--v2-amarillo); color: #141005; }
.zm-shop-sec-n { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--v2-texto-3); }
.zm-shop-intro { margin: 0 0 14px; max-width: 80ch; font-size: 14.5px; line-height: 1.6; color: var(--v2-texto-2); }
.zm-shop-intro a { color: var(--v2-activo); }
.zm-shop-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.zm-prod { display: grid; grid-template-columns: 120px minmax(0, 1fr); background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 12px; overflow: hidden; color: var(--text-main); text-decoration: none; min-width: 0; }
[data-theme="dark"] .zm-prod { background: #0f1b2d; border-color: #1e2e45; }
.zm-prod:hover { border-color: #ff9900; }
.zm-prod-dest { border-left: 4px solid var(--v2-amarillo); }
.zm-prod-todo { border-style: dashed; }
.zm-prod-img { position: relative; display: grid; place-items: center; background: #fff; padding: 10px; min-height: 130px; }
.zm-prod-img img { max-width: 100%; max-height: 110px; width: auto; height: auto; object-fit: contain; }
.zm-prod-img > i { font-size: 36px; color: #c8ced8; }
.zm-prod-badge { position: absolute; top: 6px; left: 6px; max-width: calc(100% - 12px); padding: 2px 7px; border-radius: 6px; background: #c0392b; color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zm-prod-txt { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; min-width: 0; }
.zm-prod-txt h3 { margin: 0; font: 800 15px/1.28 var(--font-display); }
.zm-prod-desc { flex: 1; font-size: 13px; line-height: 1.45; color: var(--v2-texto-2); display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.zm-prod-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 12px; border-radius: 9px; background: #ff9900; color: #111; font-weight: 800; font-size: 13px; }
.zm-prod:hover .zm-prod-cta { background: #ffb53d; }
.zm-shop-nav { list-style: none; margin: 0; padding: 8px; display: grid; gap: 2px; }
.zm-shop-nav a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; color: var(--v2-texto-2); font-weight: 700; font-size: 14px; text-decoration: none; }
.zm-shop-nav a:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.zm-shop-nav i { width: 18px; text-align: center; color: var(--v2-texto-3); }
.zm-shop-nav span { flex: 1; min-width: 0; }
.zm-shop-nav b { font-size: 12px; padding: 1px 8px; border-radius: 999px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); }
.zm-shop-seguir { list-style: none; margin: 0; padding: 6px 8px 10px; display: grid; gap: 4px; }
.zm-shop-seguir a { display: flex; gap: 12px; padding: 10px; border-radius: 8px; color: var(--v2-texto-2); text-decoration: none; font-size: 13px; line-height: 1.45; }
.zm-shop-seguir a:hover { background: var(--v2-tarjeta-hover); }
.zm-shop-seguir i { margin-top: 3px; color: var(--v2-activo); }
.zm-shop-seguir strong { display: block; color: var(--text-main); font-size: 14px; }
.zm-shop-nota { margin: 8px 0 0; font-size: 12.5px; color: var(--v2-texto-3); max-width: 100ch; }

/* ---------- Buscador ---------- */
.zm-buscar-xl { max-width: 720px; padding: 7px 7px 7px 18px; }
.zm-buscar-xl input { font-size: 16.5px; padding: 12px 6px; }
.zm-bus-col { display: grid; gap: 16px; min-width: 0; }
.zm-bus-grupo { scroll-margin-top: 90px; }
.zm-bus-cab { border-bottom: 1px solid var(--border-color); }
.zm-bus-n { padding: 1px 9px; border-radius: 999px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); font-size: 12px; font-weight: 700; color: var(--v2-texto-2); }
.zm-bus-mas { margin-left: auto; font: 700 13px var(--font-primary); color: var(--v2-activo); text-decoration: none; white-space: nowrap; }
.zm-bus-mon { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 6px; }
.zm-bus-mon a { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 10px; color: inherit; text-decoration: none; min-width: 0; }
.zm-bus-mon a:hover { background: var(--v2-tarjeta-hover); }
.zm-bus-mon-img { flex: 0 0 56px; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 10px; background: var(--v2-tarjeta); }
.zm-bus-mon-img img { width: 52px; height: 52px; object-fit: contain; }
.zm-bus-mon-txt { display: grid; gap: 2px; min-width: 0; }
.zm-bus-mon-txt small { font-size: 11.5px; font-weight: 700; color: var(--v2-texto-3); }
.zm-bus-mon-txt strong { font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zm-bus-tipos { display: flex; gap: 4px; flex-wrap: wrap; }
.zm-bus-tipos em { font-style: normal; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 5px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); color: var(--v2-texto-2); }
.zm-bus-filas { list-style: none; margin: 0; padding: 6px; display: grid; }
.zm-bus-filas a { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 10px; color: inherit; text-decoration: none; }
.zm-bus-filas a:hover { background: var(--v2-tarjeta-hover); }
.zm-bus-mini { flex: 0 0 112px; width: 112px; aspect-ratio: 16 / 9; border-radius: 8px; overflow: hidden; background: var(--v2-tarjeta); }
.zm-bus-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zm-bus-fila-txt { display: grid; gap: 3px; min-width: 0; }
.zm-bus-fila-txt strong { font: 700 15px/1.35 var(--font-primary); }
.zm-bus-fila-txt small { font-size: 12.5px; color: var(--v2-texto-3); }
.zm-bus-cartas { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; padding: 14px; }
.zm-bus-cartas a { display: grid; gap: 4px; color: inherit; text-decoration: none; min-width: 0; align-content: start; }
.zm-bus-cartas img { width: 100%; aspect-ratio: 63 / 88; object-fit: contain; border-radius: 6px; }
.zm-bus-cartas strong { font-size: 12.5px; line-height: 1.3; }
.zm-bus-cartas small { font-size: 11.5px; color: var(--v2-texto-3); }
.zm-bus-cartas a:hover strong { color: var(--v2-activo); }

/* ---------- Publicidad ---------- */
.zm-pub-ey { margin: 8px 0 0 !important; font: 800 12px var(--font-display) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--v2-activo) !important; }
.zm-pub-error { margin: 0 0 16px; padding: 12px 16px; border-radius: 10px; background: color-mix(in srgb, #e5484d 14%, transparent); border: 1px solid #e5484d; color: var(--text-main); font-weight: 600; }
.zm-pub-rej { grid-template-columns: minmax(0, 1fr) 380px; }
.zm-pub-col { display: grid; gap: 16px; min-width: 0; }
.zm-pub-c { padding: 16px 18px 18px; }
.zm-pub-cifras { margin: 0 0 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.zm-pub-cifras > div { padding: 14px 16px; border-radius: 10px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); min-width: 0; }
.zm-pub-cifras dt { font-size: 12.5px; font-weight: 700; color: var(--v2-texto-3); }
.zm-pub-cifras dd { margin: 4px 0 0; font: 800 30px/1.1 var(--font-display); font-variant-numeric: tabular-nums; }
.zm-pub-cifras dd span { font-size: .6em; margin-left: 2px; }
.zm-pub-cifras dd.zm-pub-t { font: 700 14.5px/1.4 var(--font-primary); }
.zm-pub-huecos { display: grid; grid-template-columns: repeat(var(--zm-n, 2), minmax(0, 1fr)); gap: 14px; }
.zm-pub-hueco { display: grid; gap: 6px; align-content: start; padding: 14px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--v2-tarjeta); min-width: 0; }
.zm-pub-hueco h3 { margin: 4px 0 0; font: 800 15px var(--font-display); }
.zm-pub-hueco p { margin: 0; font-size: 13px; line-height: 1.45; color: var(--v2-texto-2); }
.zm-pub-hueco .zm-chip { width: fit-content; }
.zm-chip-ok { color: #0d7a3d; border-color: #0d7a3d; }
[data-theme="dark"] .zm-chip-ok { color: #3ddc84; border-color: #3ddc84; }
.zm-pub-ocupado { opacity: .6; }
.zm-pub-maqueta { display: grid; place-items: center; width: 100%; max-height: 120px; border: 2px dashed var(--border-color); border-radius: 6px; background: var(--v2-superficie); font: 700 13px var(--font-primary); color: var(--v2-texto-3); }
.zm-pub-pasos { margin: 0 0 14px; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: paso; }
.zm-pub-pasos li { counter-increment: paso; display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: var(--v2-tarjeta); font-size: 14.5px; }
.zm-pub-pasos li::before { content: counter(paso); flex: 0 0 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--v2-amarillo); color: #141005; font: 800 14px var(--font-display); }
.zm-pub-veto { padding-top: 6px; border-top: 1px dashed var(--border-color); }
.zm-pub-lado { display: grid; gap: 16px; position: sticky; top: 84px; min-width: 0; }
.zm-pub-precio { padding: 20px 22px; text-align: center; }
.zm-pub-tarifa { margin: 0; font: 800 56px/1 var(--font-display); color: var(--v2-activo); }
.zm-pub-tarifa span { font-size: .5em; margin-left: 4px; }
.zm-pub-tarifa-pie { margin: 4px 0 14px; font-weight: 700; color: var(--v2-texto-2); }
.zm-pub-incluye { margin: 0; padding: 0 0 0 18px; text-align: left; display: grid; gap: 8px; font-size: 13.5px; line-height: 1.5; color: var(--v2-texto-2); }
.zm-pub-incluye a { color: var(--v2-activo); }
.zm-pub-dudas { padding: 0 18px 18px; margin: 0; font-size: 13px; }

/* ---------- 404 ---------- */
.zm-404 { display: grid; place-items: center; padding: 30px 0 20px; }
.zm-404-caja { width: min(680px, 100%); text-align: center; padding: 40px 28px 34px; background: var(--v2-superficie); border: 1px solid var(--border-color); border-radius: 16px; }
[data-theme="dark"] .zm-404-caja { background: #0f1b2d; border-color: #1e2e45; }
.zm-404-num { margin: 0; font: 800 clamp(80px, 16vw, 140px)/1 var(--font-display); letter-spacing: -.04em; color: var(--text-main); }
.zm-404-num span { display: inline-block; width: .8em; height: .8em; margin: 0 .04em; border-radius: 50%; vertical-align: -.06em; background: linear-gradient(180deg, #e5484d 0 46%, #141005 46% 54%, #fff 54%); border: .07em solid #141005; box-sizing: border-box; color: transparent; overflow: hidden; }
.zm-404-caja h1 { margin: 8px 0 6px; font: 800 30px var(--font-display); }
.zm-404-caja h2 { margin: 0 auto 22px; max-width: 44ch; font: 500 16px/1.55 var(--font-primary); color: var(--v2-texto-2); }
.zm-404-form { margin: 24px auto 0; max-width: 480px; text-align: left; }
.zm-404-atajos { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 20px; }
.zm-404-atajos a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 10px; border: 1px solid var(--border-color); background: var(--v2-tarjeta); color: var(--text-main); font-weight: 700; font-size: 13.5px; text-decoration: none; }
.zm-404-atajos a:hover { border-color: var(--v2-amarillo); }
.zm-404-atajos i { color: var(--v2-activo); }

/* ---------- Adaptación a pantallas pequeñas ---------- */
@media (max-width: 1100px) {
    .zm-perfil-rejilla, .zm-cuenta-rej, .zm-wall-rej { grid-template-columns: minmax(0, 1fr); }
    .zm-id, .zm-cuenta-nav, .zm-wall-filtros, .zm-pub-lado, .zm-evt-prox { position: static; }
    .zm-cuenta-nav { padding: 6px; overflow-x: auto; }
    .zm-cuenta-nav .profile-tabs { display: flex; gap: 4px; }
    .zm-cuenta-nav .btn-tab { width: auto; white-space: nowrap; }
    .zm-wall .filters-wrapper { display: flex; flex-wrap: wrap; }
    .zm-wall .filter-btn { width: auto; }
    .zm-wall-filtros-t { display: none; }
    .zm-wall .wallpapers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zm-wg-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zm-evt-rej, .zm-pub-rej { grid-template-columns: minmax(0, 1fr); }
    .zm-evt-prox { order: -1; }
    .zm-pub-lado { order: -1; }
    .zm-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zm-bus-cartas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .zm-bus-mon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zm-chat .chat-app { grid-template-columns: minmax(0, 1fr); grid-template-areas: "canales" "hilo" "gente"; }
    .zm-chat .chat-info { grid-template-columns: minmax(0, 1fr); }
    .zm-chat .chat-info section:last-child, .zm-chat .chat-info section:nth-last-child(2) { grid-column: auto; }
}
@media (max-width: 760px) {
    .zm-id-portada { height: 190px; }
    .zm-id-poke { width: 160px; height: 160px; }
    .zm-favs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zm-sets a { grid-template-columns: minmax(0, 1fr) 70px auto; gap: 8px; }
    .zm-wall .wallpapers-grid { grid-template-columns: minmax(0, 1fr); }
    .zm-wall .modal-body { grid-template-columns: minmax(0, 1fr); }
    .zm-wg-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .zm-wg-datos { padding: 30px 10px 10px; }
    .zm-wg-datos p { display: none; }
    .zm-wg-botones { flex-direction: column; }
    .zm-shop-lista { grid-template-columns: minmax(0, 1fr); }
    .zm-prod { grid-template-columns: 104px minmax(0, 1fr); }
    .zm-evt { grid-template-columns: 70px minmax(0, 1fr); }
    .zm-evt-arte { display: none; }
    .zm-evt-cuerpo { padding: 12px 14px; }
    .zm-evt-link { margin-left: 0; }
    .zm-bus-cartas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zm-bus-mon { grid-template-columns: minmax(0, 1fr); }
    .zm-bus-mini { flex-basis: 84px; width: 84px; }
    .zm-pub-cifras { grid-template-columns: minmax(0, 1fr); }
    .zm-pub-huecos { grid-template-columns: minmax(0, 1fr); }
    .zm-shop-aviso { max-width: none; }
}
@media (max-width: 480px) {
    .zm-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .zm-cifra { padding: 12px; }
    .zm-cifra strong { font-size: 22px; }
}
