/* ── Contactos ─────────────────────────────────────────────── */
.ct-list       { display:flex; flex-direction:column; gap:10px; }
.ct-card       { background:var(--bg2); border-radius:12px; padding:14px 16px; display:flex; align-items:flex-start; gap:12px; }
.ct-card.inactivo { opacity:.5; }
.ct-avatar     { width:40px; height:40px; border-radius:50%; background:var(--bg3); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:700; color:var(--t2); flex-shrink:0; margin-top:2px; }
.ct-body       { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.ct-name       { font-size:14px; font-weight:600; color:var(--t1); line-height:1.35; display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; }
.ct-meta       { font-size:12px; color:var(--t3); display:flex; gap:10px; flex-wrap:wrap; }
.ct-badge      { font-size:10px; font-weight:700; padding:2px 7px; border-radius:4px; text-transform:uppercase; letter-spacing:.4px; flex-shrink:0; }
.ct-badge-proveedor { background:rgba(99,102,241,.18); color:#818cf8; }
.ct-badge-cliente   { background:rgba(34,197,94,.15);  color:#4ade80; }
.ct-actions    { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
.ct-btn-icon   { width:38px; height:38px; border-radius:var(--r); border:1px solid var(--border2); background:var(--bg2); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; transition:background .18s, color .18s, border-color .18s; }
.ct-btn-icon:hover { background:var(--bg3); border-color:var(--border); }
.ct-btn-view   { color:#818cf8; }
.ct-btn-view:hover { color:#818cf8; background:rgba(99,102,241,.14); border-color:rgba(99,102,241,.35); }
.ct-btn-edit   { color:var(--t2); }
.ct-btn-deact  { color:#ef4444; }
.ct-btn-deact:hover { background:rgba(239,68,68,.12); border-color:rgba(239,68,68,.35); }
.ct-btn-act    { color:#22c55e; }
.ct-btn-act:hover  { background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.35); }
.ct-det-row    { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
.ct-det-row:last-of-type { border-bottom:none; }
.ct-act-btn    { width:36px; height:36px; border-radius:var(--r); border:1px solid var(--border2); background:var(--bg2); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; text-decoration:none; transition:background .18s, color .18s, border-color .18s; }
.ct-act-btn:hover { background:var(--bg3); }
.ct-act-call   { color:#22c55e; }
.ct-act-call:hover  { background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.35); }
.ct-act-wa     { color:#25d366; }
.ct-act-wa:hover    { background:rgba(37,211,102,.14); border-color:rgba(37,211,102,.35); }
.ct-act-mail   { color:#818cf8; }
.ct-act-mail:hover  { background:rgba(99,102,241,.12); border-color:rgba(99,102,241,.35); }
.ct-stamp      { align-self:center; flex-shrink:0; writing-mode:vertical-rl; text-orientation:mixed; transform:rotate(180deg) rotate(-5deg); font-size:9px; font-weight:900; letter-spacing:3px; text-transform:uppercase; font-family:monospace; color:rgba(34,197,94,.65); border:2.5px solid rgba(34,197,94,.5); border-radius:5px; padding:5px 3px; filter:blur(.4px); opacity:.8; pointer-events:none; max-height:72px; }
.ct-tabs       { display:flex; gap:6px; margin-bottom:16px; }
.ct-tab        { padding:6px 14px; border-radius:8px; font-size:13px; border:1px solid var(--border); background:transparent; color:var(--t2); cursor:pointer; transition:all .15s; }
.ct-tab.active { background:var(--accent); color:#fff; border-color:var(--accent); }
/* .ct-search migrado a .search-box en components.css */
.ct-usr-results { position:absolute; z-index:20; background:var(--bg2); border:1px solid var(--border); border-radius:10px; width:100%; top:calc(100% + 4px); left:0; box-shadow:0 4px 20px rgba(0,0,0,.3); overflow:hidden; }
.ct-usr-row    { padding:10px 14px; cursor:pointer; display:flex; align-items:center; gap:10px; }
.ct-usr-row:hover { background:var(--bg3); }
.ct-linked-box { background:var(--bg3); border-radius:8px; padding:8px 12px; font-size:12px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ct-dupl-warn  { margin-top:6px; background:rgba(234,179,8,.12); border:1px solid rgba(234,179,8,.35); border-radius:8px; padding:8px 10px; font-size:12px; color:#ca8a04; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ct-dupl-btn   { font-size:11px; padding:3px 9px; border:1px solid rgba(234,179,8,.5); border-radius:6px; background:transparent; color:#ca8a04; cursor:pointer; white-space:nowrap; }
.ct-dupl-btn:hover { background:rgba(234,179,8,.15); }
