/**
 * ClientStreamHub SaaS — light (:root) + dark (html[data-theme="dark"]).
 * v3 — full responsive + visual polish.
 */

/* ─── Design tokens ──────────────────────────────────────────── */
:root {
  color-scheme: light;

  --csh-bg:              #f4f6fb;
  --csh-bg-soft:         #ffffff;
  --csh-sidebar:         #0f172a;
  --csh-sidebar-text:    #f1f5f9;
  --csh-sidebar-muted:   #94a3b8;
  --csh-sidebar-link:    #cbd5e1;
  --csh-sidebar-active:  rgba(99,102,241,.22);
  --csh-sidebar-active-border: #6366f1;
  --csh-text:            #0f172a;
  --csh-text-muted:      #64748b;
  --csh-border:          #e2e8f0;
  --csh-accent:          #4f46e5;
  --csh-accent-hover:    #6366f1;
  --csh-accent-light:    #eef2ff;
  --csh-card-bg:         #ffffff;
  --csh-card-border:     rgba(15,23,42,.07);
  --csh-shadow:          0 1px 3px rgba(15,23,42,.06), 0 4px 16px rgba(79,70,229,.07);
  --csh-shadow-sm:       0 1px 2px rgba(15,23,42,.05);
  --csh-radius:          10px;
  --csh-radius-sm:       6px;
  --csh-sidebar-width:   230px;
  --csh-topbar-h:        52px;
}

html[data-theme="dark"] {
  color-scheme: dark;
  --csh-bg:              #080c1a;
  --csh-bg-soft:         #0f1630;
  --csh-sidebar:         #080c1a;
  --csh-sidebar-text:    #f0f4ff;
  --csh-sidebar-muted:   #64748b;
  --csh-sidebar-link:    #c7d2fe;
  --csh-sidebar-active:  rgba(139,155,255,.18);
  --csh-sidebar-active-border: #818cf8;
  --csh-text:            #f0f4ff;
  --csh-text-muted:      #94a3b8;
  --csh-border:          rgba(148,163,184,.18);
  --csh-accent:          #818cf8;
  --csh-accent-hover:    #a5b4fc;
  --csh-accent-light:    rgba(139,155,255,.14);
  --csh-card-bg:         #0f1630;
  --csh-card-border:     rgba(148,163,184,.14);
  --csh-shadow:          0 4px 24px rgba(0,0,0,.45);
  --csh-shadow-sm:       0 1px 3px rgba(0,0,0,.3);
}

/* ─── Base ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.csh-app {
  margin: 0;
  background: var(--csh-bg);
  color: var(--csh-text);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

html[data-theme="dark"] body.csh-app {
  background-image: radial-gradient(ellipse 120% 40% at 50% -10%, rgba(99,102,241,.12), transparent);
}

/* Prevent scroll when mobile nav open */
body.csh-menu-open { overflow: hidden; }

/* ─── Mobile topbar ──────────────────────────────────────────── */
.csh-topbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1030;
  height: var(--csh-topbar-h);
  background: var(--csh-sidebar);
  border-bottom: 1px solid rgba(255,255,255,.06);
  display: flex;
  align-items: center;
  padding: 0 .75rem;
  gap: .5rem;
}

.csh-topbar-brand {
  font-weight: 700;
  font-size: .95rem;
  color: #fff;
  text-decoration: none;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.csh-topbar-prefs { flex-shrink: 0; }

.csh-burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  padding: 6px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
}
.csh-burger-line {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: opacity .2s, transform .2s;
}

/* ─── Overlay ────────────────────────────────────────────────── */
.csh-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1039;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(2px);
  transition: opacity .25s;
  opacity: 0;
}
.csh-overlay--visible {
  display: block;
  opacity: 1;
}

/* ─── Sidebar ────────────────────────────────────────────────── */
.csh-shell {
  display: flex;
  min-height: 100vh;
}

.csh-sidebar {
  width: var(--csh-sidebar-width);
  flex-shrink: 0;
  background: var(--csh-sidebar);
  color: var(--csh-sidebar-text);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  z-index: 1040;
  scrollbar-width: none;
}
.csh-sidebar::-webkit-scrollbar { display: none; }

.csh-sidebar-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1rem 0;
}

.csh-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem .75rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
  margin-bottom: .5rem;
}

.csh-sidebar .brand {
  color: #fff;
  font-weight: 800;
  font-size: 1rem;
  text-decoration: none;
  letter-spacing: -.01em;
}

.csh-sidebar-close {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 6px;
  color: #fff;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .85rem;
  transition: background .2s;
}
.csh-sidebar-close:hover { background: rgba(255,255,255,.15); }

.csh-nav { flex: 1; padding: 0 .5rem; }

.csh-sidebar .nav-section {
  font-size: .625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--csh-sidebar-muted);
  padding: .9rem .75rem .3rem;
}

.csh-sidebar a.nav-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--csh-sidebar-link);
  padding: .55rem .75rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  transition: background .15s, color .15s;
  border-left: 2px solid transparent;
  margin-bottom: 1px;
}
.csh-sidebar a.nav-link:hover {
  background: rgba(255,255,255,.07);
  color: #fff;
}
.csh-sidebar a.nav-link.active {
  background: var(--csh-sidebar-active);
  border-left-color: var(--csh-sidebar-active-border);
  color: #fff;
  font-weight: 600;
}
.csh-sidebar a.nav-link.nav-link-danger {
  color: #fca5a5;
}
.csh-sidebar a.nav-link.nav-link-danger:hover {
  background: rgba(239,68,68,.12);
  color: #fca5a5;
}
.nav-icon {
  width: 1rem;
  text-align: center;
  font-size: .85rem;
  opacity: .75;
  flex-shrink: 0;
}
.csh-sidebar a.nav-link.active .nav-icon,
.csh-sidebar a.nav-link:hover .nav-icon { opacity: 1; }

.csh-sidebar__prefs {
  margin-top: auto;
  padding: .75rem 1rem .5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  border-top: 1px solid rgba(255,255,255,.06);
}

/* ─── Main content ───────────────────────────────────────────── */
.csh-main {
  flex: 1;
  min-width: 0;
  padding: 1.25rem 1.5rem 3rem;
  max-width: 100%;
}

/* ─── Page header utility ────────────────────────────────────── */
.csh-page-header {
  margin-bottom: 1.5rem;
}

/* ─── Cards ──────────────────────────────────────────────────── */
.csh-app .card {
  background: var(--csh-card-bg);
  border-color: var(--csh-card-border) !important;
  color: var(--csh-text);
  box-shadow: var(--csh-shadow);
  border-radius: var(--csh-radius) !important;
}
.csh-app .card-body { padding: 1rem 1.125rem; }

/* ─── Typography / misc ──────────────────────────────────────── */
.csh-app .text-muted  { color: var(--csh-text-muted) !important; }
.csh-app .table       { color: var(--csh-text); }
.csh-app .table-light {
  --bs-table-bg: var(--csh-bg-soft);
  --bs-table-color: var(--csh-text);
}
.csh-app h1, .csh-app h2, .csh-app h3, .csh-app h4 { letter-spacing: -.01em; }

/* ─── Dark-mode forms / tabs ─────────────────────────────────── */
html[data-theme="dark"] .csh-app .form-control,
html[data-theme="dark"] .csh-app .form-select {
  background: rgba(255,255,255,.06);
  border-color: var(--csh-border);
  color: var(--csh-text);
}
html[data-theme="dark"] .csh-app .form-control:focus,
html[data-theme="dark"] .csh-app .form-select:focus {
  background: rgba(255,255,255,.09);
  border-color: var(--csh-accent);
  box-shadow: 0 0 0 3px rgba(129,140,248,.25);
  color: var(--csh-text);
}
html[data-theme="dark"] .csh-app .input-group-text {
  background: rgba(255,255,255,.06);
  border-color: var(--csh-border);
  color: var(--csh-text-muted);
}
html[data-theme="dark"] .csh-app .nav-tabs .nav-link { color: var(--csh-text-muted); }
html[data-theme="dark"] .csh-app .nav-tabs .nav-link.active {
  background: var(--csh-card-bg);
  border-color: var(--csh-border);
  color: var(--csh-text);
}
html[data-theme="dark"] .csh-app .table > :not(caption) > * > * {
  border-color: var(--csh-border);
}
html[data-theme="dark"] .csh-app .table-hover > tbody > tr:hover > * {
  --bs-table-hover-bg: rgba(139,155,255,.08);
}
html[data-theme="dark"] .csh-app .alert-light,
html[data-theme="dark"] .csh-app .bg-light { background: rgba(255,255,255,.05) !important; }
html[data-theme="dark"] .csh-app .border { border-color: var(--csh-border) !important; }
html[data-theme="dark"] .csh-app .badge.text-bg-light {
  background: rgba(255,255,255,.1) !important;
  color: var(--csh-text) !important;
}
html[data-theme="dark"] .csh-app details > summary { color: var(--csh-text-muted); }

/* ─── Language switcher ──────────────────────────────────────── */
.lang-switch {
  display: flex;
  align-items: center;
  gap: .15rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  padding: .2rem;
  background: rgba(255,255,255,.06);
}
.lang-switch__btn {
  font: inherit;
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: .28rem .42rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--csh-sidebar-muted);
  cursor: pointer;
  transition: background .2s, color .2s;
}
.lang-switch__btn:hover { color: #fff; background: rgba(255,255,255,.08); }
.lang-switch__btn.is-active { background: var(--csh-accent); color: #fff; }

body.csh-auth .lang-switch { border-color: var(--auth-border); background: var(--auth-card); }
body.csh-auth .lang-switch__btn { color: var(--auth-muted); }
body.csh-auth .lang-switch__btn.is-active { background: var(--auth-accent); color: #fff; }

/* ─── Execution mode (AI Auto / Advanced) ───────────────────── */
.csh-execution-nav-wrap {
  margin: .75rem 0 1rem;
  padding: 0 .85rem;
}
.csh-execution-nav-sidebar {
  margin: 0 0 .5rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.csh-topbar .csh-execution-nav-wrap {
  margin: 0;
  padding: 0;
  min-width: 0;
}
.csh-topbar .csh-execution-nav-hint,
.csh-topbar .csh-execution-nav-label { display: none; }
.csh-execution-nav-label {
  color: var(--csh-sidebar-muted);
  font-size: .65rem;
  letter-spacing: .08em;
  margin-bottom: .35rem;
}
.csh-execution-nav {
  display: flex;
  gap: .15rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  padding: .2rem;
  background: rgba(255,255,255,.06);
}
.csh-execution-nav__btn {
  flex: 1 1 0;
  font: inherit;
  font-size: .68rem;
  font-weight: 700;
  padding: .35rem .5rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: var(--csh-sidebar-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.csh-execution-nav__btn:hover:not(:disabled) { color: #fff; background: rgba(255,255,255,.08); }
.csh-execution-nav__btn.is-active { background: var(--csh-accent); color: #fff; }
.csh-execution-nav__btn:disabled { opacity: .45; cursor: not-allowed; }
.csh-execution-nav-hint {
  margin-top: .35rem;
  color: var(--csh-sidebar-muted);
  font-size: .68rem;
  line-height: 1.35;
}
.csh-topbar-prefs .csh-execution-nav { max-width: 12rem; }
.csh-topbar .csh-execution-nav__btn {
  padding: .4rem .5rem;
  font-size: .72rem;
  min-height: 2rem;
}
.csh-campaign-mode-note {
  border: 1px dashed var(--csh-border);
  border-radius: 12px;
  padding: .65rem .8rem;
  background: var(--csh-bg-soft);
}

/* ─── Theme toggle ───────────────────────────────────────────── */
.csh-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  cursor: pointer;
  font-size: .95rem;
  line-height: 1;
  color: var(--csh-sidebar-text);
  transition: background .2s, border-color .2s;
}
.csh-theme-toggle:hover {
  background: rgba(129,140,248,.18);
  border-color: rgba(129,140,248,.4);
}

/* ─── Auth pages ─────────────────────────────────────────────── */
body.csh-auth {
  --auth-bg:           #ffffff;
  --auth-card:         #f8fafc;
  --auth-text:         #0f172a;
  --auth-muted:        #64748b;
  --auth-border:       #e2e8f0;
  --auth-accent:       #4f46e5;
  --auth-accent-hover: #6366f1;
  background: var(--auth-bg);
  color: var(--auth-text);
}
html[data-theme="dark"] body.csh-auth {
  --auth-bg:    #080c1a;
  --auth-card:  #0f1630;
  --auth-text:  #f0f4ff;
  --auth-muted: #94a3b8;
  --auth-border: rgba(148,163,184,.18);
  --auth-accent: #818cf8;
  --auth-accent-hover: #a5b4fc;
  background: radial-gradient(1200px 600px at 20% -10%, rgba(99,102,241,.18), transparent),
              radial-gradient(900px 500px at 100% 0%, rgba(56,189,248,.08), transparent),
              var(--auth-bg);
}
body.csh-auth .csh-auth-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.25rem;
}
body.csh-auth .csh-auth-top .logo a {
  color: var(--auth-text);
  text-decoration: none;
  font-weight: 700;
}
body.csh-auth .csh-auth-prefs { display: flex; align-items: center; gap: .45rem; }
body.csh-auth .csh-theme-toggle {
  border-color: var(--auth-border);
  background: var(--auth-card);
  color: var(--auth-text);
}
body.csh-auth .wrap {
  max-width: 440px;
  margin: 0 auto;
  padding: 2rem 1.25rem 3rem;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
body.csh-auth .card {
  background: var(--auth-card);
  border: 1px solid var(--auth-border);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
}
body.csh-auth h1 { font-size: 1.5rem; margin: 0 0 .35rem; font-weight: 700; }
body.csh-auth .sub { color: var(--auth-muted); margin: 0 0 1.25rem; font-size: .95rem; }
body.csh-auth label {
  display: block;
  font-size: .85rem;
  color: var(--auth-muted);
  margin-bottom: .35rem;
}
body.csh-auth input[type="email"],
body.csh-auth input[type="password"],
body.csh-auth input[type="text"] {
  width: 100%;
  padding: .7rem .85rem;
  border-radius: 10px;
  border: 1px solid var(--auth-border);
  background: rgba(255,255,255,.04);
  color: var(--auth-text);
  font-size: 1rem;
  margin-bottom: 1rem;
}
html[data-theme="light"] body.csh-auth input[type="email"],
html[data-theme="light"] body.csh-auth input[type="password"],
html[data-theme="light"] body.csh-auth input[type="text"] { background: #fff; }
body.csh-auth .btn {
  width: 100%;
  padding: .8rem 1rem;
  border: none;
  border-radius: 999px;
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  background: var(--auth-accent);
  color: #fff;
}
body.csh-auth .btn:hover { background: var(--auth-accent-hover); }
body.csh-auth .foot {
  text-align: center;
  margin-top: 1.25rem;
  color: var(--auth-muted);
  font-size: .9rem;
}
body.csh-auth .foot a { color: var(--auth-accent); }
body.csh-auth .flash {
  padding: .65rem .85rem;
  border-radius: 10px;
  margin-bottom: 1rem;
  font-size: .9rem;
}
body.csh-auth .flash-danger  { background: rgba(248,113,113,.12); color: #fecaca; border: 1px solid rgba(248,113,113,.25); }
body.csh-auth .flash-success { background: rgba(34,197,94,.12);  color: #bbf7d0; border: 1px solid rgba(34,197,94,.25); }
body.csh-auth .flash-info    { background: rgba(99,102,241,.12); color: #c7d2fe; border: 1px solid rgba(99,102,241,.25); }
body.csh-auth .field-error   { color: #f87171; font-size: .82rem; margin: -.65rem 0 .75rem; }
html[data-theme="light"] body.csh-auth .field-error { color: #dc2626; }

/* ─── Dashboard stats ────────────────────────────────────────── */
#dashStats .card-body { padding: 1rem 1.125rem; }
#dashStats .h3 { font-size: 2rem; font-weight: 700; }

/* ─── Dashboard v2 ───────────────────────────────────────────── */

/* KPI grid */
.dash-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .6rem;
}
@media (max-width: 991.98px) {
  .dash-kpi-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575.98px) {
  .dash-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}

.dash-kpi-card {
  display: flex;
  flex-direction: column;
  padding: .8rem 1rem;
  background: var(--csh-card-bg);
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  box-shadow: var(--csh-shadow-sm);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s;
}
a.dash-kpi-card:hover {
  border-color: var(--csh-accent);
  box-shadow: 0 0 0 3px var(--csh-accent-light), var(--csh-shadow-sm);
}
.dash-kpi-label {
  font-size: .78rem;
  color: var(--csh-text-muted);
  margin-bottom: .25rem;
  line-height: 1.25;
}
.dash-kpi-value {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
}
.dash-kpi-muted      { color: var(--csh-text-muted); }
.dash-kpi-accent-green   { color: #22c55e; }
.dash-kpi-accent-primary { color: var(--csh-accent); }
.dash-kpi-accent-yellow  { color: #f59e0b; }
.dash-kpi-accent-red     { color: #ef4444; }

/* Sandra agent panel (dashboard) */
.sandra-panel {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.06) 0%, var(--csh-bg) 55%);
  border: 1px solid rgba(99, 102, 241, 0.15) !important;
}
.sandra-panel-head {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.sandra-avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--csh-accent), #818cf8);
  color: #fff;
  font-weight: 700;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.35);
}
.sandra-greeting { font-size: 1rem; }
.sandra-stats-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .45rem;
}
.sandra-stat-item {
  display: flex;
  align-items: baseline;
  gap: .5rem;
  font-size: .9rem;
}
.sandra-stat-check {
  color: #22c55e;
  font-weight: 700;
  flex-shrink: 0;
}
.sandra-waiting {
  font-size: .88rem;
  color: var(--csh-text-muted);
  padding-top: .25rem;
  border-top: 1px dashed var(--csh-border);
}
.sandra-stat-wait { margin-right: .25rem; }
.brand-tagline {
  margin-top: .15rem;
  line-height: 1.25;
  font-size: .72rem;
}

/* Next-actions panel */
.dash-action-card {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .65rem .85rem;
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  background: var(--csh-bg);
}
.dash-action-icon {
  width: 2rem;
  flex-shrink: 0;
  font-size: 1.1rem;
  color: var(--csh-accent);
  text-align: center;
}
.dash-action-body { flex: 1 1 0; min-width: 0; }
.dash-action-text {
  font-weight: 600;
  font-size: .9rem;
}
.dash-action-sub {
  font-size: .78rem;
  color: var(--csh-text-muted);
  margin-top: .15rem;
}

/* Campaign cards inside recent searches */
.dash-campaign-card {
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  padding: .75rem 1rem;
  background: var(--csh-bg);
  margin-bottom: .5rem;
}
.dash-campaign-card:last-child { margin-bottom: 0; }
.dash-camp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .5rem;
  flex-wrap: wrap;
}
.dash-camp-name {
  font-weight: 600;
  color: var(--csh-text);
}
.dash-camp-name:hover { color: var(--csh-accent); }
.dash-camp-meta {
  font-size: .78rem;
  color: var(--csh-text-muted);
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .5rem;
  margin-top: .2rem;
}
.dash-camp-stats {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.dash-camp-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.dash-camp-stat-val {
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.1;
}
.dash-camp-stat-lbl {
  font-size: .7rem;
  color: var(--csh-text-muted);
}

/* Empty state */
.dash-empty-state {
  text-align: center;
  padding: 2rem 1rem;
  max-width: 420px;
  margin: 0 auto;
}
.dash-empty-icon {
  font-size: 2.5rem;
  color: var(--csh-accent);
  margin-bottom: .75rem;
}
.dash-empty-title {
  font-weight: 600;
  font-size: 1.05rem;
  margin-bottom: .35rem;
}
.dash-empty-sub {
  font-size: .875rem;
  color: var(--csh-text-muted);
}

/* Companies workspace — compact mobile header */
.csh-pipeline-bar--compact .csh-pipeline-step {
  padding: .25rem .45rem;
  font-size: .78rem;
}
.csh-pipeline-bar--compact .csh-pipeline-arrow {
  font-size: .7rem;
}
.csh-workspace-toolbar--compact {
  margin-bottom: .35rem;
}
.sa-badge-more {
  display: inline-block;
}
.sa-badge-more summary {
  cursor: pointer;
  list-style: none;
}
.sa-badge-more summary::-webkit-details-marker { display: none; }
.sa-lead-card--compact {
  padding: .65rem .75rem;
}
.sa-lead-card--compact .sa-lead-card-meta {
  font-size: .78rem;
}
@media (max-width: 767.98px) {
  .csh-main {
    padding-top: .75rem;
    padding-left: .85rem;
    padding-right: .85rem;
  }
  .csh-pipeline-bar--compact {
    gap: .15rem;
  }
  .csh-pipeline-bar--compact .csh-pipeline-step-label {
    max-width: 4.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Quick links */
.dash-quick-link {
  display: inline-flex;
  align-items: center;
  padding: .35rem .75rem;
  border: 1px solid var(--csh-border);
  border-radius: 999px;
  font-size: .8rem;
  color: var(--csh-text-muted);
  text-decoration: none;
  transition: border-color .15s, color .15s;
}
.dash-quick-link:hover { border-color: var(--csh-accent); color: var(--csh-accent); }

/* ─── Campaign cards (v2) ────────────────────────────────────── */
.sa-camp-kpi {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .6rem;
}
.sa-camp-kpi-item {
  display: flex;
  flex-direction: column;
  min-width: 90px;
  padding: .35rem .55rem;
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  background: var(--csh-bg);
  font-size: .78rem;
  color: var(--csh-text-muted);
  line-height: 1.25;
}
.sa-camp-kpi-item strong {
  font-size: .95rem;
  color: var(--csh-text);
  display: block;
}
.sa-camp-meta {
  font-size: .8rem;
  color: var(--csh-text-muted);
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .75rem;
  margin-top: .25rem;
}
.sa-camp-status-running  { color: #0ea5e9; }
.sa-camp-status-done     { color: #22c55e; }
.sa-camp-status-error    { color: #f87171; }
.sa-camp-status-quota    { color: #f59e0b; }

/* progress compact summary (inside campaign card after done) */
.sa-camp-run-summary {
  margin-top: .5rem;
  padding: .45rem .65rem;
  border: 1px solid var(--csh-border);
  border-left: 3px solid var(--csh-accent);
  border-radius: var(--csh-radius-sm);
  font-size: .8rem;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem .75rem;
  align-items: center;
  color: var(--csh-text-muted);
}
.sa-camp-run-summary strong { color: var(--csh-text); }
.sa-search-results-summary {
  margin-top: .5rem;
  padding: .55rem .75rem;
  border: 1px solid var(--csh-border);
  border-left: 3px solid var(--csh-accent);
  border-radius: var(--csh-radius-sm);
  background: var(--csh-bg);
}
.sa-search-results-list li:last-child { border-bottom: none !important; }
.sa-camp-run-progress {
  display: flex;
  align-items: center;
  gap: .35rem;
}
.sa-camp-run-details summary {
  font-size: .78rem;
  color: var(--csh-text-muted);
  cursor: pointer;
  user-select: none;
  padding: .25rem 0;
  outline: none;
}
.sa-camp-run-details summary:hover { color: var(--csh-accent); }

/* ─── Companies workspace ───────────────────────────────────── */

/* Compact campaign header */
.csh-campaign-header {
  background: var(--csh-card-bg);
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  padding: .65rem 1rem;
  margin-bottom: .75rem;
  box-shadow: var(--csh-shadow-sm);
}
.csh-campaign-header-top {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
}
.csh-campaign-header-back {
  color: var(--csh-text-muted);
  font-size: .82rem;
  text-decoration: none;
  white-space: nowrap;
}
.csh-campaign-header-back:hover { color: var(--csh-accent); }
.csh-campaign-header-divider {
  width: 1px;
  height: 1.25rem;
  background: var(--csh-border);
  flex-shrink: 0;
}
.csh-campaign-header-name {
  font-weight: 600;
  font-size: .97rem;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.csh-campaign-header-meta {
  font-size: .78rem;
  color: var(--csh-text-muted);
}
.csh-campaign-header-actions {
  margin-left: auto;
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  flex-shrink: 0;
}
.csh-campaign-header-kpi {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .55rem;
}
.csh-camp-kpi-chip {
  display: inline-flex;
  flex-direction: column;
  padding: .3rem .55rem;
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  background: var(--csh-bg);
  font-size: .75rem;
  color: var(--csh-text-muted);
  line-height: 1.25;
  min-width: 80px;
}
.csh-camp-kpi-chip strong {
  font-size: .92rem;
  color: var(--csh-text);
}

/* Workspace toolbar (search + tabs + filter button) */
.csh-workspace-toolbar {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: .5rem;
}
.csh-workspace-search {
  max-width: 260px;
  flex-shrink: 0;
}
@media (max-width: 575.98px) {
  .csh-workspace-search { max-width: 100%; flex: 1 1 100%; }
}

/* Tabs */
.csh-tabs {
  display: flex;
  gap: .2rem;
  overflow-x: auto;
  flex: 1 1 0;
  min-width: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.csh-tabs::-webkit-scrollbar { display: none; }
.csh-tab {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .3rem .7rem;
  border: 1px solid var(--csh-border);
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: .8rem;
  color: var(--csh-text-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
}
.csh-tab:hover { border-color: var(--csh-accent); color: var(--csh-accent); background: var(--csh-accent-light); }
.csh-tab.active { border-color: var(--csh-accent); background: var(--csh-accent-light); color: var(--csh-accent); font-weight: 600; }
.csh-tab .tab-badge {
  display: inline-block;
  font-size: .7rem;
  padding: .05rem .35rem;
  border-radius: 999px;
  background: var(--csh-border);
  color: var(--csh-text-muted);
  font-weight: 600;
  line-height: 1.4;
  min-width: 1.4em;
  text-align: center;
}
.csh-tab.active .tab-badge { background: var(--csh-accent); color: #fff; }

/* ── Pipeline bar ── */
.csh-pipeline-bar {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: .15rem;
}
.csh-pipeline-bar::-webkit-scrollbar { display: none; }

.csh-pipeline-step {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .3rem .65rem;
  border: 1px solid var(--csh-border);
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: .8rem;
  color: var(--csh-text-muted);
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
  flex-shrink: 0;
}
.csh-pipeline-step:hover {
  border-color: var(--csh-accent);
  color: var(--csh-accent);
  background: var(--csh-accent-light);
}
.csh-pipeline-step.active {
  border-color: var(--csh-accent);
  background: var(--csh-accent);
  color: #fff;
  font-weight: 600;
}
.csh-pipeline-step.active .tab-badge {
  background: rgba(255,255,255,.3);
  color: #fff;
}
.csh-pipeline-step.active .csh-pipeline-icon { opacity: .9; }
.csh-pipeline-step--muted { opacity: .7; }
.csh-pipeline-step--muted:hover { opacity: 1; }

.csh-pipeline-arrow {
  color: var(--csh-text-muted);
  font-size: .8rem;
  flex-shrink: 0;
  user-select: none;
}

.csh-pipeline-more {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-shrink: 0;
}

.csh-pipeline-hint {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .75rem;
  border-radius: var(--csh-radius);
  background: var(--csh-accent-light);
  border: 1px solid color-mix(in srgb, var(--csh-accent) 25%, transparent);
  font-size: .85rem;
  color: var(--csh-accent-dark, var(--csh-accent));
  flex-wrap: wrap;
}
html[data-theme="dark"] .csh-pipeline-hint {
  background: rgba(99,102,241,.12);
  border-color: rgba(99,102,241,.25);
}

@media (max-width: 575.98px) {
  .csh-pipeline-step-label { display: none; }
  .csh-pipeline-step[data-pipeline-step="all"] .csh-pipeline-step-label { display: inline; }
  .csh-pipeline-arrow { display: none; }
  .csh-pipeline-bar { gap: .2rem; }
}

/* Advanced filters collapsible */
.csh-filters-panel {
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  background: var(--csh-card-bg);
  padding: .75rem 1rem;
  margin-bottom: .5rem;
}

/* Source badge in table */
.sa-source-badge {
  display: inline-block;
  font-size: .68rem;
  padding: .1rem .4rem;
  border-radius: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.sa-source-badge-places { background: #dbeafe; color: #1d4ed8; }
.sa-source-badge-serper { background: #fef9c3; color: #92400e; }
.sa-source-badge-manual { background: #f0fdf4; color: #166534; }
html[data-theme="dark"] .sa-source-badge-places { background: rgba(37,99,235,.2); color: #93c5fd; }
html[data-theme="dark"] .sa-source-badge-serper { background: rgba(234,179,8,.15); color: #fde68a; }
html[data-theme="dark"] .sa-source-badge-manual { background: rgba(22,163,74,.15); color: #86efac; }

/* Next step chip */
.sa-next-step {
  display: inline-block;
  font-size: .75rem;
  color: var(--csh-accent);
  font-weight: 500;
}
.sa-company-workflow-steps {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  margin-bottom: .25rem;
}
.sa-company-workflow-step {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  border: 1px solid var(--csh-border);
  border-radius: 999px;
  padding: .1rem .4rem;
  font-size: .68rem;
  color: var(--csh-text-muted);
  background: var(--csh-card-bg);
  white-space: nowrap;
}
.sa-company-workflow-step__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: .95rem;
  height: .95rem;
  border-radius: 999px;
  font-size: .62rem;
  background: var(--csh-border);
  color: var(--csh-text-muted);
}
.sa-company-workflow-step.is-done {
  color: #166534;
  border-color: rgba(22, 163, 74, .25);
  background: rgba(22, 163, 74, .08);
}
.sa-company-workflow-step.is-done .sa-company-workflow-step__icon {
  background: #16a34a;
  color: #fff;
}
.sa-company-workflow-step.is-current {
  color: var(--csh-accent);
  border-color: rgba(37, 99, 235, .28);
  background: rgba(37, 99, 235, .08);
}
.sa-company-workflow-step.is-current .sa-company-workflow-step__icon {
  background: var(--csh-accent);
  color: #fff;
}
html[data-theme="dark"] .sa-company-workflow-step.is-done {
  color: #86efac;
  background: rgba(22, 163, 74, .12);
}

.csh-pipeline-bar--actions {
  flex-wrap: wrap;
  gap: .35rem;
}
.csh-pipeline-bar--actions .csh-pipeline-step-count {
  font-weight: 600;
  margin-left: .15rem;
  opacity: .85;
}
.csh-pipeline-bar--actions .csh-pipeline-step {
  border-radius: 999px;
  padding: .35rem .65rem;
}

.sa-company-progress-list {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.sa-company-progress-step {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  color: var(--csh-text-muted);
  line-height: 1.3;
}
.sa-company-progress-step__icon {
  width: 1rem;
  flex-shrink: 0;
  text-align: center;
  font-weight: 600;
}
.sa-company-progress-step.is-done {
  color: var(--csh-text);
}
.sa-company-progress-step.is-done .sa-company-progress-step__icon {
  color: #16a34a;
}
.sa-company-progress-step.is-busy .sa-company-progress-step__icon {
  color: var(--csh-accent);
}
.sa-next-action-lead {
  color: var(--csh-text);
}

.sa-company-type-badge {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.2;
  padding: .15rem .5rem;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.sa-company-type-badge--ship_owner { color: #1d4ed8; background: #eff6ff; border-color: #bfdbfe; }
.sa-company-type-badge--supplier { color: #b45309; background: #fffbeb; border-color: #fde68a; }
.sa-company-type-badge--manufacturer { color: #6d28d9; background: #f5f3ff; border-color: #ddd6fe; }
.sa-company-type-badge--service { color: #475569; background: #f8fafc; border-color: #e2e8f0; }
.sa-company-type-badge--agency { color: #0f766e; background: #ecfdf5; border-color: #99f6e4; }
.sa-company-type-badge--logistics { color: #c2410c; background: #fff7ed; border-color: #fed7aa; }
.sa-company-type-badge--port { color: #0369a1; background: #f0f9ff; border-color: #bae6fd; }
.sa-company-type-badge--offshore { color: #854d0e; background: #fefce8; border-color: #fef08a; }
.sa-company-type-badge--shipyard { color: #1e40af; background: #eff6ff; border-color: #bfdbfe; }
.sa-company-type-badge--distributor { color: #7c2d12; background: #fff7ed; border-color: #fdba74; }
.sa-company-type-badge--medical { color: #be123c; background: #fff1f2; border-color: #fecdd3; }
.sa-company-type-badge--hotel { color: #a21caf; background: #fdf4ff; border-color: #f5d0fe; }
.sa-company-type-badge--fitness { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.sa-company-type-badge--construction { color: #92400e; background: #fffbeb; border-color: #fde68a; }
.sa-company-type-badge--other { color: var(--csh-text-muted); background: var(--csh-card-bg); border-color: var(--csh-border); }
.sa-company-brief {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.sa-email-preview-body {
  white-space: pre-wrap;
  line-height: 1.5;
  color: var(--csh-text, #111827);
}
html[data-theme="dark"] .sa-email-preview-body {
  color: var(--csh-text, #e5e7eb);
}

/* Running progress compact strip */
.csh-progress-strip {
  border: 1px solid var(--csh-border);
  border-left: 3px solid var(--csh-accent);
  border-radius: var(--csh-radius-sm);
  padding: .5rem .75rem;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .82rem;
  color: var(--csh-text-muted);
  background: var(--csh-card-bg);
}

/* Hide "Сводка" column on most screens, show on xl+ */
.sa-col-insight { display: none; }
@media (min-width: 1400px) { .sa-col-insight { display: table-cell; } }

/* ─── Responsive: mobile first ──────────────────────────────── */

/* Tablet and below: sidebar becomes a slide-in drawer */
@media (max-width: 991.98px) {
  .csh-shell { display: block; }

  .csh-main {
    padding-top: calc(var(--csh-topbar-h) + .75rem);
    padding-left: .75rem;
    padding-right: .75rem;
    overflow-x: clip;
  }

  .csh-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    transform: translateX(-100%);
    transition: transform .28s cubic-bezier(.4,0,.2,1);
    z-index: 1040;
    height: 100%;
    width: min(280px, 80vw);
    box-shadow: 4px 0 32px rgba(0,0,0,.3);
  }
  .csh-sidebar--open {
    transform: translateX(0);
  }
}

/* Desktop: static sidebar */
@media (min-width: 992px) {
  .csh-shell { display: flex; min-height: 100vh; }
  .csh-topbar { display: none !important; }
  .csh-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    transform: none !important;
    transition: none;
  }
  .csh-sidebar-close { display: none !important; }
  .csh-sidebar-head { padding-bottom: .75rem; }
}

/* Small screens */
@media (max-width: 575.98px) {
  .csh-main {
    padding-left: .5rem;
    padding-right: .5rem;
    overflow-x: clip;
  }
  .csh-app .card-body { padding: .75rem .875rem; }
}

/* Demo modal brand mark preview */
.ld-demo-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.35rem;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
}
.ld-demo-brand-mark--image {
  padding: 0;
  min-width: auto;
  border-radius: 0.35rem;
  overflow: hidden;
}


/* ═══════════════════════════════════════════════
   Settings page — 2-column layout + section cards
═══════════════════════════════════════════════ */

/* ── Readiness Banner ── */
.csh-readiness-banner {
  background: var(--csh-card-bg);
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  box-shadow: var(--csh-shadow-sm);
  padding: 1rem 1.25rem;
  transition: border-color .25s, background .25s;
}
.csh-readiness-banner--ready { border-color: #16a34a40; background: #f0fdf4; }
.csh-readiness-banner--warn  { border-color: #d9770040; background: #fffbeb; }
[data-bs-theme="dark"] .csh-readiness-banner--ready { background: #14532d20; border-color: #16a34a60; }
[data-bs-theme="dark"] .csh-readiness-banner--warn  { background: #78350f20; border-color: #d9770060; }

.csh-readiness-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  justify-content: space-between;
}
.csh-readiness-left { display: flex; align-items: center; gap: .75rem; }
.csh-readiness-icon { font-size: 1.4rem; line-height: 1; }
.csh-readiness-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

.csh-readiness-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .5rem;
}
.csh-readiness-chip {
  display: inline-flex;
  align-items: center;
  font-size: .78rem;
  padding: .2rem .55rem;
  border-radius: 99px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.csh-readiness-chip--ok   { background: #dcfce7; border-color: #86efac; color: #15803d; }
.csh-readiness-chip--warn { background: #fef9c3; border-color: #fde047; color: #854d0e; }
[data-bs-theme="dark"] .csh-readiness-chip--ok   { background: #14532d30; border-color: #16a34a60; color: #86efac; }
[data-bs-theme="dark"] .csh-readiness-chip--warn { background: #78350f30; border-color: #d9770060; color: #fde047; }

.csh-readiness-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .35rem .75rem;
  padding-top: .25rem;
  border-top: 1px solid var(--csh-border);
}
.csh-readiness-list-item {
  display: flex;
  align-items: flex-start;
  font-size: .85rem;
  line-height: 1.35;
}
.csh-readiness-list-item.is-warn { color: var(--csh-text); }

.csh-settings-section--highlight {
  animation: csh-settings-highlight 1.8s ease-out;
  box-shadow: 0 0 0 2px var(--csh-accent), var(--csh-shadow-sm);
}
@keyframes csh-settings-highlight {
  0% { box-shadow: 0 0 0 3px var(--csh-accent), var(--csh-shadow-sm); }
  100% { box-shadow: 0 0 0 0 transparent, var(--csh-shadow-sm); }
}

/* ── Two-column layout ── */
.csh-settings-layout {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}
.csh-settings-nav {
  position: sticky;
  top: calc(var(--csh-topbar-h) + 1rem);
  width: 195px;
  flex-shrink: 0;
}
.csh-settings-nav-link {
  display: flex;
  align-items: center;
  font-size: .85rem;
  color: var(--csh-text-muted);
  text-decoration: none;
  padding: .45rem .65rem;
  border-radius: var(--csh-radius-sm);
  border-left: 3px solid transparent;
  transition: color .15s, background .15s, border-color .15s;
  white-space: nowrap;
}
.csh-settings-nav-link:hover {
  color: var(--csh-text);
  background: var(--csh-accent-light);
}
.csh-settings-nav-link.active {
  color: var(--csh-accent);
  background: var(--csh-accent-light);
  border-left-color: var(--csh-accent);
  font-weight: 600;
}
.csh-settings-content { flex: 1; min-width: 0; }

/* ── Section Card ── */
.csh-settings-section {
  background: var(--csh-card-bg);
  border: 1px solid var(--csh-border);
  border-radius: var(--csh-radius);
  box-shadow: var(--csh-shadow-sm);
  margin-bottom: 1.25rem;
  scroll-margin-top: calc(var(--csh-topbar-h) + 1rem);
  overflow: hidden;
}
.csh-settings-section--operator { border-color: #fca5a5; }

.csh-section-header {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: 1rem 1.25rem .85rem;
  border-bottom: 1px solid var(--csh-border);
  flex-wrap: wrap;
}
.csh-section-icon {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: .6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: .1rem;
}
.csh-section-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 .15rem;
  color: var(--csh-text);
}
.csh-section-desc {
  font-size: .8rem;
  color: var(--csh-text-muted);
  margin: 0;
}
.csh-section-badge {
  margin-left: auto;
  font-size: .75rem;
  align-self: center;
}
.csh-section-body {
  padding: 1.25rem;
}
.csh-section-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--csh-border);
}

/* ── Offer scenario + deliverables ── */
.csh-offer-scenario-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  padding: .85rem;
  height: 100%;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.csh-offer-scenario-card.active,
.csh-offer-scenario-card:has(input:checked) {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
  box-shadow: 0 0 0 3px rgba(79,70,229,.12);
}
.csh-offer-scenario-card input { margin-top: .2rem; flex-shrink: 0; }
#saOfferConflictWarning.csh-offer-conflict-flash {
  animation: csh-offer-conflict-pulse .35s ease-in-out 2;
}
@keyframes csh-offer-conflict-pulse {
  50% { box-shadow: 0 0 0 3px rgba(255,193,7,.45); }
}

/* ── Offer deliverables + presets ── */
.csh-offer-preset-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.csh-offer-preset-row .btn {
  text-align: left;
  min-width: 7.5rem;
  line-height: 1.2;
  padding: .45rem .65rem;
}
.csh-offer-preset-row .btn.active {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
  color: var(--csh-accent);
}
.csh-offer-deliverables-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: .5rem;
  margin-bottom: .5rem;
}
.csh-offer-deliverable-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  transition: border-color .15s, background .15s, box-shadow .15s;
  user-select: none;
  margin: 0;
  position: relative;
}
.csh-offer-deliverable-card:hover,
.csh-offer-deliverable-card:has(input:checked) {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
  box-shadow: 0 0 0 3px rgba(79,70,229,.15);
}
.csh-offer-deliverable-card input {
  position: absolute;
  top: .45rem;
  right: .45rem;
}
.csh-offer-deliverable-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .75rem .5rem .55rem;
  text-align: center;
}
.csh-offer-deliverable-inner i { font-size: 1.25rem; }

/* ── Offer type grid (legacy) ── */
.csh-offer-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: .5rem;
  margin-bottom: .5rem;
}
.csh-offer-type-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  transition: border-color .15s, background .15s, box-shadow .15s;
  user-select: none;
}
.csh-offer-type-card:hover,
.csh-offer-type-card:has(input:checked) {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
  box-shadow: 0 0 0 3px rgba(79,70,229,.15);
}
.csh-offer-type-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .7rem .5rem;
  text-align: center;
}
.csh-offer-type-inner i { font-size: 1.3rem; }

/* ── Approval row ── */
.csh-approval-row {
  background: var(--csh-bg);
  border-color: var(--csh-border) !important;
}
[data-bs-theme="dark"] .csh-approval-row { background: rgba(255,255,255,.04); }

/* ── Style cards ── */
.csh-style-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: .5rem;
}
.csh-style-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  transition: border-color .15s, background .15s;
  user-select: none;
}
.csh-style-card:has(input:checked),
.csh-style-card.active {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
}
.csh-style-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  padding: .7rem .5rem;
  text-align: center;
}
.csh-style-inner i { font-size: 1.2rem; }

/* Language cards */
.csh-lang-grid {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}
.csh-lang-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  transition: border-color .15s, background .15s;
  user-select: none;
}
.csh-lang-card:has(input:checked),
.csh-lang-card.active {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
}
.csh-lang-inner {
  padding: .5rem 1rem;
  font-size: .9rem;
  font-weight: 500;
}

/* ── Responsive: mobile collapses nav ── */
@media (max-width: 991.98px) {
  .csh-settings-layout { flex-direction: column; }
  .csh-settings-nav    { display: none !important; }
  .csh-settings-content { width: 100%; }
  .csh-offer-deliverables-grid { grid-template-columns: repeat(2, 1fr); }
  .csh-offer-type-grid  { grid-template-columns: repeat(2, 1fr); }
  .csh-style-grid       { grid-template-columns: repeat(2, 1fr); }
  .csh-readiness-banner .csh-readiness-actions { width: 100%; }
  .csh-readiness-actions .btn { flex: 1; }
}

/* Message style previews + preference chips */
.csh-style-grid--with-preview {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}
.csh-style-card--preview .csh-style-inner {
  align-items: stretch;
  text-align: left;
  padding: .65rem .7rem;
}
.csh-style-preview {
  font-size: .72rem;
  line-height: 1.35;
  color: var(--csh-text-muted);
  margin-top: .35rem;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.csh-pref-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.csh-pref-card {
  cursor: pointer;
  border: 2px solid var(--csh-border);
  border-radius: var(--csh-radius-sm);
  padding: .35rem .65rem;
  font-size: .8rem;
  user-select: none;
  transition: border-color .15s, background .15s;
}
.csh-pref-card:has(input:checked),
.csh-pref-card.active {
  border-color: var(--csh-accent);
  background: var(--csh-accent-light);
  font-weight: 600;
}
@media (max-width: 991.98px) {
  .csh-style-grid--with-preview { grid-template-columns: 1fr; }
}

/* ─── SandraOps Design System 2.0 ──────────────────────────────
   A shared premium AI operating-system language for app screens.
   These tokens intentionally override the older CRM-like defaults.
*/
:root {
  color-scheme: light;
  --csh-bg: #f6f8fc;
  --csh-bg-soft: rgba(255,255,255,.72);
  --csh-bg-elevated: rgba(255,255,255,.88);
  --csh-sidebar: rgba(255,255,255,.74);
  --csh-sidebar-text: #111827;
  --csh-sidebar-muted: #667085;
  --csh-sidebar-link: #344054;
  --csh-sidebar-active: rgba(79,70,229,.10);
  --csh-sidebar-active-border: rgba(79,70,229,.60);
  --csh-text: #101828;
  --csh-text-muted: #667085;
  --csh-border: rgba(16,24,40,.10);
  --csh-accent: #635bff;
  --csh-accent-hover: #4f46e5;
  --csh-accent-light: rgba(99,91,255,.11);
  --csh-card-bg: rgba(255,255,255,.78);
  --csh-card-border: rgba(16,24,40,.10);
  --csh-input-bg: rgba(255,255,255,.84);
  --csh-shadow: 0 18px 55px rgba(16,24,40,.10), 0 1px 0 rgba(255,255,255,.65) inset;
  --csh-shadow-sm: 0 10px 28px rgba(16,24,40,.08);
  --csh-radius: 20px;
  --csh-radius-sm: 12px;
  --csh-control-radius: 14px;
  --csh-sidebar-width: 272px;
  --csh-topbar-h: 64px;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --csh-bg: #080d1d;
  --csh-bg-soft: rgba(17,25,48,.68);
  --csh-bg-elevated: rgba(18,27,52,.86);
  --csh-sidebar: rgba(8,13,29,.86);
  --csh-sidebar-text: #edf4ff;
  --csh-sidebar-muted: #98a7c4;
  --csh-sidebar-link: #d5def5;
  --csh-sidebar-active: rgba(129,140,248,.16);
  --csh-sidebar-active-border: rgba(34,211,238,.62);
  --csh-text: #edf4ff;
  --csh-text-muted: #9daed2;
  --csh-border: rgba(226,232,240,.13);
  --csh-accent: #8b5cf6;
  --csh-accent-hover: #a78bfa;
  --csh-accent-light: rgba(139,92,246,.16);
  --csh-card-bg: rgba(17,25,48,.74);
  --csh-card-border: rgba(226,232,240,.12);
  --csh-input-bg: rgba(255,255,255,.065);
  --csh-shadow: 0 24px 70px rgba(0,0,0,.42), 0 1px 0 rgba(255,255,255,.05) inset;
  --csh-shadow-sm: 0 14px 34px rgba(0,0,0,.28);
}

body.csh-app {
  background:
    radial-gradient(900px 520px at 78% -12%, rgba(99,91,255,.16), transparent 64%),
    radial-gradient(780px 460px at 8% 0%, rgba(34,211,238,.12), transparent 58%),
    linear-gradient(180deg, #ffffff 0%, var(--csh-bg) 46%, #eef2ff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: .94rem;
}
html[data-theme="dark"] body.csh-app {
  background:
    radial-gradient(900px 520px at 78% -12%, rgba(124,58,237,.24), transparent 64%),
    radial-gradient(780px 460px at 8% 0%, rgba(34,211,238,.12), transparent 58%),
    linear-gradient(180deg, #0b1022 0%, var(--csh-bg) 52%, #070a15 100%);
}

.csh-topbar,
.csh-sidebar {
  background: var(--csh-sidebar);
  color: var(--csh-sidebar-text);
  border-color: var(--csh-border);
  backdrop-filter: blur(22px) saturate(1.15);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
}
.csh-topbar { height: var(--csh-topbar-h); padding: 0 max(.9rem, env(safe-area-inset-left)) 0 max(.9rem, env(safe-area-inset-right)); }
.csh-sidebar { border-right: 1px solid var(--csh-border); box-shadow: 18px 0 60px rgba(16,24,40,.08); }
html[data-theme="dark"] .csh-sidebar { box-shadow: 20px 0 70px rgba(0,0,0,.24); }
.csh-sidebar-inner { padding: 1.15rem .85rem; }
.csh-sidebar-head { display: grid; grid-template-columns: 1fr auto; gap: .35rem; padding: .15rem .2rem 1rem; border-bottom: 0; }
.brand-tagline { grid-column: 1 / -1; margin-left: 3.45rem; color: var(--csh-sidebar-muted) !important; }
.csh-brand-lockup { display: inline-flex; align-items: center; gap: .7rem; min-width: 0; color: var(--csh-sidebar-text) !important; text-decoration: none; }
.csh-brand-lockup .csh-brand-mark { width: 48px; height: 48px; object-fit: contain; filter: drop-shadow(0 0 12px rgba(34,211,238,.20)); transition: transform .18s ease, filter .18s ease; }
.csh-topbar .csh-brand-mark { width: 42px; height: 42px; }
.csh-brand-lockup span { font-size: 1.13rem; font-weight: 860; letter-spacing: -.035em; }
@media (hover: hover) { .csh-brand-lockup:hover .csh-brand-mark { transform: translateY(-1px) scale(1.035); filter: drop-shadow(0 0 16px rgba(34,211,238,.32)); } }

.csh-sandra-system-card {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: .75rem;
  align-items: center;
  margin: .35rem .05rem 1rem;
  padding: .75rem;
  border: 1px solid var(--csh-border);
  border-radius: 18px;
  background: linear-gradient(145deg, var(--csh-bg-elevated), rgba(99,91,255,.07));
  box-shadow: var(--csh-shadow-sm);
}
.csh-sandra-system-card__avatar { width: 44px; height: 44px; border-radius: 15px; display: grid; place-items: center; background: rgba(34,211,238,.10); overflow: hidden; }
.csh-sandra-system-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.csh-sandra-system-card__label { font-weight: 850; letter-spacing: -.03em; }
.csh-sandra-system-card__status { display: inline-flex; align-items: center; gap: .38rem; color: var(--csh-sidebar-muted); font-size: .78rem; font-weight: 720; }
.csh-sandra-system-card__status span:first-child { width: .48rem; height: .48rem; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.14); }

.csh-nav { padding: 0; }
.csh-sidebar .nav-section { padding: 1rem .65rem .45rem; color: var(--csh-sidebar-muted); font-size: .68rem; letter-spacing: .12em; }
.csh-sidebar a.nav-link {
  gap: .72rem;
  min-height: 42px;
  color: var(--csh-sidebar-link);
  padding: .62rem .72rem;
  border-radius: 14px;
  border: 1px solid transparent;
  border-left: 1px solid transparent;
  font-weight: 680;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.csh-sidebar a.nav-link:hover { background: rgba(99,91,255,.075); color: var(--csh-sidebar-text); transform: translateX(2px); }
.csh-sidebar a.nav-link.active { background: var(--csh-sidebar-active); border-color: var(--csh-sidebar-active-border); color: var(--csh-sidebar-text); box-shadow: 0 10px 28px rgba(99,91,255,.10); }
.nav-icon { opacity: .86; width: 1.1rem; }
.csh-sidebar__prefs { margin: auto .05rem 0; padding: 1rem .1rem .1rem; border-top: 1px solid var(--csh-border); }

.csh-main {
  padding: 1.65rem clamp(1rem, 2.2vw, 2.1rem) calc(3.5rem + env(safe-area-inset-bottom));
  animation: csh-page-in .36s ease both;
}
@keyframes csh-page-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.csh-page-header { margin-bottom: 1.35rem; }
.csh-app h1, .csh-app h2, .csh-app h3, .csh-app h4 { letter-spacing: -.035em; font-weight: 820; }
.csh-app h1 { font-size: clamp(1.8rem, 3vw, 2.55rem); }

.csh-app .card,
.csh-app .modal-content,
.csh-app .dropdown-menu,
.csh-app .toast,
.csh-app .list-group-item,
.csh-app .accordion-item,
.csh-app .offcanvas {
  background: var(--csh-card-bg);
  border: 1px solid var(--csh-card-border) !important;
  border-radius: var(--csh-radius) !important;
  color: var(--csh-text);
  box-shadow: var(--csh-shadow);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
}
.csh-app .card,
.csh-app .dash-kpi-card,
.csh-app .dash-action-card,
.csh-app .dash-campaign-card,
.csh-app .sa-lead-card,
.csh-app .sa-lead-card--compact,
.csh-app .csh-offer-scenario-card,
.csh-app .csh-offer-deliverable-card,
.csh-app .csh-offer-type-card,
.csh-app .csh-style-card,
.csh-app .csh-lang-card,
.csh-app .csh-pref-card {
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
@media (hover: hover) {
  .csh-app .card:hover,
  .csh-app .dash-kpi-card:hover,
  .csh-app .dash-action-card:hover,
  .csh-app .dash-campaign-card:hover,
  .csh-app .sa-lead-card:hover,
  .csh-app .sa-lead-card--compact:hover,
  .csh-app .csh-offer-scenario-card:hover,
  .csh-app .csh-offer-deliverable-card:hover,
  .csh-app .csh-offer-type-card:hover,
  .csh-app .csh-style-card:hover,
  .csh-app .csh-lang-card:hover,
  .csh-app .csh-pref-card:hover { transform: translateY(-2px) scale(1.005); border-color: rgba(99,91,255,.26) !important; box-shadow: 0 22px 64px rgba(16,24,40,.13); }
}
.csh-app .card-body { padding: 1.2rem; }

.csh-app .btn {
  min-height: 42px;
  border-radius: 999px;
  padding: .62rem 1rem;
  font-weight: 780;
  letter-spacing: -.01em;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease, color .14s ease;
}
.csh-app .btn:hover { transform: translateY(-1px); }
.csh-app .btn-primary,
.csh-app .btn-success {
  border-color: transparent;
  background: linear-gradient(135deg, var(--csh-accent), #4f46e5);
  color: #fff;
  box-shadow: 0 12px 30px rgba(99,91,255,.22);
}
.csh-app .btn-primary:hover,
.csh-app .btn-success:hover { background: linear-gradient(135deg, var(--csh-accent-hover), #635bff); box-shadow: 0 16px 38px rgba(99,91,255,.28); }
.csh-app .btn-outline-primary,
.csh-app .btn-outline-secondary,
.csh-app .btn-light,
.csh-app .btn-secondary,
.csh-app .btn-outline-dark {
  color: var(--csh-text);
  border-color: var(--csh-border);
  background: var(--csh-bg-soft);
}
.csh-app .btn-outline-primary:hover,
.csh-app .btn-outline-secondary:hover,
.csh-app .btn-light:hover,
.csh-app .btn-secondary:hover,
.csh-app .btn-outline-dark:hover { color: var(--csh-text); background: var(--csh-accent-light); border-color: rgba(99,91,255,.28); }

.csh-app .form-control,
.csh-app .form-select,
.csh-app .input-group-text {
  min-height: 42px;
  border-radius: var(--csh-control-radius);
  border-color: var(--csh-border);
  background: var(--csh-input-bg);
  color: var(--csh-text);
  box-shadow: none;
  transition: border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.csh-app .input-group > .form-control:not(:first-child),
.csh-app .input-group > .form-select:not(:first-child),
.csh-app .input-group > .input-group-text:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.csh-app .input-group > .form-control:not(:last-child),
.csh-app .input-group > .form-select:not(:last-child),
.csh-app .input-group > .input-group-text:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.csh-app .form-control:focus,
.csh-app .form-select:focus {
  background: var(--csh-bg-elevated);
  border-color: rgba(99,91,255,.62);
  box-shadow: 0 0 0 4px rgba(99,91,255,.13);
  color: var(--csh-text);
}
.csh-app .form-label { color: var(--csh-text); font-weight: 760; }
.csh-app .form-text { color: var(--csh-text-muted); }

.csh-app .badge,
.csh-app .status-badge,
.csh-app .badge.text-bg-light {
  border-radius: 999px;
  padding: .38rem .62rem;
  font-weight: 760;
  border: 1px solid var(--csh-border);
  background: var(--csh-bg-soft) !important;
  color: var(--csh-text) !important;
}
.csh-app .nav-tabs { border-bottom-color: var(--csh-border); gap: .35rem; }
.csh-app .nav-tabs .nav-link {
  border-radius: 999px;
  border: 1px solid transparent;
  color: var(--csh-text-muted);
  font-weight: 760;
  padding: .56rem .9rem;
}
.csh-app .nav-tabs .nav-link:hover { border-color: var(--csh-border); color: var(--csh-text); }
.csh-app .nav-tabs .nav-link.active { background: var(--csh-accent-light); border-color: rgba(99,91,255,.25); color: var(--csh-text); }

.csh-app .table { --bs-table-bg: transparent; --bs-table-color: var(--csh-text); --bs-table-border-color: var(--csh-border); vertical-align: middle; }
.csh-app .table > :not(caption) > * > * { padding: .82rem .9rem; border-bottom-color: var(--csh-border); }
.csh-app .table thead th { color: var(--csh-text-muted); font-size: .76rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 820; background: transparent; }
.csh-app .table-hover > tbody > tr:hover > * { --bs-table-hover-bg: rgba(99,91,255,.055); }
.csh-app .dropdown-item { color: var(--csh-text); border-radius: 10px; }
.csh-app .dropdown-item:hover { background: var(--csh-accent-light); color: var(--csh-text); }
.csh-app .alert { border-radius: var(--csh-radius); border-color: var(--csh-border); }

.lang-switch,
.csh-execution-nav,
.csh-theme-toggle,
.csh-campaign-mode-note {
  border-color: var(--csh-border);
  background: var(--csh-bg-soft);
  color: var(--csh-text);
  backdrop-filter: blur(14px);
}
.lang-switch__btn,
.csh-execution-nav__btn { color: var(--csh-text-muted); }
.lang-switch__btn:hover,
.csh-execution-nav__btn:hover:not(:disabled) { color: var(--csh-text); background: var(--csh-accent-light); }
.lang-switch__btn.is-active,
.csh-execution-nav__btn.is-active { background: var(--csh-accent); color: #fff; box-shadow: 0 8px 22px rgba(99,91,255,.24); }
.csh-theme-toggle { color: var(--csh-text); }
.csh-theme-toggle:hover { background: var(--csh-accent-light); border-color: rgba(99,91,255,.28); }

@media (max-width: 991.98px) {
  .csh-main { padding-top: calc(var(--csh-topbar-h) + 1rem + env(safe-area-inset-top)); padding-left: max(.85rem, env(safe-area-inset-left)); padding-right: max(.85rem, env(safe-area-inset-right)); }
  .csh-sidebar { width: min(320px, 88vw); }
}
@media (max-width: 575.98px) {
  .csh-topbar { gap: .55rem; }
  .csh-topbar-brand span { font-size: 1rem; }
  .csh-app .card-body { padding: .95rem; }
  .csh-app .btn { width: auto; min-height: 40px; padding: .58rem .88rem; }
}
@media (prefers-reduced-motion: reduce) {
  .csh-main,
  .csh-app .card,
  .csh-app .btn,
  .csh-sidebar a.nav-link,
  .csh-brand-lockup .csh-brand-mark { animation: none !important; transition: none !important; transform: none !important; }
}
