/* ============================================================
   topdevphone — CONTACTS app styles
   Uses base.css chrome + CSS vars; both dark and light themes.
   ============================================================ */

/* search bar */
.ct-search {
  display: flex; align-items: center; gap: 8px;
  margin: 0 14px 10px; padding: 9px 12px;
  background: var(--bg-tertiary); border-radius: 11px;
  color: var(--text-tertiary); flex: 0 0 auto;
}
.ct-search .ic { width: 16px; height: 16px; flex: 0 0 auto; }
.ct-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  color: var(--text-primary); font-size: 14px;
}
.ct-search input::placeholder { color: var(--text-tertiary); }

/* share-nearby button */
.ct-share-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 12px; margin-bottom: 16px;
  border-radius: var(--radius-card);
  background: var(--bg-secondary); color: var(--accent-blue);
  font-size: 14px; font-weight: 600;
  transition: transform 0.12s, filter 0.15s;
}
.ct-share-btn .ic { width: 17px; height: 17px; }
.ct-share-btn:active { transform: scale(0.98); filter: brightness(1.2); }

/* list */
.ct-avatar { width: 38px; height: 38px; font-size: 13.5px; }
.ct-section { position: relative; }
.ct-letter {
  position: sticky; top: 0; z-index: 5;
  font-size: 13px; font-weight: 800; color: var(--text-secondary);
  padding: 4px 6px; margin-bottom: 4px;
  background: color-mix(in srgb, var(--bg-primary) 90%, transparent);
  backdrop-filter: blur(8px);
}
.ct-fav-star { color: var(--accent-yellow); display: flex; font-size: 13px; }
.ct-block-mark { color: var(--accent-red); display: flex; font-size: 13px; }
.ct-count {
  text-align: center; color: var(--text-tertiary);
  font-size: 13px; padding: 14px 0 6px;
}

/* detail hero */
.ct-hero {
  display: flex; flex-direction: column; align-items: center;
  padding: 8px 0 18px; text-align: center;
}
.ct-avatar-lg { width: 92px; height: 92px; font-size: 34px; margin-bottom: 12px; }
.ct-hero-name { font-size: 22px; font-weight: 800; }
.ct-hero-number { color: var(--text-secondary); font-size: 14px; margin-top: 3px; }
.ct-blocked-tag {
  display: flex; align-items: center; gap: 5px; margin-top: 8px;
  color: var(--accent-red); font-size: 12px; font-weight: 700;
}

/* call / message / pay actions */
.ct-actions { display: flex; gap: 10px; margin-bottom: 16px; }
.ct-action {
  flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px;
  background: var(--bg-secondary); border-radius: var(--radius-card);
  padding: 12px 0 10px; color: var(--accent-blue);
  font-size: 11.5px; font-weight: 600;
  transition: transform 0.12s, filter 0.15s;
}
.ct-action .ic { width: 20px; height: 20px; }
.ct-action:active { transform: scale(0.96); filter: brightness(1.25); }

.ct-danger { color: var(--accent-red); }
.ct-textbtn { font-size: 15px; font-weight: 600; }

/* add / edit form */
.ct-form .ct-field { padding: 10px 14px; position: relative; }
.ct-form .ct-field + .ct-field::before {
  content: ''; position: absolute; top: 0; left: 14px; right: 0; height: 1px;
  background: var(--separator);
}
.ct-form label {
  display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.6px;
  text-transform: uppercase; color: var(--text-secondary); margin-bottom: 5px;
}
.ct-form .input { background: transparent; padding: 0; border-radius: 0; font-size: 15px; }

/* shared-contact offer modal body */
.ct-offer { text-align: center; padding-bottom: 14px; }
.ct-offer .ct-avatar-lg { margin: 0 auto 10px; }
.ct-offer-name { font-size: 18px; font-weight: 800; }
.ct-offer-number { color: var(--text-secondary); font-size: 13.5px; margin-top: 2px; }
.ct-offer-note { margin-top: 8px; font-size: 12px; color: var(--accent-orange); font-weight: 600; }
