/* ===========================================================
   LyR — Contactos
   =========================================================== */
.ct-wrap{ max-width:1200px; margin-inline:auto; padding:clamp(1rem,2.5vw,2rem); display:flex; flex-direction:column; gap:1rem; }
.sync{ font:500 .76rem var(--font-display); color:var(--ink-faint); display:inline-flex; align-items:center; gap:.4rem; margin-right:.3rem; }
.sync::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--ink-faint); }
.sync[data-estado="servidor"]::before{ background:#5BD69A; }
.sync[data-estado="local"]::before{ background:#F6C177; }
.solo-lectura .solo-admin{ display:none !important; }

.ct-toolbar{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.ct-tabs{ grid-template-columns:repeat(2,1fr); min-width:min(340px,100%); }
.ct-count{ display:inline-block; min-width:1.4em; margin-left:.35rem; padding:0 .4rem; border-radius:999px; background:rgba(255,255,255,.12); font-size:.72rem; line-height:1.5; }
.ct-search{ flex:1; max-width:380px; min-width:220px; display:flex; align-items:center; gap:.5rem; padding:0 .8rem; border-radius:999px; background:var(--bg-soft); border:1px solid var(--surface-line); color:var(--ink-faint); }
.ct-search:focus-within{ border-color:var(--purple-400); }
.ct-search input{ flex:1; min-width:0; background:none; border:0; outline:none; color:#fff; padding:.65rem 0; font:400 .9rem var(--font-body); }

.import-box{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:1rem 1.2rem; border:1px dashed rgba(156,107,240,.55); border-radius:var(--radius-md); background:rgba(109,52,217,.08); }
.import-box strong{ font-family:var(--font-display); color:#fff; }
.import-box p{ color:var(--ink-muted); font-size:.9rem; }

.ct-list{ display:flex; flex-direction:column; gap:.6rem; }
.ct-item{
  display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,.9fr) auto; gap:1rem; align-items:center;
  padding:.9rem 1.1rem; border-radius:var(--radius-md); background:rgba(27,17,48,.6); border:1px solid var(--surface-line); cursor:pointer;
  transition:border-color var(--dur-fast);
}
.solo-lectura .ct-item{ cursor:default; grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,.9fr); }
.ct-item:hover{ border-color:rgba(156,107,240,.45); }
.ct-main{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.ct-main strong{ font:600 1rem var(--font-display); color:#fff; }
.ct-sub{ font-size:.8rem; color:var(--ink-faint); }
.ct-mail{ color:var(--purple-400); }
.ct-notas{ font-size:.8rem; color:var(--ink-muted); margin-top:.2rem; white-space:pre-line; }
.ct-phones{ display:flex; flex-direction:column; gap:.35rem; }
.ct-tel{ display:inline-flex; align-items:center; gap:.45rem; font:500 .92rem var(--font-body); color:var(--ink); font-variant-numeric:tabular-nums; }
.ct-wa, .ct-call{ width:32px; height:32px; border-radius:50%; display:inline-grid; place-items:center; flex:none; transition:transform var(--dur-fast), background var(--dur-fast); }
.ct-wa{ background:#25D366; color:#fff; }
.ct-wa:hover{ transform:scale(1.08); background:#1ebe5b; }
.ct-call{ background:var(--surface); border:1px solid var(--surface-line); color:var(--ink-muted); }
.ct-call:hover{ color:#fff; border-color:var(--purple-400); }
.ct-sin{ font-size:.8rem; color:var(--ink-faint); font-style:italic; }
.ct-stats{ display:flex; flex-direction:column; gap:.1rem; font-size:.8rem; color:var(--ink-faint); }
.ct-stats b{ font:600 .88rem var(--font-display); color:var(--ink); }
.ct-vacio{ padding:2rem; text-align:center; color:var(--ink-faint); border:1px dashed var(--surface-line); border-radius:var(--radius-md); }

.ct-dlg{ width:min(620px, calc(100vw - 2rem)); }
.ev-body{ padding:1.1rem 1.3rem 1.3rem; display:flex; flex-direction:column; gap:.85rem; }
.ev-actions{ display:flex; justify-content:space-between; align-items:center; gap:.6rem; }
.chip-btn.danger:hover{ border-color:#FF8FA3; color:#FF8FA3; }
.ct-dlg select{ color-scheme:dark; }

@media (max-width:860px){
  .ct-item, .solo-lectura .ct-item{ grid-template-columns:1fr auto; }
  .ct-phones{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; gap:.8rem; }
  .ct-stats{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; gap:.8rem; }
  .ct-edit{ grid-row:1; grid-column:2; }
  .ct-tabs{ min-width:0; width:100%; }
  .ct-search{ max-width:none; }
}
