/* ============================================================================
   brand.css — hoja de estilos compartida (v3.26, rediseño moderno)

   Todo el aspecto sale de VARIABLES CSS. Los valores de :root son el tema
   "Clásico" (marrón / dorado / granate) y sirven de respaldo para las páginas
   que no declaran <html data-theme> (login, /admin). El tema activo
   (Moderno claro / Moderno oscuro / Clásico) lo emite App\Core\Theme::head()
   en un <style id="theme-vars"> que redefine estas variables.

   Variables semánticas:
     --ink / --ink-soft        fondo de página / superficie de tarjetas
     --ivory / --ivory-dim     texto principal / texto atenuado
     --garnet / --garnet-bright  acción primaria / su estado hover
     --on-garnet               texto sobre la acción primaria
     --gold                    acento seguro para texto y bordes
     --gold-fill               acento decorativo (estrellas, subrayados)
     --accent-text             color de enlaces/etiquetas con contraste AA
     --wood-line / --field-line  bordes decorativos / bordes de campos
     --tint / --tint-2         velos de hover
     --danger-* / --ok-* / --info-*  avisos
   ========================================================================== */
:root{
  --ink:#14100D;
  --ink-soft:#221B15;
  --ivory:#F4ECDF;
  --ivory-dim:#DED2BE;
  --garnet:#7A1F2B;
  --garnet-bright:#9C2B39;
  --gold:#C9A227;
  --gold-fill:#C9A227;
  --accent-text:#C9A227;
  --wood:#3D2B23;
  --wood-line: rgba(244,236,223,0.12);
  --field-line: rgba(244,236,223,0.12);
  --on-garnet:#F4ECDF;
  --tint: rgba(244,236,223,0.06);
  --tint-2: rgba(244,236,223,0.12);
  --accent-soft: rgba(201,162,39,0.10);
  --danger-bg: rgba(122,31,43,0.15); --danger-text:#F4C7CC; --danger-line:#7A1F2B;
  --ok-bg: rgba(30,142,90,0.12); --ok-text:#B7E8CE; --ok-line:#1E8E5A;
  --info-bg: rgba(70,120,200,0.18); --info-text:#C5D8F5;
  --header-bg: rgba(20,16,13,0.92);
  --footer-bg:#14100D;
  --band-bg:#7A1F2B;
  --radius:6px; --radius-lg:8px; --radius-btn:4px;
  --shadow-sm:none;
  --shadow-md:0 20px 40px -20px rgba(0,0,0,0.55);
  --shadow-lg:0 30px 60px -20px rgba(0,0,0,0.55);
  --hero-grad-1:linear-gradient(135deg,#3D2B23 0%,#7A1F2B 100%);
  --hero-grad-2:linear-gradient(135deg,#14100D 0%,#3D2B23 60%,#7A1F2B 100%);
  --hero-grad-3:linear-gradient(135deg,#3D2B23 0%,#8A6D12 55%,#7A1F2B 100%);
  --heading-weight:600;
  --heading-track:-0.01em;
  --container:1240px;
  --gutter:clamp(16px, 4vw, 40px);
  --sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --serif:'Fraunces', Georgia, serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-text-size-adjust:100%;}
body{font-family:var(--sans); background:var(--ink); color:var(--ivory); line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
a{color:inherit; text-decoration:none;}
img{max-width:100%;}
:focus-visible{outline:2px solid var(--accent-text); outline-offset:2px;}
::selection{background:var(--garnet); color:var(--on-garnet);}

/* Contenedor: las secciones pueden ir a ANCHO COMPLETO (fondos, cabecera, banda
   final) pero el contenido se centra en .wrap/.container (máx. ~1240px) para que
   el texto nunca se estire hasta ser ilegible. */
.wrap, .container{max-width:var(--container); margin:0 auto; padding:0 var(--gutter); width:100%;}
.section--full{width:100%;}

/* ---------------------------------------------------------------- Botones */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 20px; border-radius:var(--radius-btn); font-size:14.5px; font-weight:600; line-height:1.3;
  cursor:pointer; border:1px solid transparent; text-align:center;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
button.btn{font-family:inherit;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--garnet); color:var(--on-garnet);}
.btn-primary:hover{background:var(--garnet-bright); box-shadow:var(--shadow-md);}
.btn-ghost{background:transparent; border-color:var(--field-line); color:var(--ivory);}
.btn-ghost:hover{border-color:var(--accent-text); background:var(--tint);}
.btn-sm{padding:7px 14px; font-size:13px;}
.btn-lg{padding:14px 28px; font-size:16px;}

/* --------------------------------------------------------------- Cabecera */
.site-header{
  position:sticky; top:0; z-index:50; background:var(--header-bg);
  border-bottom:1px solid var(--wood-line);
  -webkit-backdrop-filter:saturate(1.5) blur(14px); backdrop-filter:saturate(1.5) blur(14px);
}
.nav{display:flex; align-items:center; gap:28px; padding:14px var(--gutter); max-width:var(--container); margin:0 auto;}
.logo{font-family:var(--serif); font-size:1.3rem; font-weight:var(--heading-weight); letter-spacing:var(--heading-track); white-space:nowrap; display:inline-flex; align-items:center;}
.logo span{color:var(--accent-text);}
.nav-links{display:flex; gap:4px; font-size:14.5px; font-weight:500; margin-right:auto;}
.nav-links a{padding:8px 14px; border-radius:999px; color:var(--ivory-dim); transition:background-color .15s ease, color .15s ease;}
.nav-links a:hover{background:var(--tint); color:var(--ivory);}
.nav-links a.is-active{background:var(--tint-2); color:var(--ivory); font-weight:600;}
.nav-cta{display:flex; align-items:center; gap:10px;}
.nav-cta .btn{padding:9px 18px; font-size:14px; white-space:nowrap;}
.nav-cta .btn-icon{padding:8px 12px; position:relative; font-size:15px;}
.nav-badge{position:absolute; top:-6px; right:-6px; background:var(--garnet); color:var(--on-garnet); font-size:10px; font-weight:700; border-radius:10px; padding:1px 6px; line-height:1.4;}
.lang-switch{display:flex; gap:2px; align-items:center; margin-right:4px; font-size:12.5px; font-weight:600; background:var(--tint); border-radius:999px; padding:3px;}
.lang-switch a{padding:4px 10px; border-radius:999px; color:var(--ivory-dim);}
.lang-switch a:hover{color:var(--ivory);}
.lang-switch a.is-current{background:var(--ink-soft); color:var(--ivory); box-shadow:var(--shadow-sm);}
.site-footer a:focus-visible, .site-header a:focus-visible{outline-offset:1px;}

/* Barra de anuncio (zona "top", encima del menú) */
.topbar-zone{position:relative; z-index:51;}

/* ------------------------------------------------------------------ Pie */
.site-footer{background:var(--footer-bg); border-top:1px solid var(--wood-line); color:var(--ivory-dim); font-size:14px; padding:64px 0 28px; margin-top:0;}
.foot-grid{display:grid; grid-template-columns:var(--foot-cols, 1.6fr 1fr 1fr 1fr); gap:40px;}
.foot-brand .logo{margin-bottom:14px; font-size:1.25rem; color:var(--ivory);}
.foot-brand p{max-width:300px; font-size:14px; color:var(--ivory-dim);}
.foot-col h5{font-size:12px; color:var(--ivory); letter-spacing:.1em; margin-bottom:16px; font-weight:700; text-transform:uppercase;}
.foot-col a{display:block; font-size:14px; color:var(--ivory-dim); margin-bottom:10px;}
.foot-col a:hover{color:var(--ivory);}
.foot-col a.is-current{color:var(--accent-text); font-weight:600;}
.foot-bottom{margin-top:48px; padding-top:22px; border-top:1px solid var(--wood-line); display:flex; justify-content:space-between; color:var(--ivory-dim); font-size:13px; flex-wrap:wrap; gap:10px;}
.foot-bottom a{color:var(--ivory-dim);}
.foot-bottom a:hover{color:var(--ivory);}
@media (max-width:900px){ .foot-grid{grid-template-columns:1fr 1fr; gap:32px;} .foot-brand{grid-column:1/-1;} }
@media (max-width:480px){ .site-footer{padding:44px 0 24px;} .foot-grid{grid-template-columns:1fr 1fr; gap:26px;} }

/* ----------------------------------------------------------- Auth (login) */
.auth-body{display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:100vh; padding:40px 20px;}
.auth-logo{font-family:var(--serif); font-size:1.4rem; font-weight:var(--heading-weight); margin-bottom:30px;}
.auth-logo span{color:var(--accent-text);}
.auth-wrap{width:100%; max-width:440px;}
.auth-card{background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:38px 34px; box-shadow:var(--shadow-md);}
.auth-card h1{font-family:var(--serif); font-size:1.6rem; font-weight:var(--heading-weight); letter-spacing:var(--heading-track); margin-bottom:8px; line-height:1.2;}
.auth-card .sub{color:var(--ivory-dim); font-size:14.5px; margin-bottom:26px;}
.auth-alt{margin-top:22px; text-align:center; font-size:14px; color:var(--ivory-dim);}
.auth-alt a{color:var(--accent-text); font-weight:600;}
.auth-alt a:hover{text-decoration:underline;}

/* ------------------------------------------------------------- Formularios */
.field{margin-bottom:18px;}
.field label{display:block; font-size:12.5px; color:var(--ivory-dim); font-weight:600; margin-bottom:7px; letter-spacing:.01em;}
.field input, .field select, .field textarea{
  width:100%; background:var(--ink-soft); border:1px solid var(--field-line); border-radius:var(--radius);
  color:var(--ivory); font-family:var(--sans); font-size:15px; padding:11px 14px; line-height:1.4;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field textarea{min-height:110px; resize:vertical;}
.field input::placeholder, .field textarea::placeholder{color:var(--ivory-dim); opacity:.75;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--accent-text); box-shadow:0 0 0 3px var(--accent-soft);}
.field select option{background:var(--ink-soft); color:var(--ivory);}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:700px){ .field-row{grid-template-columns:1fr;} }
.role-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
.role-option{border:1px solid var(--field-line); border-radius:var(--radius); padding:12px 8px; text-align:center; font-size:13px; cursor:pointer; transition:border-color .15s ease, background-color .15s ease;}
.role-option:hover{background:var(--tint);}
.role-option input{display:none;}
.role-option.checked, .role-option:has(input:checked){border-color:var(--accent-text); background:var(--accent-soft); font-weight:600;}
.submit-btn{width:100%; background:var(--garnet); color:var(--on-garnet); border:none; border-radius:var(--radius-btn); padding:13px; font-size:15px; font-weight:700; cursor:pointer; margin-top:6px; font-family:inherit; transition:background-color .18s ease, box-shadow .18s ease;}
.submit-btn:hover{background:var(--garnet-bright); box-shadow:var(--shadow-md);}
.error-box{background:var(--danger-bg); border:1px solid var(--danger-line); color:var(--danger-text); border-radius:var(--radius); padding:12px 16px; font-size:14px; margin-bottom:20px;}
.error-box ul{margin-left:18px;}
.success-box{background:var(--ok-bg); border:1px solid var(--ok-line); color:var(--ok-text); border-radius:var(--radius); padding:12px 16px; font-size:14px; margin-bottom:20px;}
.instrument-group{margin-bottom:20px;}
.instrument-group h4{font-family:var(--serif); font-size:15px; color:var(--accent-text); font-weight:var(--heading-weight); margin-bottom:10px;}
.checkbox-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:8px;}
.checkbox-item{
  display:flex; align-items:center; gap:8px; font-size:14px; border:1px solid var(--field-line);
  border-radius:var(--radius); padding:9px 12px; cursor:pointer; transition:border-color .15s ease, background-color .15s ease;
}
.checkbox-item:hover{background:var(--tint);}
.checkbox-item input{accent-color:var(--garnet); width:auto; padding:0; flex:0 0 auto; box-shadow:none;}
.checkbox-item:has(input:checked){border-color:var(--accent-text); background:var(--accent-soft);}

/* ------------------------------------------------------------ Tipografía */
.eyebrow{font-family:var(--sans); font-style:normal; text-transform:uppercase; letter-spacing:.14em; color:var(--accent-text); font-size:.75rem; font-weight:700; margin-bottom:12px;}
.section-title{font-family:var(--serif); font-size:clamp(1.7rem, 1.15rem + 2vw, 2.65rem); font-weight:var(--heading-weight); letter-spacing:var(--heading-track); line-height:1.12; width:100%; max-width:none; text-wrap:balance;}
.section-sub{color:var(--ivory-dim); max-width:560px; margin-top:14px; font-size:1.05rem;}

/* ------------------------------------------------------------------ Tarjetas
   .artist-card = tarjeta con foto (artistas, grupos, empresas, eventos).
   Proporción 4:5, hover con elevación suave. Nunca muestra el caché. */
.artist-row, .inv-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:24px; margin-top:28px;}
.artist-card{
  color:var(--ivory);
  display:flex; flex-direction:column; min-width:0;
  background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
a.artist-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--field-line);}
.artist-photo{aspect-ratio:4/5; background:var(--hero-grad-2); position:relative; overflow:hidden; background-size:cover; background-position:center;}
.artist-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
a.artist-card:hover .artist-photo img{transform:scale(1.04);}
.artist-photo .ph{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:4.2rem; font-weight:var(--heading-weight); color:rgba(255,255,255,.88); letter-spacing:-.02em;}
.artist-photo--square{aspect-ratio:1/1;}
.artist-photo .badge{position:absolute; top:12px; left:12px; background:var(--ink-soft); color:var(--ivory); font-size:11px; font-weight:700; padding:5px 11px; border-radius:999px; box-shadow:var(--shadow-sm); letter-spacing:.02em;}
.artist-photo .badge--accent{background:var(--gold-fill); color:#1A1612;}
.artist-body{padding:16px 18px 20px; display:flex; flex-direction:column; flex:1; min-width:0;}
.artist-body h3, .artist-body h4{font-family:var(--serif); font-size:1.08rem; font-weight:var(--heading-weight); letter-spacing:-.01em; line-height:1.25; overflow-wrap:anywhere;}
.artist-body .loc{font-size:13.5px; color:var(--ivory-dim); margin-top:4px;}
.artist-tags{display:flex; gap:6px; margin-top:12px; flex-wrap:wrap;}
.tag{font-size:12px; border:1px solid var(--wood-line); background:var(--tint); padding:3px 10px; border-radius:999px; color:var(--ivory-dim); font-weight:500; line-height:1.5;}
.tag--accent{border-color:var(--accent-text); color:var(--ivory);}
.rating{margin-top:auto; padding-top:14px; font-size:13px; color:var(--ivory); font-weight:600;}
.rating .star{color:var(--gold-fill);}
.rating small{color:var(--ivory-dim); font-weight:400; font-size:12.5px;}
/* Fecha destacada de las tarjetas de evento */
.artist-photo .ev-date{position:absolute; left:14px; bottom:14px; background:var(--ink-soft); color:var(--ivory); border-radius:var(--radius); padding:8px 12px; text-align:center; line-height:1.1; box-shadow:var(--shadow-md);}
.artist-photo .ev-date b{display:block; font-family:var(--serif); font-size:1.5rem; font-weight:var(--heading-weight);}
.artist-photo .ev-date span{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-text);}

/* ---------------------------------------------- Paneles de usuario / fichas */
.dash-wrap{padding:clamp(36px, 6vw, 72px) 0 clamp(56px, 8vw, 96px);}
.dash-card{background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:36px 38px; max-width:820px; box-shadow:var(--shadow-sm);}
.dash-card h1{font-family:var(--serif); font-size:1.65rem; font-weight:var(--heading-weight); letter-spacing:var(--heading-track); margin-bottom:6px;}
.dash-card .sub{color:var(--ivory-dim); font-size:14.5px; margin-bottom:28px;}
.site-body .panel{background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow-sm);}

.dash-table{width:100%; border-collapse:collapse; font-size:14px; margin-top:14px;}
.dash-table th{text-align:left; padding:10px 8px; color:var(--ivory-dim); font-weight:700; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; border-bottom:1px solid var(--wood-line);}
.dash-table td{padding:12px 8px; border-bottom:1px solid var(--wood-line); color:var(--ivory-dim);}
.dash-table tr:last-child td{border-bottom:none;}
.dash-section{margin-top:44px; padding-top:34px; border-top:1px solid var(--wood-line);}
.dash-status{font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent-text);}

/* Ficha pública (artista / grupo / local / evento) */
.profile-banner{height:clamp(160px, 26vw, 280px); background:var(--hero-grad-1); border-radius:var(--radius-lg) var(--radius-lg) 0 0; position:relative; overflow:hidden;}
.profile-banner .badge{position:absolute; top:18px; left:18px; background:var(--ink-soft); color:var(--ivory); font-size:11.5px; font-weight:700; padding:5px 12px; border-radius:999px; box-shadow:var(--shadow-sm);}
.profile-body{background:var(--ink-soft); border:1px solid var(--wood-line); border-top:none; border-radius:0 0 var(--radius-lg) var(--radius-lg); padding:34px clamp(22px, 4vw, 44px) 40px; box-shadow:var(--shadow-md);}
.profile-body h1{font-family:var(--serif); font-size:clamp(1.7rem, 1.2rem + 1.6vw, 2.4rem); font-weight:var(--heading-weight); letter-spacing:var(--heading-track); line-height:1.15;}
.profile-body .loc{color:var(--ivory-dim); font-size:15px; margin-top:6px;}
.profile-meta-grid{display:flex; gap:36px; margin:22px 0; flex-wrap:wrap;}
.profile-meta-grid div span{display:block; font-size:11.5px; color:var(--ivory-dim); font-weight:700; margin-bottom:4px; letter-spacing:.07em; text-transform:uppercase;}
.profile-meta-grid div strong{font-family:var(--serif); font-size:1.2rem; font-weight:var(--heading-weight);}
.profile-tags{display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 20px;}
.profile-tags .tag{font-size:13px; padding:5px 13px;}
.profile-section-label{font-size:11.5px; color:var(--ivory-dim); font-weight:700; margin:26px 0 10px; letter-spacing:.09em; text-transform:uppercase;}
.profile-bio{color:var(--ivory-dim); line-height:1.75; white-space:pre-line; font-size:1.02rem; max-width:70ch;}
.profile-avatar{width:104px; height:104px; border-radius:50%; object-fit:cover; border:4px solid var(--ink-soft); margin-top:-68px; margin-bottom:14px; position:relative; background:var(--ink-soft); box-shadow:var(--shadow-md);}

/* Reseñas */
.rating-summary{display:flex; align-items:baseline; gap:10px; margin:8px 0 22px;}
.rating-summary .stars{color:var(--gold-fill); font-size:20px; letter-spacing:2px;}
.rating-summary .count{color:var(--ivory-dim); font-size:13.5px;}
.review-item{padding:18px 0; border-bottom:1px solid var(--wood-line);}
.review-item:last-child{border-bottom:none;}
.review-item .stars{color:var(--gold-fill); font-size:14px; letter-spacing:1px;}
.review-item .meta{font-size:12px; color:var(--ivory-dim); margin-left:8px;}
.review-item p{margin-top:6px; color:var(--ivory-dim); font-size:14.5px;}
.verified-pill{font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:999px; background:var(--accent-soft); color:var(--accent-text); margin-left:6px;}

/* Mensajería */
.msg-list{display:flex; flex-direction:column; gap:12px; margin:24px 0; max-height:460px; overflow-y:auto; padding-right:6px;}
.msg-bubble{max-width:72%; padding:11px 16px; border-radius:16px; font-size:14.5px; line-height:1.5;}
.msg-theirs{background:var(--tint-2); border:1px solid var(--wood-line); align-self:flex-start; border-bottom-left-radius:4px;}
.msg-mine{background:var(--garnet); color:var(--on-garnet); align-self:flex-end; border-bottom-right-radius:4px;}
.msg-meta{font-size:11px; color:var(--ivory-dim); margin-bottom:4px; display:block;}
.msg-mine .msg-meta{color:var(--on-garnet); opacity:.8;}
.msg-empty{color:var(--ivory-dim); text-align:center; padding:30px 0;}

/* Galería */
.gallery-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(160px,1fr)); gap:14px; margin-top:16px;}
.gallery-item{position:relative; border:1px solid var(--wood-line); border-radius:var(--radius); overflow:hidden; background:var(--ink);}
.gallery-item img{width:100%; height:140px; object-fit:cover; display:block;}
.gallery-item .gallery-body{padding:10px 12px;}
.gallery-item .gallery-body a{font-size:12.5px; color:var(--accent-text); word-break:break-all;}
.gallery-item .gallery-del{position:absolute; top:6px; right:6px;}
.gallery-item .gallery-del button{background:rgba(20,16,13,0.75); color:#fff; border:none; border-radius:50%; width:26px; height:26px; cursor:pointer; font-size:13px;}
.photo-preview{width:140px; height:140px; border-radius:var(--radius); object-fit:cover; border:1px solid var(--wood-line); display:block; margin-bottom:14px;}
.cover-preview{width:100%; max-width:400px; height:140px; border-radius:var(--radius); object-fit:cover; border:1px solid var(--wood-line); display:block; margin-bottom:14px;}

/* ===================== Menú móvil (cabecera pública) ===================== */
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:44px; height:44px; padding:0; margin:0 0 0 auto; background:transparent; border:1px solid var(--field-line);
  border-radius:999px; cursor:pointer; flex-shrink:0;
}
.nav-toggle:hover, .nav-toggle:focus-visible{border-color:var(--accent-text); background:var(--tint);}
.nav-toggle-bar{display:block; width:20px; height:2px; background:var(--ivory); border-radius:2px; transition:transform 0.2s ease, opacity 0.2s ease;}
.nav-toggle.is-active .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-active .nav-toggle-bar:nth-child(2){opacity:0;}
.nav-toggle.is-active .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav-panel{
  display:none; position:absolute; top:100%; left:0; right:0; z-index:49;
  background:var(--ink); border-bottom:1px solid var(--wood-line); box-shadow:var(--shadow-lg);
  max-height:0; overflow:hidden; opacity:0;
  transition:max-height 0.25s ease, opacity 0.2s ease;
}
.mobile-nav-panel.is-open{max-height:85vh; overflow-y:auto; opacity:1;}
.mobile-nav-links{display:flex; flex-direction:column; padding:8px 14px 4px;}
.mobile-nav-links a{
  display:flex; align-items:center; min-height:50px; padding:12px 14px; font-size:17px; font-weight:600;
  border-bottom:1px solid var(--wood-line); border-radius:var(--radius);
}
.mobile-nav-links a.is-active{color:var(--accent-text); background:var(--tint);}
.mobile-nav-links a:active, .mobile-nav-links a:focus-visible{color:var(--accent-text);}
.mobile-nav-cta{display:flex; flex-direction:column; padding:10px 14px 20px; gap:2px;}
.mobile-nav-cta a{display:flex; align-items:center; gap:8px; min-height:48px; padding:12px 14px; font-size:15px; font-weight:600; border-radius:var(--radius);}
.mobile-nav-cta a.mobile-nav-primary{background:var(--garnet); color:var(--on-garnet); justify-content:center; margin-top:8px;}
.mobile-nav-cta a:active, .mobile-nav-cta a:focus-visible{background:var(--tint);}
.mobile-nav-badge{background:var(--garnet); color:var(--on-garnet); font-size:11px; font-weight:700; border-radius:10px; padding:1px 7px;}
.mobile-nav-lang{display:flex; gap:8px; align-items:center; padding:14px 14px 4px; font-size:14px;}
.mobile-nav-lang a{padding:6px 12px; border-radius:999px; border:1px solid var(--wood-line); min-height:0;}
.mobile-nav-lang a.is-current{background:var(--tint-2); color:var(--ivory); font-weight:700;}

@media (max-width:768px){
  .nav{padding:12px var(--gutter); flex-wrap:nowrap; position:relative; gap:12px;}
  .nav-links, .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .mobile-nav-panel{display:block;}
}

/* ================= Ajustes generales de responsividad móvil ================= */
@media (max-width:768px){
  .dash-card{padding:26px 22px;}
  .auth-card{padding:28px 22px;}
  .profile-body{padding:26px 20px 32px;}
  .foot-bottom{text-align:center; justify-content:center;}
  /* Tablas: deslizables en horizontal para que nunca desborden el layout. */
  table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; white-space:nowrap;}
  .dash-table{min-width:520px;}
  .artist-row, .inv-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px;}
  .artist-body{padding:12px 14px 16px;}
  .artist-photo .ph{font-size:3rem;}
}
@media (max-width:420px){
  .logo{font-size:1.15rem;}
}

/* ================= Buscador de artistas / invitaciones / directorio ================= */
.inv-filters{display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:4px 16px; align-items:end; margin-top:18px;}
.inv-filters .field{margin-bottom:12px;}
.inv-filters .field select, .inv-filters .field input{min-width:0;}
.inv-filter-actions{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.dir-filters{margin-top:28px; background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:22px 22px 10px; box-shadow:var(--shadow-sm);}
.dir-fashion-check .checkbox-item{margin-top:0;}
.dir-count{margin-top:18px; color:var(--ivory-dim); font-size:13.5px;}
.inv-note{font-size:12.5px; color:var(--ivory-dim); margin:10px 0 0;}
.inv-grid .artist-body h4{overflow-wrap:anywhere;}
.inv-instrument{font-size:13px; color:var(--accent-text); margin-top:8px; font-weight:600;}
.inv-partial{font-size:12px; color:var(--accent-text); margin-top:10px;}
.inv-card-actions{margin-top:14px; display:flex; gap:8px; flex-wrap:wrap;}
.inv-card-actions .btn{padding:8px 14px; font-size:13px;}
.inv-invite{margin-top:12px;}
.inv-invite summary{list-style:none; cursor:pointer; text-align:center; padding:8px 14px; font-size:13px;}
.inv-invite summary::-webkit-details-marker{display:none;}
.inv-invite[open] summary{background:transparent; border-color:var(--field-line); color:var(--ivory);}
.inv-invite form{margin-top:14px;}
.inv-invite .field textarea{min-height:80px;}
.inv-pager{display:flex; gap:14px; align-items:center; justify-content:center; margin-top:34px; flex-wrap:wrap; font-size:13.5px; color:var(--ivory-dim);}
.inv-pager .btn{padding:8px 16px; font-size:13px;}

.inv-pill{display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; background:var(--accent-soft); color:var(--accent-text); white-space:nowrap;}
.inv-pill.is-accepted{background:var(--ok-bg); color:var(--ok-text);}
.inv-pill.is-rejected, .inv-pill.is-declined{background:var(--danger-bg); color:var(--danger-text);}
.inv-pill.is-cancelled{background:var(--tint); color:var(--ivory-dim);}
.inv-pill.is-info_requested{background:var(--info-bg); color:var(--info-text);}

.inv-alert{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; border-color:var(--accent-text);}
.inv-received{display:flex; flex-direction:column;}
.inv-received-item{display:flex; justify-content:space-between; gap:18px; padding:16px 0; border-bottom:1px solid var(--wood-line); flex-wrap:wrap;}
.inv-received-item:last-child{border-bottom:none;}
.inv-received-main{flex:1; min-width:240px;}
.inv-received-title{font-weight:600; font-size:15px;}
.inv-received-meta{font-size:12.5px; color:var(--ivory-dim); margin-top:4px;}
.inv-received-msg{margin:10px 0 0; padding:8px 12px; border-left:3px solid var(--accent-text); background:var(--tint); font-size:13.5px; color:var(--ivory-dim); overflow-wrap:anywhere;}
.inv-received-actions{display:flex; gap:8px; align-items:flex-start;}

.app-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px;}
.app-tab{padding:7px 15px; border:1px solid var(--field-line); border-radius:999px; font-size:13px; color:var(--ivory-dim); text-decoration:none; transition:background-color .15s ease, color .15s ease;}
.app-tab:hover{background:var(--tint); color:var(--ivory);}
.app-tab.active{background:var(--garnet); border-color:var(--garnet); color:var(--on-garnet);}
.app-tab-count{font-size:11px; opacity:0.8; margin-left:4px;}
.app-upcoming td{background:var(--accent-soft);}
.app-upcoming td:first-child{box-shadow:inset 3px 0 0 var(--accent-text);}
.app-upcoming-tag{font-size:11.5px; color:var(--accent-text); font-weight:700; margin-top:3px;}
.app-actions{white-space:nowrap;}
.app-actions .btn{margin-right:4px;}
.ms-nav-badge{background:var(--garnet); color:var(--on-garnet); font-size:11px; font-weight:700; border-radius:10px; padding:1px 7px; margin-left:4px;}

@media (max-width:768px){
  .inv-received-actions{width:100%;}
  .app-table{min-width:880px;}
}

/* ============================================================
   Selector de lugares (ronda 25) — todo bajo .place-picker*
   Usa las variables de marca con valores de reserva; el tema claro
   del admin las redefine en admin.css.
   ============================================================ */
.place-picker{
  --pp-bg:var(--ink, #14100D); --pp-panel:var(--ink-soft, #221B15); --pp-text:var(--ivory, #F4ECDF);
  --pp-dim:var(--ivory-dim, #DED2BE); --pp-line:var(--field-line, rgba(244,236,223,0.12));
  --pp-accent:var(--accent-text, #C9A227); --pp-action:var(--garnet, #7A1F2B); --pp-action-hi:var(--garnet-bright, #9C2B39);
  --pp-on-action:var(--on-garnet, #F4ECDF);
  position:relative; width:100%; min-width:0;
}
.place-picker [hidden]{display:none !important;}
.place-picker__control{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px; position:relative;
  background:var(--pp-panel); border:1px solid var(--pp-line); border-radius:var(--radius, 5px); padding:4px 8px; min-height:46px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.place-picker__control:focus-within{border-color:var(--pp-accent); box-shadow:0 0 0 3px var(--accent-soft, transparent);}
.place-picker .place-picker__control .place-picker__input{
  flex:1 1 140px; min-width:0; width:auto; border:0; background:transparent; color:var(--pp-text);
  font-family:inherit; font-size:15px; padding:7px 4px; outline:none;
}
.place-picker--filter .place-picker__input{width:100%; font-family:inherit; font-size:15px; color:var(--pp-text); background:var(--pp-panel); border:1px solid var(--pp-line); border-radius:var(--radius); padding:10px 12px; min-height:44px; box-sizing:border-box;}
.place-picker--filter .place-picker__input:focus{outline:none; border-color:var(--pp-accent); box-shadow:0 0 0 3px var(--accent-soft, transparent);}
.place-picker__clear{
  background:transparent; border:0; color:var(--pp-dim); font-size:20px; line-height:1; cursor:pointer;
  padding:4px 8px; border-radius:4px;
}
.place-picker__clear:hover{color:var(--pp-text);}
.place-picker__chips{display:contents;}
.place-picker__chip{
  display:inline-flex; align-items:center; gap:4px; max-width:100%; border:1px solid var(--pp-line);
  border-radius:20px; padding:3px 4px 3px 10px; font-size:12.5px; color:var(--pp-text); background:var(--tint);
}
.place-picker__chip-text{overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:260px;}
.place-picker__chip-x{
  background:transparent; border:0; color:var(--pp-dim); cursor:pointer; font-size:16px; line-height:1;
  padding:2px 7px; border-radius:50%;
}
.place-picker__chip-x:hover{color:var(--pp-text); background:var(--tint-2);}
.place-picker__panel{
  position:absolute; z-index:60; left:0; right:0; top:calc(100% + 4px); max-height:min(70vh, 440px); overflow-y:auto;
  background:var(--pp-panel); border:1px solid var(--pp-line); border-radius:var(--radius, 6px);
  box-shadow:var(--shadow-lg, 0 18px 40px -12px rgba(0,0,0,0.55)); color:var(--pp-text); text-align:left;
}
.place-picker__list{list-style:none; margin:0; padding:4px 0;}
.place-picker__opt{padding:10px 14px; font-size:14px; color:var(--pp-text); cursor:pointer; line-height:1.35;}
.place-picker__opt:hover, .place-picker__opt.is-active{background:var(--tint-2);}
.place-picker__opt--create{color:var(--pp-accent); font-weight:600; border-bottom:1px solid var(--pp-line);}
.place-picker__meta{color:var(--pp-dim); font-size:12.5px; margin-left:4px;}
.place-picker__opt--region .place-picker__city, .place-picker__opt--country .place-picker__city{font-style:italic;}
.place-picker__group{padding:8px 14px 4px; font-size:11px; letter-spacing:0.4px; text-transform:uppercase; color:var(--pp-dim); font-weight:600;}
.place-picker__note{display:block; padding:10px 14px; font-size:12.5px; color:var(--pp-dim);}
noscript .place-picker__note{padding:6px 0 0;}
.place-picker__wizard{padding:14px;}
.place-picker__wizard-title{font-size:14px; margin:0 0 4px; color:var(--pp-text);}
.place-picker__wizard-help{font-size:12.5px; color:var(--pp-dim); margin:0 0 12px;}
.place-picker__step{margin-bottom:12px;}
.place-picker__step-label{display:block; font-size:12px; font-weight:600; color:var(--pp-accent); margin-bottom:5px;}
.place-picker .place-picker__select, .place-picker .place-picker__new{
  width:100%; background:var(--pp-bg); border:1px solid var(--pp-line); border-radius:var(--radius, 5px); color:var(--pp-text);
  font-family:inherit; font-size:14.5px; padding:10px 11px;
}
.place-picker .place-picker__select:focus, .place-picker .place-picker__new:focus{outline:none; border-color:var(--pp-accent);}
.place-picker__newbox{margin-top:6px;}
.place-picker__hint{font-size:12.5px; color:var(--pp-accent); margin-top:6px;}
.place-picker__hint--error{color:#E5766F;}
.place-picker__link{background:none; border:0; padding:0; color:inherit; font:inherit; text-decoration:underline; cursor:pointer; font-weight:700;}
.place-picker__error{font-size:13px; color:#E5766F; margin:0 0 10px;}
.place-picker__actions{display:flex; gap:8px; flex-wrap:wrap;}
.place-picker__btn{
  font-family:inherit; font-size:14px; font-weight:600; padding:10px 16px; border-radius:var(--radius-btn, 4px); cursor:pointer;
  background:transparent; color:var(--pp-text); border:1px solid var(--pp-line);
}
.place-picker__btn:hover{border-color:var(--pp-accent);}
.place-picker__btn--primary{background:var(--pp-action); border-color:var(--pp-action); color:var(--pp-on-action);}
.place-picker__btn--primary:hover{background:var(--pp-action-hi);}
.place-picker__btn:disabled{opacity:0.45; cursor:not-allowed;}
.place-picker--filter .place-picker__panel{min-width:240px;}
@media (max-width:600px){
  .place-picker__panel{position:fixed; left:12px; right:12px; top:auto; bottom:12px; max-height:75vh;}
  .place-picker--filter .place-picker__panel{min-width:0;}
  .place-picker__opt{padding:13px 14px;}
}

/* ============================================================
   Tema "Clásico": detalles que reproducen el diseño original
   ============================================================ */
html[data-theme="clasico"] .eyebrow{font-family:var(--serif); font-style:italic; text-transform:none; letter-spacing:0; font-size:16px; font-weight:400;}
html[data-theme="clasico"] .nav-links a{border-radius:var(--radius);}
html[data-theme="clasico"] .nav-links a.is-active{background:transparent; color:var(--accent-text);}
html[data-theme="clasico"] .nav-toggle{border-radius:6px;}
html[data-theme="clasico"] .lang-switch{background:transparent; padding:0;}
html[data-theme="clasico"] .lang-switch a.is-current{background:transparent; color:var(--accent-text); box-shadow:none;}
html[data-theme="clasico"] .artist-photo .badge{background:rgba(20,16,13,0.7); border:1px solid var(--gold); color:var(--gold); box-shadow:none;}
html[data-theme="clasico"] a.artist-card:hover{transform:none; box-shadow:none; border-color:var(--gold);}


/* ============================================================
   Resultados / directorios
   ============================================================ */
.results-search{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:16px; margin:0 0 28px; box-shadow:var(--shadow-sm, none);}
.results-search label{display:block; font-size:12px; font-weight:600; color:var(--ivory-dim); margin-bottom:4px;}
.results-search > *{flex:1 1 170px; min-width:0;}
.results-search select,.results-search input{width:100%;}
.results-search--inline{margin-bottom:20px; padding:12px;}
.results-search-btn{flex:0 0 auto !important;}
.results-banner{background:var(--accent-soft, var(--tint)); border:1px solid var(--wood-line); border-radius:var(--radius); padding:12px 16px; margin:0 0 20px; color:var(--ivory);}
.results-empty{text-align:center; padding:48px 16px; color:var(--ivory-dim); border:1px dashed var(--wood-line); border-radius:var(--radius-lg);}

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{transition-duration:0.01ms !important; animation-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ============================================================
   v3.27 — Eventos: horario, cupo, Mis eventos, panel músico, galería
   (solo tokens del tema; sin colores sueltos)
   ============================================================ */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.ph-g1{background:var(--hero-grad-1);}
.ph-g2{background:var(--hero-grad-2);}
.ph-g3{background:var(--hero-grad-3);}
.field-help{display:block; margin-top:6px; font-size:12px; color:var(--ivory-dim);}
.btn-danger-text{color:var(--danger-text);}
.btn:disabled{opacity:.5; cursor:not-allowed;}
.inv-pill.is-published{background:var(--ok-bg); color:var(--ok-text);}
.inv-pill.is-closed{background:var(--info-bg); color:var(--info-text);}
.inv-pill.is-finished{background:var(--tint); color:var(--ivory-dim);}
.inv-pill.is-pending{background:var(--accent-soft); color:var(--accent-text);}

.ev-when{font-size:13.5px; font-weight:600; color:var(--accent-text); margin:2px 0 4px; overflow-wrap:anywhere;}
.ev-when--lg{font-size:1.05rem; margin:8px 0 2px;}
.ev-daylist{list-style:none; margin:10px 0 0; padding:0; display:grid; gap:4px; font-size:14px; color:var(--ivory-dim);}
.ev-daylist li::before{content:"•"; color:var(--accent-text); margin-right:8px;}
.ev-banner{position:relative;}
.ev-banner img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ev-apply{margin-top:30px;}

/* Formulario de horario */
.ev-sched{border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:16px 18px 6px; margin:0 0 20px; min-width:0;}
.ev-sched legend{font-size:12.5px; font-weight:700; color:var(--ivory-dim); letter-spacing:.06em; text-transform:uppercase; padding:0 8px;}
.ev-sched__kinds{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px;}
.ev-sched__kind{position:relative; cursor:pointer;}
.ev-sched__kind input{position:absolute; opacity:0; inset:0; cursor:pointer;}
.ev-sched__kind span{display:inline-block; padding:9px 16px; border:1px solid var(--field-line); border-radius:999px; font-size:13.5px; color:var(--ivory-dim);}
.ev-sched__kind input:checked + span{background:var(--garnet); border-color:var(--garnet); color:var(--on-garnet);}
.ev-sched__kind input:focus-visible + span{outline:2px solid var(--accent-text); outline-offset:2px;}
.ev-sched__hint{font-size:13px; color:var(--ivory-dim); margin:0 0 14px;}
.ev-sched [hidden]{display:none !important;}
.ev-days{list-style:none; margin:0 0 10px; padding:0; display:grid; gap:10px;}
.ev-days__row{display:grid; grid-template-columns:28px 1fr 1fr 1fr auto; gap:10px; align-items:end; padding:10px; border:1px solid var(--wood-line); border-radius:var(--radius); background:var(--tint);}
.ev-days__row .field{margin:0;}
.ev-days__n{align-self:center; font-family:var(--serif); font-weight:var(--heading-weight); color:var(--accent-text); text-align:center;}
.ev-days__remove{padding:8px 12px; line-height:1;}
.ev-days__add{margin-bottom:6px;}
.ev-sched__count{font-size:12px; color:var(--ivory-dim); margin:4px 0 12px;}
@media (max-width:640px){
  .ev-days__row{grid-template-columns:24px 1fr 1fr; }
  .ev-days__row .field:first-of-type{grid-column:2 / 4;}
  .ev-days__remove{grid-column:2 / 4; justify-self:start;}
}

/* Formulario de evento */
.ev-form__links{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:18px;}
.ev-form__actions{display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:8px;}
.ev-form__cancel{color:var(--ivory-dim); font-size:14px;}
.ev-form__note{font-size:13px; color:var(--ivory-dim); margin:12px 0 0;}
.ev-form__danger{margin-top:24px; padding-top:18px; border-top:1px solid var(--wood-line);}
.ev-slots-chip{font-size:12.5px; font-weight:700; color:var(--accent-text); padding:4px 12px; border:1px solid var(--accent-text); border-radius:999px;}
.ef-cover__current{display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:10px;}
.ef-cover__current img{width:160px; max-width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:var(--radius); border:1px solid var(--wood-line);}
.ef-cover__remove{font-size:13px; color:var(--ivory-dim); display:flex; gap:6px; align-items:center;}

/* Mis eventos */
.me-head{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px;}
.me-head h2{margin:0;}
.ev-rows{list-style:none; margin:18px 0 0; padding:0; display:grid; gap:14px;}
.ev-row{display:grid; grid-template-columns:150px 1fr; gap:16px; padding:14px; border:1px solid var(--wood-line); border-radius:var(--radius-lg); background:var(--ink);}
.ev-row--cancelled{opacity:.75;}
.ev-row__thumb{position:relative; display:flex; align-items:center; justify-content:center; aspect-ratio:16/10; border-radius:var(--radius); overflow:hidden; color:var(--on-garnet); font-family:var(--serif); font-size:2.4rem; text-decoration:none;}
.ev-row__thumb img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ev-row__main{min-width:0;}
.ev-row__top{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.ev-row__top h3{font-family:var(--serif); font-size:1.15rem; font-weight:var(--heading-weight); margin:0; overflow-wrap:anywhere;}
.ev-row__top h3 a{color:var(--ivory); text-decoration:none;}
.ev-row__when{font-size:13.5px; font-weight:600; color:var(--accent-text); margin-top:4px;}
.ev-row__meta{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:13px; color:var(--ivory-dim); margin-top:6px;}
.ev-row__slots{font-weight:700; color:var(--ivory);}
.ev-row__pending{background:var(--accent-soft); color:var(--accent-text); font-weight:700; padding:1px 10px; border-radius:999px; text-decoration:none;}
.ev-row__actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
.ev-row__actions .btn{padding:7px 14px; font-size:13px;}
.ev-row__actions form{margin:0;}
@media (max-width:640px){
  .ev-row{grid-template-columns:1fr;}
  .ev-row__thumb{aspect-ratio:16/8;}
}

/* Cupo */
.slots-bar{margin:16px 0 8px;}
.slots-bar__text{display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:15px;}
.slots-bar__track{height:8px; border-radius:999px; background:var(--tint); border:1px solid var(--wood-line); overflow:hidden; margin-top:8px; max-width:420px;}
.slots-bar__track span{display:block; height:100%; background:var(--accent-text); border-radius:999px;}
.slots-bar__note{font-size:13px; color:var(--ivory-dim); margin:8px 0 0;}
.slots-bar--ficha{margin:6px 0 0;}

/* Candidaturas */
.cand-back{margin:0 0 8px; font-size:13px;}
.cand-back a{color:var(--accent-text);}
.cand-sub{color:var(--ivory-dim); font-size:14px; margin:0;}
.cand-toolbar{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.cand-toolbar form{margin:0;}
.cand-list{list-style:none; margin:0; padding:0; display:grid; gap:14px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 420px), 1fr));}
.cand-card{display:grid; grid-template-columns:84px 1fr; gap:14px; padding:16px; border:1px solid var(--wood-line); border-radius:var(--radius-lg); background:var(--ink-soft); box-shadow:var(--shadow-sm);}
.cand-card--accepted{border-color:var(--ok-line);}
.cand-card--rejected{opacity:.78;}
.cand-card__photo{position:relative; width:84px; height:84px; border-radius:var(--radius); overflow:hidden; display:flex; align-items:center; justify-content:center; color:var(--on-garnet); font-family:var(--serif); font-size:1.8rem;}
.cand-card__photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.cand-card__body{min-width:0;}
.cand-card__top{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.cand-card__top h3{font-family:var(--serif); font-size:1.08rem; font-weight:var(--heading-weight); margin:0; overflow-wrap:anywhere;}
.cand-card__top h3 a{color:var(--ivory); text-decoration:none;}
.cand-card__meta{display:flex; flex-wrap:wrap; gap:4px 12px; font-size:13px; color:var(--ivory-dim); margin-top:4px;}
.cand-card__members{font-size:12.5px; color:var(--ivory-dim); margin:8px 0 0;}
.cand-card__msg{margin-top:10px; font-size:13.5px;}
.cand-card__msg summary{cursor:pointer; color:var(--accent-text); font-weight:600;}
.cand-card__msg p{margin:8px 0 0; padding:8px 12px; border-left:3px solid var(--accent-text); background:var(--tint); overflow-wrap:anywhere;}
.cand-card__actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
.cand-card__actions form{margin:0;}
.cand-card__actions .btn{padding:7px 14px; font-size:13px;}
@media (max-width:480px){
  .cand-card{grid-template-columns:64px 1fr; padding:14px;}
  .cand-card__photo{width:64px; height:64px; font-size:1.4rem;}
}

/* Galería (panel de la empresa) */
.gal-cover img{width:min(100%, 420px); aspect-ratio:16/10; object-fit:cover; border-radius:var(--radius); border:1px solid var(--wood-line); display:block; margin:0 0 14px;}
.gal-form{margin:12px 0;}
.gal-list{list-style:none; margin:18px 0 0; padding:0; display:grid; gap:14px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 230px), 1fr));}
.gal-item{border:1px solid var(--wood-line); border-radius:var(--radius); padding:10px; background:var(--ink); display:flex; flex-direction:column; gap:8px; min-width:0;}
.gal-item__media{position:relative; aspect-ratio:16/10; border-radius:var(--radius); overflow:hidden; background:var(--tint);}
.gal-item__media img{width:100%; height:100%; object-fit:cover; display:block;}
.gal-item__play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:2rem; color:var(--on-garnet); text-shadow:0 1px 6px var(--ink);}
.gal-item__caption{display:flex; gap:6px;}
.gal-item__caption input{flex:1; min-width:0;}
.gal-item__caption .btn, .gal-item__actions .btn{padding:6px 10px; font-size:12.5px;}
.gal-item__actions{display:flex; gap:6px; flex-wrap:wrap;}
.gal-item__actions form{margin:0;}

/* Ficha pública: galería, vídeos, lightbox */
.ev-gallery{list-style:none; margin:6px 0 20px; padding:0; display:grid; gap:10px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 200px), 1fr));}
.ev-gallery a{display:block; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden; border:1px solid var(--wood-line);}
.ev-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease;}
.ev-gallery a:hover img, .ev-gallery a:focus-visible img{transform:scale(1.04);}
.ev-gallery a:focus-visible{outline:2px solid var(--accent-text); outline-offset:2px;}
.ev-gallery__cap{display:block; font-size:12px; color:var(--ivory-dim); margin-top:4px; overflow-wrap:anywhere;}
.ev-videos{display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 420px), 1fr)); margin:6px 0 20px;}
.ev-video{margin:0;}
.ev-video__frame{position:relative; aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; background:var(--ink); border:1px solid var(--wood-line);}
.ev-video__frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.ev-video figcaption{font-size:13px; color:var(--ivory-dim); margin-top:6px;}
/* Fancybox (v3.27b): enlaces a fotos ampliables */
a[data-fancybox]{cursor:zoom-in;}
.ev-banner a.fb-link{position:absolute; inset:0; display:block; z-index:1;}
.ev-video__btn{position:relative; display:flex; align-items:center; justify-content:center; width:100%; aspect-ratio:16/9; border-radius:var(--radius); border:1px solid var(--wood-line); background:linear-gradient(135deg, var(--ink-soft), var(--tint)); color:var(--ivory); text-decoration:none; cursor:pointer; flex-direction:column; gap:8px; text-align:center; padding:12px;}
.ev-video__btn:hover, .ev-video__btn:focus-visible{border-color:var(--accent-text);}
.ev-video__play{width:56px; height:56px; border-radius:50%; background:var(--garnet); color:var(--on-garnet); display:flex; align-items:center; justify-content:center; font-size:22px; padding-left:4px;}
.ev-video__hint{font-size:12.5px; color:var(--ivory-dim);}
.gal-item__media a, .gallery-item > a{display:block; position:relative; width:100%; height:100%;}
.fb-avatar{display:block;}
.fb-avatar{width:104px; height:104px; margin-top:-68px; margin-bottom:14px; border-radius:50%; position:relative;}
.fb-avatar .profile-avatar{margin:0;}
.fb-thumb-wrap{display:inline-block;}

/* Control "Proponerme" */
.ap{display:flex; flex-direction:column; gap:10px; margin-top:12px;}
.ap__mine{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.ap__withdraw{margin:0;}
.ap__withdraw .btn{padding:5px 12px; font-size:12.5px;}
.ap__form{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.ap__as{margin:0; width:100%; max-width:320px;}
.ap__as-note{font-size:13px; color:var(--ivory-dim); margin:0;}
.ap__btn{padding:10px 20px;}
.ap__warn{font-size:12.5px; color:var(--info-text); background:var(--info-bg); border-radius:var(--radius); padding:6px 10px; margin:0;}
.ap__msg{width:100%; max-width:480px; font-size:13px;}
.ap__msg summary{cursor:pointer; color:var(--accent-text); font-weight:600;}
.ap__msg textarea{width:100%; margin-top:8px; min-height:80px;}
.ap__closed{font-size:13.5px; color:var(--ivory-dim); margin:0;}

/* Eventos del músico */
.me-filters{align-items:flex-end;}
.me-filters__checks{display:flex; flex-direction:column; gap:6px; flex:1 1 220px;}
.me-check{display:flex !important; gap:8px; align-items:center; font-size:13px !important; margin:0 !important; color:var(--ivory) !important;}
.me-count{font-size:13px; color:var(--ivory-dim); margin:0 0 14px;}
.me-list{list-style:none; margin:0; padding:0; display:grid; gap:16px; grid-template-columns:repeat(auto-fill, minmax(min(100%, 380px), 1fr));}
.me-card{display:flex; flex-direction:column; border:1px solid var(--wood-line); border-radius:var(--radius-lg); overflow:hidden; background:var(--ink); min-width:0;}
.me-card__cover{display:block; position:relative; aspect-ratio:16/8; overflow:hidden;}
.me-card__cover img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.me-card__body{padding:14px 16px 16px; min-width:0;}
.me-card__body h3{font-family:var(--serif); font-size:1.1rem; font-weight:var(--heading-weight); margin:0; overflow-wrap:anywhere;}
.me-card__body h3 a{color:var(--ivory); text-decoration:none;}
.me-card__meta{display:flex; flex-wrap:wrap; gap:4px 12px; font-size:13px; color:var(--ivory-dim); margin-top:4px; align-items:center;}
.me-card__slots{font-size:12.5px; font-weight:700; color:var(--ivory); margin-top:6px;}
.me-mini{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.me-mini li{display:flex; flex-direction:column; gap:2px; font-size:13.5px; color:var(--ivory-dim);}
.me-mini a{color:var(--ivory); text-decoration:none;}
.me-filters{display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:12px 14px; align-items:end;}
.me-filters > *{flex:none;}
.me-filters input[type=search], .me-filters input[type=date]{width:100%; padding:11px 14px; border:1px solid var(--field-line); border-radius:var(--radius); background:var(--ink); color:var(--ivory); font:inherit; font-size:14px; min-height:44px;}
.me-filters__checks{grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; gap:8px 22px;}
.me-filters .results-search-btn{justify-self:start;}
@media (max-width:640px){ .ms-panel .dash-table, .co-panel .dash-table{display:block; overflow-x:auto; max-width:100%; min-width:0;} }
.me-check input[type=checkbox]{width:auto !important; flex:none; margin:0;}

/* Mis banners (v3.27b) */
.ob-list{display:grid; gap:16px; margin-top:12px;}
.ob-card{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:18px; border:1px solid var(--wood-line); border-radius:var(--radius); padding:14px; background:var(--ink); align-items:center;}
.ob-card__img img, .ob-preview img{width:100%; height:auto; aspect-ratio:16/3; object-fit:cover; display:block; border-radius:var(--radius); border:1px solid var(--wood-line); background:var(--tint);}
.ob-card h3{font-family:var(--serif); font-size:1.05rem; margin:0 0 6px; overflow-wrap:anywhere;}
.ob-meta{color:var(--ivory-dim); font-size:13.5px; margin:0 0 6px; overflow-wrap:anywhere;}
.ob-kpis{display:grid; grid-template-columns:repeat(auto-fit, minmax(110px,1fr)); gap:10px; margin:12px 0;}
.ob-kpis div{background:var(--tint); border-radius:var(--radius); padding:10px 12px;}
.ob-kpis dt{font-size:11.5px; color:var(--ivory-dim); font-weight:700; letter-spacing:.3px; text-transform:uppercase;}
.ob-kpis dd{margin:2px 0 0; font-size:1.25rem; font-weight:700; overflow-wrap:anywhere;}
.ob-form{max-width:640px;}
.ob-hint{display:block; color:var(--ivory-dim); font-size:12.5px; margin-top:6px;}
.ob-js-error{color:var(--danger-text); background:var(--danger-bg); padding:8px 12px; border-radius:var(--radius); font-size:13px; margin:8px 0 0;}
.ob-js-error[hidden]{display:none;}
.ob-bar{width:30%; min-width:80px;}
.ob-bar span{display:block; height:8px; border-radius:4px; background:var(--garnet); min-width:2px;}
.ob-stats{min-width:0;}
@media (max-width:700px){ .ob-card{grid-template-columns:1fr;} }

/* ===================== v3.33 — Datos personales (/completar-datos y /mis-datos) ===================== */
.info-box{background:var(--info-bg); border:1px solid var(--info-text); color:var(--info-text); border-radius:var(--radius); padding:12px 16px; font-size:14px; margin-bottom:20px;}
.pd-body{min-height:100vh; display:flex; flex-direction:column;}
.pd-bar{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px var(--gutter); border-bottom:1px solid var(--wood-line);}
.pd-logo .logo-img{max-height:36px; width:auto;}
.pd-tools{display:flex; align-items:center; gap:14px;}
.pd-exit{font-size:13.5px; font-weight:600; color:var(--ivory-dim); white-space:nowrap;}
.pd-exit:hover{color:var(--ivory); text-decoration:underline;}
.pd-wrap{width:100%; max-width:760px; margin:0 auto; padding:36px var(--gutter) 56px;}
.pd-card{background:var(--ink-soft); border:1px solid var(--wood-line); border-radius:var(--radius-lg); padding:36px 34px; box-shadow:var(--shadow-md);}
.pd-card h1{font-family:var(--serif); font-size:1.7rem; font-weight:var(--heading-weight); letter-spacing:var(--heading-track); margin-bottom:10px; line-height:1.2;}
.pd-card .sub{color:var(--ivory-dim); font-size:14.5px; margin-bottom:24px; max-width:60ch;}
.pd-form .field-row{align-items:start; gap:0 18px;}
.pd-form .pd-row-address{grid-template-columns:2fr 1fr;}
.pd-form .field{min-width:0;}
.pd-opt{font-weight:400; opacity:.8;}
.pd-form .pd-country[readonly]{opacity:.85; cursor:default; background:var(--tint);}
.pd-privacy{font-size:13px; color:var(--ivory-dim); margin:6px 0 4px;}
.pd-required-hint{font-size:12px; color:var(--ivory-dim); opacity:.85; margin-bottom:14px;}
.pd-form .pd-submit{width:auto; min-width:240px; padding:13px 28px;}
.pd-panel{max-width:820px;}
.pd-lead{color:var(--ivory-dim); font-size:14px; margin:-6px 0 18px; max-width:62ch;}
@media (max-width:700px){
  .pd-form .pd-row-address{grid-template-columns:1fr;}
  .pd-card{padding:26px 20px;}
  .pd-card h1{font-size:1.4rem;}
  .pd-form .pd-submit{width:100%; min-width:0;}
  .pd-bar{padding:12px 16px; flex-wrap:wrap; row-gap:8px;}
  .pd-logo{white-space:normal; font-size:1.1rem; line-height:1.2; min-width:0;}
  .pd-tools{gap:10px;}
}

/* v3.46 — iconos FontAwesome: ancho fijo en los menús para que los textos queden alineados */
.ms-link > i, .co-link > i, .side-link > i { display:inline-block; width:1.35em; text-align:center; margin-right:2px; }
.btn > i:first-child, .submit-btn > i:first-child, .tag > i:first-child { margin-right:3px; }
.stars i, .af-stars i, .rating .star i { font-size:.92em; }
.stars i + i, .af-stars i + i { margin-left:1px; }

/* ---- Texto con formato (v3.53): salida de App\Core\Rich::render() ---- */
.rich{color:var(--ivory-dim); line-height:1.75; font-size:1.02rem; overflow-wrap:anywhere;}
.rich > *:first-child{margin-top:0;} .rich > *:last-child{margin-bottom:0;}
.rich p{margin:0 0 1em;}
.rich h2,.rich h3,.rich h4{font-family:var(--serif); color:var(--ivory); font-weight:var(--heading-weight); line-height:1.25; margin:1.4em 0 .5em;}
.rich h2{font-size:1.45rem;} .rich h3{font-size:1.2rem;} .rich h4{font-size:1.05rem;}
.rich ul,.rich ol{margin:0 0 1em; padding-left:1.4em;} .rich li{margin:.2em 0;}
.rich ul{list-style:disc;} .rich ol{list-style:decimal;}
.rich blockquote{margin:0 0 1em; padding:.4em 1em; border-left:3px solid var(--gold,#c9a14a); background:var(--tint,transparent);}
.rich a{color:var(--accent-text,var(--garnet)); text-decoration:underline;}
.rich strong{color:var(--ivory);}
.rich .ql-align-center{text-align:center;} .rich .ql-align-right{text-align:right;} .rich .ql-align-justify{text-align:justify;}
.rich .ql-indent-1{padding-left:3em;} .rich .ql-indent-2{padding-left:6em;} .rich .ql-indent-3{padding-left:9em;}
.rich.profile-bio{white-space:normal;}
.rich.page-text{max-width:none;}

/* v3.59 · Comunidades: buscador, botones y tarjetas (también dentro del panel superadmin) */
.cm-search{display:flex; gap:12px; flex-wrap:wrap; align-items:stretch; margin:16px 0 20px;}
.cm-search input[type=text]{flex:1 1 200px; min-width:160px; padding:12px 16px; border-radius:var(--radius-btn,6px); border:1px solid var(--wood-line,#D9CFC1); font:inherit; font-size:15px; line-height:1.3;}
.cm-search .cm-btn{width:auto; margin-top:0; padding:12px 26px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; color:var(--on-garnet,#fff);}
.cm-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px;}
.cm-card{display:block; text-decoration:none; color:inherit; border:1px solid var(--wood-line,#D9CFC1); border-radius:14px; overflow:hidden; background:rgba(255,255,255,.03); transition:transform .15s, box-shadow .15s;}
.cm-card:hover{transform:translateY(-2px); box-shadow:0 10px 24px -14px rgba(0,0,0,.5);}

/* v3.60 · Asistencia */
.support-form{max-width:760px; margin-top:14px;}
.support-form select, .support-form textarea{width:100%;}
.support-row{display:flex; justify-content:space-between; align-items:center; gap:14px; text-decoration:none; color:inherit; border:1px solid var(--wood-line,#D9CFC1); border-radius:12px; padding:12px 16px; background:rgba(255,255,255,.03);}
.support-row:hover{border-color:var(--garnet,#7A1F2B);}
.support-thread{display:flex; flex-direction:column; gap:12px; margin:16px 0; max-width:820px;}
.support-msg{border-radius:12px; padding:12px 16px; max-width:88%; border:1px solid var(--wood-line,#D9CFC1);}
.support-msg.is-user{align-self:flex-start; background:rgba(255,255,255,.04);}
.support-msg.is-admin{align-self:flex-end; background:rgba(122,31,43,.14); border-color:rgba(122,31,43,.45);}
.support-msg__who{font-size:12px; opacity:.7; margin-bottom:4px; font-weight:600;}
.support-msg__body{line-height:1.55; overflow-wrap:anywhere;}
.support-msg__img{display:block; max-width:260px; max-height:200px; margin-top:10px; border-radius:8px; border:1px solid var(--wood-line,#D9CFC1);}

/* ===== v3.61 · Red social: publicaciones, avatar, tarjeta swipe ===== */
.post-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:linear-gradient(135deg,#7a2e1f,#c9a55a);color:#fff;font-weight:700;font-size:16px}
.post-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.post-avatar--lg{width:72px;height:72px;font-size:28px}
.post-avatar--xl{width:96px;height:96px;font-size:36px}
.post-avatar-form{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.post-profile{display:flex;gap:16px;align-items:center}
.post-list{display:grid;gap:16px}
.post-card{border:1px solid var(--wood-line,rgba(255,255,255,.14));border-radius:12px;padding:16px;background:rgba(255,255,255,.03);overflow-wrap:anywhere}
.post-card--hidden{opacity:.5}
.post-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.post-author{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-weight:600;min-width:0}
.post-date{font-size:12px;opacity:.65;white-space:nowrap}
.post-body{line-height:1.55;margin-bottom:10px}
.post-body a,.post-link{color:var(--gold,#c9a55a)}
.post-images{display:grid;gap:6px;margin:10px 0}
.post-images--1{grid-template-columns:1fr}
.post-images--2,.post-images--3,.post-images--4{grid-template-columns:1fr 1fr}
.post-images img{width:100%;height:100%;max-height:420px;object-fit:cover;border-radius:8px;display:block}
.post-images--1 img{max-height:520px;object-fit:contain}
.post-video{position:relative;margin:10px 0}
.post-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:8px;display:block}
.post-link{display:inline-block;margin:6px 12px 0 0;font-size:14px;word-break:break-all}
.post-actions{display:flex;gap:14px;align-items:center;margin-top:12px;font-size:13px}
.post-actions form{margin:0}
.post-del{background:none;border:0;color:#e58b7a;cursor:pointer;padding:0;font:inherit}
.post-keep{display:flex;gap:10px;flex-wrap:wrap}
.post-keep label{display:flex;align-items:center;gap:6px}
.rcard--post{display:flex;flex-direction:column}
.rcard--post .post-thumb{display:block;aspect-ratio:16/9;overflow:hidden}
.rcard--post .post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-mini-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.post-mini-head h3{margin:0;font-size:15px;line-height:1.25}
.post-snippet{font-size:14px;line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.post-more{font-size:13px;font-weight:600;color:var(--gold,#c9a55a);text-decoration:none}

/* ===== v3.62 · reacciones, republicar, aficionados ===== */
.post-react{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;margin-top:12px}
.post-react form{margin:0}
.post-react-btn{background:transparent;border:1px solid var(--wood-line,rgba(255,255,255,.18));color:inherit;border-radius:999px;padding:4px 12px;font-size:14px;cursor:pointer;line-height:1.4}
.post-react-btn.is-on{border-color:var(--gold,#c9a55a);background:rgba(201,165,90,.18)}
.post-react-btn.is-static{cursor:default}
.post-repost summary{cursor:pointer;list-style:none;border:1px solid var(--wood-line,rgba(255,255,255,.18));border-radius:999px;padding:4px 12px;font-size:14px}
.post-repost summary::-webkit-details-marker{display:none}
.post-repost form{margin-top:8px;display:grid;gap:8px;min-width:240px}
.post-repost-tag{font-size:12px;opacity:.7;font-weight:400;margin-left:6px}
.post-original{border:1px solid var(--wood-line,rgba(255,255,255,.14));border-radius:10px;padding:0;margin:8px 0;overflow:hidden}
.post-original .post-card{border:0;border-radius:0;background:rgba(255,255,255,.04)}
.post-original--gone{padding:12px;opacity:.7;font-style:italic}
.fan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-top:16px}
.fan-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:16px 10px;border:1px solid var(--wood-line,rgba(255,255,255,.14));border-radius:12px;text-decoration:none;color:inherit}
.fan-card:hover{border-color:var(--gold,#c9a55a)}
.fan-place{font-size:13px;opacity:.75}

/* ===== v3.63 · icono identificativo por tipo de ficha ===== */
.kind-ico{position:absolute; top:10px; right:10px; z-index:2; width:32px; height:32px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--ink-soft,#2a2320); color:var(--gold,#c9a55a); font-size:15px; box-shadow:var(--shadow-sm,0 1px 4px rgba(0,0,0,.35)); border:1px solid rgba(255,255,255,.18)}
.fan-card{position:relative}
.fan-card .kind-ico{top:8px; right:8px; width:26px; height:26px; font-size:12px}
.fx-tag-health{border-color:#d62828}

/* ===== v3.63.1 · filtros del directorio de empresas ordenados ===== */
.dir-filters{display:block}
.dir-filters .dir-row{display:grid; gap:4px 18px; align-items:start; margin-bottom:6px}
.dir-filters .dir-row--3{grid-template-columns:repeat(3, minmax(0,1fr))}
.dir-filters .dir-row--2{grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; margin:6px 0 14px}
.dir-filters .field{margin-bottom:12px}
.dir-filters .field label{display:block; margin-bottom:6px; text-transform:uppercase; font-size:12px; letter-spacing:.06em}
.dir-filters .field select, .dir-filters .field input[type=text]{width:100%}
.dir-group{border:1px solid var(--wood-line); border-radius:var(--radius-md,12px); padding:14px 16px 10px; background:rgba(0,0,0,.015)}
.dir-group-title{font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:10px; display:flex; align-items:center; gap:8px}
.dir-group--health{border-color:rgba(214,40,40,.35)}
.dir-check{display:flex; align-items:center; gap:8px; margin:0 0 8px; cursor:pointer; font-size:14px}
.dir-check input{width:auto; margin:0}
.dir-actions{margin:4px 0 14px; padding-top:14px; border-top:1px solid var(--wood-line)}
@media (max-width:820px){
  .dir-filters .dir-row--3, .dir-filters .dir-row--2{grid-template-columns:1fr}
}

/* v3.66 — aficionados en la home: tarjetas pequeñas, ~12 por fila */
.rail--fan .rail-track{gap:10px}
.rail--fan .rail-item{flex:0 0 calc((100% - 110px) / 12); min-width:84px}
.rail--fan.rail--grid .rail-track{grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px 10px}
.rcard--fan{display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; width:100%; padding:8px 4px; border-radius:var(--radius,12px); text-decoration:none; color:inherit; transition:background-color .15s ease}
.rcard--fan:hover{background:var(--tint-2,rgba(255,255,255,.06))}
.fan-mini-photo{position:relative; display:block; width:68px; height:68px}
.fan-mini-img{display:flex; width:68px; height:68px; border-radius:50%; overflow:hidden; align-items:center; justify-content:center; background:var(--tint-2,#3a2f2a); font-weight:700; font-size:24px}
.fan-mini-img img{width:100%; height:100%; object-fit:cover; display:block}
.rcard--fan .kind-ico{top:auto; bottom:-2px; right:-4px; width:22px; height:22px; font-size:10px}
.fan-mini-name{font-weight:600; font-size:13px; line-height:1.2; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.fan-mini-loc{font-size:11.5px; color:var(--ivory-dim,#9a8f86); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
@media (max-width:1100px){ .rail--fan .rail-item{flex-basis:calc((100% - 70px) / 8)} .rail--fan.rail--grid .rail-track{grid-template-columns:repeat(8,minmax(0,1fr))} }
@media (max-width:760px){ .rail--fan .rail-item{flex-basis:calc((100% - 40px) / 5)} .rail--fan.rail--grid .rail-track{grid-template-columns:repeat(5,minmax(0,1fr))} }
@media (max-width:480px){ .rail--fan .rail-item{flex-basis:calc((100% - 30px) / 4)} .rail--fan.rail--grid .rail-track{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* v3.67 — aviso «completa tu perfil» */
.profile-nudge{display:flex; gap:16px 24px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin:0 0 18px; padding:14px 18px; border:1px solid var(--field-line,rgba(0,0,0,.15)); border-left:4px solid var(--gold,#c9a55a); border-radius:var(--radius,12px); background:var(--ink-soft,rgba(0,0,0,.04)); color:var(--ivory,inherit)}
.profile-nudge.is-urgent{border-left-color:#d62828}
.profile-nudge-main{flex:1 1 380px; min-width:0}
.profile-nudge-title{display:block; font-size:15px; line-height:1.35}
.profile-nudge .cmp-bar{height:8px; border-radius:999px; background:var(--tint-2,rgba(0,0,0,.1)); overflow:hidden; margin:8px 0 6px; max-width:420px}
.profile-nudge .cmp-bar span{display:block; height:100%; background:var(--accent-text,#9b2335); border-radius:999px}
.profile-nudge-list{font-size:13.5px; margin:6px 0 0; color:var(--ivory-dim,inherit)}
.profile-nudge-list a{font-weight:600; color:var(--accent-text,#9b2335); text-decoration:underline; text-underline-offset:2px}
.profile-nudge-actions{display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.profile-nudge-actions form{margin:0}
.profile-nudge-hide{background:none; border:none; padding:0; font-size:12.5px; color:var(--ivory-dim,inherit); cursor:pointer; text-decoration:underline}
.layout-public-nudge .profile-nudge{margin:0}
