/* ==========================================================================
   IRCC CONTACT MANAGEMENT — CANONICAL
   Core page-owned stylesheet: desktop/tablet layout and shared components.
   Mobile workspace rules live in contacts-mobile.css; relationship UI lives in contact-relationships.css.
   All Contacts typography primitives are centralized in :root.
   ========================================================================== */

/* 01 — DESIGN TOKENS */
:root {
  /* Colors */
  --ct-purple: #6c4cf5;
  --ct-purple-2: #8068f6;
  --ct-purple-soft: #f2efff;
  --ct-text: #272a3c;
  --ct-muted: #7f8498;
  --ct-line: #e5e7ef;
  --ct-soft: #fafafe;
  --ct-buy: #178b77;
  --ct-buy-soft: #eaf8f4;
  --ct-sell: #5273c7;
  --ct-sell-soft: #edf3ff;
  --ct-linkedin: #0a66c2;
  --ct-linkedin-soft: #eef6ff;
  --ct-tooltip-bg: #ffffff;
  --ct-tooltip-border: #ded8fb;
  --ct-tooltip-shadow: 0 16px 42px rgba(45, 35, 95, .16), 0 4px 12px rgba(45, 35, 95, .07);

  /* Component sizing — screen profiles.
     Change the numeric values here; component selectors and media rules only
     reference these tokens. This keeps MacBook, monitor, Windows laptop and
     mobile sizing manageable from one place. */

  /* MacBook baseline — 1710×1107 */
  --ct-size-contact-avatar-macbook: 34px;
  --ct-size-linkedin-action-macbook: 32px;
  --ct-size-linkedin-icon-macbook: 20px;
  --ct-size-linkedin-profile-avatar-macbook: 86px;
  --ct-size-linkedin-profile-link-icon-macbook: 16px;
  --ct-size-linkedin-profile-control-macbook: 36px;
  --ct-size-linkedin-profile-settings-field-macbook: 40px;

  /* Monitor — 1920×1080 */
  --ct-size-contact-avatar-monitor: 34px;
  --ct-size-linkedin-action-monitor: 32px;
  --ct-size-linkedin-icon-monitor: 20px;
  --ct-size-linkedin-profile-avatar-monitor: 86px;
  --ct-size-linkedin-profile-link-icon-monitor: 16px;
  --ct-size-linkedin-profile-control-monitor: 36px;
  --ct-size-linkedin-profile-settings-field-monitor: 40px;

  /* Windows laptop — 1280×720 */
  --ct-size-contact-avatar-windows: 32px;
  --ct-size-linkedin-action-windows: 30px;
  --ct-size-linkedin-icon-windows: 18px;
  --ct-size-linkedin-profile-avatar-windows: 86px;
  --ct-size-linkedin-profile-link-icon-windows: 16px;
  --ct-size-linkedin-profile-control-windows: 34px;
  --ct-size-linkedin-profile-settings-field-windows: 38px;

  /* Tablet / mobile workspace — 384×832 baseline */
  --ct-size-contact-avatar-mobile: 36px;
  --ct-size-linkedin-action-mobile: 34px;
  --ct-size-linkedin-icon-mobile: 20px;
  --ct-size-linkedin-profile-avatar-mobile: 68px;
  --ct-size-linkedin-profile-link-icon-mobile: 16px;
  --ct-size-linkedin-profile-control-mobile: 34px;
  --ct-size-linkedin-profile-settings-field-mobile: 40px;
  --ct-size-mobile-card-avatar: 36px;
  --ct-size-mobile-drawer-avatar-tablet: 44px;
  --ct-size-mobile-drawer-avatar-phone: 43px;

  /* Active semantic sizes — default to the approved MacBook baseline. */
  --ct-size-contact-avatar: var(--ct-size-contact-avatar-macbook);
  --ct-size-linkedin-action: var(--ct-size-linkedin-action-macbook);
  --ct-size-linkedin-icon: var(--ct-size-linkedin-icon-macbook);
  --ct-size-linkedin-profile-avatar: var(--ct-size-linkedin-profile-avatar-macbook);
  --ct-size-linkedin-profile-link-icon: var(--ct-size-linkedin-profile-link-icon-macbook);
  --ct-size-linkedin-profile-control: var(--ct-size-linkedin-profile-control-macbook);
  --ct-size-linkedin-profile-settings-field: var(--ct-size-linkedin-profile-settings-field-macbook);
  --ct-size-mobile-drawer-avatar: var(--ct-size-mobile-drawer-avatar-tablet);

  /* Typography — family */
  --ct-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

  /* Typography — readable scale.
     Mirrors Shareholding: auxiliary text starts at 10px; controls at 11px;
     body copy at 12–13px; section/title sizes step up from there. */
  --ct-font-xs: 10px;
  --ct-font-sm: 11px;
  --ct-font-md: 12px;
  --ct-font-body: 13px;
  --ct-font-lg: 14px;
  --ct-font-xl: 16px;
  --ct-font-2xl: 18px;
  --ct-font-3xl: 20px;
  --ct-font-4xl: 24px;
  --ct-font-title-compact: 27px;
  --ct-font-5xl: 30px;

  /* Compatibility aliases used by the canonical component rules.
     Tiny historical values now resolve to the readable scale above. */
  --ct-font-0: 0;
  --ct-font-6-5: var(--ct-font-xs);
  --ct-font-7: var(--ct-font-xs);
  --ct-font-7-2: var(--ct-font-xs);
  --ct-font-7-4: var(--ct-font-xs);
  --ct-font-7-5: var(--ct-font-xs);
  --ct-font-7-7: var(--ct-font-xs);
  --ct-font-8: var(--ct-font-xs);
  --ct-font-8-2: var(--ct-font-xs);
  --ct-font-8-3: var(--ct-font-xs);
  --ct-font-8-4: var(--ct-font-xs);
  --ct-font-8-5: var(--ct-font-xs);
  --ct-font-8-7: var(--ct-font-xs);
  --ct-font-8-8: var(--ct-font-xs);
  --ct-font-9: var(--ct-font-sm);
  --ct-font-9-3: var(--ct-font-sm);
  --ct-font-9-5: var(--ct-font-sm);
  --ct-font-9-6: var(--ct-font-sm);
  --ct-font-9-7: var(--ct-font-sm);
  --ct-font-9-8: var(--ct-font-sm);
  --ct-font-10: var(--ct-font-sm);
  --ct-font-10-2: var(--ct-font-sm);
  --ct-font-10-25: var(--ct-font-sm);
  --ct-font-10-5: var(--ct-font-sm);
  --ct-font-10-8: var(--ct-font-md);
  --ct-font-11: var(--ct-font-sm);
  --ct-font-11-5: var(--ct-font-md);
  --ct-font-12: var(--ct-font-md);
  --ct-font-12-5: var(--ct-font-body);
  --ct-font-13: var(--ct-font-body);
  --ct-font-13-5: var(--ct-font-lg);
  --ct-font-14: var(--ct-font-lg);
  --ct-font-15: var(--ct-font-xl);
  --ct-font-16: var(--ct-font-xl);
  --ct-font-17: var(--ct-font-2xl);
  --ct-font-18: var(--ct-font-2xl);
  --ct-font-20: var(--ct-font-3xl);
  --ct-font-24: var(--ct-font-4xl);
  --ct-font-25: var(--ct-font-title-compact);
  --ct-font-30: var(--ct-font-5xl);

  /* Typography — weights. Keep the page to the same four practical weights
     used by the Shareholding design instead of many near-duplicate values. */
  --ct-weight-medium: 500;
  --ct-weight-semibold: 600;
  --ct-weight-bold: 700;
  --ct-weight-extrabold: 800;
  --ct-weight-black: 900;

  --ct-weight-500: var(--ct-weight-medium);
  --ct-weight-550: var(--ct-weight-semibold);
  --ct-weight-560: var(--ct-weight-semibold);
  --ct-weight-580: var(--ct-weight-semibold);
  --ct-weight-600: var(--ct-weight-semibold);
  --ct-weight-620: var(--ct-weight-semibold);
  --ct-weight-650: var(--ct-weight-bold);
  --ct-weight-700: var(--ct-weight-bold);
  --ct-weight-720: var(--ct-weight-bold);
  --ct-weight-750: var(--ct-weight-bold);
  --ct-weight-760: var(--ct-weight-bold);
  --ct-weight-790: var(--ct-weight-extrabold);
  --ct-weight-800: var(--ct-weight-extrabold);
  --ct-weight-820: var(--ct-weight-extrabold);
  --ct-weight-830: var(--ct-weight-extrabold);
  --ct-weight-850: var(--ct-weight-extrabold);
  --ct-weight-900: var(--ct-weight-black);


  /* Overlay typography — shared by every Contacts drawer and modal.
     These semantic tokens keep the contact editor, bulk import, email composer,
     LinkedIn profile card and mobile sheets on one readable scale. */

  /* Screen-profile source sizes */
  --ct-overlay-title-macbook: var(--ct-font-3xl);
  --ct-overlay-large-title-macbook: var(--ct-font-4xl);
  --ct-overlay-section-title-macbook: var(--ct-font-lg);
  --ct-overlay-body-macbook: var(--ct-font-body);
  --ct-overlay-control-macbook: var(--ct-font-body);
  --ct-overlay-subtitle-macbook: var(--ct-font-md);
  --ct-overlay-meta-macbook: var(--ct-font-sm);
  --ct-overlay-helper-macbook: var(--ct-font-sm);
  --ct-overlay-chip-macbook: var(--ct-font-xs);
  --ct-overlay-button-macbook: var(--ct-font-md);

  --ct-overlay-title-monitor: var(--ct-font-3xl);
  --ct-overlay-large-title-monitor: var(--ct-font-4xl);
  --ct-overlay-section-title-monitor: var(--ct-font-lg);
  --ct-overlay-body-monitor: var(--ct-font-body);
  --ct-overlay-control-monitor: var(--ct-font-body);
  --ct-overlay-subtitle-monitor: var(--ct-font-md);
  --ct-overlay-meta-monitor: var(--ct-font-sm);
  --ct-overlay-helper-monitor: var(--ct-font-sm);
  --ct-overlay-chip-monitor: var(--ct-font-xs);
  --ct-overlay-button-monitor: var(--ct-font-md);

  --ct-overlay-title-windows: var(--ct-font-3xl);
  --ct-overlay-large-title-windows: var(--ct-font-3xl);
  --ct-overlay-section-title-windows: var(--ct-font-lg);
  --ct-overlay-body-windows: var(--ct-font-body);
  --ct-overlay-control-windows: var(--ct-font-body);
  --ct-overlay-subtitle-windows: var(--ct-font-md);
  --ct-overlay-meta-windows: var(--ct-font-sm);
  --ct-overlay-helper-windows: var(--ct-font-sm);
  --ct-overlay-chip-windows: var(--ct-font-xs);
  --ct-overlay-button-windows: var(--ct-font-md);

  --ct-overlay-title-mobile: var(--ct-font-2xl);
  --ct-overlay-large-title-mobile: var(--ct-font-3xl);
  --ct-overlay-section-title-mobile: var(--ct-font-lg);
  --ct-overlay-body-mobile: var(--ct-font-body);
  --ct-overlay-control-mobile: var(--ct-font-lg);
  --ct-overlay-subtitle-mobile: var(--ct-font-md);
  --ct-overlay-meta-mobile: var(--ct-font-sm);
  --ct-overlay-helper-mobile: var(--ct-font-sm);
  --ct-overlay-chip-mobile: var(--ct-font-xs);
  --ct-overlay-button-mobile: var(--ct-font-md);

  /* Active overlay scale — MacBook baseline */
  --ct-overlay-title-size: var(--ct-overlay-title-macbook);
  --ct-overlay-large-title-size: var(--ct-overlay-large-title-macbook);
  --ct-overlay-section-title-size: var(--ct-overlay-section-title-macbook);
  --ct-overlay-body-size: var(--ct-overlay-body-macbook);
  --ct-overlay-control-size: var(--ct-overlay-control-macbook);
  --ct-overlay-subtitle-size: var(--ct-overlay-subtitle-macbook);
  --ct-overlay-meta-size: var(--ct-overlay-meta-macbook);
  --ct-overlay-helper-size: var(--ct-overlay-helper-macbook);
  --ct-overlay-chip-size: var(--ct-overlay-chip-macbook);
  --ct-overlay-button-size: var(--ct-overlay-button-macbook);

  /* Shared overlay weights */
  --ct-overlay-title-weight: var(--ct-weight-extrabold);
  --ct-overlay-section-title-weight: var(--ct-weight-extrabold);
  --ct-overlay-body-weight: var(--ct-weight-semibold);
  --ct-overlay-label-weight: var(--ct-weight-bold);
  --ct-overlay-meta-weight: var(--ct-weight-semibold);
  --ct-overlay-helper-weight: var(--ct-weight-medium);
  --ct-overlay-chip-weight: var(--ct-weight-bold);
  --ct-overlay-button-weight: var(--ct-weight-bold);
  --ct-overlay-eyebrow-weight: var(--ct-weight-extrabold);

  /* Typography — line heights */
  --ct-line-height-1: 1;
  --ct-line-height-1-05: 1.05;
  --ct-line-height-1-06: 1.06;
  --ct-line-height-1-08: 1.08;
  --ct-line-height-1-12: 1.12;
  --ct-line-height-1-15: 1.15;
  --ct-line-height-1-18: 1.18;
  --ct-line-height-1-2: 1.2;
  --ct-line-height-1-24: 1.24;
  --ct-line-height-1-25: 1.25;
  --ct-line-height-1-3: 1.3;
  --ct-line-height-1-35: 1.35;
  --ct-line-height-1-36: 1.36;
  --ct-line-height-1-4: 1.4;
  --ct-line-height-1-45: 1.45;
  --ct-line-height-1-55: 1.55;

  /* Typography — letter spacing / tracking */
  --ct-track-0: 0;
  --ct-track-em-neg-0-02: -.02em;
  --ct-track-em-0-06: .06em;
  --ct-track-em-0-08: .08em;
  --ct-track-em-0-19: .19em;
  --ct-track-neg-1: -1px;
  --ct-track-neg-0-75: -.75px;
  --ct-track-neg-0-45: -.45px;
  --ct-track-neg-0-35: -.35px;
  --ct-track-neg-0-3: -.3px;
  --ct-track-neg-0-2: -.2px;
  --ct-track-neg-0-15: -.15px;
  --ct-track-0-34: .34px;
  --ct-track-0-35: .35px;
  --ct-track-0-4: .4px;
  --ct-track-0-5: .5px;
  --ct-track-0-55: .55px;
  --ct-track-0-75: .75px;
  --ct-track-1: 1px;
  --ct-track-1-15: 1.15px;
  --ct-track-1-2: 1.2px;
  --ct-track-1-35: 1.35px;
  --ct-track-1-5: 1.5px;
}

/* Contacts page root */
.contacts-module {
  width: 100%;
  min-width: 0;
  color: var(--ct-text);
  font-family: var(--ct-font-family);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-size: var(--ct-font-13);
}

/* 02 — BASE & SHARED STATES */
.contacts-module *, .contacts-module *::before, .contacts-module *::after { box-sizing: border-box; }

.contacts-module .hidden { display: none !important; }

.ct-spinner {
  width: 14px;
  height: 14px;
  display: inline-block;
  margin-right: 7px;
  border: 2px solid #e5e1fb;
  border-top-color: var(--ct-purple);
  border-radius: 50%;
  vertical-align: -2px;
  animation: ctSpin .7s linear infinite;
}

.ct-toast {
  position: fixed;
  right: 25px;
  bottom: 25px;
  z-index: 1700;
  max-width: 380px;
  padding: 11px 14px;
  border: 1px solid #ddd8fa;
  border-radius: 11px;
  background: #fff;
  color: #62598d;
  font-size: var(--ct-font-10-5);
  font-weight: var(--ct-weight-750);
  box-shadow: 0 12px 35px rgba(45,37,85,.14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(7px);
  transition: .16s ease;
}

.ct-toast.show { opacity: 1; visibility: visible; transform: translateY(0); }

.ct-toast.error { border-color: #f0cdd4; color: #b64d5f; }


/* 03 — PAGE HEADER & SEARCH */
.ct-page-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  gap: 22px;
  margin-bottom: 14px;
  padding: 1px 2px 0;
}

.ct-page-copy { min-width: 0; }

.ct-eyebrow {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 6px;
  color: #8877d9;
  font-size: var(--ct-font-10);
  font-weight: var(--ct-weight-800);
  letter-spacing: var(--ct-track-1-5);
}

.ct-eyebrow span { width: 5px; height: 5px; border-radius: 50%; background: var(--ct-purple); }

.ct-page-head h1 {
  margin: 0;
  color: #222536;
  font-size: var(--ct-font-30);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  letter-spacing: var(--ct-track-neg-1);
}

.ct-page-head h1 strong { color: var(--ct-purple); }

.ct-page-head p {
  max-width: 760px;
  margin: 7px 0 0;
  color: var(--ct-muted);
  font-size: var(--ct-font-12-5);
  line-height: var(--ct-line-height-1-45);
  font-weight: var(--ct-weight-500);
}

.ct-head-actions { display: flex; align-items: center; gap: 9px; }

.ct-search { position: relative; width: min(440px,34vw); }

.ct-search svg {
  position: absolute;
  left: 14px;
  top: 50%;
  width: 17px;
  height: 17px;
  transform: translateY(-50%);
  color: #9399ad;
  pointer-events: none;
}

.ct-search input {
  width: 100%;
  height: 42px;
  padding: 0 14px 0 41px;
  border: 1px solid #dfe2eb;
  border-radius: 12px;
  background: #fff;
  color: #303345;
  outline: none;
  font-size: var(--ct-font-12);
  font-weight: var(--ct-weight-600);
  box-shadow: 0 2px 8px rgba(42,35,80,.025);
}

.ct-search input:focus { border-color: #cfc5ff; box-shadow: 0 0 0 3px rgba(108,76,245,.07); }

.ct-search input::placeholder { color: #9da3b5; }

.ct-add-btn {
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg,#6547ed,#7e65f7);
  color: #fff;
  font-size: var(--ct-font-11-5);
  font-weight: var(--ct-weight-800);
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(108,76,245,.18);
}

.ct-add-btn svg { width: 16px; height: 16px; }

.ct-add-btn:hover { transform: translateY(-1px); }

#contactsApp .ct-turbo-suggestions {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 7px);
  z-index: 1200;
  padding: 6px;
  border: 1px solid #e1dcfb;
  border-radius: 15px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 48px rgba(45,35,95,.14),0 4px 14px rgba(45,35,95,.06);
  backdrop-filter: blur(16px);
}

#contactsApp .ct-turbo-suggestions.hidden { display: none; }

#contactsApp .ct-turbo-suggestion {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #33364a;
  text-align: left;
  cursor: pointer;
}

#contactsApp .ct-turbo-suggestion:hover { background: #f5f2ff; color: #5e43dc; }

#contactsApp .ct-turbo-suggestion span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }

#contactsApp .ct-turbo-suggestion strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--ct-font-11-5);
  font-weight: var(--ct-weight-800);
}

#contactsApp .ct-turbo-suggestion small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #9296a8;
  font-size: var(--ct-font-9);
  font-weight: var(--ct-weight-650);
}

#contactsApp .ct-turbo-suggestion svg { width: 14px; height: 14px; flex: 0 0 auto; color: #a49bbf; }

#contactsApp .ct-search { position: relative; z-index: 20; }


/* 04 — PRIMARY FILTER BAR */
.contacts-module .ct-smart-native-shell {
  width: 100%;
  display: flex;
  justify-content: center;
  margin: 0 0 14px;
  padding: 0;
  overflow: visible;
}

.contacts-module .ct-smart-native-bar .ct-view-tab, .contacts-module .ct-smart-native-bar .ct-mini-tab {
  min-width: max-content;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #667087;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  box-shadow: none;
}

.contacts-module .ct-smart-native-bar .ct-view-tab svg, .contacts-module .ct-smart-native-bar .ct-mini-tab svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #738099;
  stroke-width: 1.8;
}

.contacts-module .ct-smart-native-bar .ct-view-tab:hover:not(.active), .contacts-module .ct-smart-native-bar .ct-mini-tab:hover:not(.active) { border-color: #ece7ff; background: #faf8ff; color: #6047d5; }

.contacts-module .ct-smart-native-bar .ct-view-tab.active, .contacts-module .ct-smart-native-bar .ct-mini-tab.active { border-color: #d6c6ff; background: #f3ebff; color: #6a43df; box-shadow: 0 2px 7px rgba(108,76,245,.10), inset 0 0 0 1px rgba(216,196,255,.22); }

.contacts-module .ct-smart-native-bar .ct-view-tab.active svg, .contacts-module .ct-smart-native-bar .ct-mini-tab.active svg { background: transparent; color: #6c45e8; }

.contacts-module .ct-smart-native-divider {
  width: 1px;
  height: 26px;
  flex: 0 0 1px;
  margin: 0 10px;
  background: #e3e4ed;
}

.contacts-module .ct-smart-native-expandable .ct-smart-native-divider { background: #e3e4ed; }

.contacts-module .ct-smart-native-expandable { min-width: 0; flex: 0 1 0; }

.contacts-module .ct-smart-native-expandable.expanded { min-width: 200px; flex: 1 1 390px; }

.contacts-module .ct-smart-native-type-scroll::-webkit-scrollbar, .contacts-module .ct-smart-native-broker-scroll::-webkit-scrollbar { display: none; width: 0; height: 0; }

.contacts-module .ct-smart-native-bar .ct-filter-pill {
  min-width: max-content;
  height: 36px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid #e6ddfb;
  border-radius: 999px;
  background: #fcfaff;
  color: #6d5d91;
  font-size: var(--ct-font-9-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  box-shadow: none;
}

.contacts-module .ct-smart-native-bar .ct-filter-pill:hover:not(.active) { border-color: #d8c4ff; background: #f8f2ff; color: #7248d9; }

.contacts-module .ct-smart-native-bar .ct-filter-pill.active { border-color: #d4bfff; background: #f1e8ff; color: #6d42df; box-shadow: inset 0 0 0 1px rgba(214,191,255,.20); }

.contacts-module .ct-smart-native-bar .ct-filter-pill strong {
  min-width: auto;
  min-height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px;
  border: 1px solid #e6ddfb;
  border-radius: 999px;
  background: #f6f1ff;
  color: #8878ab;
  font-size: var(--ct-font-8);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
}

.contacts-module .ct-smart-native-bar .ct-filter-pill.active strong { border-color: #d7c4ff; background: #fff; color: #7048d6; }

.contacts-module .ct-smart-native-reset-wrap {
  height: 34px;
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: 9px;
  padding-left: 9px;
  border-left: 1px solid #e3e4ed;
}

.contacts-module .ct-smart-native-reset {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  color: #7d879b;
  font-size: var(--ct-font-0);
  line-height: var(--ct-line-height-1);
  box-shadow: none;
  cursor: pointer;
}

.contacts-module .ct-smart-native-reset svg {
  width: 14px;
  height: 14px;
  display: block;
  flex: 0 0 14px;
  margin: 0;
}

.contacts-module .ct-smart-native-reset span { display: none; }

.contacts-module .ct-smart-native-reset:hover { border-color: #e0d5ff; background: #f8f3ff; color: #6647d8; }

.contacts-module .ct-smart-native-bar {
  width: min(100%,1560px);
  max-width: 100%;
  min-width: 0;
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 6px 8px;
  overflow: hidden;
  border: 1px solid #e2e3ec;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(39,33,78,.055);
}

.contacts-module .ct-smart-native-group { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; }

.contacts-module .ct-smart-native-expandable-inner {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.contacts-module .ct-smart-native-type-scroll, .contacts-module .ct-smart-native-broker-scroll {
  width: 0;
  min-width: 0;
  max-width: none;
  height: 40px;
  min-height: 40px;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0;
  margin: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}


/* 05 — SECTOR COVERAGE */
.ct-coverage-card {
  margin-bottom: 12px;
  padding: 14px 16px 15px;
  border: 1px solid #e4e6ee;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(39,33,78,.035);
}

.ct-coverage-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 11px;
}

.ct-coverage-head h2 {
  margin: 0;
  color: #292c3f;
  font-size: var(--ct-font-16);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-800);
  letter-spacing: var(--ct-track-neg-0-2);
}

.ct-coverage-head p {
  margin: 4px 0 0;
  color: #8d92a5;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1-35);
  font-weight: var(--ct-weight-600);
}

.ct-total-pill {
  height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  border: 1px solid #e0e2eb;
  border-radius: 999px;
  background: #fbfbfe;
  color: #878b9d;
  font-size: var(--ct-font-9);
  font-weight: var(--ct-weight-700);
  white-space: nowrap;
}

.ct-total-pill strong { color: #36394c; font-size: var(--ct-font-11); }

.ct-bucket-scroll {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,82,198,.18) transparent;
}

.ct-bucket-scroll::-webkit-scrollbar-thumb { background: rgba(105,82,198,.18); border-radius: 999px; }

.ct-bucket {
  min-width: 210px;
  max-width: 260px;
  height: 62px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid #e7e8ef;
  border-radius: 12px;
  background: #fbfbfe;
  color: #3a3d50;
  text-align: left;
  cursor: pointer;
}

.ct-bucket:hover { border-color: #d9d3fa; background: #fff; }

.ct-bucket.active { border-color: #cfc4ff; background: #f5f2ff; box-shadow: inset 0 0 0 1px #e2dcff; }

.ct-bucket-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f1edff;
  color: #674cf0;
}

.ct-bucket-icon svg { width: 15px; height: 15px; }

.ct-bucket-copy { min-width: 0; }

.ct-bucket-copy strong {
  display: block;
  overflow: hidden;
  color: #3c3f52;
  font-size: var(--ct-font-11-5);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-bucket-copy span {
  display: block;
  margin-top: 3px;
  overflow: hidden;
  color: #9296a8;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-650);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-bucket-number {
  color: #2c3042;
  font-size: var(--ct-font-17);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  font-variant-numeric: tabular-nums;
}

.ct-bucket-skeleton {
  min-width: 210px;
  height: 62px;
  border-radius: 12px;
  background: linear-gradient(90deg,#f7f7fb,#f0eff7,#f7f7fb);
  background-size: 200% 100%;
  animation: ctShimmer 1.2s infinite;
}

.ct-sector-subnav { margin-top: 11px; padding-top: 11px; border-top: 1px solid #eceef4; }

.ct-sector-subnav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.ct-sector-subnav-kicker {
  display: block;
  margin-bottom: 2px;
  color: #9a9daf;
  font-size: var(--ct-font-8);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-55);
}

.ct-sector-subnav-head strong {
  display: block;
  color: #35384b;
  font-size: var(--ct-font-12);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-800);
}

.ct-subsector-scroll {
  display: flex;
  align-items: center;
  gap: 7px;
  overflow-x: auto;
  padding: 1px 0 3px;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,82,198,.16) transparent;
}

.ct-bucket-scroll::-webkit-scrollbar, .ct-subsector-scroll::-webkit-scrollbar { height: 4px; }

.ct-subsector-scroll::-webkit-scrollbar-thumb { background: rgba(105,82,198,.16); border-radius: 999px; }

.ct-subsector {
  min-width: max-content;
  height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid #e4e5ed;
  border-radius: 9px;
  background: #fbfbfe;
  color: #666b80;
  cursor: pointer;
  white-space: nowrap;
}

.ct-subsector span { font-size: var(--ct-font-9-5); font-weight: var(--ct-weight-750); }

.ct-subsector strong {
  min-width: 18px;
  color: #858a9e;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-800);
  text-align: right;
}

.ct-subsector:hover { border-color: #d7d1f8; background: #fff; color: #5f48d0; }

.ct-subsector.active { border-color: #cfc4ff; background: #f2efff; color: #5d43dc; }

.ct-subsector.active strong { color: #6a52dc; }

.ct-coverage-card .ct-bucket { min-width: 205px; }


/* 06 — CONTACT TABLE & PAGINATION */
.ct-table-card {
  overflow: hidden;
  border: 1px solid #e4e6ee;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(39,33,78,.04);
}

.ct-table-toolbar {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 13px;
  border-bottom: 1px solid #eceef3;
}

.ct-table-context {
  min-width: 0;
  overflow: hidden;
  color: #62677b;
  font-size: var(--ct-font-10-5);
  font-weight: var(--ct-weight-750);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-table-summary {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #8c91a4;
  font-size: var(--ct-font-9-5);
  font-weight: var(--ct-weight-700);
}

.ct-table-wrap { width: 100%; overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(91,74,166,.18) transparent; }

.ct-table-wrap::-webkit-scrollbar { height: 5px; width: 5px; }

.ct-table-wrap::-webkit-scrollbar-thumb { background: rgba(91,74,166,.18); border-radius: 999px; }

.ct-table {
  width: 100%;
  min-width: 1280px;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
}

.ct-table th {
  height: 38px;
  padding: 0 11px;
  border-bottom: 1px solid #e9ebf2;
  background: #fafafe;
  color: #868b9f;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-800);
  text-align: left;
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-55);
}

.ct-table td {
  height: 57px;
  padding: 8px 11px;
  border-bottom: 1px solid #eef0f4;
  color: #555b70;
  font-size: var(--ct-font-10-8);
  line-height: var(--ct-line-height-1-35);
  vertical-align: middle;
}

.ct-table tbody tr:last-child td { border-bottom: 0; }

.ct-contact-row:hover td:not(.ct-institution-group-cell) { background: #fcfbff; }

.ct-table th:nth-child(1) { width: 240px; }

.ct-table th:nth-child(2) { width: 185px; }

.ct-table th:nth-child(5) { width: 130px; }

.ct-table th:nth-child(6) { width: 125px; }

.ct-table th:nth-child(3), .ct-table th:nth-child(7) { width: 205px; }

.ct-table th:nth-child(8) { width: 90px; }

.ct-institution-group-cell { vertical-align: top; padding: 12px 12px; border-right: 1px solid #eceef4; background: #fbfbfe; }

.ct-sector-list {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
}

.ct-sector-tooltip-trigger {
  border-radius: 8px;
  cursor: help;
  outline: none;
}

.ct-sector-tooltip-trigger:focus-visible {
  box-shadow: 0 0 0 2px rgba(108,76,245,.18);
}

.ct-sector-tag {
  display: inline-flex;
  align-items: center;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  min-height: 23px;
  padding: 0 7px;
  border-radius: 8px;
  background: #f5f4fa;
  color: #676b80;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-700);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-contact-cell { display: flex; align-items: center; min-width: 0; }

.ct-contact-main { min-width: 0; width: 100%; }

.ct-contact-main strong {
  display: block;
  overflow: hidden;
  color: #2f3245;
  font-size: var(--ct-font-12);
  line-height: var(--ct-line-height-1-3);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-type-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  font-size: var(--ct-font-8-3);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
}

.ct-type-pill.buy { background: var(--ct-buy-soft); color: var(--ct-buy); }

.ct-type-pill.sell { background: var(--ct-sell-soft); color: var(--ct-sell); }

.ct-scope-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #f3f4f8;
  color: #7a7f92;
  font-size: var(--ct-font-8);
  font-weight: var(--ct-weight-750);
}

.ct-scope-pill.private { background: #f1edff; color: #6449db; }

.ct-row-action {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #9499ab;
  cursor: pointer;
}

.ct-row-action:hover { background: #f3f0ff; color: #684cf0; }

.ct-inline-tier-row { display: flex; align-items: center; margin-top: 9px; }

.ct-inline-tier-switcher {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 31px;
  padding: 3px 4px 3px 8px;
  border: 1px solid #e0e2eb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(39,33,78,.035);
  transition: border-color .15s ease,box-shadow .15s ease,opacity .15s ease;
}

.ct-inline-tier-switcher:hover { border-color: #d8d1fb; box-shadow: 0 3px 9px rgba(80,63,153,.055); }

.ct-inline-tier-switcher.is-saving { opacity: .52; pointer-events: none; }

.ct-tier-prefix {
  display: inline-flex;
  align-items: center;
  height: 23px;
  padding-right: 6px;
  border-right: 1px solid #ececf3;
  color: #8c91a4;
  font-size: var(--ct-font-7-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-55);
  white-space: nowrap;
}

.ct-tier-options { display: inline-flex; align-items: center; gap: 3px; }

.ct-tier-option {
  min-width: 28px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: #f7f7fb;
  color: #777d91;
  font: var(--ct-weight-800) var(--ct-font-8)/var(--ct-line-height-1) var(--ct-font-family);
  white-space: nowrap;
  cursor: pointer;
  transition: color .14s ease,
    background .14s ease,
    border-color .14s ease,
    box-shadow .14s ease,
    transform .14s ease;
}

.ct-tier-option:first-child { min-width: 36px; }

.ct-tier-option:hover:not(:disabled):not(.active) { color: #6047d7; background: #f5f2ff; border-color: #e3dcff; }

.ct-tier-option.active { color: #5e43d7; background: #eee9ff; border-color: #d7ccff; box-shadow: inset 0 0 0 1px rgba(108,76,245,.04); }

.ct-tier-option:active:not(:disabled) { transform: scale(.97); }

.ct-inline-tier-row.readonly .ct-inline-tier-switcher { opacity: .82; }

.ct-tier-option:disabled, .ct-inline-tier-row.readonly .ct-tier-option { cursor: default; }

.ct-inline-tier-switcher.is-unclassified .ct-tier-option { background: #fafafe; color: #9297a9; }

.ct-inline-tier-switcher.is-unclassified .ct-tier-option:hover:not(:disabled) { background: #f5f2ff; color: #6047d7; }

.ct-pagination {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border-top: 1px solid #eceef3;
  color: #7e8396;
  font-size: var(--ct-font-9-5);
  font-weight: var(--ct-weight-700);
}

.ct-page-btn {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #e2e4eb;
  border-radius: 9px;
  background: #fff;
  color: #777c90;
  cursor: pointer;
}

.ct-page-btn:disabled { opacity: .4; cursor: not-allowed; }

.ct-row-action svg, .ct-page-btn svg { width: 14px; height: 14px; }

.contacts-module .ct-table-toolbar { justify-content: flex-start; }

.contacts-module .ct-table-context { flex: 1 1 auto; }

.contacts-module .ct-table-summary { flex: 0 0 auto; }

.contacts-module .ct-contact-cell { display: flex; align-items: center; gap: 9px; min-width: 0; }

.contacts-module .ct-profile-avatar-fallback {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  line-height: var(--ct-line-height-1);
  letter-spacing: var(--ct-track-neg-0-15);
  user-select: none;
}

.contacts-module .ct-profile-avatar-image {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
  background: #f5f3fb;
}

.contacts-module .ct-contact-main { min-width: 0; width: auto; flex: 1 1 auto; }

.contacts-module .ct-linkedin-action {
  width: var(--ct-size-linkedin-action);
  height: var(--ct-size-linkedin-action);
  display: inline-grid;
  place-items: center;
  margin: 0 auto;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: none;
  transition: background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}

.contacts-module .ct-linkedin-logo { width: var(--ct-size-linkedin-icon); height: var(--ct-size-linkedin-icon); display: block; }

.contacts-module .ct-linkedin-action.unavailable { color: #b2b6c3; cursor: default; }

.contacts-module .ct-linkedin-action.available { color: var(--ct-linkedin); cursor: pointer; }

.contacts-module .ct-linkedin-action.available:hover { background: var(--ct-linkedin-soft); box-shadow: inset 0 0 0 1px rgba(10,102,194,.12); transform: translateY(-1px); }

.contacts-module .ct-linkedin-cell, .contacts-module .ct-linkedin-col { text-align: center; }

.contacts-module .ct-table { min-width: 1355px; }

.contacts-module .ct-table th:nth-child(1) { width: 232px; }

.contacts-module .ct-table th:nth-child(2) { width: 176px; }

.contacts-module .ct-table th:nth-child(3) { width: 198px; }

.contacts-module .ct-table th:nth-child(4) { width: 180px; }

.contacts-module .ct-table th:nth-child(5), .contacts-module .ct-table th:nth-child(6) { width: 122px; }

.ct-table th:nth-child(4), .contacts-module .ct-table th:nth-child(7) { width: 190px; }

.contacts-module .ct-table th:nth-child(8) { width: 78px; text-align: center; }

.contacts-module .ct-table th:nth-child(9) { width: 84px; }

.ct-table th:nth-child(9), .contacts-module .ct-table th:nth-child(10) { width: 42px; }


/* 07 — SOURCE FILTER */
.contacts-module .ct-source-toggle {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 3px;
  min-height: 32px;
  padding: 3px;
  border: 1px solid #e1e3ec;
  border-radius: 10px;
  background: #f8f8fc;
}

.contacts-module .ct-source-toggle-label {
  padding: 0 4px 0 6px;
  color: #8a8fa2;
  font-size: var(--ct-font-7-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-850);
  letter-spacing: var(--ct-track-em-0-08);
  text-transform: uppercase;
}

.contacts-module .ct-source-toggle-btn {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 8px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: #72778a;
  font-family: inherit;
  font-size: var(--ct-font-8-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}

.contacts-module .ct-source-toggle-btn svg { width: 12px; height: 12px; stroke-width: 1.8; }

.contacts-module .ct-source-toggle-btn:hover { color: #6348dc; background: #f2efff; }

.contacts-module .ct-source-toggle-btn.active { border-color: #d6cdff; background: #fff; color: #6549de; box-shadow: 0 2px 7px rgba(87,66,176,.08); }

.contacts-module .ct-source-toggle-btn[data-source-filter="private"].active { background: #f5f1ff; }


/* 08 — CONTACT DRAWER & EDITOR */
.ct-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1550;
  background: rgba(37,34,55,.28);
  backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: .18s ease;
}

.ct-drawer-backdrop.show { opacity: 1; visibility: visible; }

.ct-drawer {
  position: fixed;
  top: 14px;
  right: 14px;
  bottom: 14px;
  z-index: 1560;
  width: min(640px,96vw);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e1e3eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: -24px 0 65px rgba(31,26,64,.16);
  transform: translateX(104%);
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
}

.ct-drawer.show { transform: translateX(0); }

.ct-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 19px;
  border-bottom: 1px solid #eceef3;
}

.ct-drawer-title { display: flex; align-items: center; gap: 11px; min-width: 0; }

.ct-avatar {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  border-radius: 13px;
  background: linear-gradient(145deg,#e9e4ff,#f8f6ff);
  color: #6046d7;
  font-size: var(--ct-font-14);
  font-weight: var(--ct-weight-800);
}

.ct-drawer-kicker {
  display: block;
  color: #8d82d0;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-eyebrow-weight);
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-75);
}

.ct-drawer-title h2 {
  margin: 3px 0 0;
  color: #282b3e;
  font-size: var(--ct-overlay-title-size);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-overlay-title-weight);
  letter-spacing: var(--ct-track-neg-0-3);
}

.ct-drawer-title p { margin: 4px 0 0; color: #9296a8; font-size: var(--ct-overlay-subtitle-size); font-weight: var(--ct-overlay-meta-weight); }

.ct-drawer-close {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  padding: 0;
  border: 1px solid #e1e3eb;
  border-radius: 10px;
  background: #fff;
  color: #74798c;
  cursor: pointer;
}

.ct-drawer-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 16px 18px 20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(94,76,166,.18) transparent;
}

.ct-quick-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 12px; }

.ct-quick-action {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #e6e4f1;
  border-radius: 11px;
  background: #faf9ff;
  color: #5f48d0;
  text-decoration: none;
  font-size: var(--ct-overlay-button-size);
  font-weight: var(--ct-overlay-button-weight);
}

.ct-form { display: flex; flex-direction: column; gap: 12px; }

.ct-form-section { padding: 14px; border: 1px solid #e9eaf0; border-radius: 14px; background: #fff; }

.ct-form-section-head { display: flex; align-items: center; gap: 10px; margin-bottom: 11px; }

.ct-form-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 9px;
  background: #f1edff;
  color: #664bdc;
}

.ct-form-section-head strong { display: block; color: #343749; font-size: var(--ct-overlay-section-title-size); font-weight: var(--ct-overlay-section-title-weight); }

.ct-form-section-head span:not(.ct-form-icon) {
  display: block;
  margin-top: 2px;
  color: #999cad;
  font-size: var(--ct-overlay-helper-size);
  font-weight: var(--ct-overlay-helper-weight);
  line-height: var(--ct-line-height-1-35);
}

.ct-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }

.ct-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }

.ct-field-wide { grid-column: 1/-1; }

.ct-field>span {
  color: #73788c;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-label-weight);
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-35);
}

.ct-field input, .ct-field select {
  width: 100%;
  border: 1px solid #dfe2eb;
  border-radius: 9px;
  background: #fff;
  color: #383b4d;
  font: var(--ct-overlay-body-weight) var(--ct-overlay-control-size)/var(--ct-line-height-1-4) var(--ct-font-family);
  outline: none;
  transition: .15s ease;
  height: 39px;
  padding: 0 11px;
}

.ct-field textarea {
  width: 100%;
  border: 1px solid #dfe2eb;
  border-radius: 9px;
  background: #fff;
  color: #383b4d;
  font: var(--ct-overlay-body-weight) var(--ct-overlay-control-size)/var(--ct-line-height-1-4) var(--ct-font-family);
  outline: none;
  transition: .15s ease;
  padding: 9px 10px;
  resize: vertical;
}

.ct-field small { color: #a0a3b2; font-size: var(--ct-overlay-helper-size); line-height: var(--ct-line-height-1-35); font-weight: var(--ct-overlay-helper-weight); }

.ct-drawer-footer {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 15px;
  border-top: 1px solid #eceef3;
  background: #fff;
}

.ct-drawer-footer-right { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.ct-primary-btn {
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-label-weight);
  cursor: pointer;
  border: 0;
  background: linear-gradient(135deg,#6547ed,#7e65f7);
  color: #fff;
}

.ct-secondary-btn {
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-label-weight);
  cursor: pointer;
  border: 1px solid #e0e2eb;
  background: #fff;
  color: #676c7f;
}

.ct-danger-btn {
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-label-weight);
  cursor: pointer;
  border: 1px solid #f2d5da;
  background: #fff7f8;
  color: #c45264;
}

.contacts-module .ct-drawer-backdrop { background: rgba(28,25,48,.34); backdrop-filter: blur(5px); }

.contacts-module .ct-drawer {
  top: 10px;
  right: 10px;
  bottom: 10px;
  width: min(690px,calc(100vw - 20px));
  border: 1px solid #dedfea;
  border-radius: 20px;
  background: #fff;
  box-shadow: -28px 0 72px rgba(35,28,73,.18),0 12px 36px rgba(35,28,73,.08);
}

.contacts-module .ct-drawer::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg,var(--ct-purple),#8b73ff);
}

.contacts-module .ct-drawer-close:hover { border-color: #d8d0ff; background: #f7f4ff; color: #6247dc; }

.contacts-module .ct-drawer-close svg { width: 17px; height: 17px; }

.contacts-module .ct-drawer-body { padding: 16px 20px 24px; background: #fff; scrollbar-color: rgba(94,76,166,.22) transparent; }

.contacts-module .ct-form { gap: 0; }

.contacts-module .ct-form-section {
  margin: 0;
  padding: 18px 2px 19px;
  border: 0;
  border-bottom: 1px solid #ececf3;
  border-radius: 0;
  background: transparent;
}

.contacts-module .ct-form-section:first-child { padding-top: 4px; }

.contacts-module .ct-form-section:last-child { border-bottom: 0; padding-bottom: 4px; }

.contacts-module .ct-form-section-head { align-items: flex-start; gap: 11px; margin-bottom: 14px; }

.contacts-module .ct-form-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border: 1px solid #e2dcff;
  border-radius: 10px;
  background: #f3f0ff;
  color: #674cdd;
}

.ct-drawer-close svg, .ct-quick-action svg, .contacts-module .ct-form-icon svg { width: 15px; height: 15px; }

.contacts-module .ct-form-section-head strong { color: #2c3042; font-size: var(--ct-overlay-section-title-size); line-height: var(--ct-line-height-1-3); font-weight: var(--ct-overlay-section-title-weight); }

.contacts-module .ct-form-section-head span:not(.ct-form-icon) {
  margin-top: 3px;
  color: #878c9e;
  font-size: var(--ct-overlay-helper-size);
  line-height: var(--ct-line-height-1-45);
  font-weight: var(--ct-overlay-helper-weight);
}

.contacts-module .ct-field-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 13px; }

.contacts-module .ct-field { gap: 6px; }

.contacts-module .ct-field>span {
  color: #666c80;
  font-size: var(--ct-overlay-meta-size);
  line-height: var(--ct-line-height-1-25);
  font-weight: var(--ct-overlay-label-weight);
  text-transform: none;
  letter-spacing: var(--ct-track-0);
}

.contacts-module .ct-field input, .contacts-module .ct-field select {
  border: 1px solid #dfe2eb;
  border-radius: 10px;
  background: #fff;
  color: #34384a;
  font: var(--ct-overlay-body-weight) var(--ct-overlay-control-size)/var(--ct-line-height-1-45) var(--ct-font-family);
  box-shadow: 0 1px 2px rgba(32,35,54,.02);
  height: 42px;
  padding: 0 11px;
}

.contacts-module .ct-field textarea {
  border: 1px solid #dfe2eb;
  border-radius: 10px;
  background: #fff;
  color: #34384a;
  font: var(--ct-overlay-body-weight) var(--ct-overlay-control-size)/var(--ct-line-height-1-45) var(--ct-font-family);
  box-shadow: 0 1px 2px rgba(32,35,54,.02);
  min-height: 70px;
  padding: 10px 11px;
  resize: vertical;
}

.contacts-module .ct-field input:hover, .contacts-module .ct-field select:hover, .contacts-module .ct-field textarea:hover { border-color: #d4d7e2; }

.contacts-module .ct-field input:focus, .contacts-module .ct-field select:focus, .contacts-module .ct-field textarea:focus { border-color: #bfb2ff; box-shadow: 0 0 0 3px rgba(108,76,245,.08); }

.contacts-module .ct-field input::placeholder, .contacts-module .ct-field textarea::placeholder { color: #a1a5b4; font-weight: var(--ct-weight-500); }

.contacts-module .ct-field small { color: #969baa; font-size: var(--ct-overlay-helper-size); line-height: var(--ct-line-height-1-4); font-weight: var(--ct-overlay-helper-weight); }

.contacts-module .ct-form input:disabled, .contacts-module .ct-form select:disabled, .contacts-module .ct-form textarea:disabled {
  border-color: #e7e8ee;
  background: #f7f7fa;
  color: #707587;
  opacity: 1;
  cursor: not-allowed;
}

.contacts-module .ct-section-broker .ct-form-icon { background: #eef3ff; border-color: #dde5ff; color: #5270c5; }

.contacts-module .ct-section-preferences .ct-form-icon { background: #f5f5f8; border-color: #e7e7ed; color: #666d80; }

.contacts-module .ct-drawer-footer {
  min-height: 66px;
  padding: 11px 16px;
  border-top: 1px solid #e8e9f0;
  background: #fdfdff;
  box-shadow: 0 -8px 20px rgba(38,32,73,.035);
}

.contacts-module .ct-drawer-footer-right { gap: 9px; }

.contacts-module .ct-secondary-btn, .contacts-module .ct-danger-btn {
  height: 42px;
  padding: 0 15px;
  border-radius: 11px;
  font-size: var(--ct-overlay-button-size);
  font-weight: var(--ct-overlay-button-weight);
  transition: .15s ease;
}

.contacts-module .ct-primary-btn {
  height: 42px;
  padding: 0 15px;
  border-radius: 11px;
  font-size: var(--ct-overlay-button-size);
  font-weight: var(--ct-overlay-button-weight);
  transition: .15s ease;
  min-width: 124px;
  background: linear-gradient(135deg,#6547ed,#7e65f7);
  box-shadow: 0 7px 16px rgba(108,76,245,.16);
}

.contacts-module .ct-primary-btn:hover { transform: translateY(-1px); box-shadow: 0 9px 19px rgba(108,76,245,.20); }

.contacts-module .ct-secondary-btn:hover { border-color: #d6d0f0; background: #f8f6ff; color: #6048d0; }

.contacts-module .ct-danger-btn:hover { border-color: #ebc5cd; background: #fff2f4; color: #b84356; }

.ct-form-icon svg, .ct-primary-btn svg, .ct-danger-btn svg, .contacts-module .ct-primary-btn svg, .contacts-module .ct-danger-btn svg { width: 14px; height: 14px; }

.contacts-module:not([data-client-view="1"]) .ct-client-sector-picker { display: none !important; }

.ct-client-sector-picker { display: none; margin-top: 7px; }

.ct-client-sector-search-wrap {
  min-height: 42px;
  display: grid;
  grid-template-columns: 18px minmax(0,1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  border: 1px solid #dfe2eb;
  border-radius: 11px;
  background: #fff;
}

.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus, .ct-client-sector-search-wrap:focus-within { border-color: #cfc5ff; box-shadow: 0 0 0 3px rgba(108,76,245,.06); }

.ct-client-sector-search-wrap>svg { width: 15px; height: 15px; color: #8c92a6; }

.ct-client-sector-search-wrap input {
  min-width: 0;
  height: 38px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #404458;
  font-size: var(--ct-font-11);
  font-weight: var(--ct-weight-650);
}

.ct-client-sector-search-wrap input::placeholder { color: #a0a5b7; }

.ct-client-sector-search-wrap>span { color: #7560df; font-size: var(--ct-font-9); font-weight: var(--ct-weight-800); white-space: nowrap; }

.ct-client-sector-options {
  max-height: 228px;
  overflow: auto;
  margin-top: 8px;
  padding: 9px;
  border: 1px solid #e6e7ef;
  border-radius: 11px;
  background: #fafafe;
  scrollbar-width: thin;
  scrollbar-color: rgba(98,76,203,.18) transparent;
}

.ct-client-sector-picker>small {
  display: block;
  margin: 7px 2px 0;
  color: #8c91a4;
  font-size: var(--ct-font-9);
  line-height: var(--ct-line-height-1-4);
}

.contacts-module .ct-quick-action:hover { border-color: #cfc4ff; background: #f4f0ff; transform: translateY(-1px); }

.contacts-module .ct-drawer-head {
  position: relative;
  z-index: 1;
  border-bottom: 1px solid #e9eaf1;
  background: linear-gradient(180deg,#fff 0%,#fdfcff 100%);
  min-height: 72px;
  align-items: flex-start;
  padding: 14px 20px 10px;
  gap: 12px;
}

.contacts-module .ct-drawer-title { flex: 1; min-width: 0; align-items: flex-start; gap: 12px; }

.contacts-module .ct-drawer-title-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  padding-top: 1px;
}

.contacts-module .ct-drawer-kicker {
  color: #7663d7;
  font-weight: var(--ct-weight-800);
  margin: 0 0 3px;
  padding-top: 1px;
  font-size: var(--ct-font-9);
  line-height: var(--ct-line-height-1-05);
  letter-spacing: var(--ct-track-1);
}

.contacts-module .ct-drawer-name-row {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  margin-top: 0;
  min-height: 28px;
}

.contacts-module .ct-drawer-title h2 {
  margin: 0;
  color: #25283a;
  font-size: var(--ct-overlay-title-size);
  line-height: var(--ct-line-height-1-08);
  font-weight: var(--ct-overlay-title-weight);
  letter-spacing: var(--ct-track-neg-0-45);
}

.contacts-module .ct-drawer-name-row h2 { margin: 0; min-width: 0; font-size: var(--ct-overlay-title-size); line-height: var(--ct-line-height-1-08); }

.contacts-module .ct-drawer-title p {
  max-width: 500px;
  color: #7d8295;
  font-weight: var(--ct-weight-550);
  margin: 3px 0 0;
  font-size: var(--ct-font-11);
  line-height: var(--ct-line-height-1-25);
}

.contacts-module .ct-quick-actions {
  grid-template-columns: 1fr;
  border-bottom: 1px solid #ececf3;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0 0 0 4px;
  padding: 0;
  border: 0;
}

.contacts-module .ct-quick-action {
  transition: .15s ease;
  width: auto;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid #ddd6fe;
  background: #faf8ff;
  color: #6548e8;
  text-decoration: none;
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
  box-shadow: none;
  height: 30px;
  padding: 0 12px;
  border-radius: 10px;
  font-size: var(--ct-font-10-5);
}

.contacts-module .ct-quick-action svg { width: 13px; height: 13px; }

.contacts-module .ct-drawer-close {
  border-color: #e1e3eb;
  border-radius: 11px;
  color: #6f7487;
  transition: .15s ease;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin-top: 0;
  align-self: flex-start;
}

#contactsApp .ct-custom-select-label {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-align: left;
  font-size: var(--ct-overlay-body-size);
  font-weight: var(--ct-overlay-label-weight);
  color: #414558;
}

#contactsApp .ct-custom-select-trigger.placeholder .ct-custom-select-label { color: #9a9eae; font-weight: var(--ct-weight-650); }

#contactsApp .ct-custom-select-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 80;
  display: none;
  padding: 6px;
  border: 1px solid #e0e1ea;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(41,35,75,.16);
  max-height: 240px;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,79,214,.22) transparent;
}

#contactsApp .ct-custom-select-option {
  width: 100%;
  min-height: 35px;
  display: grid;
  grid-template-columns: 26px minmax(0,1fr) 16px;
  align-items: center;
  gap: 8px;
  padding: 4px 7px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #565b6f;
  text-align: left;
  font: var(--ct-overlay-label-weight) var(--ct-overlay-meta-size)/var(--ct-line-height-1-2) inherit;
  cursor: pointer;
}

#contactsApp .ct-custom-select-option:hover, #contactsApp .ct-custom-select-option:focus-visible { background: #f7f5ff; color: #5f48d0; outline: none; }

#contactsApp .ct-custom-select-option-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f4f2fb;
  color: #777d91;
}

#contactsApp .ct-custom-select-check {
  width: 13px;
  height: 13px;
  opacity: 0;
  color: #664bdc;
  stroke-width: 2;
}

#contactsApp .ct-custom-select-option.selected .ct-custom-select-check { opacity: 1; }

#contactsApp .ct-sector-picker-summary {
  min-width: 0;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 5px;
  overflow: hidden;
  white-space: nowrap;
}

#contactsApp .ct-sector-picker-chip {
  min-width: 0;
  max-width: 120px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  padding: 0 7px;
  border-radius: 7px;
  background: #f1edff;
  color: #6047d3;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-800);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#contactsApp .ct-sector-picker-more {
  min-width: 0;
  max-width: 120px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  padding: 0 7px;
  border-radius: 7px;
  background: #f5f4fa;
  color: #777d91;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-800);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 0 0 auto;
}

#contactsApp .ct-sector-picker-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 80;
  display: none;
  padding: 8px;
  border: 1px solid #e0e1ea;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(41,35,75,.16);
}

#contactsApp .ct-sector-picker-options {
  max-height: 220px;
  overflow: auto;
  display: grid;
  gap: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,79,214,.22) transparent;
}

#contactsApp .ct-sector-picker-option {
  width: 100%;
  min-height: 35px;
  display: grid;
  grid-template-columns: 27px minmax(0,1fr) 24px;
  align-items: center;
  gap: 8px;
  padding: 4px 7px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #555b6e;
  cursor: pointer;
  text-align: left;
}

#contactsApp .ct-sector-picker-option-icon, #contactsApp .ct-sector-picker-option-check {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f4f2fb;
  color: #777d91;
}

#contactsApp .ct-sector-picker-option-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--ct-font-10);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-750);
}

#contactsApp .ct-custom-select, #contactsApp .ct-sector-picker, #contactsApp .ct-institution-picker { position: relative; width: 100%; min-width: 0; font-family: inherit; }

#contactsApp .ct-custom-select-trigger, #contactsApp .ct-sector-picker-trigger, #contactsApp .ct-institution-picker-trigger {
  width: 100%;
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 1px solid #dfe2eb;
  border-radius: 10px;
  background: #fff;
  color: #383b4d;
  cursor: pointer;
  outline: none;
  transition: border-color .15s ease,box-shadow .15s ease,background .15s ease;
}

#contactsApp .ct-custom-select-trigger:hover, #contactsApp .ct-sector-picker-trigger:hover, #contactsApp .ct-institution-picker-trigger:hover { border-color: #d2caff; background: #fdfcff; }

#contactsApp .ct-custom-select.open .ct-custom-select-trigger, #contactsApp .ct-sector-picker.open .ct-sector-picker-trigger, #contactsApp .ct-custom-select-trigger:focus-visible, #contactsApp .ct-sector-picker-trigger:focus-visible, #contactsApp .ct-institution-picker.open .ct-institution-picker-trigger, #contactsApp .ct-institution-picker-trigger:focus-visible { border-color: #bcaeff; box-shadow: 0 0 0 3px rgba(108,76,245,.07); }

#contactsApp .ct-custom-select-leading, #contactsApp .ct-sector-picker-leading, #contactsApp .ct-institution-picker-leading {
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f1edff;
  color: #684cdd;
}

#contactsApp .ct-institution-picker-summary { min-width: 0; flex: 1; overflow: hidden; text-align: left; }

#contactsApp .ct-sector-picker-placeholder, #contactsApp .ct-institution-picker-placeholder { color: #9499aa; font-size: var(--ct-font-10-5); font-weight: var(--ct-weight-650); }

#contactsApp .ct-institution-picker-selected-copy { min-width: 0; display: flex; align-items: baseline; gap: 7px; }

#contactsApp .ct-institution-picker-selected-copy strong {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: #414558;
  font-size: var(--ct-overlay-button-size);
  font-weight: var(--ct-overlay-button-weight);
}

#contactsApp .ct-institution-picker-selected-copy small { flex: 0 0 auto; color: #9499aa; font-size: var(--ct-font-7-5); font-weight: var(--ct-weight-700); }

#contactsApp .ct-custom-select-chevron, #contactsApp .ct-sector-picker-chevron, #contactsApp .ct-institution-picker-chevron {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  color: #7d8294;
  stroke-width: 1.8;
  transition: transform .16s ease;
}

#contactsApp .ct-custom-select.open .ct-custom-select-chevron, #contactsApp .ct-sector-picker.open .ct-sector-picker-chevron, #contactsApp .ct-institution-picker.open .ct-institution-picker-chevron { transform: rotate(180deg); }

#contactsApp .ct-institution-picker-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 90;
  display: none;
  padding: 8px;
  border: 1px solid #e0e1ea;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(41,35,75,.16);
}

#contactsApp .ct-custom-select.open .ct-custom-select-menu, #contactsApp .ct-sector-picker.open .ct-sector-picker-menu, #contactsApp .ct-institution-picker.open .ct-institution-picker-menu { display: block; }

#contactsApp .ct-sector-picker-search, #contactsApp .ct-institution-picker-search {
  height: 36px;
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 6px;
  padding: 0 9px;
  border: 1px solid #e2e3eb;
  border-radius: 9px;
  background: #fafafe;
}

#contactsApp .ct-sector-picker-search svg, #contactsApp .ct-institution-picker-search svg { width: 13px; height: 13px; color: #8b91a4; stroke-width: 1.8; }

#contactsApp .ct-sector-picker-search input, #contactsApp .ct-institution-picker-search input {
  width: 100%;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #424659;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-meta-weight);
}

#contactsApp .ct-sector-picker-search input::placeholder, #contactsApp .ct-institution-picker-search input::placeholder { color: #9aa0b2; }

#contactsApp .ct-institution-picker-options {
  max-height: 250px;
  overflow: auto;
  display: grid;
  gap: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,79,214,.22) transparent;
}

#contactsApp .ct-institution-picker-option {
  width: 100%;
  min-height: 39px;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr) 24px;
  align-items: center;
  gap: 8px;
  padding: 5px 7px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #555b6e;
  cursor: pointer;
  text-align: left;
}

#contactsApp .ct-sector-picker-option:hover, #contactsApp .ct-institution-picker-option:hover, #contactsApp .ct-institution-picker-create:hover { background: #f8f6ff; }

#contactsApp .ct-custom-select-option.selected, #contactsApp .ct-sector-picker-option.selected, #contactsApp .ct-institution-picker-option.selected { background: #f1edff; color: #5f48d0; }

#contactsApp .ct-institution-picker-option-icon, #contactsApp .ct-institution-picker-option-check {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f4f2fb;
  color: #777d91;
}

#contactsApp .ct-custom-select-option.selected .ct-custom-select-option-icon, #contactsApp .ct-sector-picker-option.selected .ct-sector-picker-option-icon, #contactsApp .ct-sector-picker-option.selected .ct-sector-picker-option-check, #contactsApp .ct-institution-picker-option.selected .ct-institution-picker-option-icon, #contactsApp .ct-institution-picker-option.selected .ct-institution-picker-option-check { background: #e8e1ff; color: #664bdc; }

#contactsApp .ct-custom-select-leading svg, #contactsApp .ct-sector-picker-leading svg, #contactsApp .ct-custom-select-option-icon svg, #contactsApp .ct-sector-picker-option-icon svg, #contactsApp .ct-sector-picker-option-check svg, #contactsApp .ct-institution-picker-leading svg, #contactsApp .ct-institution-picker-option-icon svg, #contactsApp .ct-institution-picker-option-check svg, #contactsApp .ct-institution-picker-create-icon svg { width: 13px; height: 13px; stroke-width: 1.8; }

#contactsApp .ct-institution-picker-option-copy { min-width: 0; display: grid; gap: 2px; }

#contactsApp .ct-institution-picker-option-copy strong, #contactsApp .ct-institution-picker-create strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #515668;
  font-size: var(--ct-overlay-meta-size);
  font-weight: var(--ct-overlay-label-weight);
}

#contactsApp .ct-institution-picker-option-copy small, #contactsApp .ct-institution-picker-create small { color: #969cad; font-size: var(--ct-font-7-5); font-weight: var(--ct-weight-650); }

#contactsApp .ct-institution-picker-create {
  width: 100%;
  min-height: 39px;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  align-items: center;
  gap: 8px;
  padding: 5px 7px;
  border: 1px solid #ddd5ff;
  border-radius: 9px;
  background: #faf8ff;
  color: #555b6e;
  cursor: pointer;
  text-align: left;
  margin-bottom: 4px;
}

#contactsApp .ct-institution-picker-create-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eae4ff;
  color: #644bd7;
}

#contactsApp .ct-sector-picker-empty, #contactsApp .ct-institution-picker-empty {
  min-height: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #9a9fb0;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-650);
  text-align: center;
}

#contactsApp .ct-sector-picker-empty svg, #contactsApp .ct-institution-picker-empty svg { width: 17px; height: 17px; stroke-width: 1.7; }

#contactsApp .ct-sector-picker-foot, #contactsApp .ct-institution-picker-foot {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 7px 8px 1px;
  border-top: 1px solid #efeff4;
  color: #959aac;
  font-size: var(--ct-font-7-5);
  line-height: var(--ct-line-height-1-25);
  font-weight: var(--ct-weight-650);
}

#contactsApp .ct-sector-picker-foot svg, #contactsApp .ct-institution-picker-foot svg { width: 11px; height: 11px; color: #6d55d8; stroke-width: 1.8; }

#contactsApp .ct-custom-select.disabled .ct-custom-select-trigger, #contactsApp .ct-sector-picker.disabled .ct-sector-picker-trigger, #contactsApp .ct-institution-picker.disabled .ct-institution-picker-trigger { cursor: not-allowed; background: #f7f7fa; color: #9a9eae; opacity: .72; }

.contacts-module #ctDrawer .ct-drawer-title p { margin-top: 6px; }

.contacts-module #ctDrawer .ct-drawer-head { min-height: 0; padding: 13px 18px 12px; gap: 12px; align-items: flex-start; }

.contacts-module #ctDrawer .ct-drawer-title { align-items: flex-start; gap: 10px; min-width: 0; }

.contacts-module #ctDrawer .ct-drawer-name-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  min-width: 0;
  min-height: 22px;
  margin: 0;
}

.contacts-module #ctDrawer .ct-drawer-name-row h2, .contacts-module #ctDrawer .ct-drawer-title h2 {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  color: #25293a;
  font-size: var(--ct-font-18);
  line-height: var(--ct-line-height-1-08);
  font-weight: var(--ct-weight-850);
  letter-spacing: var(--ct-track-em-neg-0-02);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.contacts-module #ctDrawer .ct-drawer-inline-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e1dbfb;
  background: #f6f2ff;
  color: #715ad8;
  text-transform: uppercase;
  white-space: nowrap;
  height: 19px;
  padding: 0 7px;
  border-radius: 999px;
  font-size: var(--ct-font-8-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-850);
  letter-spacing: var(--ct-track-0-55);
  flex: 0 0 auto;
}

.contacts-module #ctDrawer .ct-drawer-close { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; }

.contacts-module #ctDrawer .ct-drawer-title-copy { min-width: 0; padding-top: 1px; display: block; }

.contacts-module #ctDrawer .ct-drawer-title p#ctDrawerSubtitle {
  display: inline-block;
  vertical-align: baseline;
  white-space: nowrap;
  color: #7d8396;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-650);
  margin: 5px 0 0;
}

.contacts-module #ctDrawer .ct-drawer-sector-summary {
  display: inline-block;
  vertical-align: baseline;
  white-space: nowrap;
  color: #747b90;
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-650);
  margin: 5px 0 0 10px;
  font-size: var(--ct-font-10-25);
}

.contacts-module #ctDrawer .ct-avatar {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 50%;
  font-size: var(--ct-font-13-5);
  display: grid;
  place-items: center;
}

.contacts-module .ct-contact-avatar {
  width: var(--ct-size-contact-avatar);
  height: var(--ct-size-contact-avatar);
  display: grid;
  place-items: center;
  flex: 0 0 var(--ct-size-contact-avatar);
  font-size: var(--ct-font-9);
  font-weight: var(--ct-weight-850);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 50%;
  background: linear-gradient(145deg,#eee9ff 0%,#f8f6ff 100%);
  color: #6548df;
  box-shadow: inset 0 0 0 1px rgba(105,75,226,.10);
}

.contacts-module .ct-avatar {
  border: 1px solid #ddd5ff;
  background: linear-gradient(145deg,#eee9ff 0%,#f8f6ff 100%);
  color: #6548df;
  font-size: var(--ct-font-15);
  font-weight: var(--ct-weight-850);
  box-shadow: inset 0 0 0 1px rgba(105,75,226,.10);
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 50%;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.ct-contact-avatar, .contacts-module #ctDrawer .ct-drawer-kicker, .contacts-module #ctDrawer .ct-drawer-inline-badge:empty, .contacts-module .ct-contact-avatar.image-failed .ct-profile-avatar-image, .contacts-module .ct-avatar.image-failed .ct-profile-avatar-image { display: none; }


/* 09 — ACCESS & VISIBILITY */
.ct-switch-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 2px;
}

.ct-switch-copy strong { display: block; color: #4a4e61; font-size: var(--ct-font-10); }

.ct-switch-copy small {
  display: block;
  margin-top: 3px;
  color: #9a9eae;
  font-size: var(--ct-font-8);
  line-height: var(--ct-line-height-1-3);
}

.ct-switch-ui {
  position: relative;
  width: 38px;
  height: 22px;
  flex: 0 0 38px;
  border-radius: 999px;
  background: #dfe1e9;
  cursor: pointer;
  transition: .15s;
}

.ct-switch-ui::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
  transition: .15s;
}

.ct-switch-field input:checked+.ct-switch-ui { background: #7054ef; }

.ct-switch-field input:checked+.ct-switch-ui::after { transform: translateX(16px); }

.ct-visibility-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

.ct-visibility-options label { position: relative; cursor: pointer; }

.ct-switch-field input, .ct-visibility-options input { position: absolute; opacity: 0; }

.ct-visibility-options label>span {
  display: block;
  padding: 10px;
  border: 1px solid #e5e6ed;
  border-radius: 11px;
  background: #fbfbfe;
}

.ct-visibility-options input:checked+span { border-color: #d5ccff; background: #f4f1ff; box-shadow: inset 0 0 0 1px #e0d9ff; }

.ct-visibility-options strong { display: block; color: #343749; font-size: var(--ct-font-11); }

.ct-visibility-options small {
  display: block;
  margin-top: 3px;
  color: #9599aa;
  font-size: var(--ct-font-8-5);
  line-height: var(--ct-line-height-1-35);
}

.contacts-module .ct-switch-field { min-height: 42px; align-self: end; padding: 5px 2px; }

.contacts-module .ct-switch-copy strong { color: #4b5063; font-size: var(--ct-font-11); font-weight: var(--ct-weight-750); }

.contacts-module .ct-switch-copy small { margin-top: 2px; color: #9297a8; font-size: var(--ct-font-9); line-height: var(--ct-line-height-1-35); }

.contacts-module .ct-switch-ui { width: 40px; height: 23px; flex-basis: 40px; }

.contacts-module .ct-switch-ui::after { width: 17px; height: 17px; }

.contacts-module .ct-switch-field input:checked+.ct-switch-ui::after { transform: translateX(17px); }

.contacts-module .ct-visibility-section .ct-form-icon { background: #ecf8f5; border-color: #d8eee8; color: #23806c; }

.contacts-module .ct-visibility-options { gap: 10px; }

.contacts-module .ct-visibility-options label>span {
  min-height: 66px;
  padding: 11px 12px;
  border: 1px solid #e2e4eb;
  border-radius: 11px;
  background: #fff;
  transition: .15s ease;
}

.contacts-module .ct-visibility-options label:hover>span { border-color: #d7d2eb; background: #fdfcff; }

.contacts-module .ct-visibility-options input:checked+span { border-color: #cfc5ff; background: #f5f2ff; box-shadow: inset 0 0 0 1px #e1dbff; }

.contacts-module .ct-visibility-options strong { color: #34384a; font-size: var(--ct-font-11-5); font-weight: var(--ct-weight-800); }

.contacts-module .ct-visibility-options small { margin-top: 4px; color: #858a9c; font-size: var(--ct-font-9-5); line-height: var(--ct-line-height-1-4); }

.contacts-module .ct-contact-access-summary { display: none; }

.contacts-module[data-client-view="1"] .ct-visibility-section.ct-contact-access-readonly .ct-contact-access-summary { display: grid; gap: 10px; }

.contacts-module .ct-contact-access-card {
  display: grid;
  grid-template-columns: 40px minmax(0,1fr) 30px;
  align-items: center;
  gap: 11px;
  min-height: 70px;
  padding: 12px 13px;
  border: 1px solid #ddd7ff;
  border-radius: 13px;
  background: linear-gradient(180deg,#fbfaff 0%,#f7f4ff 100%);
  box-shadow: 0 4px 15px rgba(93,67,199,.055);
}

.contacts-module[data-client-view="1"] .ct-visibility-section.ct-contact-access-readonly .ct-contact-access-editor, .contacts-module .ct-contact-access-card[hidden], .contacts-module .ct-contact-access-privacy[hidden] { display: none !important; }

.contacts-module .ct-contact-access-card-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #eee9ff;
  color: #6849ed;
}

.contacts-module .ct-contact-access-card-icon svg { width: 18px; height: 18px; stroke-width: 1.9; }

.ct-switch-copy, .contacts-module .ct-contact-access-card-copy { min-width: 0; }

.contacts-module .ct-contact-access-card-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 4px;
}

.contacts-module .ct-contact-access-card-title strong { color: #2e3143; font-size: var(--ct-font-12-5); line-height: var(--ct-line-height-1-2); font-weight: var(--ct-weight-800); }

.contacts-module .ct-contact-access-card-copy p {
  margin: 0;
  color: #7a7f92;
  font-size: var(--ct-font-11);
  line-height: var(--ct-line-height-1-4);
  font-weight: var(--ct-weight-600);
}

.contacts-module .ct-contact-access-badge {
  display: inline-flex;
  align-items: center;
  min-height: 19px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e9e3ff;
  color: #6547e8;
  font-size: var(--ct-font-8-5);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-850);
  letter-spacing: var(--ct-track-em-0-06);
}

.contacts-module .ct-contact-access-check {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid #e0daf8;
  border-radius: 9px;
  background: #fff;
  color: #6d52e9;
}

.contacts-module .ct-contact-access-check svg { width: 14px; height: 14px; stroke-width: 2; }

.contacts-module .ct-contact-access-privacy {
  display: grid;
  grid-template-columns: 34px minmax(0,1fr);
  align-items: start;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid #d8ebe5;
  border-radius: 12px;
  background: #f3faf8;
}

.contacts-module .ct-contact-access-privacy-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #e1f3ee;
  color: #1d816d;
}

.contacts-module .ct-contact-access-privacy-icon svg { width: 16px; height: 16px; stroke-width: 1.9; }

.contacts-module .ct-contact-access-privacy strong {
  display: block;
  margin: 1px 0 4px;
  color: #31564d;
  font-size: var(--ct-font-11-5);
  line-height: var(--ct-line-height-1-25);
  font-weight: var(--ct-weight-800);
}

.contacts-module .ct-contact-access-privacy p {
  margin: 0;
  color: #6f817c;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1-45);
  font-weight: var(--ct-weight-600);
}

.contacts-module .ct-contact-access-private { border-color: #d2e8e2; background: linear-gradient(180deg,#fbfffe 0%,#f3faf8 100%); }

.contacts-module .ct-contact-access-private .ct-contact-access-card-icon { background: #e4f5f0; color: #18816c; }

.contacts-module .ct-contact-access-badge-private { background: #dff2ec; color: #147762; }

.contacts-module .ct-contact-access-check-private { border-color: #d6e9e4; color: #18816c; }


/* 10 — BULK IMPORT */
.ct-bulk-btn {
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 15px;
  border: 1px solid #d9d3fb;
  border-radius: 12px;
  background: #fff;
  color: #6048d0;
  font-size: var(--ct-font-11-5);
  font-weight: var(--ct-weight-800);
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(52,39,118,.04);
  transition: .15s ease;
}

.ct-bulk-btn:hover { transform: translateY(-1px); border-color: #c9bfff; background: #faf8ff; }

.ct-bulk-btn svg { width: 16px; height: 16px; }

.ct-bulk-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1700;
  background: rgba(27,24,45,.28);
  backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  transition: .18s ease;
}

.ct-bulk-backdrop.show { opacity: 1; pointer-events: auto; }

.ct-bulk-modal.show { opacity: 1; pointer-events: auto; transform: translate(-50%,-50%) scale(1); }

.ct-bulk-kicker {
  display: block;
  margin-bottom: 5px;
  color: #765cf0;
  font-size: var(--ct-font-8);
  font-weight: var(--ct-weight-850);
  letter-spacing: var(--ct-track-1-2);
}

.ct-bulk-head h2 {
  margin: 0;
  color: #292c3f;
  font-size: var(--ct-font-20);
  line-height: var(--ct-line-height-1-15);
  font-weight: var(--ct-weight-820);
  letter-spacing: var(--ct-track-neg-0-35);
}

.ct-bulk-flow { display: grid; grid-template-columns: minmax(0,1fr) 44px minmax(0,1fr) 44px minmax(0,1fr); align-items: center; gap: 10px; }

.ct-bulk-flow-link { height: 1px; border-top: 2px dashed #d7d1f8; position: relative; }

.ct-bulk-flow-link::after {
  content: "";
  position: absolute;
  right: -1px;
  top: -4px;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 7px solid #c7bdf9;
}

.ct-bulk-flow-card {
  position: relative;
  min-height: 190px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 18px 16px 16px;
  border: 1px solid #e7e4f4;
  border-radius: 18px;
  background: linear-gradient(180deg,#ffffff 0%,#fbf9ff 100%);
  box-shadow: 0 10px 24px rgba(78,57,168,.05);
}

.ct-bulk-flow-card.is-active { border-color: #d6ccff; box-shadow: 0 12px 28px rgba(92,67,199,.1); }

.ct-bulk-flow-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  min-width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #f0ebff;
  color: #664de5;
  font-size: var(--ct-font-11);
  font-weight: var(--ct-weight-850);
}

.ct-bulk-flow-card strong {
  display: block;
  color: #303449;
  font-size: var(--ct-font-14);
  font-weight: var(--ct-weight-830);
  line-height: var(--ct-line-height-1-25);
}

.ct-bulk-flow-card p {
  margin: 7px 0 0;
  color: #7e8397;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1-55);
  font-weight: var(--ct-weight-560);
}

.ct-bulk-preview {
  margin-top: 16px;
  border: 1px solid #e5e6ed;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.ct-bulk-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid #ececf2;
  background: #fafafe;
}

.ct-bulk-preview-head>div:first-child span {
  display: block;
  color: #9095a8;
  font-size: var(--ct-font-7-5);
  font-weight: var(--ct-weight-820);
  text-transform: uppercase;
  letter-spacing: var(--ct-track-0-5);
}

.ct-bulk-preview-head>div:first-child strong {
  display: block;
  margin-top: 2px;
  color: #424658;
  font-size: var(--ct-font-10-5);
  font-weight: var(--ct-weight-820);
}

.ct-bulk-preview-counts { display: flex; gap: 6px; }

.ct-bulk-preview-counts span {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  font-size: var(--ct-font-8);
  font-weight: var(--ct-weight-820);
}

.ct-bulk-preview-counts .ok { background: #eaf8f2; color: #207b61; }

.ct-bulk-preview-counts .bad { background: #fff1f2; color: #b14a5b; }

.ct-bulk-preview-list { max-height: 260px; overflow: auto; }

.ct-bulk-preview-row {
  display: grid;
  grid-template-columns: 24px minmax(0,1fr);
  gap: 8px;
  padding: 9px 11px;
  border-bottom: 1px solid #f0f0f4;
}

.ct-bulk-preview-row:last-child { border-bottom: 0; }

.ct-bulk-row-status {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #eef8f4;
  color: #26806a;
}

.ct-bulk-preview-row.invalid .ct-bulk-row-status { background: #fff2f3; color: #b64d5f; }

.ct-bulk-row-status svg { width: 12px; height: 12px; }

.ct-bulk-row-main strong { display: block; color: #464a5e; font-size: var(--ct-font-9-5); font-weight: var(--ct-weight-790); }

.ct-bulk-row-main>span { display: block; margin-top: 2px; color: #858a9d; font-size: var(--ct-font-8-5); }

.ct-bulk-row-main small {
  display: block;
  margin-top: 4px;
  color: #ad4b5d;
  font-size: var(--ct-font-8);
  line-height: var(--ct-line-height-1-35);
  font-weight: var(--ct-weight-650);
}

.ct-bulk-more {
  padding: 8px 11px;
  background: #fafafe;
  color: #8e93a5;
  font-size: var(--ct-font-8);
  text-align: center;
}

.ct-bulk-footer-right { display: flex; align-items: center; gap: 8px; }

.ct-bulk-footer .ct-secondary-btn, .ct-bulk-footer .ct-primary-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }

.ct-bulk-sector-list em { color: #9a9eae; font-size: var(--ct-font-8-5); font-style: normal; }

.ct-bulk-sector-list span {
  display: inline-flex;
  align-items: center;
  border: 1px solid #e1e2e9;
  background: #fafafe;
  color: #686d80;
  font-weight: var(--ct-weight-700);
  min-height: 28px;
  padding: 0 9px;
  border-radius: 9px;
  font-size: var(--ct-font-9);
}

.ct-bulk-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e9eaf0;
  background: linear-gradient(180deg,#fff,#fdfcff);
  padding: 16px 20px 14px;
}

.ct-bulk-head p {
  margin: 5px 0 0;
  color: #84899b;
  line-height: var(--ct-line-height-1-45);
  font-weight: var(--ct-weight-550);
  margin-top: 4px;
  font-size: var(--ct-font-10);
}

.ct-bulk-body { overflow: auto; background: #fff; padding: 15px 20px 16px; }

.ct-bulk-flow.ct-bulk-flow-compact { grid-template-columns: minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr); gap: 8px; }

.ct-bulk-flow-compact .ct-bulk-flow-action:hover { transform: translateY(-1px); border-color: #cfc4ff; background: #faf8ff; box-shadow: 0 10px 24px rgba(93,67,201,.11); }

.ct-bulk-flow-action input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ct-bulk-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid #e9eaf0;
  background: #fdfdff;
  min-height: 58px;
  padding: 9px 20px;
}

.ct-bulk-flow-compact .ct-bulk-flow-card {
  justify-content: center;
  text-decoration: none;
  cursor: default;
  transition: border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease;
  min-height: 138px;
  padding: 14px 14px 12px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(98,74,209,.06);
}

.ct-bulk-flow-compact .ct-bulk-flow-card strong {
  max-width: 100%;
  line-height: var(--ct-line-height-1-25);
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--ct-font-13);
  white-space: normal;
  text-align: center;
}

.ct-bulk-flow-caption {
  display: block;
  margin-top: 4px;
  color: #858a9d;
  font-weight: var(--ct-weight-620);
  line-height: var(--ct-line-height-1-3);
  font-size: var(--ct-font-9-8);
}

.ct-bulk-flow-compact .ct-bulk-flow-action, .ct-bulk-flow-action { cursor: pointer; }

.ct-bulk-sector-list {
  flex-wrap: wrap;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 178px;
  padding: 0 12px 12px;
}

.ct-bulk-flow-compact .ct-bulk-flow-hero {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  display: grid;
  place-items: center;
  margin: 5px 0 10px;
  border: 1px solid #ddd5ff;
  border-radius: 18px;
  background: linear-gradient(180deg,#f7f4ff 0%,#eee9ff 100%);
  color: #684cf0;
  box-shadow: 0 8px 20px rgba(104,76,240,.10),inset 0 1px 0 rgba(255,255,255,.9);
}

.ct-bulk-flow-compact .ct-bulk-flow-hero svg {
  display: block;
  width: 34px;
  height: 34px;
  stroke-width: 1.9;
  color: #684cf0;
}

.ct-bulk-flow-compact .ct-bulk-flow-card:nth-of-type(2) .ct-bulk-flow-hero { background: linear-gradient(180deg,#f8f6ff 0%,#f1edff 100%); }

.ct-bulk-flow-compact .ct-bulk-flow-action:hover .ct-bulk-flow-hero { border-color: #cfc3ff; background: linear-gradient(180deg,#f4f0ff 0%,#e9e2ff 100%); box-shadow: 0 10px 24px rgba(104,76,240,.15); }

.ct-bulk-flow-compact .ct-bulk-flow-badge {
  top: 10px;
  left: 10px;
  min-width: 22px;
  height: 22px;
  font-size: var(--ct-font-10);
  box-shadow: 0 4px 12px rgba(107,99,220,.24);
  background: #6b52e8;
  color: #fff;
}

.ct-bulk-flow-compact .ct-bulk-flow-link { border-top-width: 1.5px; border-color: #d8cffb; }

.ct-bulk-flow-compact .ct-bulk-flow-link::after { border-left-color: #c9bcfa; }

.ct-bulk-modal {
  position: fixed;
  z-index: 1710;
  left: 50%;
  top: 50%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e3e3ed;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(31,26,61,.22);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%,-48%) scale(.985);
  transition: .18s ease;
  width: min(820px,calc(100vw - 32px));
  max-height: min(720px,calc(100vh - 28px));
}

.ct-bulk-modal .ct-bulk-head { padding: 16px 20px 14px; }

.ct-bulk-modal .ct-bulk-kicker { margin-bottom: 4px; font-size: var(--ct-overlay-meta-size); line-height: var(--ct-line-height-1); font-weight: var(--ct-overlay-eyebrow-weight); letter-spacing: var(--ct-track-1-35); }

.ct-bulk-modal .ct-bulk-head h2 { font-size: var(--ct-overlay-large-title-size); line-height: var(--ct-line-height-1-12); font-weight: var(--ct-overlay-title-weight); letter-spacing: var(--ct-track-neg-0-45); }

.ct-bulk-modal .ct-bulk-head p { margin-top: 5px; font-size: var(--ct-overlay-subtitle-size); line-height: var(--ct-line-height-1-4); font-weight: var(--ct-overlay-meta-weight); }

.ct-bulk-modal .ct-bulk-head .ct-drawer-close { width: 38px; height: 38px; border-radius: 11px; }

.ct-bulk-modal .ct-bulk-head .ct-drawer-close svg { width: 18px; height: 18px; }

.ct-bulk-modal .ct-bulk-body { padding: 14px 20px 15px !important; }

.ct-bulk-flow-wrap, .ct-bulk-modal .ct-bulk-flow-wrap { padding: 0; }

.ct-bulk-modal .ct-bulk-flow.ct-bulk-flow-compact { grid-template-columns: minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr); gap: 7px; align-items: stretch; }

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-card {
  min-height: 136px;
  padding: 13px 12px 11px;
  border-radius: 14px;
  justify-content: flex-start;
  background: #fff;
  box-shadow: 0 4px 14px rgba(70,55,126,.045);
}

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-card.is-active { border-color: #d9d0ff; box-shadow: 0 5px 16px rgba(91,67,196,.075); }

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-action:hover { transform: translateY(-1px); box-shadow: 0 7px 18px rgba(91,67,196,.10); }

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-badge {
  top: 10px;
  left: 10px;
  min-width: 24px;
  width: 24px;
  height: 24px;
  padding: 0;
  font-size: var(--ct-font-10);
  box-shadow: none;
}

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-hero {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: grid;
  place-items: center;
  margin: 2px auto 8px;
  border: 1px solid #ded7ff;
  border-radius: 14px;
  background: linear-gradient(180deg,#faf8ff 0%,#f3efff 100%);
  box-shadow: none;
}

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-hero svg { width: 25px; height: 25px; color: #684cf0; stroke-width: 1.9; }

.ct-bulk-modal .ct-bulk-step-copy { min-width: 0; text-align: center; }

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-card strong {
  display: block;
  max-width: 100%;
  color: #33374a;
  font-size: var(--ct-font-15);
  line-height: var(--ct-line-height-1-18);
  font-weight: var(--ct-weight-820);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.ct-bulk-modal .ct-bulk-flow-caption {
  margin-top: 4px;
  color: #858a9c;
  font-size: var(--ct-font-11-5);
  line-height: var(--ct-line-height-1-25);
  font-weight: var(--ct-weight-580);
}

.ct-bulk-mini-action {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 8px auto 0;
  padding: 0 8px;
  border-radius: 8px;
  font-size: var(--ct-font-10);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-760);
  border: 1px solid #ded7ff;
  background: #f8f6ff;
  color: #6549e4;
}

.ct-bulk-mini-hint {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin: 8px auto 0;
  padding: 0 8px;
  border-radius: 8px;
  font-size: var(--ct-font-10);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-760);
  color: #777d90;
  background: #f7f7fa;
}

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-link { align-self: center; width: 100%; height: 1px; border-top: 1px solid #ddd8f4; }

.ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-link::after {
  right: 0;
  top: -3px;
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-left: 5px solid #c8c0ee;
}

.ct-bulk-rules {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 11px;
  border: 1px solid #e5e5ed;
  border-radius: 10px;
  background: #fbfbfd;
  color: #73798c;
  font-size: var(--ct-font-11);
  line-height: var(--ct-line-height-1-3);
}

.ct-bulk-rules>svg { width: 14px; height: 14px; flex: 0 0 14px; color: #6b51e9; }

.ct-bulk-rules b { color: #4f5468; font-weight: var(--ct-weight-820); }

.ct-bulk-rules code {
  padding: 1px 5px;
  border-radius: 5px;
  background: #eeeaff;
  color: #6148d9;
  font-size: var(--ct-font-10);
  font-weight: var(--ct-weight-820);
}

.ct-bulk-rule-separator { width: 1px; height: 17px; background: #e2e2e9; margin: 0 2px; }

.ct-bulk-sector-panel {
  margin-top: 10px;
  padding: 10px 11px 11px;
  border: 1px solid #ded8ff;
  border-radius: 11px;
  background: linear-gradient(180deg,#faf9ff 0%,#f8f6ff 100%);
}

.ct-bulk-sector-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }

.ct-bulk-sector-title { display: flex; align-items: center; gap: 8px; min-width: 0; }

.ct-bulk-sector-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eeeaff;
  color: #6549e5;
}

.ct-bulk-footer svg, .ct-bulk-sector-icon svg { width: 14px; height: 14px; }

.ct-bulk-sector-title strong {
  display: block;
  color: #5244bd;
  font-size: var(--ct-font-12);
  line-height: var(--ct-line-height-1-15);
  font-weight: var(--ct-weight-820);
}

.ct-bulk-sector-title #ctBulkAllowedSectors {
  display: block;
  margin-top: 2px;
  color: #817aa6;
  font-size: var(--ct-font-10-5);
  line-height: var(--ct-line-height-1-25);
  font-weight: var(--ct-weight-580);
}

.ct-bulk-sector-help {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #8a83ae;
  font-size: var(--ct-font-10);
  white-space: nowrap;
}

.ct-bulk-mini-action svg, .ct-bulk-mini-hint svg, .ct-bulk-sector-help svg { width: 11px; height: 11px; }

.ct-bulk-modal .ct-bulk-sector-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 6px;
  max-height: 88px;
  overflow: auto;
  padding: 9px 0 0;
}

.ct-bulk-modal .ct-bulk-sector-list span {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  padding: 0 9px;
  border: 1px solid #ddd9ed;
  border-radius: 999px;
  background: #fff;
  color: #62677a;
  font-size: var(--ct-font-10);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-720);
}

.ct-bulk-modal .ct-bulk-preview { margin-top: 10px; border-radius: 11px; }

.ct-bulk-modal .ct-bulk-preview-head { padding: 9px 11px; }

.ct-bulk-modal .ct-bulk-preview-list { max-height: 190px; }

.ct-bulk-modal .ct-bulk-footer {
  position: sticky;
  bottom: 0;
  z-index: 3;
  min-height: 58px;
  padding: 9px 20px;
  background: rgba(253,253,255,.97);
  backdrop-filter: blur(8px);
}

.ct-bulk-modal .ct-bulk-footer .ct-secondary-btn, .ct-bulk-modal .ct-bulk-footer .ct-primary-btn { min-height: 38px; font-size: var(--ct-overlay-button-size); font-weight: var(--ct-overlay-button-weight); }

.ct-bulk-modal #ctBulkPreviewBtn:disabled { opacity: .48; cursor: not-allowed; box-shadow: none; }

.ct-bulk-modal #ctBulkFileTitle {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}


/* 11 — EMAIL COMPOSER */
.ct-email-compose-backdrop.show { opacity: 1; visibility: visible; pointer-events: auto; }

.ct-email-compose-backdrop.show .ct-email-compose-modal { transform: translateY(0) scale(1); }

.ct-email-compose-body iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
  background: #f6f7fb;
}

.ct-email-compose-loading {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #777d91;
  background: #f6f7fb;
  font-size: var(--ct-overlay-body-size);
  font-weight: var(--ct-overlay-label-weight);
  transition: opacity .15s ease;
}

.ct-email-compose-loading.hidden { opacity: 0; pointer-events: none; }

body.ct-email-compose-open { overflow: hidden !important; }

.ct-email-compose-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1700;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(31,27,52,.34);
  backdrop-filter: blur(5px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease,visibility .18s ease;
  padding: 10px;
}

.ct-email-compose-body {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow: hidden;
  background: #f6f7fb;
  padding: 0 !important;
}

.ct-email-compose-head p {
  font-weight: var(--ct-weight-600);
  margin: 1px 0 0;
  font-size: var(--ct-font-8-7);
  line-height: var(--ct-line-height-1-3);
  color: #8b92a7;
  display: none;
}

.ct-email-compose-modal {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e1e3ec;
  background: #fff;
  box-shadow: 0 28px 80px rgba(31,26,64,.22);
  transform: translateY(10px) scale(.99);
  transition: transform .18s ease;
  max-width: none;
  max-height: none;
  width: calc(100vw - 16px);
  height: calc(100vh - 16px);
  border-radius: 16px;
}

.ct-email-compose-head .ct-drawer-close { width: 38px; height: 38px; margin-top: 0; margin-right: 0; }

.ct-email-compose-head h2 span { color: #24283a; font-weight: var(--ct-overlay-title-weight); }

.ct-email-compose-head h2 strong { color: #6c4cf5; font-weight: var(--ct-overlay-title-weight); }

.ct-email-compose-head {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #eceef4;
  background: #fff;
  align-items: flex-start;
  min-height: 43px;
  padding: 9px 18px 4px;
  gap: 10px;
}

.ct-email-compose-kicker {
  color: #8a79d9;
  font-weight: var(--ct-weight-900);
  display: block;
  margin: 0 0 2px;
  padding-top: 2px;
  margin-bottom: 0;
  font-size: var(--ct-font-9-5);
  line-height: var(--ct-line-height-1-06);
  letter-spacing: var(--ct-track-em-0-19);
}

.ct-email-compose-head h2 {
  color: #292c3d;
  font-weight: var(--ct-weight-800);
  display: flex;
  align-items: baseline;
  font-size: var(--ct-font-20);
  line-height: var(--ct-line-height-1);
  gap: 6px;
  margin: 0;
}


/* 12 — AUXILIARY COMPONENTS */
.ct-icon-button {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #e0e2eb;
  border-radius: 10px;
  background: #fff;
  color: #73788d;
  cursor: pointer;
}

.ct-icon-button:hover { color: var(--ct-purple); border-color: #d4ccff; background: #faf9ff; }

.ct-icon-button svg { width: 15px; height: 15px; }

.ct-icon-button.is-loading svg { animation: ctSpin .8s linear infinite; }

.ct-contact-row { cursor: pointer; }

.ct-institution-block { position: sticky; top: 8px; }

.ct-institution-block>strong {
  display: block;
  overflow: hidden;
  color: #2d3043;
  font-size: var(--ct-font-12);
  line-height: var(--ct-line-height-1-3);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ct-institution-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }

.ct-inst-chip {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: #f1f2f6;
  color: #72778b;
  font-size: var(--ct-font-7-5);
  font-weight: var(--ct-weight-800);
  white-space: nowrap;
}

.ct-inst-chip.buy { background: var(--ct-buy-soft); color: var(--ct-buy); }

.ct-inst-chip.sell { background: var(--ct-sell-soft); color: var(--ct-sell); }

.ct-inst-chip.tier { background: #f1edff; color: #6248d6; }

.ct-inst-chip.tier.unclassified { background: #f4f4f7; color: #8a8e9f; }

.ct-institution-count {
  display: block;
  margin-top: 7px;
  color: #8f94a7;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-700);
}

.ct-sector-more { flex: 0 0 auto; color: #7564d9; font-size: var(--ct-font-8-5); font-weight: var(--ct-weight-800); }


/* Sector coverage tooltip — body portal so it is never clipped by the table scroller. */
.ct-sector-tooltip {
  position: fixed;
  z-index: 2200;
  width: max-content;
  min-width: 220px;
  max-width: min(360px, calc(100vw - 20px));
  padding: 10px;
  border: 1px solid var(--ct-tooltip-border);
  border-radius: 12px;
  background: var(--ct-tooltip-bg);
  color: var(--ct-text);
  box-shadow: var(--ct-tooltip-shadow);
  font-family: var(--ct-font-family);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s linear;
}

.ct-sector-tooltip.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.ct-sector-tooltip.is-above { transform-origin: bottom left; }

.ct-sector-tooltip-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  padding: 0 2px;
  color: var(--ct-muted);
  font-size: var(--ct-font-xs);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-extrabold);
  letter-spacing: var(--ct-track-0-5);
  text-transform: uppercase;
}

.ct-sector-tooltip-head strong {
  min-width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--ct-purple-soft);
  color: var(--ct-purple);
  font-size: var(--ct-font-xs);
  font-weight: var(--ct-weight-extrabold);
  letter-spacing: var(--ct-track-0);
}

.ct-sector-tooltip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.ct-sector-tooltip-list span {
  max-width: 100%;
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border: 1px solid #ece9f8;
  border-radius: 8px;
  background: #f8f7fc;
  color: #555a70;
  font-size: var(--ct-font-sm);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-weight-semibold);
  overflow-wrap: anywhere;
}


/* LinkedIn profile card — opened from the table LinkedIn control. */
body.ct-linkedin-profile-open { overflow: hidden; }

.ct-linkedin-profile-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2280;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(31, 28, 52, .32);
  backdrop-filter: blur(5px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, visibility .18s linear;
}

.ct-linkedin-profile-backdrop.show { opacity: 1; visibility: visible; }

.ct-linkedin-profile-modal {
  position: relative;
  width: min(760px, calc(100vw - 36px));
  max-height: min(760px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid #e0e2eb;
  border-radius: 20px;
  background: #fff;
  color: var(--ct-text);
  box-shadow: 0 28px 80px rgba(36, 30, 73, .22), 0 7px 24px rgba(36, 30, 73, .08);
  font-family: var(--ct-font-family);
  transform: translateY(8px) scale(.985);
  transition: transform .2s cubic-bezier(.2,.8,.2,1);
}

.ct-linkedin-profile-backdrop.show .ct-linkedin-profile-modal { transform: translateY(0) scale(1); }

.ct-linkedin-profile-modal::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 3px;
  background: linear-gradient(90deg, var(--ct-linkedin), var(--ct-purple));
}

.ct-linkedin-profile-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #e2e4eb;
  border-radius: 11px;
  background: rgba(255,255,255,.94);
  color: #707588;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(39,33,78,.05);
}

.ct-linkedin-profile-close:hover { border-color: #d6d0f7; background: #f8f6ff; color: var(--ct-purple); }
.ct-linkedin-profile-close svg { width: 16px; height: 16px; }

.ct-linkedin-profile-settings {
  position: absolute;
  top: 14px;
  right: 58px;
  z-index: 5;
  width: var(--ct-size-linkedin-profile-control);
  height: var(--ct-size-linkedin-profile-control);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #e2e4eb;
  border-radius: 11px;
  background: rgba(255,255,255,.94);
  color: #707588;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(39,33,78,.05);
}

.ct-linkedin-profile-settings.hidden { display: none; }
.ct-linkedin-profile-settings:hover,
.ct-linkedin-profile-settings[aria-expanded="true"] { border-color: #d6d0f7; background: #f3efff; color: var(--ct-purple); }
.ct-linkedin-profile-settings svg { width: 16px; height: 16px; }

.ct-linkedin-profile-content {
  max-height: min(760px, calc(100vh - 36px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(105,82,198,.18) transparent;
}

.ct-linkedin-profile-content::-webkit-scrollbar { width: 5px; }
.ct-linkedin-profile-content::-webkit-scrollbar-thumb { background: rgba(105,82,198,.18); border-radius: 999px; }

.ct-linkedin-profile-hero {
  min-height: 184px;
  display: grid;
  grid-template-columns: 92px minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 28px 62px 24px 28px;
  border-bottom: 1px solid #eceef3;
  background: linear-gradient(135deg, #fbfdff 0%, #faf8ff 100%);
}

.ct-linkedin-profile-avatar {
  position: relative;
  width: var(--ct-size-linkedin-profile-avatar);
  height: var(--ct-size-linkedin-profile-avatar);
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 3px solid #fff;
  border-radius: 50%;
  background: linear-gradient(145deg, #e9e5ff, #f9f7ff);
  color: #6248d8;
  font-size: var(--ct-font-2xl);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-extrabold);
  box-shadow: 0 0 0 1px #dcd5fb, 0 10px 24px rgba(54,44,105,.12);
}

.ct-linkedin-profile-avatar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: none;
  object-fit: cover;
  object-position: center;
}

.ct-linkedin-profile-avatar.has-image img { display: block; }

.ct-linkedin-profile-identity { min-width: 0; }

.ct-linkedin-profile-kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--ct-linkedin);
  font-size: var(--ct-overlay-meta-size);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-overlay-eyebrow-weight);
  letter-spacing: var(--ct-track-0-75);
  text-transform: uppercase;
}

.ct-linkedin-profile-identity h2 {
  margin: 0;
  color: #25283a;
  font-size: var(--ct-overlay-title-size);
  line-height: var(--ct-line-height-1-15);
  font-weight: var(--ct-overlay-title-weight);
  letter-spacing: var(--ct-track-neg-0-35);
}

.ct-linkedin-profile-role {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  color: #464b60;
  font-size: var(--ct-overlay-body-size);
  line-height: var(--ct-line-height-1-35);
}

.ct-linkedin-profile-role svg { width: 14px; height: 14px; flex: 0 0 14px; color: #7865d8; }
.ct-linkedin-profile-role strong { font-weight: var(--ct-weight-bold); }

.ct-linkedin-profile-headline {
  max-width: 500px;
  margin: 6px 0 0;
  color: #71768a;
  font-size: var(--ct-overlay-subtitle-size);
  line-height: var(--ct-line-height-1-4);
  font-weight: var(--ct-overlay-helper-weight);
}

.ct-linkedin-profile-location {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  color: #8b90a2;
  font-size: var(--ct-overlay-meta-size);
  line-height: var(--ct-line-height-1-3);
  font-weight: var(--ct-overlay-meta-weight);
}

.ct-linkedin-profile-location svg { width: 13px; height: 13px; }

.ct-linkedin-profile-open-link {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 11px;
  border: 1px solid #cfe1f4;
  border-radius: 10px;
  background: #fff;
  color: var(--ct-linkedin);
  font-size: var(--ct-overlay-button-size);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-overlay-button-weight);
  text-decoration: none;
  white-space: nowrap;
}

.ct-linkedin-profile-open-link:hover { border-color: #a8cbed; background: var(--ct-linkedin-soft); }
.ct-linkedin-profile-open-link .ct-linkedin-logo { width: var(--ct-size-linkedin-profile-link-icon); height: var(--ct-size-linkedin-profile-link-icon); }
.ct-linkedin-profile-open-link>svg:last-child { width: 13px; height: 13px; }

.ct-linkedin-profile-settings-panel {
  padding: 15px 26px;
  border-bottom: 1px solid #eceef3;
  background: #fbfaff;
}

.ct-linkedin-profile-settings-panel.hidden { display: none; }

.ct-linkedin-profile-image-form {
  display: grid;
  grid-template-columns: minmax(190px,.75fr) minmax(260px,1.25fr) auto;
  align-items: end;
  gap: 14px;
}

.ct-linkedin-profile-settings-copy {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.ct-linkedin-profile-settings-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  border: 1px solid #ddd6fb;
  border-radius: 10px;
  background: #f2eeff;
  color: var(--ct-purple);
}

.ct-linkedin-profile-settings-icon svg { width: 16px; height: 16px; }
.ct-linkedin-profile-settings-copy>div { min-width: 0; }
.ct-linkedin-profile-settings-copy strong { display: block; color: #343749; font-size: var(--ct-overlay-section-title-size); line-height: var(--ct-line-height-1-2); font-weight: var(--ct-overlay-section-title-weight); }
.ct-linkedin-profile-settings-copy small { display: block; margin-top: 3px; color: #8e93a6; font-size: var(--ct-overlay-helper-size); line-height: var(--ct-line-height-1-35); font-weight: var(--ct-overlay-helper-weight); }

.ct-linkedin-profile-image-field { display: block; min-width: 0; }
.ct-linkedin-profile-image-field>span { display: block; margin: 0 0 5px 2px; color: #777c91; font-size: var(--ct-font-xs); line-height: var(--ct-line-height-1); font-weight: var(--ct-weight-bold); }
.ct-linkedin-profile-image-field input {
  width: 100%;
  height: var(--ct-size-linkedin-profile-settings-field);
  padding: 0 11px;
  border: 1px solid #dfe2eb;
  border-radius: 10px;
  background: #fff;
  color: #3d4154;
  outline: none;
  font: var(--ct-weight-semibold) var(--ct-font-sm)/var(--ct-line-height-1-3) var(--ct-font-family);
}
.ct-linkedin-profile-image-field input:focus { border-color: #cfc5ff; box-shadow: 0 0 0 3px rgba(108,76,245,.07); }
.ct-linkedin-profile-image-field input::placeholder { color: #a2a6b5; }

.ct-linkedin-profile-image-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.ct-linkedin-profile-save-image,
.ct-linkedin-profile-remove-image {
  height: var(--ct-size-linkedin-profile-settings-field);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 11px;
  border-radius: 10px;
  font-size: var(--ct-font-sm);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-bold);
  white-space: nowrap;
  cursor: pointer;
}
.ct-linkedin-profile-save-image { border: 0; background: linear-gradient(135deg,#6547ed,#7e65f7); color: #fff; box-shadow: 0 5px 12px rgba(108,76,245,.14); }
.ct-linkedin-profile-save-image:hover { transform: translateY(-1px); }
.ct-linkedin-profile-remove-image { border: 1px solid #ead8dc; background: #fff; color: #b35a68; }
.ct-linkedin-profile-remove-image:hover { border-color: #e0c4ca; background: #fff8f9; }
.ct-linkedin-profile-save-image:disabled,
.ct-linkedin-profile-remove-image:disabled { opacity: .55; cursor: wait; transform: none; }
.ct-linkedin-profile-save-image svg,
.ct-linkedin-profile-remove-image svg { width: 14px; height: 14px; }
.ct-linkedin-profile-save-image .ct-spinner { width: 13px; height: 13px; margin-right: 0; border-color: rgba(255,255,255,.35); border-top-color: #fff; }

.ct-linkedin-profile-section { padding: 21px 26px 26px; }

.ct-linkedin-profile-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.ct-linkedin-profile-section-head span {
  display: block;
  margin-bottom: 3px;
  color: #9296a8;
  font-size: var(--ct-overlay-meta-size);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-overlay-label-weight);
  letter-spacing: var(--ct-track-0-5);
  text-transform: uppercase;
}

.ct-linkedin-profile-section-head h3 {
  margin: 0;
  color: #303345;
  font-size: var(--ct-overlay-section-title-size);
  line-height: var(--ct-line-height-1-2);
  font-weight: var(--ct-overlay-section-title-weight);
}

.ct-linkedin-profile-section-head>strong {
  min-width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--ct-purple-soft);
  color: var(--ct-purple);
  font-size: var(--ct-font-sm);
  font-weight: var(--ct-weight-extrabold);
}

.ct-linkedin-experience-list { display: flex; flex-direction: column; gap: 0; }

.ct-linkedin-experience-item {
  position: relative;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 12px;
  padding: 10px 0 14px;
}

.ct-linkedin-experience-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 52px;
  bottom: -2px;
  width: 1px;
  background: #e8e4f7;
}

.ct-linkedin-experience-marker {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #e4e0f6;
  border-radius: 12px;
  background: #f8f6ff;
  color: #6550cf;
  font-size: var(--ct-font-md);
  font-weight: var(--ct-weight-extrabold);
}

.ct-linkedin-experience-main { min-width: 0; padding-top: 1px; }

.ct-linkedin-experience-topline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.ct-linkedin-experience-topline strong {
  color: #333649;
  font-size: var(--ct-overlay-body-size);
  line-height: var(--ct-line-height-1-3);
  font-weight: var(--ct-overlay-section-title-weight);
}

.ct-linkedin-current-badge {
  min-height: 21px;
  display: inline-flex;
  align-items: center;
  padding: 0 7px;
  border-radius: 999px;
  background: #ecf8f5;
  color: #18856f;
  font-size: var(--ct-font-xs);
  line-height: var(--ct-line-height-1);
  font-weight: var(--ct-weight-bold);
}

.ct-linkedin-experience-company {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  color: #53586d;
  font-size: var(--ct-overlay-subtitle-size);
  line-height: var(--ct-line-height-1-3);
  font-weight: var(--ct-overlay-label-weight);
}

.ct-linkedin-experience-company svg { width: 13px; height: 13px; color: #8171cf; }

.ct-linkedin-experience-meta, .ct-linkedin-experience-submeta {
  margin-top: 4px;
  color: #8a8fa1;
  font-size: var(--ct-overlay-meta-size);
  line-height: var(--ct-line-height-1-35);
  font-weight: var(--ct-overlay-helper-weight);
}

.ct-linkedin-profile-empty, .ct-linkedin-profile-error {
  min-height: 170px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  border: 1px dashed #ddd9ef;
  border-radius: 14px;
  background: #fbfaff;
  text-align: center;
}

.ct-linkedin-profile-empty-icon, .ct-linkedin-profile-error>span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 10px;
  border-radius: 12px;
  background: #f0ecff;
  color: var(--ct-purple);
}

.ct-linkedin-profile-empty-icon svg, .ct-linkedin-profile-error>span svg { width: 18px; height: 18px; }
.ct-linkedin-profile-empty strong, .ct-linkedin-profile-error strong { color: #3b3e51; font-size: var(--ct-font-body); font-weight: var(--ct-weight-extrabold); }
.ct-linkedin-profile-empty p, .ct-linkedin-profile-error p { max-width: 430px; margin: 6px 0 0; color: #898ea1; font-size: var(--ct-font-sm); line-height: var(--ct-line-height-1-4); }

.ct-linkedin-profile-loading {
  min-height: 360px;
  display: grid;
  grid-template-columns: 82px minmax(0,1fr);
  align-content: center;
  align-items: center;
  gap: 16px;
  padding: 32px;
}

.ct-linkedin-profile-loading-avatar {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  background: linear-gradient(90deg,#f3f2f8,#eae8f4,#f3f2f8);
  background-size: 200% 100%;
  animation: ctShimmer 1.2s infinite;
}

.ct-linkedin-profile-loading-copy { display: flex; flex-direction: column; gap: 8px; }
.ct-linkedin-profile-loading-copy span { height: 12px; border-radius: 999px; background: linear-gradient(90deg,#f3f2f8,#eae8f4,#f3f2f8); background-size: 200% 100%; animation: ctShimmer 1.2s infinite; }
.ct-linkedin-profile-loading-copy span:nth-child(1) { width: 44%; height: 18px; }
.ct-linkedin-profile-loading-copy span:nth-child(2) { width: 68%; }
.ct-linkedin-profile-loading-copy span:nth-child(3) { width: 36%; }
.ct-linkedin-profile-loading p { grid-column: 1/-1; margin: 5px 0 0; color: #8a8fa1; font-size: var(--ct-font-sm); text-align: center; }

.ct-ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

.ct-empty-value { color: #a5a9b8; }

.ct-loading-row td, .ct-empty-row td { height: 180px; text-align: center; color: #9398aa; font-size: var(--ct-font-10-5); }

.ct-sector-reset {
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 9px;
  border: 1px solid #e1e3eb;
  border-radius: 9px;
  background: #fff;
  color: #777c90;
  font-size: var(--ct-font-8-5);
  font-weight: var(--ct-weight-800);
  cursor: pointer;
  white-space: nowrap;
}

.ct-sector-reset:hover { color: #6048d0; border-color: #d5cdff; background: #faf9ff; }

.ct-sector-reset svg { width: 12px; height: 12px; }

#contactsApp .ct-native-select-hidden, #contactsApp .ct-sector-source-hidden, #contactsApp .ct-institution-source-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}

#irccContactsDrawerParking { display: none; }

#contactsApp[data-client-view="1"] .ct-pii-col, #contactsApp[data-client-view="1"] #ctQuickActions { display: none !important; }


/* 13 — MOTION */
@keyframes ctShimmer{to {background-position:-200% 0}}
@keyframes ctSpin{to {transform:rotate(360deg)}}

/* 14 — RESPONSIVE PROFILES */

/* Windows laptop / scaled desktop profile.
   Covers common 1280×720, 1366×768 and 1536×864 Windows layouts, including 125% display scaling.
   This reuses the existing compact profile; no additional breakpoint is introduced. */

/* Monitor profile — 1920×1080. Numeric values remain centralized in :root. */
@media (min-width: 1800px) {
  :root {
    --ct-size-contact-avatar: var(--ct-size-contact-avatar-monitor);
    --ct-size-linkedin-action: var(--ct-size-linkedin-action-monitor);
    --ct-size-linkedin-icon: var(--ct-size-linkedin-icon-monitor);
    --ct-size-linkedin-profile-avatar: var(--ct-size-linkedin-profile-avatar-monitor);
    --ct-size-linkedin-profile-link-icon: var(--ct-size-linkedin-profile-link-icon-monitor);
    --ct-size-linkedin-profile-control: var(--ct-size-linkedin-profile-control-monitor);
    --ct-size-linkedin-profile-settings-field: var(--ct-size-linkedin-profile-settings-field-monitor);
    --ct-overlay-title-size: var(--ct-overlay-title-monitor);
    --ct-overlay-large-title-size: var(--ct-overlay-large-title-monitor);
    --ct-overlay-section-title-size: var(--ct-overlay-section-title-monitor);
    --ct-overlay-body-size: var(--ct-overlay-body-monitor);
    --ct-overlay-control-size: var(--ct-overlay-control-monitor);
    --ct-overlay-subtitle-size: var(--ct-overlay-subtitle-monitor);
    --ct-overlay-meta-size: var(--ct-overlay-meta-monitor);
    --ct-overlay-helper-size: var(--ct-overlay-helper-monitor);
    --ct-overlay-chip-size: var(--ct-overlay-chip-monitor);
    --ct-overlay-button-size: var(--ct-overlay-button-monitor);
  }
}

@media (min-width: 981px) and (max-width: 1600px) {
  :root {
    --ct-size-contact-avatar: var(--ct-size-contact-avatar-windows);
    --ct-size-linkedin-action: var(--ct-size-linkedin-action-windows);
    --ct-size-linkedin-icon: var(--ct-size-linkedin-icon-windows);
    --ct-size-linkedin-profile-avatar: var(--ct-size-linkedin-profile-avatar-windows);
    --ct-size-linkedin-profile-link-icon: var(--ct-size-linkedin-profile-link-icon-windows);
    --ct-size-linkedin-profile-control: var(--ct-size-linkedin-profile-control-windows);
    --ct-size-linkedin-profile-settings-field: var(--ct-size-linkedin-profile-settings-field-windows);
    --ct-overlay-title-size: var(--ct-overlay-title-windows);
    --ct-overlay-large-title-size: var(--ct-overlay-large-title-windows);
    --ct-overlay-section-title-size: var(--ct-overlay-section-title-windows);
    --ct-overlay-body-size: var(--ct-overlay-body-windows);
    --ct-overlay-control-size: var(--ct-overlay-control-windows);
    --ct-overlay-subtitle-size: var(--ct-overlay-subtitle-windows);
    --ct-overlay-meta-size: var(--ct-overlay-meta-windows);
    --ct-overlay-helper-size: var(--ct-overlay-helper-windows);
    --ct-overlay-chip-size: var(--ct-overlay-chip-windows);
    --ct-overlay-button-size: var(--ct-overlay-button-windows);
  }
  .ct-table { min-width: 1220px; }
  .contacts-module { --ct13-control-h: 38px; --ct13-card-radius: 14px; --ct13-row-h: 54px; --ct13-cell-x: 7px; }
  .contacts-module .ct-page-head { gap: 14px; margin-bottom: 9px; padding-top: 0; }
  .contacts-module .ct-eyebrow { gap: 5px; margin-bottom: 4px; font-size: var(--ct-font-8-4); letter-spacing: var(--ct-track-1-15); }
  .contacts-module .ct-page-head h1 { font-size: var(--ct-font-25); line-height: var(--ct-line-height-1); letter-spacing: var(--ct-track-neg-0-75); }
  .contacts-module .ct-page-head p { max-width: 600px; margin-top: 5px; font-size: var(--ct-font-10-5); line-height: var(--ct-line-height-1-36); }
  .contacts-module .ct-search { width: min(370px,32vw); }
  .contacts-module .ct-search input {
    height: var(--ct13-control-h);
    padding-left: 34px;
    padding-right: 10px;
    border-radius: 10px;
    font-size: var(--ct-font-10);
  }
  .contacts-module .ct-search svg { left: 11px; width: 14px; height: 14px; }
  .contacts-module .ct-add-btn {
    height: var(--ct13-control-h);
    padding: 0 12px;
    gap: 6px;
    border-radius: 10px;
    font-size: var(--ct-font-9-5);
  }
  .contacts-module .ct-view-tabs, .contacts-module .ct-status-tabs, .contacts-module .ct-mini-tabs { gap: 2px; padding: 3px; border-radius: 10px; }
  .contacts-module .ct-view-tab {
    height: 32px;
    gap: 5px;
    padding: 0 9px;
    border-radius: 8px;
    font-size: var(--ct-font-9-6);
  }
  .contacts-module .ct-status-tab, .contacts-module .ct-mini-tab { height: 30px; padding: 0 8px; border-radius: 7px; font-size: var(--ct-font-8-2); }
  .contacts-module .ct-dimension-bar { gap: 10px; margin-bottom: 8px; padding: 7px 9px; border-radius: 12px; }
  .contacts-module .ct-dimension-group { gap: 6px; }
  .contacts-module .ct-dimension-label { font-size: var(--ct-font-7-4); letter-spacing: var(--ct-track-0-4); }
  .contacts-module .ct-coverage-card { margin-bottom: 9px; padding: 11px 12px 10px; border-radius: var(--ct13-card-radius); }
  .contacts-module .ct-coverage-head { gap: 10px; margin-bottom: 8px; }
  .contacts-module .ct-coverage-head h2 { font-size: var(--ct-font-13); }
  .contacts-module .ct-coverage-head p { margin-top: 2px; font-size: var(--ct-font-8-7); }
  .contacts-module .ct-total-pill { height: 25px; padding: 0 8px; font-size: var(--ct-font-7-7); }
  .contacts-module .ct-total-pill strong { font-size: var(--ct-font-9-5); }
  .contacts-module .ct-head-actions, .contacts-module .ct-bucket-scroll { gap: 7px; }
  .contacts-module .ct-bucket {
    min-width: 174px;
    max-width: 198px;
    height: 56px;
    grid-template-columns: 29px minmax(0,1fr) auto;
    gap: 7px;
    padding: 7px 8px;
    border-radius: 10px;
  }
  .contacts-module .ct-bucket-icon { width: 31px; height: 31px; border-radius: 8px; }
  .contacts-module .ct-bucket-copy strong { font-size: var(--ct-font-9-7); }
  .contacts-module .ct-bucket-copy span { margin-top: 2px; font-size: var(--ct-font-7-2); }
  .contacts-module .ct-bucket-number { font-size: var(--ct-font-14); }
  .contacts-module .ct-table-card { border-radius: var(--ct13-card-radius); }
  .contacts-module .ct-table-toolbar { min-height: 44px; gap: 8px; padding: 6px 9px; }
  .contacts-module .ct-table-context { font-size: var(--ct-font-8-8); }
  .contacts-module .ct-table-summary { gap: 6px; font-size: var(--ct-font-8); }
  .contacts-module .ct-icon-button { width: 32px; height: 32px; border-radius: 8px; }
  .contacts-module .ct-add-btn svg, .contacts-module .ct-view-tab svg, .contacts-module .ct-bucket-icon svg, .contacts-module .ct-icon-button svg { width: 13px; height: 13px; }
  .contacts-module .ct-table-wrap { width: 100%; max-width: 100%; overflow-x: hidden; }
  .contacts-module .ct-table th { height: 35px; padding: 0 var(--ct13-cell-x); font-size: var(--ct-font-7-4); letter-spacing: var(--ct-track-0-34); }
  .contacts-module .ct-table td { height: var(--ct13-row-h); padding: 6px var(--ct13-cell-x); font-size: var(--ct-font-9-3); line-height: var(--ct-line-height-1-24); }
  .contacts-module .ct-institution-group-cell { padding: 8px 7px; }
  .contacts-module .ct-institution-block { top: 6px; }
  .contacts-module .ct-institution-block>strong { font-size: var(--ct-font-10-2); line-height: var(--ct-line-height-1-2); }
  .contacts-module .ct-institution-meta { gap: 3px; margin-top: 5px; }
  .contacts-module .ct-inst-chip { min-height: 20px; padding: 0 5px; font-size: var(--ct-font-6-5); }
  .contacts-module .ct-institution-count { margin-top: 5px; font-size: var(--ct-font-7-2); }
  .contacts-module .ct-sector-list { gap: 3px; }
  .contacts-module .ct-sector-tag {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    min-height: 21px;
    padding: 0 6px;
    border-radius: 6px;
    font-size: var(--ct-font-7-2);
  }
  .contacts-module .ct-sector-more { font-size: var(--ct-font-7-2); }
  .contacts-module .ct-contact-main strong { font-size: var(--ct-font-10); line-height: var(--ct-line-height-1-2); }
  .contacts-module .ct-type-pill, .contacts-module .ct-scope-pill {
    max-width: 100%;
    min-height: 20px;
    padding: 0 6px;
    overflow: hidden;
    font-size: var(--ct-font-7);
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .contacts-module .ct-row-action { width: 24px; height: 24px; border-radius: 7px; }
  .contacts-module .ct-row-action svg { width: 11px; height: 11px; }
  .contacts-module .ct-pagination { min-height: 40px; gap: 7px; font-size: var(--ct-font-8); }
  .contacts-module .ct-page-btn { width: 28px; height: 28px; border-radius: 8px; }
  .contacts-module .ct-page-btn svg { width: 12px; height: 12px; }
  .contacts-module .ct-table { width: 100%; min-width: 0; max-width: 100%; table-layout: fixed; }
  .contacts-module .ct-table th:nth-child(1) { width: 16.8%; }
  .contacts-module .ct-table th:nth-child(2) { width: 12.3%; }
  .contacts-module .ct-table th:nth-child(4) { width: 11.2%; }
  .contacts-module .ct-table th:nth-child(5), .contacts-module .ct-table th:nth-child(6) { width: 8.4%; }
  .contacts-module .ct-table th:nth-child(3), .contacts-module .ct-table th:nth-child(7) { width: 14.2%; }
  .contacts-module .ct-table th:nth-child(8), .contacts-module .ct-table th:nth-child(9) { width: 5.8%; }
  .contacts-module .ct-table th:nth-child(10) { width: 2.9%; }
  .contacts-module .ct-table td:nth-child(3), .contacts-module .ct-table td:nth-child(4), .contacts-module .ct-table td:nth-child(6), .contacts-module .ct-table td:nth-child(7), .contacts-module .ct-table td:nth-child(8), .contacts-module .ct-table td:nth-child(9) { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
}

/* Tablet / narrow desktop */
@media (max-width: 980px) {
  :root {
    --ct-size-contact-avatar: var(--ct-size-contact-avatar-mobile);
    --ct-size-linkedin-action: var(--ct-size-linkedin-action-mobile);
    --ct-size-linkedin-icon: var(--ct-size-linkedin-icon-mobile);
    --ct-size-linkedin-profile-avatar: var(--ct-size-linkedin-profile-avatar-mobile);
    --ct-size-linkedin-profile-link-icon: var(--ct-size-linkedin-profile-link-icon-mobile);
    --ct-size-linkedin-profile-control: var(--ct-size-linkedin-profile-control-mobile);
    --ct-size-linkedin-profile-settings-field: var(--ct-size-linkedin-profile-settings-field-mobile);
    --ct-overlay-title-size: var(--ct-overlay-title-mobile);
    --ct-overlay-large-title-size: var(--ct-overlay-large-title-mobile);
    --ct-overlay-section-title-size: var(--ct-overlay-section-title-mobile);
    --ct-overlay-body-size: var(--ct-overlay-body-mobile);
    --ct-overlay-control-size: var(--ct-overlay-control-mobile);
    --ct-overlay-subtitle-size: var(--ct-overlay-subtitle-mobile);
    --ct-overlay-meta-size: var(--ct-overlay-meta-mobile);
    --ct-overlay-helper-size: var(--ct-overlay-helper-mobile);
    --ct-overlay-chip-size: var(--ct-overlay-chip-mobile);
    --ct-overlay-button-size: var(--ct-overlay-button-mobile);
    --ct-size-mobile-drawer-avatar: var(--ct-size-mobile-drawer-avatar-tablet);
  }
  .ct-page-head { grid-template-columns: 1fr; gap: 10px; }
  .ct-status-tabs { align-self: flex-start; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .ct-coverage-head { align-items: flex-start; }
  .ct-drawer { top: 6px; right: 6px; bottom: 6px; width: calc(100vw - 12px); }
  .ct-drawer-footer { align-items: stretch; flex-direction: column; }
  .ct-linkedin-profile-image-form { grid-template-columns: 1fr; align-items: stretch; gap: 10px; }
  .ct-linkedin-profile-image-actions { justify-content: flex-start; }
  .ct-filter-field { flex: 1 1 100%; max-width: none; }
  .ct-table-toolbar, .ct-sector-subnav-head { align-items: flex-start; flex-direction: column; }
  .contacts-module .ct-drawer {
    top: 6px;
    right: 6px;
    bottom: 6px;
    width: calc(100vw - 12px);
    border-radius: 16px;
  }
  .contacts-module .ct-drawer-body { padding: 14px 15px 20px; }
  .contacts-module .ct-drawer-footer { align-items: stretch; flex-direction: column; padding: 10px 12px; }
  .ct-drawer-footer-right, .contacts-module .ct-drawer-footer-right { width: 100%; margin-left: 0; }
  .ct-head-actions { justify-content: flex-end; flex-wrap: wrap; }
  .ct-search { width: min(100%,360px); flex: 1 1 100%; }
  .ct-bulk-head { padding: 15px; }
  .ct-bulk-body { padding: 14px; }
  .ct-bulk-footer { padding: 10px 14px; align-items: stretch; flex-direction: column; }
  .ct-primary-btn, .ct-secondary-btn, .contacts-module .ct-primary-btn, .contacts-module .ct-secondary-btn, .ct-bulk-footer .ct-secondary-btn, .ct-bulk-footer .ct-primary-btn { flex: 1; }
  .ct-bulk-flow { grid-template-columns: 1fr; gap: 12px; }
  .ct-bulk-flow-link {
    width: 2px;
    height: 28px;
    margin: 0 auto;
    border-top: 0;
    border-left: 2px dashed #d7d1f8;
  }
  .ct-bulk-flow-link::after {
    right: auto;
    left: -4px;
    top: auto;
    bottom: -1px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 7px solid #c7bdf9;
    border-bottom: 0;
  }
  .ct-bulk-flow-card { min-height: auto; padding: 18px 14px; }
  .ct-bulk-flow.ct-bulk-flow-compact { grid-template-columns: 1fr; gap: 8px; }
  .ct-bulk-flow-compact .ct-bulk-flow-card { min-height: 112px; }
  .ct-bulk-flow-compact .ct-bulk-flow-link {
    width: 1px;
    height: 16px;
    margin: 0 auto;
    border-top: 0;
    border-left: 1.5px dashed #d7d1f8;
  }
  .ct-bulk-flow-compact .ct-bulk-flow-hero { width: 64px; height: 64px; flex-basis: 64px; border-radius: 16px; }
  .ct-bulk-flow-compact .ct-bulk-flow-hero svg { width: 30px; height: 30px; }
  .contacts-module .ct-quick-action { height: 30px; padding: 0 9px; font-size: var(--ct-overlay-button-size); font-weight: var(--ct-overlay-button-weight); }
  .ct-email-compose-backdrop { padding: 5px; }
  .ct-email-compose-head p { font-size: var(--ct-overlay-meta-size); }
  .ct-email-compose-modal { border-radius: 12px; width: calc(100vw - 10px); height: calc(100vh - 10px); }
  .ct-email-compose-head { min-height: 39px; padding: 8px 13px 4px; }
  .ct-email-compose-kicker { padding-top: 1px; font-size: var(--ct-overlay-meta-size); }
  .contacts-module .ct-drawer-head { min-height: 68px; padding: 12px 14px 9px; }
  .contacts-module .ct-avatar { width: 44px; height: 44px; flex-basis: 44px; }
  .contacts-module .ct-drawer-name-row { gap: 8px; min-height: 26px; flex-wrap: wrap; }
  .ct-email-compose-head h2, .contacts-module .ct-drawer-title h2, .contacts-module .ct-drawer-name-row h2 { font-size: var(--ct-overlay-title-size); }
  #contactsApp .ct-custom-select-menu, #contactsApp .ct-sector-picker-menu { z-index: 120; }
  #contactsApp .ct-sector-picker-chip { max-width: 88px; }
  #contactsApp .ct-institution-picker-menu { z-index: 130; }
  .contacts-module .ct-table-toolbar { align-items: stretch; flex-wrap: wrap; }
  .contacts-module .ct-table-context { flex: 1 1 100%; }
  .ct-view-tabs, .ct-mini-tabs, .contacts-module .ct-source-toggle { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .contacts-module .ct-table-summary { margin-left: auto; }
  .ct-bulk-modal { width: calc(100vw - 16px); max-height: calc(100vh - 16px); border-radius: 15px; }
  .ct-bulk-modal .ct-bulk-flow.ct-bulk-flow-compact { grid-template-columns: 1fr; gap: 7px; }
  .ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-card { min-height: 118px; }
  .ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-link {
    width: 1px;
    height: 12px;
    margin: 0 auto;
    border-top: 0;
    border-left: 1px solid #ddd8f4;
  }
  .ct-bulk-rules { align-items: flex-start; flex-wrap: wrap; }
  .ct-bulk-sector-panel-head { align-items: flex-start; flex-direction: column; gap: 7px; }
  .ct-bulk-sector-help { padding-left: 36px; }
  .ct-view-tabs::-webkit-scrollbar, .ct-status-tabs::-webkit-scrollbar, .ct-mini-tabs::-webkit-scrollbar, #contactsApp .ct-institution-picker-selected-copy small, .contacts-module .ct-source-toggle::-webkit-scrollbar, .ct-bulk-modal .ct-bulk-flow-compact .ct-bulk-flow-link::after, .ct-bulk-rule-separator { display: none; }
  .contacts-module .ct-drawer-title { gap: 10px; }
  .ct-field-wide, .contacts-module .ct-field-wide { grid-column: auto; }
  .ct-field-grid, .ct-visibility-options, .ct-quick-actions, .contacts-module .ct-field-grid, .contacts-module .ct-visibility-options { grid-template-columns: 1fr; }
  .ct-add-btn, .ct-danger-btn, .ct-clear-filter, .contacts-module .ct-danger-btn, .ct-bulk-footer-right { width: 100%; }
  .contacts-module .ct-contact-access-card { grid-template-columns: 36px minmax(0,1fr) 28px; gap: 9px; min-height: 66px; padding: 11px; }
  .contacts-module .ct-contact-access-card-icon { width: 36px; height: 36px; border-radius: 10px; }
  .contacts-module .ct-contact-access-card-title strong { font-size: var(--ct-font-12); }
  .contacts-module .ct-contact-access-card-copy p { font-size: var(--ct-font-10-5); }
  .contacts-module .ct-contact-access-privacy { padding: 10px 11px; }
  .ct-linkedin-profile-backdrop { padding: 8px; }
  .ct-linkedin-profile-modal { width: calc(100vw - 16px); max-height: calc(100vh - 16px); border-radius: 16px; }
  .ct-linkedin-profile-content { max-height: calc(100vh - 16px); }
  .ct-linkedin-profile-hero { grid-template-columns: 72px minmax(0,1fr); gap: 13px; min-height: 0; padding: 24px 48px 20px 18px; }
  .ct-linkedin-profile-settings-panel { padding: 14px 18px; }
  .ct-linkedin-profile-settings { top: 10px; right: 52px; }
  .ct-linkedin-profile-avatar { width: var(--ct-size-linkedin-profile-avatar); height: var(--ct-size-linkedin-profile-avatar); }
  .ct-linkedin-profile-open-link { grid-column: 1/-1; justify-self: start; margin-left: 85px; }
  .ct-linkedin-profile-section { padding: 18px; }
}

@media (max-width: 640px) {
  :root {
    --ct-size-mobile-drawer-avatar: var(--ct-size-mobile-drawer-avatar-phone);
  }
}

/* 15 — ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
  .contacts-module *, .contacts-module *::before, .contacts-module *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
