/* ============================================================
   Rastro Digital de Málaga — Diseño web v4
   Paleta: azul Málaga #1976D2, fondo #f0f5ff, naranja #e67e22
   ============================================================ */

/* ── Bootstrap variable overrides (deben ir primero) ─────── */
:root {
  --bs-primary:         #1976D2;
  --bs-primary-rgb:     25, 118, 210;
  --bs-link-color:      #1976D2;
  --bs-link-hover-color:#1565C0;
  --bs-success:         #1976D2;
  --bs-success-rgb:     25, 118, 210;
  --bs-warning:         #e67e22;
  --bs-warning-rgb:     230, 126, 34;
  --bs-border-radius:         10px;
  --bs-border-radius-sm:      8px;
  --bs-border-radius-lg:      16px;
  --bs-border-radius-xl:      20px;
  --bs-border-radius-pill:    50rem;
}

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --c-bg:        #f0f5ff;
  --c-surface:   #ffffff;
  --c-border:    #dce8f7;
  --c-text:      #0d1f3c;
  --c-muted:     #5a7299;
  --c-primary:   #1976D2;
  --c-primary-d: #1565C0;
  --c-primary-l: #e3f2fd;
  --c-accent:    #e67e22;
  --c-accent-l:  #fdf3e7;
  --c-success:   #1976D2;
  --c-warning:   #e67e22;
  --c-danger:    #c0392b;
  --c-nav:       #ffffff;
  --c-nav-hover: rgba(25,118,210,.08);
  --radius-sm:   8px;
  --radius:      12px;
  --radius-lg:   16px;
  --radius-xl:   20px;
  --shadow-sm:   0 2px 8px rgba(0,0,0,.06);
  --shadow:      0 4px 16px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.04);
  --shadow-lg:   0 10px 30px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
  --transition:  .18s ease;
}

/* ── Base ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  background: var(--c-bg);
  color: var(--c-text);
  font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--c-primary); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--c-primary-d); }

/* ── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: var(--c-bg); }
::-webkit-scrollbar-thumb { background: #b0c8e8; border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: #8eb0d8; }

/* ── Navbar ─────────────────────────────────────────────────── */
.foro-navbar {
  background: var(--c-nav) !important;
  border-bottom: 1px solid var(--c-border);
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
  padding: .4rem 1.25rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.foro-navbar .navbar-brand {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -.4px;
  color: var(--c-primary) !important;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .15rem 0;
}
.foro-navbar .foro-brand img {
  display: block;
  transition: opacity var(--transition), transform var(--transition);
}
.foro-navbar .foro-brand:hover img {
  opacity: .88;
  transform: scale(1.02);
}
.foro-navbar .navbar-brand .brand-icon {
  width: 34px; height: 34px;
  background: var(--c-primary);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: .95rem; color: #fff;
}
.foro-navbar .nav-link {
  color: var(--c-text) !important;
  font-size: .875rem;
  font-weight: 500;
  padding: .4rem .75rem !important;
  border-radius: var(--radius-sm);
  transition: background var(--transition), color var(--transition);
}
.foro-navbar .nav-link:hover,
.foro-navbar .nav-link.active {
  color: var(--c-primary) !important;
  background: var(--c-nav-hover);
}
.foro-navbar .nav-link .bi { font-size: .85rem; }

.foro-navbar .nav-search .form-control {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  color: var(--c-text);
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  font-size: .85rem;
  transition: background var(--transition), border-color var(--transition);
}
.foro-navbar .nav-search .form-control::placeholder { color: var(--c-muted); }
.foro-navbar .nav-search .form-control:focus {
  background: #fff;
  border-color: var(--c-primary);
  box-shadow: none;
  color: var(--c-text);
}
.foro-navbar .nav-search .btn {
  background: var(--c-primary);
  border: 1px solid var(--c-primary);
  border-left: none;
  color: #fff;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.foro-navbar .nav-search .btn:hover { background: var(--c-primary-d); }

/* Avatar in navbar */
.foro-navbar .nav-avatar {
  width: 30px; height: 30px;
  border-radius: 50%;
  border: 2px solid var(--c-border);
  object-fit: cover;
}

/* Notification badge */
.notif-badge {
  position: absolute;
  top: 2px; right: 2px;
  width: 8px; height: 8px;
  background: var(--c-danger);
  border-radius: 50%;
  border: 2px solid #fff;
}

/* Registration button */
.foro-navbar .btn-register {
  background: var(--c-primary);
  border: none;
  color: #fff !important;
  font-size: .82rem;
  font-weight: 700;
  padding: .4rem 1rem;
  border-radius: 99px;
  transition: opacity var(--transition), transform var(--transition);
}
.foro-navbar .btn-register:hover { background: var(--c-primary-d); transform: translateY(-1px); }

/* Hamburger */
.foro-navbar .navbar-toggler { border: 1px solid var(--c-border) !important; color: var(--c-text) !important; }

/* Dropdown */
.foro-navbar .dropdown-menu {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: .5rem;
  min-width: 200px;
}
.foro-navbar .dropdown-menu .px-3 {
  color: var(--c-text) !important;
}
.foro-navbar .dropdown-menu .fw-bold { color: var(--c-text) !important; }
.foro-navbar .dropdown-item {
  color: var(--c-text);
  border-radius: var(--radius-sm);
  padding: .45rem .75rem;
  font-size: .875rem;
  transition: background var(--transition), color var(--transition);
}
.foro-navbar .dropdown-item:hover { background: var(--c-nav-hover); color: var(--c-primary); }
.foro-navbar .dropdown-divider { border-color: var(--c-border); }

/* ── Layout ─────────────────────────────────────────────────── */
.foro-main { padding: 1.5rem 1.25rem; }
.foro-content-col { max-width: 100%; }
.foro-sidebar { position: sticky; top: 70px; }

/* ── Bootstrap .card global override ───────────────────────── */
.card {
  background: var(--c-surface);
  border: 1px solid var(--c-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--transition), transform var(--transition);
}
.card:hover { box-shadow: var(--shadow); }
.card-header {
  background: #f0f7ff !important;
  border-bottom: 1px solid var(--c-border) !important;
  padding: .75rem 1.1rem;
  font-weight: 700;
  font-size: .85rem;
  color: var(--c-text);
}
.card-body { padding: 1.1rem; }
.card-footer {
  background: #f0f7ff !important;
  border-top: 1px solid var(--c-border) !important;
}

/* ── Cards ──────────────────────────────────────────────────── */
.foro-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.foro-card:hover { box-shadow: var(--shadow); }
.foro-card .card-header {
  background: #f0f7ff !important;
  border-bottom: 1px solid var(--c-border);
  padding: .75rem 1.1rem;
  font-weight: 700;
  font-size: .85rem;
  color: var(--c-text);
}

/* ── Flash Messages ─────────────────────────────────────────── */
.foro-flash {
  border-radius: var(--radius);
  border: none;
  font-size: .9rem;
  font-weight: 500;
}
.foro-flash.alert-success { background: #e3f2fd; color: #1565C0; border-left: 4px solid var(--c-primary); }
.foro-flash.alert-danger  { background: #fdf0ef; color: #7c1f1a; border-left: 4px solid var(--c-danger); }

/* ── Hero / Stats Bar ───────────────────────────────────────── */
.foro-hero {
  background: linear-gradient(135deg, #1976D2 0%, #1565C0 55%, #0d47a1 100%);
  border-radius: var(--radius-lg);
  padding: 2rem 2.5rem;
  color: #fff;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.foro-hero::before {
  content: '';
  position: absolute;
  top: -50%; right: -10%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(230,126,34,.2) 0%, transparent 70%);
  pointer-events: none;
}
.foro-hero::after {
  content: '';
  position: absolute;
  bottom: -30%; left: 30%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(255,255,255,.06) 0%, transparent 70%);
  pointer-events: none;
}
.foro-hero .hero-title { font-size: 1.6rem; font-weight: 800; letter-spacing: -.4px; }
.foro-hero .hero-sub   { color: rgba(255,255,255,.7); font-size: .9rem; }

.foro-stat-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 99px;
  padding: .35rem .85rem;
  font-size: .82rem;
  font-weight: 600;
  color: rgba(255,255,255,.92);
  transition: background var(--transition);
}
.foro-stat-pill:hover { background: rgba(255,255,255,.18); }
.foro-stat-pill .dot { width: 7px; height: 7px; background: #6ee7a8; border-radius: 50%; animation: pulse 2s infinite; }

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .6; transform: scale(.8); }
}

/* ── Category Header ────────────────────────────────────────── */
.foro-category-header {
  position: relative;
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .9rem 1.1rem;
  margin-bottom: .5rem;
  border-radius: var(--radius, 10px);
  overflow: hidden;
  background: linear-gradient(135deg, var(--c-primary) 0%, color-mix(in srgb, var(--c-primary) 65%, #000) 100%);
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  min-height: 54px;
  background-size: cover;
  background-position: center;
}
.foro-category-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.05) 100%);
  z-index: 0;
}
.foro-category-header > * { position: relative; z-index: 1; }
.foro-category-header h5 {
  font-size: .88rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #fff;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0,0,0,.4);
}
.foro-category-header small {
  color: rgba(255,255,255,.8) !important;
  font-size: .75rem;
  text-shadow: 0 1px 3px rgba(0,0,0,.35);
}

/* ── Reply box mejorado ─────────────────────────────────────── */
#responder {
  border: 2px solid var(--c-primary) !important;
  border-radius: var(--radius-lg) !important;
}

/* ── Forum Row ──────────────────────────────────────────────── */
.foro-forum-row {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
  position: relative;
  overflow: hidden;
}
.foro-forum-row::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--c-primary);
  opacity: 0;
  transition: opacity var(--transition);
}
.foro-forum-row:hover {
  border-color: #90caf9;
  box-shadow: var(--shadow);
  transform: translateX(2px);
}
.foro-forum-row:hover::before { opacity: 1; }
.foro-forum-unread { border-color: #f39c12 !important; background: #fffbf5 !important; }
.foro-forum-unread::before { background: #e67e22 !important; opacity: 1 !important; }
.foro-forum-unread:hover { border-color: #e67e22 !important; }
.foro-unread-dot {
  position: absolute; top: 2px; right: 2px;
  width: 10px; height: 10px; border-radius: 50%;
  background: #e67e22; border: 2px solid #fff;
}

.foro-forum-icon {
  width: 48px; height: 48px;
  background: var(--c-primary-l);
  border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  color: var(--c-primary);
  flex-shrink: 0;
  transition: background var(--transition), transform var(--transition);
}
.foro-forum-row:hover .foro-forum-icon {
  background: #bbdefb;
  transform: scale(1.05);
}
.foro-forum-icon img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--radius); }

.foro-forum-name {
  font-weight: 600;
  font-size: .975rem;
  color: var(--c-text);
  transition: color var(--transition);
}
.foro-forum-name:hover { color: var(--c-primary); }

.foro-forum-stat {
  text-align: center;
  min-width: 60px;
}
.foro-forum-stat .stat-num { font-size: 1rem; font-weight: 700; color: var(--c-text); }
.foro-forum-stat .stat-lbl { font-size: .72rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: .04em; }

.foro-forum-last { font-size: .8rem; }
.foro-forum-last .last-title { color: var(--c-text); font-weight: 500; }
.foro-forum-last .last-meta  { color: var(--c-muted); }

/* ── Thread Table ───────────────────────────────────────────── */
.foro-thread-list { display: flex; flex-direction: column; gap: .4rem; }

.foro-thread-item {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: .85rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
  position: relative;
}
.foro-thread-item:hover {
  border-color: #90caf9;
  box-shadow: var(--shadow);
  transform: translateX(3px);
}
.foro-thread-item.is-featured { border-left: 3px solid var(--c-accent); background: var(--c-accent-l); }
.foro-thread-item.is-sticky   { border-left: 3px solid var(--c-danger); }
.foro-thread-item.is-locked   { opacity: .85; }

.foro-thread-icon {
  width: 38px; height: 38px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.foro-thread-icon.normal   { background: var(--c-primary-l); color: var(--c-primary); }
.foro-thread-icon.sticky   { background: #fdf0ef; color: var(--c-danger); }
.foro-thread-icon.locked   { background: #f4f4f2; color: var(--c-muted); }
.foro-thread-icon.featured { background: var(--c-accent-l); color: var(--c-accent); }

.foro-thread-title {
  font-weight: 600;
  font-size: .94rem;
  color: var(--c-text);
  display: block;
  transition: color var(--transition);
  line-height: 1.35;
}
.foro-thread-title:hover { color: var(--c-primary); }

.foro-thread-meta { font-size: .78rem; color: var(--c-muted); margin-top: .15rem; }
.foro-thread-meta a { color: var(--c-muted); font-weight: 500; }
.foro-thread-meta a:hover { color: var(--c-primary); }

.foro-thread-counter {
  text-align: center;
  flex-shrink: 0;
  min-width: 52px;
}
.foro-thread-counter .cnt { font-size: .95rem; font-weight: 700; color: var(--c-text); }
.foro-thread-counter .lbl { font-size: .7rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: .03em; }

.foro-thread-last { font-size: .78rem; min-width: 120px; flex-shrink: 0; }

/* ── Post Card ──────────────────────────────────────────────── */
.foro-post {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  margin-bottom: 1rem;
  overflow: hidden;
  transition: box-shadow var(--transition);
  scroll-margin-top: 80px;
}
.foro-post:hover { box-shadow: var(--shadow); }
.foro-post:target {
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(25,118,210,.12);
  animation: highlight .6s ease;
}
@keyframes highlight {
  0%   { background: var(--c-primary-l); }
  100% { background: var(--c-surface); }
}

/* Author column */
.foro-post-author {
  width: 160px;
  min-width: 160px;
  background: #f0f7ff;
  border-right: 1px solid var(--c-border);
  padding: 1.25rem .85rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
}

.foro-post-avatar {
  width: 70px; height: 70px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--c-border);
  transition: border-color var(--transition), transform var(--transition);
}
.foro-post-avatar:hover { border-color: var(--c-primary); transform: scale(1.04); }

.foro-post-username {
  font-weight: 700;
  font-size: .875rem;
  color: var(--c-text);
  transition: color var(--transition);
}
.foro-post-username:hover { color: var(--c-primary); }

.foro-post-group-badge {
  font-size: .7rem;
  padding: .2rem .55rem;
  border-radius: 99px;
  font-weight: 600;
}
.foro-post-rank-badge {
  font-size: .68rem;
  padding: .2rem .55rem;
  border-radius: 99px;
  font-weight: 600;
}

.foro-post-stat {
  font-size: .72rem;
  color: var(--c-muted);
  display: flex;
  align-items: center;
  gap: .3rem;
}
.foro-post-stat .bi { color: var(--c-muted); }

/* Post body */
.foro-post-body { flex: 1; min-width: 0; }

.foro-post-topbar {
  padding: .6rem 1.1rem;
  background: #f0f7ff;
  border-bottom: 1px solid var(--c-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .8rem;
  color: var(--c-muted);
}

.foro-post-number {
  font-weight: 700;
  color: var(--c-primary);
  font-size: .78rem;
}

.foro-post-content {
  padding: 1.1rem;
  font-size: .94rem;
  line-height: 1.75;
}
.foro-post-content img { max-width: 100%; border-radius: var(--radius-sm); margin: .3rem 0; }
.foro-post-content blockquote {
  border-left: 3px solid var(--c-primary);
  background: var(--c-primary-l);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: .75rem 1rem;
  margin: .75rem 0;
  font-size: .9rem;
}
.foro-post-content blockquote cite { font-weight: 700; color: var(--c-primary); font-style: normal; }
.foro-post-content pre {
  background: #0d1b2e;
  color: #cce0f5;
  border-radius: var(--radius);
  padding: 1rem;
  font-size: .84rem;
  overflow-x: auto;
}

/* Signature */
.foro-signature {
  padding: .6rem 1.1rem;
  border-top: 1px dashed var(--c-border);
  font-size: .8rem;
  color: var(--c-muted);
  font-style: italic;
}

/* Post actions bar */
.foro-post-actions {
  padding: .6rem 1.1rem;
  border-top: 1px solid var(--c-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
}

/* Like button */
.like-btn {
  border-radius: 99px !important;
  transition: all var(--transition) !important;
  font-size: .82rem;
}
.like-btn.btn-primary { background: var(--c-primary) !important; border-color: var(--c-primary) !important; }
.like-btn:not(.btn-primary):hover { background: var(--c-primary-l) !important; border-color: var(--c-primary) !important; color: var(--c-primary) !important; }

/* Stars */
.rating-star { cursor: pointer; transition: transform var(--transition), color var(--transition); }
.rating-star:hover { transform: scale(1.2); }

/* Quote button */
.quote-btn { border-radius: 99px !important; font-size: .82rem; }

/* ── Reply Box ──────────────────────────────────────────────── */
#responder {
  border: 2px solid var(--c-primary);
  border-radius: var(--radius-lg);
  box-shadow: 0 0 0 4px rgba(25,118,210,.08);
}
#responder .card-header {
  background: var(--c-primary-l);
  border-bottom: 1px solid #bbdefb;
  color: var(--c-primary-d);
  font-weight: 600;
}

/* BBCode toolbar */
.foro-bbcode-toolbar {
  background: #f0f7ff;
  border: 1px solid var(--c-border);
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
  padding: .5rem .6rem;
  gap: .25rem;
}
.foro-bbcode-toolbar .btn {
  border-radius: var(--radius-sm) !important;
  font-size: .8rem;
  padding: .25rem .5rem;
  line-height: 1.4;
}
#editor {
  border-radius: 0 0 var(--radius) var(--radius) !important;
  border-top: none !important;
  resize: vertical;
  min-height: 140px;
}
#editor:focus { box-shadow: none !important; border-color: var(--c-border) !important; }

/* ── Spoiler ────────────────────────────────────────────────── */
.foro-spoiler {
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  margin: .6rem 0;
  overflow: hidden;
}
.foro-spoiler summary {
  padding: .5rem .9rem;
  cursor: pointer;
  background: #f0f7ff;
  font-weight: 600;
  font-size: .85rem;
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: .5rem;
  transition: background var(--transition);
}
.foro-spoiler summary::before {
  content: '▶';
  font-size: .7rem;
  transition: transform var(--transition);
  color: var(--c-muted);
}
.foro-spoiler[open] summary::before { transform: rotate(90deg); }
.foro-spoiler summary:hover { background: #e3f0fc; }
.foro-spoiler[open] summary { border-bottom: 1px solid var(--c-border); }
.foro-spoiler-body { padding: .85rem; }

/* ── Pagination ─────────────────────────────────────────────── */
.pagination .page-link {
  border-radius: 20px !important;
  border: 1px solid var(--c-border);
  color: var(--c-text);
  font-size: .85rem;
  margin: 0 2px;
  min-width: 36px;
  text-align: center;
  background: #fff;
  font-weight: 500;
  transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}
.pagination .page-link:hover { background: var(--c-primary-l); border-color: var(--c-primary); color: var(--c-primary); transform: translateY(-1px); }
.pagination .page-item.active .page-link { background: var(--c-primary); border-color: var(--c-primary); color: #fff; font-weight: 700; }
.pagination .page-item.disabled .page-link { opacity: .45; }

/* ── Badges ─────────────────────────────────────────────────── */
.badge {
  border-radius: 99px;
  font-weight: 600;
  letter-spacing: .02em;
  padding: .3em .7em;
  font-size: .72rem;
}
.badge.rounded-pill { border-radius: 99px; }

/* ── Breadcrumb ─────────────────────────────────────────────── */
.breadcrumb {
  font-size: .8rem;
  margin-bottom: 0;
}
.breadcrumb-item + .breadcrumb-item::before { color: var(--c-muted); }
.breadcrumb-item a { color: var(--c-muted); }
.breadcrumb-item a:hover { color: var(--c-primary); }

/* ── Sidebar Widgets ────────────────────────────────────────── */
.widget-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  margin-bottom: 1rem;
}
.widget-card .card-header {
  background: #f0f7ff;
  border-bottom: 1px solid var(--c-border);
  padding: .65rem 1rem;
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--c-primary);
}
.widget-card .card-body { padding: .85rem; font-size: .875rem; }
.widget-card .list-unstyled li { padding: .35rem 0; }
.widget-card .list-unstyled li:not(:last-child) { border-bottom: 1px solid var(--c-bg); }

/* ── Footer ─────────────────────────────────────────────────── */
.foro-footer {
  background: var(--c-primary-d);
  color: rgba(255,255,255,.55);
  padding: 1.5rem 1.5rem;
  font-size: .82rem;
  margin-top: 2.5rem;
}
.foro-footer a { color: rgba(255,255,255,.65); }
.foro-footer a:hover { color: #fff; }
.foro-footer strong { color: rgba(255,255,255,.9); }

/* ── Thread Header ──────────────────────────────────────────── */
.foro-thread-header {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: var(--shadow-sm);
}
.foro-thread-header h5 { font-size: 1.15rem; font-weight: 700; letter-spacing: -.2px; }

.foro-thread-actions .btn { border-radius: 99px; font-size: .8rem; }

/* ── Alert styles ───────────────────────────────────────────── */
.alert { border-radius: var(--radius); border: 1px solid transparent; font-size: .9rem; }
.alert-warning { background: var(--c-accent-l); border-color: #f0b27a; color: #7d4500; }
.alert-info    { background: var(--c-primary-l); border-color: #a8d5bc; color: var(--c-primary-d); }

/* ── Forms ──────────────────────────────────────────────────── */
.form-control, .form-select {
  border-radius: 10px;
  border-color: var(--c-border);
  font-size: .9rem;
  background: #fff;
  padding: .55rem .85rem;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus, .form-select:focus {
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(25,118,210,.12);
  background: #fff;
}
.form-control-sm { border-radius: 8px; }
.form-label { font-size: .875rem; font-weight: 600; color: var(--c-text); margin-bottom: .35rem; }
.input-group .form-control { border-radius: 10px 0 0 10px !important; }
.input-group .form-control:last-child { border-radius: 0 10px 10px 0 !important; }
.input-group .btn:last-child { border-radius: 0 10px 10px 0 !important; }
.input-group .btn:first-child { border-radius: 10px 0 0 10px !important; }

/* ── Buttons ────────────────────────────────────────────────── */
.btn {
  border-radius: 24px;
  font-weight: 600;
  font-size: .875rem;
  padding: .5rem 1.25rem;
  transition: all var(--transition);
  letter-spacing: .01em;
}
.btn-sm { border-radius: 20px; padding: .35rem .9rem; font-size: .82rem; }
.btn-lg { border-radius: 28px; padding: .7rem 1.75rem; }
.btn-xs { border-radius: 16px; padding: .2rem .6rem; font-size: .75rem; }
.btn-primary { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn-primary:hover { background: var(--c-primary-d); border-color: var(--c-primary-d); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(25,118,210,.35); }
.btn-primary:active { transform: translateY(0); }
.btn-success { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn-success:hover { background: var(--c-primary-d); border-color: var(--c-primary-d); color: #fff; }
.btn-outline-primary { color: var(--c-primary); border-color: var(--c-primary); }
.btn-outline-primary:hover { background: var(--c-primary); border-color: var(--c-primary); color: #fff; transform: translateY(-1px); }
.btn-outline-secondary { border-radius: 24px; }
.btn-outline-danger { border-radius: 24px; }
.btn-outline-warning { border-radius: 24px; }
.btn-secondary { border-radius: 24px; }
.btn-danger { border-radius: 24px; }
.btn-warning { border-radius: 24px; }

/* ── Report Modal ───────────────────────────────────────────── */
.modal-content { border-radius: var(--radius-lg); border: none; box-shadow: var(--shadow-lg); }
.modal-header { border-bottom: 1px solid var(--c-border); padding: 1rem 1.25rem; }
.modal-footer { border-top: 1px solid var(--c-border); padding: .75rem 1.25rem; }

/* ── Classified Cards ───────────────────────────────────────── */
.classified-card {
  border-radius: var(--radius);
  border: 1px solid var(--c-border);
  background: var(--c-surface);
  transition: box-shadow var(--transition), transform var(--transition);
  overflow: hidden;
}
.classified-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .foro-post-author { width: 100%; min-width: 0; border-right: none; border-bottom: 1px solid var(--c-border); flex-direction: row; padding: .75rem 1rem; text-align: left; }
  .foro-post-avatar { width: 44px; height: 44px; }
  .foro-hero { padding: 1.25rem 1.25rem; }
  .foro-hero .hero-title { font-size: 1.25rem; }
  .foro-main { padding: 1rem .75rem; }
  .foro-thread-counter { display: none; }
}

/* ── Animations ─────────────────────────────────────────────── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.foro-post          { animation: fadeInUp .22s ease both; }
.foro-post:nth-child(1)  { animation-delay: .02s; }
.foro-post:nth-child(2)  { animation-delay: .04s; }
.foro-post:nth-child(3)  { animation-delay: .06s; }
.foro-post:nth-child(4)  { animation-delay: .08s; }
.foro-post:nth-child(5)  { animation-delay: .10s; }
.foro-post:nth-child(6)  { animation-delay: .12s; }

.foro-forum-row     { animation: fadeInUp .18s ease both; }
.foro-thread-item   { animation: fadeInUp .18s ease both; }

/* ── Utilities ──────────────────────────────────────────────── */
.min-w-0 { min-width: 0; }

/* ── Online indicator ───────────────────────────────────────── */
.online-dot { width: 8px; height: 8px; background: #6ee7a8; border-radius: 50%; display: inline-block; animation: pulse 2s infinite; }

/* ── User card ──────────────────────────────────────────────── */
.user-reputation { font-size: .75rem; color: var(--c-accent); font-weight: 600; }

/* ── Poll ───────────────────────────────────────────────────── */
.foro-poll {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.foro-poll-header {
  background: linear-gradient(135deg, var(--c-primary-l) 0%, #bbdefb 100%);
  border-bottom: 1px solid var(--c-border);
  padding: .85rem 1.25rem;
  font-weight: 700;
  font-size: .95rem;
  color: var(--c-primary-d);
  display: flex;
  align-items: center;
}
.foro-poll-meta { font-size: .78rem; font-weight: 400; color: var(--c-muted); }
.foro-poll-body { padding: .75rem 1.25rem; display: flex; flex-direction: column; gap: .5rem; }
.foro-poll-footer { padding: .6rem 1.25rem; background: #f0f7ff; border-top: 1px solid var(--c-border); }

.foro-poll-option {
  position: relative;
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  transition: border-color var(--transition), transform var(--transition);
}
.foro-poll-option:hover { border-color: var(--c-primary); transform: translateY(-1px); }
.foro-poll-option.voted { border-color: var(--c-primary); }

.foro-poll-bar-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.foro-poll-bar {
  height: 100%;
  background: var(--c-primary-l);
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.foro-poll-option.voted .foro-poll-bar { background: #bbdefb; }

.foro-poll-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .6rem .85rem;
  font-size: .88rem;
}
.foro-poll-check { font-size: 1rem; flex-shrink: 0; }
.foro-poll-text  { flex: 1; font-weight: 500; }
.foro-poll-pct   { font-weight: 700; color: var(--c-primary); font-size: .85rem; }
.foro-poll-votes { font-size: .78rem; }

/* ── Widgets ─────────────────────────────────────────────── */
.widget-list { display: flex; flex-direction: column; }
.widget-list-item { padding: .45rem .1rem; border-bottom: 1px solid var(--c-border); }
.widget-list-item:last-child { border-bottom: none; }
.widget-item-title { display: block; font-size: .83rem; font-weight: 600; color: var(--c-text); text-decoration: none; line-height: 1.35; margin-bottom: 2px; }
.widget-item-title:hover { color: var(--c-primary); }
.widget-item-meta { font-size: .73rem; color: var(--c-muted); }
.widget-item-excerpt { font-size: .76rem; line-height: 1.3; margin-bottom: 2px; }

.widget-stat-row { display: flex; justify-content: space-between; align-items: center; padding: .35rem 0; border-bottom: 1px solid var(--c-border); font-size: .84rem; }
.widget-stat-row:last-child { border-bottom: none; }

.widget-news-grid { display: flex; flex-direction: column; gap: 0; }
.widget-news-item { padding: .4rem .1rem; border-bottom: 1px solid var(--c-border); }
.widget-news-item:last-child { border-bottom: none; }

/* ── Portal magazine layout ─────────────────────────────────── */
.portal-hero {
  background: linear-gradient(135deg, #1976D2 0%, #1565C0 55%, #0d47a1 100%);
  border-radius: var(--radius-lg);
  padding: 2.25rem 2.5rem;
  color: #fff;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.portal-hero::before {
  content: '';
  position: absolute;
  top: -60%; right: -5%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(230,126,34,.2) 0%, transparent 65%);
  pointer-events: none;
}
.portal-hero::after {
  content: '';
  position: absolute;
  bottom: -40%; left: 20%;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 65%);
  pointer-events: none;
}
.portal-hero .hero-title { font-size: 1.75rem; font-weight: 800; letter-spacing: -.5px; line-height: 1.2; }
.portal-hero .hero-sub   { color: rgba(255,255,255,.7); font-size: .95rem; }

/* Portal thread card */
.portal-thread-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: .85rem 1rem;
  display: flex;
  align-items: center;
  gap: .85rem;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
  position: relative;
  overflow: hidden;
  animation: fadeInUp .2s ease both;
}
.portal-thread-card:hover {
  border-color: #90caf9;
  box-shadow: var(--shadow);
  transform: translateX(3px);
}
.portal-thread-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--c-primary);
  opacity: 0;
  transition: opacity var(--transition);
}
.portal-thread-card:hover::before { opacity: 1; }

/* Stagger animations */
.portal-thread-card:nth-child(1)  { animation-delay: .03s; }
.portal-thread-card:nth-child(2)  { animation-delay: .06s; }
.portal-thread-card:nth-child(3)  { animation-delay: .09s; }
.portal-thread-card:nth-child(4)  { animation-delay: .12s; }
.portal-thread-card:nth-child(5)  { animation-delay: .15s; }
.portal-thread-card:nth-child(6)  { animation-delay: .18s; }
.portal-thread-card:nth-child(7)  { animation-delay: .21s; }
.portal-thread-card:nth-child(8)  { animation-delay: .24s; }
.portal-thread-card:nth-child(9)  { animation-delay: .27s; }
.portal-thread-card:nth-child(10) { animation-delay: .30s; }

.foro-forum-row:nth-child(1)  { animation-delay: .03s; }
.foro-forum-row:nth-child(2)  { animation-delay: .06s; }
.foro-forum-row:nth-child(3)  { animation-delay: .09s; }
.foro-forum-row:nth-child(4)  { animation-delay: .12s; }
.foro-forum-row:nth-child(5)  { animation-delay: .15s; }
.foro-forum-row:nth-child(6)  { animation-delay: .18s; }
.foro-forum-row:nth-child(7)  { animation-delay: .21s; }
.foro-forum-row:nth-child(8)  { animation-delay: .24s; }

/* ── Enhanced classified cards ──────────────────────────────── */
.classified-grid-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
  animation: fadeInUp .25s ease both;
}
.classified-grid-card:hover {
  box-shadow: var(--shadow);
  transform: translateY(-3px);
  border-color: #90caf9;
}
.classified-grid-card .cg-img {
  width: 100%;
  height: 185px;
  object-fit: cover;
  display: block;
}
.classified-grid-card .cg-noimg {
  width: 100%;
  height: 120px;
  background: var(--c-primary-l);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-primary);
  font-size: 2.2rem;
}
.classified-grid-card .cg-body { padding: .85rem; flex: 1 1 auto; }
.classified-grid-card .cg-title {
  font-weight: 700;
  font-size: .9rem;
  color: var(--c-text);
  line-height: 1.35;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}
.classified-grid-card .cg-title:hover { color: var(--c-primary); }
.classified-grid-card .cg-price { font-size: 1.05rem; font-weight: 800; color: var(--c-primary); }
.classified-grid-card .cg-price-ask { font-size: .85rem; color: var(--c-muted); font-style: italic; }
.classified-grid-card .cg-meta { font-size: .76rem; color: var(--c-muted); margin-top: .35rem; }
.classified-grid-card .cg-badge-featured {
  background: var(--c-accent);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 99px;
}
.classified-grid-card .cg-badge-discount {
  background: var(--c-danger);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 99px;
}
.classified-grid-card .cg-badge-offer {
  background: linear-gradient(135deg, #f97316, #ea580c);
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 99px;
  box-shadow: 0 2px 6px rgba(234,88,12,.35);
}
.classified-grid-card.cg-card-offer {
  border: 1.5px solid #fb923c;
  box-shadow: 0 0 0 1px rgba(251,146,60,.15);
}

.classified-grid-card:nth-child(1)  { animation-delay: .04s; }
.classified-grid-card:nth-child(2)  { animation-delay: .08s; }
.classified-grid-card:nth-child(3)  { animation-delay: .12s; }
.classified-grid-card:nth-child(4)  { animation-delay: .16s; }
.classified-grid-card:nth-child(5)  { animation-delay: .20s; }
.classified-grid-card:nth-child(6)  { animation-delay: .24s; }

/* -- Classified hover submenu ---------------------------------- */
.classified-cat-item { position: relative; }
.classified-subcat-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 200;
  min-width: 180px;
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
  padding: 4px 0;
}
.classified-cat-item:hover .classified-subcat-dropdown { display: block; }

/* ── Buscador del mercadillo ──────────────────────────────── */
.classified-search-bar {
  background: linear-gradient(135deg, var(--c-primary-l, #e8f0fe) 0%, #f0f4ff 100%);
  border: 1px solid var(--c-border);
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
}
.classified-search-bar .input-group-lg .form-control {
  font-size: 1rem;
  border-color: var(--c-border);
}
.classified-search-bar .input-group-lg .form-control:focus {
  box-shadow: 0 0 0 3px rgba(var(--c-primary-rgb, 13,110,253),.15);
  border-color: var(--c-primary);
  z-index: 0;
}
.classified-search-bar .input-group-text {
  border-color: var(--c-border);
  border-right: none;
}
.classified-search-bar .btn-primary { border-radius: 0 8px 8px 0; }
.classified-subcat-dropdown .dropdown-item {
  padding: .35rem .9rem;
  font-size: .875rem;
  color: var(--c-text);
  text-decoration: none;
  display: block;
}
.classified-subcat-dropdown .dropdown-item:hover {
  background: var(--c-primary-l);
  color: var(--c-primary);
}

/* ── Bootstrap overrides — pill badges de estado ───────────── */
.badge.bg-success   { background-color: var(--c-primary) !important; }
.badge.bg-warning   { background-color: var(--c-accent) !important; color: #fff !important; }
.badge.bg-primary   { background-color: var(--c-primary) !important; }
.badge.bg-light     { background-color: #e3f2fd !important; color: var(--c-text) !important; }
.badge.bg-secondary { background-color: #7fa0c8 !important; }

/* ── Avatares circulares con inicial ─────────────────────────── */
.avatar-circle {
  width: 40px; height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--c-border);
  flex-shrink: 0;
  display: inline-block;
  transition: border-color var(--transition), transform var(--transition);
}
.avatar-circle:hover { border-color: var(--c-primary); transform: scale(1.06); }
.avatar-circle.avatar-sm { width: 28px; height: 28px; border-width: 1.5px; }
.avatar-circle.avatar-md { width: 44px; height: 44px; }
.avatar-circle.avatar-lg { width: 72px; height: 72px; border-width: 3px; }
.avatar-circle.avatar-xl { width: 100px; height: 100px; border-width: 3px; }

.avatar-initial {
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-d) 100%);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1rem;
  flex-shrink: 0;
  border: 2px solid var(--c-border);
}
.avatar-initial.avatar-sm  { width: 28px;  height: 28px;  font-size: .7rem; }
.avatar-initial.avatar-md  { width: 44px;  height: 44px;  font-size: 1rem; }
.avatar-initial.avatar-lg  { width: 72px;  height: 72px;  font-size: 1.5rem; border-width: 3px; }
.avatar-initial.avatar-xl  { width: 100px; height: 100px; font-size: 2rem;  border-width: 3px; }

/* ── Tablas app-style ─────────────────────────────────────────── */
.table {
  font-size: .88rem;
  border-color: var(--c-border);
}
.table th {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--c-muted);
  font-weight: 700;
  background: #f0f7ff;
  border-bottom: 1px solid var(--c-border) !important;
  padding: .65rem .85rem;
}
.table td { padding: .65rem .85rem; border-color: var(--c-border); vertical-align: middle; }
.table-striped > tbody > tr:nth-of-type(odd) > td {
  background-color: rgba(227,242,253,.4);
}
.table-hover > tbody > tr:hover > td { background: var(--c-primary-l); }
.table-responsive { border-radius: var(--radius-lg); overflow: hidden; }

/* ── Separadores suaves ───────────────────────────────────────── */
hr {
  border: none;
  border-top: 1px solid var(--c-border);
  opacity: 1;
  margin: 1rem 0;
}
.divider-dots {
  border: none;
  border-top: 1px dashed #bbd2ee;
  margin: 1rem 0;
}

/* ── List groups style app ───────────────────────────────────── */
.list-group-item {
  border-color: var(--c-border);
  background: transparent;
  padding: .7rem 1rem;
  font-size: .875rem;
  transition: background var(--transition);
}
.list-group-item:first-child { border-radius: 0; }
.list-group-item:last-child  { border-radius: 0; }
.list-group-item-action:hover { background: var(--c-primary-l); color: var(--c-text); }
.list-group { border-radius: var(--radius-lg); overflow: hidden; }

/* ── Nav tabs estilo app ──────────────────────────────────────── */
.nav-tabs {
  border-bottom: 2px solid var(--c-border);
  gap: .25rem;
}
.nav-tabs .nav-link {
  border: none;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  color: var(--c-muted);
  font-weight: 600;
  font-size: .875rem;
  padding: .5rem 1rem;
  transition: color var(--transition), background var(--transition);
}
.nav-tabs .nav-link:hover { color: var(--c-primary); background: var(--c-primary-l); }
.nav-tabs .nav-link.active {
  color: var(--c-primary);
  background: var(--c-surface);
  border-bottom: 2px solid var(--c-primary);
  margin-bottom: -2px;
}

/* ── Estado badges ────────────────────────────────────────────── */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .28rem .75rem;
  border-radius: 99px;
  font-size: .75rem;
  font-weight: 600;
}
.status-pill.active   { background: rgba(25,118,210,.1);  color: var(--c-primary); }
.status-pill.sold     { background: rgba(230,126,34,.1);  color: var(--c-accent); }
.status-pill.expired  { background: rgba(192,57,43,.1);   color: var(--c-danger); }
.status-pill.pending  { background: rgba(90,114,153,.1);  color: var(--c-muted); }

/* ── Profile card ─────────────────────────────────────────────── */
.profile-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.profile-cover {
  height: 80px;
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-d) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 0;
}
.profile-avatar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 1.25rem 1.25rem;
  margin-top: 0;
  text-align: center;
}
.profile-avatar-wrap img,
.profile-avatar-wrap .profile-avatar-placeholder {
  margin-top: -40px;
  position: relative;
  z-index: 1;
}
.profile-stats-row {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--c-border);
}
.profile-stat {
  flex: 1;
  text-align: center;
  padding: .75rem .5rem;
  border-right: 1px solid var(--c-border);
  font-size: .82rem;
}
.profile-stat:last-child { border-right: none; }
.profile-stat .ps-num { font-size: 1.1rem; font-weight: 800; color: var(--c-text); display: block; }
.profile-stat .ps-lbl { color: var(--c-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }

/* ── Auth forms (login/register) ──────────────────────────────── */
.auth-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.auth-card-header {
  background: linear-gradient(135deg, var(--c-primary-l) 0%, #bbdefb 100%);
  border-bottom: 1px solid #bbdefb;
  padding: 2rem 1.75rem 1.5rem;
  text-align: center;
}
.auth-card-header .auth-icon {
  width: 64px; height: 64px;
  background: var(--c-primary);
  border-radius: 20px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto .85rem;
  box-shadow: 0 4px 12px rgba(25,118,210,.35);
}
.auth-card-header h4 { font-weight: 800; font-size: 1.3rem; color: var(--c-primary-d); margin: 0; }
.auth-card-body { padding: 1.75rem; }
.auth-card-footer {
  background: #f0f7ff;
  border-top: 1px solid var(--c-border);
  padding: 1rem 1.75rem;
  text-align: center;
  font-size: .875rem;
}

/* ── Responsive mejorado ──────────────────────────────────────── */
@media (max-width: 575px) {
  .foro-main { padding: .75rem .5rem; }
  .foro-card,
  .card { border-radius: 12px !important; }
  .foro-post { border-radius: 12px; }
  .classified-grid-card { border-radius: 12px; }
  .foro-hero { padding: 1.1rem 1.1rem; border-radius: 14px; }
  .foro-forum-row { border-radius: 10px; padding: .75rem; }
  .foro-thread-item { border-radius: 10px; padding: .7rem .85rem; }
  .btn { border-radius: 20px; }
}

/* ── Thread item refinado ──────────────────────────────────────── */
.foro-thread-item {
  border-radius: var(--radius-lg) !important;
}
.foro-forum-row {
  border-radius: var(--radius-lg) !important;
}

/* ── Classified show page refinements ─────────────────────────── */
.classified-show-price {
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--c-primary);
  letter-spacing: -.5px;
}
.classified-show-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem 1rem;
  border-radius: 99px;
  font-weight: 600;
  font-size: .82rem;
}

/* ── Image preview in forms ───────────────────────────────────── */
#img-preview img {
  width: 80px; height: 64px;
  object-fit: cover;
  border-radius: 10px;
  border: 2px solid var(--c-border);
  transition: border-color var(--transition), transform var(--transition);
}
#img-preview img:hover { border-color: var(--c-primary); transform: scale(1.05); }

/* ── Login / Register split layout (lp-*) ────────────────────── */
.lp-wrap {
  display: flex;
  min-height: calc(100vh - 90px);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 48px rgba(0,0,0,.12);
  margin: -8px -8px 0;
}
.lp-form-side {
  flex: 0 0 460px;
  background: var(--c-surface);
  display: flex; align-items: center; justify-content: center;
  padding: 3rem 2.5rem;
  overflow-y: auto;
}
.lp-form-side-wide {
  flex: 0 0 520px;
}
.lp-form-inner { width: 100%; max-width: 380px; }
.lp-form-inner-wide { max-width: 440px; }

.lp-eyebrow  { font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--c-primary);margin-bottom:.25rem }
.lp-title    { font-size:2rem;font-weight:800;color:var(--c-text);margin:0 0 .35rem;line-height:1.1 }
.lp-subtitle { font-size:.9rem;color:var(--c-muted);margin-bottom:0 }

.lp-alert { display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:10px;font-size:.875rem;margin-top:1.25rem }
.lp-alert i { font-size:1rem;flex-shrink:0 }
.lp-alert-danger  { background:#fef2f2;color:#b91c1c;border:1px solid #fecaca }
.lp-alert-success { background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0 }

.lp-field { margin-bottom: 1.25rem }
.lp-label { display:block;font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--c-muted);margin-bottom:.45rem }
.lp-input-wrap { position:relative;display:flex;align-items:center }
.lp-input-icon { position:absolute;left:.9rem;color:var(--c-muted);font-size:1rem;pointer-events:none;z-index:1 }
.lp-input {
  width:100%;padding:.8rem 3rem .8rem 2.6rem;
  border:2px solid var(--c-border);
  border-radius:12px;
  font-size:1rem;
  background:var(--c-surface);
  color:var(--c-text);
  transition:border-color .18s,box-shadow .18s;
  outline:none;
}
.lp-input:focus { border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(25,118,210,.12) }
.lp-input::placeholder { color:#b0b8c4 }
.lp-input-no-icon { padding-left:.9rem }
.lp-eye { position:absolute;right:.75rem;background:none;border:none;color:var(--c-muted);cursor:pointer;padding:.25rem;font-size:1rem }
.lp-eye:hover { color:var(--c-primary) }

.lp-btn-submit {
  width:100%;padding:.9rem 1.5rem;
  background:var(--c-primary);color:#fff;
  border:none;border-radius:12px;
  font-size:1rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  cursor:pointer;
  transition:background .18s,transform .12s,box-shadow .18s;
  box-shadow:0 4px 14px rgba(25,118,210,.35);
}
.lp-btn-submit:hover { background:#1565c0;transform:translateY(-1px);box-shadow:0 6px 20px rgba(25,118,210,.45) }
.lp-btn-submit:active { transform:translateY(0) }

.lp-divider { display:flex;align-items:center;gap:.75rem;margin:1.5rem 0;color:var(--c-muted);font-size:.8rem }
.lp-divider::before,.lp-divider::after { content:'';flex:1;height:1px;background:var(--c-border) }

.lp-btn-secondary {
  display:flex;align-items:center;justify-content:center;
  width:100%;padding:.85rem;
  border:2px solid var(--c-border);border-radius:12px;
  color:var(--c-text);font-weight:600;font-size:.95rem;
  text-decoration:none;
  transition:border-color .18s,background .18s;
  background:transparent;
}
.lp-btn-secondary:hover { border-color:var(--c-primary);background:#f0f7ff;color:var(--c-primary) }

.lp-brand-side {
  flex:1;
  background:linear-gradient(145deg,#1976d2 0%,#1251a3 50%,#0a3880 100%);
  display:flex;align-items:center;justify-content:center;
  padding:3rem;
  position:relative;
  overflow:hidden;
}
.lp-brand-inner { position:relative;z-index:1;color:#fff;width:100%;max-width:340px }
.lp-brand-logo {
  width:72px;height:72px;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.25);
  border-radius:22px;
  display:flex;align-items:center;justify-content:center;
  font-size:2rem;margin-bottom:1.25rem;
}
.lp-brand-name { font-size:2rem;font-weight:800;margin-bottom:.35rem;line-height:1.1 }
.lp-brand-sub  { font-size:.95rem;opacity:.75;margin-bottom:2.5rem }

.lp-brand-cards { display:flex;flex-direction:column;gap:.85rem }
.lp-bcard {
  display:flex;align-items:center;gap:1rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:.9rem 1.1rem;
  backdrop-filter:blur(4px);
  transition:background .2s;
}
.lp-bcard:hover { background:rgba(255,255,255,.14) }
.lp-bcard-icon { width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0 }
.lp-bcard-title { font-weight:700;font-size:.92rem }
.lp-bcard-desc  { font-size:.78rem;opacity:.7;margin-top:.1rem }

.lp-deco { position:absolute;border-radius:50%;opacity:.07;pointer-events:none }
.lp-deco-1 { width:400px;height:400px;background:#fff;top:-120px;right:-120px }
.lp-deco-2 { width:250px;height:250px;background:#fff;bottom:-80px;left:-60px }
.lp-deco-3 { width:140px;height:140px;background:#fff;bottom:120px;right:40px }

.lp-mobile-logo {
  width:56px;height:56px;background:var(--c-primary);border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;margin:0 auto;
}
@media (max-width:991px) {
  .lp-wrap { border-radius:16px;margin:0;min-height:auto }
  .lp-form-side,.lp-form-side-wide { flex:1;padding:2rem 1.5rem }
}

/* ── Carousel refinement ──────────────────────────────────────── */
.carousel-item img {
  border-radius: 0;
  max-height: 420px;
  object-fit: contain;
  background: #f0f7ff;
}
.carousel { background: #f0f7ff; }

/* ── Poll section refinement ──────────────────────────────────── */
.foro-poll {
  border-radius: var(--radius-lg) !important;
}

/* ── Classified category page cards ──────────────────────────── */
.classified-cat-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition);
  height: 100%;
}
.classified-cat-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: #90caf9; }
.classified-cat-card .ccc-img { width: 100%; height: 160px; object-fit: cover; }
.classified-cat-card .ccc-noimg {
  width: 100%; height: 100px;
  background: var(--c-primary-l);
  display: flex; align-items: center; justify-content: center;
  color: var(--c-primary); font-size: 2rem;
}
.classified-cat-card .ccc-body { padding: .85rem; flex: 1; }
.classified-cat-card .ccc-title { font-weight: 700; font-size: .9rem; color: var(--c-text); text-decoration: none; display: block; margin-bottom: .25rem; }
.classified-cat-card .ccc-title:hover { color: var(--c-primary); }
.classified-cat-card .ccc-price { font-weight: 800; color: var(--c-primary); font-size: 1rem; }

/* ── Seller card ──────────────────────────────────────────────── */
.seller-card-avatar {
  width: 72px; height: 72px;
  border-radius: 50%;
  border: 3px solid var(--c-border);
  object-fit: cover;
  margin-bottom: .5rem;
  transition: border-color var(--transition);
}
.seller-card-avatar:hover { border-color: var(--c-primary); }

/* ── BBCode toolbar refinement ────────────────────────────────── */
.foro-bbcode-toolbar .btn {
  border-radius: 8px !important;
}

/* ── Spinner / loading ────────────────────────────────────────── */
.spinner-border-sm { width: .9rem; height: .9rem; border-width: .15em; }

/* ── Tooltips ─────────────────────────────────────────────────── */
.tooltip .tooltip-inner { border-radius: 8px; font-size: .8rem; }

/* ── Mobile nav enhancements ──────────────────────────────────── */
@media (max-width: 991px) {
  .foro-navbar .navbar-collapse {
    padding: .75rem 0;
    border-top: 1px solid var(--c-border);
    margin-top: .5rem;
  }
  .foro-navbar .nav-search { margin: .5rem 0; }
  .foro-navbar .nav-search .input-group { width: 100% !important; }
  .foro-navbar .btn-register { text-align: center; }
}

/* ── Admin panel enhancements ─────────────────────────────────── */
.admin-stat-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition), transform var(--transition);
}
.admin-stat-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.admin-stat-card .stat-icon {
  width: 48px; height: 48px;
  border-radius: var(--radius);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem;
  margin-bottom: .75rem;
}
.admin-stat-card .stat-value { font-size: 1.9rem; font-weight: 800; color: var(--c-text); letter-spacing: -.5px; }
.admin-stat-card .stat-label { font-size: .8rem; color: var(--c-muted); text-transform: uppercase; letter-spacing: .05em; }

/* ════════════════════════════════════════════════════════════
   MEJORAS PROFESIONALES v4
   ════════════════════════════════════════════════════════════ */

/* ── Hero: patrón geométrico sutil ───────────────────────── */
.foro-hero, .portal-hero {
  background-image:
    linear-gradient(135deg, #1976D2 0%, #1565C0 55%, #0d47a1 100%),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-blend-mode: normal, overlay;
}

/* ── Navbar: sombra más elegante con línea de acento ─────── */
.foro-navbar {
  border-bottom: 1px solid var(--c-border) !important;
  box-shadow: 0 1px 0 0 var(--c-border), 0 2px 16px rgba(25,118,210,.06) !important;
}
.foro-navbar .navbar-brand .brand-icon {
  box-shadow: 0 2px 8px rgba(25,118,210,.3);
}

/* ── Cards: borde top azul en hover ──────────────────────── */
.foro-card, .card {
  position: relative;
}
.foro-card::before, .card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--c-primary);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  opacity: 0;
  transition: opacity var(--transition);
}
.foro-card:hover::before, .card:hover::before { opacity: 1; }

/* ── Sección títulos con separador azul ──────────────────── */
.section-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--c-text);
  letter-spacing: -.2px;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.section-title::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 1.1em;
  background: var(--c-primary);
  border-radius: 2px;
  flex-shrink: 0;
}

/* ── Forum row: gradiente sutil en hover ─────────────────── */
.foro-forum-row:hover {
  background: linear-gradient(90deg, rgba(25,118,210,.025) 0%, var(--c-surface) 60%);
}

/* ── Post author column: borde inferior azul ─────────────── */
.foro-post-author {
  border-right: 1px solid var(--c-border);
}

/* ── Widget card header: acento con borde izq ────────────── */
.widget-card .card-header {
  border-left: 3px solid var(--c-primary) !important;
  padding-left: .85rem !important;
}

/* ── Stat pills hero: sombra interna más visible ─────────── */
.foro-stat-pill {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
}
.foro-stat-pill:hover {
  background: rgba(255,255,255,.22);
  transform: translateY(-1px);
}

/* ── Botones: outline-primary más refinado ───────────────── */
.btn-outline-primary:hover {
  box-shadow: 0 4px 12px rgba(25,118,210,.25);
}

/* ── Formulario de respuesta: más presencia ──────────────── */
#responder {
  box-shadow: 0 0 0 3px rgba(25,118,210,.08), 0 4px 20px rgba(25,118,210,.06) !important;
}

/* ── Profile cover: gradiente más dinámico ───────────────── */
.profile-cover {
  background: linear-gradient(135deg, #1976D2 0%, #0d47a1 50%, #1565C0 100%) !important;
  position: relative;
  overflow: hidden;
}
.profile-cover::after {
  content: '';
  position: absolute;
  bottom: -20px; right: -20px;
  width: 120px; height: 120px;
  background: rgba(255,255,255,.07);
  border-radius: 50%;
  pointer-events: none;
}

/* ── Auth card header icon: más vibrante ─────────────────── */
.auth-card-header .auth-icon {
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-d) 100%) !important;
}

/* ── Auth fields y alertas ───────────────────────────────── */
.auth-label {
  font-size: .82rem;
  font-weight: 600;
  color: var(--c-muted);
  margin-bottom: .35rem;
  display: block;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.auth-input {
  border-radius: 10px !important;
  border-color: var(--c-border) !important;
  padding: .65rem .9rem !important;
  font-size: .93rem !important;
  transition: border-color .2s, box-shadow .2s;
}
.auth-input:focus {
  border-color: var(--c-primary) !important;
  box-shadow: 0 0 0 3px rgba(25,118,210,.12) !important;
}
.auth-eye-btn {
  border: 1px solid var(--c-border);
  border-left: none;
  border-radius: 0 10px 10px 0 !important;
  background: #f8faff;
  color: var(--c-muted);
}
.auth-eye-btn:hover { background: #e3f2fd; color: var(--c-primary); }
.auth-submit-btn {
  border-radius: 10px !important;
  padding: .7rem 1rem !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
}
.auth-footer-link { font-weight: 700; color: var(--c-primary); }
.auth-footer-link:hover { color: var(--c-primary-d); }

.auth-alert {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  border-radius: 10px;
  border: 1.5px solid;
  padding: .7rem .9rem;
  font-size: .875rem;
  font-weight: 500;
}
.auth-alert-danger  { background: #fff8f0; border-color: #f5cba7; color: #b45309; }
.auth-alert-success { background: #f0fdf4; border-color: #86efac; color: #166534; }

/* ── Post images: thumbnails that open full size ─────────── */
.foro-post-img-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.foro-post-img-link {
  display: inline-block;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid var(--c-border, #e2e8f0);
  transition: border-color .15s, transform .15s;
  vertical-align: top;
}
.foro-post-img-link:hover {
  border-color: var(--c-primary, #1976D2);
  transform: scale(1.03);
}
.foro-post-img-guest {
  cursor: default;
  position: relative;
}
.foro-post-img-guest:hover {
  border-color: var(--c-border, #e2e8f0);
  transform: none;
}
.foro-post-img-guest::after {
  content: '🔒';
  position: absolute;
  bottom: 4px;
  right: 4px;
  font-size: 14px;
  background: rgba(0,0,0,.55);
  border-radius: 4px;
  padding: 1px 4px;
  line-height: 1.4;
}
.foro-post-img-thumb {
  display: block;
  width: 120px;
  height: 90px;
  object-fit: cover;
}

/* ── Lightbox de imágenes del foro ───────────────────────── */
.foro-img-lb { cursor: zoom-in; }
.foro-lb-overlay {
  position: fixed;
  inset: 0;
  z-index: 1080;
  background: rgba(0,0,0,.88);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.foro-lb-overlay.show { display: flex; }
.foro-lb-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 6px 36px rgba(0,0,0,.6);
}
.foro-lb-close {
  position: absolute;
  top: 14px;
  right: 18px;
  width: 46px;
  height: 46px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.foro-lb-close:hover { background: rgba(255,255,255,.32); }

/* ── Upload image thumbnails ─────────────────────────────── */
.upload-preview-area {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 0 4px;
}
.upload-thumb {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid var(--c-border, #e2e8f0);
  background: #f8fafc;
  flex-shrink: 0;
}
.upload-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.upload-thumb-remove {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .15s;
}
.upload-thumb:hover .upload-thumb-remove { opacity: 1; }

/* ── Auth CAPTCHA ────────────────────────────────────────── */
.auth-captcha {
  background: #f8faff;
  border: 1.5px solid var(--c-border);
  border-radius: 12px;
  padding: .9rem 1rem;
}
.auth-captcha-header {
  display: flex;
  align-items: center;
  font-size: .78rem;
  font-weight: 700;
  color: var(--c-primary);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .75rem;
}
.auth-captcha-refresh {
  background: none;
  border: none;
  color: var(--c-primary);
  cursor: pointer;
  padding: 0;
  font-size: .95rem;
  line-height: 1;
  transition: transform .3s;
}
.auth-captcha-refresh:hover { transform: rotate(180deg); }
.auth-captcha-question {
  display: flex;
  align-items: center;
  gap: .6rem;
}
.auth-captcha-num {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--c-text);
  min-width: 1.6rem;
  text-align: center;
}
.auth-captcha-op {
  font-size: 1.3rem;
  color: var(--c-muted);
  font-weight: 600;
}
.auth-captcha-input {
  width: 56px;
  border: 2px solid var(--c-border);
  border-radius: 10px;
  padding: .4rem;
  font-size: 1.4rem;
  font-weight: 800;
  text-align: center;
  background: #fff;
  color: var(--c-text);
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
.auth-captcha-input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(25,118,210,.12); }
.auth-captcha-input.captcha-ok  { border-color: #2e7d32; background: #f1f8e9; }
.auth-captcha-input.captcha-err { border-color: #c62828; background: #fff5f5; }
.auth-captcha-icon { font-size: 1.2rem; line-height: 1; }

/* ── Auth code input (verify email) ─────────────────────── */
.auth-code-input {
  font-size: 2rem !important;
  font-weight: 800 !important;
  letter-spacing: .5rem !important;
  text-align: center !important;
  border-radius: 14px !important;
  border: 2px solid var(--c-border) !important;
  padding: .75rem !important;
  color: var(--c-text) !important;
  background: #f8faff !important;
}
.auth-code-input:focus {
  border-color: var(--c-primary) !important;
  box-shadow: 0 0 0 3px rgba(25,118,210,.12) !important;
  background: #fff !important;
}

/* ── App download banner ─────────────────────────────────── */
.app-banner {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #0d47a1 0%, #1565C0 45%, #1976D2 100%);
  padding: 1.25rem 1.5rem;
  box-shadow: 0 4px 24px rgba(25,118,210,.3);
}
.app-banner-bg {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(circle at 90% 50%, rgba(255,255,255,.07) 0%, transparent 55%),
    radial-gradient(circle at 10% 80%, rgba(230,126,34,.12) 0%, transparent 40%);
}
.app-banner-content {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.app-banner-icon {
  flex-shrink: 0;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,.25));
}
.app-banner-text { flex: 1; min-width: 160px; }
.app-banner-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.01em;
}
.app-banner-title span { color: #f5b041; }
.app-banner-sub {
  font-size: .82rem;
  color: rgba(255,255,255,.72);
  margin-top: 2px;
}
.app-banner-btns {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  align-items: center;
}
.app-store-btn {
  display: flex;
  align-items: center;
  gap: .55rem;
  background: rgba(255,255,255,.13);
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: 10px;
  padding: .45rem .85rem;
  color: #fff;
  text-decoration: none;
  transition: background .2s, transform .15s;
  cursor: not-allowed;
  opacity: .85;
}
.app-store-btn:hover {
  background: rgba(255,255,255,.22);
  color: #fff;
  transform: translateY(-1px);
}
.app-store-btn i { font-size: 1.4rem; }
.app-store-small { font-size: .65rem; opacity: .75; display: block; line-height: 1; }
.app-store-big   { font-size: .88rem; font-weight: 700; line-height: 1.3; }
.app-banner-badge {
  position: absolute;
  top: 10px; right: 12px;
  background: #e67e22;
  color: #fff;
  font-size: .68rem;
  font-weight: 800;
  padding: 2px 10px;
  border-radius: 20px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
@media (max-width: 575px) {
  .app-banner-content { flex-direction: column; align-items: flex-start; }
  .app-banner-btns { width: 100%; }
  .app-store-btn { flex: 1; justify-content: center; }
}

/* ── Classified cards: imagen con overlay en hover ───────── */
.classified-grid-card .cg-img-wrap {
  position: relative;
  overflow: hidden;
}
.classified-grid-card .cg-img-wrap img {
  transition: transform .35s ease;
}
.classified-grid-card:hover .cg-img-wrap img {
  transform: scale(1.04);
}

/* ── Footer: separador superior con acento ───────────────── */
.foro-footer {
  border-top: 3px solid rgba(25,118,210,.5);
}

/* ── Link activo navbar con indicador ────────────────────── */
.foro-navbar .nav-link.active {
  color: var(--c-primary) !important;
  background: var(--c-primary-l) !important;
  font-weight: 600;
}

/* ── Paginación: transición más fluida ───────────────────── */
.pagination .page-link:hover {
  box-shadow: 0 2px 8px rgba(25,118,210,.15);
}

/* ── Tabla: borde izquierdo accent en fila activa ────────── */
.table tbody tr:hover td:first-child {
  border-left: 3px solid var(--c-primary);
}

/* ── Breadcrumb: separador como chevron ──────────────────── */
.breadcrumb-item + .breadcrumb-item::before {
  content: "›";
  font-size: .95rem;
  line-height: 1;
}

/* ── Alert info: borde izquierdo azul ────────────────────── */
.alert-info {
  border-left: 4px solid var(--c-primary) !important;
  background: var(--c-primary-l) !important;
  color: var(--c-primary-d) !important;
  border-color: transparent !important;
}

/* ── Section divider suave ───────────────────────────────── */
.section-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 1.5rem 0 1rem;
  color: var(--c-muted);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.section-divider::before,
.section-divider::after {
  content: '';
  flex: 1;
  border-top: 1px solid var(--c-border);
}

/* ── Tag/chip estilo ─────────────────────────────────────── */
.foro-tag {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .2rem .65rem;
  border-radius: 99px;
  font-size: .73rem;
  font-weight: 600;
  background: var(--c-primary-l);
  color: var(--c-primary);
  border: 1px solid rgba(25,118,210,.15);
  text-decoration: none;
  transition: background var(--transition), border-color var(--transition), transform var(--transition);
}
.foro-tag:hover {
  background: #bbdefb;
  border-color: rgba(25,118,210,.3);
  color: var(--c-primary-d);
  transform: translateY(-1px);
}
