/*
 * events-admin — Perfil A SheArt.
 * UX densa en información, rápida de operar (SPEC-FINAL.md sección 5.4).
 * Usa tokens.css como única fuente de color/tipografía/radios.
 */
*{ box-sizing: border-box; }
html, body { height: 100%; }
body{
  margin:0;
  font-family: var(--font-ui);
  background: var(--muted);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}
#root{ height:100vh; overflow:hidden; }
button{ font-family: inherit; cursor:pointer; }
a{ color: inherit; text-decoration:none; }

.eyebrow{
  font-family: var(--font-ui);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 11px;
  font-weight: 700;
  color: var(--brand-dark);
}

.display{
  font-family: var(--font-display);
  letter-spacing: 0.02em;
  line-height: 1.05;
  font-weight: 400;
}

/* ---------- pills / badges ---------- */
.pill{
  display:inline-flex; align-items:center; gap:6px;
  padding: 5px 12px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 700;
}
.pill-brand{ background: rgba(4,165,142,0.12); color: var(--brand-dark); }
.pill-orange{ background: rgba(240,133,54,0.14); color: #a95a1e; }
.pill-pink{ background: rgba(216,47,138,0.12); color: var(--pink); }
.pill-purple{ background: rgba(100,72,151,0.14); color: var(--purple); }
.pill-muted{ background: rgba(42,19,69,0.06); color: rgba(42,19,69,0.7); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 11px 20px; border-radius: var(--radius-pill);
  font-weight:700; font-size:14px; border:1px solid transparent;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: var(--brand); color:#fff; box-shadow: var(--shadow-cta); }
.btn-primary:hover{ background: var(--brand-dark); }
.btn-ghost{ background: transparent; color: var(--ink); border-color: rgba(42,19,69,0.16); }
.btn-ghost:hover{ background: rgba(42,19,69,0.05); }
.btn-block{ width:100%; }
.btn:disabled{ opacity:0.6; cursor:not-allowed; transform:none; }

/* ---------- login ---------- */
.login-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: var(--ink);
  background-image:
    radial-gradient(circle at 18% 20%, rgba(216,47,138,0.35), transparent 45%),
    radial-gradient(circle at 82% 15%, rgba(240,133,54,0.28), transparent 45%),
    radial-gradient(circle at 75% 80%, rgba(4,165,142,0.30), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(100,72,151,0.30), transparent 45%);
  padding: 24px;
}
.login-card{
  width:100%; max-width: 420px;
  background: #fff;
  border-radius: var(--radius-xl);
  padding: 40px 36px;
  box-shadow: var(--shadow-card-hover);
}
.login-card--setup{ max-width: 560px; }
.setup-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
@media (max-width: 560px){ .setup-grid{ grid-template-columns:1fr; } }
.pw-guide{
  list-style:none;
  margin: 0 0 16px;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  background: rgba(42,19,69,0.035);
}
.pw-guide__item{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:12px;
  font-weight:500;
  color: rgba(42,19,69,0.48);
  line-height:1.4;
}
.pw-guide__item + .pw-guide__item{ margin-top:6px; }
.pw-guide__item--ok{ color: var(--brand-dark); }
.pw-guide__dot{
  flex:0 0 14px;
  width:14px;
  height:14px;
  margin-top:1px;
  border-radius:50%;
  border:1.5px solid rgba(42,19,69,0.22);
  background:transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}
.pw-guide__item--ok .pw-guide__dot{
  border-color: var(--brand);
  background: var(--brand);
}
.login-logo{
  display:block;
  width:148px;
  max-width:56%;
  height:auto;
  margin: 0 auto 20px;
  background:none;
  border-radius:0;
  object-fit:contain;
}
.login-logo--full{
  width:220px;
  max-width:72%;
  margin: 0 auto 28px;
}
.login-title{ font-size: 28px; margin: 0 0 18px; text-align:center; }
.login-subtitle{ font-size: 14px; color: rgba(42,19,69,0.6); margin: 0 0 22px; text-align:center; }
.login-help{ font-size:13px; color: rgba(42,19,69,0.55); margin: 0 0 16px; text-align:center; }
.login-recover{
  display:block; width:100%; margin-top:16px; padding:8px 0;
  border:none; background:none; cursor:pointer;
  font-family:inherit; font-size:13px; font-weight:600;
  color: rgba(42,19,69,0.48); text-align:center;
}
.login-recover:hover{ color: var(--brand); }
.field{ margin-bottom: 16px; display:flex; flex-direction:column; gap:6px; }
.field label{ font-size: 12px; font-weight:700; color: rgba(42,19,69,0.65); }
.field input{
  padding: 12px 14px; border-radius: var(--radius-md);
  border: 1px solid rgba(42,19,69,0.14); font-size:14px; font-family: inherit;
}
.field input:focus{ outline:none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(4,165,142,0.15); }
.field input.field-input--ok{ border-color: var(--brand); }
.field input.field-input--error{ border-color:#c24747; }
.field-msg{ margin:0; font-size:12px; font-weight:500; line-height:1.35; }
.field-msg--ok{ color: var(--brand-dark); }
.field-msg--error{ color:#a52f2f; }
.phone-combo{
  display:flex;
  align-items:stretch;
  border: 1px solid rgba(42,19,69,0.14);
  border-radius: var(--radius-md);
  background:#fff;
  overflow:visible;
  position:relative;
  min-width:0;
  width:100%;
}
.phone-combo:focus-within{
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(4,165,142,0.15);
}
.phone-combo--ok{ border-color: var(--brand); }
.phone-combo--error{ border-color:#c24747; }
.phone-combo__cc{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  padding: 8px 10px 8px 12px;
  background: rgba(42,19,69,0.04);
  border:none;
  border-right: 1px solid rgba(42,19,69,0.10);
  border-radius: var(--radius-md) 0 0 var(--radius-md);
  white-space:nowrap;
  flex: 0 0 auto;
  cursor:pointer;
  font-family:inherit;
  color:inherit;
  max-width: 46%;
}
.phone-combo__cc:disabled{ cursor:default; opacity:.7; }
.phone-combo__flag{ font-size:18px; line-height:1; }
.phone-combo__meta{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1px;
  min-width:0;
  text-align:left;
}
.phone-combo__country{
  font-size:11px;
  font-weight:700;
  color: rgba(42,19,69,0.72);
  letter-spacing: 0.02em;
  max-width: 108px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.phone-combo__code{
  font-size:12px;
  font-weight:600;
  color: rgba(42,19,69,0.48);
}
.phone-combo input[type="tel"]{
  flex:1;
  min-width:0;
  border:none;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.phone-combo input[type="tel"]:focus{ outline:none; border:none; box-shadow:none; }
.phone-combo__menu{
  position:absolute; z-index:40; left:0; top:calc(100% + 6px);
  width:min(340px, 92vw);
  background:#fff; border:1px solid rgba(42,19,69,0.12); border-radius:10px;
  box-shadow:0 12px 32px rgba(42,19,69,0.14);
  overflow:hidden;
}
.phone-combo__search{
  width:100%; border:none; border-bottom:1px solid rgba(42,19,69,0.10);
  padding:10px 12px; font:inherit; font-size:13px; outline:none;
  background:#fff; color:var(--ink);
}
.phone-combo__list{ max-height:220px; overflow:auto; }
.phone-combo__opt{
  display:flex; align-items:center; gap:8px; width:100%;
  text-align:left; border:none; background:transparent;
  padding:8px 12px; font-size:13px; color:var(--ink); cursor:pointer;
}
.phone-combo__opt:hover, .phone-combo__opt--active{ background:rgba(4,165,142,0.08); }
.phone-combo__opt-name{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.phone-combo__opt-code{ font-size:12px; font-weight:600; color:rgba(42,19,69,0.48); }
.phone-combo__empty{ padding:12px; font-size:12px; color:rgba(42,19,69,0.48); }
.form-group .phone-combo input[type="tel"]{ padding:10px 13px; font-size:13px; }
@media (max-width: 560px){
  .phone-combo__cc{ max-width: 52%; }
  .phone-combo__country{ max-width: 84px; }
}
.phone-field{ width:100%; min-width:0; }
.field .phone-combo input[type="tel"],
.field .phone-combo input[type="tel"]:focus{
  border:none; box-shadow:none; padding:12px 14px;
}
.field .phone-combo__search,
.field .phone-combo__search:focus{
  border:none; border-bottom:1px solid rgba(42,19,69,0.10); box-shadow:none; padding:10px 12px;
}
.form-error{
  background: rgba(214,69,69,0.1); color:#a52f2f; border-radius: var(--radius-md);
  padding: 10px 14px; font-size: 13px; margin-bottom: 16px;
}
.login-seed-hint{ margin-top:20px; font-size:12px; color: rgba(42,19,69,0.45); text-align:center; }

/* ═══════════════════════════════════════════════════════════════════════════
   SHELL REDESIGN — Command Bar + Collapsible Sidebar + Premium Topbar
   Principio: menos ruido local, más navegación inteligente global.
   ═══════════════════════════════════════════════════════════════════════════ */

.app-shell{ display:flex; height:100vh; overflow:hidden; position:relative; }

/* ── SIDEBAR WRAPPER (controla espacio en flujo) ─────────────────────── */
.sidebar-wrap{
  flex-shrink:0; height:100%; position:relative; z-index:50;
  transition:width 0.22s cubic-bezier(.4,0,.2,1);
}
.sidebar-wrap--open { width:248px; }
.sidebar-wrap--closed { width:60px; }

/* ── SIDEBAR ─────────────────────────────────────────────────────────── */
.sidebar{
  width:248px; height:100%;
  background:var(--ink); color:rgba(255,255,255,0.82);
  display:flex; flex-direction:column;
  overflow:hidden;
  transition:width 0.22s cubic-bezier(.4,0,.2,1), box-shadow 0.22s;
  position:relative;
}
/* Colapsado en el flow: ancho 60px */
.sidebar--collapsed{ width:60px; }
/* Hover sobre colapsado: flota como overlay con sombra */
.sidebar-wrap--closed .sidebar--hover{
  position:absolute; top:0; left:0;
  width:248px; height:100%; z-index:100;
  box-shadow:6px 0 28px rgba(42,19,69,0.26);
  overflow-y:auto;
}

/* Brand — respira, pin en esquina superior derecha */
.sidebar-brand{
  display:flex; align-items:center; gap:11px;
  padding:28px 20px 20px; flex-shrink:0; overflow:hidden; white-space:nowrap;
}
.sidebar-brand .brand-mark{
  width:36px; height:36px; flex-shrink:0;
  object-fit:contain; object-position:center;
  display:block; background:transparent; border-radius:0;
}
.sidebar-brand .brand-word{
  color:#fff; font-weight:800; font-size:15px; letter-spacing:0.02em; flex:1;
  overflow:hidden; white-space:nowrap;
}
/* En modo colapsado: solo el mark, centrado */
.sidebar-brand--collapsed{
  justify-content:center;
  padding-left:0; padding-right:0;
  gap:0;
}

/* Pin icon — solo icono, esquina superior derecha del brand */
.sidebar-pin-icon{
  width:28px; height:28px; border-radius:7px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:none; border:none; cursor:pointer;
  color:rgba(255,255,255,0.35); transition:background .13s, color .13s;
  margin-left:auto;
}
.sidebar-pin-icon:hover{ background:rgba(255,255,255,0.09); color:rgba(255,255,255,0.80); }

/* Eliminar sidebar-foot — ya no es necesario */
.sidebar-foot{ display:none; }

/* Scroll área de nav */
.sidebar-nav{
  flex:1; overflow-y:auto; overflow-x:hidden;
  display:flex; flex-direction:column; gap:1px;
  padding:4px 10px 12px;
}
.sidebar-nav::-webkit-scrollbar{ width:3px; }
.sidebar-nav::-webkit-scrollbar-thumb{ background:rgba(255,255,255,0.12); border-radius:2px; }

/* ── Dashboard nav-item (icono + label) ─────────────────────────────── */
.nav-item{
  display:flex; align-items:center; gap:10px;
  padding:9px 10px; border-radius:9px; width:100%;
  font-size:13.5px; font-weight:600; color:rgba(255,255,255,0.75);
  cursor:pointer; border:none; background:transparent; text-align:left;
  transition:background .13s, color .13s; white-space:nowrap; overflow:hidden;
}
.nav-item svg{ flex-shrink:0; }
.nav-item.active{ background:rgba(255,255,255,0.13); color:#fff; }
.nav-item:hover{ background:rgba(255,255,255,0.07); color:#fff; }

/* Colapsado: icono centrado */
.sidebar--collapsed .nav-item{ justify-content:center; padding:9px 0; }
.sidebar--collapsed .sidebar-nav{ padding:4px 8px 12px; }
/* Hover expandido: normal */
.sidebar--hover .nav-item{ justify-content:flex-start; padding:9px 10px; }

/* ── Grupos (cabecera con icono + label + chevron) ───────────────────── */
.nav-group{ display:flex; flex-direction:column; margin-top:4px; }

/* Cabecera de grupo — aspecto igual a nav-item pero con chevron */
.nav-group-hdr{
  display:flex; align-items:center; gap:10px;
  padding:9px 10px; border-radius:9px; width:100%;
  font-size:13.5px; font-weight:600; color:rgba(255,255,255,0.68);
  cursor:pointer; border:none; background:transparent; text-align:left;
  transition:background .13s, color .13s; white-space:nowrap; overflow:hidden;
}
.nav-group-hdr svg{ flex-shrink:0; }
.nav-group-hdr:hover{ background:rgba(255,255,255,0.07); color:rgba(255,255,255,0.92); }
.nav-group-hdr.has-active{ color:#fff; }
.nav-group-hdr .grp-label{ flex:1; }
.nav-group-hdr .grp-chevron{
  flex-shrink:0; opacity:.50;
  transition:transform .22s cubic-bezier(.4,0,.2,1);
  display:flex; align-items:center;
}
/* Chevron apunta hacia abajo cuando abierto, hacia la derecha cuando cerrado */
.nav-group-hdr.grp-closed .grp-chevron{ transform:rotate(-90deg); }

/* Colapsado: solo icono centrado */
.sidebar--collapsed .nav-group-hdr{
  justify-content:center; padding:9px 0;
}
/* Hover sobre colapsado: restaurar estilo expandido */
.sidebar--hover .nav-group-hdr{ justify-content:flex-start; padding:9px 10px; }

/* ── Sub-ítems: texto limpio, sin icono, indentados ─────────────────── */
/* Contenedor animado con max-height */
.nav-sub-list{
  display:flex; flex-direction:column;
  overflow:hidden;
  max-height:320px; opacity:1;
  transition:max-height 0.26s cubic-bezier(.4,0,.2,1), opacity 0.20s ease;
  /* animación de entrada cuando el elemento aparece en DOM */
  animation:sub-appear 0.26s cubic-bezier(.4,0,.2,1);
}
.nav-sub-list.sub-hidden{
  max-height:0; opacity:0; pointer-events:none;
  animation:none;
  transition:max-height 0.22s cubic-bezier(.4,0,.2,1), opacity 0.16s ease;
}
@keyframes sub-appear{
  from{ max-height:0; opacity:0; }
  to  { max-height:320px; opacity:1; }
}

/* Ítem de sub-menú: solo texto, con línea vertical de acento */
.nav-sub-item{
  position:relative;
  display:flex; align-items:center;
  padding:7px 10px 7px 28px;
  border-radius:8px; width:100%;
  font-size:13px; font-weight:500; color:rgba(255,255,255,0.58);
  cursor:pointer; border:none; background:transparent; text-align:left;
  transition:background .12s, color .12s; white-space:nowrap; overflow:hidden;
}
.nav-sub-item:hover{ background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.90); }
.nav-sub-item.active{
  color:#fff; font-weight:600;
  background:rgba(255,255,255,0.09);
}
/* Línea de acento para el ítem activo */
.nav-sub-item.active::before{
  content:''; position:absolute; left:14px;
  width:3px; height:14px; border-radius:2px;
  background:var(--brand);
}

/* Footer: oculto — ya no se usa */
.sidebar-foot{ display:none; }
.sidebar-pin-btn{ display:none; }

/* ── MAIN AREA ────────────────────────────────────────────────────────── */
.main-area{ flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }

/* ── TOPBAR — Command bar era ────────────────────────────────────────── */
.topbar{
  height:56px; flex-shrink:0;
  display:flex; align-items:center;
  padding:0 20px; background:#fff; border-bottom:1px solid rgba(42,19,69,0.07);
  position:relative; z-index:10;
}

/* Trigger de búsqueda global — centrado absolutamente en el header */
.topbar-search-trigger{
  position:absolute;
  left:50%; transform:translateX(-50%);
  width:440px; max-width:calc(100% - 560px);
  display:flex; align-items:center; gap:9px;
  background:rgba(42,19,69,0.04); border:1px solid rgba(42,19,69,0.10);
  border-radius:var(--radius-pill); padding:0 14px; height:36px; cursor:pointer;
  transition:border-color .15s, background .15s, box-shadow .15s;
}

.topbar-client-scope{
  position:relative; z-index:2;
  display:flex; align-items:center;
  min-width:148px; max-width:240px; flex:0 1 220px;
}
.topbar-client-select{
  width:100%; height:36px;
  padding:0 32px 0 14px;
  border-radius:var(--radius-pill);
  background:rgba(42,19,69,0.04);
  border:1px solid rgba(42,19,69,0.10);
  font-family:inherit; font-size:13px; font-weight:600;
  color:var(--ink); appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%232A1345' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center;
}
.topbar-client-select:hover{
  border-color:rgba(42,19,69,0.18); background-color:rgba(42,19,69,0.06);
}
.topbar-client-select:focus{
  outline:none; border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(4,165,142,0.12);
}
.topbar-search-trigger:hover{
  border-color:rgba(42,19,69,0.18); background:rgba(42,19,69,0.06);
  box-shadow:0 0 0 3px rgba(4,165,142,0.08);
}
.topbar-search-trigger svg{ opacity:.4; flex-shrink:0; }
.topbar-search-trigger .ts-placeholder{ font-size:13px; color:rgba(42,19,69,0.42); flex:1; font-family:inherit; }
.topbar-search-trigger .ts-shortcut{
  font-size:10.5px; color:rgba(42,19,69,0.32); background:rgba(42,19,69,0.06);
  border:1px solid rgba(42,19,69,0.10); border-radius:4px; padding:2px 6px; white-space:nowrap;
}

.topbar-actions{ display:flex; align-items:center; gap:10px; margin-left:auto; }

/* Avatar */
.avatar{
  width:34px; height:34px; border-radius:50%; background:var(--purple); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12.5px;
  flex-shrink:0;
}

/* ── COMMAND BAR ─────────────────────────────────────────────────────── */
.cmdbar-overlay{
  position:fixed; inset:0; background:rgba(42,19,69,0.38); z-index:500;
  display:flex; align-items:flex-start; justify-content:center;
  padding-top:80px; backdrop-filter:blur(3px);
  animation:cb-fade .15s ease;
}
@keyframes cb-fade{ from{opacity:0;} to{opacity:1;} }

.cmdbar{
  background:#fff; border-radius:16px; width:100%; max-width:560px;
  box-shadow:0 20px 60px rgba(42,19,69,0.22), 0 2px 10px rgba(42,19,69,0.10);
  overflow:hidden; animation:cb-in .16s ease;
}
.cmdbar--wide{ max-width:820px; }
@keyframes cb-in{
  from{ opacity:0; transform:translateY(-14px) scale(.98); }
  to  { opacity:1; transform:translateY(0) scale(1); }
}
.cmdbar-search{
  display:flex; align-items:center; gap:10px;
  padding:14px 18px; border-bottom:1px solid rgba(42,19,69,0.07);
}
.cmdbar-search svg{ opacity:.4; flex-shrink:0; }
.cmdbar-input{
  flex:1; border:none; outline:none; font-size:16px; font-family:inherit;
  color:var(--ink); background:transparent;
}
.cmdbar-input::placeholder{ color:rgba(42,19,69,0.35); }
.cmdbar-esc-hint{
  font-size:10.5px; color:rgba(42,19,69,0.38); background:rgba(42,19,69,0.06);
  border:1px solid rgba(42,19,69,0.10); border-radius:5px; padding:2px 7px;
  white-space:nowrap; font-family:inherit;
}
.cmdbar-results{ max-height:min(62vh, 560px); overflow-y:auto; padding:6px 0 16px; }
.cmdbar-results::-webkit-scrollbar{ width:4px; }
.cmdbar-results::-webkit-scrollbar-thumb{ background:rgba(42,19,69,0.12); border-radius:2px; }

.cmdbar-section{
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
  color:rgba(42,19,69,0.38); padding:10px 18px 4px;
}
.cmdbar-searching{ font-size:12px; color:rgba(42,19,69,0.40); white-space:nowrap; }

.cmdbar-block{ padding:4px 16px 4px; }
.cmdbar-block + .cmdbar-block{ margin-top:18px; }
.cmdbar-block__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:10px 4px 8px;
}
.cmdbar-block__title{
  font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(42,19,69,0.55);
}
.cmdbar-block__count{ font-size:11px; color:rgba(42,19,69,0.38); font-weight:500; }

.cmdbar-table-wrap{
  border:1px solid rgba(42,19,69,0.08); border-radius:12px; overflow:hidden;
  background:#fff;
}
.cmdbar-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.cmdbar-table th{
  text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(42,19,69,0.42); padding:8px 12px; background:rgba(42,19,69,0.025);
  border-bottom:1px solid rgba(42,19,69,0.06); white-space:nowrap;
}
.cmdbar-table td{
  padding:10px 12px; border-bottom:1px solid rgba(42,19,69,0.05); vertical-align:middle;
  color:var(--ink);
}
.cmdbar-table tr:last-child td{ border-bottom:none; }
.cmdbar-table tbody tr{ cursor:pointer; transition:background .12s; }
.cmdbar-table tbody tr:hover td,
.cmdbar-table tbody tr.is-active td{ background:rgba(4,165,142,0.06); }
.cmdbar-table__ic{ width:36px; padding-left:10px; padding-right:0; }
.cmdbar-row-ic{
  width:26px; height:26px; border-radius:50%; background:rgba(42,19,69,0.05);
  display:inline-flex; align-items:center; justify-content:center; color:rgba(42,19,69,0.48);
}
.cmdbar-table tbody tr:hover .cmdbar-row-ic,
.cmdbar-table tbody tr.is-active .cmdbar-row-ic{ background:rgba(4,165,142,0.14); color:var(--brand); }
.cmdbar-cell-title{ font-weight:600; }
.cmdbar-cell-muted{ color:rgba(42,19,69,0.58); }
.cmdbar-item{
  display:flex; align-items:center; gap:10px;
  padding:9px 16px; width:100%; border:none; background:none; cursor:pointer;
  font-family:inherit; font-size:13.5px; color:var(--ink); font-weight:500;
  text-align:left; transition:background .1s;
}
.cmdbar-item:hover, .cmdbar-item--active{ background:rgba(4,165,142,0.07); }
.cmdbar-item-ic{
  width:30px; height:30px; border-radius:8px; background:rgba(42,19,69,0.05);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  color:rgba(42,19,69,0.50); transition:background .1s, color .1s;
}
.cmdbar-item--active .cmdbar-item-ic,
.cmdbar-item:hover .cmdbar-item-ic{ background:rgba(4,165,142,0.12); color:var(--brand); }
.cmdbar-item-label{ flex:1; }
.cmdbar-item-sub{ font-size:11.5px; color:rgba(42,19,69,0.42); margin-left:auto; font-weight:400; padding-left:8px; }
.cmdbar-loading, .cmdbar-empty{
  padding:28px 18px; font-size:13.5px; color:rgba(42,19,69,0.45); text-align:center;
}

/* ── CONTENT AREA ────────────────────────────────────────────────────── */
/* min-height:0 es crítico en flex — sin él overflow-y:auto nunca activa */
.content{ flex:1; min-width:0; min-height:0; overflow-y:auto; padding:28px; }

/* ── ROW DROPDOWN (acciones contextuales en tabla) ───────────────────── */
.row-dropdown{
  position:absolute; right:0; bottom:calc(100% + 4px); top:auto;
  background:#fff; border:1px solid rgba(42,19,69,0.10);
  border-radius:10px; padding:4px; z-index:300;
  box-shadow:0 -4px 24px rgba(42,19,69,0.14), 0 2px 8px rgba(42,19,69,0.08);
  min-width:164px; animation:dd-in .14s ease;
}
@keyframes dd-in{
  from{ opacity:0; transform:translateY(6px) scale(.97); }
  to  { opacity:1; transform:translateY(0) scale(1); }
}
.row-dropdown__item{
  display:flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius:7px; border:none; background:none;
  font-family:inherit; font-size:13px; color:var(--ink); font-weight:600;
  cursor:pointer; width:100%; text-align:left;
  transition:background .12s;
}
.row-dropdown__item:hover{ background:rgba(42,19,69,0.05); }
.row-dropdown__item--danger{ color:#dc2626; }
.row-dropdown__item--danger:hover{ background:rgba(220,38,38,0.07); }
.row-dropdown--down{
  top:calc(100% + 4px); bottom:auto; left:0; right:auto;
  box-shadow:0 8px 24px rgba(42,19,69,0.14), 0 2px 8px rgba(42,19,69,0.08);
  animation:dd-in-down .14s ease;
}
@keyframes dd-in-down{
  from{ opacity:0; transform:translateY(-6px) scale(.97); }
  to  { opacity:1; transform:translateY(0) scale(1); }
}
.row-dropdown__item:disabled{ opacity:.4; cursor:not-allowed; }
.row-dropdown__item:disabled:hover{ background:none; }
.row-dropdown__divider{
  border:none; height:1px; margin:4px 6px;
  background:rgba(42,19,69,0.08);
}

/* Menú Acción de Personas: fixed/portal, fuera de .content overflow y de la tabla */
.row-dropdown--portal{
  position:fixed;
  right:auto;
  bottom:auto;
  z-index:360;
  min-width:200px;
  max-width:min(280px, calc(100vw - 16px));
  max-height:calc(100vh - 16px);
  overflow-y:auto;
  box-shadow:0 8px 24px rgba(42,19,69,0.14), 0 2px 8px rgba(42,19,69,0.08);
  animation:dd-in-down .14s ease;
}
.row-dropdown--portal-up{
  box-shadow:0 -4px 24px rgba(42,19,69,0.14), 0 2px 8px rgba(42,19,69,0.08);
  animation:dd-in .14s ease;
}

/* ---------- dashboard ---------- */
.stat-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:18px; margin-bottom:28px; }
.stat-card{
  background:#fff; border-radius: var(--radius-lg); padding: 20px 22px;
  box-shadow: var(--shadow-card);
}
.stat-card .stat-label{ font-size:12px; font-weight:700; color: rgba(42,19,69,0.55); margin-bottom:8px; }
.stat-card .stat-value{ font-family: var(--font-display); font-size:34px; margin:0; }
.stat-card .stat-delta{ font-size:12px; font-weight:600; margin-top:6px; }
.stat-delta.up{ color: var(--brand-dark); }
.stat-delta.down{ color:#a52f2f; }

.panel-grid{ display:grid; grid-template-columns: 1.4fr 1fr; gap:20px; }
.panel{ background:#fff; border-radius: var(--radius-lg); padding:22px; box-shadow: var(--shadow-card); }
.panel h3{ font-size:22px; margin: 0 0 4px; }
.panel .panel-subtitle{ font-size:13px; color: rgba(42,19,69,0.55); margin: 0 0 18px; }

.table-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 0; border-bottom: 1px solid rgba(42,19,69,0.06);
}
.table-row:last-child{ border-bottom:none; }
.table-row .row-title{ font-weight:700; font-size:14px; }
.table-row .row-subtitle{ font-size:12px; color: rgba(42,19,69,0.55); }

.alert-item{
  display:flex; gap:10px; align-items:flex-start;
  padding: 12px 0; border-bottom: 1px solid rgba(42,19,69,0.06); font-size:13px;
}
.alert-item:last-child{ border-bottom:none; }
.alert-dot{ width:8px; height:8px; border-radius:50%; margin-top:5px; flex-shrink:0; }
.alert-dot.warning{ background: var(--orange); }
.alert-dot.info{ background: var(--purple); }
.alert-dot.danger{ background:#D64545; }

.empty-state{
  text-align:center; padding: 40px 20px; color: rgba(42,19,69,0.5); font-size:13px;
}

/* ---------- module views ---------- */
.module-view{ display:flex; flex-direction:column; gap:18px; }

/* ── Estándar global de encabezado de vista ──────────────────────────── */
/* Todas las vistas usan este contenedor blanco como header principal.    */
.module-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  background:#fff; border-radius:var(--radius-lg); padding:18px 22px;
  box-shadow:var(--shadow-card);
}
.module-header h2{ margin:0; font-size:22px; font-weight:800; color:var(--ink); display:flex; align-items:center; gap:10px; line-height:1.15; }
.module-header .view-subtitle{ margin:4px 0 0; font-size:13px; color:rgba(42,19,69,0.50); font-weight:400; }
.header-actions{ display:flex; align-items:center; gap:10px; }
.header-meta{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

.badge{
  background:rgba(99,102,241,0.12); color:#6366f1;
  border-radius:var(--radius-pill); padding:2px 10px; font-size:12px; font-weight:700;
}

.filter-bar{ display:flex; gap:10px; flex-wrap:wrap; }
.filter-select, .search-input{
  padding:9px 13px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md);
  font-size:13px; font-family:inherit; background:#fff; min-width:160px;
}
.search-input{ flex:1; }

/* inline form */
.inline-form{
  display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end;
  background:#fff; border-radius:var(--radius-lg); padding:18px 22px;
  box-shadow:var(--shadow-card);
}
.inline-form input, .inline-form select, .inline-form textarea{
  padding:10px 13px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md);
  font-size:13px; font-family:inherit; min-width:180px;
}
.inline-form .full-width{ width:100%; }
.full-width{ width:100%; }

/* data table */
.data-table{
  width:100%; border-collapse:collapse; background:#fff;
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card);
}
.data-table th{
  text-align:left; padding:12px 16px; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.08em; color:rgba(42,19,69,0.5);
  border-bottom:1px solid rgba(42,19,69,0.07);
}
.data-table td{ padding:12px 16px; font-size:13px; border-bottom:1px solid rgba(42,19,69,0.05); }
.data-table tr:last-child td{ border-bottom:none; }
.data-table tr:hover td{ background:rgba(42,19,69,0.02); }
.data-table .actions{ display:flex; gap:8px; }
.data-table .empty-state{ color:rgba(42,19,69,0.45); text-align:center; padding:32px 16px; }

/* status chips */
.status-chip{
  display:inline-block; padding:3px 10px; border-radius:var(--radius-pill);
  font-size:11px; font-weight:700; color:#fff; background:#94a3b8;
}
.status-chip.green{ background:#10b981; }
.status-chip.grey{ background:#94a3b8; }

/* btn variants */
.btn-secondary{
  background:rgba(99,102,241,0.1); color:#6366f1; border:1px solid rgba(99,102,241,0.25);
  padding:9px 16px; border-radius:var(--radius-pill); font-weight:700; font-size:13px;
}
.btn-sm{ padding:6px 12px; font-size:12px; border-radius:var(--radius-pill); font-weight:600; border:1px solid rgba(42,19,69,0.15); background:#fff; }
.btn-icon{
  background:none; border:none; padding:4px 8px; border-radius:var(--radius-sm);
  font-size:14px; cursor:pointer; color:rgba(42,19,69,0.6);
}
.btn-icon:hover{ background:rgba(42,19,69,0.06); }
.btn-icon.danger{ color:#ef4444; }
.btn-icon.danger:hover{ background:rgba(239,68,68,0.08); }
.btn-done{ background:#d1fae5; color:#059669; border:none; padding:7px 14px; border-radius:var(--radius-pill); font-size:12px; font-weight:700; }
.btn-queued{ background:#fef3c7; color:#d97706; border:none; padding:7px 14px; border-radius:var(--radius-pill); font-size:12px; font-weight:700; }
.btn-checkin{ background:var(--brand); color:#fff; border:none; padding:7px 14px; border-radius:var(--radius-pill); font-size:12px; font-weight:700; cursor:pointer; }
.btn-checkin:hover{ background:var(--brand-dark); }

/* alerts */
.alert{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 18px; border-radius:var(--radius-md); font-size:13px; font-weight:600;
}
.alert-error{ background:rgba(239,68,68,0.1); color:#dc2626; }
.alert-success{ background:rgba(16,185,129,0.1); color:#059669; }
.alert button{ background:none; border:none; font-size:16px; cursor:pointer; color:inherit; }

/* loader */
.loader{ text-align:center; padding:40px; color:rgba(42,19,69,0.45); font-size:14px; }
.loading-screen{ display:flex; align-items:center; justify-content:center; height:100vh; font-family:var(--font-ui); color:rgba(42,19,69,0.5); }

/* kpi grid */
.kpi-grid{ display:flex; flex-wrap:wrap; gap:16px; padding:16px; }
.kpi-grid.large{ gap:20px; }
.kpi-item{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  background:#fff; border-radius:var(--radius-md); padding:16px 20px;
  box-shadow:var(--shadow-card); min-width:100px; border-left:3px solid #6366f1;
}
.kpi-val{ font-family:var(--font-display); font-size:28px; font-weight:400; color:var(--ink); }
.kpi-label{ font-size:11px; font-weight:700; color:rgba(42,19,69,0.5); text-transform:uppercase; letter-spacing:0.08em; }
.kpi-row td{ padding:0; background:rgba(99,102,241,0.03); }

/* sidebar brand — estilos definidos en el bloque SHELL REDESIGN arriba */

/* dashboard */
.dashboard{ display:flex; flex-direction:column; gap:24px; }
.welcome-banner{ background:linear-gradient(135deg, var(--ink), #3d1c73); border-radius:var(--radius-lg); padding:28px 32px; color:#fff; }
.welcome-banner h1{ margin:0 0 6px; font-size:26px; font-weight:700; }
.welcome-banner p{ margin:0; color:rgba(255,255,255,0.65); font-size:14px; }
.stat-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.dashboard-section{ background:#fff; border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-card); }
.section-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.section-header h3{ margin:0; font-size:18px; }
.see-all{ font-size:13px; font-weight:600; color:var(--brand); }
.quick-actions{ background:#fff; border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-card); }
.quick-actions h3{ margin:0 0 16px; font-size:18px; }
.action-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.action-card{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:18px 12px; border-radius:var(--radius-md); border:1px solid rgba(42,19,69,0.1);
  background:#fff; cursor:pointer; font-size:13px; font-weight:600; color:var(--ink);
  transition:all .15s;
}
.action-card:hover{ border-color:var(--brand); color:var(--brand); transform:translateY(-2px); }

/* checkin module */
.online-indicator{ font-size:12px; font-weight:700; }
.online-indicator.online{ color:#10b981; }
.online-indicator.offline{ color:#ef4444; }
.checkin-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:12px; }
.checkin-card{
  background:#fff; border-radius:var(--radius-md); padding:14px 16px;
  display:flex; flex-direction:column; gap:8px; box-shadow:var(--shadow-card);
  border-left:3px solid #94a3b8;
}
.checkin-card.done{ border-left-color:#10b981; opacity:.75; }
.checkin-card.queued{ border-left-color:#f59e0b; }
.checkin-card-info{ display:flex; flex-direction:column; gap:2px; }
.checkin-card-info strong{ font-size:14px; }
.checkin-card-info span{ font-size:12px; color:rgba(42,19,69,0.55); }
.checkin-card-rsvp{ font-size:12px; display:flex; align-items:center; gap:6px; }
.rsvp-dot{ width:8px; height:8px; border-radius:50%; background:#94a3b8; }
.rsvp-dot.rsvp-confirmed{ background:#10b981; }
.rsvp-dot.rsvp-declined{ background:#ef4444; }
.recent-checkins{ background:#fff; border-radius:var(--radius-lg); padding:18px; box-shadow:var(--shadow-card); }
.recent-checkins h3{ margin:0 0 14px; font-size:16px; }
.vip-badge{ background:#f59e0b; color:#fff; font-size:10px; font-weight:700; padding:2px 8px; border-radius:var(--radius-pill); }

.checkin-flash{
  display:flex; flex-direction:column; gap:2px; padding:14px 18px; border-radius:12px; margin-bottom:14px;
  font-size:14px;
}
.checkin-flash strong{ font-size:18px; font-weight:800; }
.checkin-flash--ok{ background:rgba(16,185,129,0.12); color:#047857; }
.checkin-flash--warn{ background:rgba(245,158,11,0.14); color:#b45309; }
.checkin-flash--bad{ background:rgba(239,68,68,0.12); color:#b91c1c; }
.checkin-access{
  background:#fff; border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-card); margin-bottom:16px;
  display:flex; flex-direction:column; gap:14px;
}
.checkin-search{
  display:flex; align-items:center; gap:10px; border:1px solid rgba(42,19,69,0.12); border-radius:12px; padding:8px 10px 8px 14px;
  background:#fafafa;
}
.checkin-search input{
  flex:1; border:none; background:transparent; font-size:16px; font-family:inherit; color:var(--ink); outline:none;
}
.checkin-search-status{
  font-size:12px; font-weight:700; color:rgba(42,19,69,0.45); white-space:nowrap; padding:0 6px 0 4px;
}
.checkin-result{ border-radius:12px; padding:18px 20px; border:1px solid rgba(42,19,69,0.08); }
.checkin-result--ok{ background:rgba(4,165,142,0.08); }
.checkin-result--done{ background:rgba(42,19,69,0.05); }
.checkin-result--warn{ background:rgba(245,158,11,0.10); }
.checkin-result--bad{ background:rgba(239,68,68,0.08); }
.checkin-result--vip{ background:rgba(124,58,237,0.08); }
.checkin-result__state{ font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:rgba(42,19,69,0.55); margin-bottom:6px; }
.checkin-result__name{ font-size:22px; font-weight:800; display:flex; align-items:center; gap:8px; }
.checkin-result__meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; font-size:13px; color:rgba(42,19,69,0.58); }
.checkin-result__actions{ margin-top:14px; display:flex; align-items:center; gap:12px; }
.checkin-result__hint{ font-size:13px; color:rgba(42,19,69,0.55); }
.checkin-matches{ display:flex; flex-direction:column; gap:8px; }
.checkin-match{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  border:1px solid rgba(42,19,69,0.10); background:#fff; border-radius:10px; padding:10px 12px; cursor:pointer;
}
.checkin-walk{ display:flex; flex-direction:column; gap:12px; }
.checkin-walk__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:8px; }
.checkin-walk__vip{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; }
.checkin-boards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.checkin-board{ background:#fff; border-radius:var(--radius-lg); padding:16px; box-shadow:var(--shadow-card); min-height:140px; }
.checkin-board h3{ margin:0 0 12px; font-size:15px; }
.checkin-station, .checkin-incident, .checkin-log-row{
  display:flex; justify-content:space-between; align-items:flex-start; gap:8px; padding:8px 0;
  border-bottom:1px solid rgba(42,19,69,0.06);
}
.checkin-station__name{ background:none; border:0; padding:0; text-align:left; cursor:pointer; color:inherit; }
.checkin-station__detail{ margin-top:6px; display:flex; flex-direction:column; gap:2px; }
@media (max-width: 960px){ .checkin-boards{ grid-template-columns:1fr; } }

.checkin-primary{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.checkin-scan-btn{ display:inline-flex; align-items:center; gap:8px; font-size:15px; padding:10px 18px; }
.qr-scan-modal{ width:min(520px, 100%); }
.qr-scan-modal__body{ display:flex; flex-direction:column; align-items:center; gap:12px; }
.qr-scan-frame{
  position:relative; width:100%; aspect-ratio:3/4; max-height:420px; background:#0f0a18; border-radius:12px; overflow:hidden;
}
.qr-scan-video{ width:100%; height:100%; object-fit:cover; }
.qr-scan-reticle{
  position:absolute; inset:18%; border:2px solid rgba(4,165,142,0.9); border-radius:16px; box-shadow:0 0 0 2000px rgba(15,10,24,0.35);
  pointer-events:none;
}
.qr-scan-canvas{ display:none; }
.qr-scan-msg{ margin:0; font-size:14px; font-weight:600; color:rgba(42,19,69,0.7); text-align:center; }

.live-block{ background:#fff; border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-card); margin-bottom:16px; }
.live-block h3{ margin:0 0 14px; }
.live-block h4{ margin:0 0 8px; font-size:13px; color:rgba(42,19,69,0.62); }
.live-rhythm{ display:grid; grid-template-columns:1.4fr .8fr; gap:18px; align-items:end; }
.live-curve{ display:flex; align-items:flex-end; gap:8px; min-height:110px; }
.live-bar-col{ display:flex; flex-direction:column; align-items:center; gap:6px; flex:1; }
.live-bar{ width:100%; max-width:28px; background:var(--brand); border-radius:6px 6px 2px 2px; }
.live-bar-col span{ font-size:10px; color:rgba(42,19,69,0.45); }
.live-rhythm-meta{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.live-hot{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.live-hot-item{ font-size:13px; font-weight:600; padding:6px 0; border-bottom:1px solid rgba(42,19,69,0.06); }
.live-alerts{ display:flex; flex-direction:column; gap:8px; }
.live-alert{ display:flex; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:10px; font-size:13px; }
.live-alert--danger{ background:rgba(239,68,68,0.10); color:#b91c1c; }
.live-alert--warn{ background:rgba(245,158,11,0.12); color:#b45309; }
.live-alert--info{ background:rgba(4,165,142,0.10); color:#047857; }
.live-grid--commercial{ grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); }
@media (max-width: 960px){
  .live-rhythm, .live-hot{ grid-template-columns:1fr; }
}

/* vip grid */
.vip-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:14px; }
.vip-card{ background:#fff; border-radius:var(--radius-md); padding:16px; display:flex; align-items:center; gap:12px; box-shadow:var(--shadow-card); }
.vip-card-avatar{ width:44px; height:44px; border-radius:50%; background:var(--purple); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; flex-shrink:0; }
.vip-card-info{ flex:1; display:flex; flex-direction:column; gap:3px; font-size:13px; }
.vip-tier-badge{ background:#f59e0b; color:#fff; font-size:10px; font-weight:700; padding:2px 8px; border-radius:var(--radius-pill); width:fit-content; }
.vip-toggle{ background:none; border:1px solid #f59e0b; color:#f59e0b; padding:4px 10px; border-radius:var(--radius-pill); font-size:11px; font-weight:700; cursor:pointer; }
.vip-toggle.active{ background:#f59e0b; color:#fff; }

/* analytics */
.analytics-selectors{ display:flex; gap:18px; flex-wrap:wrap; }
.selector-group{ display:flex; flex-direction:column; gap:6px; }
.selector-group label{ font-size:11px; font-weight:700; color:rgba(42,19,69,0.55); text-transform:uppercase; letter-spacing:0.08em; }
.selector-group select{ padding:9px 13px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md); font-size:13px; font-family:inherit; min-width:200px; }
.analytics-section{ background:#fff; border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-card); }
.analytics-section h3{ margin:0 0 16px; font-size:20px; }
.analytics-section h4{ margin:16px 0 10px; font-size:14px; color:rgba(42,19,69,0.65); }
.vip-kpis{ border-top:1px solid rgba(42,19,69,0.07); padding-top:14px; margin-top:14px; }
.timeline-section{ border-top:1px solid rgba(42,19,69,0.07); padding-top:14px; margin-top:14px; }
.timeline-bars{ display:flex; gap:6px; align-items:flex-end; height:80px; }
.timeline-bar-item{ display:flex; flex-direction:column; align-items:center; gap:2px; flex:1; min-width:30px; }
.timeline-bar{ width:100%; background:var(--brand); border-radius:3px 3px 0 0; min-height:4px; }
.timeline-label{ font-size:10px; color:rgba(42,19,69,0.5); }
.timeline-count{ font-size:11px; font-weight:700; }

/* tabs */
.tab-bar{ display:flex; gap:4px; border-bottom:1px solid rgba(42,19,69,0.1); }
.tab{ background:none; border:none; padding:10px 18px; font-size:13px; font-weight:600; color:rgba(42,19,69,0.55); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tab.active{ color:var(--brand); border-bottom-color:var(--brand); }

/* survey form */
.add-question{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:10px 0; }
.add-question input, .add-question select{ padding:8px 12px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md); font-size:13px; font-family:inherit; }
.question-item{ padding:6px 12px; background:rgba(42,19,69,0.04); border-radius:var(--radius-sm); font-size:13px; margin-bottom:4px; }
.form-actions{ display:flex; gap:10px; margin-top:14px; }

/* import panel */
.import-panel{ background:#fff; border-radius:var(--radius-lg); padding:18px 22px; box-shadow:var(--shadow-card); }
.import-panel .hint{ margin:0 0 10px; font-size:12px; color:rgba(42,19,69,0.55); }
.import-panel textarea{ width:100%; padding:10px 13px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md); font-family:monospace; font-size:12px; resize:vertical; }
.stat-card{ background:#fff; border-radius:var(--radius-lg); padding:20px 22px; box-shadow:var(--shadow-card); cursor:pointer; transition:all .15s; }
.stat-card:hover{ box-shadow:var(--shadow-card-hover); transform:translateY(-2px); }

/* nav groups */
.nav-group{ margin-bottom:4px; }
.nav-group-label{ display:block; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:0.14em; color:rgba(255,255,255,0.35); padding:14px 18px 4px; }

/* live monitoring */
.live-grid{ display:grid; grid-template-columns:140px repeat(auto-fill,minmax(160px,1fr)); gap:16px; margin-bottom:24px; }
.live-card{ background:#fff; border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-card); }
.live-card-ring{ display:flex; flex-direction:column; align-items:center; gap:8px; border-top:3px solid var(--brand); }
.live-card-label{ font-size:12px; color:rgba(42,19,69,0.6); text-align:center; }
.live-card-counter{ display:flex; flex-direction:column; align-items:center; gap:8px; border-top:3px solid #e2e8f0; }
.live-counter-icon{ width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.live-counter-val{ font-size:26px; font-weight:800; font-family:'Bebas Neue',sans-serif; line-height:1; }
.live-counter-label{ font-size:11px; color:rgba(42,19,69,0.55); text-align:center; }
.live-feed-section{ background:#fff; border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-card); }
.live-feed-section h3{ margin:0 0 14px; }
.live-feed{ display:flex; flex-direction:column; gap:10px; }
.feed-item{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:var(--radius-md); background:rgba(42,19,69,0.03); transition:background .3s; }
.feed-item-new{ background:rgba(4,165,142,0.08); border-left:3px solid var(--brand); }
.feed-avatar{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex-shrink:0; }
.feed-info{ flex:1; display:flex; flex-direction:column; gap:2px; font-size:13px; }
.feed-meta{ font-size:11px; color:rgba(42,19,69,0.5); }
.pulse-dot{ position:relative; }
.status-live{ background:rgba(16,185,129,0.15); color:#059669; font-weight:700; }
.header-meta{ display:flex; align-items:center; gap:10px; }

/* reports */
.report-header-card{ background:#fff; border-radius:var(--radius-lg); padding:22px 24px; box-shadow:var(--shadow-card); display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.report-section{ background:#fff; border-radius:var(--radius-lg); padding:20px 22px; box-shadow:var(--shadow-card); margin-bottom:16px; }
.report-section h4{ margin:0 0 14px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:rgba(42,19,69,0.55); }
.report-metrics{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:12px; }
.report-metric{ background:rgba(42,19,69,0.03); border-radius:var(--radius-md); padding:14px 16px; }
.report-metric.highlight{ background:rgba(4,165,142,0.08); border-left:3px solid var(--brand); }
.report-metric-val{ font-size:22px; font-weight:800; font-family:'Bebas Neue',sans-serif; color:var(--ink); }
.report-metric-label{ font-size:11px; color:rgba(42,19,69,0.55); margin-top:2px; }
.report-channels{ display:flex; flex-direction:column; gap:10px; }
.channel-bar{ display:grid; grid-template-columns:90px 1fr 40px; align-items:center; gap:10px; }
.channel-label{ font-size:12px; font-weight:600; color:rgba(42,19,69,0.7); }
.channel-track{ background:rgba(42,19,69,0.08); border-radius:99px; height:8px; overflow:hidden; }
.channel-fill{ background:var(--brand); height:100%; border-radius:99px; }
.channel-count{ font-size:12px; font-weight:700; color:rgba(42,19,69,0.7); text-align:right; }
.status-chip-lg{ font-size:13px; padding:5px 14px; }

/* analytics recharts */
.analytics-body{ display:flex; flex-direction:column; gap:20px; margin-top:20px; }
.kpi-cards-row{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.kpi-card{ background:#fff; border-radius:var(--radius-lg); padding:18px; box-shadow:var(--shadow-card); border-top:3px solid var(--brand); }
.kpi-card-val{ font-size:26px; font-weight:800; font-family:'Bebas Neue',sans-serif; line-height:1; }
.kpi-card-label{ font-size:11px; color:rgba(42,19,69,0.55); margin-top:4px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; }
.kpi-card-sub{ font-size:11px; color:rgba(42,19,69,0.4); margin-top:2px; }
.kpi-section{ background:#fff; border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow-card); }
.kpi-section h4{ margin:0 0 14px; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:rgba(42,19,69,0.55); }
.charts-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.chart-card{ background:#fff; border-radius:var(--radius-lg); padding:18px; box-shadow:var(--shadow-card); }
.chart-card h4{ margin:0 0 12px; font-size:13px; font-weight:700; color:rgba(42,19,69,0.7); }

/* segments */
.segment-filters{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:16px; }
.filter-input{ padding:9px 13px; border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md); font-size:13px; font-family:inherit; min-width:160px; }
.segment-summary{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.segment-pill{ padding:5px 14px; border-radius:var(--radius-pill); color:#fff; font-size:12px; font-weight:700; }
.vip-pill{ background:#7c3aed; }
.badge-count{ font-size:12px; font-weight:700; color:rgba(42,19,69,0.6); background:rgba(42,19,69,0.07); padding:4px 12px; border-radius:var(--radius-pill); }
.row-selected{ background:rgba(4,165,142,0.07); }
.text-muted{ color:rgba(42,19,69,0.45); }
.vip-tag{ background:#f59e0b; color:#fff; font-size:10px; font-weight:700; padding:1px 7px; border-radius:var(--radius-pill); margin-left:6px; }

/* alert */
.alert{ padding:10px 16px; border-radius:var(--radius-md); font-size:13px; font-weight:600; margin-bottom:12px; }
.alert-error{ background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }
.alert-success{ background:#f0fdf4; color:#059669; border:1px solid #bbf7d0; }

/* ═══════════════════════════════════════════════════════════════════════════
   Modificación 2026-08 — Builder / Templates / RBAC / Profile / Settings
   TEMA CLARO — alineado a tokens SheArt (#E9E9EA bg / #fff cards / #2A1345 ink / #04A58E brand)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Inputs y form-group genéricos (usados por las nuevas vistas) */
.input{
  width:100%; padding:10px 13px;
  border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md);
  font-size:13px; font-family:inherit; background:#fff; color:var(--ink);
  transition:border-color .15s;
}
.input:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.12); }
.form-group{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.form-group label{ font-size:12px; font-weight:700; color:rgba(42,19,69,0.6); }
.form-group small{ font-size:11px; color:rgba(42,19,69,0.45); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* Topbar menú de usuario */
.user-menu-wrap{ position:relative; }
.user-menu-trigger{
  display:flex; align-items:center; gap:8px; background:none; border:none;
  cursor:pointer; color:var(--ink); padding:6px 10px; border-radius:var(--radius-md);
  transition:background .15s; font-family:inherit;
}
.user-menu-trigger:hover{ background:rgba(42,19,69,0.06); }
.user-menu-name{ font-size:13px; font-weight:600; max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.user-menu-dropdown{
  position:absolute; top:calc(100% + 6px); right:0; background:#fff;
  border:1px solid rgba(42,19,69,0.12); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card-hover); min-width:220px; z-index:100; overflow:hidden;
}
.user-menu-header{ padding:12px 14px; border-bottom:1px solid rgba(42,19,69,0.07); display:flex; flex-direction:column; gap:3px; }
.user-menu-header strong{ font-size:13px; color:var(--ink); }
.user-menu-header span{ font-size:11px; color:rgba(42,19,69,0.45); }
.user-menu-items{ padding:6px; }
.user-menu-item{
  display:flex; align-items:center; gap:8px; width:100%; padding:9px 10px;
  background:none; border:none; border-radius:var(--radius-md); font-size:13px;
  color:var(--ink); cursor:pointer; text-align:left; transition:background .12s; font-family:inherit;
}
.user-menu-item:hover{ background:rgba(42,19,69,0.05); }
.user-menu-item--danger{ color:#dc2626; }
.user-menu-item--danger:hover{ background:rgba(220,38,38,0.06); }
.user-menu-divider{ height:1px; background:rgba(42,19,69,0.07); margin:4px 0; }

/* Flash messages */
.flash{ padding:12px 16px; border-radius:var(--radius-md); font-size:13px; font-weight:600; margin-bottom:14px; border:1px solid; }
.flash-success{ background:rgba(4,165,142,0.1); color:var(--brand-dark); border-color:rgba(4,165,142,0.25); }
.flash-error{ background:rgba(220,38,38,0.08); color:#b91c1c; border-color:rgba(220,38,38,0.2); }

/* Tab buttons (clase nueva .tab-btn — no reemplaza .tab existente) */
.tab-btn{
  background:none; border:none; border-bottom:2px solid transparent;
  color:rgba(42,19,69,0.55); padding:10px 16px; font-size:13px;
  cursor:pointer; font-family:inherit; font-weight:600;
  transition:all .15s; margin-bottom:-1px;
}
.tab-btn:hover{ color:var(--ink); }
.tab-btn.active{ color:var(--brand); border-bottom-color:var(--brand); font-weight:700; }

/* Toggle switch */
.form-group--toggle{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
.toggle-switch{ position:relative; display:inline-block; width:40px; height:22px; flex-shrink:0; }
.toggle-switch input{ opacity:0; width:0; height:0; }
.toggle-slider{ position:absolute; inset:0; background:rgba(42,19,69,0.2); border-radius:22px; cursor:pointer; transition:background .2s; }
.toggle-slider:before{ content:""; position:absolute; width:16px; height:16px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .2s; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.toggle-switch input:checked + .toggle-slider{ background:var(--brand); }
.toggle-switch input:checked + .toggle-slider:before{ transform:translateX(18px); }

/* Badge extras (tema claro) */
.badge-success{ background:rgba(4,165,142,0.12); color:var(--brand-dark); border:1px solid rgba(4,165,142,0.25); border-radius:var(--radius-pill); padding:2px 10px; font-size:11px; font-weight:700; }
.badge-warning{ background:rgba(245,158,11,0.12); color:#b45309; border:1px solid rgba(245,158,11,0.25); border-radius:var(--radius-pill); padding:2px 10px; font-size:11px; font-weight:700; }
.badge-outline{ background:transparent; color:rgba(42,19,69,0.5); border:1px solid rgba(42,19,69,0.2); border-radius:var(--radius-pill); padding:2px 10px; font-size:11px; font-weight:700; }
.badge-danger{ background:rgba(220,38,38,0.1); color:#dc2626; border:1px solid rgba(220,38,38,0.2); border-radius:var(--radius-pill); padding:2px 10px; font-size:11px; font-weight:700; }

/* Btn extras */
.btn-outline{ background:#fff; color:var(--brand); border:1px solid var(--brand); }
.btn-outline:hover{ background:rgba(4,165,142,0.06); }
.btn-danger{ background:#dc2626; color:#fff; border:none; }
.btn-danger:hover{ background:#b91c1c; }

/* ── Profile ── */
.profile-view{ max-width:640px; }
.profile-card{
  display:flex; gap:20px; align-items:flex-start; padding:20px;
  background:#fff; border-radius:var(--radius-lg); margin-bottom:20px;
  box-shadow:var(--shadow-card);
}
.profile-avatar-lg{
  width:64px; height:64px; border-radius:50%;
  background:linear-gradient(135deg,var(--purple),var(--brand));
  display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:800; color:#fff; flex-shrink:0;
}
.profile-info{ display:flex; flex-direction:column; gap:4px; }
.profile-info h2{ margin:0; font-size:20px; color:var(--ink); }
.profile-section{ padding:4px 0; }
.info-row{
  display:grid; grid-template-columns:180px 1fr; gap:12px;
  padding:11px 0; border-bottom:1px solid rgba(42,19,69,0.07); font-size:13px;
}
.info-row label{ color:rgba(42,19,69,0.5); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; }
.mfa-status{
  display:flex; align-items:center; gap:10px; font-size:14px;
  margin-bottom:16px; padding:14px 16px;
  background:rgba(42,19,69,0.03); border-radius:var(--radius-md);
  border:1px solid rgba(42,19,69,0.08);
}
.mfa-summary-actions{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
}
.backup-code{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:12px; padding:7px 10px; text-align:center;
  background:rgba(42,19,69,0.04); border-radius:8px;
  border:1px solid rgba(42,19,69,0.10); color:var(--ink);
  letter-spacing:0.04em; overflow:hidden; text-overflow:ellipsis;
}
.modal.modal--2fa{
  max-width:520px; max-height:90vh; display:flex; flex-direction:column;
}
.modal--2fa .modal__header{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:12px; padding:20px 22px 0;
}
.modal__header-text{ min-width:0; }
.modal__lede{
  margin:6px 0 0; font-size:13px; font-weight:500;
  color:rgba(42,19,69,0.55); line-height:1.45;
}
.modal__close{
  flex-shrink:0; width:32px; height:32px; border:none; border-radius:8px;
  background:transparent; color:rgba(42,19,69,0.55); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.modal__close:hover{ background:rgba(42,19,69,0.06); color:var(--ink); }
.modal--2fa .modal__body{
  padding:16px 22px; overflow-y:auto; flex:1; min-height:0;
  display:flex; flex-direction:column; gap:14px;
}
.modal--2fa .modal__footer{
  padding:12px 22px 20px; border-top:1px solid rgba(42,19,69,0.07);
}
.mfa-modal-tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:6px;
  padding:4px; background:rgba(42,19,69,0.05); border-radius:10px;
}
.mfa-modal-tab{
  border:none; background:transparent; border-radius:8px;
  padding:9px 10px; font-size:12.5px; font-weight:700; cursor:pointer;
  color:rgba(42,19,69,0.55);
}
.mfa-modal-tab.is-active{
  background:#fff; color:var(--ink);
  box-shadow:0 1px 4px rgba(42,19,69,0.10);
}
.mfa-modal-stack{ display:flex; flex-direction:column; gap:14px; }
.mfa-modal-stack--enroll{ gap:16px; }
.mfa-modal-stack--enroll > .mfa-modal-copy{ text-align:center; }
.mfa-modal-copy{
  margin:0; font-size:13.5px; line-height:1.5; color:rgba(42,19,69,0.68);
}
.mfa-modal-stage{
  display:flex; flex-direction:column; align-items:center;
  gap:16px; width:100%;
}
.mfa-modal-field{ display:flex; flex-direction:column; gap:6px; }
.mfa-modal-field label,
.mfa-modal-verify label{
  font-size:11px; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; color:rgba(42,19,69,0.48);
}
.mfa-modal-verify{
  display:flex; flex-direction:column; align-items:center;
  gap:8px; width:196px;
}
.mfa-modal-verify label{ width:100%; text-align:center; }
.mfa-modal-verify .mfa-otp-input{ width:100%; max-width:100%; }
.mfa-otp-input{
  box-sizing:border-box;
  letter-spacing:0.28em; text-align:center; font-weight:700;
}
.mfa-qr-card{
  width:196px; height:196px; flex-shrink:0;
  background:#fff; border-radius:14px;
  border:1px solid rgba(42,19,69,0.08);
  box-shadow:var(--shadow-card);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.mfa-qr-card img{ width:180px; height:180px; display:block; }
.mfa-qr-placeholder{
  font-size:12.5px; color:rgba(42,19,69,0.45); text-align:center; padding:16px;
}
.mfa-manual-secret{
  display:block; width:196px; box-sizing:border-box;
  font-size:12px; letter-spacing:0.06em; word-break:break-all; text-align:center;
  padding:10px 12px; border-radius:8px;
  background:rgba(42,19,69,0.04); border:1px solid rgba(42,19,69,0.10);
}
.mfa-email-row{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px;
}
.mfa-email-chip{
  display:inline-flex; align-items:center;
  padding:8px 12px; border-radius:999px;
  background:rgba(4,165,142,0.08); color:var(--brand-dark);
  font-size:13px; font-weight:700; line-height:1.2;
}
.mfa-modal-inline-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.mfa-modal-link{
  border:none; background:none; padding:0; cursor:pointer;
  color:var(--brand-dark); font-size:13px; font-weight:700;
  text-align:center;
}
.mfa-modal-link:hover{ text-decoration:underline; }
.mfa-modal-link:disabled{ opacity:.45; cursor:not-allowed; text-decoration:none; }
.mfa-modal-stage .mfa-modal-alert{ text-align:center; max-width:320px; }
.mfa-modal-alert{
  padding:10px 12px; border-radius:10px; font-size:13px; line-height:1.45;
}
.mfa-modal-alert--error{ background:rgba(220,38,38,0.07); color:#dc2626; border:1px solid rgba(220,38,38,0.16); }
.mfa-modal-alert--warning{ background:rgba(217,119,6,0.07); color:#b45309; border:1px solid rgba(217,119,6,0.16); }
.mfa-modal-alert--info{ background:rgba(4,165,142,0.07); color:var(--brand-dark); border:1px solid rgba(4,165,142,0.16); }
.mfa-modal-alert--success{ background:rgba(22,163,74,0.08); color:#15803d; border:1px solid rgba(22,163,74,0.16); }
.mfa-backup-grid{
  display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px;
}
@media (max-width: 640px){
  .modal--2fa{ max-width:100%; }
  .mfa-modal-tabs{ grid-template-columns:1fr; }
  .mfa-backup-grid{ grid-template-columns:1fr; }
  .mfa-email-row{ width:100%; }
}

/* ── Settings ── */
.settings-view{ max-width:720px; display:flex; flex-direction:column; gap:18px; }
/* settings-header migrado a module-header — clase mantenida por compatibilidad */
.settings-header{ display:none; }
.settings-section{ background:#fff; border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-card); }
.settings-footer{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(42,19,69,0.07); }

/* ── RBAC Console ── */
.rbac-view{ display:flex; flex-direction:column; gap:18px; }
.rbac-matrix-wrap{ overflow-x:auto; }
.matrix-module{ background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-card); margin-bottom:14px; overflow:hidden; }
.matrix-module-header{
  display:flex; gap:2px; align-items:center;
  background:rgba(42,19,69,0.04); padding:8px 12px;
  border-bottom:1px solid rgba(42,19,69,0.07); font-size:12px;
}
.module-name{ min-width:120px; text-transform:uppercase; letter-spacing:.07em; color:var(--brand-dark); font-size:11px; font-weight:800; }
.matrix-role-label{ min-width:90px; text-align:center; font-size:10px; color:rgba(42,19,69,0.5); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:0 4px; font-weight:700; }
.matrix-role-label.system{ color:rgba(42,19,69,0.3); }
.matrix-row{ display:flex; gap:2px; align-items:center; padding:5px 12px; border-bottom:1px solid rgba(42,19,69,0.05); font-size:12px; }
.matrix-row:last-child{ border-bottom:none; }
.perm-name{ min-width:120px; color:rgba(42,19,69,0.65); }
.matrix-cell{ min-width:90px; text-align:center; color:rgba(42,19,69,0.2); font-size:12px; }
.matrix-cell.has-perm{ color:var(--brand-dark); font-weight:800; }
.rbac-create-form{
  background:#fff; padding:18px 20px; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card); margin-bottom:20px;
}
.rbac-create-form h4{ margin:0 0 14px; font-size:15px; }
.rbac-list{ display:flex; flex-direction:column; gap:8px; }
.rbac-item{
  padding:12px 16px; background:#fff; border-radius:var(--radius-md);
  box-shadow:var(--shadow-card); border-left:3px solid rgba(42,19,69,0.1);
}
.rbac-item--system{ border-left-color:var(--purple); opacity:.9; }
.rbac-item-header{ display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
.rbac-item-perms{ display:flex; flex-wrap:wrap; gap:5px; }
.perm-tag{
  font-size:10px; padding:2px 8px;
  background:rgba(4,165,142,0.1); color:var(--brand-dark);
  border-radius:var(--radius-pill); font-weight:700;
}
.permissions-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px; background:rgba(42,19,69,0.03); padding:12px;
  border-radius:var(--radius-md); max-height:260px; overflow-y:auto;
  border:1px solid rgba(42,19,69,0.08);
}
.perm-module strong{ display:block; font-size:10px; text-transform:uppercase; color:var(--brand-dark); margin-bottom:5px; letter-spacing:.05em; }
.perm-check{ display:flex; align-items:center; gap:5px; font-size:12px; cursor:pointer; padding:3px 0; }
.assignment-item{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* ── Landing Builder ── */
.builder-view{ display:flex; flex-direction:column; gap:18px; }
.builder-event-select{ background:#fff; border-radius:var(--radius-lg); padding:18px 22px; box-shadow:var(--shadow-card); }
.builder-create-form{
  background:#fff; border-radius:var(--radius-lg); padding:24px;
  max-width:540px; box-shadow:var(--shadow-card);
}
.builder-create-form h4{ margin:0 0 16px; font-size:16px; }
.preset-grid{ display:flex; gap:8px; flex-wrap:wrap; }
.preset-btn{
  padding:8px 18px; border-radius:var(--radius-md); border:2px solid rgba(42,19,69,0.15);
  cursor:pointer; font-size:13px; font-weight:700; transition:all .15s;
  font-family:inherit;
}
.preset-btn.active{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.15); }
.builder-workspace{ display:flex; flex-direction:column; gap:12px; }
.builder-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 18px; background:#fff; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card); flex-wrap:wrap;
}
.builder-meta{ display:flex; align-items:center; gap:10px; flex:1; }
.builder-title-input{
  background:#fff; border:1px solid rgba(42,19,69,0.14);
  color:var(--ink); font-size:15px; font-weight:700;
  padding:7px 12px; border-radius:var(--radius-md); flex:1; max-width:320px;
  font-family:inherit;
}
.builder-title-input:focus{ outline:none; border-color:var(--brand); }
.builder-actions{ display:flex; align-items:center; gap:8px; }
.builder-colors{
  display:flex; gap:18px; align-items:flex-start; padding:14px 16px;
  background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-card);
  flex-wrap:wrap;
}
.jb-color__row{ display:flex; align-items:center; gap:10px; }
.jb-color__swatches{ display:flex; gap:6px; flex-wrap:wrap; }
.jb-color__dot{
  width:22px; height:22px; border-radius:50%; border:2px solid rgba(42,19,69,0.12);
  padding:0; cursor:pointer; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.35);
  transition: transform .12s, border-color .12s, box-shadow .12s;
}
.jb-color__dot:hover{ transform:scale(1.08); }
.jb-color__dot.is-active{
  border-color:var(--ink); box-shadow:0 0 0 3px rgba(4,165,142,0.22);
}
.jb-color__custom{
  position:relative; width:28px; height:28px; border-radius:8px; overflow:hidden;
  border:1px solid rgba(42,19,69,0.14); cursor:pointer; flex-shrink:0;
}
.jb-color__preview{ display:block; width:100%; height:100%; }
.jb-color__custom input[type="color"]{
  position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; border:0; padding:0;
}
.preset-select{ display:flex; gap:5px; align-items:center; }
.preset-dot{ width:20px; height:20px; border-radius:50%; border:3px solid transparent; cursor:pointer; transition:border .15s; padding:0; }
.preset-dot.active{ border-color:var(--ink); }
.builder-body{ display:grid; grid-template-columns:1fr 260px; gap:14px; min-height:500px; }
@media(max-width:900px){
  .builder-body{ grid-template-columns:1fr; }
}
.builder-blocks-panel{ overflow-y:auto; padding-right:4px; }
.builder-blocks-panel h4{ margin:0 0 12px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:rgba(42,19,69,0.5); }
.builder-block{
  border:1px solid rgba(42,19,69,0.12); border-radius:var(--radius-md);
  background:#fff; box-shadow:0 2px 6px rgba(42,19,69,0.06);
  transition:border-color .15s, box-shadow .15s; margin-bottom:8px;
}
.builder-block:hover{ border-color:var(--brand); box-shadow:var(--shadow-card); }
.builder-block--disabled{ opacity:.5; }
.builder-block-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:11px 14px; cursor:pointer;
}
.builder-block-body{ padding:14px 16px; border-top:1px solid rgba(42,19,69,0.07); background:rgba(42,19,69,0.015); }
.builder-library{ overflow-y:auto; }
.builder-library h4{ margin:0 0 10px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:rgba(42,19,69,0.4); }
.block-library-grid{ display:flex; flex-direction:column; gap:5px; }
.block-library-item{
  display:flex; align-items:flex-start; gap:10px; padding:10px 12px;
  background:#fff; border:1px solid rgba(42,19,69,0.1);
  border-radius:var(--radius-md); cursor:pointer; text-align:left;
  transition:all .12s; color:var(--ink);
}
.block-library-item:hover{ border-color:var(--brand); background:rgba(4,165,142,0.04); color:var(--brand-dark); }
.block-library-item strong{ font-size:12px; display:block; font-weight:700; }
.block-library-item small{ font-size:10px; color:rgba(42,19,69,0.45); display:block; margin-top:1px; }
.check-label{ display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; padding:6px 0; color:var(--ink); }
.modal-overlay{ position:fixed; inset:0; background:rgba(42,19,69,0.5); z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; }
.modal-preview{
  background:#fff; border-radius:var(--radius-xl);
  box-shadow:var(--shadow-card-hover); width:100%; max-width:720px;
  max-height:85vh; overflow:hidden; display:flex; flex-direction:column;
}
.modal-preview-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; border-bottom:1px solid rgba(42,19,69,0.08);
  background:#fff;
}
.modal-preview-body{ overflow-y:auto; flex:1; background:var(--muted); }
.preview-block{ }

/* ── Invitation Templates ── */
.templates-view{ display:flex; flex-direction:column; gap:18px; }
.templates-list{ display:flex; flex-direction:column; gap:10px; }
.template-card{
  padding:16px 18px; background:#fff;
  border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  border-left:3px solid rgba(42,19,69,0.1); transition:box-shadow .15s;
}
.template-card:hover{ box-shadow:var(--shadow-card-hover); border-left-color:var(--brand); }
.template-card-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; gap:8px; }
.template-card-header > div:first-child{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.template-create-form{
  max-width:560px; padding:22px; background:#fff;
  border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
}
.template-editor{ }
.template-editor-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; padding:14px 18px;
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  margin-bottom:14px;
}
.template-html-editor{
  font-family:monospace; font-size:12px; resize:vertical; line-height:1.6;
  background:#fafafa; border:1px solid rgba(42,19,69,0.12);
}
.vars-grid{ display:flex; flex-direction:column; gap:7px; margin-top:10px; min-width:0; max-width:100%; width:100%; }
.var-item{
  display:flex; align-items:flex-start; flex-wrap:wrap; gap:8px 12px; padding:9px 12px;
  background:#fff; border-radius:var(--radius-sm); border:1px solid rgba(42,19,69,0.08);
  box-shadow:0 1px 4px rgba(42,19,69,0.06); min-width:0; max-width:100%; width:100%;
}
.var-item .text-muted{ min-width:0; flex:1 1 8rem; overflow-wrap:anywhere; }
.var-tag{
  font-family:monospace; font-size:12px; padding:3px 10px;
  background:rgba(4,165,142,0.1); color:var(--brand-dark);
  border-radius:var(--radius-sm); font-weight:700;
  display:inline-block; line-height:1.4; white-space:normal;
  flex: 0 1 auto; min-width:0; max-width:min(100%, 18rem);
  overflow-wrap:anywhere; word-break:break-word;
}
.var-tag-sm{
  font-family:monospace; font-size:10px; padding:2px 8px;
  background:rgba(4,165,142,0.1); color:var(--brand-dark);
  border-radius:3px; font-weight:700;
  display:inline-block; line-height:1.45; white-space:normal;
  flex: 0 1 auto; min-width:0; max-width:min(100%, 18rem);
  overflow-wrap:anywhere; word-break:break-word;
}
.var-chip-block{ display:flex; flex-direction:column; gap:8px; margin:14px 0; min-width:0; max-width:100%; width:100%; }
.var-chip-block__label{ font-size:13px; font-weight:700; color:var(--ink); }
.var-chip-list{
  display:flex; flex-wrap:wrap; gap:6px; align-items:flex-start;
  min-width:0; max-width:100%; width:100%;
}
.var-chip-more{ align-self:flex-start; margin-top:2px; }
.vars-catalog{ min-width:0; max-width:100%; width:100%; }
.template-versions{ display:flex; flex-direction:column; gap:10px; }
.version-item{ padding:14px 16px; background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-card); }
.version-item-header{ display:flex; align-items:center; gap:10px; margin-bottom:6px; flex-wrap:wrap; }
.version-vars{ display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.preview-data-form{
  background:#fff; padding:16px 18px; border-radius:var(--radius-md);
  box-shadow:var(--shadow-card); margin-bottom:16px;
}
.preview-data-form h5{ margin:0 0 12px; font-size:13px; font-weight:700; }
.template-preview-frame{ border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-card); }
.template-preview-frame.is-mobile{ max-width:390px; margin:0 auto; }
.tpl-wa-preview{
  white-space:pre-wrap; font-family:inherit; font-size:14px; line-height:1.6;
  background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-card);
  padding:18px 20px; color:var(--ink); margin:0;
}
.tpl-mode-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:12px 0 16px; }
.tpl-builder{ display:grid; grid-template-columns:220px minmax(0,1fr); gap:16px; }
.tpl-palette{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  padding:14px; display:flex; flex-direction:column; gap:6px; align-self:start;
}
.tpl-palette__title{ margin:0 0 6px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(42,19,69,0.45); font-weight:700; }
.tpl-palette__item{
  border:0; background:rgba(42,19,69,0.04); color:var(--ink); text-align:left;
  padding:8px 10px; border-radius:8px; font-size:13px; font-weight:600; cursor:pointer;
}
.tpl-palette__item:hover{ background:rgba(4,165,142,0.12); }
.tpl-palette__item--ghost{ background:transparent; border:1px dashed rgba(42,19,69,0.14); }
.tpl-canvas{ display:flex; flex-direction:column; gap:12px; }
.tpl-theme{
  display:flex; flex-wrap:wrap; gap:12px; padding:12px 14px; background:#fff;
  border-radius:var(--radius-lg); box-shadow:var(--shadow-card); align-items:end;
}
.tpl-theme label{ display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:700; color:rgba(42,19,69,0.55); }
.tpl-block{
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  padding:14px 16px; border-left:3px solid var(--brand);
}
.tpl-block--disabled{ opacity:.55; }
.tpl-block__bar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; gap:8px; }
.tpl-palette--scroll{ max-height:72vh; overflow-y:auto; }
.jb-items{ display:flex; flex-direction:column; gap:10px; }
.jb-items__row{ display:flex; gap:8px; align-items:flex-start; }
.jb-items__row .form-grid{ flex:1; }
.detail-shell--wide{ max-width:1120px; min-width:0; width:100%; }
@media (max-width: 900px){
  .tpl-builder{ grid-template-columns:1fr; }
}

@media (max-width: 1080px){
  .stat-grid{ grid-template-columns: repeat(2,1fr); }
  .panel-grid{ grid-template-columns: 1fr; }
  .action-cards{ grid-template-columns: repeat(2,1fr); }
  .stat-cards{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px){
  .sidebar{ display:none; }
  .stat-grid{ grid-template-columns: 1fr; }
  .stat-cards{ grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SISTEMA DE LISTADOS — SHEART PREMIUM UX
   Principio: los controles asisten el flujo, no lo dominan.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── TOOLTIPS CSS-only ─────────────────────────────────────────────────── */
[data-tip]{ position:relative; }
[data-tip]::after{
  content: attr(data-tip);
  position:absolute; bottom:calc(100% + 7px); left:50%;
  transform:translateX(-50%);
  background:var(--ink); color:#fff;
  font-size:11px; font-weight:600; line-height:1;
  padding:5px 9px; border-radius:6px; white-space:nowrap;
  opacity:0; pointer-events:none;
  transition:opacity .15s ease, transform .12s ease;
  transform:translateX(-50%) translateY(3px);
  z-index:300; box-shadow:0 2px 8px rgba(42,19,69,0.22);
}
[data-tip]:hover::after{
  opacity:1; transform:translateX(-50%) translateY(0);
}

/* ── ENCABEZADO DE VISTA (título + CTA en la misma línea) ─────────────── */
.lv-wrap{ display:flex; flex-direction:column; gap:18px; }

/* lv-header adopta el mismo estándar visual que module-header */
.lv-header{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  background:#fff; border-radius:var(--radius-lg); padding:18px 22px;
  box-shadow:var(--shadow-card);
}
.lv-heading{ display:flex; flex-direction:column; gap:2px; }
.lv-title{ font-size:24px; font-weight:800; color:var(--ink); margin:0; line-height:1.1; }
.lv-count{ font-size:12px; color:rgba(42,19,69,0.45); font-weight:500; }

/* CTA Premium */
.btn--cta{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--brand); color:#fff;
  padding:10px 20px; border-radius:var(--radius-pill);
  font-weight:700; font-size:13.5px; border:none; cursor:pointer;
  box-shadow:0 2px 12px rgba(4,165,142,0.30);
  transition:background .18s ease, box-shadow .18s ease, transform .15s ease;
  white-space:nowrap;
}
.btn--cta:hover{
  background:var(--brand-dark);
  box-shadow:0 4px 18px rgba(4,165,142,0.40);
  transform:translateY(-1px);
}
.btn--cta:active{ transform:translateY(0); }

/* Botón volver compacto */
.btn--back{
  display:inline-flex; align-items:center; gap:6px;
  background:transparent; color:rgba(42,19,69,0.60); border:none; cursor:pointer;
  font-size:13px; font-weight:600; padding:6px 10px; border-radius:6px;
  transition:color .15s, background .15s;
}
.btn--back:hover{ color:var(--ink); background:rgba(42,19,69,0.06); }

/* ── BARRA DE BÚSQUEDA + FILTROS ──────────────────────────────────────── */
.lv-controls{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.lv-search{
  display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid rgba(42,19,69,0.14); border-radius:9px;
  padding:0 12px; flex:1; min-width:200px; max-width:380px;
  transition:border-color .15s, box-shadow .15s;
}
.lv-search:focus-within{
  border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.12);
}
.lv-search svg{ opacity:.4; flex-shrink:0; }
.lv-search input{
  border:none; background:transparent; padding:10px 0; flex:1;
  font-size:13.5px; color:var(--ink); font-family:inherit; outline:none;
}
.lv-search input::placeholder{ color:rgba(42,19,69,0.38); }

/* Botón "Filtros" toggle */
.lv-filter-btn{
  display:inline-flex; align-items:center; gap:7px;
  background:#fff; color:rgba(42,19,69,0.70); border:1px solid rgba(42,19,69,0.14);
  border-radius:9px; padding:9px 14px; font-size:13px; font-weight:600; cursor:pointer;
  transition:border-color .15s, color .15s, background .15s;
  white-space:nowrap; flex-shrink:0;
}
.lv-filter-btn:hover{ border-color:rgba(42,19,69,0.28); color:var(--ink); }
.lv-filter-btn--active{ border-color:var(--brand); color:var(--brand); background:rgba(4,165,142,0.07); }
.lv-filter-btn:disabled{ opacity:.4; cursor:not-allowed; }
.lv-filter-btn:disabled:hover{ border-color:rgba(42,19,69,0.14); color:rgba(42,19,69,0.70); background:#fff; }
.lv-controls-end{
  margin-left:auto; display:flex; align-items:center; gap:8px; flex-shrink:0;
}
.lv-selection-meta{ font-size:12.5px; font-weight:600; color:rgba(42,19,69,0.48); }
.lv-filter-count{
  background:var(--brand); color:#fff; border-radius:10px;
  padding:1px 6px; font-size:10px; font-weight:800; line-height:1.4;
}

/* Chips de filtros activos */
.lv-chips{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.lv-chip{
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(4,165,142,0.10); color:var(--brand-dark);
  border:1px solid rgba(4,165,142,0.25); border-radius:var(--radius-pill);
  padding:4px 10px; font-size:12px; font-weight:600;
}
.lv-chip__remove{
  background:none; border:none; cursor:pointer; color:inherit;
  padding:0; line-height:1; opacity:.7; font-size:14px; display:flex; align-items:center;
}
.lv-chip__remove:hover{ opacity:1; }
.lv-chip--clear{
  background:transparent; color:rgba(42,19,69,0.50); border-color:rgba(42,19,69,0.14);
}
.lv-chip--clear:hover{ color:var(--ink); }

/* ── PANEL DE FILTROS AVANZADOS (colapsable) ─────────────────────────── */
.lv-filter-panel{
  background:#fff; border:1px solid rgba(42,19,69,0.10); border-radius:10px;
  padding:16px 20px; display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end;
  animation:panel-in .18s ease;
}
/* Variante en dos filas explícitas (4 columnas iguales) */
.lv-filter-panel--rows{
  flex-direction:column; align-items:stretch;
}
.fp-row{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; align-items:end;
}
@keyframes panel-in{
  from{ opacity:0; transform:translateY(-6px); }
  to{ opacity:1; transform:translateY(0); }
}
.lv-filter-panel__field{ display:flex; flex-direction:column; gap:5px; min-width:160px; flex:1; }
.lv-filter-panel__field label{ font-size:11px; font-weight:700; color:rgba(42,19,69,0.50);
  text-transform:uppercase; letter-spacing:.4px; }
.lv-filter-panel__actions{ display:flex; gap:8px; align-items:flex-end; margin-left:auto; }

/* Input genérico en admin */
.input{
  width:100%; padding:9px 12px; border-radius:8px; font-family:inherit;
  border:1px solid rgba(42,19,69,0.15); font-size:13.5px; color:var(--ink);
  background:#fff; transition:border-color .15s, box-shadow .15s; outline:none;
}
.input:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.12); }
.input:disabled,.input[readonly]{ background:rgba(42,19,69,0.04); color:rgba(42,19,69,0.72); cursor:default; }
.input--sm{ padding:7px 10px !important; font-size:13px !important; }
select.input{ appearance:auto; }

/* ── TABLA ─────────────────────────────────────────────────────────────── */
.tbl-wrap{
  background:#fff; border:1px solid rgba(42,19,69,0.09); border-radius:12px;
  overflow:visible; box-shadow:0 1px 4px rgba(42,19,69,0.05);
}
/* overflow-x en el scroll horizontal lo maneja la tabla directamente */
.tbl{ overflow-x:auto; }
.tbl{ width:100%; border-collapse:collapse; font-size:13.5px; }
.tbl thead{ background:rgba(42,19,69,0.02); }
.tbl th{
  padding:11px 16px; font-weight:700; font-size:11px; color:rgba(42,19,69,0.50);
  text-transform:uppercase; letter-spacing:.5px; text-align:left;
  border-bottom:1px solid rgba(42,19,69,0.08); white-space:nowrap;
}
.tbl td{ padding:13px 16px; border-bottom:1px solid rgba(42,19,69,0.05); vertical-align:middle; }
.tbl tr:last-child td{ border-bottom:none; }
.tbl tbody tr{ transition:background .12s; }
.tbl tbody tr:hover td{ background:rgba(4,165,142,0.025); }
.tbl tbody tr.row-selected td{ background:rgba(4,165,142,0.06); }
.tbl input[type="checkbox"]{ width:15px; height:15px; accent-color:var(--brand); cursor:pointer; }
.tbl th.tbl-check, .tbl td.tbl-check{ width:36px; padding-left:14px; padding-right:8px; }
.tbl th.tbl-pulse, .tbl td.tbl-pulse{ width:220px; min-width:196px; padding-right:20px; }
.tbl th.tbl-actions, .tbl td.tbl-actions{ width:108px; padding-right:12px; }
.pulse-bar{
  display:flex; align-items:center; gap:10px; min-width:0; width:100%;
}
.pulse-bar__track{
  position:relative; flex:1; min-width:92px; height:7px;
  border-radius:99px; overflow:hidden;
  background:rgba(42,19,69,0.08);
}
.pulse-bar__fill{
  position:relative; height:100%; border-radius:99px; overflow:hidden;
  background:rgba(42,19,69,0.18);
  min-width:0;
}
.pulse-bar__spectrum{
  position:absolute; left:0; top:0; bottom:0; min-width:100%;
  background:linear-gradient(90deg,
    #8A9BB0 0%,
    #6E9EA8 22%,
    #4BA8A3 38%,
    #04A58E 58%,
    #C9A06A 78%,
    #C47A62 100%
  );
}
.pulse-bar__value{
  flex-shrink:0; width:2.15em; text-align:right;
  font-variant-numeric:tabular-nums; font-weight:650; font-size:13px;
  color:rgba(42,19,69,0.72); letter-spacing:.01em;
}
.pulse-bar--off .pulse-bar__track{ background:rgba(42,19,69,0.06); }
.pulse-bar--off .pulse-bar__fill{
  background:rgba(42,19,69,0.28);
}
.pulse-bar--off .pulse-bar__value{ color:rgba(42,19,69,0.38); }
.person-header-badges{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.person-contact-line{ margin:6px 0 0; font-size:13px; color:rgba(42,19,69,0.58); }
.pulse-pill{
  display:inline-flex; align-items:center;
  padding:3px 10px; border-radius:var(--radius-pill);
  font-size:11.5px; font-weight:700; line-height:1.3;
  font-variant-numeric:tabular-nums; letter-spacing:.02em;
}
.pulse-pill--fria{ background:rgba(138,155,176,0.20); color:#5d6d80; }
.pulse-pill--latente{ background:rgba(110,158,168,0.20); color:#3f6f78; }
.pulse-pill--receptiva{ background:rgba(4,165,142,0.16); color:#047a6a; }
.pulse-pill--conectada{ background:rgba(201,160,106,0.22); color:#8a6230; }
.pulse-pill--prioritaria{ background:rgba(196,122,98,0.22); color:#a05642; }
.pulse-pill--off{ background:rgba(42,19,69,0.08); color:rgba(42,19,69,0.40); }
.detail-card--table{ padding:0; overflow:hidden; }
.detail-tbl-wrap{ overflow-x:auto; }
.tbl--compact th, .tbl--compact td{ padding:10px 14px; font-size:12.5px; }
.tbl--compact th{ font-size:10.5px; }
.cell-nowrap{ white-space:nowrap; }
.detail-tbl-empty{ padding:22px 26px; color:rgba(42,19,69,0.42); font-size:13px; }
.cell-primary{ font-weight:600; color:var(--ink); font-size:13.5px; }
.cell-secondary{ font-size:12px; color:rgba(42,19,69,0.48); margin-top:2px; }
.text-muted{ color:rgba(42,19,69,0.38); }

/* Acciones en fila */
.row-actions{ display:flex; gap:2px; align-items:center; }
.act-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:7px; border:none; background:transparent;
  color:rgba(42,19,69,0.50); cursor:pointer;
  transition:background .13s, color .13s;
}
.act-btn:hover{ background:rgba(42,19,69,0.07); color:var(--ink); }
.act-btn--danger:hover{ background:rgba(220,38,38,0.08); color:#dc2626; }
.act-btn:disabled{ opacity:.35; cursor:not-allowed; }
.act-btn--open{ background:rgba(4,165,142,0.10); color:var(--brand); }
.row-actions__status{ position:relative; }
.row-dropdown--status{ min-width:196px; }
.row-dropdown--status.row-dropdown--portal{
  min-width:200px;
  max-width:min(240px, calc(100vw - 16px));
}
.row-dropdown__current{
  padding:8px 12px 6px; font-size:11.5px; font-weight:600;
  color:rgba(42,19,69,0.48); display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.row-dropdown__current .badge{ font-size:11px; }
.row-dropdown__hint{
  padding:0 12px 6px; font-size:11px; color:rgba(42,19,69,0.38); font-weight:500;
}

/* ── LINK-BUTTON (texto-enlace en tabla) ────────────────────────────── */
.link-btn{
  background:none; border:none; padding:0; cursor:pointer;
  color:var(--brand); font-weight:600; font-size:13.5px; text-align:left;
  transition:color .13s;
}
.link-btn:hover{ color:var(--brand-dark); text-decoration:underline; }

/* ── FOOTER DE TABLA / PAGINACIÓN ────────────────────────────────────── */
.tbl-footer{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:11px 16px; border-top:1px solid rgba(42,19,69,0.07);
  background:#fafafa; border-radius:0 0 12px 12px;
}
.tbl-range{ font-size:12px; color:rgba(42,19,69,0.45); font-weight:500; flex:1; min-width:100px; }
.tbl-nav{ display:flex; align-items:center; gap:6px; }
.tbl-nav__btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:7px; border:1px solid rgba(42,19,69,0.13);
  background:#fff; color:rgba(42,19,69,0.60); cursor:pointer; font-size:14px;
  transition:border-color .13s, background .13s, color .13s;
}
.tbl-nav__btn:hover:not(:disabled){ border-color:var(--brand); color:var(--brand); background:rgba(4,165,142,0.06); }
.tbl-nav__btn:disabled{ opacity:.35; cursor:not-allowed; }
.tbl-nav__info{ font-size:12px; color:rgba(42,19,69,0.50); padding:0 6px; font-weight:500; white-space:nowrap; }
.tbl-page-size{
  padding:5px 8px; border-radius:7px; border:1px solid rgba(42,19,69,0.13);
  font-size:12px; color:rgba(42,19,69,0.65); background:#fff; font-family:inherit;
  cursor:pointer; outline:none;
}
.tbl-page-size:focus{ border-color:var(--brand); }

/* ── ESTADOS vacío / cargando ────────────────────────────────────────── */
.lv-loading{
  display:flex; align-items:center; justify-content:center;
  padding:56px 24px; gap:10px; color:rgba(42,19,69,0.40); font-size:13px;
}
.lv-empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:56px 24px; gap:12px; color:rgba(42,19,69,0.45); text-align:center;
}
.lv-empty__icon{ width:40px; height:40px; opacity:.25; }
.lv-empty__title{ font-size:15px; font-weight:700; color:rgba(42,19,69,0.55); margin:0; }
.lv-empty__sub{ font-size:13px; margin:0; }

/* ── FORMULARIO (create / edit) ─────────────────────────────────────── */
.form-shell{ display:flex; flex-direction:column; gap:18px; max-width:860px; }
.form-shell--wide{ max-width:1120px; }
.form-back-row{ display:flex; align-items:center; gap:12px; }
/* form-title-row adopta el mismo estándar de white card que module-header */
.form-title-row{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  background:#fff; border-radius:var(--radius-lg); padding:18px 22px;
  box-shadow:var(--shadow-card);
}
.form-view-title{ font-size:22px; font-weight:800; color:var(--ink); margin:0; line-height:1.15; }

.form-card{
  background:#fff; border:1px solid rgba(42,19,69,0.09); border-radius:12px;
  padding:28px 32px; box-shadow:0 1px 4px rgba(42,19,69,0.05);
}
.form-section{
  font-size:11px; font-weight:700; color:rgba(42,19,69,0.50);
  text-transform:uppercase; letter-spacing:.5px;
  margin:24px 0 14px; padding-bottom:8px;
  border-bottom:1px solid rgba(42,19,69,0.07); display:flex; align-items:center; gap:8px;
}
.form-section:first-child{ margin-top:0; }
.form-section-note{ text-transform:none; letter-spacing:0; font-weight:400; color:rgba(42,19,69,0.38); font-size:11px; }
.form-grid{ display:grid; gap:16px; }
.form-grid--2{ grid-template-columns:1fr 1fr; }
.form-group{ display:flex; flex-direction:column; gap:6px; }
.form-group label{ font-size:12px; font-weight:700; color:rgba(42,19,69,0.60); }
.form-group--full{ grid-column:1/-1; }
.form-actions{
  display:flex; gap:12px; justify-content:flex-end;
  padding-top:20px; border-top:1px solid rgba(42,19,69,0.07); margin-top:8px;
}
.field-note{ display:block; font-size:11px; margin-top:4px; color:rgba(42,19,69,0.45); }
.field-note--warn{ color:#d97706; }

/* ── VISTA DETALLE ───────────────────────────────────────────────────── */
.detail-shell{ display:flex; flex-direction:column; gap:16px; max-width:900px; min-width:0; width:100%; }
.detail-card{
  background:#fff; border:1px solid rgba(42,19,69,0.09); border-radius:12px;
  padding:22px 26px; box-shadow:0 1px 4px rgba(42,19,69,0.05);
  min-width:0; max-width:100%; width:100%; overflow-wrap:anywhere;
}
@media (max-width: 720px){
  .detail-card{ padding:16px 16px; }
  .var-chip-block{ margin:12px 0; }
  .var-tag, .var-tag-sm{ max-width:100%; }
}
.detail-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:16px; }
.authz-detail{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width: 960px){ .authz-detail{ grid-template-columns:1fr; } }
.lv-filters{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.detail-item{ display:flex; flex-direction:column; gap:4px; }
.detail-label{ font-size:10.5px; font-weight:700; color:rgba(42,19,69,0.45); text-transform:uppercase; letter-spacing:.45px; }
.detail-value{ font-size:13.5px; color:var(--ink); font-weight:500; }
.detail-objective{ margin-top:16px; padding-top:16px; border-top:1px solid rgba(42,19,69,0.07); }
.detail-objective p{ font-size:13.5px; color:var(--ink); line-height:1.55; margin:6px 0 0; }

/* ── PANEL TRANSICIÓN DE ESTADO ─────────────────────────────────────── */
.state-panel{
  background:#fff; border:1px solid rgba(4,165,142,0.22); border-radius:12px;
  padding:16px 22px;
}
.state-panel__label{ font-size:11px; font-weight:700; color:rgba(42,19,69,0.50);
  text-transform:uppercase; letter-spacing:.4px; margin-bottom:10px; }
.state-panel__body{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.state-panel__select{ flex:1; min-width:200px; }

/* ── NOTAS ACUMULATIVAS ──────────────────────────────────────────────── */
.notes-section{
  background:#fff; border:1px solid rgba(42,19,69,0.09); border-radius:12px;
  padding:22px 26px; box-shadow:0 1px 4px rgba(42,19,69,0.05);
}
.notes-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.notes-header h3{ font-size:15px; font-weight:700; color:var(--ink); margin:0; }
.note-form{ display:flex; gap:10px; align-items:flex-end; padding-bottom:16px;
  margin-bottom:16px; border-bottom:1px solid rgba(42,19,69,0.07); }
.note-inputs{ display:flex; gap:10px; flex:1; flex-direction:column; }
.notes-list{ display:flex; flex-direction:column; gap:8px; }
.note-item{
  background:rgba(42,19,69,0.018); border:1px solid rgba(42,19,69,0.07);
  border-radius:9px; padding:12px 14px;
  transition:background .13s;
}
.note-item:hover{ background:rgba(42,19,69,0.03); }
.note-item__meta{ display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.note-item__date{ font-size:11px; color:rgba(42,19,69,0.40); margin-left:auto; }
.note-item__body{ font-size:13px; color:var(--ink); line-height:1.55; margin:0; white-space:pre-wrap; }

/* ── BADGES ──────────────────────────────────────────────────────────── */
.badge{
  display:inline-flex; align-items:center;
  padding:3px 10px; border-radius:var(--radius-pill);
  font-size:11.5px; font-weight:700; line-height:1.3;
}
.badge--info{ background:rgba(59,130,246,0.11); color:#2563eb; }
.badge--brand{ background:rgba(4,165,142,0.11); color:var(--brand-dark); }
.badge--success{ background:rgba(22,163,74,0.11); color:#15803d; }
.badge--warning{ background:rgba(217,119,6,0.11); color:#b45309; }
.badge--danger{ background:rgba(220,38,38,0.09); color:#dc2626; }
.badge--neutral{ background:rgba(42,19,69,0.07); color:rgba(42,19,69,0.65); }

/* ── ALERTAS ─────────────────────────────────────────────────────────── */
.alert{
  padding:10px 14px; border-radius:9px; font-size:13px;
  display:flex; align-items:flex-start; gap:8px;
  min-width:0; max-width:100%;
}
.alert--stack{
  flex-direction:column; flex-wrap:nowrap; align-items:stretch;
}
.alert--error{ background:rgba(220,38,38,0.07); color:#dc2626; border:1px solid rgba(220,38,38,0.18); }
.alert--warning{ background:rgba(217,119,6,0.07); color:#b45309; border:1px solid rgba(217,119,6,0.18); }
.alert--info{ background:rgba(4,165,142,0.07); color:var(--brand-dark); border:1px solid rgba(4,165,142,0.18); }
.alert--success{ background:rgba(22,163,74,0.08); color:#15803d; border:1px solid rgba(22,163,74,0.18); }

/* ── MODAL ───────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed; inset:0; background:rgba(42,19,69,0.32); z-index:380;
  display:flex; align-items:center; justify-content:center; padding:24px;
  backdrop-filter:blur(2px);
}
.modal{
  background:#fff; border-radius:14px; width:100%; max-width:480px;
  box-shadow:0 8px 40px rgba(42,19,69,0.20); animation:modal-in .18s ease;
}
@keyframes modal-in{
  from{ opacity:0; transform:scale(.97) translateY(8px); }
  to{ opacity:1; transform:scale(1) translateY(0); }
}
.modal__header{ padding:22px 26px 0; }
.modal__header h3{ font-size:17px; font-weight:800; color:var(--ink); margin:0; }
.modal__body{ padding:14px 26px; font-size:13.5px; color:var(--ink); line-height:1.5; }
.modal__footer{ padding:12px 26px 22px; display:flex; gap:10px; justify-content:flex-end; }
.modal--contact{ max-width:680px; width:min(680px, 100%); }
.modal--contact .modal__header{ padding:22px 28px 0; }
.modal--contact .modal__body{ padding:16px 28px 8px; }
.modal--contact .modal__footer{ padding:12px 28px 22px; }
.modal--contact .form-grid{ gap:16px 20px; }
.modal--contact .form-grid--2{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
.modal--contact .form-group{ margin-bottom:0; min-width:0; }
.modal--contact .phone-combo{ min-width:0; }
.modal--contact .phone-combo__cc{
  max-width:none; flex:0 0 auto; gap:8px; padding:8px 12px;
}
.modal--contact .phone-combo__country{
  max-width:140px; overflow:hidden; text-overflow:ellipsis;
}
.modal--contact .form-group--toggle{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px;
  margin-top:6px; padding-top:14px; border-top:1px solid rgba(42,19,69,0.07);
}
.modal--contact .form-group--toggle + .form-group--toggle{
  margin-top:0; padding-top:12px;
}
.modal--contact .form-group--toggle > label:first-child{
  margin:0; font-size:13px; font-weight:600; color:var(--ink);
  line-height:1.35; padding-right:8px; white-space:nowrap;
}
.form-group--status{ min-width:0; }
.status-toggle-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; min-height:42px; padding:0 12px; box-sizing:border-box;
  border:1px solid rgba(42,19,69,0.14); border-radius:var(--radius-md);
  background:#fff; width:100%; min-width:0;
}
.status-toggle-row span{
  font-size:13px; font-weight:600; color:var(--ink); white-space:nowrap;
}

/* ── BOTONES GENERALES ───────────────────────────────────────────────── */
.btn--primary{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--brand); color:#fff; border:none;
  padding:9px 18px; border-radius:8px; font-weight:700; font-size:13px; cursor:pointer;
  transition:background .15s, box-shadow .15s, transform .12s;
}
.btn--primary:hover{ background:var(--brand-dark); transform:translateY(-1px); }
.btn--primary:disabled{ opacity:.55; cursor:not-allowed; transform:none; }
.btn--ghost{
  display:inline-flex; align-items:center; gap:7px;
  background:transparent; color:rgba(42,19,69,0.65);
  border:1px solid rgba(42,19,69,0.15);
  padding:9px 16px; border-radius:8px; font-weight:600; font-size:13px; cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}
.btn--ghost:hover{ border-color:rgba(42,19,69,0.28); color:var(--ink); background:rgba(42,19,69,0.04); }
.btn--ghost:disabled{ opacity:.45; cursor:not-allowed; }
.btn--ghost:disabled:hover{ border-color:rgba(42,19,69,0.15); color:rgba(42,19,69,0.65); background:transparent; }
.btn--danger-solid{
  display:inline-flex; align-items:center; gap:7px;
  background:#dc2626; color:#fff; border:none;
  padding:9px 16px; border-radius:8px; font-weight:700; font-size:13px; cursor:pointer;
  transition:background .15s;
}
.btn--danger-solid:hover{ background:#b91c1c; }
.btn--sm{ padding:7px 14px !important; font-size:12.5px !important; }

/* Toggle de visibilidad pública */
.form-group--toggle{ flex-direction:row; align-items:center; gap:10px; }
.toggle-label{ display:flex; align-items:center; gap:8px; cursor:pointer; font-size:13.5px; font-weight:500; color:var(--ink); }

/* ── BACKWARD COMPAT aliases ─────────────────────────────────────────── */
.view-section{ display:flex; flex-direction:column; gap:16px; }
.view-header{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.view-title{ font-size:22px; font-weight:800; color:var(--ink); margin:0; }
.view-subtitle{ font-size:12px; color:rgba(42,19,69,0.45); }
.data-table-wrapper{ overflow-x:auto; }
.data-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.data-table th{ padding:11px 16px; font-weight:700; font-size:11px; color:rgba(42,19,69,0.50);
  text-transform:uppercase; letter-spacing:.5px; text-align:left; border-bottom:1px solid rgba(42,19,69,0.08); }
.data-table td{ padding:13px 16px; border-bottom:1px solid rgba(42,19,69,0.05); vertical-align:middle; }
.data-table tr:last-child td{ border-bottom:none; }
.pagination{ display:flex; align-items:center; justify-content:center; gap:14px; padding:12px 0;
  border-top:1px solid rgba(42,19,69,0.07); }
.pagination__info{ font-size:12px; color:rgba(42,19,69,0.50); }
.btn--xs{ padding:4px 8px !important; font-size:12px !important; border-radius:5px !important; }
.btn--danger{ color:#dc2626 !important; }
.btn--danger:hover{ background:rgba(220,38,38,0.07) !important; }

/* ── INVITADOS: VIP, alertas, import modal ───────────────────────────── */
.vip-pill{
  display:inline-flex; align-items:center; gap:4px;
  background:rgba(240,133,54,0.12); color:#a95a1e;
  border-radius:var(--radius-pill); padding:2px 8px; font-size:11px; font-weight:700;
}
.alert-pips{ display:flex; align-items:center; gap:6px; }
.alert-pip{
  width:22px; height:22px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(240,133,54,0.12); color:#a95a1e; cursor:default;
}
.alert-pip--danger{ background:rgba(214,69,69,0.12); color:#b42318; }
.import-overlay{ position:fixed; inset:0; background:rgba(42,19,69,0.42); z-index:400;
  display:flex; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(3px); }
.import-modal{
  background:#fff; border-radius:16px; width:100%; max-width:820px; max-height:88vh;
  overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 20px 60px rgba(42,19,69,0.22);
}
.import-modal--wide{ max-width:980px; }
.import-modal--with-drawer{ max-width:1240px; flex-direction:row; align-items:stretch; }
.import-modal__main{ flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }
.import-review-row--click{ cursor:pointer; }
.import-review-row--click:hover{ background:rgba(4,165,142,0.04); }
.import-drawer{
  width:400px; flex-shrink:0; display:flex; flex-direction:column; min-height:0;
  border-left:1px solid rgba(42,19,69,0.1); background:#fff;
  box-shadow:-16px 0 32px rgba(42,19,69,0.08);
}
.import-drawer__head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding:16px 18px 12px; border-bottom:1px solid rgba(42,19,69,0.08);
}
.import-drawer__kicker{
  margin:0 0 8px; font-size:11px; font-weight:800; letter-spacing:.4px;
  text-transform:uppercase; color:rgba(42,19,69,0.45);
}
.import-drawer__chips{ display:flex; flex-wrap:wrap; gap:6px; }
.import-drawer__body{
  flex:1; overflow-y:auto; padding:14px 18px 18px;
  display:flex; flex-direction:column; gap:12px;
}
.import-drawer-field{ position:relative; }
.import-drawer-field label{
  display:block; font-size:11px; font-weight:700; letter-spacing:.3px;
  text-transform:uppercase; color:rgba(42,19,69,0.5); margin-bottom:5px;
}
.import-drawer-field .input, .import-drawer-field textarea.input{
  width:100%; resize:vertical; font-family:inherit;
}
.import-drawer-field--error .input{ border-color:#c24747; background:rgba(214,69,69,0.05); }
.import-drawer-field--warn .input{ border-color:#d97706; background:rgba(217,119,6,0.06); }
.import-drawer-field__head{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:5px;
}
.import-drawer-field__head label{ margin-bottom:0; }
.import-drawer-field__meta{
  display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:5px; min-height:16px;
}
.import-drawer-origin{
  margin:0; font-size:11px; color:rgba(42,19,69,0.42); line-height:1.35;
}
.import-action-wrap{ position:relative; flex-shrink:0; z-index:6; }
.import-action-link{
  display:inline-flex; align-items:center; gap:2px;
  border:none; background:none; padding:0;
  font-family:inherit; font-size:11px; font-weight:700; letter-spacing:.3px;
  text-transform:uppercase; color:rgba(42,19,69,0.48); cursor:pointer; line-height:1.35;
}
.import-action-link:hover, .import-action-link--on{ color:var(--brand); }
.import-field-hint{
  position:relative; display:inline-flex; align-items:center; color:#a95a1e; cursor:default; flex-shrink:0;
}
.import-field-hint--error{ color:#b42318; }
.import-field-hint__pop{
  position:absolute; right:0; top:calc(100% + 7px);
  background:var(--ink); color:#fff;
  font-size:11px; font-weight:600; line-height:1.4;
  padding:8px 10px; border-radius:8px; white-space:normal;
  width:max-content; max-width:240px; text-align:left;
  opacity:0; pointer-events:none;
  transition:opacity .15s ease, transform .12s ease;
  transform:translateY(-3px); z-index:40;
  box-shadow:0 2px 8px rgba(42,19,69,0.22);
}
.import-field-hint:hover .import-field-hint__pop{
  opacity:1; transform:translateY(0);
}
.import-drawer-issue{
  margin-top:6px; display:flex; flex-direction:column; gap:2px;
  font-size:12px; line-height:1.4;
}
.import-drawer-issue strong{ font-size:10.5px; letter-spacing:.3px; text-transform:uppercase; }
.import-drawer-issue__val{ color:rgba(42,19,69,0.5); }
.import-drawer-check{
  display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600;
  text-transform:none; letter-spacing:0; color:var(--ink); cursor:pointer;
}
.import-drawer__foot{
  padding:12px 16px; border-top:1px solid rgba(42,19,69,0.08);
  display:flex; flex-direction:column; gap:8px; background:rgba(42,19,69,0.02);
}
.import-drawer__nav{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.import-drawer__nav-meta{
  font-size:12.5px; font-weight:600; color:rgba(42,19,69,0.55); line-height:1;
}
.import-drawer__actions{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.import-drawer__actions > button{
  width:100%; min-width:0; display:inline-flex; justify-content:center; box-sizing:border-box;
}
@media(max-width:900px){
  .import-modal--with-drawer{ flex-direction:column; max-height:92vh; }
  .import-drawer{ width:100%; max-height:46vh; border-left:none; border-top:1px solid rgba(42,19,69,0.1); box-shadow:none; }
}
.import-kpis--6{ grid-template-columns:repeat(6,1fr); }
.import-kpis--7{ grid-template-columns:repeat(7,1fr); }
.import-stats{
  display:flex; flex-wrap:nowrap; align-items:stretch;
  border:1px solid rgba(42,19,69,0.08); border-radius:10px; overflow:hidden; background:#fff;
}
.import-stat{
  flex:1 1 0; min-width:0; padding:7px 8px 8px;
  border-right:1px solid rgba(42,19,69,0.06); cursor:default;
}
.import-stat:last-child{ border-right:none; }
.import-stat span{
  display:block; font-size:9.5px; font-weight:700; letter-spacing:.3px;
  text-transform:uppercase; color:rgba(42,19,69,0.42); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.import-stat strong{ display:block; font-size:14px; font-weight:700; color:var(--ink); line-height:1.25; }
.import-stat--accent{ background:rgba(4,165,142,0.08); }
.import-stat--accent strong{ color:var(--brand-dark); }
.import-modal .lv-controls{ gap:8px; flex-wrap:nowrap; }
.import-modal .lv-filter-btn{ padding:7px 12px; font-size:12.5px; }
.import-modal .lv-controls .lv-chips{ margin-left:auto; }
.import-modal .lv-chip{ padding:3px 8px; font-size:11.5px; }
.import-bulk-meta{ font-size:12.5px; font-weight:600; }
.import-bulk--secondary{ opacity:.9; }
.import-enrich{
  margin:0; font-size:12.5px; line-height:1.4; color:var(--brand-dark);
  background:rgba(4,165,142,0.08); border-radius:8px; padding:8px 10px;
}
.import-enrich--warn{ color:#a95a1e; background:rgba(217,119,6,0.08); }
.import-link{ display:flex; flex-direction:column; gap:6px; }
.import-link p{ margin:0; font-size:11px; font-weight:700; letter-spacing:.3px; text-transform:uppercase; color:rgba(42,19,69,0.5); }
.import-link--on{ border-color:var(--brand) !important; background:rgba(4,165,142,0.08) !important; }
.import-issue-actions{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.import-kpi{ background:rgba(42,19,69,0.03); border-radius:10px; padding:10px 12px; border:none; text-align:left; cursor:pointer; font:inherit; }
.import-kpi--accent{ cursor:default; background:rgba(4,165,142,0.08); }
.import-kpi--on{ box-shadow:inset 0 0 0 1.5px var(--brand); background:rgba(4,165,142,0.08); }
.import-review-filters, .import-bulk{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.import-chip{
  border:1px solid rgba(42,19,69,0.12); background:#fff; border-radius:99px;
  padding:4px 10px; font-size:12px; font-weight:600; color:rgba(42,19,69,0.62); cursor:pointer;
}
.import-chip--on{ border-color:var(--brand); color:var(--brand); background:rgba(4,165,142,0.08); }
.import-review-table{
  display:flex; flex-direction:column; overflow:hidden;
  max-height:min(380px, 48vh);
  border:1px solid rgba(42,19,69,0.08); border-radius:10px; background:#fff;
}
.import-review-table__scroll{ overflow:auto; flex:1 1 auto; min-height:0; }
.import-review-table .tbl{ font-size:13px; }
.import-review-table .tbl th{
  padding:7px 10px; font-size:10.5px;
  position:sticky; top:0; background:#faf9fb; z-index:1;
}
.import-review-table .tbl td{ padding:6px 10px; line-height:1.3; }
.import-review-table .tbl-footer{
  flex-shrink:0; padding:8px 12px; border-radius:0; background:#faf9fb;
}
.import-review-table .act-btn{ width:26px; height:26px; }
.import-review-table .badge{ padding:2px 7px; font-size:10.5px; }
.import-review-name{ font-weight:600; line-height:1.25; }
.import-review-badges{ display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.import-review-row--error{ background:rgba(214,69,69,0.05); }
.import-review-row--warn{ background:rgba(217,119,6,0.05); }
.import-review-row--out{ opacity:.55; }
.import-review-row--on{ outline:1px solid var(--brand); }
.import-match{ font-size:11px; color:#a95a1e; margin-top:2px; line-height:1.3; }
.import-detail{
  border:1px solid rgba(42,19,69,0.1); border-radius:12px; padding:12px 14px; background:rgba(42,19,69,0.02);
}
.import-detail__head{ margin-bottom:8px; }
.import-detail table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.import-detail th{ text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.4px;
  color:rgba(42,19,69,0.45); padding:6px 8px; border-bottom:1px solid rgba(42,19,69,0.08); }
.import-detail td{ padding:7px 8px; border-bottom:1px solid rgba(42,19,69,0.05); vertical-align:top; }
.import-phases{
  display:flex; gap:3px; height:32px; width:100%;
  border-radius:8px; overflow:hidden;
}
.import-phase{
  flex:1; min-width:0;
  display:flex; align-items:center; justify-content:center; gap:5px;
  background:rgba(42,19,69,0.06); color:rgba(42,19,69,0.42);
  font-size:10.5px; font-weight:700; letter-spacing:.35px; text-transform:uppercase;
  clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
  padding:0 14px 0 16px;
}
.import-phase:first-child{
  clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
  padding-left:10px;
}
.import-phase:last-child{
  clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
  padding-right:10px;
}
.import-phase span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.import-phase--done{ background:var(--brand); color:#fff; }
.import-phase--on{ background:var(--ink); color:#fff; }
.import-steps{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:4px; }
.import-step{
  display:inline-flex; align-items:center; gap:6px;
  font-size:11px; font-weight:700; letter-spacing:.3px; text-transform:uppercase;
  color:rgba(42,19,69,0.38); padding:4px 8px; border-radius:99px;
}
.import-step--on{ color:var(--brand); background:rgba(4,165,142,0.08); }
.import-step--done{ color:rgba(42,19,69,0.55); }
.import-path-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.import-path{
  border:1px solid rgba(42,19,69,0.12); border-radius:12px; padding:16px;
  background:#fff; cursor:pointer; text-align:left;
}
.import-path:hover, .import-path--on{ border-color:var(--brand); background:rgba(4,165,142,0.05); }
.import-path strong{ display:block; font-size:14px; color:var(--ink); margin-bottom:4px; }
.import-path p{ margin:0; font-size:12.5px; color:rgba(42,19,69,0.55); line-height:1.45; }
.import-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.import-kpi{ background:rgba(42,19,69,0.03); border-radius:10px; padding:10px 12px; }
.import-kpi span{ display:block; font-size:11px; color:rgba(42,19,69,0.45); font-weight:700; text-transform:uppercase; }
.import-kpi strong{ font-size:18px; color:var(--ink); }
.import-map{ width:100%; border-collapse:collapse; font-size:13px; }
.import-map th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.4px;
  color:rgba(42,19,69,0.45); padding:8px 10px; border-bottom:1px solid rgba(42,19,69,0.08); }
.import-map td{ padding:8px 10px; border-bottom:1px solid rgba(42,19,69,0.05); }
.import-sev--error{ color:#a52f2f; }
.import-sev--warning{ color:#a95a1e; }
.import-sev--normalized{ color:var(--brand-dark); }
@media(max-width:640px){
  .import-path-grid, .import-kpis, .import-kpis--6, .import-kpis--7{ grid-template-columns:1fr 1fr; }
  .import-stats{ flex-wrap:wrap; }
  .import-stat{ flex:1 1 25%; border-bottom:1px solid rgba(42,19,69,0.06); }
  .import-phase{ font-size:9px; padding:0 8px; letter-spacing:.2px; }
  .import-modal .lv-controls{ flex-wrap:wrap; }
}
.import-modal__header{ display:flex; align-items:center; justify-content:space-between; padding:18px 22px;
  border-bottom:1px solid rgba(42,19,69,0.08); }
.import-modal__header h3{ margin:0; font-size:18px; font-weight:800; }
.import-modal__body{ padding:20px 22px; overflow-y:auto; display:flex; flex-direction:column; gap:16px; flex:1; min-height:0; }
.import-modal__footer{ display:flex; justify-content:flex-end; gap:10px; padding:14px 22px;
  border-top:1px solid rgba(42,19,69,0.08); }
.import-manual{
  background:rgba(42,19,69,0.03); border-radius:10px; padding:14px 16px; font-size:13px;
  color:rgba(42,19,69,0.68); line-height:1.55;
}
.import-manual ol{ margin:8px 0 0; padding-left:18px; }
.import-manual code{ font-size:11.5px; background:rgba(42,19,69,0.06); padding:1px 5px; border-radius:4px; }
.import-drop{
  border:1.5px dashed rgba(42,19,69,0.18); border-radius:12px; padding:28px 20px; text-align:center;
  background:rgba(42,19,69,0.02); cursor:pointer; transition:border-color .15s, background .15s;
}
.import-drop:hover, .import-drop--over{ border-color:var(--brand); background:rgba(4,165,142,0.06); }
.import-drop p{ margin:8px 0 0; font-size:13.5px; font-weight:600; color:var(--ink); }
.import-drop span{ font-size:12px; color:rgba(42,19,69,0.45); }
.import-file-name{ font-size:13px; font-weight:600; color:var(--brand-dark); }
.import-file-meta{ font-size:12px; font-weight:500; color:rgba(42,19,69,0.48); margin-top:2px; }
.import-detect{
  background:rgba(217,119,6,0.07); border:1px solid rgba(217,119,6,0.18);
  border-radius:10px; padding:12px 14px;
}
.import-detect p{ margin:0 0 10px; font-size:13px; color:#b45309; }
.import-errors{ border:1px solid rgba(214,69,69,0.22); border-radius:10px; overflow:hidden; }
.import-errors__head{ background:rgba(214,69,69,0.08); padding:8px 12px; font-size:12px; font-weight:700; color:#a52f2f; }
.import-errors table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.import-errors th{ text-align:left; padding:7px 12px; color:rgba(42,19,69,0.45); font-size:10.5px;
  text-transform:uppercase; letter-spacing:.4px; border-bottom:1px solid rgba(42,19,69,0.08); }
.import-errors td{ padding:7px 12px; border-bottom:1px solid rgba(42,19,69,0.05); }
.import-errors tr:last-child td{ border-bottom:none; }

/* ── Combobox industria ─────────────────────────────────────────────── */
.combo{ position:relative; }
.combo__input{
  width:100%; display:flex; align-items:center; gap:8px;
  background:#fff; border:1px solid rgba(42,19,69,0.14); border-radius:8px;
  padding:0 12px; min-height:40px; cursor:text;
}
.combo__input:focus-within{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.12); }
.combo__input input{
  border:none; outline:none; flex:1; min-width:0; font:inherit; background:transparent;
  color:var(--ink); padding:9px 0;
}
.combo__menu{
  position:absolute; z-index:20; left:0; right:0; top:calc(100% + 4px);
  background:#fff; border:1px solid rgba(42,19,69,0.12); border-radius:10px;
  box-shadow:0 12px 32px rgba(42,19,69,0.12); max-height:240px; overflow:auto;
}
.combo__opt{
  display:block; width:100%; text-align:left; border:none; background:transparent;
  padding:9px 12px; font-size:13px; color:var(--ink); cursor:pointer;
}
.combo__opt:hover, .combo__opt--active{ background:rgba(4,165,142,0.08); }
.combo__empty{ padding:12px; font-size:12px; color:rgba(42,19,69,0.48); }

button.linkish{
  background:none; border:none; padding:0; font:inherit; font-weight:700;
  color:var(--ink); cursor:pointer; text-align:left;
}
button.linkish:hover{ color:var(--brand); }

/* ── PULSO (densidad alineada a detalle/notas del sistema) ───────────── */
.pulse-mini-flow{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:6px; }
.pulse-mini-step{ display:flex; align-items:center; gap:6px; }
.pulse-chip{
  display:inline-flex; align-items:center; padding:2px 8px; border-radius:999px;
  font-size:11px; font-weight:700; letter-spacing:.02em;
  background:rgba(42,19,69,0.07); color:var(--ink);
}
.pulse-chip--email{ background:rgba(4,165,142,0.12); color:var(--brand-dark); }
.pulse-chip--whatsapp{ background:rgba(22,163,74,0.12); color:#15803d; }
.pulse-chip--public_link{ background:rgba(59,130,246,0.12); color:#2563eb; }
.pulse-chip--internal{ background:rgba(42,19,69,0.08); color:rgba(42,19,69,0.7); }
.pulse-timeline{ display:flex; flex-direction:column; gap:8px; }
.pulse-node{ display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:stretch; }
.pulse-node__rail{ display:flex; justify-content:center; }
.pulse-node__rail span{
  width:24px; height:24px; border-radius:50%;
  background:var(--brand); color:#fff; font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
}
.pulse-node--paused .pulse-node__rail span{ background:rgba(42,19,69,0.28); }
.pulse-node__card{
  background:rgba(42,19,69,0.018); border:1px solid rgba(42,19,69,0.07);
  border-radius:9px; padding:12px 14px;
}
.pulse-node__top{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pulse-node__top strong{ font-size:13.5px; font-weight:600; color:var(--ink); }
.pulse-node__meta{ margin:4px 0 8px; font-size:12px; color:rgba(42,19,69,0.48); }
.pulse-step-form{
  margin-top:16px; padding-top:16px;
  border-top:1px solid rgba(42,19,69,0.07);
}
.pulse-person-hit{
  display:flex; align-items:center; gap:10px; padding:8px 0;
  border-bottom:1px solid rgba(42,19,69,0.05); font-size:13px; cursor:pointer;
}
.pulse-rules{
  margin:0; padding-left:18px; color:rgba(42,19,69,0.7);
  font-size:13.5px; line-height:1.55;
}

/* ── PREPARACIÓN DE EVENTO ───────────────────────────────────────────── */
.prep-list{ display:flex; flex-direction:column; gap:0; }
.prep-item{
  display:flex; align-items:center; gap:10px;
  font-size:13px; color:var(--ink); padding:8px 0;
  border-bottom:1px solid rgba(42,19,69,0.05);
}
.prep-item:last-child{ border-bottom:none; }
.prep-item--off{ color:rgba(42,19,69,0.45); }
.prep-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.prep-dot--ok{ background:var(--brand); }
.prep-dot--off{ background:rgba(42,19,69,0.22); }
.prep-item__state{ margin-left:auto; font-size:11px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; color:rgba(42,19,69,0.40); }
.prep-item:not(.prep-item--off) .prep-item__state{ color:var(--brand-dark); }
.comm-pulse-row{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 0; border-bottom:1px solid rgba(42,19,69,0.05); font-size:13px;
}
.comm-pulse-row:last-child{ border-bottom:none; }

/* ── Integraciones (marketplace interno) ─────────────────────────────── */
.integ-view{ display:flex; flex-direction:column; gap:18px; }
.integ-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:16px;
}
.integ-card{
  background:#fff; border-radius:var(--radius-lg); padding:20px 20px 18px;
  box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:8px;
  min-height:0;
}
.integ-card__top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.integ-card__icon{
  width:36px; height:36px; border-radius:10px;
  background:rgba(4,165,142,0.10); color:var(--brand-dark);
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
}
.integ-card__icon--lg{ width:32px; height:32px; border-radius:8px; }
.integ-card__name{ margin:4px 0 0; font-size:17px; font-weight:800; color:var(--ink); }
.integ-card__cat{
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(42,19,69,0.42);
}
.integ-card__desc{
  margin:0; font-size:13px; line-height:1.45; color:rgba(42,19,69,0.62);
  flex:1;
}
.integ-card__footer{ margin-top:8px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.integ-toggle{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; user-select:none; margin:0; }
.integ-toggle.is-disabled{ opacity:.55; cursor:not-allowed; }
.integ-toggle__label{ font-size:12px; font-weight:700; color:rgba(42,19,69,0.62); letter-spacing:.02em; }
.integ-toggle--compact .toggle-switch{ width:36px; height:20px; }
.integ-toggle--compact .toggle-slider:before{ width:14px; height:14px; left:3px; top:3px; }
.integ-toggle--compact input:checked + .toggle-slider:before{ transform:translateX(16px); }
.integ-detail-grid{
  display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(0, .9fr); gap:16px;
}
.integ-block-title{
  margin:0 0 14px; font-size:13px; font-weight:800; letter-spacing:.04em;
  text-transform:uppercase; color:rgba(42,19,69,0.55);
}
.integ-secret-state{
  font-size:12px; color:rgba(42,19,69,0.58); margin-bottom:8px;
}
.integ-secret-state code{
  font-size:12px; background:rgba(42,19,69,0.05); padding:2px 8px; border-radius:6px;
}
.integ-status-list{ margin:0; display:flex; flex-direction:column; gap:12px; }
.integ-status-list div{ display:flex; flex-direction:column; gap:2px; }
.integ-status-list dt{
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:rgba(42,19,69,0.42);
}
.integ-status-list dd{ margin:0; font-size:13px; color:var(--ink); }
.integ-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.integ-block-copy{
  margin:0 0 14px; font-size:13px; line-height:1.45; color:rgba(42,19,69,0.58);
}
.integ-callout--muted{
  background:rgba(42,19,69,0.04); color:rgba(42,19,69,0.72); border-color:rgba(42,19,69,0.12);
}
.integ-check{
  display:flex; align-items:flex-start; gap:10px; margin:12px 0 14px;
  font-size:13px; line-height:1.4; color:var(--ink); cursor:pointer;
}
.integ-check input{ margin-top:2px; }
.integ-probe-result{
  display:flex; flex-direction:column; gap:4px;
  padding:12px 14px; border-radius:10px; margin:4px 0 14px; font-size:13px;
}
.integ-probe-result.is-ok{ background:rgba(4,165,142,0.08); color:var(--brand-dark); border:1px solid rgba(4,165,142,0.22); }
.integ-probe-result.is-err{ background:rgba(220,38,38,0.07); color:#b91c1c; border:1px solid rgba(220,38,38,0.18); }
.integ-probe-result code{ font-size:12px; opacity:.85; }
.integ-group{ display:flex; flex-direction:column; gap:12px; }
.integ-group__title{
  margin:8px 0 0; font-size:12px; font-weight:800; letter-spacing:.06em;
  text-transform:uppercase; color:rgba(42,19,69,0.45);
}
.integ-audit-list{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.integ-audit-item{
  display:grid; grid-template-columns:minmax(8rem,auto) minmax(6rem,1fr) minmax(7rem,1.4fr) minmax(5rem,auto);
  gap:8px 14px; align-items:start; font-size:13px; color:var(--ink);
  padding:10px 12px; border-radius:10px; background:rgba(42,19,69,0.04);
}
@media (max-width: 720px){
  .integ-audit-item{ grid-template-columns:1fr 1fr; }
}
.integ-audit-item strong{ font-size:13px; }
.integ-prompt-out{
  white-space:pre-wrap; font-size:13px; line-height:1.5; color:var(--ink);
  background:rgba(42,19,69,0.04); border-radius:10px; padding:12px 14px; max-height:280px; overflow:auto;
}
.da-field__preview{
  display:flex; align-items:center; gap:12px; margin:0 0 8px;
  padding:8px 10px; border:1px solid rgba(42,19,69,0.10); border-radius:10px; background:#fff;
}
.da-field__preview img{ width:64px; height:40px; object-fit:cover; border-radius:6px; background:rgba(42,19,69,0.06); }
.da-field__url{ font-size:11px; word-break:break-all; color:rgba(42,19,69,0.55); }
.da-field__actions{ display:flex; flex-wrap:wrap; gap:8px; }
.da-modal{ max-width:720px; }
.da-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:10px; }
.da-card{
  text-align:left; border:1px solid rgba(42,19,69,0.12); background:#fff; border-radius:12px;
  padding:10px; cursor:pointer; display:flex; flex-direction:column; gap:4px;
}
.da-card:hover{ border-color:var(--brand); }
.da-card strong{ font-size:13px; color:var(--ink); }
.da-card span{ font-size:11px; color:rgba(42,19,69,0.55); }
.da-card__thumb{ display:block; height:72px; border-radius:8px; overflow:hidden; background:rgba(42,19,69,0.05); }
.da-card__thumb img{ width:100%; height:100%; object-fit:cover; }
.integ-cap-list{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }
.integ-cap-list li{ font-size:13px; color:var(--ink); padding:8px 10px; border-radius:8px; background:rgba(42,19,69,0.04); }
@media(max-width:860px){
  .integ-detail-grid{ grid-template-columns:1fr; }
}

.modal--assist{ max-width:680px; }
.tpl-ai-providers{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0 0 14px; }
.tpl-ai-provider{
  text-align:left; border:1px solid rgba(42,19,69,0.12); background:#fff;
  border-radius:12px; padding:12px 14px; cursor:pointer; display:flex; flex-direction:column; gap:4px;
}
.tpl-ai-provider strong{ font-size:13px; color:var(--ink); }
.tpl-ai-provider span{ font-size:12px; color:rgba(42,19,69,0.55); line-height:1.35; }
.tpl-ai-provider.is-on{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(4,165,142,0.16); }
.tpl-ai-provider.is-off{ opacity:.55; cursor:not-allowed; background:rgba(42,19,69,0.03); }
.tpl-ai-preview{
  margin-top:14px; padding:14px 16px; border-radius:12px;
  background:rgba(4,165,142,0.06); border:1px solid rgba(4,165,142,0.18);
}
.tpl-ai-preview h4{ margin:0 0 10px; font-size:13px; font-weight:800; }
.tpl-ai-preview dl{ margin:0; display:flex; flex-direction:column; gap:8px; }
.tpl-ai-preview dt{ font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:rgba(42,19,69,0.45); }
.tpl-ai-preview dd{ margin:2px 0 0; font-size:13px; color:var(--ink); }
@media(max-width:640px){
  .tpl-ai-providers{ grid-template-columns:1fr; }
}

/* ── RESPONSIVE ──────────────────────────────────────────────────────── */
@media(max-width:640px){
  .form-grid--2{ grid-template-columns:1fr; }
  .lv-search{ max-width:100%; }
  .tbl th,.tbl td{ padding:9px 10px; }
  .lv-filter-panel{ flex-direction:column; }
  .lv-filter-panel__field{ min-width:100%; }
  .fp-row{ grid-template-columns:1fr; }
  .modal--contact{ max-width:100%; width:100%; }
  .modal--contact .modal__header{ padding:18px 20px 0; }
  .modal--contact .modal__body{ padding:12px 20px 6px; }
  .modal--contact .modal__footer{ padding:10px 20px 18px; }
  .modal--contact .form-grid{ gap:14px; }
  .modal--contact .form-group--toggle > label:first-child{ white-space:normal; }
  .modal--contact .phone-combo__cc{ max-width:52%; }
}
