﻿/* Shared portal chrome: typography tokens helpers, forms, pills, scrollbars.
   Loaded by customer portal-shell and admin-portal-shell. Keep one source of truth. */

/* ---------- Design tokens (supplement; shells may also set :root) ---------- */
:root {
  --cs-portal-bg0: #030303;
  --cs-portal-bg1: #0e0e0e;
  --cs-portal-bg2: #1a1012;
  --cs-portal-ink: #ececec;
  --cs-portal-muted: #a6a39e;
  --cs-portal-muted-soft: #968f88;
  --cs-portal-muted-dim: #7e7972;
  --cs-portal-ink-soft: #cfcac4;
  --cs-portal-accent: #e11d2e;
  --cs-portal-accent-deep: #b91020;
  --cs-portal-link: #e11d2e;
  --cs-portal-link-hover: #ff4d5c;
  --cs-portal-line: rgba(255, 255, 255, 0.07);
  --cs-portal-line-soft: rgba(255, 255, 255, 0.05);
  --cs-portal-panel: rgba(255, 255, 255, 0.028);
  --cs-portal-panel-strong: rgba(8, 8, 8, 0.45);
  --cs-portal-nav: rgba(0, 0, 0, 0.55);
  --cs-portal-ok: #3ecf8e;
  --cs-portal-hint-gap: 0.95rem;
  --cs-portal-btn-hint-gap: 1rem;
  --cs-portal-form-action-gap: 1.35rem;
  --cs-portal-field-gap: 1.2rem;
  --cs-portal-card-gap: 1.65rem;
  --cs-portal-section-gap: 1.85rem;
  --cs-portal-section-pad-y: 1.5rem;
  --cs-portal-section-pad-x: 1.55rem;
  --cs-portal-status-gap: 1.15rem;
  --cs-portal-lead-gap: var(--cs-portal-card-gap);
  --cs-portal-control-h: 2.5rem;
  --cs-portal-scroll-w: 13px;
  --cs-portal-scroll-thumb: rgba(225, 29, 46, 0.72);
  --cs-portal-scroll-thumb-hover: #e11d2e;
  --cs-portal-scroll-track: #161414;
}

/* ---------- Base page chrome (dark charcoal; shells may refine gradients) ---------- */
html, body {
  margin: 0;
  min-height: 100%;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--cs-portal-ink, #ececec);
  /* Solid fallback first: if gradient vars fail, canvas stays charcoal (never browser white). */
  background-color: #0e0e0e;
  background-image:
    radial-gradient(1400px 720px at 8% -8%, rgba(225, 29, 46, 0.28), transparent 58%),
    radial-gradient(1000px 560px at 92% 4%, rgba(225, 29, 46, 0.10), transparent 52%),
    radial-gradient(800px 480px at 70% 100%, rgba(40, 12, 16, 0.55), transparent 55%),
    radial-gradient(700px 400px at 50% 40%, rgba(48, 48, 48, 0.22), transparent 60%),
    linear-gradient(
      165deg,
      var(--cs-portal-bg0, #030303) 0%,
      var(--cs-portal-bg1, #0e0e0e) 42%,
      var(--cs-portal-bg2, #1a1012) 100%
    );
  background-attachment: scroll;
}

/* ---------- Fields / labels ---------- */
.cs-portal__field { margin: 0 0 var(--cs-portal-field-gap); }
.cs-portal__field label,
.cs-portal-form .cs-portal__field > label {
  display: block;
  font-size: 0.8rem;
  color: var(--cs-portal-muted);
  margin-bottom: 0.45rem;
  font-weight: 500;
}
.cs-portal-form .cs-portal__field { margin: 0 0 var(--cs-portal-field-gap); }

.cs-portal__field input[type="text"],
.cs-portal__field input[type="password"],
.cs-portal__field input[type="url"],
.cs-portal__field input[type="email"],
.cs-portal__field input[type="number"],
.cs-portal__field input[type="search"],
.cs-portal__field input[type="tel"],
.cs-portal__field input[type="color"],
.cs-portal__field textarea,
.cs-portal__field select,
.cs-portal-form select,
.cs-portal-table-size select,
.cs-portal-app select,
.cs-portal-login select {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  border: 1px solid #3a3d45;
  background-color: #121316;
  color: #f3f4f6;
  font-size: 0.95rem;
  font-family: inherit;
  line-height: 1.35;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  color-scheme: dark;
  box-shadow: none;
}
.cs-portal__field textarea { min-height: 6rem; resize: vertical; line-height: 1.45; }
.cs-portal__field input[type="color"] { padding: 0.25rem; height: 2.65rem; cursor: pointer; appearance: auto; -webkit-appearance: auto; }

.cs-portal__field select,
.cs-portal-form select,
.cs-portal-table-size select,
.cs-portal-table-toolbar .cs-portal-table-size select,
.cs-portal-app select,
.cs-portal-login select {
  background-color: #121316 !important;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23f3f4f6%22%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px top 55% !important;
  background-size: 16px 16px !important;
  padding: 0 32px 0 12px !important;
  border: 1px solid #3a3d45 !important;
  border-radius: 8px;
  color: #f3f4f6 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}
.cs-portal-table-size select,
.cs-portal-table-toolbar .cs-portal-table-size select {
  width: auto;
  min-width: 4.75rem;
  height: var(--cs-portal-control-h, 2.5rem);
  min-height: var(--cs-portal-control-h, 2.5rem);
  max-height: var(--cs-portal-control-h, 2.5rem);
  line-height: 1.25;
  font-size: 0.95rem;
}
.cs-portal__field select option,
.cs-portal-form select option,
.cs-portal-table-size select option,
.cs-portal-app select option {
  background-color: #1a1b1f;
  color: #f3f4f6;
}
.cs-portal__field input:focus,
.cs-portal__field textarea:focus,
.cs-portal__field select:focus,
.cs-portal-form select:focus,
.cs-portal-table-size select:focus,
.cs-portal-app select:focus,
.cs-portal-table-search:focus {
  outline: none;
  border-color: var(--cs-portal-accent);
  box-shadow: 0 0 0 1px var(--cs-portal-accent);
}
.cs-portal__field input:disabled,
.cs-portal__field textarea:disabled,
.cs-portal__field select:disabled,
.cs-portal-form select:disabled,
.cs-portal-app select:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Custom select (enhanced) */
.cs-portal-app .cs-select-wrap,
.cs-portal-login .cs-select-wrap {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  vertical-align: middle;
}
.cs-portal__field > .cs-select-wrap {
  width: 100%;
  max-width: none;
}
.cs-portal-table-size .cs-select-wrap {
  display: inline-block;
  width: auto;
  min-width: 4.75rem;
  max-width: 6.5rem;
  vertical-align: middle;
}
/* Account filter (admin Analytics / Users): full names; keep Status/Rows compact. */
.cs-portal-table-size:has(.cs-portal-account-filter) select.cs-portal-account-filter,
.cs-portal-table-size:has(.cs-portal-account-filter) .cs-select-wrap {
  min-width: 14rem;
  max-width: min(100vw - 2rem, 22rem);
}
.cs-portal-table-size:has(.cs-portal-account-filter) .cs-select-trigger {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cs-portal-table-size:has(.cs-portal-account-filter) .cs-select-menu {
  left: 0;
  right: auto;
  width: max-content;
  min-width: 100%;
  max-width: min(100vw - 2rem, 28rem);
}
.cs-portal-table-size:has(.cs-portal-account-filter) .cs-select-option {
  white-space: nowrap;
}
.cs-portal-app .cs-select-wrap .cs-select-native,
.cs-portal-login .cs-select-wrap .cs-select-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background-image: none !important;
}
.cs-portal-app .cs-select-trigger,
.cs-portal-login .cs-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 2.5rem;
  padding: 0 32px 0 12px !important;
  border: 1px solid #3a3d45 !important;
  border-radius: 8px !important;
  background-color: #121316 !important;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23f3f4f6%22%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px top 55% !important;
  background-size: 16px 16px !important;
  color: #f3f4f6 !important;
  font-size: 0.95rem;
  font-family: inherit;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  box-shadow: none !important;
  box-sizing: border-box;
  white-space: nowrap;
}
.cs-portal-app .cs-select-wrap.is-open .cs-select-trigger,
.cs-portal-app .cs-select-trigger:hover,
.cs-portal-app .cs-select-trigger:focus,
.cs-portal-login .cs-select-wrap.is-open .cs-select-trigger,
.cs-portal-login .cs-select-trigger:hover,
.cs-portal-login .cs-select-trigger:focus {
  border-color: var(--cs-portal-accent) !important;
  color: #fff !important;
  outline: none;
  box-shadow: 0 0 0 1px var(--cs-portal-accent);
}
.cs-portal-app .cs-select-menu,
.cs-portal-login .cs-select-menu {
  position: absolute;
  z-index: 100020;
  left: 0;
  right: 0;
  top: calc(100% + 4px);
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #1a1b1f;
  border: 1px solid #3a3d45;
  border-radius: 10px;
  box-shadow: 0 12px 28px rgba(0,0,0,0.45);
  max-height: 240px;
  overflow: auto;
}
.cs-portal-app .cs-select-option,
.cs-portal-login .cs-select-option {
  padding: 8px 10px;
  border-radius: 6px;
  color: #e5e7eb;
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.3;
  white-space: nowrap;
}
.cs-portal-app .cs-select-option.is-active,
.cs-portal-app .cs-select-option:hover,
.cs-portal-login .cs-select-option.is-active,
.cs-portal-login .cs-select-option:hover {
  background: var(--cs-portal-accent) !important;
  color: #fff !important;
}
.cs-portal-app .cs-select-option.is-selected:not(.is-active):not(:hover),
.cs-portal-login .cs-select-option.is-selected:not(.is-active):not(:hover) {
  background: rgba(225, 29, 46, 0.18);
  color: #fff;
}
.cs-portal-app .cs-select-option.is-disabled,
.cs-portal-login .cs-select-option.is-disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

/* Checkboxes / radios */
.cs-portal-app input[type="checkbox"],
.cs-portal-app input[type="radio"],
.cs-portal-login input[type="checkbox"],
.cs-portal-login input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 1.1rem;
  height: 1.1rem;
  margin: 0;
  flex: 0 0 auto;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.06);
  vertical-align: middle;
  cursor: pointer;
  accent-color: var(--cs-portal-accent);
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.cs-portal-app input[type="checkbox"],
.cs-portal-login input[type="checkbox"] {
  border-radius: 4px;
}
.cs-portal-app input[type="radio"],
.cs-portal-login input[type="radio"] {
  border-radius: 999px;
}
.cs-portal-app input[type="checkbox"]:hover,
.cs-portal-app input[type="radio"]:hover,
.cs-portal-login input[type="checkbox"]:hover,
.cs-portal-login input[type="radio"]:hover {
  border-color: rgba(225, 29, 46, 0.65);
}
.cs-portal-app input[type="checkbox"]:checked,
.cs-portal-app input[type="radio"]:checked,
.cs-portal-login input[type="checkbox"]:checked,
.cs-portal-login input[type="radio"]:checked {
  border-color: var(--cs-portal-accent);
  background-color: var(--cs-portal-accent);
  box-shadow: 0 0 0 2px rgba(225, 29, 46, 0.25);
}
.cs-portal-app input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.2l2.8 2.8 6.2-6.2'/%3E%3C/svg%3E");
  background-size: 0.85rem 0.85rem;
  background-position: center;
  background-repeat: no-repeat;
}
.cs-portal-app input[type="radio"]:checked {
  background-image: radial-gradient(circle, #fff 0 35%, transparent 38%);
}
.cs-portal-app input[type="checkbox"]:focus-visible,
.cs-portal-app input[type="radio"]:focus-visible,
.cs-portal-login input[type="checkbox"]:focus-visible,
.cs-portal-login input[type="radio"]:focus-visible {
  outline: 2px solid rgba(225, 29, 46, 0.55);
  outline-offset: 2px;
}
.cs-portal-app input[type="checkbox"]:disabled,
.cs-portal-app input[type="radio"]:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.cs-portal-check-row,
.cs-portal-check {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0.4rem 0 1rem;
  color: #d0d0d0;
  font-size: 0.9rem;
  line-height: 1.35;
  cursor: pointer;
  max-width: 36rem;
}
.cs-portal-check-row input,
.cs-portal-check input { margin-top: 0; }

.cs-portal__field input[type="number"] { -moz-appearance: textfield; }
.cs-portal__field input[type="number"]::-webkit-outer-spin-button,
.cs-portal__field input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Hints */
.cs-portal-field-hint,
.cs-portal__hint {
  margin: var(--cs-portal-hint-gap) 0 0;
  font-size: 0.75rem;
  color: var(--cs-portal-muted-dim);
  line-height: 1.45;
}
.cs-portal__field > .cs-portal-field-hint,
.cs-portal__field > .cs-portal__hint {
  margin-top: var(--cs-portal-hint-gap);
}
.cs-portal-btn-hint {
  margin: var(--cs-portal-btn-hint-gap) 0 0;
  font-size: 0.75rem;
  color: var(--cs-portal-muted-dim);
  line-height: 1.45;
}
.cs-portal__btn + .cs-portal-btn-hint,
.cs-portal__btn + .cs-portal__hint {
  margin-top: var(--cs-portal-btn-hint-gap);
}
.cs-portal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}
.cs-portal-form .cs-portal__actions,
.cs-portal__field + .cs-portal__actions,
.cs-portal__hint + .cs-portal__btn,
.cs-portal-field-hint + .cs-portal__btn,
.cs-portal-btn-hint + .cs-portal__btn,
.cs-portal__field + .cs-portal__btn {
  margin-top: var(--cs-portal-form-action-gap);
}

/* Buttons */
.cs-portal__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.55rem 1.1rem;
  border: 1px solid #ff6b78;
  border-radius: 10px;
  background: #e11d2e;
  color: #fff;
  font-weight: 600;
  font-size: 0.95rem;
  font-family: inherit;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 150ms ease, border-color 150ms ease;
  text-decoration: none;
}
.cs-portal__btn:hover:not(.cs-portal__btn--ghost):not(.cs-portal__btn--secondary) {
  background: #f1283a;
  border-color: #ff8490;
  color: #fff;
  transform: none;
  box-shadow: none;
}
.cs-portal__btn:active:not(.cs-portal__btn--ghost):not(.cs-portal__btn--secondary) {
  background: #c91828;
  border-color: #ff6b78;
  color: #fff;
  transform: none;
  box-shadow: none;
}
.cs-portal__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.cs-portal__btn--sm {
  width: auto;
  min-height: 2.35rem;
  padding: 0 1.1rem;
  font-size: 0.88rem;
}
.cs-portal__btn--secondary,
.cs-portal__btn--ghost {
  background: #1c1e24;
  border: 1px solid #3a3d45;
  color: #f0f0f0;
  box-shadow: none;
}
.cs-portal__btn--secondary:hover,
.cs-portal__btn--ghost:hover {
  background: #252830;
  border-color: #4a4d55;
  color: #fff;
  transform: none;
  box-shadow: none;
}
.cs-portal__btn--secondary:active,
.cs-portal__btn--ghost:active {
  transform: none;
  box-shadow: none;
}
.cs-portal__btn--danger {
  background: transparent;
  border: 1px solid rgba(225, 29, 46, 0.55);
  color: #ff7a86;
}
.cs-portal__btn--danger:hover {
  background: rgba(225, 29, 46, 0.12);
  border-color: rgba(225, 29, 46, 0.75);
  color: #ff9aa3;
}
.cs-portal__btn.is-disabled,
.cs-portal__btn--ghost.is-disabled,
.cs-portal__btn--secondary.is-disabled,
.cs-portal__btn:disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Login keeps full-width; admin shell overrides app buttons to auto */
.cs-portal-login .cs-portal__btn { width: 100%; }

/* Table search chrome (parity with field inputs) */
.cs-portal-table-search {
  border-radius: 8px;
  border: 1px solid #3a3d45;
  background: #121316;
  color: #f3f4f6;
  font-size: 0.95rem;
  font-family: inherit;
  box-sizing: border-box;
}
.cs-portal-table-search:hover { border-color: #4a4d55; }
.cs-portal-table-search::placeholder {
  color: var(--cs-portal-muted-dim);
  opacity: 1;
}

/* ---------- Section-nav + filter pills (one selected + one idle style) ----------
   Selected = soft-red box (Create bot / admin). Idle = bordered filter chrome + hover.
   Applies to Look, Settings, Leads, Analytics, Knowledge filters, admin section-nav. */
.cs-portal-section-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.15rem;
  padding-bottom: 0.15rem;
}
.cs-portal-section-nav .cs-portal-chip,
.cs-portal-section-nav button.cs-portal-chip,
.cs-portal-section-nav a.cs-portal-chip,
.cs-portal-section-nav--filters .cs-portal-chip,
.cs-portal-section-nav--filters button.cs-portal-chip,
.cs-portal-section-nav--filters a.cs-portal-chip,
.cs-portal-chips--filters a.cs-portal-chip {
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 500;
  color: #a8a8a8;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  padding: 0.4rem 0.85rem;
  text-decoration: none;
  box-shadow: none;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.cs-portal-chips--filters a.cs-portal-chip {
  border-radius: 6px;
  padding: 0.25rem 0.55rem;
  font-size: 0.78rem;
}
.cs-portal-section-nav .cs-portal-chip:hover,
.cs-portal-section-nav button.cs-portal-chip:hover,
.cs-portal-section-nav a.cs-portal-chip:hover,
.cs-portal-section-nav--filters .cs-portal-chip:hover,
.cs-portal-section-nav--filters button.cs-portal-chip:hover,
.cs-portal-section-nav--filters a.cs-portal-chip:hover,
.cs-portal-chips--filters a.cs-portal-chip:hover {
  color: #ececec;
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.18);
}
/* Soft-red selected (readable #ffc9c9 ink on charcoal; not filled solid tab) */
.cs-portal-section-nav .cs-portal-chip--active,
.cs-portal-section-nav button.cs-portal-chip--active,
.cs-portal-section-nav a.cs-portal-chip--active,
.cs-portal-section-nav--filters .cs-portal-chip--active,
.cs-portal-section-nav--filters button.cs-portal-chip--active,
.cs-portal-section-nav--filters a.cs-portal-chip--active,
.cs-portal-chips--filters a.cs-portal-chip--active,
.cs-portal-chip--active {
  color: #ffc9c9 !important;
  background: rgba(225, 29, 46, 0.14) !important;
  border-color: #ff6b78 !important;
  font-weight: 600;
  box-shadow: none;
}
.cs-portal-section-nav .cs-portal-chip--active:hover,
.cs-portal-section-nav button.cs-portal-chip--active:hover,
.cs-portal-section-nav a.cs-portal-chip--active:hover,
.cs-portal-section-nav--filters .cs-portal-chip--active:hover,
.cs-portal-section-nav--filters button.cs-portal-chip--active:hover,
.cs-portal-section-nav--filters a.cs-portal-chip--active:hover,
.cs-portal-chips--filters a.cs-portal-chip--active:hover {
  color: #ffd6d6 !important;
  background: rgba(225, 29, 46, 0.18) !important;
  border-color: #ff8490 !important;
}

/* ---------- Branded scrollbars (~13px) ---------- */
.cs-portal-app,
.cs-portal-sidebar,
.cs-portal-nav,
.cs-portal-main,
.cs-portal-picker,
.cs-portal-url-list,
.cs-portal-display-list,
.cs-portal-table-wrap {
  scrollbar-width: auto;
  scrollbar-color: var(--cs-portal-scroll-thumb) var(--cs-portal-scroll-track);
}
.cs-portal-app::-webkit-scrollbar,
.cs-portal-sidebar::-webkit-scrollbar,
.cs-portal-nav::-webkit-scrollbar,
.cs-portal-main::-webkit-scrollbar,
.cs-portal-picker::-webkit-scrollbar,
.cs-portal-url-list::-webkit-scrollbar,
.cs-portal-display-list::-webkit-scrollbar,
.cs-portal-table-wrap::-webkit-scrollbar {
  width: var(--cs-portal-scroll-w);
  height: var(--cs-portal-scroll-w);
}
.cs-portal-app::-webkit-scrollbar-track,
.cs-portal-sidebar::-webkit-scrollbar-track,
.cs-portal-nav::-webkit-scrollbar-track,
.cs-portal-main::-webkit-scrollbar-track,
.cs-portal-picker::-webkit-scrollbar-track,
.cs-portal-url-list::-webkit-scrollbar-track,
.cs-portal-display-list::-webkit-scrollbar-track,
.cs-portal-table-wrap::-webkit-scrollbar-track {
  background: var(--cs-portal-scroll-track);
  border-radius: 999px;
}
.cs-portal-app::-webkit-scrollbar-thumb,
.cs-portal-sidebar::-webkit-scrollbar-thumb,
.cs-portal-nav::-webkit-scrollbar-thumb,
.cs-portal-main::-webkit-scrollbar-thumb,
.cs-portal-picker::-webkit-scrollbar-thumb,
.cs-portal-url-list::-webkit-scrollbar-thumb,
.cs-portal-display-list::-webkit-scrollbar-thumb,
.cs-portal-table-wrap::-webkit-scrollbar-thumb {
  background: var(--cs-portal-scroll-thumb);
  border-radius: 999px;
  border: 1px solid transparent;
  background-clip: padding-box;
}
.cs-portal-app::-webkit-scrollbar-thumb:hover,
.cs-portal-sidebar::-webkit-scrollbar-thumb:hover,
.cs-portal-nav::-webkit-scrollbar-thumb:hover,
.cs-portal-main::-webkit-scrollbar-thumb:hover,
.cs-portal-picker::-webkit-scrollbar-thumb:hover,
.cs-portal-url-list::-webkit-scrollbar-thumb:hover,
.cs-portal-display-list::-webkit-scrollbar-thumb:hover,
.cs-portal-table-wrap::-webkit-scrollbar-thumb:hover {
  background: var(--cs-portal-scroll-thumb-hover);
  background-clip: padding-box;
}
.cs-portal-app::-webkit-scrollbar-corner,
.cs-portal-sidebar::-webkit-scrollbar-corner,
.cs-portal-nav::-webkit-scrollbar-corner,
.cs-portal-main::-webkit-scrollbar-corner,
.cs-portal-picker::-webkit-scrollbar-corner,
.cs-portal-url-list::-webkit-scrollbar-corner,
.cs-portal-display-list::-webkit-scrollbar-corner,
.cs-portal-table-wrap::-webkit-scrollbar-corner {
  background: var(--cs-portal-scroll-track);
}

/* ---------- Sidebar foot (user block + Sign out) — customer + admin ---------- */
.cs-portal-sidebar__foot {
  margin-top: auto;
  flex: 0 0 auto;
  padding: 1.15rem 0.85rem 1.15rem;
  border-top: 1px solid var(--cs-portal-line);
  font-size: 0.8rem;
  color: #a8a8a8;
}
.cs-portal-sidebar__foot-user {
  display: block;
  min-width: 0;
}
.cs-portal-sidebar__foot strong {
  display: block;
  color: #f2f2f2;
  font-weight: 700;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
  line-height: 1.3;
  word-break: break-word;
}
.cs-portal-sidebar__foot-meta {
  color: #9a9a9a;
  font-size: 0.75rem;
  line-height: 1.35;
  margin: 0;
  word-break: break-word;
}
.cs-portal-sidebar__foot-actions {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.95rem;
}
.cs-portal-sidebar__foot a {
  color: #d4d4d4;
  text-decoration: none;
  font-weight: 500;
}
.cs-portal-sidebar__foot a:hover { color: #fff; }
.cs-portal-sidebar__foot a.cs-portal-wpadmin,
.cs-portal-sidebar__foot a.cs-portal-signout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  font-weight: 600;
  font-size: 0.88rem;
  line-height: 1.25;
  min-height: 2.35rem;
  padding: 0.7rem 0.9rem;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
/*
 * Staff portal / WP Admin: identical to Clear chatbot knowledge (ghost gray).
 * Zero red accent on rest/hover/focus/active (beat primary btn + admin a:hover).
 */
.cs-portal-sidebar__foot a.cs-portal-wpadmin,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--ghost,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--secondary,
.cs-portal-sidebar__foot a.cs-portal-wpadmin:visited {
  color: #f0f0f0 !important;
  border: 1px solid #3a3d45 !important;
  background: #1c1e24 !important;
  box-shadow: none !important;
  outline: none;
}
.cs-portal-sidebar__foot a.cs-portal-wpadmin:hover,
.cs-portal-sidebar__foot a.cs-portal-wpadmin:active,
.cs-portal-sidebar__foot a.cs-portal-wpadmin:focus,
.cs-portal-sidebar__foot a.cs-portal-wpadmin:focus-visible,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn:hover,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn:active,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn:focus,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn:focus-visible,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--ghost:hover,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--ghost:active,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--ghost:focus,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--ghost:focus-visible,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--secondary:hover,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--secondary:active,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--secondary:focus,
.cs-portal-sidebar__foot a.cs-portal-wpadmin.cs-portal__btn--secondary:focus-visible {
  color: #fff !important;
  background: #252830 !important;
  border-color: #4a4d55 !important;
  transform: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.cs-portal-sidebar__foot a.cs-portal-wpadmin:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 2px;
}
.cs-portal-sidebar__foot a.cs-portal-signout {
  color: #ff4d57;
  border: 1px solid #ff6b78;
  background: rgba(225, 29, 46, 0.12);
}
.cs-portal-sidebar__foot a.cs-portal-signout:hover {
  color: #fff;
  background: #e11d2e;
  border-color: #ff8490;
}
.cs-portal-sidebar__foot a.cs-portal-signout:focus-visible {
  outline: 2px solid rgba(225, 29, 46, 0.65);
  outline-offset: 2px;
}

/* ---------- Sticky table headers (scroll containers only) ---------- */
.cs-portal-table-wrap,
.cs-portal-picker {
  scrollbar-gutter: stable;
}
.cs-portal-table-wrap > .cs-portal-table,
.cs-portal-picker > .cs-portal-table,
.cs-portal-picker .cs-portal-table {
  border-collapse: separate;
  border-spacing: 0;
}
.cs-portal-table-wrap thead th,
.cs-portal-picker thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  /* Opaque so rows do not bleed through while scrolling */
  background: #121316;
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--cs-portal-line, rgba(255, 255, 255, 0.07));
}
/* Shared edge padding so first/last cols clear the soft panel edge */
.cs-portal-table th:first-child,
.cs-portal-table td:first-child {
  padding-left: 1rem;
}
.cs-portal-table th:last-child,
.cs-portal-table td:last-child {
  padding-right: 1rem;
}

/* ---------- Actions menus: native details dropdown (no JS / no teleport) ---------- */
.cs-admin-actions-menu {
  position: relative;
  display: inline-block;
  max-width: 100%;
  overflow: visible;
}
.cs-admin-actions-menu > summary {
  list-style: none;
  cursor: pointer;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
  padding-left: 0.7rem;
  padding-right: 0.7rem;
  white-space: nowrap;
}
.cs-admin-actions-menu > summary::-webkit-details-marker { display: none; }
.cs-admin-actions-menu > .cs-admin-actions-menu__panel {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: auto;
  z-index: 40;
  min-width: 12.5rem;
  padding: 0.35rem;
  border-radius: 8px;
  border: 1px solid var(--cs-portal-line, rgba(255,255,255,0.07));
  background: #121316;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
  box-sizing: border-box;
}
.cs-admin-actions-menu[open] > .cs-admin-actions-menu__panel {
  display: flex;
}
/* Last rows: open upward so the menu is not clipped by the table/main scrollport. */
.cs-portal-table tr:last-child .cs-admin-actions-menu[open] > .cs-admin-actions-menu__panel,
.cs-portal-table tbody tr:nth-last-child(-n+2) .cs-admin-actions-menu[open] > .cs-admin-actions-menu__panel {
  top: auto;
  bottom: calc(100% + 4px);
}
.cs-portal-table th.cs-portal-col-action,
.cs-portal-table td.cs-portal-col-action {
  overflow: visible;
  position: relative;
}
.cs-portal-table tr:has(.cs-admin-actions-menu[open]) {
  position: relative;
  z-index: 6;
}
/* Inner table scroll clips absolute menus; drop the clip while a menu is open. */
.cs-portal-table-wrap:has(.cs-admin-actions-menu[open]) {
  overflow: visible;
  max-height: none;
}
/* Full-width menu rows (beats .cs-portal__btn--sm { width: auto } and form-wrapped buttons) */
.cs-admin-actions-menu__panel .cs-portal__btn,
.cs-admin-actions-menu__panel .cs-portal__btn--sm,
.cs-admin-actions-menu__panel a.cs-portal__btn,
.cs-admin-actions-menu__panel button.cs-portal__btn {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  justify-content: flex-start;
  text-align: left;
  margin: 0;
}
.cs-admin-actions-menu__panel form {
  margin: 0;
  width: 100%;
  display: block;
}

/* ---------- Top-right account chrome (customer + admin) ---------- */
.cs-portal-account {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  min-width: 0;
  flex: 1 1 auto;
}
.cs-portal-account__cluster {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.18rem;
  min-width: 0;
}
.cs-portal-account__cluster--bot {
  align-items: flex-start;
}
.cs-portal-account__cluster-label {
  display: block;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a8a8a;
  line-height: 1;
  user-select: none;
  pointer-events: none;
}
.cs-portal-account__divider {
  display: block;
  flex: 0 0 auto;
  width: 1px;
  align-self: stretch;
  min-height: 2.35rem;
  margin: 0 0.15rem;
  background: rgba(255, 255, 255, 0.14);
}
.cs-portal-account__bot {
  min-width: 0;
  max-width: min(16rem, 42vw);
}
.cs-portal-account__bot-name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-width: 0;
  max-width: 100%;
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: #ececec;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  box-sizing: border-box;
}
.cs-portal-bot-menu,
.cs-portal-user-menu {
  position: relative;
  min-width: 0;
  max-width: 100%;
}
.cs-portal-bot-menu > summary,
.cs-portal-user-menu > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  max-width: 100%;
  min-height: 2.15rem;
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: #ececec;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  box-sizing: border-box;
}
.cs-portal-bot-menu > summary::-webkit-details-marker,
.cs-portal-user-menu > summary::-webkit-details-marker {
  display: none;
}
.cs-portal-bot-menu > summary:hover,
.cs-portal-user-menu > summary:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}
.cs-portal-bot-menu > summary:focus-visible,
.cs-portal-user-menu > summary:focus-visible,
.cs-portal-account__logout:focus-visible {
  outline: 2px solid rgba(225, 29, 46, 0.55);
  outline-offset: 2px;
}
.cs-portal-bot-menu__summary-text,
.cs-portal-bot-menu__item-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-width: 0;
  flex: 1 1 auto;
}
.cs-portal-bot-menu__label,
.cs-portal-user-menu__label,
.cs-portal-bot-menu__item-name {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cs-portal-bot-menu__host,
.cs-portal-bot-menu__item-host {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--cs-portal-muted-dim, #7e7972);
}
.cs-portal-bot-menu > summary:hover .cs-portal-bot-menu__host,
.cs-portal-bot-menu__panel a:hover .cs-portal-bot-menu__item-host {
  color: var(--cs-portal-muted, #a6a39e);
}
.cs-portal-account__chev {
  flex: 0 0 auto;
  width: 0.85rem;
  height: 0.85rem;
  opacity: 0.7;
}
.cs-portal-account__chev svg {
  display: block;
  width: 100%;
  height: 100%;
}
.cs-portal-bot-menu__panel,
.cs-portal-user-menu__panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 80;
  min-width: max(100%, 12rem);
  max-width: min(22rem, 90vw);
  max-height: min(70vh, 22rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.35rem;
  border-radius: 10px;
  border: 1px solid var(--cs-portal-line, rgba(255, 255, 255, 0.07));
  background: #121316;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5);
  box-sizing: border-box;
}
.cs-portal-bot-menu__search {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 0.35rem;
  padding: 0.45rem 0.65rem;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.35);
  color: #ececec;
  font-size: 0.8rem;
  line-height: 1.3;
}
.cs-portal-bot-menu__search::placeholder {
  color: #8a8a8a;
}
.cs-portal-bot-menu__search:focus {
  outline: 2px solid rgba(225, 29, 46, 0.45);
  outline-offset: 1px;
}
.cs-portal-bot-menu__panel a[hidden] {
  display: none !important;
}
.cs-portal-bot-menu__panel a .cs-portal-bot-menu__item-meta {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--cs-portal-muted-dim, #7e7972);
}
.cs-portal-bot-menu__panel a,
.cs-portal-user-menu__panel a {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  box-sizing: border-box;
  padding: 0.55rem 0.7rem;
  border-radius: 7px;
  color: #d4d4d4 !important;
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 500;
  line-height: 1.3;
}
.cs-portal-bot-menu__panel a:hover,
.cs-portal-user-menu__panel a:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff !important;
}
.cs-portal-bot-menu__panel a.is-current {
  background: rgba(225, 29, 46, 0.16);
  color: #fff;
  font-weight: 600;
}
.cs-portal-bot-menu__panel a.cs-portal-bot-menu__all {
  margin-top: 0.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 0 0 7px 7px;
  color: #a8a8a8;
  font-size: 0.78rem;
  font-weight: 600;
}
.cs-portal-bot-menu__panel a.cs-portal-bot-menu__all:hover {
  color: #fff;
}
.cs-portal-user-menu__panel a.cs-portal-user-menu__signout {
  color: #ff4d57 !important;
  font-weight: 600;
}
.cs-portal-user-menu__panel a.cs-portal-user-menu__signout:hover {
  background: rgba(225, 29, 46, 0.16);
  color: #fff !important;
}
.cs-portal-account__identity {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 10rem;
  color: #f2f2f2;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cs-portal-account__logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 8px;
  border: 1px solid rgba(255, 107, 120, 0.45);
  background: rgba(225, 29, 46, 0.12);
  color: #ff4d57 !important;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}
.cs-portal-account__logout:hover {
  color: #fff !important;
  background: #e11d2e;
  border-color: #ff8490;
}
.cs-portal-account__logout svg {
  display: block;
  width: 1.05rem;
  height: 1.05rem;
}
.cs-portal-account-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
  margin: -0.35rem 0 1.1rem;
  min-width: 0;
}
