/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500&family=Montserrat+Alternates:wght@600;700&display=swap');

/* ===== THEME TOKENS (Light by default) ===== */
:root{
  --violet:#7A3D88;
  --pink:#E76AAE;
  --mint:#6BE3C6;

  --bg:#F7F1FA;
  --panel:#FFFFFF;
  --panel-strong:#EFE7F5;        /* cabeceras/tablas en claro */
  --text:#2E1F3B;
  --muted:#6F5B7A;
  --border:rgba(0,0,0,.08);

  --radius:14px;
  --speed:180ms;

  --bs-body-bg:var(--bg);
  --bs-body-color:var(--text);
  --bs-primary:var(--violet);
  --bs-secondary:var(--pink);
  --bs-success:var(--mint);
  --bs-border-radius:var(--radius);
}

/* ===== DARK THEME ===== */
html[data-theme="dark"]{
  --bg:#121116;
  --panel:#1C1B21;
  --panel-strong:#26242C;        /* cabeceras/tablas en oscuro */
  --text:#F2E9FB;                /* crema principal */
  --muted:rgba(255,255,255,.86); /* texto secundario legible */
  --border:rgba(255,255,255,.10);

  --bs-body-bg:var(--bg);
  --bs-body-color:var(--text);
}

/* ===== TIPOGRAFÍA ===== */
body{
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--text); background:var(--bg); line-height:1.55;
}
h1,h2,h3,h4,h5,h6,.navbar-brand{
  font-family:'Montserrat Alternates','Montserrat',sans-serif;
  font-weight:700; color:var(--text);
}
a{ color:var(--violet); text-decoration:none; }
a:hover{ text-decoration:underline; }

/* Reforzar contraste en DARK (incluye overrides Bootstrap) */
html[data-theme="dark"] body,
html[data-theme="dark"] p,
html[data-theme="dark"] li,
html[data-theme="dark"] .small,
html[data-theme="dark"] small,
html[data-theme="dark"] .form-text,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .card .small.text-muted,
html[data-theme="dark"] label,
html[data-theme="dark"] .input-group-text,
html[data-theme="dark"] .table,
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table th,
html[data-theme="dark"] .table thead th,
html[data-theme="dark"] .nav-link,
html[data-theme="dark"] .page-link{
  color:var(--muted)!important;
}
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6{ color:var(--text)!important; }
html[data-theme="dark"] a{ color:#CDA6E3!important; }
html[data-theme="dark"] a:hover{ color:#EBD6F5!important; }

/* ===== NAVBAR ===== */
.navbar{ background:linear-gradient(135deg,var(--violet),var(--pink)); }
.navbar .navbar-brand,.navbar .nav-link{ color:#fff!important; }
.navbar .nav-link:hover{ text-decoration:underline; }

/* Buscador pill */
.search-bar{
  background:rgba(255,255,255,.25); border-radius:999px;
  padding:4px; display:flex; gap:6px; align-items:center;
}
html[data-theme="dark"] .search-bar{ background:rgba(0,0,0,.28); }
.search-bar .form-control{
  background:transparent; border:0; color:#fff!important; padding-left:14px; min-width:260px;
}
.search-bar .form-control::placeholder{ color:rgba(255,255,255,.85)!important; }
.search-bar .btn{ border-radius:999px; background:rgba(255,255,255,.25); border:0; color:#fff; }
.search-bar .btn:hover{ background:rgba(255,255,255,.4); }

/* Toggle tema */
#themeToggle.btn{ border-radius:999px; border:0; background:rgba(255,255,255,.25); color:#fff; }
#themeToggle.btn:hover{ background:rgba(255,255,255,.4); }

/* ===== FORMS (incluye admin) ===== */
.form-label{ color:var(--text); }
.form-control,.form-select,textarea{
  background:var(--panel); color:var(--text); border:1px solid var(--border);
}
.form-control:focus,.form-select:focus,textarea:focus{
  border-color:var(--violet); box-shadow:none; outline:2px solid var(--violet);
}
.form-control::placeholder,.form-select::placeholder,textarea::placeholder{ color:#8a7697; }
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] textarea{
  background:var(--panel)!important; color:var(--text)!important; border-color:var(--border)!important;
}
html[data-theme="dark"] .form-control::placeholder,
html[data-theme="dark"] .form-select::placeholder,
html[data-theme="dark"] textarea::placeholder{
  color:rgba(255,255,255,.70)!important;
}

/* ===== TABLAS (admin) ===== */
.table{ color:var(--text); }
.table td,.table th{ border-color:var(--border); }
.table thead th{ color:var(--text); background:var(--panel-strong); border-bottom:1px solid var(--border); }

/* ===== CARDS ===== */
.card{
  background-color:var(--panel); border:1px solid var(--border);
  box-shadow:0 2px 8px rgba(0,0,0,.06);
  transition:transform var(--speed), box-shadow var(--speed);
  border-radius:var(--radius); color:var(--text);
}
.card:hover{ transform:translateY(-4px); box-shadow:0 10px 22px rgba(0,0,0,.12); }
.card-title a{ color:var(--violet); }
html[data-theme="dark"] .card-title a{ color:#8ED1FF!important; }

/* Imagen 16:9 + overlay */
.card-img-top{
  aspect-ratio:16/9; object-fit:cover;
  border-top-left-radius:var(--radius); border-top-right-radius:var(--radius);
  position:relative;
}
.card-img-top::after{
  content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(45deg,rgba(122,61,136,.18) 0,rgba(122,61,136,.18) 22px,rgba(231,106,174,.18) 22px,rgba(231,106,174,.18) 44px),
                 linear-gradient(to bottom,rgba(0,0,0,0) 60%,rgba(0,0,0,.28) 100%);
  pointer-events:none;
}
.card-title{ line-height:1.25; }
.card .small.text-muted i{ opacity:.95; }

/* Chips */
.badge.tag-chip{ background:#fff; border:1px solid var(--violet); color:var(--violet); font-weight:600; }
html[data-theme="dark"] .badge.tag-chip{ background:transparent; border-color:#B98FD1; color:#EED7F6; }

/* Botones */
.btn-primary{ background-color:var(--violet); border-color:var(--violet); }
.btn-primary:hover{ background-color:var(--pink); border-color:var(--pink); }
.btn-outline-primary{ color:var(--violet); border-color:var(--violet); }
.btn-outline-primary:hover{ background:var(--violet); color:#fff; }

/* Focus accesible */
a:focus,button:focus,input:focus,select:focus,textarea:focus{
  outline:2px solid var(--violet)!important; outline-offset:2px; box-shadow:none!important;
}

/* Footer */
footer{ background:transparent; color:var(--muted); }

/* Meta (categoría + icono) */
.card .small.text-muted,.text-muted{ color:#6F5B7A; }
html[data-theme="dark"] .card .small.text-muted,
html[data-theme="dark"] .text-muted{ color:var(--muted)!important; }

/* ------- Rich content (detalle) ------- */
.content-body{ color:var(--text); }
.content-body p{ margin:.85rem 0; }
.content-body h3{ margin:1.75rem 0 .75rem; font-weight:700; color:var(--text); }
.content-body h4,.content-body h5{ margin:1.25rem 0 .5rem; font-weight:600; color:var(--text); }
.content-body ul,.content-body ol{ padding-left:1.25rem; margin:.5rem 0 1rem; }
.content-body li{ margin:.25rem 0; }
.content-body blockquote{
  margin:1rem 0; padding:.75rem 1rem;
  border-left:4px solid rgba(122,61,136,.35);
  background:rgba(122,61,136,.06); border-radius:.5rem; color:var(--text);
}
.content-body a{ text-decoration:underline; text-underline-offset:2px; }
.content-body .tiktok-embed{ margin:16px auto!important; }

/* Links page */
.links-hero{ background:linear-gradient(135deg,rgba(122,61,136,.08),rgba(231,106,174,.08)); border-radius:var(--radius); color:var(--text); }
.link-card .link-thumb::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.35),rgba(0,0,0,0) 55%);
  border-top-left-radius:var(--radius); border-top-right-radius:var(--radius); pointer-events:none;
}
.link-card .card-title{ color:var(--violet); }
html[data-theme="dark"] .link-card .card-title{ color:#CDA6E3!important; }

/* Asegurar visibilidad de AddToAny */
.a2a_kit a{ display:inline-block!important; }
.a2a_kit svg,.a2a_kit img{ width:32px; height:32px; }
.a2a_kit.a2a_kit_size_32 a{ margin-right:6px; }

/* =========================
   ADMIN – modo claro (forzar contraste)
   ========================= */
html:not([data-theme="dark"]) body{ color:#2E1F3B!important; }
html:not([data-theme="dark"]) .table,
html:not([data-theme="dark"]) .table *,
html:not([data-theme="dark"]) a,
html:not([data-theme="dark"]) .nav-link,
html:not([data-theme="dark"]) h1,
html:not([data-theme="dark"]) h2,
html:not([data-theme="dark"]) h3,
html:not([data-theme="dark"]) h4,
html:not([data-theme="dark"]) h5,
html:not([data-theme="dark"]) h6,
html:not([data-theme="dark"]) .card-title{ color:#2E1F3B!important; }

html:not([data-theme="dark"]) .text-muted,
html:not([data-theme="dark"]) .form-text{ color:#6f5b7a!important; }

html:not([data-theme="dark"]) .form-control,
html:not([data-theme="dark"]) .form-select{
  color:#2E1F3B!important; background:#fff!important; border-color:rgba(0,0,0,.15)!important;
}
html:not([data-theme="dark"]) .btn-outline-secondary{
  color:#2E1F3B!important; border-color:rgba(0,0,0,.2)!important;
}
html:not([data-theme="dark"]) .btn-outline-secondary:hover{ background:rgba(0,0,0,.05)!important; }
html:not([data-theme="dark"]) .admin-search .form-control::placeholder{ color:#6f5b7a!important; }

/* ====== Admin table helper (usarlo en vistas admin) ====== */
.table.admin-table thead th{ background:var(--panel-strong); }
.table.admin-table tbody td{ background:var(--panel); }

/* ====== Tops compactos (home) ====== */
.top-compact .mini{
  background:var(--panel); border:1px solid var(--border); border-radius:16px;
  overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.top-compact .mini-img{ aspect-ratio:16/9; object-fit:cover; width:100%; }
.top-compact .mini-body{ padding:12px 14px; }
.top-compact .mini-meta{ display:flex; gap:14px; font-size:.9rem; color:var(--muted); align-items:center; }
.top-compact .mini-meta i{ opacity:.9; }
.section-top{ margin-top:28px; }
.badge-approve{ background:#22c55e!important; color:#fff!important; }
.badge-pending{ background:#f59e0b!important; color:#fff!important; }
/* ====== TOP COMPACT (igualar alturas) ====== */
.top-compact .card.card-mini {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.card-mini .thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
  display: block;
}

.card-mini .card-body {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

/* Título compacto: exactamente 2 líneas, mismo alto en todas */
.card-mini .mini-title {
  margin: .25rem 0 .2rem;
  line-height: 1.25;
  font-weight: 700;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  /* la siguiente asegura altura mínima uniforme incluso sin webkit */
  min-height: calc(1.25em * 2);
}
.card-mini .mini-title a { color: var(--text); text-decoration: none; }
.card-mini .mini-title a:hover { text-decoration: underline; }

/* Los stats se pegan al fondo de la card para igualar alturas */
.card-mini .meta-row {
  margin-top: auto;
  display: flex;
  gap: 14px;
  color: var(--muted);
}
.card-mini .meta-row i { opacity: .9; }
