/* ══════════════════════════════════════════════════════════════════════════
   Paneles admin (index.html = Twitch, admin-kick, admin-youtube, admin-tiktok)
   Maquetación común. Se carga DESPUÉS del <style> de cada panel y solo toca
   disposición y tamaños: los colores de marca siguen en el :root de cada uno.
   ══════════════════════════════════════════════════════════════════════════ */

/* Variables que Sistema / Sonidos / Guía usaban sin estar definidas (cajas sin fondo) */
:root { --surface: var(--bg2); --surface2: var(--bg3); }

/* ── Tarjetas de canal: cada una mide lo que tiene ──
   Antes el grid estiraba todas las de una fila a la altura de la más alta. */
.channels-grid { align-items: start; }

/* Cabecera: el nombre largo se recorta; plan, foto y avisos nunca se salen */
.channel-card-header { gap: 10px; }
.channel-card-header > .channel-name { flex: 1 1 auto; min-width: 0; }
.channel-card-header > :not(.channel-name) { flex-shrink: 0; }
.channel-name-texto, .channel-name > div > div:first-child {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.channel-name > div { min-width: 0; }
.channel-name svg { flex-shrink: 0; }
.badge-plan { white-space: nowrap; flex-shrink: 0; }

/* Botones: nunca parten su texto; si no caben en una fila, bajan a la siguiente */
.btn { white-space: nowrap; }
.channel-card-actions { flex-wrap: wrap; }

/* Fila de toggles: etiqueta encima y pastillas a todo el ancho */
.toggles-fila { margin-bottom: 16px; }
.toggles-fila-label {
  display: block; font-size: 11px; color: var(--muted);
  letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px;
}
.toggles-fila .toggle-dots { margin-top: 0; }

/* Personalidad / Presentación: 3 líneas y «ver más» (solo si el texto no cabe) */
.channel-personality-text.recortable {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.channel-personality.abierto .channel-personality-text.recortable { display: block; -webkit-line-clamp: unset; }
.ver-mas {
  background: none; border: none; padding: 0; margin-top: 6px; cursor: pointer;
  font: inherit; font-size: 12px; font-weight: 600; color: var(--muted);
}
.ver-mas:hover { color: var(--text); }

/* Barra superior: si los botones globales no caben (tablet con la barra lateral
   abierta, o móvil) bajan a otra fila en vez de ensanchar la página */
.topbar { flex-wrap: wrap; gap: 10px 16px; }
.topbar-right { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

/* Toast informativo (antes salía con ❌) */
.toast.info { border-left: 3px solid var(--blue); }

/* Paginación y cabeceras que no caben en pantallas estrechas */
.pagination { flex-wrap: wrap; }
.memory-card-header { flex-wrap: wrap; gap: 6px 12px; }
.table-header { flex-wrap: wrap; gap: 10px; }

/* ── Sonidos ── */
.snd-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 16px; }
.snd-tabla-caja { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.snd-tabla-caja table { min-width: 560px; }

/* ── Lista paginada común (czAdmin.lista) ── */
.czl-barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.czl-buscar {
  flex: 1 1 200px; max-width: 300px; min-width: 0; padding: 8px 12px; border-radius: 10px;
  border: 1px solid var(--border); background: rgba(255,255,255,0.04); color: var(--text);
  font-family: 'DM Sans', sans-serif; font-size: 13px; outline: none;
}
.czl-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 20px;
  background: rgba(255,255,255,0.03); border: 1px solid var(--border); color: var(--muted);
  font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.czl-chip.activo { color: var(--text); background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.25); }
.czl-chip span { font-size: 11px; opacity: 0.75; }
.czl-cuenta { font-size: 12px; color: var(--muted); margin-left: auto; }
.czl-vacio { text-align: center; padding: 28px 12px; color: var(--muted); font-size: 13px; }
.czl-nota { font-size: 12px; color: var(--yellow); margin-top: 8px; }

/* Selector de canal con buscador (input + datalist) */
.cz-canal-input { width: 100%; }

/* ── Móvil ── */
@media (max-width: 768px) {
  /* Los botones globales de arriba bajan a su propia fila en vez de ensanchar la página */
  .topbar { flex-wrap: wrap; gap: 10px; padding: 14px 16px; }
  .topbar-right { flex-wrap: wrap; gap: 6px; width: 100%; }
  .topbar-right .btn { padding: 6px 10px !important; font-size: 11px !important; }
  .topbar-status { padding: 5px 10px; font-size: 11px; }
  .content { padding: 20px 16px; }
  .channel-card { padding: 20px; }
  .modal { padding: 26px 20px; }
  .czl-buscar { max-width: none; }
  .czl-cuenta { margin-left: 0; width: 100%; }
}

/* Buscadores de Memoria y Usuarios a todo el ancho en móvil (tenían 220-240px fijos) */
@media (max-width: 768px) {
  #memoryFilter, #memorySearch, #userSearch, .channel-search input { width: 100% !important; }
  #page-memoria .form-input { flex: 1 1 100%; }
}
