/* ============================================================
   EZ CONNECT CRM — STYLE SYSTEM v3.0
   ============================================================ */

/* ── 1. VARIABLES ─────────────────────────────────────────── */
:root {
  --blue:#5453ED; --blue-dark:#2D3476; --blue-mid:#3F3EC0; --blue-light:#EEEEFF;
  --orange:#F25922; --teal:#00B2A9; --whatsapp:#25D366;
  --green:#10B981; --green-soft:#ECFDF5; --red:#EF4444; --red-soft:#FEF2F2;
  --amber:#F59E0B; --amber-soft:#FFFBEB; --orange-soft:#FFF0EA; --teal-soft:#E0F7F6;
  --fn:'Raleway',sans-serif; --fb:'DM Sans','Open Sans',sans-serif;
  --bg:#EEF1FA; --surface:#FFFFFF; --surface2:#F5F7FE; --surface3:#F0F3FD;
  --text-dark:#0F172A; --text-body:#475569; --text-muted:#94A3B8;
  --border:#E2E8F4; --border2:#C8D2EE;
  --card-shadow:0 2px 8px rgba(84,83,237,.07);
  --card-shadow-md:0 8px 28px rgba(84,83,237,.11);
  --radius-xl:24px; --radius-lg:16px; --radius-md:12px; --radius-sm:8px;
  --sidebar-w:260px; --topbar-h:60px; --bottom-nav-h:70px;
  --z-navigation:500;
  --z-sidebar:3000;
  --z-modal:12000;
  --z-modal-critical:13000;
  --z-upload-status:14000;
}
[data-theme="dark"] {
  --bg:#06080F; --surface:#0F1424; --surface2:#161B2E; --surface3:#1C2438;
  --text-dark:#F1F5FF; --text-body:#8B9CC4; --text-muted:#3D4A6A;
  --border:#1C2540; --border2:#26325A;
  --blue-light:rgba(84,83,237,.15); --orange-soft:rgba(242,89,34,.12);
  --teal-soft:rgba(0,178,169,.12); --green-soft:rgba(16,185,129,.12);
  --amber-soft:rgba(245,158,11,.12); --red-soft:rgba(239,68,68,.12);
  --card-shadow:0 2px 8px rgba(0,0,0,.45); --card-shadow-md:0 8px 28px rgba(0,0,0,.55);
}

/* ── 2. RESET ─────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
* { transition:background .25s ease, color .25s ease, border-color .25s ease; }
body { 
    font-family:var(--fb); font-size:15px; line-height:1.55; background:var(--bg); color:var(--text-body); 
    -webkit-font-smoothing:antialiased; 
    -webkit-tap-highlight-color:transparent; /* PWA: Quita brillo azul */
    overscroll-behavior-y:none; /* PWA: Bloquea pull-to-refresh */
    height: 100dvh; /* Dynamic Viewport para móviles */
}

/* --- CLASES DE PURGA (REEMPLAZO DE STYLE INLINE) --- */
.screen { display: none; padding: 25px; flex: 1; overflow-y: auto; }
.screen.active { display: block; }
.screen-pipeline.active { display: flex; flex-direction: column; }
.search-mobile-wrapper { flex: 1; max-width: 300px; }
.kpi-card-inner { border-top: 3px solid; padding: 16px; }
.alert-error-pwa { background: rgba(239,68,68,.08); border: 1px solid rgba(239,68,68,.2); border-radius: 12px; padding: 15px; }
.icon-alert-box { background: var(--orange); border-radius: 8px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }

/* --- PWA: SAFE PADDING PARA VISTAS --- */
.screen-content { padding: 20px 25px; padding-bottom: calc(25px + env(safe-area-inset-bottom)); }

/* --- UTILIDADES DE DISEÑO (REEMPLAZO DE INLINE) --- */
.dash-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; margin-bottom: 30px; }

/* Tarjetas de Métricas */
.stat-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    box-shadow: var(--card-shadow);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.stat-card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-md); }

.stat-icon {
    width: 56px; height: 56px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.stat-icon span { font-size: 28px; }

.stat-info { display: flex; flex-direction: column; gap: 4px; }
.stat-label { font-size: 13px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.stat-value { font-size: 24px; font-weight: 900; color: var(--text-dark); line-height: 1; }

/* Variaciones de Color */
.stat-blue   { background: rgba(84,83,237, 0.1); color: var(--blue); }
.stat-orange { background: rgba(242,89,34, 0.1); color: var(--orange); }
.stat-teal   { background: rgba(0,178,169, 0.1); color: var(--teal); }
.stat-amber  { background: rgba(245,158,11, 0.1); color: var(--amber); }

/* Sección de Agenda hoy */
.dash-section-title { font-size: 1.1rem; font-weight: 800; margin-bottom: 15px; color: var(--blue-dark); display: flex; align-items: center; gap: 8px; }
.kanban-col-header { padding: 12px 18px; border-bottom: 2px solid; display: flex; justify-content: space-between; align-items: center; }
.modal-body-pwa { padding: 25px; overflow-y: auto; max-height: 75vh; }
.modal-footer-pwa { padding: 20px 25px; border-top: 1px solid var(--border); display: flex; gap: 12px; }

.w-100 { width: 100% !important; }
.h-55  { height: 55px !important; }
.fw-700 { font-weight: 700 !important; }
.font-sm { font-size: 13px !important; }
.m-0 { margin: 0 !important; }
.mt-2 { margin-top: 10px !important; }
.mb-3 { margin-bottom: 15px !important; }
.mb-4 { margin-bottom: 20px !important; }
h1,h2,h3,h4,h5,h6 { font-family:var(--fn); color:var(--text-dark); }
a { text-decoration:none; }
@font-face { font-display:swap; font-family:'Raleway'; font-weight:400; src:url('../fonts/raleway-v37-latin-regular.woff2') format('woff2'); }
@font-face { font-display:swap; font-family:'Raleway'; font-weight:600; src:url('../fonts/raleway-v37-latin-600.woff2') format('woff2'); }
@font-face { font-display:swap; font-family:'Raleway'; font-weight:800; src:url('../fonts/raleway-v37-latin-800.woff2') format('woff2'); }
.material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; vertical-align:middle; line-height:1; font-size:1.4rem; }

/* ── 3. AURORA BACKGROUND ─────────────────────────────────── */
#aurora-bg { position:fixed; inset:0; z-index:0; pointer-events:none; }

/* ── 4. UTILITIES ─────────────────────────────────────────── */
.hidden,.hidden-by-default { display:none !important; }
.d-block { display:block !important; } /* FIX: Blindaje de visibilidad forzada */
.d-flex { display:flex; }
.d-grid { display:grid; }
.d-inline-block { display:inline-block; }
.d-inline-flex { display:inline-flex; align-items:center; justify-content:center; }
.flex-column { flex-direction:column; }
.flex-between { display:flex; justify-content:space-between; align-items:center; }
.flex-start { display:flex; justify-content:space-between; align-items:flex-start; }
.flex-wrap { flex-wrap:wrap; }
.align-center { align-items:center; }
.justify-center { justify-content:center; }
.justify-between { justify-content:space-between; }
.justify-end { justify-content:flex-end; }
.flex-1 { flex:1; } .flex-2 { flex:2; } .flex-3 { flex:3; } .flex-4 { flex:4; }
.gap-1 { gap:5px; } .gap-2 { gap:10px; } .gap-3 { gap:15px; } .gap-4 { gap:20px; }
.m-0{margin:0;} .mt-1{margin-top:5px;} .mt-2{margin-top:10px;} .mt-3{margin-top:15px;} .mt-4{margin-top:20px;}
.mb-2{margin-bottom:10px;} .mb-3{margin-bottom:15px;} .mb-4{margin-bottom:20px;}
.mr-2{margin-right:10px;} .p-0{padding:0;} .p-3{padding:15px;} .p-4{padding:25px;}
.pb-1{padding-bottom:5px;} .pt-2{padding-top:10px;} .pt-3{padding-top:15px;}
.py-4{padding:20px 0;} .border-bottom{border-bottom:1px solid var(--border);}
.border-top{border-top:1px solid var(--border);}
.text-center{text-align:center;} .text-right{text-align:right;}
.text-dark{color:var(--text-dark);} .text-muted{color:var(--text-muted);}
.text-body{color:var(--text-body);} .text-blue{color:var(--blue);}
.text-teal{color:var(--teal);} .text-orange{color:var(--orange);}
.text-green{color:var(--green);} .text-red{color:var(--red);}
.text-purple{color:#8B5CF6;} .text-gold{color:#F59E0B;}
.text-uppercase{text-transform:uppercase;} .text-lowercase{text-transform:lowercase;}
.text-sm{font-size:.85rem;} .font-xs{font-size:10px;}
.fw-700{font-weight:700;} .fw-800{font-weight:800;}
.w-100{width:100%;} .relative{position:relative;} .absolute{position:absolute;}
.position-relative{position:relative;} .cursor-pointer{cursor:pointer;}
.border-radius-8{border-radius:8px;} .bg-teal{background:var(--teal) !important;}
.bg-orange{background:var(--orange) !important;} .bg-blue{background:var(--blue) !important;} .bg-blue-dark{background:var(--blue-dark) !important;} .bg-light{background:var(--surface2);}
.border-none{border:none !important;} .border-orange{border-color:var(--orange) !important;}
.scroll-y{overflow-y:auto;}
.grid-1-1{grid-template-columns:1fr 1fr;} .grid-2-1{grid-template-columns:2fr 1fr;}
.grid-3-1{grid-template-columns:3fr 1fr;} .grid-1-1-1{grid-template-columns:1fr 1fr 1fr;}
.grid-2-2-1{grid-template-columns:2fr 2fr 1fr;}

/* ── 5. BUTTONS ───────────────────────────────────────────── */
.btn { border:none; padding:8px 14px; border-radius:var(--radius-sm); cursor:pointer; font-family:var(--fb); font-weight:700; font-size:.87rem; display:inline-flex; align-items:center; justify-content:center; gap:6px; transition:all .18s ease; }
.btn-primary { background:var(--orange); color:#fff; border:none; padding:10px 20px; border-radius:var(--radius-md); font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:8px; font-family:var(--fb); font-size:.9rem; box-shadow:0 4px 14px rgba(242,89,34,.25); transition:all .18s ease; }
.btn-primary:hover { filter:brightness(.92); transform:translateY(-1px); }
.btn-primary:active { transform:scale(.97); box-shadow:none; }
.btn-secondary { background:var(--surface2); color:var(--text-body); border:1.5px solid var(--border); padding:10px 20px; border-radius:var(--radius-md); font-weight:700; cursor:pointer; font-family:var(--fb); font-size:.9rem; transition:all .18s ease; display:inline-flex; align-items:center; gap:8px; }
.btn-secondary:hover { background:var(--border); color:var(--text-dark); }
.btn-primary-sm { background:var(--blue); color:#fff; border:none; padding:7px 14px; border-radius:var(--radius-sm); font-weight:700; cursor:pointer; font-family:var(--fb); font-size:.82rem; display:inline-flex; align-items:center; gap:5px; transition:all .18s ease; }
.btn-teal { background:var(--teal) !important; color:#fff !important; }
.btn-teal:hover { box-shadow:0 4px 10px rgba(0,178,169,.25); }
.btn-whatsapp { background:var(--whatsapp); color:#fff; flex:1; }
.icon-btn { background:transparent; border:none; color:var(--text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; border-radius:50%; width:38px; height:38px; transition:all .18s ease; }
.icon-btn:hover { background:var(--surface2); color:var(--blue); }
.btn-social-remove { color:var(--orange); width:35px; height:35px; }
.btn-add-sm { padding:8px 12px !important; font-size:13px !important; white-space:nowrap; }
.btn-teal-round { background:var(--teal); color:#fff; border:none; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.btn-action-table { background:var(--surface2); border:1.5px solid var(--border); color:var(--text-body); border-radius:var(--radius-sm); padding:5px 9px; font-size:12px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:4px; transition:.15s; font-family:var(--fb); }
.btn-action-table:hover { background:var(--blue-light); color:var(--blue); border-color:var(--blue); }
.btn-action-table .material-symbols-outlined { font-size:14px; }
.form-actions-right { display:flex; justify-content:flex-end; align-items:center; gap:10px; }

/* ── 6. FORMS ─────────────────────────────────────────────── */
.form-group { text-align:left; margin-bottom:1rem; }
.form-group label { display:block; font-weight:700; margin-bottom:6px; font-size:.75rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.8px; }
.form-control { width:100%; padding:0 14px; height:46px; line-height:46px; border:1.5px solid var(--border); border-radius:var(--radius-md); font-family:var(--fb); font-size:.95rem; background:var(--bg); color:var(--text-dark); box-sizing:border-box; transition:border-color .2s, box-shadow .2s; }
textarea.form-control { height:auto; min-height:80px; padding:12px 14px; line-height:1.5; }
select.form-control { cursor:pointer; }
.form-control:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(84,83,237,.1); }
.form-row { display:flex; gap:10px; flex-wrap:wrap; }
.form-row > * { flex:1; min-width:0; }
.input-group { display:flex; align-items:stretch; width:100%; }
.input-group-text { background:var(--surface); border:1.5px solid var(--border); border-right:none; padding:0 12px; border-radius:var(--radius-md) 0 0 var(--radius-md); color:var(--text-muted); font-size:13px; font-weight:600; display:flex; align-items:center; white-space:nowrap; }
.input-group .form-control { border-radius:0 var(--radius-md) var(--radius-md) 0; flex:1; min-width:0; }
.lada-input { max-width:70px !important; min-width:70px !important; padding:0 5px !important; text-align:center; }
.lada-select { width:110px; padding:0 5px; height:46px; }
.input-qty { max-width:60px !important; min-width:60px !important; padding:0 5px !important; text-align:center; }
.input-domain-group { display:flex; align-items:stretch; width:100%; }
.input-domain-group .form-control { border-top-right-radius:0; border-bottom-right-radius:0; flex:1; }
.domain-addon { background:var(--surface2); border:1.5px solid var(--border); border-left:none; padding:0 14px; display:flex; align-items:center; color:var(--text-muted); font-size:.85rem; font-weight:700; border-radius:0 var(--radius-md) var(--radius-md) 0; white-space:nowrap; }
.password-wrapper { position:relative; display:flex; align-items:center; }
.password-wrapper .form-control { padding-right:45px; }
.toggle-password { position:absolute; right:14px; cursor:pointer; color:var(--text-muted); font-size:20px !important; user-select:none; transition:color .2s; }
.toggle-password:hover { color:var(--blue); }
.input-group-url { display:flex; align-items:center; background:var(--bg); border-radius:var(--radius-md); border:1.5px solid var(--border); overflow:hidden; }
.input-group-url span { padding:0 10px; color:var(--text-muted); font-size:.85rem; border-right:1px solid var(--border); }
.input-group-url input { border:none; flex:1; }
.custom-checkbox { width:18px; height:18px; cursor:pointer; accent-color:var(--teal); }
.section-title { font-size:.9rem; color:var(--blue); margin-top:10px; border-bottom:1px solid var(--border); padding-bottom:5px; }
.section-label-premium { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--blue-dark); font-weight:800; margin:22px 0 10px; display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--border); padding-bottom:5px; }

/* ── 7. LOGIN ─────────────────────────────────────────────── */
.login-layout { display:flex; align-items:center; justify-content:center; min-height:100vh; position:relative; overflow:hidden; background:linear-gradient(-45deg,var(--blue-dark),#1e1b4b,#0F172A,var(--blue-dark)); background-size:400% 400%; animation:gradientBG 15s ease infinite; }
@keyframes gradientBG { 0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;} }
.login-layout::before { content:''; position:absolute; inset:0; background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%235453ED' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2V6h4V4H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); z-index:1; }
.login-card { background:var(--surface); padding:3.5rem 3rem; border-radius:var(--radius-xl); box-shadow:0 30px 60px rgba(0,0,0,.25); width:90%; max-width:420px; border:1px solid var(--border); text-align:center; position:relative; z-index:10; animation:slideUpBottom .5s cubic-bezier(.16,1,.3,1); }
.login-card .theme-toggle { position:absolute; top:20px; right:20px; }
.login-card img { height:60px; margin: 0 auto 2rem; display: block; }
.login-card h2 { font-weight:800; font-size:1.8rem; margin-bottom:.4rem; }
.subtitle { color:var(--text-muted); font-size:.9rem; margin-bottom:1.5rem; line-height:1.5; }

/* FIX UX LOGIN: Distribución y Centrado Vertical/Horizontal */
#loginForm { margin-top: 1.5rem; }
#loginForm label { display: none !important; } /* Oculta AGENTE DE VENTAS y ACCESO SEGURO */
#loginForm .form-group { margin-bottom: 1.8rem; }
#loginForm .form-control { text-align: center; } /* Centra el texto y los placeholders */
#loginForm .input-domain-group .form-control { text-align: right; padding-right: 8px; } /* Ajuste fino si usa el dominio adjunto @ezconnect.me */

.login-btn-submit { width:100%; background:var(--blue); color:#fff; border:none; padding:15px; border-radius:var(--radius-md); font-weight:800; cursor:pointer; font-size:1rem; font-family:var(--fb); display:flex; justify-content:center; align-items:center; gap:8px; box-shadow:0 10px 20px rgba(84,83,237,.3); transition:all .2s ease; margin-top: 1rem; }
.login-btn-submit:hover { transform:translateY(-2px); box-shadow:0 15px 30px rgba(84,83,237,.4); }
.forgot-link { font-size:.85rem; color:var(--blue); font-weight:600; display:inline-block; margin-top:1.5rem; }
.alert-box { padding:12px; border-radius:var(--radius-sm); font-size:.9rem; font-weight:600; display:none; text-align:center; border:1px solid transparent; }

/* ── 8. DASHBOARD LAYOUT ──────────────────────────────────── */
.dashboard-layout { display:flex; height:100vh; overflow:hidden; background:var(--bg); position:relative; }

/* Sidebar */
.sidebar { width:var(--sidebar-w); background:var(--blue-dark); color:#fff; display:flex; flex-direction:column; z-index:100; flex-shrink:0; box-shadow:4px 0 20px rgba(0,0,0,.15); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.sidebar-header { padding:22px 20px; border-bottom:1px solid rgba(255,255,255,.1); text-align:center; }
.sidebar-logo { max-width:180px; }
.sidebar-nav { flex:1; padding:14px 0; overflow-y:auto; }
.sidebar-nav ul { list-style:none; padding:0; margin:0; }
.sidebar-nav li a { display:flex; align-items:center; gap:14px; padding:12px 22px; color:rgba(255,255,255,.6); font-weight:600; font-family:var(--fn); font-size:.87rem; transition:all .25s ease; border-left:3px solid transparent; }
.sidebar-nav li a:hover, .sidebar-nav li.active a { background:rgba(255,255,255,.07); color:#fff; border-left-color:var(--teal); }
.sidebar-nav li a .material-symbols-outlined { font-size:20px; flex-shrink:0; }
.sidebar-footer { padding:16px 20px; border-top:1px solid rgba(255,255,255,.1); }
.logout-btn { display:flex; align-items:center; gap:10px; color:#f87171; text-decoration:none; font-weight:700; padding:10px; border-radius:var(--radius-sm); transition:all .2s; }
.logout-btn:hover { color:#ef4444; background:rgba(239,68,68,.1); }
.main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
    z-index: auto;
}

/* ── LOGOS DINÁMICOS & TOPBAR (SMART) ─────────────────────── */
.topbar-left { display: flex !important; align-items: center !important; gap: 12px; height: 100%; }
.topbar-actions { display: flex !important; align-items: center !important; gap: 8px; height: 100%; }
/* Estilos para los nuevos iconos de acción */
.btn-add-circle { color: var(--teal) !important; }
.btn-add-circle:hover { background: var(--teal-soft) !important; }

/* ── ESTILO DE BOTONES ICONOS ─────────────────────────────── */
.icon-btn { 
  width: 38px; height: 38px; 
  border-radius: 50%; 
  border: 1px solid var(--border); 
  background: var(--surface2); 
  display: flex; align-items: center; justify-content: center; 
  cursor: pointer; 
  color: var(--text-2); 
  transition: all .18s; 
}
.icon-btn:active { transform: scale(.92); }
.menu-btn { border: none; background: transparent; padding: 0; width: auto; }
.menu-btn .material-symbols-outlined { font-size: 26px; color: var(--text-1); }

/* ── ESTRUCTURA BÚNKER & TOPBAR PWA DESKTOP ───────────────────────────────────────── */
.app-shell { display: flex; flex-direction: row; width: 100vw; height: 100vh; overflow: hidden; background: var(--bg); }

/* Comportamiento Sidebar Desktop: Visible por defecto, colapsa con .active */
.sidebar { position: relative; transition: width 0.3s ease, min-width 0.3s ease, padding 0.3s ease, opacity 0.3s ease; overflow: visible; z-index: 1000; }
.sidebar.active { width: 0 !important; min-width: 0 !important; padding: 0 !important; opacity: 0; border: none; overflow: hidden; }

/* Botón Flotante para Colapsar Sidebar (Inmune a recortes de overflow) */
.btn-toggle-desktop { position: absolute; left: -16px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; background: var(--blue); color: var(--surface); border: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 1001; box-shadow: 0 4px 12px rgba(84,83,237,0.3); transition: all 0.3s ease; }
.btn-toggle-desktop:hover { transform: translateY(-50%) scale(1.1); }
.btn-toggle-desktop.collapsed-mode { transform: translateY(-50%) rotate(180deg); left: 16px; }

/* Main Content a ancho completo */
.main-content { flex: 1; display: flex; flex-direction: column; height: 100vh; width: 100%; overflow-y: auto; overflow-x: hidden; position: relative; padding-top: 0; padding-bottom: 0; transition: width 0.3s ease; }

/* FIX: Aniquilación Nuclear de Paneles Extraños (Derechos e Izquierdos del Pipeline) */
.app-shell > aside:not(.sidebar), 
.right-sidebar, 
#panelDetalles, 
.panel-derecho,
#vista-pipeline aside, 
#vista-pipeline .sidebar, 
.kanban-sidebar, 
.pipeline-sidebar { 
    display: none !important; 
    width: 0 !important;
    height: 0 !important;
    position: absolute !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: -1 !important;
}

/* Expansión Total y Control Seguro del Pipeline */
#vista-pipeline { 
    width: 100% !important; 
}

#vista-pipeline.active {
    display: flex !important;
    flex-direction: column !important;
}

.kanban-board, 
.kanban-wrapper, 
.kanban-container,
.board-container { 
    flex: 1 !important; 
    width: 100% !important; 
    max-width: 100% !important; 
    margin-left: 0 !important; 
}
.topbar {
    position: sticky !important;
    top: 0 !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: var(--topbar-h) !important;
    background: var(--surface) !important;
    border-bottom: 1px solid var(--border);
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: 0 28px !important;
    flex-shrink: 0;
    z-index: var(--z-navigation) !important;
    transition: transform 0.3s ease-in-out !important;
}
.fb-search-desktop { flex:1; max-width:380px; margin:0 20px; }
.search-pill { display:flex; align-items:center; gap:8px; background:var(--surface2); border-radius:var(--radius-xl); border:1.5px solid var(--border); padding:7px 16px; box-shadow:var(--card-shadow); }
.search-pill input { border:none; outline:none; background:transparent; font-family:var(--fb); color:var(--text-body); font-size:14px; flex:1; }
.search-pill select { border:none; background:transparent; outline:none; font-family:var(--fb); color:var(--text-muted); font-size:13px; cursor:pointer; }
.search-pill .material-symbols-outlined { font-size:18px; color:var(--text-muted); }
.fb-header-right { display:flex; align-items:center; gap:8px; }
.icon-btn-fb { background:var(--surface2); border:1.5px solid var(--border); color:var(--text-body); width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .18s ease; }
.icon-btn-fb .material-symbols-outlined { font-size:20px; }
.icon-btn-fb:hover { background:var(--blue-light); color:var(--blue); border-color:var(--blue); }
.icon-btn-fb:active { transform:scale(.92); }
.mobile-logo { height:24px; width:auto; }
.mobile-logo-wrapper { display:flex; align-items:center; }
/* Lógica Global: logo-light-mode (Oscuro) se ve en tema claro, logo-dark-mode (Blanco) en tema oscuro */
.logo-light-mode { display: block !important; }
.logo-dark-mode  { display: none !important; }

[data-theme="dark"] .logo-light-mode { display: none !important; }
[data-theme="dark"] .logo-dark-mode  { display: block !important; }

.logo-light-mode, .logo-dark-mode { height: 32px !important; width: auto; object-fit: contain; }

/* Logo solo visible en tablet/móvil hacia abajo */
.mobile-logo-wrapper { display: none; height: 100%; align-items: center; }

@media (max-width: 820px) {
    .mobile-logo-wrapper { display: flex; }
}

/* ── 10. BOTTOM NAV PWA ───────────────────────────────────────── */
.bottom-nav { display:none; }
body.scroll-down .topbar     { transform:translateY(-110%) !important; }
body.scroll-down .bottom-nav { transform:translateY(110%) !important; }

/* ── 11. ANIMATIONS ───────────────────────────────────────── */
@keyframes fadeUp { from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);} }
@keyframes slideUpBottom { from{opacity:0;transform:translateY(100%);}to{opacity:1;transform:translateY(0);} }
@keyframes slideDown { from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);} }

/* ── 12. DASHBOARD ────────────────────────────────────────── */
.dashboard-overview { animation:fadeUp .3s ease; padding-bottom:30px; }
.dashboard-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; }
.dash-greeting-bar { display:none; align-items:center; justify-content:space-between; padding:16px 20px 12px; background:var(--surface); border-bottom:1px solid var(--border); animation:fadeUp .3s ease; }
.dash-greeting-bar .greeting-text small { display:block; font-size:11px; color:var(--text-muted); font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.dash-greeting-bar .greeting-text strong { font-family:var(--fn); font-size:18px; font-weight:800; color:var(--text-dark); letter-spacing:-.3px; }
.dash-greeting-avatar { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--teal)); display:flex; align-items:center; justify-content:center; font-family:var(--fn); font-weight:800; font-size:13px; color:#fff; flex-shrink:0; cursor:pointer; border:2px solid rgba(255,255,255,.25); }
.dash-widget { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:22px 24px; box-shadow:var(--card-shadow); cursor:pointer; position:relative; overflow:hidden; border-left:3px solid var(--blue); transition:transform .2s ease, box-shadow .2s ease; }
#widgetTareas    { border-left-color:var(--orange); }
#widgetFinanzas  { border-left-color:var(--teal); }
#widgetEquipo    { border-left-color:var(--blue-dark); }
#widgetRendimiento { border-left-color:#8B5CF6; }
.dash-widget:hover  { transform:translateY(-3px); box-shadow:var(--card-shadow-md); }
.dash-widget:active { transform:scale(.98); }
.dash-widget h3 { margin:0 0 14px; font-size:13px; font-weight:700; font-family:var(--fn); color:var(--text-dark); display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--border); padding-bottom:12px; }
.dash-number { font-size:30px; font-weight:900; line-height:1; display:block; letter-spacing:-.5px; font-family:var(--fn); }

/* KPI mobile cards 2×2 */
.kpi-mobile-grid { display:none; grid-template-columns:1fr 1fr; gap:10px; padding:14px 16px 0; }
.kpi-mobile-card { background:var(--surface); border-radius:var(--radius-md); border:1px solid var(--border); padding:14px; position:relative; overflow:hidden; border-left:3px solid var(--blue); box-shadow:var(--card-shadow); }
.kpi-mobile-card .label { font-size:10px; font-weight:800; color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.kpi-mobile-card .value { font-family:var(--fn); font-size:20px; font-weight:900; color:var(--text-dark); line-height:1; }
.kpi-mobile-card .trend { font-size:11px; font-weight:700; margin-top:5px; display:flex; align-items:center; gap:3px; }
.kpi-mobile-card .trend.up   { color:var(--green); }
.kpi-mobile-card .trend.flat { color:var(--amber); }
.kpi-mobile-card .trend.down { color:var(--red); }
.kpi-mobile-card .icon-bg { position:absolute; bottom:-8px; right:-8px; width:44px; height:44px; border-radius:50%; opacity:.12; }

/* Activity */
.activity-list { display:flex; flex-direction:column; }
.activity-item { display:flex; align-items:flex-start; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); }
.activity-item:last-child { border-bottom:none; }
.activity-dot { width:34px; height:34px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.activity-dot .material-symbols-outlined { font-size:16px; }
.activity-body { flex:1; min-width:0; }
.activity-title { font-size:13.5px; font-weight:700; color:var(--text-dark); margin-bottom:2px; }
.activity-sub   { font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.activity-time  { font-size:11px; color:var(--text-muted); font-weight:600; white-space:nowrap; flex-shrink:0; }
.progress-bar-container { width:100%; }
.progress-bar-bg   { width:100%; height:7px; background:var(--border); border-radius:4px; overflow:hidden; }
.progress-bar-fill { height:100%; border-radius:4px; transition:width 1s ease-in-out; }
.leaderboard-list { list-style:none; padding:0; margin:0; }
.leaderboard-item { display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--border); }
.leaderboard-item:last-child { border-bottom:none; padding-bottom:0; }

/* ── 13. PIPELINE / KANBAN (Estilo Unificado Productos) ──── */
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    padding: 30px 40px 10px;
}

.kpi-card {
    background: var(--surface);
    border-radius: var(--radius-lg);
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: var(--card-shadow);
    border: 1px solid var(--border);
    border-left: 4px solid var(--blue);
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    user-select: none;
}

.kpi-card[data-col="col-contactado"]  { border-left-color: var(--teal); }
.kpi-card[data-col="col-demo"]        { border-left-color: var(--blue); }
.kpi-card[data-col="col-negociacion"] { border-left-color: var(--orange); }
.kpi-card[data-col="col-ganado"]      { border-left-color: var(--green); }

.kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--card-shadow-md);
}

.kpi-icon {
    background: var(--blue-light);
    color: var(--blue);
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kpi-icon .material-symbols-outlined {
    font-size: 22px;
}

.kpi-icon-teal   { background: var(--teal-soft);   color: var(--teal); }
.kpi-icon-orange { background: var(--orange-soft); color: var(--orange); }
.kpi-icon-green  { background: var(--green-soft);  color: var(--green); }
.kpi-icon-blue   { background: var(--blue-light);  color: var(--blue); }

.kpi-data h3 {
    margin: 0;
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-family: var(--fb);
}

.kpi-data p {
    margin: 4px 0 0;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--text-dark);
    line-height: 1;
    font-family: var(--fn);
}

/* --- Tablero Kanban --- */
.kanban-board {
    display: flex;
    gap: 16px;
    padding: 16px 40px 40px;
    overflow-x: auto;
    flex: 1;
    align-items: flex-start;
    scroll-behavior: smooth;
}

.kanban-column {
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    width: 300px;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 280px);
    box-shadow: var(--card-shadow);
    transition: background 0.2s;
}

.column-header {
    padding: 14px 18px;
    border-bottom: 2px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--surface2);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.column-header h2 {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 900;
    color: var(--text-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: var(--fn);
}

.badge {
    background: var(--border);
    color: var(--text-body);
    padding: 2px 10px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
}

.badge.bg-teal,
.badge-teal,
.bg-teal-badge {
    background: var(--teal) !important;
    color: #fff;
}

.badge.bg-danger {
    background: var(--red-soft) !important;
    color: var(--red);
}

.column-body {
    padding: 14px;
    flex: 1;
    overflow-y: auto;
    min-height: 120px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* --- Tarjeta de Lead (estilo tarjeta elevada) --- */
.lead-card {
    background: var(--surface);
    border-radius: var(--radius-md);
    padding: 16px;
    box-shadow: var(--card-shadow);
    cursor: grab;
    border: 1px solid var(--border);
    border-left: 4px solid var(--blue);
    transition: transform 0.2s, box-shadow 0.2s;
}

.lead-card:active {
    cursor: grabbing;
    opacity: 0.85;
    transform: scale(0.985);
}

.lead-card:hover {
    box-shadow: var(--card-shadow-md);
    transform: translateY(-2px);
}

.lead-card h4 {
    margin: 0 0 4px;
    color: var(--text-dark);
    font-size: 0.95rem;
    font-weight: 800;
    font-family: var(--fn);
}

.lead-card p {
    margin: 0 0 6px;
    color: var(--text-muted);
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    gap: 4px;
}

.tag-origen {
    display: inline-block;
    font-size: 0.68rem;
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--border);
    color: var(--text-body);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.tag-origen.facebook     { background: rgba(84,83,237,0.12);  color: var(--blue); }
.tag-origen.recomendado  { background: var(--green-soft);     color: var(--green); }
.tag-origen.perfil_ez    { background: var(--teal-soft);      color: var(--teal); }
.tag-origen.cambaceo     { background: var(--orange-soft);    color: var(--orange); }

.icon-action-group {
    display: flex;
    gap: 4px;
}

.lead-card .icon-btn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--surface2);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    transition: background 0.2s, color 0.2s;
}

.lead-card .icon-btn:hover {
    background: var(--blue-light);
    color: var(--blue);
    border-color: var(--blue);
}

.mobile-status-changer {
    display: none;
}

@media (max-width: 1024px) {
    .mobile-status-changer {
        display: block;
    }
}

/* ── 14. AGENDA / CALENDARIO ──────────────────────────────── */
.agenda-view-container { display:none; padding:24px 40px; flex:1; overflow-y:auto; }
.agenda-card { background:var(--surface); border-radius:var(--radius-lg); padding:28px; border:1px solid var(--border); box-shadow:var(--card-shadow); }
.agenda-header { margin:0 0 8px; color:var(--text-dark); display:flex; align-items:center; gap:10px; font-size:1.3rem; }
.agenda-list-wrapper { display:flex; flex-direction:column; gap:12px; }
.agenda-item { display:flex; gap:16px; align-items:center; padding:14px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--surface2); transition:all .2s; }
.agenda-item:hover { border-color:var(--blue); box-shadow:var(--card-shadow); transform:translateX(3px); }
.agenda-date-box   { text-align:center; min-width:80px; }
.agenda-date-day   { display:block; font-weight:900; font-size:1.1rem; color:var(--text-dark); font-family:var(--fn); }
.agenda-date-time  { color:var(--text-muted); font-size:.78rem; font-weight:600; }
.agenda-details    { flex:1; }
.agenda-details h4 { margin:0 0 4px; display:flex; align-items:center; gap:5px; font-size:.95rem; }
.agenda-client-info { margin:0 0 4px; font-weight:600; color:var(--text-dark); }
.agenda-comment-text { margin:0; color:var(--text-body); font-size:.88rem; }
.btn-agenda-wa { background:var(--whatsapp) !important; padding:8px 12px; font-size:.8rem; text-decoration:none; color:#fff; }
/* Calendar event cards */
.cal-hero-date { font-family:var(--fn); font-size:52px; font-weight:900; color:var(--text-dark); letter-spacing:-2px; line-height:1; }
.cal-hero-month { font-family:var(--fn); font-size:16px; font-weight:600; color:var(--text-muted); margin-top:2px; }
.week-strip { display:flex; gap:6px; overflow-x:auto; padding:16px 0 10px; scrollbar-width:none; }
.week-strip::-webkit-scrollbar { display:none; }
.day-pill { display:flex; flex-direction:column; align-items:center; gap:5px; padding:10px 12px; border-radius:var(--radius-md); min-width:46px; cursor:pointer; background:var(--surface); border:1.5px solid var(--border); transition:all .18s ease; flex-shrink:0; }
.day-pill:active { transform:scale(.95); }
.day-pill.active { background:var(--blue) !important; border-color:var(--blue) !important; }
.day-pill .dow  { font-size:9.5px; font-weight:800; color:var(--text-muted); text-transform:uppercase; }
.day-pill .num  { font-family:var(--fn); font-size:16px; font-weight:900; color:var(--text-dark); transition: color 0.2s; }
.day-pill .dot  { width:5px; height:5px; border-radius:50%; background:var(--blue); }

/* Solución definitiva al bug de texto invisible en modo light */
.day-pill.active .num { color: #ffffff !important; }
.day-pill.active .dow { color: rgba(255,255,255,0.8) !important; }
.day-pill.active .dot { background: #ffffff !important; }

/* Corrección de scroll para Safari iOS */
@media (max-width: 820px) {
    .agenda-events-list {
        max-height: none !important; /* Permitimos que el scroll lo maneje el contenedor superior */
        overflow: visible !important;
    }
    .viewport-container {
        overflow-y: visible !important; /* FIX: Evita conflicto de scroll con .main-content */
        -webkit-overflow-scrolling: touch;
    }
}
.event-card-redesign { border-radius:var(--radius-md); padding:16px; position:relative; overflow:hidden; flex:1; }
.event-stripe { position:absolute; left:0; top:0; bottom:0; width:3px; border-radius:2px 0 0 2px; }
.event-badge { display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; padding:3px 9px; border-radius:20px; margin-bottom:8px; }
.event-name { font-family:var(--fn); font-size:15px; font-weight:800; color:var(--text-dark); margin-bottom:5px; }
.event-desc { font-size:12.5px; color:var(--text-body); line-height:1.5; margin-bottom:10px; }
.event-meta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.event-person { display:flex; align-items:center; gap:6px; }
.event-person .avi { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:800; flex-shrink:0; }
.event-person .name { font-size:12px; font-weight:600; color:var(--text-body); }
.event-loc { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--text-body); }
/* Botón “Hoy” estilo pastilla */
.btn-pill-hoy {
    background: var(--surface);
    border: 1.5px solid var(--border);
    color: var(--text-dark);
    border-radius: 20px;
    padding: 6px 18px;
    font-weight: 700;
    font-size: 0.82rem;
    font-family: var(--fn);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: 0.2s;
}
.btn-pill-hoy:hover {
    background: var(--blue-light);
    border-color: var(--blue);
    color: var(--blue);
}
.btn-pill-hoy.active {
    background: var(--blue);
    color: #fff;
    border-color: var(--blue);
}
.ev-meeting      { background:var(--blue-light); }
.ev-meeting .event-stripe { background:var(--blue); }
.ev-meeting .event-badge  { background:var(--blue); color:#fff; }
.ev-presentation { background:var(--orange-soft); }
.ev-presentation .event-stripe { background:var(--orange); }
.ev-presentation .event-badge  { background:var(--orange); color:#fff; }
.ev-call         { background:var(--teal-soft); }
.ev-call .event-stripe { background:var(--teal); }
.ev-call .event-badge  { background:var(--teal); color:#fff; }
.agenda-vencida {
    border-left: 4px solid var(--red) !important;
    background: rgba(239,68,68,0.08);
}
.agenda-vencida .event-stripe { background: var(--red); }
.agenda-vencida::after {
    content: "⚠️ Requiere atención";
    display: block;
    font-size: 10px;
    font-weight: 800;
    color: var(--red);
    margin-top: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- MEJORAS EN AGENDA / CALENDARIO --- */
.calendar-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.calendar-header-date {
    display: flex;
    align-items: center;
    gap: 15px;
}
.calendar-header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}
.filters-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 10px;
}
.filters-row .btn-pill-hoy:first-child { margin-right: auto; }
.filters-row .btn-pill-hoy:last-child { margin-left: auto; }
.view-toggle-row {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin: 20px 0 10px;
}
.week-strip.enlarged-week {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding: 16px 0;
    scrollbar-width: thin;
}
.week-strip.enlarged-week .day-pill {
    flex: 0 0 auto;
    min-width: 70px;
    padding: 12px 8px;
    border-radius: 20px;
    background: var(--surface);
    border: 1.5px solid var(--border);
    text-align: center;
    transition: all 0.2s;
}
.week-strip.enlarged-week .day-pill .dow {
    font-size: 12px;
    font-weight: 800;
    display: block;
    margin-bottom: 5px;
}
.week-strip.enlarged-week .day-pill .num {
    font-size: 20px;
    font-weight: 800;
    display: block;
}
.week-strip.enlarged-week .day-pill .dot {
    width: 6px;
    height: 6px;
    margin: 6px auto 0;
}
.agenda-events-list {
    max-height: 60vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
/* Estilos para vista mensual *//* Estilos para vista mensual */
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
    background: var(--surface);
    border-radius: var(--radius-md);
    padding: 12px;
    border: 1px solid var(--border);
}
.calendar-day {
    background: var(--surface2);
    border-radius: 12px;
    padding: 10px 5px;
    text-align: center;
    cursor: pointer;
    transition: 0.2s;
    position: relative;
    min-height: 45px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.calendar-day--empty {
    background: transparent !important;
    cursor: default;
    pointer-events: none;
}
.calendar-day:hover:not(.calendar-day--empty) {
    background: var(--surface) !important;
    transform: scale(1.08);
    box-shadow: var(--card-shadow);
    z-index: 2;
}
.calendar-day.today {
    background: var(--blue-light);
    border: 1px solid var(--blue);
}
.calendar-day.has-events {
    background: rgba(84,83,237,0.1);
}
.calendar-day.active {
    background: var(--blue) !important;
    border-color: var(--blue) !important;
    transform: scale(1.05);
    box-shadow: var(--card-shadow);
    z-index: 3;
}
.calendar-day .day-number {
    font-weight: 700;
    font-size: 14px;
    color: var(--text-dark);
    transition: color 0.2s;
}
.calendar-day.active .day-number {
    color: #ffffff !important;
}
.calendar-day.active .event-dot {
    background: #ffffff !important;
}
.event-dot {
    width: 6px;
    height: 6px;
    background: var(--orange);
    border-radius: 50%;
    margin: 4px auto 0;
}

/* Móvil */
@media (max-width: 820px) {
    .agenda-events-list {
        max-height: calc(100dvh - 340px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 20px;
        overscroll-behavior-y: contain;
    }
    .week-strip {
        touch-action: pan-y;
    }
    .calendar-header-row {
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }
    .calendar-header-date {
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }
    .cal-hero-date {
        font-size: 56px;
        line-height: 1;
    }
    .cal-hero-month {
        font-size: 16px;
        margin-top: 0;
    }
    .calendar-header-actions {
        width: 100%;
        justify-content: space-between;
        gap: 10px;
    }
    .calendar-header-actions button {
        flex: 1;
        justify-content: center;
    }
    .filters-row .btn-pill-hoy {
        flex: 1;
        justify-content: center;
    }
    .view-toggle-row .btn-pill-hoy {
        flex: 1;
        justify-content: center;
    }
    .week-strip.enlarged-week {
        gap: 6px;
        justify-content: center; /* centra los días si hay espacio */
    }
    .week-strip.enlarged-week .day-pill {
        flex: 1 1 0;          /* ocupa espacio disponible equitativamente */
        min-width: 44px;      /* mínimo para que no se aplasten demasiado */
        max-width: 70px;      ·;: un máximo para que no se estiren excesivamente */
        padding: 8px 2px;
    }
    .week-strip.enlarged-week .day-pill .num {
        font-size: 16px;
    }
    .week-strip.enlarged-week .day-pill .dow {
        font-size: 10px;
    }
    .calendar-day {
        padding: 8px 2px;
    }
}

/* Ajuste definitivo de las flechas de navegación de semana */
.week-nav-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    margin: 10px 0;
    width: 100%;
}
.week-nav-wrapper .nav-week-btn {
    position: absolute;
    z-index: 10;
    width: 32px;
    height: 32px;
    background: var(--surface);
    box-shadow: var(--card-shadow);
}
.week-nav-wrapper #btnPrevWeek { left: -5px; }
.week-nav-wrapper #btnNextWeek { right: -5px; }

.week-strip {
    flex: 1;
    display: flex;
    justify-content: space-between;
    gap: 6px;
    overflow-x: visible; /* Elimina scrollbar molesto */
    padding: 4px 30px; /* Da espacio a las flechas superpuestas */
    width: 100%;
}

.week-strip.enlarged-week .day-pill {
    flex: 1;
    min-width: 0; /* Permite encogerse parejo */
    padding: 10px 2px;
}

/* Para móvil: botones y textos se adaptan sin colapsar */
@media (max-width: 640px) {
    .week-strip {
        padding: 4px 24px;
        gap: 3px;
    }
    .week-nav-wrapper .nav-week-btn {
        width: 26px;
        height: 26px;
    }
    .week-nav-wrapper #btnPrevWeek { left: -2px; }
    .week-nav-wrapper #btnNextWeek { right: -2px; }
    
    .week-strip.enlarged-week .day-pill .num {
        font-size: 15px;
    }
    .week-strip.enlarged-week .day-pill .dow {
        font-size: 9px;
        margin-bottom: 2px;
    }
    .week-strip.enlarged-week .day-pill .dot {
        width: 4px;
        height: 4px;
        margin-top: 4px;
    }
}

/* ── 15. DIRECTORIO ───────────────────────────────────────── */
.directory-view { padding:20px 40px; flex:1; overflow-y:auto; }
.directory-header-clean { margin-bottom:18px; }
.directory-search-wrapper { flex:1; display:flex; align-items:center; gap:8px; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); padding:8px 14px; }
.directory-search-wrapper input { border:none; outline:none; background:transparent; font-family:var(--fb); color:var(--text-body); flex:1; font-size:14px; }
.directory-container-relative { display:flex; gap:12px; }
.directory-list-scrollable { flex:1; }
.alphabet-sidebar-right { position:sticky; top:0; display:flex; flex-direction:column; gap:2px; font-size:.65rem; font-weight:800; color:var(--blue); text-align:center; width:28px; flex-shrink:0; }
.alpha-letter { cursor:pointer; padding:2px 0; border-radius:4px; transition:.2s; }
.alpha-letter:hover { background:var(--blue); color:#fff; }
.letter-header { font-weight:800; color:var(--text-muted); font-size:1.1rem; padding:8px 0 4px; border-bottom:2px solid var(--border); margin:10px 0 8px; }
.directory-item { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; margin-bottom:8px; box-shadow:var(--card-shadow); transition:all .2s; }
.directory-item-header { padding:14px 18px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; transition:background .2s; }
.directory-item-header:hover { background:var(--surface2); }
.directory-item-title { display:flex; align-items:center; gap:14px; font-weight:700; color:var(--text-dark); }
.directory-item-title img { width:42px; height:42px; border-radius:50%; object-fit:cover; border:2px solid var(--border); }
.directory-item-details { display:none; padding:0 18px 18px; border-top:1px solid var(--border); padding-top:16px; }
.directory-item.expanded .directory-item-details { display:block; animation:fadeIn .3s ease; }
.directory-item.expanded .directory-item-header  { background:var(--surface2); }
.contact-tag { display:inline-block; padding:3px 10px; border-radius:12px; font-size:.73rem; font-weight:800; text-transform:uppercase; margin:10px 0; letter-spacing:.5px; }
.contact-details-list p { display:flex; align-items:center; gap:8px; margin:7px 0; color:var(--text-body); font-size:.93rem; }
.contact-action-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:16px; }
.social-icons-row { display:flex; gap:8px; }
.social-icons-row img { width:22px; height:22px; border-radius:4px; }
.btn-red-social { background:var(--surface2); border:1.5px solid var(--border); color:var(--text-muted); width:34px; height:34px; border-radius:var(--radius-sm); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.btn-red-social:hover { border-color:var(--blue); color:var(--blue); }
.directory-filters { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.directory-filters select { padding:8px 12px; border-radius:var(--radius-md); border:1.5px solid var(--border); background:var(--surface); color:var(--text-dark); font-family:var(--fb); }

/* ── 16. SISTEMA DE MODALES PREMIUM v2.0 (ADN AGENDA) ── */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,0.7);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: var(--z-modal) !important;
    padding-bottom: 0 !important;
}

.modal-content { 
    position: relative;
    z-index: calc(var(--z-modal) + 1) !important;
    background: var(--surface); 
    width: 750px; 
    max-width: 100vw; 
    height: 90vh;
    max-height: 90vh; 
    display: flex; 
    flex-direction: column; 
    border-radius: var(--radius-xl) var(--radius-xl) 0 0; 
    box-shadow: 0 -15px 45px rgba(0,0,0,0.3); 
    overflow: hidden; 
    border: 1px solid var(--border); 
    animation: slideUpBottom .5s cubic-bezier(.16,1,.3,1) forwards; 
    margin-bottom: 0 !important; 
}

.modal-header-premium { 
    padding:28px 30px; background:var(--blue-dark); color:white; 
    display:flex; justify-content:space-between; align-items:center; flex-shrink:0;
    box-shadow:0 10px 20px rgba(0,0,0,0.1);
}
.modal-header-premium h2 { color:white !important; font-size:1.4rem; font-weight:900; letter-spacing:-.5px; }

.modal-body-premium { 
    padding:30px; background:var(--bg); flex:1; overflow-y:auto; 
    display:flex; flex-direction:column; gap:20px;
}

/* Tabs estilo "Agenda Pills" */
.modal-tabs-nav { 
    display:flex; gap:10px; padding:15px 30px; background:var(--surface); 
    border-bottom:1px solid var(--border); overflow-x:auto; scrollbar-width:none;
}
.modal-tab-pill { 
    background:var(--surface2); border:1.5px solid var(--border); border-radius:20px;
    padding:8px 20px; font-weight:700; font-size:13px; color:var(--text-muted);
    cursor:pointer; transition:0.2s; white-space:nowrap; display:flex; align-items:center; gap:8px;
}
.modal-tab-pill.active { background:var(--teal) !important; color:white !important; border-color:var(--teal) !important; box-shadow:0 4px 12px rgba(0,178,169,0.3); }

/* Inputs Estilo Agenda Hero */
.premium-field { 
    background:var(--surface); padding:16px 20px; border-radius:20px; 
    border:1px solid var(--border); box-shadow:var(--card-shadow); transition:0.2s;
    height: auto !important; min-height: 54px; /* FIX: Evita que el texto de los <select> se corte */
}
.premium-field:focus-within { border-color:var(--blue); box-shadow:var(--card-shadow-md); transform:translateY(-2px); }
.premium-field label { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); margin-bottom:8px; display:block; }

/* FIX: Input Prefix para Perfil EZ Premium */
.premium-prefix-group { padding: 0 !important; display: flex; align-items: center; overflow: hidden; }
.premium-prefix-group .prefix { padding: 0 16px; background: var(--surface2); border-right: 1px solid var(--border); align-self: stretch; display: flex; align-items: center; font-weight: 700; color: var(--text-muted); font-size: 13px; }
.premium-prefix-group input { border: none; height: 54px; padding: 0 16px; flex: 1; outline: none; background: transparent; font-weight: 700; color: var(--text-dark); width: 100%; }
.modal-body {
    padding:0; 
    display:flex; 
    flex-direction:column; 
    flex:1; 
    overflow:hidden;
    min-height:0; /* Clave para que el contenedor se encoja y permita scroll */
}
.modal-tarea-premium { max-width:min(480px,100vw) !important; height:auto !important; max-height:90vh; border-radius:var(--radius-xl) var(--radius-xl) 0 0 !important; overflow:hidden; }
.tarea-header { background:linear-gradient(135deg,var(--blue-dark),#40488d); color:#fff; padding:24px; border-radius:var(--radius-xl) var(--radius-xl) 0 0; }
.tarea-header h2 { color:#fff; display:flex; align-items:center; gap:10px; font-size:1.15rem; }
.tarea-body { padding:24px; background:var(--bg); }
.tarea-field { background:var(--surface); padding:14px; border-radius:var(--radius-md); border:1px solid var(--border); margin-bottom:14px; box-shadow:var(--card-shadow); position:relative; }
.tarea-field label { display:flex; align-items:center; gap:8px; font-weight:800; font-size:11px; text-transform:uppercase; color:var(--text-muted); margin-bottom:8px; }
.tarea-field label span { color:var(--orange); font-size:18px; }
.tarea-field input,
.tarea-field select,
.tarea-field textarea { border:none !important; padding:0 !important; font-weight:700; color:var(--text-dark); background:transparent; width:100%; }
.tarea-field input:focus,
.tarea-field select:focus,
.tarea-field textarea:focus { box-shadow:none; outline:none; }

.tarea-lead-search-field {
    z-index: 20;
}

.tarea-lead-search-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
}

.tarea-lead-search-icon {
    color: var(--blue);
    font-size: 20px;
    flex-shrink: 0;
}

.tarea-lead-search-results {
    position: absolute;
    left: 14px;
    right: 14px;
    top: calc(100% - 6px);
    z-index: calc(var(--z-modal) + 20);
    max-height: 260px;
    overflow-y: auto;
    background: var(--surface);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--card-shadow-md);
    padding: 8px;
}

.tarea-lead-search-option {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--text-dark);
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    cursor: pointer;
    font-family: var(--fb);
    text-align: left;
}

.tarea-lead-search-option:hover,
.tarea-lead-search-option:focus {
    background: var(--blue-light);
    outline: none;
}

.tarea-lead-search-option strong {
    font-size: 14px;
    font-weight: 800;
    color: var(--text-dark);
}

.tarea-lead-search-option span {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
}

.tarea-lead-search-option em {
    margin-top: 4px;
    font-style: normal;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    padding: 3px 8px;
    border-radius: 999px;
}

.tarea-lead-search-type-lead {
    background: var(--blue-light);
    color: var(--blue);
}

.tarea-lead-search-type-contact {
    background: var(--teal-soft);
    color: var(--teal);
}

.tarea-lead-search-empty {
    padding: 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-muted);
    text-align: center;
}

/* Tabbed form */
/* Eliminamos las reglas obsoletas de form-header-fixed, form-tabs-nav y form-tab-btn */
/* La navegación ahora se maneja exclusivamente con .modal-tabs-nav */

.tabbed-form { 
    display:flex; 
    flex-direction:column; 
    height:100%; 
    /* Aseguramos que ocupe todo el espacio disponible del modal-body */
    flex:1;
}

.form-body-scrollable {
    flex:1; 
    overflow-y:auto; 
    padding:20px 24px; 
    background:var(--bg); 
    -webkit-overflow-scrolling: touch;
    /* Altura automática, sin forzar height:0 */
}

.form-tab-pane { 
    display:none; 
    animation:fadeIn .3s ease; 
}

.form-tab-pane.active { 
    display:block; 
    /* Aseguramos que el contenido de la pestaña pueda ser más alto que el contenedor y active el scroll */
}
.form-footer-fixed {
    padding: 10px 12px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    background: var(--surface);
    border-top: 1px solid var(--border);
    flex-shrink: 0;
    z-index: 10;
    position: sticky;
    bottom: 0;
    box-shadow: 0 -4px 10px rgba(0,0,0,0.05);
    gap: 6px;
}

/* Contact modal */
#contactoModal { z-index:13000 !important; }
.modal-contacto-premium { max-width:min(580px,100vw) !important; border-radius:var(--radius-xl) var(--radius-xl) 0 0 !important; overflow:hidden; }
.contacto-header-premium { padding:24px; background:var(--blue-dark); color:#fff; }
.contacto-body-premium   { padding:28px; background:var(--surface); max-height:85vh; overflow-y:auto; padding-bottom:40px; }
.foto-preview-premium { width:100px; height:100px; border-radius:50%; object-fit:cover; border:3px solid var(--blue-dark); background:#eee; }
.label-foto-premium { position:absolute; bottom:-4px; right:-4px; width:34px; height:34px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; background:var(--blue-dark); color:#fff; box-shadow:0 2px 6px rgba(0,0,0,.3); transition:.2s; }
.label-foto-premium:hover { background:var(--orange); transform:scale(1.1); }

/* ── 17. AJUSTES Y VISTAS SECUNDARIAS ──────────────────────────────────────────── */
.ajustes-view { padding:24px 40px; width:100%; flex:1; display:flex; flex-direction:column; animation:fadeIn .3s ease; }
/* ─── AJUSTES HEADER ─────────────────────── */
.ajustes-header { margin-bottom: 20px; }
.ajustes-header h2 { font-size: 1.4rem; letter-spacing: -.3px; }

/* ─── AGENDA PREMIUM (RÉPLICA EXACTA) ────────── */
.agenda-container { max-width: 850px; margin: 0 auto; padding: 10px; }

/* Tarjeta Hero: Siguiente Tarea */
.agenda-hero {
    background: var(--blue-dark); color: white; border-radius: 28px;
    padding: 30px; margin-bottom: 40px; position: relative;
    box-shadow: 0 15px 35px rgba(45, 52, 118, 0.2); overflow: hidden;
}
.hero-label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; opacity: 0.6; margin-bottom: 12px; display: block; }
.hero-time { font-size: 14px; display: flex; align-items: center; gap: 6px; margin-bottom: 10px; font-weight: 500; }
.hero-title { font-size: 24px; font-weight: 900; margin-bottom: 25px; line-height: 1.2; }
.hero-btn { 
    background: var(--teal); color: white; border: none; padding: 14px 28px; 
    border-radius: 16px; font-weight: 700; display: inline-flex; align-items: center; 
    gap: 10px; cursor: pointer; text-decoration: none; transition: 0.2s;
}
.hero-btn:hover { background: #008E87; transform: translateY(-2px); }

/* Timeline Vertical */
.timeline-section-title { font-size: 13px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 25px; padding-left: 5px; }
.agenda-timeline { position: relative; padding-left: 50px; }
.agenda-timeline::before {
    content: ''; position: absolute; left: 19px; top: 10px; bottom: 10px; 
    width: 2px; background: var(--border2);
}

.timeline-item { position: relative; margin-bottom: 30px; display: flex; align-items: center; }
.timeline-dot {
    position: absolute; left: -43px; top: 50%; transform: translateY(-50%);
    width: 14px; height: 14px; border-radius: 50%; background: var(--border2);
    border: 3px solid var(--bg); z-index: 2;
}
.timeline-item.active .timeline-dot { background: var(--orange); border-color: var(--orange-soft); }

.timeline-time { min-width: 70px; font-size: 13px; font-weight: 800; color: var(--text-dark); margin-right: 20px; text-align: right; }
.timeline-card {
    background: white; border: 1px solid var(--border); border-radius: 20px;
    padding: 16px 20px; flex: 1; display: flex; align-items: center; justify-content: space-between;
    box-shadow: var(--card-shadow);
}
.timeline-info h4 { margin: 0; font-size: 15px; font-weight: 700; color: var(--text-dark); }
.timeline-info p { margin: 4px 0 0 0; font-size: 12px; color: var(--text-muted); }

/* --- FIX MODAL: ALTO CONTRASTE --- */
.close-btn-fixed {
    position: absolute; top: 15px; right: 15px;
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--blue-dark) !important; color: white !important;
    border: none; display: flex; align-items: center; justify-content: center;
    cursor: pointer; z-index: 10; transition: 0.2s;
}
.close-btn-fixed:hover { background: var(--orange) !important; transform: rotate(90deg); }
.close-btn-fixed span { font-size: 20px; font-weight: 900; }

/* ─── DASHBOARD: CENTRO DE MANDO v3.0 ────────── */
.dash-grid-stats { 
    display: grid; 
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); 
    gap: 16px; 
    margin: 24px 0; 
}

.stat-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: 20px;
    padding: 20px; display: flex; align-items: center; gap: 16px;
    box-shadow: var(--card-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.stat-card:hover { transform: translateY(-3px); box-shadow: var(--card-shadow-md); }

.stat-icon {
    width: 48px; height: 48px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.stat-icon span { font-size: 24px; }

.stat-info { display: flex; flex-direction: column; gap: 2px; }
.stat-label { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.stat-value { font-size: 20px; font-weight: 900; color: var(--text-dark); line-height: 1.2; }

/* Colores Semánticos (Pure CSS) */
.stat-blue   { background: rgba(84,83,237, 0.1); color: var(--blue); }
.stat-orange { background: rgba(242,89,34, 0.1); color: var(--orange); }
.stat-teal   { background: rgba(0,178,169, 0.1); color: var(--teal); }
.stat-amber  { background: rgba(245,158,11, 0.1); color: var(--amber); }
.stat-green  { background: rgba(16,185,129, 0.1); color: var(--green); }

.dash-main-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
@media (max-width: 1024px) { .dash-main-layout { grid-template-columns: 1fr; } }
.dash-section-title { font-size: 1rem; font-weight: 800; margin-bottom: 16px; color: var(--blue-dark); display: flex; align-items: center; gap: 8px; }
#dash-mini-agenda {
    max-height: 400px;
    overflow-y: auto;
    padding-right: 8px;
}
.mini-task-item { background: var(--bg); padding: 12px; border-radius: 12px; display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ajustes-card { background:var(--surface); padding:22px; border-radius:var(--radius-lg); border:1px solid var(--border); box-shadow:var(--card-shadow); margin-bottom:20px; min-width: 0; }
.ajustes-tabs { display:flex; gap:8px; border-bottom:2px solid var(--border); margin-bottom:20px; overflow-x:auto; scrollbar-width:none; }
.ajustes-tabs::-webkit-scrollbar { display:none; }
.tab-btn { background:none; border:none; padding:12px 16px; font-family:var(--fn); font-weight:700; color:var(--text-muted); cursor:pointer; white-space:nowrap; border-bottom:3px solid transparent; margin-bottom:-2px; transition:.25s; }
.tab-btn.active { color:var(--blue); border-bottom-color:var(--blue); }
.tab-content { animation:fadeIn .25s ease; }
.table-responsive { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:5px; }
/* ── AJUSTE PREMIUM: TABLA DE EQUIPO v4 (ARQUITECTURA BLINDADA SIN INLINE) ── */
.table-container-premium { 
    width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; 
    background: var(--surface); border-radius: var(--radius-lg); 
    border: 1px solid var(--border); margin-top: 15px; 
}
.equipo-table-v4 { width: 100%; min-width: 800px; border-collapse: collapse; table-layout: auto; }
.equipo-table-v4 th, .equipo-table-v4 td { 
    padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--border); 
    vertical-align: middle; 
}
.equipo-table-v4 th { 
    background: var(--surface2); color: var(--text-muted); font-weight: 800; 
    text-transform: uppercase; font-size: 11px; letter-spacing: 1.2px; border-top: none;
}
.equipo-table-v4 tr:hover td { background: var(--bg); }
.equipo-table-v4 tr:last-child td { border-bottom: none; }

/* Control de columnas y reemplazo de estilos inline */
.equipo-table-v4 .col-foto { width: 80px; text-align: center; }
.equipo-table-v4 .col-foto img { 
    width: 42px; height: 42px; border-radius: 50%; 
    border: 2px solid var(--blue); object-fit: cover; 
    display: block; margin: 0 auto; 
}

.equipo-table-v4 .col-nombre { min-width: 250px; }
.equipo-table-v4 .col-nombre strong { 
    display: block; color: var(--text-dark); 
    font-size: 14px; margin-bottom: 2px; 
}
.equipo-table-v4 .col-nombre small { 
    color: var(--text-muted); font-size: 12px; 
    display: block; opacity: 0.75; 
}

.equipo-table-v4 .col-rol { width: 140px; }
.equipo-table-v4 .col-celula { width: 180px; }
.equipo-table-v4 .col-acciones { width: 100px; text-align: center; }

/* En móvil permitimos scroll horizontal suave sin romper el diseño */
@media (max-width: 820px) {
    .table-container-premium { margin-bottom: 30px; }
    .equipo-table-v4 th, .equipo-table-v4 td { padding: 12px 14px; }
}

/* ── 18. LEADS ────────────────────────────────────────────── */
.leads-kpi-container { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:18px; }
.lead-mini-kpi { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px; display:flex; flex-direction:column; gap:5px; box-shadow:var(--card-shadow); transition:transform .2s; }
.lead-mini-kpi:hover { transform:translateY(-2px); }
.lead-mini-kpi-title { font-size:11px; color:var(--text-muted); font-weight:800; text-transform:uppercase; letter-spacing:.5px; }
.lead-mini-kpi-value { font-size:20px; font-weight:800; color:var(--text-dark); display:flex; align-items:center; gap:6px; }
.kpi-oro{color:#D4AF37;} .kpi-plata{color:#9E9E9E;} .kpi-bronce{color:#CD7F32;}
.icon-kpi-medal { font-size:18px; }
.th-checkbox { width:40px; text-align:center; }
.filter-icon { font-size:20px; }
.filter-input-large { min-width:200px; }
.bulk-label { font-size:.85rem; font-weight:600; }
.bulk-count { font-weight:800; }
.lead-identidad-title { font-weight:700; color:var(--text-dark); display:flex; align-items:center; gap:6px; font-size:14px; }
.lead-identidad-empresa { color:var(--text-muted); font-weight:600; font-size:11px; margin-left:22px; }
.lead-contacto-row { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--text-body); }
.lead-contacto-row.phone .material-symbols-outlined { color:var(--whatsapp); font-size:14px; }
.lead-forecast-val { font-weight:800; font-size:13.5px; color:var(--teal); }
.lead-forecast-null { color:var(--text-muted); font-size:12px; }
.lead-icon-folder { font-size:20px; pointer-events:none; }
.lead-origen-tag { font-size:9px; padding:2px 6px; margin-top:4px; display:inline-block; }
.lead-fecha-registro { color:var(--text-muted); font-size:10px; margin-top:4px; font-weight:700; }
.lead-temp-caliente { color:var(--orange); font-weight:800; }
.lead-temp-tibio    { color:var(--blue); font-weight:700; }
.lead-temp-frio     { color:var(--text-muted); font-weight:600; }
.lead-potencial-row { display:flex; align-items:center; gap:4px; font-size:12px; font-weight:700; }
.lead-potencial-row .material-symbols-outlined { color:var(--teal); font-size:16px; }

/* Filters */
.table-filters-bar { display:flex; gap:12px; margin-bottom:18px; flex-wrap:wrap; padding:14px 18px; background:var(--surface); border-radius:var(--radius-md); border:1px solid var(--border); box-shadow:var(--card-shadow); }
.table-filters-bar select,.table-filters-bar input { padding:8px 12px; border:1.5px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); color:var(--text-dark); font-family:var(--fb); font-size:.85rem; outline:none; }
.table-filters-bar select:focus,.table-filters-bar input:focus { border-color:var(--teal); box-shadow:0 0 0 3px rgba(0,178,169,.1); }
.bulk-actions-bar { background:var(--blue-dark); color:#fff; padding:12px 18px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; box-shadow:0 6px 20px rgba(45,52,118,.25); animation:slideDown .3s ease; }
.bulk-actions-bar select { background:var(--surface); color:var(--text-dark); border:none; padding:7px 12px; border-radius:var(--radius-sm); font-family:var(--fn); font-weight:700; outline:none; }

/* Badges */
.badge-status { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.3px; }
.badge-status.pendiente  { background:rgba(245,158,11,.12); color:#F59E0B; }
.badge-status.aprobada   { background:var(--green-soft); color:#10B981; }
.badge-status.vencida    { background:var(--red-soft); color:#EF4444; }
.badge-status.pagada     { background:var(--teal-soft); color:var(--teal); }
.badge-status.rechazada  { background:rgba(239,68,68,.1); color:#EF4444; }
.badge-status.activo     { background:var(--green-soft); color:#10B981; }
.badge-status.inactivo   { background:rgba(148,163,184,.12); color:var(--text-muted); }
.badge-oro    { background:#FFD700; color:#000; padding:2px 6px; border-radius:4px; font-size:11px; font-weight:800; }
.badge-plata  { background:#E0E0E0; color:#333; padding:2px 6px; border-radius:4px; font-size:11px; font-weight:800; }
.badge-bronce { background:#CD7F32; color:#fff;  padding:2px 6px; border-radius:4px; font-size:11px; font-weight:800; }

/* PAGINATION BAR HARDENING - PWA READY */
.pagination-bar {
    position: sticky;
    bottom: 0;
    z-index: 10;
    background: var(--bg-card, #ffffff);
    border-top: 1px solid var(--border-color, #e0e0e0);
    padding: 12px 20px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom)); /* Soporte Notch iOS/Android */
    box-shadow: 0 -4px 12px rgba(0,0,0,0.05);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.pagination-bar .btn-secondary {
    padding: 8px 16px;
    border-radius: 8px;
    transition: all 0.2s ease;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.pagination-bar .btn-secondary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    filter: grayscale(1);
}

.pagination-bar select.form-control {
    cursor: pointer;
    border-radius: 6px;
    border: 1px solid var(--border-color, #d1d1d1);
    font-weight: 500;
}

@media (max-width: 600px) {
    .pagination-bar {
        flex-direction: column;
        gap: 12px;
        text-align: center;
    }
    .pagination-bar .d-flex {
        width: 100%;
        justify-content: center;
    }
}

.map-container-clean { height: 400px; padding: 0; overflow: hidden; }
.map-frame-clean { height: 100%; width: 100%; border-radius: 8px; }

.icon-save-standard{
    font-size:18px;
}

/* ── 19. PLAYBOOK ─────────────────────────────────────────── */
.contact-methods-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--border); }
.btn-contact-method { display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:var(--radius-sm); font-weight:700; font-size:13px; text-decoration:none; color:#fff; transition:transform .2s; border:none; cursor:pointer; }
.btn-contact-method:hover { transform:translateY(-2px); }
.method-wa{background:var(--whatsapp);} .method-call{background:var(--blue-dark);}
.method-email{background:var(--teal);} .method-fb{background:#1877F2;}
.method-ig { background:linear-gradient(45deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%); }
.playbook-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.playbook-container { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius-md); padding:18px; margin-bottom:18px; }
.playbook-header { display:flex; align-items:center; gap:10px; margin-bottom:14px; color:var(--blue-dark); font-weight:800; font-family:var(--fn); }
.playbook-message-box { background:var(--surface); padding:14px; border-radius:var(--radius-sm); border-left:4px solid var(--teal); font-size:14px; line-height:1.5; color:var(--text-dark); position:relative; white-space:pre-wrap; }
.btn-copy-script { position:absolute; top:8px; right:8px; background:var(--surface2); border:1px solid var(--border); border-radius:6px; padding:4px; cursor:pointer; color:var(--text-muted); }
.btn-copy-script:hover { color:var(--teal); border-color:var(--teal); }
.playbook-options { display:flex; gap:8px; flex-wrap:wrap; }
.btn-playbook-option { background:var(--surface); border:1px solid var(--border); color:var(--text-body); padding:7px 12px; border-radius:6px; font-size:12px; font-weight:700; cursor:pointer; transition:.2s; }
.btn-playbook-option:hover { background:var(--blue-light); color:var(--blue); border-color:var(--blue); }
.playbook-instruction { background:rgba(242,89,34,.1); border-left:4px solid var(--orange); color:var(--text-dark); padding:12px 14px; border-radius:6px; font-size:13px; font-weight:600; display:flex; align-items:flex-start; gap:8px; margin-top:14px; animation:slideDown .3s ease; }
.history-chat-container { display:flex; flex-direction:column; gap:14px; max-height:380px; overflow-y:auto; padding-right:8px; }
.chat-bubble-wrapper { display:flex; flex-direction:column; gap:4px; }
.chat-meta { font-size:11px; color:var(--text-muted); font-weight:700; display:flex; align-items:center; gap:4px; }
.chat-bubble-wrapper.agent-wrapper .chat-meta { justify-content:flex-end; }
.chat-bubble-agent { background:var(--blue-light); color:var(--blue-dark); padding:12px 14px; border-radius:12px 12px 0 12px; align-self:flex-end; max-width:85%; font-size:13px; }
/* Fix de legibilidad para modo oscuro en historial */
[data-theme="dark"] .chat-bubble-agent { color: #ffffff !important; }
.chat-bubble-wrapper.lead-wrapper .chat-meta { justify-content:flex-start; }
.chat-bubble-lead  { background:var(--surface); border:1px solid var(--border); color:var(--text-dark); padding:12px 14px; border-radius:12px 12px 12px 0; align-self:flex-start; max-width:85%; font-size:13px; }
.quick-log-form { display:grid; gap:8px; background:var(--surface); padding:14px; border-radius:var(--radius-md); border:1px solid var(--border); margin-top:16px; }
.log-date-label { font-size:11px; font-weight:700; color:var(--text-muted); margin-bottom:3px; display:block; text-transform:uppercase; }
.chat-bubble-comentario {
    background: #1B2A4A;
    color: #ffffff;
    padding: 12px 14px;
    border-radius: 12px 12px 0 12px;
    align-self: flex-end;
    max-width: 85%;
    font-size: 13px;
}

/* ── 20. MORFEO ─────────────────────────────────────────────
   Estilo visual inspirado en Módulo Productos
   Usa exactamente las variables de marca existentes
   ─────────────────────────────────────────────────────────── */

.morfeo-view {
    flex: 1;
    overflow-y: auto;
    background: var(--bg);
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 100%;
}

/* ── Hero Banner (como prod-hero-banner) ────────────────── */
.morfeo-view .ajustes-header {
    background: linear-gradient(135deg, var(--blue-dark), var(--blue));
    border-radius: var(--radius-xl);
    padding: 36px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 15px 35px rgba(84, 83, 237, 0.15);
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
}

.morfeo-view .ajustes-header::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%);
    pointer-events: none;
}

.morfeo-view .section-title-icon {
    color: #fff;
    font-size: 1.8rem;
    font-weight: 900;
    gap: 12px;
}

.morfeo-view .text-orange {
    color: #fff !important;
    background: rgba(255,255,255,0.15);
    padding: 8px;
    border-radius: 14px;
}

.morfeo-view .ajustes-header .text-muted {
    color: rgba(255,255,255,0.8) !important;
    font-size: 0.9rem;
    margin-top: 6px;
}

/* ── KPIs (tarjetas compactas con aire de producto) ──────── */
.morfeo-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 16px;
    margin-bottom: 0;
}

.morfeo-stat-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    text-align: center;
    box-shadow: var(--card-shadow);
    transition: transform 0.2s, box-shadow 0.2s;
}

.morfeo-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--card-shadow-md);
}

.morfeo-stat-value {
    font-size: 2rem;
    font-weight: 900;
    color: var(--text-dark);
    line-height: 1;
}

.morfeo-stat-label {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.morfeo-stat-oro   { border-color: #ffd700; }
.morfeo-stat-plata { border-color: #c0c0c0; }
.morfeo-stat-bronce{ border-color: #cd7f32; }
.morfeo-stat-oro   .morfeo-stat-value { color: #ffd700; }
.morfeo-stat-plata .morfeo-stat-value { color: #c0c0c0; }
.morfeo-stat-bronce .morfeo-stat-value { color: #cd7f32; }

/* ── Dropzone (tarjeta destacada) ────────────────────────── */
.morfeo-dropzone {
    border: 2px dashed var(--border2);
    border-radius: var(--radius-xl);
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    cursor: pointer;
    transition: 0.2s;
    background: var(--surface);
    box-shadow: var(--card-shadow);
}

.morfeo-dropzone:hover,
.morfeo-dropzone:focus {
    border-color: var(--orange);
    background: var(--orange-soft);
    outline: none;
}

.morfeo-dropzone.drag-over {
    border-color: var(--orange);
    background: var(--orange-soft);
}

.morfeo-drop-icon {
    font-size: 3rem;
    color: var(--orange);
}

.morfeo-drop-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0;
}

.morfeo-drop-sub {
    font-size: 0.85rem;
    color: var(--text-muted);
    margin: 0;
}

.morfeo-drop-status {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
    margin: 0.5rem 0 0;
    min-height: 1.2em;
}

.morfeo-drop-status.status-ok    { color: var(--teal); }
.morfeo-drop-status.status-error { color: var(--red); }

.morfeo-file-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* ── Toolbar (fila limpia tipo prod-filter-row) ──────────── */
.morfeo-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: none;
    padding: 0;
    border: none;
    box-shadow: none;
}

.morfeo-toolbar[aria-hidden="true"] {
    display: none;
}

.morfeo-filters {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    flex: 1;
}

/* Píldora de búsqueda */
.morfeo-filters .search-pill {
    min-width: 200px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 30px;
    padding: 0.4rem 1.2rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    transition: 0.2s;
}

.morfeo-filters .search-pill:focus-within {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px var(--blue-light);
}

.morfeo-filters .search-pill input {
    background: transparent;
    border: none;
    outline: none;
    color: var(--text-dark);
    font-size: 0.9rem;
    width: 100%;
}

.morfeo-filters .search-pill input::placeholder {
    color: var(--text-muted);
}

/* Select con apariencia de píldora */
.filter-select {
    background: var(--surface);
    color: var(--text-dark);
    border: 1px solid var(--border);
    border-radius: 30px;
    padding: 0.45rem 1.2rem;
    font-size: 0.85rem;
    font-weight: 600;
    outline: none;
    cursor: pointer;
    transition: 0.2s;
}

.filter-select:focus {
    border-color: var(--blue);
}

/* Botones de acción */
.morfeo-actions {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}

.btn-secondary,
.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.55rem 1.5rem;
    border-radius: 30px;
    font-weight: 700;
    font-size: 0.85rem;
    text-decoration: none;
    transition: 0.2s;
}

.btn-secondary {
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--text-dark);
}

.btn-secondary:hover {
    background: var(--surface2);
    border-color: var(--border2);
}

.morfeo-btn-inject {
    background: var(--orange);
    border: 1px solid var(--orange);
    color: #fff;
}

.morfeo-btn-inject:hover {
    background: #c94d1e;
    border-color: #c94d1e;
}

/* ── Barra de progreso ───────────────────────────────────── */
.morfeo-progress-bar {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--surface);
    padding: 0.8rem 1.2rem;
    border-radius: 30px;
    border: 1px solid var(--border);
}

.morfeo-progress-track {
    flex: 1;
    height: 8px;
    background: var(--border);
    border-radius: 9999px;
    overflow: hidden;
}

.morfeo-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--orange), var(--teal));
    border-radius: 9999px;
    transition: width 0.3s ease;
}

.morfeo-progress-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-dark);
    white-space: nowrap;
}

/* ── Tabla de leads (estilo tarjeta grande) ──────────────── */
.ajustes-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--card-shadow);
}

.morfeo-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--text-dark);
}

.morfeo-table thead {
    background: var(--surface2);
    border-bottom: 1px solid var(--border);
}

.morfeo-table th {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    padding: 0.8rem 1rem;
    text-align: left;
}

.morfeo-table td {
    vertical-align: middle;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
    font-size: 0.9rem;
}

.morfeo-table tbody tr:last-child td {
    border-bottom: none;
}

.morfeo-table tbody tr:hover {
    background: var(--blue-light);
}

/* Celdas especiales */
.m-lead-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 0.2rem;
}

.m-lead-empresa {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin: 0;
}

.m-lead-contact-group {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.m-lead-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--whatsapp);
    text-decoration: none;
}

.m-lead-whatsapp:hover { text-decoration: underline; }

.m-lead-web-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--blue);
    text-decoration: none;
}

.m-lead-web-link:hover { text-decoration: underline; }

.m-lead-city {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.m-lead-reason {
    font-size: 0.8rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.m-lead-reason .material-symbols-outlined {
    font-size: 0.9rem;
    vertical-align: middle;
}

.m-lead-actions-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.btn-maps-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-dark);
    text-decoration: none;
    padding: 0.3rem 0.6rem;
    border-radius: 6px;
    background: var(--surface2);
    border: 1px solid var(--border);
    transition: 0.2s;
}

.btn-maps-link:hover {
    background: var(--surface3);
}

/* ── Badges de prioridad ─────────────────────────────────── */
.badge-oro    { background: rgba(255,215,0,0.15);  color: #ffd700; border: 1px solid rgba(255,215,0,0.3);
                padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.78rem; font-weight: 700; }
.badge-plata  { background: rgba(192,192,192,0.15); color: #c0c0c0; border: 1px solid rgba(192,192,192,0.3);
                padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.78rem; font-weight: 700; }
.badge-bronce { background: rgba(205,127,50,0.15); color: #cd7f32; border: 1px solid rgba(205,127,50,0.3);
                padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.78rem; font-weight: 700; }
.badge-menor  { background: var(--surface2); color: var(--text-muted);
                border: 1px solid var(--border);
                padding: 0.2rem 0.5rem; border-radius: 6px; font-size: 0.78rem; font-weight: 700; }

/* ── Modal de detalle (estilo premium azul oscuro) ───────── */
.morfeo-modal-header {
    background: var(--blue-dark) !important;
    color: #fff !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 30px;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.morfeo-modal-header h2 {
    color: #fff !important;
    font-weight: 900;
    font-size: 1.4rem;
    margin: 0;
}

.morfeo-modal-close {
    background: transparent !important;
    border: none !important;
    color: #fff !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    padding: 5px !important;
    opacity: 0.8;
    cursor: pointer;
    transition: transform 0.2s, opacity 0.2s;
}

.morfeo-modal-close:hover {
    opacity: 1;
    transform: scale(1.15);
}

.morfeo-detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.morfeo-detail-item strong {
    display: block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin-bottom: 0.2rem;
}

.morfeo-detail-item span {
    font-size: 0.9rem;
    color: var(--text-dark);
    font-weight: 600;
}

.morfeo-detail-divider {
    border: none;
    border-top: 1px solid var(--border);
    margin: 0.5rem 0;
    grid-column: 1 / -1;
}

/* ── Acceso denegado ─────────────────────────────────────── */
.access-denied-screen {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: 1rem;
    text-align: center;
}

.access-denied-icon {
    font-size: 4rem;
    color: var(--red);
}

.access-denied-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--text-dark);
}

.access-denied-msg {
    font-size: 0.9rem;
    color: var(--text-muted);
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 820px) {
    .morfeo-view {
        padding: 16px;
    }

    .morfeo-view .ajustes-header {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
        gap: 16px;
    }

    .morfeo-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .morfeo-actions {
        flex-direction: column;
        width: 100%;
    }

    .morfeo-detail-grid {
        grid-template-columns: 1fr;
    }

    .morfeo-stats-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .morfeo-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .morfeo-table th,
    .morfeo-table td {
        padding: 0.6rem 0.5rem;
        font-size: 0.8rem;
    }
}

/* ── 21. MISC ─────────────────────────────────────────────── */
.dropdown-menu { display:none; position:absolute; top:40px; right:-10px; width:280px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--card-shadow-md); z-index:2000; overflow:hidden; }
.dropdown-header { background:var(--surface2); padding:14px; border-bottom:1px solid var(--border); font-weight:800; color:var(--text-dark); }
.dropdown-body { max-height:280px; overflow-y:auto; padding:8px; }
.badge-red { display:none; position:absolute; top:-5px; right:-5px; background:var(--orange); color:#fff; font-size:10px; font-weight:800; width:18px; height:18px; border-radius:50%; text-align:center; line-height:18px; }
.foto-upload-label { cursor:pointer; display:inline-block; position:relative; }
.foto-preview { width:100px; height:100px; border-radius:50%; object-fit:cover; border:2px dashed var(--border); }
.foto-upload-icon { position:absolute; bottom:0; right:0; background:var(--teal); color:#fff; border-radius:50%; width:30px; height:30px; display:flex; align-items:center; justify-content:center; }
.search-box { display:flex; align-items:center; background:var(--surface2); padding:8px 14px; border-radius:var(--radius-sm); color:var(--text-muted); border:1.5px solid var(--border); }
.search-box input { border:none; background:transparent; outline:none; margin-left:8px; font-family:var(--fb); color:var(--text-body); }
.type-switcher-container { display:flex; justify-content:center; padding-bottom:8px; }
.type-switcher { display:flex; background:var(--surface2); border:1.5px solid var(--border); border-radius:var(--radius-xl); padding:4px; gap:4px; }
.type-switcher input[type="radio"] { display:none; }
.type-switcher label { display:flex; align-items:center; gap:6px; padding:8px 16px; border-radius:20px; cursor:pointer; font-weight:700; font-size:13px; color:var(--text-muted); transition:all .25s; }
.type-switcher input[type="radio"]:checked + label { color:#fff; background:var(--blue); border-radius:20px; }
.box-oferta { background:var(--surface); padding:16px; border-radius:var(--radius-md); border:1px solid var(--border); }
.oferta-card { background:var(--surface2); padding:12px; border-radius:var(--radius-sm); border:1px solid var(--border); }
.temp-block { border-radius:var(--radius-sm); }
.launch-bg { background:rgba(84,83,237,.05); border:1px solid var(--blue-light); }
.follow-bg { background:rgba(242,89,34,.05); border:1px solid rgba(242,89,34,.2); }
.bg-teal-light { background:var(--teal-soft); border:none; color:var(--teal); padding:4px 10px; border-radius:6px; font-size:12px; font-weight:700; cursor:pointer; }
.font-sm { font-size:.88rem; }
.font-lg { font-size:1.1rem; }

/* ── 22. RESPONSIVE ───────────────────────────────────────── */
.mobile-only-flex  { display:none !important; }
.desktop-only-flex { display:flex !important; }

@media (max-width: 820px) {
  .mobile-only-flex  { display:flex !important; }
  .desktop-only-flex { display:none !important; }
  .app-shell { flex-direction: column !important; }
  /* Comportamiento Sidebar Móvil: Full Screen desde la IZQUIERDA */
  .sidebar { 
    position: fixed !important; top: 0; left: 0 !important; right: auto !important;
    height: 100dvh !important; width: 100vw !important; /* FIX: 100dvh resuelve el bug de la barra de Safari */
    transform: translateX(-100%) !important; z-index: 3000 !important; 
    opacity: 1 !important; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; 
    background: var(--blue-dark) !important; visibility: visible !important;
    box-shadow: none !important;
  }
  .sidebar.active { 
    transform: translateX(0) !important; 
    width: 100vw !important; 
    opacity: 1 !important; 
  }
  
  /* Arreglo definitivo de Scroll en Main Content */
  .main-content { 
    height: 100vh !important; 
    overflow-y: auto !important; 
    -webkit-overflow-scrolling: touch;
    padding-top: calc(var(--topbar-h) + env(safe-area-inset-top) + 10px) !important; 
    padding-bottom: calc(var(--bottom-nav-h) + 40px) !important; 
  }
  .topbar { 
    position: fixed !important; top: 0 !important; left: 0 !important; width: 100% !important; 
    height: calc(var(--topbar-h) + env(safe-area-inset-top)) !important; 
    padding: env(safe-area-inset-top) 16px 0 !important; 
    z-index: var(--z-navigation) !important; transition: transform 0.3s ease-in-out !important; 
    background: var(--surface) !important; border-bottom: 1px solid var(--border) !important; 
    display: flex !important; align-items: center !important; justify-content: space-between !important; 
    bottom: auto !important;
  }
  .bottom-nav {
    display:flex !important; position:fixed !important; bottom:0 !important; top: auto !important; left:0 !important; width:100% !important;
    height:auto !important; min-height:var(--bottom-nav-h) !important; background:var(--surface) !important;
    border-top:1px solid var(--border) !important; justify-content:space-around !important; align-items:center !important;
    z-index:var(--z-navigation) !important; transition:transform .3s ease-in-out !important;
    padding:6px 10px calc(14px + env(safe-area-inset-bottom)) 10px !important;
    border-radius:var(--radius-xl) var(--radius-xl) 0 0 !important;
    box-shadow:0 -4px 24px rgba(0,0,0,.04) !important;
  }
  .nav-item {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:4px; padding:6px; border-radius:var(--radius-md); border:none; background:transparent;
    color:var(--text-muted); font-family:var(--fb); font-size:10px; font-weight:600;
    transition:all .18s ease; cursor:pointer;
  }
  .nav-item .material-symbols-outlined { font-size:22px; font-variation-settings:'FILL' 0; transition:.18s; }
  .nav-item.active { color:var(--blue); }
  .nav-item.active .material-symbols-outlined { font-variation-settings:'FILL' 1; }
  .nav-item:active { transform:scale(.9); }
  /* Interfaz Sidebar Móvil Full Screen y Safe Areas */
  .sidebar-mobile-header { 
      padding: calc(18px + env(safe-area-inset-top)) 24px 18px; /* FIX: Evita que el reloj/batería tape los botones */
      border-bottom: 1px solid rgba(255,255,255,.1); 
      display: flex; justify-content: space-between; align-items: center; 
  }
  .btn-sidebar-config { background: transparent; border: none; color: #fff; font-weight: 800; display: flex; align-items: center; gap: 8px; font-size: 16px; cursor: pointer; }
  .sidebar-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(2px); opacity: 0; visibility: hidden; transition: .3s; z-index: 2500; }
  .sidebar-overlay.active { opacity: 1; visibility: visible; }
  
  /* FIX UX: Empujar el botón de logout lejos de la barra de Safari y Home Bar */
  .sidebar-footer {
      padding: 16px 20px calc(45px + env(safe-area-inset-bottom)) !important;
  }
  
  /* Botón de cierre móvil (ADN Modal Premium) */
  #btnCloseSidebar { 
      width: 36px !important; height: 36px !important; border-radius: 10px !important; 
      background: rgba(255,255,255,0.1) !important; color: white !important; 
      border: none !important; display: flex; align-items: center; justify-content: center; 
      cursor: pointer; z-index: 3100; transition: 0.2s; box-shadow: none !important;
  }
  #btnCloseSidebar:hover, #btnCloseSidebar:active { background: var(--orange) !important; transform: rotate(90deg); }
  #btnCloseSidebar .material-symbols-outlined { font-size: 20px !important; font-weight: 900; }
  #vista-dashboard { padding:16px 16px 24px !important; }
  .dashboard-row  { grid-template-columns:1fr; gap:12px; }
  .kpi-mobile-grid { display:grid; }
  .dash-greeting-bar { display:flex; }
  .kpi-grid    { 
    padding:10px 12px 6px; gap:8px; grid-template-columns:1fr 1fr;
    transition: max-height 0.3s ease, opacity 0.3s ease, margin 0.3s ease, padding 0.3s ease;
  }
  .kpi-data p  { font-size:1.2rem; }
  .kpi-data h3 { font-size:0.65rem; }
  /* Ocultar KPIs al hacer scroll hacia abajo en móvil */
  body.scroll-down .kpi-grid {
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
  }
  body:not(.scroll-down) .kpi-grid {
    max-height: 500px; /* suficiente para mostrar todos los KPIs */
    opacity: 1;
  }
  /* En pantallas excepcionalmente estrechas, un KPI por fila */
  @media (max-width: 380px) {
    .kpi-grid { grid-template-columns:1fr; }
    .kanban-column { width:260px; min-width:260px; max-height: none !important; height: auto; }
    .column-body   { max-height: none; overflow-y: visible; }
  }
  .kanban-board{ padding:10px 12px 40px; gap:10px; flex: none; max-height: none; overflow-y: visible; }
  .kanban-nav  { padding:6px 12px 10px; }
  .kanban-column { width:280px; min-width:280px; max-height: none !important; height: auto; }
  .column-body   { max-height: none; overflow-y: visible; }
  .lead-card { padding:10px 12px; }
  .lead-card h4 { font-size:0.85rem; }
  .lead-card p  { font-size:0.75rem; }
  .tag-origen   { font-size:0.62rem; padding:2px 6px; }
  .screen-pipeline.active { display: block !important; }
  .ajustes-view { padding:16px 16px 80px; }
  .agenda-view-container { padding:16px 16px 80px; }
  .directory-view { padding:16px 16px 80px; }
  .table-filters-bar { flex-direction:column; align-items:stretch; padding:12px; }
  .table-filters-bar > .d-flex { flex-direction:column; width:100%; gap:8px; }
  .table-filters-bar input,.table-filters-bar select { width:100%; }
  .bulk-actions-bar { flex-direction:column; gap:12px; text-align:center; }
  
  /* Optimización de Grids y Paneles B2B para Responsive (Móvil) */
  .grid-1-1, .grid-2-1, .grid-3-1, .grid-1-1-1, .grid-2-2-1 { grid-template-columns: 1fr !important; gap: 14px !important; }
  .ajustes-view .d-flex.gap-2.mb-4.flex-wrap { flex-direction: column; width: 100%; align-items: stretch !important; }
  .ajustes-view .search-box { max-width: 100% !important; width: 100%; margin-top: 4px; }
  .ajustes-view .btn-primary, .ajustes-view .btn-secondary { width: 100%; justify-content: center; }
  .playbook-grid { grid-template-columns:1fr; }
  .m-lead-card  { grid-template-columns:1fr 1fr; }
  .m-actions { grid-column:1 / -1; flex-direction:row; }
  .contact-action-grid { grid-template-columns:repeat(2,1fr); }
  #btnPrevTab,#btnNextTab { padding:8px 12px !important; }

  /* ── FIX: PIPELINE SCROLL NATURAL EN MÓVILES (Descongela el KPI Grid) ── */
  #screen-pipeline {
      display: block !important; 
      height: auto !important;
      overflow: visible !important;
  }
  .kpi-grid {
      position: relative !important;
      top: 0 !important;
      flex-shrink: 1 !important;
      margin-bottom: 20px;
  }
  .kanban-board {
      height: auto !important;
      overflow-y: visible !important;
      overflow-x: auto !important;
      padding-bottom: 20px;
  }
  .kanban-column {
      height: auto !important; 
      max-height: none !important;
  }
  .kanban-cards {
      height: auto !important;
      max-height: none !important;
      overflow-y: visible !important;
  }

@media (max-width: 768px) {
  /* Habilitamos texto en sidebar full-screen para mejor UX */
  .sidebar .nav-text { display: inline-block !important; font-size: 16px; font-weight: 600; color: #fff; }
  .sidebar-nav li a { padding: 18px 24px; gap: 16px; }
  .sidebar-nav li a .material-symbols-outlined { font-size: 26px; }
  /* Se elimina el override del botón de cierre para respetar el ADN premium */
}

@media (min-width: 821px) {
  #vista-dashboard { padding:24px 40px !important; }
}

.event-time-text { font-family: var(--fn); }
.event-duration-badge { font-weight: 600; font-size: 12px; background: var(--surface2); padding: 2px 10px; border-radius: 20px; color: var(--text-muted); margin-left: 6px; }

/* ── IDENTIDAD VISUAL POR TIPO DE EVENTO ── */
.ev-videollamada { background: rgba(84, 83, 237, 0.08) !important; border-left: 4px solid #5453ED !important; }
.ev-videollamada .event-badge { background: #5453ED !important; color: #fff !important; }

.ev-visita { background: rgba(0, 178, 169, 0.08) !important; border-left: 4px solid #00B2A9 !important; }
.ev-visita .event-badge { background: #00B2A9 !important; color: #fff !important; }

.ev-llamada { background: rgba(242, 89, 34, 0.08) !important; border-left: 4px solid #F25922 !important; }
.ev-llamada .event-badge { background: #F25922 !important; color: #fff !important; }

.ev-whatsapp { background: rgba(37, 211, 102, 0.08) !important; border-left: 4px solid #25D366 !important; }
.ev-whatsapp .event-badge { background: #25D366 !important; color: #fff !important; }

.ev-email { background: rgba(245, 158, 11, 0.08) !important; border-left: 4px solid #F59E0B !important; }
.ev-email .event-badge { background: #F59E0B !important; color: #fff !important; }

/* REFUERZO DE COLOR EN DÍA SELECCIONADO */
.day-pill.active { background: var(--blue) !important; border-color: var(--blue) !important; box-shadow: 0 4px 12px rgba(84, 83, 237, 0.3); }
.day-pill.active .num, .day-pill.active .dow { color: #ffffff !important; }
.day-pill.active .dot { background: #ffffff !important; }

/* AJUSTE MÓVIL: DÍA ARRIBA Y BOTONES COMPARTIDOS */
@media (max-width: 820px) {
    .calendar-header-row { flex-direction: column !important; align-items: center !important; text-align: center; }
    .calendar-header-date { flex-direction: column !important; gap: 2px !important; margin-bottom: 15px; }
    .cal-hero-date { font-size: 64px !important; line-height: 1; margin: 0; }
    .cal-hero-month { font-size: 18px !important; color: var(--text-muted); text-transform: capitalize; }
    
    .calendar-header-actions { width: 100% !important; display: flex !important; gap: 10px !important; }
    .calendar-header-actions button { flex: 1 !important; height: 50px !important; border-radius: 14px !important; font-size: 14px !important; }
}

/* Indicadores de buffers (bloqueos de tiempo) */
.buffer-indicator { font-size: 10px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; margin-top: 5px; display: flex; align-items: center; gap: 4px; }
.agenda-history-pane { max-height: 300px; overflow-y: auto; padding: 15px; background: var(--bg); border-radius: var(--radius-md); }
}

/* Estilos para el panel de historial en el modal de tarea */
.agenda-history-pane {
    max-height: 300px;
    overflow-y: auto;
    background: var(--bg);
    border-radius: var(--radius-md);
    padding: 12px;
}
.history-chat-bubble {
    background: var(--surface);
    border-radius: 12px;
    padding: 10px;
    margin-bottom: 8px;
    border-left: 3px solid var(--teal);
}
.history-meta {
    font-size: 10px;
    color: var(--text-muted);
    margin-bottom: 4px;
    display: flex;
    gap: 8px;
}
.history-text {
    font-size: 12px;
    color: var(--text-dark);
}

/* ── CLASES UTILITARIAS (REEMPLAZO DE INLINE STYLES) ── */
.hidden-visibility { visibility: hidden !important; }
.active-dot { background: var(--blue) !important; }
.modal-active { display: flex !important; }
.opacity-50 { opacity: 0.5 !important; }
.opacity-80 { opacity: 0.8 !important; }
.font-xxl { font-size: 48px !important; }
.font-lg { font-size: 18px !important; }
.font-md { font-size: 15px !important; }
.font-sm { font-size: 12px !important; }
.text-white { color: #ffffff !important; }
.bg-light { background: var(--surface2) !important; }
.cursor-not-allowed { cursor: not-allowed !important; }
.w-120px { width: 120px !important; }
.w-85px { width: 85px !important; }
.w-70px { width: 70px !important; }
.h-150px { min-height: 150px !important; }
.mr-2 { margin-right: 10px !important; }
.d-inline-flex { display: inline-flex !important; }
.avi-blue { background: var(--blue) !important; color: #fff !important; }
.btn-sm { padding: 4px 12px !important; font-size: 12px !important; height: 30px !important; }

/* Ajuste de alineación para iconos en badges de la agenda */
.event-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
}
.event-badge .material-symbols-outlined {
    font-size: 14px !important; /* Tamaño óptimo para el interior del badge */
}

/* ============================================================
   VISTA DE CONFIGURACIÓN Y COMPONENTES
============================================================ */
.ajustes-view { max-width: 1000px; margin: 0 auto; padding: 20px; }
.ajustes-tabs { display: flex; gap: 10px; border-bottom: 2px solid var(--border); padding-bottom: 10px; overflow-x: auto; scrollbar-width: none; }
.ajustes-tabs .tab-btn { background: none; border: none; padding: 8px 16px; font-weight: 700; color: var(--text-muted); cursor: pointer; border-radius: 8px; transition: 0.2s; white-space: nowrap; }
.ajustes-tabs .tab-btn:hover { background: var(--surface2); color: var(--text-dark); }
.ajustes-tabs .tab-btn.active { background: var(--blue-light); color: var(--blue); }

.tab-content { display: none; }
.tab-content.active { display: block; animation: fadeIn 0.3s ease; }
.ajustes-card { background: var(--surface); padding: 24px; border-radius: var(--radius-lg); box-shadow: var(--card-shadow); border: 1px solid var(--border); }

/* Avatares e inputs personalizados */
.avatar-upload-wrapper { position: relative; display: inline-block; }
.avatar-preview-lg { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; border: 3px solid var(--blue); background: var(--surface2); }
.btn-avatar-upload { position: absolute; bottom: -4px; right: -4px; background: var(--blue); color: white; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; border: 2px solid var(--surface); transition: 0.2s; }
.btn-avatar-upload:hover { background: var(--blue-dark); transform: scale(1.1); }

.input-group-prefix { display: flex; align-items: center; background: var(--bg); border: 1.5px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.input-group-prefix .prefix { padding: 0 10px; font-size: 11px; color: var(--text-muted); border-right: 1px solid var(--border); height: 46px; display: flex; align-items: center; white-space: nowrap; background: var(--surface2); }
.input-group-prefix input { border: none; flex: 1; border-radius: 0; }

.password-wrapper { position: relative; }
.password-wrapper input { padding-right: 40px; }
.password-wrapper .toggle-password { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); cursor: pointer; color: var(--text-muted); user-select: none; }

/* Utilidades de borde */
.border-left-orange { border-left: 4px solid var(--orange) !important; }
.border-left-red { border-left: 4px solid #EF4444 !important; }
.border-left-teal { border-left: 4px solid var(--teal) !important; }

.cfg-2fa-qr {
    width: 180px;
    height: 180px;
    border-radius: 8px;
    border: 2px solid var(--border);
    padding: 5px;
    background: #fff;
}

.cfg-2fa-secret {
    letter-spacing: 2px;
    font-size: 1.1rem;
}

.cfg-2fa-verify-box {
    max-width: 250px;
    margin: 0 auto;
}

.cfg-2fa-input {
    letter-spacing: 3px;
    font-size: 1.2rem;
}

/* ============================================================
   AVATARES DE NAVEGACIÓN Y DASHBOARD
============================================================ */
.dashboard-avatar-wrapper { width: 60px; height: 60px; border-radius: 50%; background: var(--surface2); padding: 0; overflow: hidden; border: 2px solid var(--blue); flex-shrink: 0; }
.dashboard-avatar-img { width: 100%; height: 100%; object-fit: cover; }

.topbar-divider { height: 24px; width: 1px; background: var(--border); margin: 0 8px; }
.topbar-avatar-link { 
    border-radius: 50%; 
    display: flex !important; 
    align-items: center; 
    justify-content: center; 
    padding: 0 !important; /* FIX: Elimina padding residual de .nav-link */
    margin: 0 !important;
    height: 32px;
}
.topbar-avatar-img { width: 32px !important; height: 32px !important; border-radius: 50%; object-fit: cover; border: 2px solid var(--blue); transition: 0.2s ease; display: block; }
.topbar-avatar-img:hover { transform: scale(1.05); border-color: var(--blue-dark); }

/* ============================================================
   COMPONENTES DEL DASHBOARD (GREETING)
============================================================ */
.dashboard-greeting { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; padding: 20px; background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--card-shadow); border: 1px solid var(--border); border-left: 4px solid var(--teal); }
.dashboard-greeting .greeting-text small { color: var(--text-muted); display: block; margin-bottom: 4px; font-weight: 600; }
.dashboard-greeting .greeting-text strong { font-size: var(--font-xl); color: var(--text-dark); font-weight: 900; }

/* ============================================================
   UTILIDADES ADICIONALES
============================================================ */
.min-h-60vh { min-height: 60vh !important; }

/* ============================================================
   AJUSTES DE MODALES PREMIUM Y SCROLL MÓVIL (iOS FIX)
============================================================ */

.modal-overlay,
.modal-backdrop,
.modal-premium-overlay,
.contacto-modal-overlay,
#modalCelula,
#modalUsuarioAdmin,
#leadModal,
#nuevoLeadModal,
#motivoDescarteModal {
    position: fixed !important;
    inset: 0;
    z-index: var(--z-modal) !important;
}

#modalEquipoColaborador {
    position: fixed !important;
    inset: 0;
    z-index: var(--z-modal-critical) !important;
}

.modal-overlay {
    padding-bottom: 0 !important;
}

.modal-overlay.active,
.modal-overlay:not(.hidden-by-default),
.modal-premium-overlay.active,
.contacto-modal-overlay.active,
#modalCelula:not(.hidden-by-default),
#modalUsuarioAdmin:not(.hidden-by-default),
#leadModal:not(.hidden-by-default),
#nuevoLeadModal:not(.hidden-by-default),
#motivoDescarteModal:not(.hidden-by-default) {
    z-index: var(--z-modal) !important;
}

#modalEquipoColaborador:not(.hidden-by-default) {
    z-index: var(--z-modal-critical) !important;
}

.modal-content,
.modal-content-premium,
.modal-premium {
    position: relative;
    z-index: calc(var(--z-modal) + 1) !important;
    height: 90vh;
    max-height: 90vh;
    margin-bottom: 0 !important;
}

.equipo-modal-content {
    position: relative;
    z-index: calc(var(--z-modal-critical) + 1) !important;
    margin-bottom: 0 !important;
}

/* --- CLASES LIMPIAS PARA MÓDULO PRODUCTOS (0 INLINE STYLES) --- */
.tracking-wide { letter-spacing: 1px; }

.theme-licencia { color: var(--blue); border-color: var(--blue); background: rgba(84,83,237,0.15); }
.theme-addon { color: var(--amber); border-color: var(--amber); background: rgba(245,158,11,0.15); }
.theme-subscripcion { color: var(--orange); border-color: var(--orange); background: rgba(242,89,34,0.15); }
.theme-nfc { color: var(--teal); border-color: var(--teal); background: rgba(0,178,169,0.15); }
.theme-dev { color: var(--text-muted); border-color: var(--text-muted); background: rgba(148,163,184,0.15); }

.stripe-licencia { background: var(--blue); }
.stripe-addon { background: var(--amber); }
.stripe-subscripcion { background: var(--orange); }
.stripe-nfc { background: var(--teal); }
.stripe-dev { background: var(--text-muted); }

/* FIX ESTRATÉGICO: Obligar a ocultar elementos God-Only cuando JS dicta que se escondan */
[data-role="god"] .god-only.hidden,
[data-role="god"] .god-only.hidden-by-default { 
    display: none !important; 
}
.form-premium-wrapper { display: flex; flex-direction: column; flex: 1; overflow: hidden; min-height: 0; }
.modal-body-premium { flex: 1; overflow-y: auto; min-height: 0; -webkit-overflow-scrolling: touch; }

/* --- FIX UX: MODAL HEADERS PREMIUM Y BOTÓN DE CERRAR LIMPIO --- */
/* Convierte todos los headers (Células, Tareas, etc.) al estilo azul oscuro premium */
.modal-header, .contacto-header-premium, .modal-header-premium {
    padding: 24px 30px; 
    background: var(--blue-dark) !important; 
    color: white !important; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    flex-shrink: 0;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}
.modal-header h2, .contacto-header-premium h2, .modal-header-premium h2 {
    color: white !important; 
    font-size: 1.4rem; 
    font-weight: 900; 
    margin: 0;
}
/* Fuerza los iconos y textos internos a blanco para el contraste perfecto */
.modal-header .text-blue, .modal-header .text-dark, .modal-header-premium .text-blue, .contacto-header-premium .text-blue {
    color: white !important; 
}

/* Botón de cerrar "Limpio" (Excluimos .close-btn-fixed para que conserve su rotación y fondo naranja) */
.modal-header .icon-btn, 
.contacto-header-premium .icon-btn, 
.modal-header-premium .icon-btn {
    background: transparent !important;
    border: none !important;
    color: white !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    padding: 5px !important;
    position: static !important; 
    opacity: 0.8;
    cursor: pointer;
    transition: transform 0.2s, opacity 0.2s;
}
.modal-header .icon-btn:hover, 
.contacto-header-premium .icon-btn:hover, 
.modal-header-premium .icon-btn:hover {
    background: transparent !important;
    opacity: 1;
    transform: scale(1.15);
}
.modal-header .icon-btn span, 
.contacto-header-premium .icon-btn span, 
.modal-header-premium .close-btn-fixed span {
    font-size: 28px !important; /* Tamaño de la cruz (X) limpio y proporcionado */
}

/* Ajuste Estricto para Móviles */
@media (max-width: 820px) {
    .modal-overlay { 
        padding-bottom: 0 !important;
    }
    .modal-content { 
        height: calc(90vh - 2rem) !important;  /* Altura fija respetando safe-area */
        max-height: 90vh !important;
    }
    .modal-body-premium { padding: 20px; gap: 15px; }
}

/* ============================================================
   23. MÓDULO DE PRODUCTOS (REDISEÑO GRID PERFECTO)
============================================================ */
.prod-view { flex: 1; overflow-y: auto; background: var(--bg); padding: 30px 0; }

/* Contenedor centralizado con respiro */
.prod-container-centered { width: 800px; max-width: 90%; margin: 0 auto; }

/* Hero Banner Creativo - Gradiente Puro */
.prod-hero-banner {
    background: linear-gradient(135deg, rgba(45,52,118,1), rgba(84,83,237,1));
    border-radius: var(--radius-xl);
    padding: 36px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    box-shadow: 0 15px 35px rgba(84, 83, 237, 0.2);
    position: relative;
    overflow: hidden;
}

/* Efecto de brillo sutil para compensar la falta de imagen */
.prod-hero-banner::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%);
    pointer-events: none;
}
.prod-hero-text { color: white; }
.hero-chip { display: inline-block; background: rgba(255,255,255,0.15); padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; backdrop-filter: blur(4px); }
.prod-hero-text h1 { color: white; font-size: 26px; font-weight: 900; margin: 0 0 6px 0; }
.prod-hero-text p { color: rgba(255,255,255,0.8); font-size: 13px; margin: 0; max-width: 90%; }

/* Filtros Compartiendo Width al 100% */
.prod-filter-row { display: flex; width: 100%; gap: 12px; margin-bottom: 30px; }
.prod-filter-row .day-pill { flex: 1; min-width: 0; }

/* Tarjetas Grid Perfecto (Alineación Horizontal Estricta) */
.prod-card-item { margin-bottom: 16px; }
.info-pwa.prod-card {
    background: var(--surface) !important; 
    border-radius: 16px !important; 
    border: 1px solid var(--border) !important;
    padding: 0 20px 0 0 !important; 
    display: grid !important; 
    /* Las 5 columnas matemáticas: Precio | Franja | Foto | Textos | Botones */
    grid-template-columns: 130px 4px 50px 1fr 90px;
    align-items: center; 
    gap: 16px;
    box-shadow: var(--card-shadow) !important;
    position: relative;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}
.info-pwa.prod-card:hover { transform: translateY(-2px) !important; box-shadow: var(--card-shadow-md) !important; }

/* 1. Columna Precio (Izquierda) */
.prod-pricing-left { padding: 20px 10px; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.prod-pricing-val { font-family: var(--fn); font-size: 15px; font-weight: 900; color: var(--text-dark); display: block; }
.prod-pricing-cycle { font-size: 10px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; margin-top: 4px; display: block; }

/* 2. Columna Franja */
.prod-pwa-stripe { height: 60%; width: 4px; border-radius: 4px; justify-self: center; }

/* 3. Columna Visual */
.prod-visual-box { width: 50px; height: 50px; border-radius: 12px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: white; }
.prod-visual-box.with-icon { background: var(--surface2); border: 1px solid var(--border); }
.prod-visual-box img { width: 100%; height: 100%; object-fit: cover; }
.prod-visual-box .material-symbols-outlined { font-size: 24px; }

/* 4. Columna Info */
.prod-pwa-info { min-width: 0; padding: 15px 0; }
.prod-pwa-info h4 { margin: 0; font-size: 15px; font-weight: 900; color: var(--text-dark); display: flex; align-items: center; gap: 8px; }
.prod-pwa-info p { 
    margin: 4px 0 0 0; font-size: 12px; color: var(--text-body); line-height: 1.5; 
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; 
    overflow: hidden; min-height: 36px;
}

/* 5. Columna Acciones (Alineación derecha) */
.prod-pwa-actions { display: flex; gap: 8px; justify-content: flex-end; }
.prod-pwa-actions .icon-btn { background: var(--surface2); border: 1px solid var(--border); width: 36px; height: 36px; border-radius: 50%; color: var(--text-body); transition: 0.2s; }
.prod-pwa-actions .icon-btn:hover { background: var(--blue-light); color: var(--blue); border-color: var(--blue); }

/* Responsive Móvil */
@media (max-width: 820px) {
    .prod-container-centered { width: 100%; max-width: 100%; padding: 0 16px; margin: 20px 0 80px 0; }
    .prod-hero-banner { flex-direction: column; align-items: flex-start; padding: 24px; gap: 20px; border-radius: 20px; }
    .prod-hero-banner .btn-primary { width: 100%; justify-content: center; }
    .prod-filter-row { gap: 6px; }
    .prod-filter-row .day-pill { padding: 10px 4px; }
    .prod-filter-row .day-pill .dow { font-size: 9px; }
    .prod-filter-row .day-pill .num { font-size: 14px; }
    
    /* En móvil colapsamos el grid a 2 filas para que quepa bien */
    .info-pwa.prod-card {
        grid-template-columns: 4px 46px 1fr;
        padding: 16px 16px 16px 0 !important;
        gap: 12px;
    }
    .prod-pricing-left { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; padding: 0 0 12px 16px; border-bottom: 1px solid var(--border); margin-bottom: 4px; }
    .prod-pricing-val { font-size: 16px; }
    .prod-pwa-stripe { height: 100%; }
    .prod-pwa-actions { grid-column: 1 / -1; justify-content: flex-start; padding-left: 16px; margin-top: 8px; }
}

/* ============================================================
   ESTILOS ESPECÍFICOS PARA FICHA TÉCNICA
============================================================ */
.ficha-tecnica-grid { display: grid; min-height: 400px; }
.ficha-bullets-list { list-style: none; padding: 0; margin: 0; }
.finance-box { 
    background: var(--surface); border: 2px solid var(--blue-light); 
    border-radius: var(--radius-md); padding: 18px; 
    box-shadow: 0 4px 12px rgba(84,83,237,0.05); 
}
.border-right { border-right: 1px solid var(--border); }

.ficha-badge-tipo {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.3);
    letter-spacing: 1px;
}

.prod-card-item.is-coming-soon { opacity: 0.85; }
.prod-card-item.is-coming-soon .prod-visual-box { filter: grayscale(1); opacity: 0.6; }
.prod-card-item.is-coming-soon .prod-pricing-val { color: var(--text-muted); font-style: italic; }

.badge-soon {
    background: var(--surface3) !important;
    color: var(--text-muted) !important;
    font-size: 9px !important;
    padding: 2px 6px;
    border: 1px solid var(--border);
}

.badge-soon-mini {
    font-size: 9px;
    background: var(--surface2);
    color: var(--text-muted);
    border: 1px solid var(--border);
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: 800;
    letter-spacing: 0.5px;
    margin-left: 8px;
}

.is-soon-finance {
    filter: grayscale(1);
    pointer-events: none;
    opacity: 0.6;
}

.ficha-prod-slider { position: relative; width: 100%; height: 260px; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 20px; background: var(--surface2); border: 1px solid var(--border); }
.slider-container { display: flex; width: 300%; height: 100%; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.slider-slide { width: 33.333%; height: 100%; flex-shrink: 0; }
.slider-slide img { width: 100%; height: 100%; object-fit: cover; }

/* Navegación Slider */
.slider-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; background: rgba(15, 20, 36, 0.6); color: white; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 5; transition: 0.2s; backdrop-filter: blur(4px); }
.slider-arrow:hover { background: var(--teal); }
.arrow-prev { left: 10px; }
.arrow-next { right: 10px; }

.slider-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 5; }
.slider-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, 0.4); cursor: pointer; transition: 0.2s; border: none; }
.slider-dot.active { background: var(--teal); width: 20px; border-radius: 10px; }

/* Control de Permisos God y Blindaje de Visibilidad */
.god-only { display: none !important; }
[data-role="god"] .god-only { display: flex !important; }
[data-role="god"] .god-only.hidden,
[data-role="god"] .god-only.hidden-by-default { display: none !important; }

/* --- ADMINISTRADOR DE GALERÍA MÓDULO PRODUCTOS --- */
.gallery-thumb-item { display: flex; align-items: center; justify-content: space-between; background: var(--surface); padding: 8px; border-radius: var(--radius-sm); border: 1px solid var(--border); margin-bottom: 8px; transition: 0.2s; }
.gallery-thumb-item.is-cover { border-color: var(--teal); background: var(--teal-soft); }
.gallery-thumb-img { width: 40px; height: 40px; border-radius: 6px; object-fit: cover; border: 1px solid var(--border); }
.gallery-thumb-actions { display: flex; gap: 4px; }
.gallery-thumb-btn { background: var(--surface2); border: 1px solid var(--border); border-radius: 4px; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--text-muted); transition: 0.2s; }
.gallery-thumb-btn:hover { background: var(--blue-light); color: var(--blue); border-color: var(--blue); }
.gallery-thumb-btn.btn-danger:hover { background: var(--red-soft); color: var(--red); border-color: var(--red); }

@media (max-width: 820px) {
    .grid-2-1 { grid-template-columns: 1fr !important; }
    .border-right { border-right: none; border-bottom: 1px solid var(--border); }
    .finance-box { padding: 14px; }
}

/* ============================================================
   25. BI DASHBOARD ENTERPRISE (COMISIONES PRO)
============================================================ */
/* Contenedor Maestro Bento Grid */
.bi-dashboard-layout { display: flex; flex-direction: column; gap: 24px; margin-top: 20px; }

/* Capa de Insights Automáticos */
.bi-insights-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.bi-insight-card { 
    background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); 
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    border-radius: 16px; padding: 16px 20px; display: flex; align-items: flex-start; gap: 12px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04); transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.3s;
}
.bi-insight-card:hover { transform: translateY(-4px); border-color: rgba(255, 255, 255, 0.2); }
.bi-insight-icon { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bi-insight-text { display: flex; flex-direction: column; gap: 4px; }
.bi-insight-text span { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-muted); }
.bi-insight-text p { font-size: 13px; font-weight: 600; color: var(--text-dark); margin: 0; line-height: 1.4; }

/* Capa Gráfica: Bento Box Modular */
.bi-bento-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.bi-widget { 
    background: var(--surface); border: 1px solid var(--border); border-radius: 20px; 
    padding: 24px; display: flex; flex-direction: column;
    box-shadow: 0 2px 12px rgba(84, 83, 237, 0.03); transition: box-shadow 0.3s;
    position: relative; overflow: hidden;
}
.bi-widget:hover { box-shadow: 0 12px 32px rgba(84, 83, 237, 0.08); }
.bi-widget-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.bi-widget-title { font-size: 15px; font-weight: 800; color: var(--text-dark); display: flex; align-items: center; gap: 8px; margin: 0; }
.bi-widget-action { background: transparent; border: none; color: var(--text-muted); cursor: pointer; border-radius: 6px; padding: 4px; transition: 0.2s; }
.bi-widget-action:hover { background: var(--surface2); color: var(--blue); }
.bi-widget-body { flex: 1; min-height: 250px; position: relative; }

/* Tamaños de Widgets (12 columnas) */
.widget-col-8 { grid-column: span 8; }
.widget-col-4 { grid-column: span 4; }
.widget-col-6 { grid-column: span 6; }
.widget-col-12 { grid-column: span 12; }

/* Skeleton Loader Premium */
.skeleton-loader { animation: skeleton-glow 1.5s ease-in-out infinite alternate; background: linear-gradient(90deg, var(--surface2) 25%, var(--border) 50%, var(--surface2) 75%); background-size: 200% 100%; border-radius: 8px; width: 100%; height: 100%; }
@keyframes skeleton-glow { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Responsive Grid */
@media (max-width: 1100px) {
    .widget-col-8, .widget-col-4, .widget-col-6 { grid-column: span 12; }
    .bi-widget-body { min-height: 220px; }
}

/* --- PWA SOFT-LOCK OVERLAY --- */
.lock-screen-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bg); /* Usa la variable de tu tema */
    z-index: 9999;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.lock-screen-overlay.d-flex {
    display: flex; /* Se usa para sobreescribir el hidden-by-default */
}

.lock-screen-card {
    background: var(--surface);
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    width: 90%;
    max-width: 380px;
    border-top: 5px solid var(--blue);
}

/* ============================================================ */
/* UI CAMPANA DE NOTIFICACIONES Y SEGURIDAD */
/* ============================================================ */

/* --- Control de Visibilidad Global --- */
.hidden-by-default { display: none !important; }

/* --- UI Campana y Dropdown --- */
.notification-bell-wrapper {
    position: relative;
}
.badge-notif {
    position: absolute;
    top: -2px;
    right: -2px;
    background-color: #e74c3c;
    color: white;
    border-radius: 50%;
    padding: 2px 5px;
    font-size: 10px;
    font-weight: bold;
}
.notif-dropdown {
    position: absolute;
    right: -10px;
    top: 45px;
    width: 340px;
    max-width: calc(100vw - 32px); /* Evita que se corte en móvil */
    background: white;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    border-radius: 8px;
    z-index: 1000;
    max-height: 350px;
    overflow-y: auto;
}
@media (max-width: 400px) {
    .notif-dropdown { right: -60px; } /* Ajuste fino para pantallas angostas */
}
.notif-header {
    padding: 12px;
    border-bottom: 1px solid var(--border);
}
.notif-item {
    padding: 12px;
    border-bottom: 1px solid var(--border);
}
.notif-item.unread {
    background-color: var(--surface2);
}

/* --- Pantalla de Bloqueo (Soft-Lock PWA) --- */
.lock-screen-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(10px);
    z-index: 15000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lock-screen-card {
    background: var(--surface);
    padding: 40px;
    border-radius: var(--radius-xl);
    box-shadow: 0 20px 50px rgba(0,0,0,0.3);
    width: 90%;
    max-width: 400px;
    border-top: 5px solid var(--blue);
}

/* --- Feedback Visual (PIN Incorrecto) --- */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}
.shake-error { animation: shake 0.5s ease-in-out; }

/* --- Componentes de Login (2FA) y Utilidades --- */
.font-lg { font-size: 1.5rem !important; }
.fw-900 { font-weight: 900 !important; }
.pt-3 { padding-top: 15px !important; }
.border-top { border-top: 1px solid var(--border) !important; }
.border-radius-sm { border-radius: var(--radius-sm); }

#otp_token {
    letter-spacing: 8px;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--blue);
}

/* ============================================================
   CORRECCIONES INLINE -> CLASES (HARDENING)
   ============================================================ */
.login-card--unlock {
    border-top: 5px solid #00B2A9 !important;
}

.security-code-input {
    text-align: center !important;
    font-size: 28px !important;
    letter-spacing: 8px !important;
    font-weight: 800 !important;
    color: #00B2A9 !important;
}

.btn-accent-teal {
    background-color: #00B2A9 !important;
}

.waiting-message {
    background: var(--amber-soft);
    border-color: var(--amber);
    color: #9A6B00; /* color oscuro legible sobre fondo ámbar */
}

.alert-warning {
    background: var(--amber-soft);
    border-color: var(--amber);
    color: var(--amber-dark, #9A6B00);
}

/* Utilidades de fondo ámbar (necesarias para login waiting) */
.bg-amber-soft {
    background: var(--amber-soft) !important;
}
.border-amber {
    border-color: var(--amber) !important;
}
.text-amber-dark {
    color: var(--amber-dark, #9A6B00) !important;
}

.lh-sm { line-height: 1.4 !important; }

.badge-venue {
    background: rgba(0, 178, 169, 0.15);
    color: var(--teal);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: bold;
    margin-left: 5px;
    border: 1px solid var(--teal);
}

/* Estilo para el nuevo KPI de Venue */
.kpi-venue {
    color: var(--teal) !important;
}
.kpi-venue .material-symbols-outlined {
    font-size: 18px;
}

/* ============================================================
   ESTILOS PARA TABLA DE LEADS (ELIMINAR INLINE)
============================================================ */
.lead-identidad-giro {
    font-size: 11px;
    color: var(--text-muted);
    margin-left: 22px;
}
.lead-temp-row {
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}
.temp-icon {
    font-size: 14px;
}

/* ============================================================
   TABLA DE LEADS – ESTRUCTURA BASE (8 columnas)
   ============================================================ */
.equipo-table {
    display: table !important;
    width: 100%;
    border-collapse: collapse;
    table-layout: auto; /* Permite que las columnas se ajusten al contenido */
}
.equipo-table thead {
    display: table-header-group !important;
}
.equipo-table tbody {
    display: table-row-group !important;
}
.equipo-table tr {
    display: table-row !important;
}
.equipo-table th,
.equipo-table td {
    display: table-cell !important;
    padding: 12px 8px;
    vertical-align: middle;
    border-bottom: 1px solid var(--border);
    white-space: nowrap; /* Evita que el texto se quiebre */
}
/* Ajuste para checkbox, clasificación y acciones */
.equipo-table td:first-child {
    text-align: center;
    white-space: normal;
    width: 40px;
}
.equipo-table td:nth-child(2) {
    text-align: center;
    white-space: normal;
    width: 100px;
}
.equipo-table td:last-child {
    text-align: center;
    white-space: normal;
    width: 70px;
}
/* Anchos sugeridos para desktop (opcional, no fijos) - ahora 8 columnas */
@media (min-width: 821px) {
    .equipo-table th:nth-child(3),
    .equipo-table td:nth-child(3) { min-width: 220px; } /* Lead / Prospecto */
    .equipo-table th:nth-child(4),
    .equipo-table td:nth-child(4) { min-width: 160px; } /* Contacto y Ubicación */
    .equipo-table th:nth-child(5),
    .equipo-table td:nth-child(5) { min-width: 140px; } /* Potencial & Temperatura */
    .equipo-table th:nth-child(6),
    .equipo-table td:nth-child(6) { min-width: 160px; } /* Forecast y Origen */
    .equipo-table th:nth-child(7),
    .equipo-table td:nth-child(7) { min-width: 120px; } /* Asignado a */
}

/* ============================================================
   SCROLL HORIZONTAL PARA MÓVIL Y TABLETS (8 columnas)
   ============================================================ */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 1rem;
}

@media (max-width: 820px) {
    .equipo-table {
        min-width: 1100px; /* Suficiente para 8 columnas */
    }
    .equipo-table th,
    .equipo-table td {
        white-space: nowrap;
    }
    /* Ajuste de la barra de bulk actions en móvil */
    .bulk-actions-bar {
        flex-direction: column !important;
        gap: 12px;
        text-align: center;
    }
    .bulk-actions-bar .d-flex {
        justify-content: center;
    }
}

.btn-secondary, .btn-primary, .btn {
    white-space: nowrap; /* Asegurar que no haya quiebre de línea en los botones del footer */
}

/* Badges de estado */
.bg-red-light {
    background-color: #ffe6e6;
}
.text-red {
    color: #d32f2f;
}
.bg-teal-light {
    background-color: #e0f2f1;
}
.text-teal {
    color: #00796b;
}
.badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

/* Mejora para botón rechazar */
.btn-rechazar-descarte {
    background-color: #fff0f0 !important;
    border: 1px solid #ff4d4d !important;
    color: #cc0000 !important;
    transition: all 0.2s ease;
    padding: 6px 12px !important;  /* Añade padding interno */
    gap: 6px !important;          /* Espacio entre icono y texto */
}
.btn-rechazar-descarte:hover {
    background-color: #ffe0e0 !important;
    border-color: #cc0000 !important;
    color: #990000 !important;
}
.btn-rechazar-descarte .material-symbols-outlined {
    font-size: 16px;
}

/* ============================================================
   24. MÓDULO EQUIPO — HUMAN CORE / ez CONNECT
============================================================ */

.equipo-view {
    flex: 1;
    overflow-y: auto;
    background: var(--bg);
    padding: 30px 0;
}

.equipo-container-centered {
    width: 980px;
    max-width: 92%;
    margin: 0 auto;
}

.equipo-hero-banner {
    background:
        radial-gradient(circle at top right, rgba(242, 89, 34, 0.26), transparent 32%),
        linear-gradient(135deg, var(--blue-dark), var(--blue));
    border-radius: var(--radius-xl);
    padding: 36px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
    box-shadow: 0 15px 35px rgba(84, 83, 237, 0.20);
    position: relative;
    overflow: hidden;
}

.equipo-hero-banner::after {
    content: '';
    position: absolute;
    inset: -50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.06) 0%, transparent 70%);
    pointer-events: none;
}

.equipo-hero-text {
    color: #ffffff;
    position: relative;
    z-index: 1;
}

.equipo-hero-text h1 {
    color: #ffffff;
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 6px;
}

.equipo-hero-text p {
    color: rgba(255, 255, 255, 0.82);
    font-size: 14px;
    margin: 0;
    max-width: 520px;
}

.equipo-btn-main {
    position: relative;
    z-index: 1;
    white-space: nowrap;
}

.equipo-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 22px;
}

.equipo-stat-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: var(--card-shadow);
}

.equipo-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.equipo-stat-icon span {
    font-size: 24px;
}

.equipo-filter-row {
    margin-bottom: 20px;
}

.equipo-filter-row .day-pill {
    border: none;
    cursor: pointer;
    font-family: var(--fb);
}

.equipo-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 20px;
}

.equipo-search-pill {
    flex: 1;
    max-width: none;
}

.equipo-grid-wrapper {
    width: 100%;
}

.equipo-grid {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.equipo-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 18px;
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 18px;
    align-items: center;
    box-shadow: var(--card-shadow);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.equipo-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--card-shadow-md);
    border-color: rgba(84, 83, 237, 0.30);
}

.equipo-card-avatar {
    width: 64px;
    height: 64px;
    border-radius: 22px;
    background: var(--blue-light);
    overflow: hidden;
    border: 3px solid rgba(84, 83, 237, 0.14);
}

.equipo-card-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.equipo-card-main {
    min-width: 0;
}

.equipo-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.equipo-card-identity h3 {
    margin: 0;
    color: var(--text-dark);
    font-size: 17px;
    font-weight: 900;
}

.equipo-card-identity p {
    margin: 3px 0 0;
    color: var(--text-body);
    font-size: 13px;
    font-weight: 600;
}

.equipo-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.equipo-mini-chip {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(45, 52, 118, 0.06);
    color: var(--blue-dark);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.equipo-public-row {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
}

.equipo-public-row .material-symbols-outlined {
    font-size: 16px;
    color: var(--teal);
}

.equipo-status-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.equipo-status-badge.is-active {
    background: var(--teal-soft);
    color: var(--teal);
}

.equipo-status-badge.is-inactive {
    background: var(--amber-soft);
    color: var(--amber);
}

.equipo-status-badge.is-blocked {
    background: var(--red-soft);
    color: var(--red);
}

.equipo-card-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.equipo-empty-state {
    background: var(--surface);
    border: 1px dashed var(--border2);
    border-radius: 24px;
    padding: 44px 24px;
    text-align: center;
    color: var(--text-muted);
}

.equipo-empty-state .material-symbols-outlined {
    font-size: 42px;
    color: var(--blue);
    margin-bottom: 12px;
}

.equipo-empty-state h3 {
    margin-bottom: 6px;
    font-weight: 900;
}

.equipo-modal-content {
    max-width: 1080px;
}

.equipo-form {
    padding: 0;
}

.equipo-modal-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 0;
}

.equipo-form-main {
    padding: 28px;
    border-right: 1px solid var(--border);
}

.equipo-form-side {
    background: var(--surface2);
    padding: 28px;
}

.equipo-avatar-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 18px;
    margin-bottom: 18px;
    box-shadow: var(--card-shadow);
}

.equipo-avatar-preview {
    width: 130px;
    height: 130px;
    margin: 0 auto 18px;
    border-radius: 36px;
    overflow: hidden;
    border: 4px solid rgba(84, 83, 237, 0.15);
    background: var(--blue-light);
}

.equipo-avatar-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.equipo-side-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 18px;
    margin-bottom: 16px;
    box-shadow: var(--card-shadow);
}

.equipo-side-card h4 {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 900;
}

.equipo-side-card p {
    margin: 0 0 8px;
    font-size: 12px;
    color: var(--text-body);
}

.equipo-side-card strong {
    color: var(--blue);
    font-size: 12px;
    word-break: break-word;
}

.equipo-module-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.equipo-module-list li {
    font-size: 12px;
    font-weight: 800;
    color: var(--text-body);
    display: flex;
    align-items: center;
    gap: 8px;
}

.equipo-module-list li::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teal);
    flex-shrink: 0;
}

.equipo-translations-help {
    background: var(--blue-light);
    border-left: 4px solid var(--blue);
    color: var(--blue-dark);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: 16px;
}

.equipo-translations-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.equipo-translation-box {
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 16px;
}

.equipo-translation-box h4 {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 900;
    color: var(--blue-dark);
}

.equipo-modal-footer {
    justify-content: flex-end;
    background: var(--surface);
}

@media (max-width: 900px) {
    .equipo-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .equipo-modal-grid {
        grid-template-columns: 1fr;
    }

    .equipo-form-main {
        border-right: none;
        border-bottom: 1px solid var(--border);
    }

    .equipo-form-side {
        order: -1;
    }

    .equipo-translations-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .equipo-view {
        padding: 20px 0;
    }

    .equipo-container-centered {
        max-width: 94%;
    }

    .equipo-hero-banner {
        flex-direction: column;
        align-items: flex-start;
        padding: 28px 24px;
    }

    .equipo-btn-main {
        width: 100%;
        justify-content: center;
    }

    .equipo-stats-grid {
        grid-template-columns: 1fr;
    }

    .equipo-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .equipo-card {
        grid-template-columns: 54px 1fr;
    }

    .equipo-card-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }

    .equipo-filter-row {
        overflow-x: auto;
        padding-bottom: 4px;
    }

    .equipo-filter-row .day-pill {
        min-width: 96px;
    }
}

/* ============================================================
   CONFIGURACIÓN — LIMPIEZA CSP / NO INLINE
============================================================ */

.cfg-pin-field-wrapper {
    max-width: 150px;
}

.cfg-pin-input {
    letter-spacing: 4px;
    font-size: 1.2rem;
}

/* ============================================================
   EQUIPO — COVER MEDIA 16:9
============================================================ */

.equipo-cover-editor {
    margin-top: 14px;
    background: var(--surface2);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 14px;
}

.equipo-cover-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(84, 83, 237, 0.12), rgba(242, 89, 34, 0.10)),
        var(--surface);
    cursor: grab;
    user-select: none;
    touch-action: none;
}

.equipo-cover-frame:active {
    cursor: grabbing;
}

.equipo-cover-frame img,
.equipo-cover-frame video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    transform: scale(1);
    transform-origin: center;
    transition: transform 0.18s ease, object-position 0.18s ease;
    display: block;
}

.equipo-cover-controls {
    margin-top: 12px;
}

.equipo-cover-controls input[type="range"] {
    width: 100%;
}

.equipo-video-trim-row {
    margin-top: 10px;
}

/* ============================================================
   EQUIPO — IDIOMA, FOOTER Y ESTADO DE CARGA MEDIA
============================================================ */

.lang-select-shell {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lang-flag-preview {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    overflow: hidden;
    border: 1.5px solid var(--border);
    background: var(--surface2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lang-flag-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipo-recovery-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.equipo-recovery-actions .btn-secondary {
    width: 100%;
    justify-content: center;
}

.equipo-modal-footer {
    position: sticky;
    bottom: 0;
    z-index: 30;
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    box-shadow: 0 -12px 24px rgba(15, 23, 42, 0.08);
}

/* ============================================================
   EQUIPO — ESTADO DE CARGA / PROCESAMIENTO MEDIA
============================================================ */

.equipo-upload-status {
    position: fixed !important;
    left: max(18px, env(safe-area-inset-left, 0px));
    right: max(18px, env(safe-area-inset-right, 0px));
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    z-index: var(--z-upload-status) !important;
    max-width: 520px;
    margin: 0 auto;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(84, 83, 237, 0.25);
    background: var(--surface);
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.28);
    pointer-events: auto;
    isolation: isolate;
}

.equipo-upload-status.is-visible {
    display: block !important;
}

.equipo-upload-status-top {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text-dark);
    font-weight: 800;
    margin-bottom: 10px;
}

.equipo-upload-status-top .material-symbols-outlined {
    color: var(--blue);
    animation: equipoSpin 1s linear infinite;
}

.equipo-upload-progress {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--surface3);
    margin-bottom: 8px;
}

.equipo-upload-progress-bar {
    width: 0%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--blue), var(--teal));
    transition: width 0.3s ease;
}

.equipo-upload-status p {
    margin: 0;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
}

@keyframes equipoSpin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.equipo-translation-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.equipo-translation-flag {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid var(--border);
    background: var(--surface2);
    flex-shrink: 0;
}

/* ============================================================
   EQUIPO — AJUSTES RESPONSIVE / RECUPERACIÓN
   ============================================================ */

.equipo-recovery-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.equipo-recovery-actions .btn-secondary {
    width: 100%;
    justify-content: center;
}

.equipo-recovery-actions .fa-whatsapp {
    font-size: 18px;
    line-height: 1;
}

.equipo-user-contact-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.equipo-user-contact-row .form-group {
    width: 100%;
    min-width: 0;
}

.equipo-user-contact-row .input-domain-group,
.equipo-user-contact-row .form-control,
.equipo-user-contact-row #equipoTelefono {
    width: 100%;
    min-width: 0;
}

.equipo-user-contact-row .domain-addon {
    flex-shrink: 0;
}

/* ============================================================
   EQUIPO — TABS DEL MODAL / DATOS SENSIBLES
   ============================================================ */

body.equipo-modal-open {
    overflow: hidden !important;
}

#modalEquipoColaborador {
    position: fixed !important;
    inset: 0 !important;
    z-index: var(--z-modal-critical) !important;
    isolation: isolate;
    padding-top: env(safe-area-inset-top, 0px);
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
}

#modalEquipoColaborador:not(.hidden-by-default) {
    display: flex !important;
}

.equipo-modal-content {
    display: flex;
    flex-direction: column;
    width: min(820px, 100vw);
    max-width: calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));
    max-height: calc(100dvh - env(safe-area-inset-top, 0px));
    overflow: hidden;
    z-index: calc(var(--z-modal-critical) + 1) !important;
    isolation: isolate;
}

.equipo-form {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0 !important;
}

.equipo-tabs-nav {
    flex: 0 0 auto;
    display: flex;
    gap: 10px;
    padding: 12px 30px;
    background: var(--bg);
    border-bottom: 1px solid var(--border);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.equipo-tabs-nav::-webkit-scrollbar {
    display: none;
}

.equipo-tab-btn {
    border: 1.5px solid var(--border);
    background: var(--surface);
    color: var(--text-muted);
    border-radius: 999px;
    padding: 10px 16px;
    font-family: var(--fb);
    font-size: 13px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    white-space: nowrap;
    transition: all .18s ease;
    flex: 0 0 auto;
}

.equipo-tab-btn .material-symbols-outlined {
    font-size: 18px;
}

.equipo-tab-btn:hover {
    border-color: var(--blue);
    color: var(--blue);
    background: var(--blue-light);
}

.equipo-tab-btn.active {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff;
    box-shadow: 0 8px 20px rgba(84, 83, 237, 0.22);
}

.equipo-tab-panel {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 24px 30px;
    -webkit-overflow-scrolling: touch;
}

.equipo-tab-panel.hidden-by-default {
    display: none !important;
}

.equipo-tab-panel *,
.equipo-modal-grid,
.equipo-form-main,
.equipo-form-side,
.equipo-tab-panel .form-row,
.equipo-tab-panel .form-group,
.equipo-tab-panel .form-control,
.equipo-tab-panel .input-group,
.equipo-tab-panel .input-domain-group {
    max-width: 100%;
    min-width: 0;
}

.equipo-modal-footer {
    flex: 0 0 auto;
    position: relative;
    bottom: auto;
    z-index: 30;
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    box-shadow: 0 -12px 24px rgba(15, 23, 42, 0.08);
}

.equipo-sensitive-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 24px;
    box-shadow: var(--card-shadow);
}

.equipo-sensitive-card-critical {
    border-color: rgba(245, 158, 11, .35);
    background: linear-gradient(180deg, var(--surface), var(--amber-soft));
}

.equipo-sensitive-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px;
    border-radius: 18px;
    background: var(--surface2);
    border: 1px solid var(--border);
    margin-bottom: 20px;
}

.equipo-sensitive-header > .material-symbols-outlined {
    color: var(--blue);
    font-size: 28px;
    flex-shrink: 0;
}

.equipo-sensitive-header h3 {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 900;
}

.equipo-sensitive-header p {
    margin: 0;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
}

.equipo-sensitive-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 18px;
    padding: 14px;
    border-radius: 16px;
    background: var(--orange-soft);
    color: var(--text-body);
    border: 1px solid rgba(242, 89, 34, .22);
}

.equipo-sensitive-note .material-symbols-outlined {
    color: var(--orange);
    flex-shrink: 0;
}

.equipo-sensitive-note p {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 820px) {
    #modalEquipoColaborador {
        align-items: flex-end !important;
    }

    .equipo-modal-content {
        width: 100%;
        max-width: 100%;
        max-height: calc(100dvh - env(safe-area-inset-top, 0px));
    }

    .equipo-modal-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .equipo-tabs-nav {
        padding: 10px 14px;
    }

    .equipo-tab-btn {
        padding: 8px 12px;
        font-size: 12px;
    }

    .equipo-tab-panel {
        padding: 18px 20px;
    }

    .equipo-tab-panel .form-row {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .equipo-sensitive-card {
        padding: 18px;
        border-radius: 18px;
    }

    .equipo-sensitive-header {
        padding: 14px;
    }
}