/* ── CRM: Modal de interacción ── */
#interaccion-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9000;align-items:center;justify-content:center}
#interaccion-modal-overlay.visible{display:flex}
.interaccion-modal{background:var(--core-surface);border-radius:var(--core-radius-xl);padding:1.75rem;width:100%;max-width:420px;box-shadow:var(--core-shadow-lg)}
.interaccion-modal-title{font-size:.95rem;font-weight:800;color:var(--core-text);margin-bottom:1.25rem}
.im-target{font-size:.78rem;color:var(--core-text-muted);margin-bottom:1rem;padding:.5rem .75rem;background:var(--core-bg);border-radius:var(--core-radius-sm);border:1px solid var(--core-border)}
.im-field{margin-bottom:.85rem}
.im-field label{display:block;font-size:.72rem;font-weight:700;color:var(--core-text-secondary);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.05em}
.im-field select,.im-field input,.im-field textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--core-border);border-radius:var(--core-radius-sm);font-size:.85rem;font-family:var(--core-font-sans);background:var(--core-bg);color:var(--core-text);outline:none}
.im-field select:focus,.im-field input:focus,.im-field textarea:focus{border-color:var(--core-teal)}
.im-field textarea{resize:vertical;min-height:60px}
.im-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.25rem}
.im-error{display:none;color:#FB2C36;font-size:.75rem;margin-top:.5rem}
/* ── CRM: Panel lateral de campañas ── */
#campanas-panel{position:fixed;top:0;right:0;height:100vh;width:min(680px,95vw);background:var(--core-surface);border-left:1px solid var(--core-border);box-shadow:-4px 0 24px rgba(0,0,0,.18);z-index:500;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
#campanas-panel.open{transform:translateX(0)}
#campanas-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:499}
#campanas-overlay.visible{display:block}
.camp-header{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--core-border);display:flex;align-items:center;justify-content:space-between;gap:1rem;position:sticky;top:0;background:var(--core-surface);z-index:1}
.camp-header h3{font-size:1rem;font-weight:800;color:var(--core-text);margin:0}
.camp-body{padding:1.25rem 1.5rem;overflow-y:auto;flex:1}
.camp-section-title{font-size:.72rem;font-weight:700;color:var(--core-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;margin-top:1.25rem}
.camp-section-title:first-child{margin-top:0}
.camp-table{width:100%;border-collapse:collapse;font-size:.78rem}
.camp-table th{text-align:left;padding:.4rem .6rem;font-size:.68rem;font-weight:700;color:var(--core-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--core-border);white-space:nowrap}
.camp-table td{padding:.55rem .6rem;border-bottom:1px solid var(--core-surface-subtle);vertical-align:middle}
.camp-table tr:last-child td{border-bottom:none}
.camp-conv-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.3rem}
.camp-conv-btn{font-size:.65rem;padding:.15rem .4rem;border:1px solid var(--core-border);border-radius:3px;background:none;cursor:pointer;color:var(--core-text-muted);font-family:var(--core-font-sans)}
.camp-conv-btn:hover{border-color:var(--core-teal);color:var(--core-teal)}
.camp-conv-result{font-size:.75rem;font-weight:700;color:var(--core-teal)}
.camp-action-btn{background:none;border:none;cursor:pointer;color:var(--core-text-muted);padding:.15rem .25rem;border-radius:3px;transition:all .15s}
.camp-action-btn:hover{color:var(--core-teal);background:rgba(0,169,153,.08)}
.camp-action-del:hover{color:#FB2C36;background:rgba(251,44,54,.08)}
.camp-ventana-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.78rem;color:var(--core-text-secondary)}
.camp-ventana-row input{width:50px;padding:.25rem .4rem;border:1px solid var(--core-border);border-radius:4px;font-size:.78rem;font-family:var(--core-font-mono);text-align:center;background:var(--core-bg);color:var(--core-text)}
.camp-empty{text-align:center;padding:2rem;color:var(--core-text-muted);font-size:.85rem}
/* ── Campañas: nuevo sistema con cards y grupos ── */
.camp-btn-new{background:var(--core-teal);color:#fff;border:none;padding:.35rem .75rem;border-radius:var(--core-radius-sm);font-size:.75rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.2rem;font-family:var(--core-font-sans)}
.camp-btn-new:hover{opacity:.85}
.camp-form-wrap{padding:.75rem 1.5rem;border-bottom:1px solid var(--core-border);background:var(--core-bg)}
.camp-form-input{width:100%;padding:.4rem .6rem;border:1px solid var(--core-border);border-radius:var(--core-radius-sm);font-size:.8rem;font-family:var(--core-font-sans);background:var(--core-surface);color:var(--core-text);margin-bottom:.3rem}
.camp-form-input:focus{outline:none;border-color:var(--core-teal)}
.camp-btn-save{background:var(--core-teal);color:#fff;border:none;padding:.35rem .75rem;border-radius:var(--core-radius-sm);font-size:.75rem;font-weight:700;cursor:pointer;font-family:var(--core-font-sans)}
.camp-btn-cancel{background:none;color:var(--core-text-muted);border:1px solid var(--core-border);padding:.35rem .75rem;border-radius:var(--core-radius-sm);font-size:.75rem;cursor:pointer;font-family:var(--core-font-sans)}
.camp-card{background:var(--core-bg);border:1px solid var(--core-border);border-radius:var(--core-radius);margin-bottom:.5rem;overflow:hidden}
.camp-card-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;cursor:pointer;transition:background .15s}
.camp-card-head:hover{background:rgba(255,255,255,.03)}
.camp-card-info{flex:1;min-width:0}
.camp-card-nombre{font-size:.82rem;font-weight:700;color:var(--core-text);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.camp-card-meta{font-size:.68rem;color:var(--core-text-muted);display:flex;align-items:center;gap:.5rem;margin-top:.15rem}
.camp-vis-badge{font-size:.58rem;font-weight:700;padding:.1rem .35rem;border-radius:3px;text-transform:uppercase;letter-spacing:.05em}
.camp-vis-badge.pub{background:rgba(0,169,153,.15);color:var(--core-teal)}
.camp-vis-badge.priv{background:rgba(100,116,139,.15);color:var(--core-text-muted)}
.camp-owner-tag{font-size:.62rem;color:var(--core-text-muted);background:rgba(100,116,139,.1);padding:.1rem .35rem;border-radius:3px}
.camp-periodo-ref{font-size:.68rem;color:var(--core-text-muted)}
.camp-card-actions{display:flex;gap:.2rem;flex-shrink:0}
.camp-act-btn{background:none;border:none;color:var(--core-text-muted);cursor:pointer;padding:.2rem;border-radius:3px;transition:all .15s}
.camp-act-btn:hover{color:var(--core-teal);background:rgba(0,169,153,.08)}
.camp-act-del:hover{color:#FB2C36;background:rgba(251,44,54,.08)}
.camp-card-detail{padding:.5rem .75rem;border-top:1px solid var(--core-border);background:var(--core-surface)}
.grupo-row{padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.05)}
.grupo-row:last-child{border-bottom:none}
.grupo-info{display:flex;align-items:center;gap:.5rem}
.grupo-nombre{font-size:.78rem;font-weight:700;color:var(--core-text)}
.grupo-count{font-size:.68rem;color:var(--core-teal);font-weight:600}
.grupo-filtros{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}
.grupo-filtro-tag{font-size:.62rem;padding:.1rem .4rem;background:rgba(0,169,153,.1);color:var(--core-teal);border-radius:3px;font-weight:600}
.camp-btn-ejecutar{background:rgba(0,169,153,.1);color:var(--core-teal);border:1px solid rgba(0,169,153,.3);border-radius:var(--core-radius-sm);padding:.4rem .75rem;font-size:.75rem;font-weight:700;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center;gap:.3rem;font-family:var(--core-font-sans);transition:background .15s}
.camp-btn-ejecutar:hover{background:rgba(0,169,153,.18)}
.camp-btn-save-grupo{background:rgba(0,169,153,.1);color:var(--core-teal);border:1px solid rgba(0,169,153,.3);border-radius:var(--core-radius-sm);padding:.25rem .6rem;font-size:.7rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.2rem;font-family:var(--core-font-sans);white-space:nowrap;margin-left:auto;transition:background .15s}
.camp-btn-save-grupo:hover{background:rgba(0,169,153,.18)}
.camp-grupos-preview{font-size:.68rem}
.camp-card-pending{border-color:var(--core-teal);border-style:dashed}
.camp-btn-accept{background:var(--core-teal);color:#fff;border:none;padding:.3rem .7rem;border-radius:var(--core-radius-sm);font-size:.72rem;font-weight:700;cursor:pointer;font-family:var(--core-font-sans)}
.camp-btn-reject{background:none;color:var(--core-text-muted);border:1px solid var(--core-border);padding:.3rem .7rem;border-radius:var(--core-radius-sm);font-size:.72rem;cursor:pointer;font-family:var(--core-font-sans)}
.camp-share-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9500;display:flex;align-items:center;justify-content:center}
.camp-share-modal{background:var(--core-surface);border-radius:var(--core-radius-xl);padding:1.5rem;width:100%;max-width:360px;box-shadow:var(--core-shadow-lg)}
.camp-share-list{max-height:250px;overflow-y:auto;margin-bottom:.5rem}
.sg-label{font-size:.72rem;font-weight:700;color:var(--core-text-secondary);text-transform:uppercase;letter-spacing:.05em}
.sg-camp-option{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:.82rem;cursor:pointer;border-radius:var(--core-radius-sm);transition:background .15s;color:var(--core-text)}
.sg-camp-option:hover{background:rgba(255,255,255,.05)}
.sg-camp-option input[type=radio]{accent-color:var(--core-teal)}
.sg-camp-new{color:var(--core-teal);font-weight:600}

/* ── CRM: Historial en panel de cliente ── */
.cp-interactions-section{margin-top:1.25rem}
.cp-inter-row{background:var(--core-bg);border:1px solid var(--core-border);border-radius:var(--core-radius-sm);padding:.6rem .75rem;margin-bottom:.5rem}
.cp-inter-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.3rem}
.cp-inter-canal{font-size:.8rem;font-weight:700;color:var(--core-text)}
.cp-inter-fecha{font-size:.7rem;color:var(--core-text-muted)}
.cp-inter-meta{font-size:.72rem;color:var(--core-text-secondary);margin-bottom:.2rem}
.cp-inter-notas{font-size:.72rem;color:var(--core-text-muted);font-style:italic}
.cp-inter-btn{margin-top:.75rem;background:rgba(0,169,153,.1);border:1px solid rgba(0,169,153,.3);color:var(--core-teal);border-radius:var(--core-radius-sm);padding:.35rem .85rem;font-size:.76rem;font-weight:700;font-family:var(--core-font-sans);cursor:pointer;width:100%;transition:background .15s}
.cp-inter-btn:hover{background:rgba(0,169,153,.18)}
/* ── Columna contactos en tabla ── */
.contacts-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:11px;background:rgba(0,169,153,.12);color:var(--core-teal);font-size:.72rem;font-weight:700;padding:0 .4rem}
.contacts-badge.zero{background:rgba(100,116,139,.08);color:var(--core-text-muted)}
