/* Phase 15D.3 — shared search control and RAG toolbar rules. Extracted from original index.php inline cascade slot. */
/* Search label should size itself to the input, not to an inline line box. */
main label:has(> i[data-lucide="search"]):has(> input),
main label:has(> svg.lucide-search):has(> input),
.main-content label:has(> i[data-lucide="search"]):has(> input),
.main-content label:has(> svg.lucide-search):has(> input) {
  position: relative !important;
  display: block !important;
  height: var(--ircc-control-md, 36px) !important;
  min-height: var(--ircc-control-md, 36px) !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: var(--ircc-control-md, 36px) !important;
  align-self: center !important;
  box-sizing: border-box !important;
}

main label:has(> input) > i[data-lucide="search"],
main label:has(> input) > svg.lucide-search,
.main-content label:has(> input) > i[data-lucide="search"],
.main-content label:has(> input) > svg.lucide-search {
  position: absolute !important;
  left: 12px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  z-index: 3 !important;
  pointer-events: none !important;
  line-height: 1 !important;
}

main label:has(> i[data-lucide="search"]) > input,
main label:has(> svg.lucide-search) > input,
.main-content label:has(> i[data-lucide="search"]) > input,
.main-content label:has(> svg.lucide-search) > input {
  display: block !important;
  width: 100% !important;
  height: var(--ircc-control-md, 36px) !important;
  min-height: var(--ircc-control-md, 36px) !important;
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 38px !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

/* RAG Documents toolbar: keep every control on the same baseline. */
.ragdoc-toolbar {
  align-items: center !important;
}

.ragdoc-toolbar > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.ragdoc-toolbar .ragdoc-search {
  display: block !important;
  height: var(--ircc-control-md, 36px) !important;
  min-height: var(--ircc-control-md, 36px) !important;
  line-height: var(--ircc-control-md, 36px) !important;
  align-self: center !important;
}

.ragdoc-toolbar .ragdoc-search .ragdoc-control,
.ragdoc-toolbar > .ragdoc-control,
.ragdoc-toolbar > .ragdoc-refresh {
  height: var(--ircc-control-md, 36px) !important;
  min-height: var(--ircc-control-md, 36px) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  align-self: center !important;
}

.ragdoc-toolbar .ragdoc-search > i[data-lucide="search"],
.ragdoc-toolbar .ragdoc-search > svg.lucide-search {
  top: 50% !important;
  left: 12px !important;
  transform: translateY(-50%) !important;
}

@media (max-width: 650px) {
  .ragdoc-toolbar .ragdoc-search {
    width: 100% !important;
    max-width: none !important;
  }
}


/* Phase 15D.4 — source-equivalent common UI primitives.
 * Exact original declarations; module-specific appearance stays module-owned.
 */

/* Search focus ring */
.ct-search input:focus,
.ct-linkedin-profile-image-field input:focus,
.ec-search input:focus,
.ido-ref-scope-card.open .ido-company-picker-input:focus { border-color: #cfc5ff; box-shadow: 0 0 0 3px rgba(108, 76, 245, .07); }

/* Backdrop overlay */
.ct-drawer-backdrop,
.sha-search-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;
}

/* Backdrop active state */
.ct-bulk-backdrop.show,
.ps-modal-backdrop.show,
.sha-modal-backdrop.show { opacity: 1; pointer-events: auto; }

/* Modal open state */
.ct-bulk-modal.show,
.ps-modal.show,
.sha-upload-modal.show { opacity: 1; pointer-events: auto; transform: translate(-50%,-50%) scale(1); }

/* Email dialog title */
.ra-email-title-wrap,
.sha-email-title-wrap {display:flex;align-items:flex-start;gap:12px;min-width:0;}

/* Email dialog field */
.ra-email-field,
.sha-email-field {display:grid;gap:7px;}

/* Email dialog footer */
.ra-email-footer,
.sha-email-footer {display:flex;justify-content:flex-end;gap:9px;padding:0 18px 18px;}

/* Fixed table layout */
.ra-revision-trail-table,
.sha-large-deals-table {width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;}

/* Phase 15D.6 — source-identical reusable module primitives; cascade checked. */

/* Compact section headings */
.ps-circulate-title,
.ct-linkedin-profile-settings-copy,
.ra-manual-broker-wrap,
.ec-participation-title-group,
.sha-manage-title {display:flex;align-items:center;gap:10px;min-width:0;}

/* Section actions */
.ps-action-title,
.contacts-module .ct-rel-history-top,
.ra-theme-row-head {display:flex;align-items:center;justify-content:space-between;gap:10px;}

/* Summary header */
.ct-sector-subnav-head,
.ec-participation-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

/* Compact title rows */
.ct-bulk-sector-title,
.ra-valuation-broker,
.ec-section-title-with-icon { display: flex; align-items: center; gap: 8px; min-width: 0; }

/* Status headline */
.feedback-contacts-ui .fb-mis-card-head,
.contacts-module .ct-rel-status-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }

/* Neutral perception state */
.feedback-contacts-ui .fb-edit-perception-toggle button.neutral.active,
.contacts-module .ct-rel-perception-toggle button.neutral.active { border-color: #e5d59b; background: #fff8df; color: #8a6b18; box-shadow: 0 0 0 2px rgba(138,107,24,.05); }

/* Disabled period control */
.feedback-contacts-ui .fb-period-shift.disabled,
.ido-ref-dashboard .ido-dashboard-period-shift.disabled {
  border-color:#ece9f2;
  background:#f8f7fb;
  color:#c0bccb;
  cursor:default;
  pointer-events:none;
}

/* Investor name ellipsis */
.fb-log-contact-result strong,.fb-log-contact-result small,
.fb-log-selected-contact strong,.fb-log-selected-contact span,
.ra-valuation-broker-copy strong,
.sha-search-investor-cell strong, .sha-search-investor-cell span {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Phase 15D.7: common SVG dimensions, scoped to existing selectors. */

/* Icon 11px: 7 original declarations */
.ct-bulk-mini-action svg, .ct-bulk-mini-hint svg, .ct-bulk-sector-help svg,
.ido-segment-foot svg,
.fb-import-source a svg,
.sha-search-category-check svg,
.vai-api-auth-badge i,.vai-api-auth-badge svg,
.contacts-module .ct-rel-history-by svg,
.contacts-module .ct-rel-history-outcomes svg {
  width: var(--ircc-icon-11, 11px);
  height: var(--ircc-icon-11, 11px);
}

/* Icon 12px: 15 original declarations */
.ct-bulk-row-status svg,
.ct-sector-reset svg,
.ido-ref-card-head > a svg,
.ido-readiness-list > div > span svg,
.fb-import-warnings svg,
.fb-import-head-actions button svg,
.fb-bulk-row-actions svg,
.ra-direction-strip svg,
.sha-history-modal-meta svg,
.sha-search-scope span svg,
.vai-api-copy i,.vai-api-copy svg,
.vai-api-chip i,.vai-api-chip svg,
.vai-api-empty-action i,.vai-api-empty-action svg,
.contacts-module .ct-rel-side-badge svg,
.contacts-module .ct-rel-latest-perception.compact>strong svg {
  width: var(--ircc-icon-12, 12px);
  height: var(--ircc-icon-12, 12px);
}

/* Icon 13px: 15 original declarations */
.contacts-module .ct-quick-action svg,
.ct-linkedin-profile-location svg,
.ct-linkedin-profile-open-link>svg:last-child,
.ido-ref-ai-image-cta svg,
.ido-intel-head>a svg,
.ido-action-row-icon svg,
.ido-inline-scope-btn svg,
.ido-market-area-switch svg,
.feedback-contacts-ui .fb-mis-row-remove svg,
.fb-log-kicker svg,
.fb-import-open-result svg,
.ra-upload-head .ra-section-kicker svg,
.sha-search-clear svg,
.vai-api-stat-icon i,.vai-api-stat-icon svg,
.vai-api-company-icon i,.vai-api-company-icon svg {
  width: var(--ircc-icon-13, 13px);
  height: var(--ircc-icon-13, 13px);
}

/* Icon 14px: 28 original declarations */
.ct-row-action svg, .ct-page-btn svg,
.ct-form-icon svg, .ct-primary-btn svg, .ct-danger-btn svg, .contacts-module .ct-primary-btn svg, .contacts-module .ct-danger-btn svg,
.ct-bulk-footer svg, .ct-bulk-sector-icon svg,
.ct-linkedin-profile-save-image svg,
.ct-linkedin-profile-remove-image svg,
.ido-company-option-icon svg,
.ido-company-empty-icon svg,
.ido-company-option-check svg,
.ido-ref-campaign-icon svg,
.ido-ref-activity-icon svg,
.ido-ref-intel-icon svg,
.ido-ref-agenda-mini-icon svg,
.ido-action-stat>span svg,
.ido-investor-question-icon svg,
.feedback-contacts-ui .fb-mis-toolbar button svg,.feedback-contacts-ui .fb-mis-section-head button svg,
.feedback-contacts-ui .fb-mis-save svg,
.feedback-contacts-ui .fb-mis-card-head svg,
.fb-log-primary svg,
.fb-import-file-btn svg,.fb-import-primary svg,.fb-import-secondary svg,
.fb-import-mode-switch button svg,
.fb-bulk-file-btn svg,
.ra-broker-drawer .ra-drawer-head .ra-icon-btn svg,
.ra-open-report svg,
.sha-company-search-option-icon svg,
.mr-segmented button svg,
.mr-primary-btn svg,
.vai-api-generate i,.vai-api-generate svg,
.vai-company-picker-chevron i,.vai-company-picker-chevron svg,
.vai-api-secret-icon i,.vai-api-secret-icon svg,
.vai-api-guide-note>span i,.vai-api-guide-note>span svg,
.contacts-module .ct-rel-history-actions svg,
.feedback-contacts-ui .fb-period-shift svg,
.feedback-contacts-ui .fb-edit-segmented svg {
  width: var(--ircc-icon-14, 14px);
  height: var(--ircc-icon-14, 14px);
}

/* Icon 15px: 18 original declarations */
.ct-bucket-icon svg,
.ct-drawer-close svg, .ct-quick-action svg, .contacts-module .ct-form-icon svg,
.ct-icon-button svg,
.ido-top-area-strip .ido-top-market-area-card .ido-top-card-kicker svg,
.feedback-contacts-ui .fb-mis-kpis article>span svg,
.feedback-contacts-ui .fb-mis-section-head>div>span svg,
.feedback-contacts-ui .fb-log-feedback-btn svg,
.fb-import-kpis svg,
.fb-import-section-head svg,
.ra-ask-fab svg,
.ra-email-title-icon svg,.ra-email-preview-icon svg,
.sha-upload-btn svg, .sha-secondary-btn svg, .sha-snapshot-btn svg, .sha-manage-benpos-btn svg, .sha-weekly-pdf-btn svg, .sha-email-pdf-btn svg,
.sha-nav-arrow svg,
.sha-mover-icon svg,
.sha-email-send svg,
.mr-drawer-tab svg,
.mr-section-icon svg,
.contacts-module .ct-rel-mode-icon svg {
  width: var(--ircc-icon-15, 15px);
  height: var(--ircc-icon-15, 15px);
}

/* Icon 16px: 15 original declarations */
.ct-add-btn svg,
.ct-bulk-btn svg,
.ct-linkedin-profile-close svg,
.ct-linkedin-profile-settings svg,
.ct-linkedin-profile-settings-icon svg,
.fb-log-close svg,
.ra-icon-btn svg,
.sha-search-drawer-close svg,
.sha-file-slots .slot-icon svg,
.sha-email-close svg,
.mr-add-btn svg,
.mr-close-btn svg,
.vai-api-close i,.vai-api-close svg,
.contacts-module .ct-rel-icon-button svg, .contacts-module .ct-rel-email svg,
.feedback-contacts-ui .fb-stat-icon svg {
  width: var(--ircc-icon-16, 16px);
  height: var(--ircc-icon-16, 16px);
}

/* Icon 18px: 9 original declarations */
.ct-bulk-modal .ct-bulk-head .ct-drawer-close svg,
.ct-linkedin-profile-empty-icon svg, .ct-linkedin-profile-error>span svg,
.fb-bulk-icon svg,
.sha-chart-empty svg,
.sha-search-drawer-icon svg,
.sha-search-empty > span svg,
.sha-head-icon-btn svg,
.sha-weekly-pdf-btn.sha-head-icon-btn svg,
.sha-email-pdf-btn.sha-head-icon-btn svg,
.sha-manage-benpos-btn.sha-head-icon-btn svg,
.sha-holding-search-btn.sha-head-icon-btn svg,
.mr-drawer-icon svg,
.vai-api-empty span i,.vai-api-empty span svg {
  width: var(--ircc-icon-18, 18px);
  height: var(--ircc-icon-18, 18px);
}
