/* CSS propio de visitas.html. Movido tal cual desde el <style> inline
   original, sin fusionar con index.css -- las clases con el mismo nombre en
   ambos archivos (.sidebar, .btn, .agent-card, .modal, .toast, etc.) tienen
   definiciones distintas a proposito (dos sistemas visuales distintos),
   no duplicados accidentales. Ver css/tokens.css para lo que sí es
   verdaderamente compartido (reset, --brand, @keyframes spin, y ahora
   tambien --dark/--text/--text-muted/--green/--red/--bg/--border/--white,
   unificadas con index.css -- --dark en particular cambia de valor aqui,
   de #0B1929 a #1a2f35, ver reporte). --muted y --surface se renombraron
   a --text-muted/--white en todo este archivo para usar el mismo nombre
   que index.css (mismo concepto, nombre distinto antes). */
:root{
  --danger:#e34848;
  --teal:#0B4F54;--teal-light:#E0F5F5;
  --green-bg:#EAF3DE;
  --yellow:#BA7517;--yellow-bg:#FAEEDA;
  --red-bg:#FCEBEB;
}
.zone-visitas{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
/* ── APP SHELL ── */
.zone-visitas .app{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.zone-visitas .sidebar{width:210px;background:var(--dark);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}
.zone-visitas .sidebar-logo{padding:20px 18px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.zone-visitas .sidebar-logo h2{font-family:'Montserrat',sans-serif;color:#fff;font-size:1.05rem;font-weight:800}
.zone-visitas .sidebar-logo h2 span{color:var(--brand)}
.zone-visitas .sidebar-logo p{font-size:.6rem;letter-spacing:1.2px;color:rgba(255,255,255,.35);text-transform:uppercase;margin-top:2px}
.zone-visitas .sidebar-nav{flex:1;padding:10px 0}
.zone-visitas .nav-section-title{font-size:.62rem;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.3);padding:12px 18px 4px;font-weight:600}
.zone-visitas .nav-item{display:flex;align-items:center;gap:9px;padding:9px 18px;color:rgba(255,255,255,.6);cursor:pointer;font-size:.8rem;font-weight:500;transition:.15s}
.zone-visitas .nav-item svg{width:15px;height:15px;flex-shrink:0}
.zone-visitas .nav-item:hover,.zone-visitas .nav-item.active{background:rgba(34,162,168,.15);color:#fff}
.zone-visitas .nav-item.active{border-left:3px solid var(--brand)}
.zone-visitas .sidebar-footer{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:9px}
.zone-visitas .sidebar-avatar{width:30px;height:30px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}
.zone-visitas .sidebar-name{font-size:.75rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zone-visitas .sidebar-role{font-size:.65rem;color:rgba(255,255,255,.4)}
.zone-visitas .sidebar-info{flex:1;min-width:0}
.zone-visitas .main{flex:1;overflow-y:auto;display:flex;flex-direction:column}
/* ── VIEWS ── */
.zone-visitas .view{display:none;flex:1;flex-direction:column}
.zone-visitas .view.active{display:flex}
/* ── TOPBAR ── */
.zone-visitas .topbar{background:var(--white);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.zone-visitas .topbar h1{font-size:1rem;font-weight:600}
.zone-visitas .btn{padding:7px 14px;border-radius:6px;border:none;cursor:pointer;font-size:.8rem;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.zone-visitas .btn-primary{background:var(--teal);color:#fff}.zone-visitas .btn-primary:hover{background:#0a3e42}
.zone-visitas .btn-secondary{background:#f0f2f5;color:var(--text)}.zone-visitas .btn-secondary:hover{background:#e2e6ea}
.zone-visitas .btn-danger{background:var(--danger);color:#fff}
.zone-visitas .btn-sm{padding:5px 10px;font-size:.75rem}
/* ── LISTA AGENTES ── */
.zone-visitas .search-bar{padding:14px 20px;background:var(--white);border-bottom:1px solid var(--border)}
.zone-visitas .search-bar input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:.85rem;font-family:inherit}
.zone-visitas .agent-list{flex:1;overflow-y:auto;padding:8px}
.zone-visitas .agent-card{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:6px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:12px}
.zone-visitas .agent-card:hover{border-color:var(--brand);box-shadow:0 2px 8px rgba(34,162,168,.12)}
.zone-visitas .agent-avatar{width:38px;height:38px;border-radius:50%;background:var(--teal);color:var(--teal-light);font-size:.8rem;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.zone-visitas .agent-card-info h3{font-size:.85rem;font-weight:600;margin-bottom:2px}
.zone-visitas .agent-card-info p{font-size:.72rem;color:var(--text-muted)}
.zone-visitas .badge{padding:2px 7px;border-radius:4px;font-size:.65rem;font-weight:600}
.zone-visitas .badge-green{background:var(--green-bg);color:var(--green)}
.zone-visitas .badge-yellow{background:var(--yellow-bg);color:var(--yellow)}
.zone-visitas .badge-red{background:var(--red-bg);color:var(--red)}
/* ── FICHA AGENTE ── */
.zone-visitas .ficha-header{background:var(--teal);padding:16px 20px;color:#fff}
.zone-visitas .ficha-back{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#9FE1CB;cursor:pointer;margin-bottom:10px}
.zone-visitas .ficha-back:hover{color:#fff}
.zone-visitas .ficha-name{font-size:1.05rem;font-weight:600}
.zone-visitas .ficha-sub{font-size:.75rem;color:#9FE1CB;margin-top:3px}
.zone-visitas .ficha-tabs{background:#063C40;display:flex}
.zone-visitas .ficha-tab{flex:1;padding:10px;text-align:center;font-size:.78rem;font-weight:500;color:#9FE1CB;border-bottom:2px solid transparent;cursor:pointer}
.zone-visitas .ficha-tab.active{color:#fff;border-bottom-color:#5DCAA5}
.zone-visitas .ficha-body{flex:1;overflow-y:auto;padding:16px}
/* ── INFO ROWS ── */
.zone-visitas .info-section{background:var(--white);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden}
.zone-visitas .info-section-title{padding:10px 14px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);background:#f9fafb;border-bottom:1px solid var(--border)}
.zone-visitas .info-row{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}
.zone-visitas .info-row:last-child{border-bottom:none}
.zone-visitas .info-row svg{width:15px;height:15px;color:var(--text-muted);flex-shrink:0;margin-top:2px}
.zone-visitas .info-label{font-size:.7rem;color:var(--text-muted);margin-bottom:2px}
.zone-visitas .info-value{font-size:.85rem;font-weight:500}
.zone-visitas .info-value.warn{color:var(--yellow)}
.zone-visitas .info-value.ok{color:var(--green)}
/* ── INDICADORES ── */
.zone-visitas .ind-card{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:12px}
.zone-visitas .ind-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:12px}
.zone-visitas .chart-wrap{position:relative;width:100%;height:180px}
.zone-visitas .legend-row{display:flex;gap:14px;margin-bottom:8px;font-size:.72rem;color:var(--text-muted)}
.zone-visitas .leg-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;display:inline-block;margin-right:3px}
.zone-visitas .sin-block{display:flex;align-items:center;gap:14px}
.zone-visitas .sin-num{font-size:2.2rem;font-weight:600;line-height:1}
.zone-visitas .sin-track{flex:1;height:8px;border-radius:4px;background:#f0f2f5;overflow:hidden;margin-bottom:6px}
.zone-visitas .sin-fill{height:100%;border-radius:4px}
.zone-visitas .sin-labels{display:flex;justify-content:space-between;font-size:.65rem;color:var(--text-muted)}
.zone-visitas .sin-legend{display:flex;gap:6px;margin-top:10px;font-size:.7rem;flex-wrap:wrap}
.zone-visitas .sin-chip{padding:3px 8px;border-radius:4px;font-weight:500}
.zone-visitas .ren-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.zone-visitas .ren-stat{background:#f9fafb;border-radius:6px;padding:10px;text-align:center}
.zone-visitas .ren-num{font-size:1.5rem;font-weight:600}
.zone-visitas .ren-label{font-size:.7rem;color:var(--text-muted);margin-top:2px}
.zone-visitas .bono-ranges{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:10px}
.zone-visitas .bono-chip{padding:5px 4px;border-radius:5px;text-align:center;font-size:.68rem;font-weight:500}
.zone-visitas .bono-chip.active{background:var(--teal);color:var(--teal-light)}
.zone-visitas .bono-chip.next{background:#E0F5F5;color:var(--teal)}
.zone-visitas .bono-chip.done{background:#f0f2f5;color:var(--text-muted)}
.zone-visitas .bono-next-msg{margin-top:8px;font-size:.75rem;color:var(--teal);font-weight:500;text-align:center}
.zone-visitas .bono-pills-row{display:flex;gap:4px;margin-top:8px}
.zone-visitas .bono-pill{flex:1;border:0.5px solid var(--border);border-radius:6px;padding:5px 2px;text-align:center}
.zone-visitas .bp-on{background:#0B4F54;border-color:#0B4F54}
.zone-visitas .bp-pct{font-size:12px;font-weight:500;color:var(--text)}
.zone-visitas .bp-on .bp-pct{color:#E0F5F5}
.zone-visitas .bp-lbl{font-size:9px;color:var(--text-muted);margin-top:1px}
.zone-visitas .bp-on .bp-lbl{color:#9FE1CB}
.zone-visitas .bono-msg-box{margin-top:8px;background:#E0F5F5;border-radius:8px;padding:9px 10px;font-size:12px;font-weight:500;color:#0B4F54;text-align:center}
.zone-visitas .bono-note{margin-top:6px;font-size:10px;color:var(--text-muted);line-height:1.4}
/* ── VISITAS LIST ── */
.zone-visitas .visit-card{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:8px;cursor:pointer}
.zone-visitas .visit-card:hover{border-color:var(--brand)}
.zone-visitas .visit-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}
.zone-visitas .visit-date{font-size:.8rem;font-weight:600}
.zone-visitas .visit-meta{font-size:.72rem;color:var(--text-muted)}
.zone-visitas .visit-checklist-summary{font-size:.72rem;color:var(--text-muted);margin-top:4px}
.zone-visitas .status-badge{padding:2px 8px;border-radius:4px;font-size:.65rem;font-weight:600}
.zone-visitas .sb-realizada{background:var(--green-bg);color:var(--green)}
.zone-visitas .sb-programada{background:#EEF2FF;color:#4338CA}
.zone-visitas .sb-cancelada{background:var(--red-bg);color:var(--red)}
/* ── FORMULARIO VISITA ── */
.zone-visitas .form-section{background:var(--white);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:12px}
.zone-visitas .form-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.zone-visitas .form-group{margin-bottom:10px}
.zone-visitas .form-group label{display:block;font-size:.75rem;font-weight:500;margin-bottom:4px;color:var(--text-muted)}
.zone-visitas .form-group input,.zone-visitas .form-group textarea,.zone-visitas .form-group select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:.82rem;font-family:inherit;resize:vertical}
.zone-visitas .form-group textarea{min-height:70px}
.zone-visitas .checklist-item{border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:8px;background:#fafafa}
.zone-visitas .checklist-item-title{font-size:.82rem;font-weight:500;margin-bottom:8px}
.zone-visitas .radio-group{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.zone-visitas .radio-opt{display:flex;align-items:center;gap:4px;font-size:.75rem;cursor:pointer;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:#fff}
.zone-visitas .radio-opt input{margin:0}
.zone-visitas .radio-opt.sel-cumple{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.zone-visitas .radio-opt.sel-proceso{border-color:var(--yellow);background:var(--yellow-bg);color:var(--yellow)}
.zone-visitas .radio-opt.sel-nocumple{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.zone-visitas .radio-opt.sel-noaplica{border-color:#9CA3AF;background:#F3F4F6;color:#6B7280}
.zone-visitas .checklist-comment{width:100%;margin-top:6px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:.75rem;font-family:inherit;resize:none;min-height:48px}
.zone-visitas .geo-box{background:#f0fdf4;border:1px solid #86efac;border-radius:6px;padding:10px 12px;font-size:.78rem;color:var(--green);display:flex;align-items:center;gap:8px}
.zone-visitas .geo-box.pending{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.zone-visitas .geo-box.error{background:var(--red-bg);border-color:#fca5a5;color:var(--red)}
.zone-visitas .media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.zone-visitas .media-thumb{aspect-ratio:1;border-radius:6px;background:#f0f2f5;border:1px solid var(--border);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}
.zone-visitas .media-thumb img{width:100%;height:100%;object-fit:cover}
.zone-visitas .media-thumb .share-btn{position:absolute;bottom:4px;right:4px;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:4px;padding:3px 5px;font-size:.65rem;cursor:pointer}
.zone-visitas .media-add{aspect-ratio:1;border-radius:6px;border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;gap:4px;font-size:.7rem;color:var(--text-muted)}
.zone-visitas .media-add:hover{border-color:var(--brand);color:var(--brand)}
.zone-visitas .save-btn{width:100%;padding:13px;background:var(--teal);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:4px}
.zone-visitas .save-btn:disabled{background:#9CA3AF;cursor:not-allowed}
/* ── CALENDARIO ── */
.zone-visitas .cal-wrap{padding:16px}
.zone-visitas .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.zone-visitas .cal-header h3{font-size:.95rem;font-weight:600}
.zone-visitas .cal-nav{background:none;border:1px solid var(--border);border-radius:6px;padding:5px 10px;cursor:pointer;font-size:.8rem}
.zone-visitas .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.zone-visitas .cal-day-name{text-align:center;font-size:.65rem;font-weight:600;color:var(--text-muted);padding:4px 0}
.zone-visitas .cal-day{min-height:52px;border:1px solid var(--border);border-radius:5px;padding:4px;cursor:pointer;background:var(--white);font-size:.72rem}
.zone-visitas .cal-day:hover{border-color:var(--brand)}
.zone-visitas .cal-day.today{border-color:var(--brand);background:#E0F5F5}
.zone-visitas .cal-day.other-month{background:#f9fafb;color:var(--text-muted)}
.zone-visitas .cal-day-num{font-weight:600;margin-bottom:2px}
/* ── EVENTOS ── */
.zone-visitas .ev-banner{margin:12px 14px 0;background:linear-gradient(135deg,#941B80,#0096AE);border-radius:10px;padding:12px 14px;color:#fff;display:none}
.zone-visitas .ev-banner.show{display:block}
.zone-visitas .ev-banner-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.85;margin-bottom:6px;display:flex;align-items:center;gap:5px}
.zone-visitas .ev-banner-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:.78rem;cursor:pointer}
.zone-visitas .ev-banner-item:not(:last-child){border-bottom:1px solid rgba(255,255,255,.15)}
.zone-visitas .ev-banner-date{background:rgba(255,255,255,.2);border-radius:5px;padding:3px 7px;font-size:.68rem;font-weight:700;min-width:38px;text-align:center}
.zone-visitas .ev-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;cursor:pointer}
.zone-visitas .ev-card:hover{border-color:var(--brand)}
.zone-visitas .ev-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.zone-visitas .ev-card-title{font-size:.9rem;font-weight:700;color:var(--text)}
.zone-visitas .ev-card-badge{font-size:.62rem;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
.zone-visitas .ev-badge-abierto{background:#EAF3DE;color:#3B6D11}
.zone-visitas .ev-badge-exclusivo{background:#FCEBEB;color:#A32D2D}
.zone-visitas .ev-badge-grande{background:#E0F5F5;color:#0B4F54}
.zone-visitas .ev-card-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.72rem;color:var(--text-muted);margin-top:6px}
.zone-visitas .ev-card-meta span{display:flex;align-items:center;gap:4px}
.zone-visitas .ev-form-group{margin-bottom:14px}
.zone-visitas .ev-form-label{font-size:.75rem;font-weight:600;display:block;margin-bottom:5px}
.zone-visitas .ev-expositor-row{display:flex;gap:6px;margin-bottom:6px}
.zone-visitas .ev-expositor-row input{flex:1}
.zone-visitas .ev-sala-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.zone-visitas .ev-sala-chip{border:2px solid var(--border);border-radius:8px;padding:10px 8px;text-align:center;cursor:pointer;font-size:.75rem;font-weight:500}
.zone-visitas .ev-sala-chip.selected{border-color:#941B80;background:#f8f4fb;color:#941B80}
.zone-visitas .ev-sala-chip small{display:block;color:var(--text-muted);font-size:.62rem;margin-top:2px}
.zone-visitas .ev-cupo-row{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;margin-bottom:6px}
.zone-visitas .ev-invitado-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.8rem}
.zone-visitas .ev-invitado-row:last-child{border-bottom:none}
.zone-visitas .ev-confirm-badge{font-size:.62rem;font-weight:700;padding:2px 7px;border-radius:8px}
.zone-visitas .ev-confirm-yes{background:#EAF3DE;color:#3B6D11}
.zone-visitas .ev-confirm-no{background:#f0f0f0;color:#888}
.zone-visitas .ev-agente-pick{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:.8rem}
.zone-visitas .ev-agente-pick input[type=checkbox]{width:16px;height:16px}
.zone-visitas .ev-agente-pick input[type=number]{width:50px;padding:3px 6px;font-size:.75rem;border:1px solid var(--border);border-radius:4px;margin-left:auto}
.zone-visitas .cal-event{background:var(--teal);color:#fff;border-radius:3px;padding:1px 4px;font-size:.6rem;margin-bottom:2px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ── MODAL ── */
.zone-visitas .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:100;padding:16px}
.zone-visitas .modal-overlay.open{display:flex}
.zone-visitas .modal{background:var(--white);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}
.zone-visitas .modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.zone-visitas .modal-header h3{font-size:.95rem;font-weight:600}
.zone-visitas .modal-close{background:none;border:none;cursor:pointer;font-size:1.2rem;color:var(--text-muted)}
.zone-visitas .modal-body{padding:16px 20px}
.zone-visitas .modal-footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
/* ── LOADING / AUTH ── */
#loginScreen{position:fixed;inset:0;background:var(--dark);display:flex;align-items:center;justify-content:center;z-index:200}
.zone-visitas .login-box{background:#fff;border-radius:12px;padding:32px;width:100%;max-width:360px}
.zone-visitas .login-box h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.3rem;margin-bottom:4px}
.zone-visitas .login-box p{color:var(--text-muted);font-size:.82rem;margin-bottom:20px}
.zone-visitas .login-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:.85rem;margin-bottom:10px;font-family:inherit}
.zone-visitas .login-btn{width:100%;padding:11px;background:var(--teal);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer}
#loadingScreen{position:fixed;inset:0;background:var(--dark);display:flex;align-items:center;justify-content:center;z-index:199}
.zone-visitas .spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}
#toastArea{position:fixed;bottom:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px}
.zone-visitas .toast{padding:10px 16px;border-radius:8px;font-size:.82rem;font-weight:500;animation:fadeIn .2s ease}
.zone-visitas .toast-info{background:#1a1a2e;color:#fff}
.zone-visitas .toast-success{background:#16a34a;color:#fff}
.zone-visitas .toast-error{background:var(--danger);color:#fff}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
/* ── MOBILE ── */
@media(max-width:640px){
  .zone-visitas .sidebar{display:none}
  .zone-visitas .mobile-header{display:flex;background:var(--teal);padding:12px 16px;align-items:center;gap:10px;flex-shrink:0}
  .zone-visitas .mobile-header h2{font-family:'Montserrat',sans-serif;font-weight:800;color:#fff;font-size:.95rem}
  .zone-visitas .mobile-header h2 span{color:#5DCAA5}
}
@media(min-width:641px){.zone-visitas .mobile-header{display:none}}
@media(min-width:641px){
  .zone-visitas .sidebar{width:100%;flex-direction:row;align-items:stretch;overflow:visible}
  .zone-visitas .sidebar-logo{padding:10px 18px;border-bottom:none;border-right:1px solid rgba(255,255,255,.08);flex-shrink:0;display:flex;align-items:center}
  .zone-visitas .sidebar-logo p{display:none}
  .zone-visitas .sidebar-nav{flex:1;padding:0;display:flex;align-items:stretch;flex-wrap:nowrap;overflow:visible}
  .zone-visitas .nav-group{position:relative;display:flex;align-items:stretch}
  .zone-visitas .nav-section-title{padding:0 16px;white-space:nowrap;border-left:1px solid rgba(255,255,255,.1);margin-left:0;display:flex;align-items:center;gap:5px;cursor:pointer;font-size:.72rem;color:rgba(255,255,255,.75)}
  .zone-visitas .nav-group:first-child .nav-section-title{border-left:none}
  .zone-visitas .nav-section-title:hover{color:#fff;background:rgba(255,255,255,.06)}
  .zone-visitas .nav-group.open .nav-section-title{color:#fff;background:rgba(34,162,168,.15)}
  .zone-visitas .nav-section-title .chev{width:9px;height:9px;transition:transform .15s}
  .zone-visitas .nav-group.open .chev{transform:rotate(180deg)}
  .zone-visitas .nav-group[data-group="dashboard"] .chev{display:none}
  .zone-visitas .nav-group-items{display:none}
  .zone-visitas .nav-group.open .nav-group-items{display:block;position:absolute;top:100%;left:0;background:var(--dark);min-width:210px;box-shadow:0 8px 20px rgba(0,0,0,.35);border-radius:0 0 8px 8px;z-index:80;padding:4px 0}
  .zone-visitas .nav-group-items .nav-item{padding:9px 16px;white-space:nowrap;border-left:none!important;border-bottom:none!important}
  .zone-visitas .nav-group-items .nav-item:hover,.zone-visitas .nav-group-items .nav-item.active{background:rgba(34,162,168,.15)}
  .zone-visitas .sidebar-footer{border-top:none;border-left:1px solid rgba(255,255,255,.08);flex-shrink:0;flex-direction:row!important;width:auto!important;padding:8px 14px!important}
  .zone-visitas .sidebar-footer button{width:auto!important;padding:6px 10px!important}
  .zone-visitas .sidebar-info{display:none}
}
@media(max-width:640px){
  .zone-visitas .nav-group-items{display:block!important}
}
.zone-visitas .drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:150;display:none;opacity:0;transition:opacity .25s}
.zone-visitas .drawer-overlay.open{display:block;opacity:1}
.zone-visitas .drawer{position:fixed;top:0;left:0;bottom:0;width:240px;background:var(--dark);z-index:151;transform:translateX(-100%);transition:transform .25s;display:flex;flex-direction:column;overflow-y:auto}
.zone-visitas .drawer.open{transform:translateX(0)}
.zone-visitas .drawer-logo{padding:20px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.zone-visitas .drawer-logo h2{font-family:'Montserrat',sans-serif;color:#fff;font-size:1rem;font-weight:800}
.zone-visitas .drawer-logo h2 span{color:var(--brand)}
.zone-visitas .drawer-nav{flex:1;padding:8px 0}
.zone-visitas .drawer-item{display:flex;align-items:center;gap:9px;padding:11px 18px;color:rgba(255,255,255,.7);cursor:pointer;font-size:.82rem;font-weight:500}
.zone-visitas .drawer-item:hover,.zone-visitas .drawer-item.active{background:rgba(34,162,168,.15);color:#fff}
.zone-visitas .drawer-item svg{width:16px;height:16px;flex-shrink:0}
.zone-visitas .drawer-footer{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08)}
.zone-visitas .drawer-logout{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-size:.78rem;cursor:pointer;padding:8px 0}
.zone-visitas .drawer-logout:hover{color:#fff}
.zone-visitas .ren-bar-wrap{margin-bottom:12px}
.zone-visitas .ren-bar-label{display:flex;justify-content:space-between;font-size:.75rem;font-weight:500;margin-bottom:5px}
.zone-visitas .ren-bar-track{height:10px;background:#f0f2f5;border-radius:5px;overflow:hidden;margin-bottom:4px}
.zone-visitas .ren-bar-fill{height:100%;border-radius:5px;transition:width .5s}
.zone-visitas .ren-bar-sub{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}
.zone-visitas .rpt-cl-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border);border-radius:6px;font-size:.75rem;cursor:pointer;background:#fff}
.zone-visitas .rpt-cl-chip.active{border-color:#941B80;background:#f8f4fb;color:#941B80}
.zone-visitas .rpt-agent-cl-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.zone-visitas .rpt-agent-cl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.zone-visitas .rpt-agent-cl-name{font-size:.82rem;font-weight:600;color:var(--text)}
.zone-visitas .rpt-agent-cl-toggle{font-size:.68rem;color:#941B80;cursor:pointer;font-weight:500}
.zone-visitas .rpt-agent-cl-items{display:flex;flex-wrap:wrap;gap:6px}
.zone-visitas .rpt-grupo-table{width:100%;border-collapse:collapse;font-size:.78rem}
.zone-visitas .rpt-grupo-table th{background:#941B80;color:#fff;padding:8px 10px;text-align:left;font-size:.68rem;text-transform:uppercase}
.zone-visitas .rpt-grupo-table td{padding:8px 10px;border-bottom:1px solid #f0e8f0;vertical-align:middle}
.zone-visitas .rpt-grupo-table tfoot td{font-weight:700;background:#f8f4fb;border-top:2px solid #941B80}
.zone-visitas .empty-state{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:.85rem}

/* ── REPORTES ── */
.zone-visitas .fmt-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:14px}
.zone-visitas .fmt-card{border:2px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;text-align:center;transition:.15s}
.zone-visitas .fmt-card:hover{border-color:var(--brand)}
.zone-visitas .fmt-card.selected{border-color:#0B4F54;background:#E0F5F5}
.zone-visitas .fmt-thumb{height:60px;border-radius:4px;margin-bottom:6px;display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.zone-visitas .fmt-name{font-size:.65rem;font-weight:500;color:var(--text)}
.zone-visitas .rpt-preview-wrap{padding:14px;overflow-x:auto}
.zone-visitas .rpt-canvas{width:800px;min-height:1130px;margin:0 auto;background:#fff;position:relative;font-family:Arial,sans-serif}
/* Plantilla 1: Visita Agentes Clásico */
.zone-visitas .rpt-t1{background:#fff}
.zone-visitas .rpt-t1 .rpt-header{background:linear-gradient(135deg,#941B80,#0B4F54);padding:20px 28px;display:flex;align-items:center;justify-content:space-between;color:#fff}
.zone-visitas .rpt-t1 .rpt-header-title{font-size:2rem;font-weight:900;letter-spacing:1px}
.zone-visitas .rpt-t1 .rpt-header-sub{font-size:.85rem;opacity:.8;margin-top:2px}
.zone-visitas .rpt-t1 .rpt-header-logo{width:60px;height:60px;background:rgba(255,255,255,.15);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem}
.zone-visitas .rpt-t1 .rpt-meta{background:#f8f4fb;padding:8px 28px;display:flex;gap:20px;font-size:.75rem;color:#666;border-bottom:3px solid #941B80}
.zone-visitas .rpt-agent-block{display:flex;gap:16px;padding:16px 28px;border-bottom:2px solid #f0e8f0}
.zone-visitas .rpt-agent-photo{width:90px;height:90px;border-radius:50%;object-fit:cover;border:3px solid #941B80;flex-shrink:0}
.zone-visitas .rpt-agent-photo-placeholder{width:90px;height:90px;border-radius:50%;background:#e8d5f0;border:3px solid #941B80;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#941B80}
.zone-visitas .rpt-agent-main{flex:1;min-width:0}
.zone-visitas .rpt-agent-name{font-size:1rem;font-weight:700;color:#941B80;margin-bottom:2px}
.zone-visitas .rpt-agent-clave{font-size:.72rem;color:#666;margin-bottom:8px}
.zone-visitas .rpt-agent-charts{display:flex;gap:12px;align-items:flex-start}
.zone-visitas .rpt-visit-photos{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.zone-visitas .rpt-visit-photo{width:70px;height:70px;object-fit:cover;border-radius:6px}
.zone-visitas .rpt-comment-box{background:#f8f4fb;border-left:3px solid #941B80;padding:6px 10px;border-radius:0 6px 6px 0;font-size:.72rem;color:#444;margin-top:6px;font-style:italic}
.zone-visitas .rpt-topics{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.zone-visitas .rpt-topic-chip{background:#941B80;color:#fff;padding:2px 8px;border-radius:10px;font-size:.62rem;font-weight:500}
.zone-visitas .rpt-footer{background:#0B4F54;color:#fff;text-align:center;padding:12px;font-size:.75rem;margin-top:auto}
/* Plantilla 2: Compacto */
.zone-visitas .rpt-t2 .rpt-header{background:linear-gradient(135deg,#0B4F54,#0096AE);padding:16px 24px;color:#fff;display:flex;align-items:center;justify-content:space-between}
.zone-visitas .rpt-t2 .rpt-agent-block{padding:12px 24px;gap:12px}
.zone-visitas .rpt-t2 .rpt-agent-photo,.zone-visitas .rpt-t2 .rpt-agent-photo-placeholder{width:70px;height:70px;font-size:1.2rem}
/* Plantilla 3: Oscuro */
.zone-visitas .rpt-t3{background:#0B1929}
.zone-visitas .rpt-t3 .rpt-header{background:linear-gradient(135deg,#941B80,#0B4F54);padding:20px 28px;color:#fff;display:flex;align-items:center;justify-content:space-between}
.zone-visitas .rpt-t3 .rpt-agent-block{border-bottom:1px solid rgba(255,255,255,.1);padding:16px 28px;gap:16px}
.zone-visitas .rpt-t3 .rpt-agent-name{color:#9FE1CB}
.zone-visitas .rpt-t3 .rpt-agent-clave{color:rgba(255,255,255,.5)}
.zone-visitas .rpt-t3 .rpt-comment-box{background:rgba(255,255,255,.05);border-left-color:#5DCAA5;color:rgba(255,255,255,.7)}
.zone-visitas .rpt-t3 .rpt-topic-chip{background:#941B80}
.zone-visitas .rpt-t3 .rpt-meta{background:rgba(255,255,255,.05);color:rgba(255,255,255,.5);border-bottom-color:#941B80}
/* Plantilla 4: Tabular */
.zone-visitas .rpt-t4-table{width:100%;border-collapse:collapse;font-size:.72rem}
.zone-visitas .rpt-t4-table th{background:#941B80;color:#fff;padding:8px 10px;text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.5px}
.zone-visitas .rpt-t4-table td{padding:8px 10px;border-bottom:1px solid #f0e8f0;vertical-align:top}
.zone-visitas .rpt-t4-table tr:nth-child(even) td{background:#faf8fc}
/* Plantilla 5: Semanal */
.zone-visitas .rpt-t5{background:#fff}
.zone-visitas .rpt-t5 .rpt-header{background:#941B80;padding:24px 28px;color:#fff}
.zone-visitas .rpt-t5 .rpt-exec-name{font-size:1.8rem;font-style:italic;font-weight:300;letter-spacing:1px}
.zone-visitas .rpt-t5 .rpt-gerencia-badge{background:rgba(255,255,255,.2);display:inline-block;padding:4px 12px;border-radius:4px;font-size:.8rem;margin-top:6px}
.zone-visitas .rpt-t5 .rpt-visit-card{border:1px solid #e8d5f0;border-radius:8px;padding:12px 16px;margin:10px 24px;display:flex;gap:14px}
.zone-visitas .rpt-t5 .rpt-visit-date-badge{background:#941B80;color:#fff;padding:6px 10px;border-radius:6px;text-align:center;font-size:.7rem;flex-shrink:0;min-width:60px}
