/* ═══════════════════════════════════════════════════════════════
   AI Chat Agency — Client Portal
   Selector root: #xca-portal — overrides Elementor global styles
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ── Escape Elementor's page container so portal fills the viewport ── */
/* Elementor wraps content in .elementor-section-wrap / .e-con-inner etc.
   We pull #xca-portal out of those constraints with negative margins + full width. */
#xca-portal {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  max-width: 100vw;
}

/* ── Nuclear Elementor override — everything inside #xca-portal ── */
/* Elementor sets font-family, font-size, line-height, color, margin, padding
   on *, p, h1-h6, a, input, button, etc. We reset all of it. */
#xca-portal,
#xca-portal *,
#xca-portal *::before,
#xca-portal *::after {
  box-sizing: border-box !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
#xca-portal p,
#xca-portal h1,
#xca-portal h2,
#xca-portal h3,
#xca-portal h4,
#xca-portal h5,
#xca-portal h6 {
  margin: 0 !important;
  padding: 0 !important;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  letter-spacing: inherit;
}
#xca-portal a {
  text-decoration: none !important;
  color: inherit;
}
#xca-portal ul,
#xca-portal ol,
#xca-portal li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#xca-portal input,
#xca-portal textarea,
#xca-portal select,
#xca-portal button {
  font-family: inherit !important;
  font-size: inherit !important;
  border-radius: 0;
  outline: none;
}
/* Elementor sometimes adds padding to .elementor-widget-container */
.elementor-widget-container:has(#xca-portal),
.elementor-widget-container #xca-portal {
  padding: 0 !important;
  margin: 0 !important;
}

/* ── Design tokens ────────────────────────────────────────────── */
#xca-portal {
  --brand:       #3b5bdb;
  --brand-light: #eef2ff;
  --brand-hover: #2f4ac0;
  --brand-text:  #ffffff;
  --sb-bg:       #1e2433;
  --sb-hover:    rgba(255,255,255,.07);
  --sb-active:   rgba(255,255,255,.12);
  --sb-text:     #8892a4;
  --sb-width:    220px;
  --bg:          #f4f5f7;
  --surface:     #ffffff;
  --border:      #e2e4e8;
  --border-sub:  #eceef1;
  --text:        #1a1d23;
  --text-2:      #5a6072;
  --text-3:      #9ba3b2;
  --sh-sm:       0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --sh-md:       0 4px 12px rgba(0,0,0,.08);
  --r:           8px;
  --r-lg:        12px;
  color: var(--text);
  background: var(--bg);
  min-height: 100vh;
}

/* ════════════════════════════════════════════════════════════════
   APP SHELL — full viewport flex layout
   ════════════════════════════════════════════════════════════════ */
#xca-portal.xca-portal:not(.xca-login-wrap *) {
  display: flex !important;
  min-height: 100vh;
  align-items: stretch;
}

/* ════════════════════════════════════════════════════════════════
   SIDEBAR
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-sidebar {
  width: var(--sb-width);
  flex-shrink: 0 !important;
  background: var(--sb-bg) !important;
  display: flex !important;
  flex-direction: column !important;
  position: sticky !important;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
}

#xca-portal .xca-sidebar-brand {
  padding: 18px 16px 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
}
#xca-portal .xca-sidebar-logo {
  width: 36px !important;
  height: 36px !important;
  border-radius: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #fff !important;
  flex-shrink: 0 !important;
}
#xca-portal .xca-sidebar-name strong {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #fff !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 148px;
}
#xca-portal .xca-sidebar-name small {
  display: block !important;
  font-size: 11px !important;
  color: var(--sb-text) !important;
  margin-top: 1px !important;
}

/* Nav */
#xca-portal .xca-nav {
  list-style: none !important;
  padding: 8px 8px !important;
  flex: 1 !important;
  margin: 0 !important;
}
#xca-portal .xca-nav li {
  margin-bottom: 1px !important;
}
#xca-portal .xca-nav-link {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 8px 10px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  color: var(--sb-text) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  transition: background .12s, color .12s !important;
  white-space: nowrap;
}
#xca-portal .xca-nav-link:hover {
  background: var(--sb-hover) !important;
  color: #fff !important;
}
#xca-portal .xca-nav-link.active {
  background: var(--sb-active) !important;
  color: #fff !important;
  font-weight: 600 !important;
}
#xca-portal .xca-nav-icon {
  font-size: 14px !important;
  width: 18px !important;
  text-align: center !important;
  flex-shrink: 0 !important;
}
#xca-portal .xca-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  text-transform: capitalize;
  letter-spacing: .03em;
}
#xca-portal .xca-badge.open   { background: #dcfce7; color: #166534; }
#xca-portal .xca-badge.closed { background: #f1f5f9; color: #475569; }

#xca-portal .xca-badge-dot {
  margin-left: auto !important;
  background: #e53e3e !important;
  color: #fff !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  padding: 1px 6px !important;
  min-width: 18px !important;
  text-align: center !important;
}
#xca-portal .xca-sidebar-footer {
  padding: 10px 8px 14px !important;
  border-top: 1px solid rgba(255,255,255,.06) !important;
}
#xca-portal .xca-signout-btn {
  display: block !important;
  text-align: center !important;
  padding: 8px !important;
  background: rgba(255,255,255,.05) !important;
  border-radius: 6px !important;
  color: var(--sb-text) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  transition: background .12s, color .12s !important;
  text-decoration: none !important;
}
#xca-portal .xca-signout-btn:hover {
  background: rgba(255,255,255,.1) !important;
  color: #fff !important;
}
#xca-portal .xca-mobile-signout { display: none !important; }

/* ════════════════════════════════════════════════════════════════
   MAIN CONTENT
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-main {
  flex: 1 !important;
  background: var(--bg) !important;
  min-height: 100vh !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  padding-bottom: 40px !important;
}

#xca-portal .xca-tab-header {
  padding: 24px 28px 0 !important;
  margin-bottom: 18px !important;
  background: var(--surface) !important;
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: 18px !important;
}
#xca-portal .xca-tab-header h1 {
  font-size: 20px !important;
  font-weight: 700 !important;
  letter-spacing: -.3px !important;
  color: var(--text) !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
#xca-portal .xca-tab-header p {
  font-size: 13px !important;
  color: var(--text-2) !important;
  margin-top: 3px !important;
  line-height: 1.5 !important;
}
#xca-portal .xca-count {
  background: var(--border) !important;
  color: var(--text-2) !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 1px 9px !important;
}

/* Content padding inherited from header */
#xca-portal .xca-main .xca-tab-header ~ * {
  padding-left: 24px !important;
  padding-right: 24px !important;
}
#xca-portal .xca-main .xca-tab-header ~ .xca-card,
#xca-portal .xca-main .xca-tab-header ~ .xca-stats-row,
#xca-portal .xca-main .xca-tab-header ~ .xca-two-col-even,
#xca-portal .xca-main .xca-tab-header ~ .xca-checklist-card,
#xca-portal .xca-main .xca-tab-header ~ form,
#xca-portal .xca-main .xca-tab-header ~ .xca-filter-bar,
#xca-portal .xca-main .xca-tab-header ~ .xca-filter-tabs,
#xca-portal .xca-main .xca-tab-header ~ .xca-leads-grid,
#xca-portal .xca-main .xca-tab-header ~ .xca-chat-list,
#xca-portal .xca-main .xca-tab-header ~ div,
#xca-portal .xca-main .xca-tab-header ~ #xca-settings-saved,
#xca-portal .xca-main .xca-tab-header ~ #xca-settings-error,
#xca-portal .xca-main .xca-tab-header ~ #xca-account-success,
#xca-portal .xca-main .xca-tab-header ~ #xca-account-error {
  margin-left: 24px !important;
  margin-right: 24px !important;
  width: calc(100% - 48px) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ════════════════════════════════════════════════════════════════
   CARDS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  padding: 20px 22px !important;
  margin-bottom: 12px !important;
  box-shadow: var(--sh-sm) !important;
}
#xca-portal .xca-card-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 14px !important;
}
#xca-portal .xca-card-header h2 {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--text) !important;
}
#xca-portal .xca-card-header a {
  font-size: 13px !important;
  color: var(--brand) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}
#xca-portal .xca-card-desc {
  font-size: 13px !important;
  color: var(--text-2) !important;
  line-height: 1.6 !important;
  margin-bottom: 14px !important;
}

/* ════════════════════════════════════════════════════════════════
   SETUP CHECKLIST
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-checklist-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  padding: 18px 20px !important;
  margin-bottom: 12px !important;
  box-shadow: var(--sh-sm) !important;
}
#xca-portal .xca-checklist-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-bottom: 14px !important;
}
#xca-portal .xca-checklist-header-text h2 {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--text) !important;
  margin-bottom: 2px !important;
}
#xca-portal .xca-checklist-header-text p {
  font-size: 12px !important;
  color: var(--text-2) !important;
}
#xca-portal .xca-progress-bar {
  width: 150px !important;
  height: 5px !important;
  background: var(--border) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
}
#xca-portal .xca-progress-fill {
  height: 100% !important;
  border-radius: 999px !important;
  background: var(--brand) !important;
  transition: width .3s ease !important;
}
#xca-portal .xca-checklist-steps {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
}
#xca-portal .xca-checklist-step {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px 11px !important;
  border-radius: 7px !important;
  border: 1px solid var(--border-sub) !important;
  background: var(--bg) !important;
}
#xca-portal .xca-checklist-step.done {
  background: #f0fdf4 !important;
  border-color: #bbf7d0 !important;
}
#xca-portal .xca-checklist-step-icon {
  font-size: 14px !important;
  flex-shrink: 0 !important;
  width: 18px !important;
  text-align: center !important;
}
#xca-portal .xca-checklist-step-body strong {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--text) !important;
}
#xca-portal .xca-checklist-step.done .xca-checklist-step-body strong {
  color: #166534 !important;
}
#xca-portal .xca-checklist-step-body span {
  display: block !important;
  font-size: 12px !important;
  color: var(--text-2) !important;
  margin-top: 1px !important;
}
#xca-portal .xca-checklist-complete {
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-radius: var(--r-lg) !important;
  padding: 12px 16px !important;
  margin-bottom: 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #166534 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* ════════════════════════════════════════════════════════════════
   STAT CARDS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-stats-row {
  display: grid !important;
  grid-template-columns: repeat(4,1fr) !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
}
#xca-portal .xca-stat-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  padding: 16px 18px !important;
  box-shadow: var(--sh-sm) !important;
  transition: box-shadow .15s !important;
}
#xca-portal .xca-stat-card:hover {
  box-shadow: var(--sh-md) !important;
}
#xca-portal .xca-stat-card.accent {
  background: var(--brand) !important;
  border-color: transparent !important;
}
#xca-portal .xca-stat-icon {
  font-size: 18px !important;
  margin-bottom: 8px !important;
  display: block !important;
}
#xca-portal .xca-stat-val {
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: -.5px !important;
  color: var(--text) !important;
  line-height: 1 !important;
  margin-bottom: 4px !important;
}
#xca-portal .xca-stat-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  color: var(--text-2) !important;
}
#xca-portal .xca-stat-sub {
  font-size: 11px !important;
  color: var(--text-3) !important;
  margin-top: 2px !important;
}
#xca-portal .xca-stat-card.accent .xca-stat-val   { color: #fff !important; }
#xca-portal .xca-stat-card.accent .xca-stat-label { color: rgba(255,255,255,.75) !important; }
#xca-portal .xca-stat-card.accent .xca-stat-sub   { color: rgba(255,255,255,.6) !important; }
#xca-portal .xca-stat-card.accent .xca-stat-icon  { filter: brightness(0) invert(1) !important; opacity: .9 !important; }

/* ════════════════════════════════════════════════════════════════
   TWO-COL
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-two-col-even {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
}

/* ════════════════════════════════════════════════════════════════
   RECENT LIST
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-recent-list { list-style: none !important; }
#xca-portal .xca-recent-list li {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 9px 0 !important;
  border-bottom: 1px solid var(--border-sub) !important;
}
#xca-portal .xca-recent-list li:last-child { border-bottom: none !important; }
#xca-portal .xca-recent-icon { font-size: 15px !important; flex-shrink: 0 !important; }
#xca-portal .xca-recent-body { flex: 1 !important; min-width: 0 !important; }
#xca-portal .xca-recent-body strong {
  display: block !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--text) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#xca-portal .xca-recent-body small {
  display: block !important;
  font-size: 12px !important;
  color: var(--text-3) !important;
  margin-top: 1px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
#xca-portal .xca-recent-time {
  font-size: 11px !important;
  color: var(--text-3) !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}
#xca-portal .xca-lead-avatar {
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  background: var(--brand) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #fff !important;
  flex-shrink: 0 !important;
}
#xca-portal .xca-muted {
  color: var(--text-3) !important;
  font-size: 13px !important;
  padding: 10px 0 !important;
}

/* ════════════════════════════════════════════════════════════════
   FILTER BAR & TABS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-filter-bar {
  display: flex !important;
  gap: 7px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  margin-bottom: 12px !important;
}
#xca-portal .xca-filter-bar input,
#xca-portal .xca-filter-bar select {
  padding: 7px 11px !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r) !important;
  font-size: 13px !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  transition: border-color .15s !important;
}
#xca-portal .xca-filter-bar input:focus,
#xca-portal .xca-filter-bar select:focus {
  border-color: var(--brand) !important;
  outline: none !important;
}
#xca-portal .xca-filter-tabs {
  display: flex !important;
  gap: 4px !important;
  margin-bottom: 12px !important;
  flex-wrap: wrap !important;
}
#xca-portal .xca-filter-tabs a {
  padding: 5px 13px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--text-2) !important;
  border: 1px solid var(--border) !important;
  background: var(--surface) !important;
  text-decoration: none !important;
  transition: all .12s !important;
}
#xca-portal .xca-filter-tabs a:hover { background: var(--bg) !important; color: var(--text) !important; }
#xca-portal .xca-filter-tabs a.active {
  background: var(--brand) !important;
  color: #fff !important;
  border-color: var(--brand) !important;
}

/* ════════════════════════════════════════════════════════════════
   TABLES
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-tbl {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 13px !important;
}
#xca-portal .xca-tbl thead th {
  text-align: left !important;
  padding: 8px 12px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
  color: var(--text-3) !important;
  background: var(--bg) !important;
  border-bottom: 1px solid var(--border) !important;
  white-space: nowrap !important;
}
#xca-portal .xca-tbl tbody td {
  padding: 11px 12px !important;
  border-bottom: 1px solid var(--border-sub) !important;
  color: var(--text) !important;
  vertical-align: middle !important;
}
#xca-portal .xca-tbl tbody tr:last-child td { border-bottom: none !important; }
#xca-portal .xca-tbl tbody tr:hover td { background: var(--bg) !important; }

/* ════════════════════════════════════════════════════════════════
   LEADS GRID
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-leads-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill,minmax(300px,1fr)) !important;
  gap: 10px !important;
  margin-bottom: 12px !important;
}
#xca-portal .xca-lead-card {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  padding: 16px !important;
  box-shadow: var(--sh-sm) !important;
}
#xca-portal .xca-lead-card-header { display: flex !important; align-items: flex-start !important; gap: 10px !important; margin-bottom: 10px !important; }
#xca-portal .xca-lead-avatar-lg {
  width: 38px !important; height: 38px !important; border-radius: 50% !important;
  background: var(--brand) !important; display: flex !important; align-items: center !important;
  justify-content: center !important; font-size: 14px !important; font-weight: 700 !important;
  color: #fff !important; flex-shrink: 0 !important;
}
#xca-portal .xca-lead-card-header > div:nth-child(2) { flex: 1 !important; }
#xca-portal .xca-lead-card-header h3 { font-size: 14px !important; font-weight: 600 !important; color: var(--text) !important; }
#xca-portal .xca-lead-card-header small { color: var(--text-3) !important; font-size: 12px !important; }
#xca-portal .xca-lead-card-contacts { display: flex !important; gap: 10px !important; flex-wrap: wrap !important; margin-bottom: 8px !important; }
#xca-portal .xca-lead-card-contacts a { font-size: 13px !important; color: var(--brand) !important; font-weight: 500 !important; text-decoration: none !important; }
#xca-portal .xca-lead-message { font-size: 13px !important; color: var(--text-2) !important; border-left: 2px solid var(--border) !important; padding-left: 9px !important; margin-bottom: 7px !important; line-height: 1.5 !important; }
#xca-portal .xca-lead-url { font-size: 11px !important; color: var(--text-3) !important; margin-bottom: 7px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
#xca-portal .xca-lead-notes-wrap { border-top: 1px solid var(--border-sub) !important; padding-top: 9px !important; }
#xca-portal .xca-lead-notes-input { width: 100% !important; border: 1px solid var(--border) !important; border-radius: var(--r) !important; padding: 7px 10px !important; font-size: 13px !important; font-family: inherit !important; resize: none !important; min-height: 56px !important; background: var(--surface) !important; }
#xca-portal .xca-lead-status-select { font-size: 12px !important; padding: 3px 7px !important; border: 1px solid var(--border) !important; border-radius: 6px !important; cursor: pointer !important; margin-left: auto !important; background: var(--surface) !important; }

/* ════════════════════════════════════════════════════════════════
   STATUS PILLS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-status-pill { display: inline-block !important; padding: 2px 9px !important; border-radius: 999px !important; font-size: 11px !important; font-weight: 700 !important; }
#xca-portal .xca-status-pill.new       { background: #fef3c7 !important; color: #92400e !important; }
#xca-portal .xca-status-pill.contacted { background: #dbeafe !important; color: #1e40af !important; }
#xca-portal .xca-status-pill.converted { background: #dcfce7 !important; color: #166534 !important; }
#xca-portal .xca-status-pill.closed    { background: var(--bg) !important; color: var(--text-3) !important; }
#xca-portal .xca-status-pill.active    { background: #dcfce7 !important; color: #166534 !important; }
#xca-portal .xca-status-pill.inactive  { background: var(--bg) !important; color: var(--text-3) !important; }

/* ════════════════════════════════════════════════════════════════
   CHAT LIST
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-chat-list { margin-bottom: 12px !important; }
#xca-portal .xca-chat-row {
  background: var(--surface) !important; border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important; padding: 13px 16px !important; margin-bottom: 7px !important;
  display: grid !important; grid-template-columns: auto 1fr auto !important;
  align-items: center !important; gap: 14px !important; box-shadow: var(--sh-sm) !important;
}
#xca-portal .xca-chat-meta strong { display: block !important; font-size: 13px !important; font-weight: 600 !important; color: var(--text) !important; }
#xca-portal .xca-chat-meta small  { color: var(--text-3) !important; font-size: 12px !important; }
#xca-portal .xca-chat-url { font-size: 13px !important; color: var(--text-2) !important; overflow: hidden !important; white-space: nowrap !important; text-overflow: ellipsis !important; }
#xca-portal .xca-btn-text { background: none !important; border: none !important; color: var(--brand) !important; font-size: 13px !important; font-weight: 600 !important; cursor: pointer !important; padding: 0 !important; white-space: nowrap !important; }

/* ════════════════════════════════════════════════════════════════
   MODAL
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-modal { position: fixed !important; inset: 0 !important; background: rgba(0,0,0,.5) !important; z-index: 999999 !important; display: none; align-items: center !important; justify-content: center !important; padding: 20px !important; }
#xca-portal .xca-modal-box { background: var(--surface) !important; border-radius: var(--r-lg) !important; width: 560px !important; max-width: 100% !important; max-height: 85vh !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; box-shadow: 0 20px 60px rgba(0,0,0,.15) !important; }
#xca-portal .xca-modal-header { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 15px 20px !important; border-bottom: 1px solid var(--border) !important; }
#xca-portal .xca-modal-header h3 { font-size: 14px !important; font-weight: 600 !important; }
#xca-portal .xca-modal-close { background: none !important; border: none !important; font-size: 18px !important; cursor: pointer !important; color: var(--text-3) !important; padding: 4px 8px !important; border-radius: 6px !important; }
#xca-portal .xca-modal-body { flex: 1 !important; overflow-y: auto !important; padding: 16px 20px !important; display: flex !important; flex-direction: column !important; gap: 7px !important; }
#xca-portal .xca-transcript-msg { max-width: 80% !important; padding: 9px 13px !important; border-radius: 12px !important; font-size: 13px !important; line-height: 1.55 !important; }
#xca-portal .xca-transcript-msg.user { background: var(--brand) !important; color: #fff !important; align-self: flex-end !important; border-radius: 12px 12px 3px 12px !important; }
#xca-portal .xca-transcript-msg.assistant { background: var(--bg) !important; color: var(--text) !important; align-self: flex-start !important; border-radius: 12px 12px 12px 3px !important; }
#xca-portal .xca-transcript-msg small { display: block !important; opacity: .6 !important; font-size: 11px !important; margin-top: 3px !important; }

/* ════════════════════════════════════════════════════════════════
   SETTINGS FORM
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-form-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 14px 18px !important; }
#xca-portal .xca-field,
#xca-portal .xca-field-full { display: flex !important; flex-direction: column !important; gap: 5px !important; }
#xca-portal .xca-field-full { grid-column: span 2 !important; }
#xca-portal .xca-field label,
#xca-portal .xca-field-full label {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--text-2) !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}
#xca-portal .xca-hint { font-weight: 400 !important; color: var(--text-3) !important; font-size: 12px !important; text-transform: none !important; letter-spacing: 0 !important; }
#xca-portal .xca-field input,
#xca-portal .xca-field select,
#xca-portal .xca-field-full input,
#xca-portal .xca-field-full textarea,
#xca-portal .xca-field-full select {
  border: 1px solid var(--border) !important;
  border-radius: var(--r) !important;
  padding: 8px 11px !important;
  font-size: 13px !important;
  font-family: inherit !important;
  outline: none !important;
  background: var(--surface) !important;
  width: 100% !important;
  color: var(--text) !important;
  transition: border-color .15s !important;
}
#xca-portal .xca-field input:focus,
#xca-portal .xca-field select:focus,
#xca-portal .xca-field-full input:focus,
#xca-portal .xca-field-full textarea:focus,
#xca-portal .xca-field-full select:focus {
  border-color: var(--brand) !important;
  box-shadow: 0 0 0 3px rgba(59,91,219,.12) !important;
}
#xca-portal .xca-field-full textarea { resize: vertical !important; line-height: 1.6 !important; min-height: 88px !important; }
#xca-portal .xca-field input[type="color"] { padding: 3px 4px !important; height: 36px !important; cursor: pointer !important; }
#xca-portal .xca-toggle-label { display: flex !important; align-items: center !important; gap: 8px !important; cursor: pointer !important; font-size: 13px !important; font-weight: 500 !important; color: var(--text) !important; text-transform: none !important; letter-spacing: 0 !important; }
#xca-portal .xca-toggle-label input[type="checkbox"] { width: 15px !important; height: 15px !important; accent-color: var(--brand) !important; }

/* ════════════════════════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-portal-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  background: var(--brand) !important;
  color: #fff !important;
  padding: 8px 18px !important;
  border-radius: var(--r) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
  transition: background .12s !important;
  letter-spacing: 0 !important;
}
#xca-portal .xca-portal-btn:hover { background: var(--brand-hover) !important; color: #fff !important; }
#xca-portal .xca-portal-btn.ghost {
  background: var(--surface) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
#xca-portal .xca-portal-btn.ghost:hover { background: var(--bg) !important; }
#xca-portal .xca-portal-btn.small  { padding: 5px 12px !important; font-size: 12px !important; border-radius: 6px !important; }
#xca-portal .xca-portal-btn.large  { padding: 11px 26px !important; font-size: 14px !important; }
#xca-portal .xca-portal-btn.full   { width: 100% !important; }
#xca-portal .xca-save-notes { background: none !important; border: none !important; color: var(--brand) !important; font-size: 12px !important; font-weight: 600 !important; cursor: pointer !important; padding: 3px 0 !important; }

/* ════════════════════════════════════════════════════════════════
   ALERTS
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-alert { padding: 10px 14px !important; border-radius: var(--r) !important; font-size: 13px !important; font-weight: 500 !important; margin-bottom: 12px !important; }
#xca-portal .xca-alert.success { background: #f0fdf4 !important; color: #166534 !important; border: 1px solid #bbf7d0 !important; }
#xca-portal .xca-alert.error   { background: #fef2f2 !important; color: #991b1b !important; border: 1px solid #fecaca !important; }
#xca-portal .xca-alert-warning { background: #fffbeb !important; color: #92400e !important; border: 1px solid #fde68a !important; }

/* ════════════════════════════════════════════════════════════════
   EMPTY STATE
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-empty { text-align: center !important; padding: 48px 30px !important; }
#xca-portal .xca-empty .xca-empty-icon { font-size: 38px !important; margin-bottom: 10px !important; opacity: .4 !important; display: block !important; }
#xca-portal .xca-empty h2 { font-size: 16px !important; font-weight: 600 !important; margin-bottom: 6px !important; color: var(--text) !important; }
#xca-portal .xca-empty p  { color: var(--text-2) !important; font-size: 13px !important; max-width: 300px !important; margin: 0 auto !important; line-height: 1.6 !important; }

/* ════════════════════════════════════════════════════════════════
   EMBED CODE
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-embed-card { position: relative !important; }
#xca-portal .xca-embed-badge { position: absolute !important; top: 18px !important; right: 18px !important; background: var(--bg) !important; color: var(--text-2) !important; border: 1px solid var(--border) !important; border-radius: 5px !important; font-size: 11px !important; font-weight: 700 !important; padding: 2px 8px !important; }
#xca-portal .xca-embed-card h2 { font-size: 15px !important; font-weight: 600 !important; margin-bottom: 6px !important; }
#xca-portal .xca-embed-card > p { font-size: 13px !important; color: var(--text-2) !important; margin-bottom: 12px !important; line-height: 1.6 !important; }
#xca-portal .xca-code-block { background: #0f172a !important; border-radius: var(--r) !important; overflow: hidden !important; margin-bottom: 12px !important; }
#xca-portal .xca-code-header { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 8px 13px !important; border-bottom: 1px solid rgba(255,255,255,.06) !important; }
#xca-portal .xca-code-header span { font-size: 11px !important; color: #64748b !important; font-weight: 600 !important; font-family: monospace !important; }
#xca-portal .xca-copy-code { background: rgba(255,255,255,.07) !important; color: #94a3b8 !important; border: 1px solid rgba(255,255,255,.09) !important; border-radius: 5px !important; padding: 3px 10px !important; font-size: 12px !important; cursor: pointer !important; font-weight: 600 !important; }
#xca-portal .xca-copy-code:hover { background: rgba(255,255,255,.14) !important; color: #fff !important; }
#xca-portal .xca-code-area { width: 100% !important; background: transparent !important; color: #7dd3fc !important; border: none !important; padding: 12px !important; font-family: monospace !important; font-size: 12px !important; line-height: 1.7 !important; resize: none !important; }
#xca-portal .xca-embed-steps { background: var(--bg) !important; border: 1px solid var(--border) !important; border-radius: var(--r) !important; padding: 13px 16px !important; }
#xca-portal .xca-embed-steps h4 { font-size: 12px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .05em !important; color: var(--text-2) !important; margin-bottom: 8px !important; }
#xca-portal .xca-embed-steps ol { padding-left: 16px !important; }
#xca-portal .xca-embed-steps li { font-size: 13px !important; color: var(--text-2) !important; margin-bottom: 5px !important; line-height: 1.5 !important; }
#xca-portal .xca-embed-steps code { background: var(--border) !important; padding: 1px 5px !important; border-radius: 4px !important; font-size: 12px !important; }

/* ════════════════════════════════════════════════════════════════
   ACCOUNT / STATUS / INFO
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-info-table { width: 100% !important; border-collapse: collapse !important; font-size: 13px !important; }
#xca-portal .xca-info-table td { padding: 9px 0 !important; border-bottom: 1px solid var(--border-sub) !important; vertical-align: middle !important; }
#xca-portal .xca-info-table td:first-child { color: var(--text-3) !important; width: 120px !important; font-weight: 600 !important; font-size: 12px !important; text-transform: uppercase !important; letter-spacing: .04em !important; }
#xca-portal .xca-info-table tr:last-child td { border-bottom: none !important; }
#xca-portal .xca-status-checks { display: flex !important; flex-direction: column !important; gap: 9px !important; }
#xca-portal .xca-status-row { display: flex !important; align-items: center !important; gap: 9px !important; }
#xca-portal .xca-status-dot { font-size: 16px !important; flex-shrink: 0 !important; }
#xca-portal .xca-status-row strong { display: block !important; font-size: 13px !important; font-weight: 600 !important; color: var(--text) !important; }
#xca-portal .xca-status-row small  { display: block !important; font-size: 12px !important; color: var(--text-3) !important; }

/* ════════════════════════════════════════════════════════════════
   SETTINGS SECTION NAV
   ════════════════════════════════════════════════════════════════ */
html { scroll-behavior: smooth; }
#xca-portal .xca-anchor-target { scroll-margin-top: 80px; }
#xca-portal .xca-portal-section-nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 40 !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(10px) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 10px 24px !important;
  margin: 0 0 14px !important;
  width: 100% !important;
}
#xca-portal .xca-section-nav-title { font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .07em !important; color: var(--text-3) !important; margin-bottom: 6px !important; }
#xca-portal .xca-section-nav-links { display: flex !important; flex-wrap: wrap !important; gap: 5px !important; }
#xca-portal .xca-section-nav-links a {
  display: inline-flex !important;
  align-items: center !important;
  padding: 4px 11px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  border: 1px solid var(--border) !important;
  background: var(--bg) !important;
  color: var(--text-2) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  transition: all .12s !important;
}
#xca-portal .xca-section-nav-links a:hover {
  border-color: var(--brand) !important;
  background: var(--brand-light) !important;
  color: var(--brand) !important;
}

/* ════════════════════════════════════════════════════════════════
   SCAN EDITOR
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-scan-editor-grid { display: grid !important; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)) !important; gap: 10px !important; }
#xca-portal .xca-scan-editor-card { border: 1px solid var(--border) !important; border-radius: var(--r) !important; background: var(--surface) !important; padding: 13px !important; }
#xca-portal .xca-scan-editor-head { display: flex !important; flex-direction: column !important; gap: 5px !important; margin-bottom: 9px !important; }
#xca-portal .xca-scan-editor-head strong { font-size: 13px !important; font-weight: 600 !important; color: var(--text) !important; }
#xca-portal .xca-scan-editor-head code { font-size: 11px !important; color: var(--text-3) !important; background: var(--bg) !important; border-radius: 5px !important; padding: 2px 6px !important; word-break: break-word !important; }

/* ════════════════════════════════════════════════════════════════
   LOGIN SCREEN
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-login-wrap {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 40px 20px !important;
  background: var(--bg) !important;
  z-index: 9999 !important;
  overflow-y: auto !important;
}
#xca-portal .xca-login-box {
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--r-lg) !important;
  padding: 40px 36px !important;
  width: 100% !important;
  max-width: 400px !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.08) !important;
}
#xca-portal .xca-login-logo { width: 52px !important; height: 52px !important; border-radius: var(--r) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto 20px !important; }
#xca-portal .xca-login-box h1 { font-size: 20px !important; font-weight: 700 !important; letter-spacing: -.3px !important; margin-bottom: 5px !important; text-align: center !important; color: var(--text) !important; }
#xca-portal .xca-login-box > p { font-size: 13px !important; color: var(--text-2) !important; margin-bottom: 24px !important; text-align: center !important; }
#xca-portal .xca-login-help { font-size: 12px !important; color: var(--text-3) !important; margin-top: 16px !important; text-align: center !important; }
#xca-portal .xca-kicker { display: inline-block !important; margin-bottom: 10px !important; padding: 4px 11px !important; border-radius: 999px !important; background: var(--brand-light) !important; color: var(--brand) !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .06em !important; text-transform: uppercase !important; }
#xca-portal .xca-password-setup-card { border: 1px solid var(--border) !important; border-radius: var(--r-lg) !important; background: var(--surface) !important; padding: 22px !important; margin-bottom: 14px !important; box-shadow: var(--sh-sm) !important; }
#xca-portal .xca-password-setup-head { display: flex !important; gap: 12px !important; justify-content: space-between !important; align-items: flex-start !important; margin-bottom: 16px !important; flex-wrap: wrap !important; }
#xca-portal .xca-password-setup-head h2 { font-size: 18px !important; font-weight: 700 !important; color: var(--text) !important; }
#xca-portal .xca-password-setup-head p  { font-size: 13px !important; color: var(--text-2) !important; line-height: 1.6 !important; max-width: 500px !important; }
#xca-portal .xca-password-chip { display: inline-flex !important; align-items: center !important; gap: 7px !important; padding: 8px 11px !important; border-radius: var(--r) !important; background: var(--bg) !important; border: 1px solid var(--border) !important; color: var(--text) !important; font-size: 13px !important; font-weight: 600 !important; }
#xca-portal .xca-password-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 11px !important; margin-bottom: 11px !important; }
#xca-portal .xca-password-tips { display: flex !important; gap: 12px !important; flex-wrap: wrap !important; margin: 4px 0 12px !important; color: var(--text-2) !important; font-size: 12px !important; font-weight: 600 !important; }
#xca-portal #xca-toggle-pass { position: absolute !important; right: 9px !important; top: 50% !important; transform: translateY(-50%) !important; background: none !important; border: none !important; cursor: pointer !important; font-size: 14px !important; color: var(--text-3) !important; }

/* ════════════════════════════════════════════════════════════════
   MISC
   ════════════════════════════════════════════════════════════════ */
#xca-portal .xca-help-icon { display: inline-block !important; margin-left: 5px !important; font-weight: 700 !important; color: var(--text-3) !important; cursor: help !important; font-size: 11px !important; }
#xca-portal .xca-mobile-signout { display: none !important; }

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
  #xca-portal { left: 0 !important; right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; max-width: 100% !important; }
  #xca-portal.xca-portal:not(.xca-login-wrap *) { display: block !important; }
  #xca-portal .xca-sidebar { width: 100% !important; height: auto !important; position: sticky !important; top: 0 !important; flex-direction: row !important; align-items: center !important; padding: 10px 12px !important; overflow-x: auto !important; overflow-y: hidden !important; z-index: 100 !important; }
  #xca-portal .xca-sidebar-brand { padding: 0 !important; border-bottom: none !important; flex-shrink: 0 !important; }
  #xca-portal .xca-sidebar-name small { display: none !important; }
  #xca-portal .xca-nav { flex-direction: row !important; padding: 0 !important; flex: 1 !important; overflow-x: auto !important; gap: 2px !important; }
  #xca-portal .xca-nav li { margin-bottom: 0 !important; }
  #xca-portal .xca-nav-link { padding: 6px 10px !important; font-size: 12px !important; gap: 5px !important; white-space: nowrap !important; }
  #xca-portal .xca-sidebar-footer { display: none !important; }
  #xca-portal .xca-mobile-signout { display: block !important; }
  #xca-portal .xca-stats-row { grid-template-columns: 1fr 1fr !important; }
  #xca-portal .xca-two-col-even { grid-template-columns: 1fr !important; }
  #xca-portal .xca-form-grid { grid-template-columns: 1fr !important; }
  #xca-portal .xca-field-full { grid-column: span 1 !important; }
  #xca-portal .xca-main .xca-tab-header ~ * { padding-left: 14px !important; padding-right: 14px !important; }
  #xca-portal .xca-main .xca-tab-header ~ .xca-card,
  #xca-portal .xca-main .xca-tab-header ~ div,
  #xca-portal .xca-main .xca-tab-header ~ .xca-stats-row,
  #xca-portal .xca-main .xca-tab-header ~ .xca-two-col-even { margin-left: 0 !important; margin-right: 0 !important; width: 100% !important; }
  #xca-portal .xca-tab-header { padding: 16px 14px 14px !important; }
  #xca-portal .xca-portal-section-nav { padding: 9px 14px !important; position: static !important; }
}
@media (max-width: 600px) {
  #xca-portal .xca-stats-row { grid-template-columns: 1fr 1fr !important; }
  #xca-portal .xca-leads-grid { grid-template-columns: 1fr !important; }
  #xca-portal .xca-chat-row { grid-template-columns: 1fr !important; gap: 7px !important; }
  #xca-portal .xca-login-box { padding: 28px 20px !important; }
  #xca-portal .xca-password-grid { grid-template-columns: 1fr !important; }
}

/* ── Modal scroll lock (body class added when modal opens) ──── */
body.xca-modal-open {
  overflow: hidden !important;
}

/* ── Transcript modal when teleported to <body> by JS ───────── */
/* These rules must work even when #xca-modal is NOT inside #xca-portal */
body > #xca-transcript-modal {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,.5) !important;
  z-index: 2147483647 !important;
  display: none;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
body > #xca-transcript-modal .xca-modal-box {
  background: #ffffff !important;
  border-radius: 12px !important;
  width: 560px !important;
  max-width: calc(100vw - 40px) !important;
  max-height: 80vh !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.2) !important;
}
body > #xca-transcript-modal .xca-modal-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 15px 20px !important;
  border-bottom: 1px solid #e2e4e8 !important;
  flex-shrink: 0 !important;
}
body > #xca-transcript-modal .xca-modal-header h3 {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a1d23 !important;
  margin: 0 !important;
}
body > #xca-transcript-modal .xca-modal-close {
  background: none !important;
  border: none !important;
  font-size: 18px !important;
  cursor: pointer !important;
  color: #9ba3b2 !important;
  padding: 4px 8px !important;
  border-radius: 6px !important;
  line-height: 1 !important;
}
body > #xca-transcript-modal .xca-modal-body {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 16px 20px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
body > #xca-transcript-modal .xca-transcript-msg {
  max-width: 80% !important;
  padding: 9px 13px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  font-family: inherit !important;
}
body > #xca-transcript-modal .xca-transcript-msg.user {
  background: #3b5bdb !important;
  color: #fff !important;
  align-self: flex-end !important;
  border-radius: 12px 12px 3px 12px !important;
  margin-left: auto !important;
}
body > #xca-transcript-modal .xca-transcript-msg.assistant {
  background: #f4f5f7 !important;
  color: #1a1d23 !important;
  align-self: flex-start !important;
  border-radius: 12px 12px 12px 3px !important;
}
body > #xca-transcript-modal .xca-transcript-msg small {
  display: block !important;
  opacity: .6 !important;
  font-size: 11px !important;
  margin-top: 3px !important;
}

/* ════════════════════════════════════════════════════════════════
   PORTAL THEMES — selected via data-theme attribute on #xca-portal
   ════════════════════════════════════════════════════════════════ */

/* ── SLATE (default) — dark navy sidebar, indigo accent ──────── */
#xca-portal[data-theme="slate"] {
  --brand:       #3b5bdb;
  --brand-light: #eef2ff;
  --brand-hover: #2f4ac0;
  --sb-bg:       #1e2433;
  --sb-text:     #8892a4;
  --sb-hover:    rgba(255,255,255,.07);
  --sb-active:   rgba(255,255,255,.12);
}

/* ── DARK — charcoal sidebar, violet accent ───────────────────── */
#xca-portal[data-theme="dark"] {
  --brand:       #7c3aed;
  --brand-light: #f5f3ff;
  --brand-hover: #6d28d9;
  --sb-bg:       #18181b;
  --sb-text:     #71717a;
  --sb-hover:    rgba(255,255,255,.06);
  --sb-active:   rgba(255,255,255,.1);
  --bg:          #f1f1f0;
}

/* ── LIGHT — white sidebar, blue accent ───────────────────────── */
#xca-portal[data-theme="light"] {
  --brand:       #2563eb;
  --brand-light: #eff6ff;
  --brand-hover: #1d4ed8;
  --sb-bg:       #f8fafc;
  --sb-text:     #64748b;
  --sb-hover:    rgba(0,0,0,.05);
  --sb-active:   rgba(37,99,235,.1);
  --sb-active-text: #2563eb;
  --sb-border:   rgba(0,0,0,.08);
  --bg:          #f1f5f9;
}
/* Light theme: sidebar text needs to be visible on white */
#xca-portal[data-theme="light"] .xca-sidebar {
  border-right: 1px solid var(--sb-border) !important;
}
#xca-portal[data-theme="light"] .xca-sidebar-name strong { color: #1e293b !important; }
#xca-portal[data-theme="light"] .xca-nav-link.active { color: var(--brand) !important; }
#xca-portal[data-theme="light"] .xca-signout-btn { color: #64748b !important; }
#xca-portal[data-theme="light"] .xca-signout-btn:hover { background: rgba(0,0,0,.06) !important; color: #1e293b !important; }

/* ── FOREST — dark green sidebar, green accent ────────────────── */
#xca-portal[data-theme="forest"] {
  --brand:       #16a34a;
  --brand-light: #f0fdf4;
  --brand-hover: #15803d;
  --sb-bg:       #14291e;
  --sb-text:     #86a896;
  --sb-hover:    rgba(255,255,255,.07);
  --sb-active:   rgba(255,255,255,.11);
  --bg:          #f4f7f5;
}

/* ── Structural helpers — no unique visual styles, inherit from parents ── */
#xca-portal .xca-account-summary-card { text-align: left; }
#xca-portal .xca-onboarding-box { max-width: 720px; }
#xca-portal .xca-onboarding-intro { text-align: center; margin-bottom: 16px; }
#xca-portal .xca-password-form { margin: 0; }
#xca-portal .xca-stat-body { display: flex; flex-direction: column; gap: 2px; }
