.client-success-module {
  --cs-bg: #f8fafc;
  --cs-card: #ffffff;
  --cs-border: rgba(148, 163, 184, 0.28);
  --cs-text: #0f172a;
  --cs-muted: #64748b;
  --cs-soft: #f1f5f9;
  --cs-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.client-success-root { display: grid; gap: 16px; }
.cs-page-header {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap;
  padding: 20px; border: 1px solid var(--cs-border); border-radius: 22px; background: linear-gradient(135deg, #ffffff, #f8fafc); box-shadow: var(--cs-shadow);
}
.cs-eyebrow { display:block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #2563eb; margin-bottom: 6px; }
.cs-page-header h2 { margin: 0; font-size: clamp(24px, 3vw, 34px); color: var(--cs-text); }
.cs-page-header p { margin: 6px 0 0; color: var(--cs-muted); max-width: 860px; }
.cs-header-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.cs-admin-chip { border:1px solid rgba(37,99,235,.2); background:#eff6ff; color:#1d4ed8; padding:7px 10px; border-radius:999px; font-size:12px; font-weight:800; }

.cs-kpi-grid { display:grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cs-kpi-card { padding: 16px; border: 1px solid var(--cs-border); border-radius: 20px; background: var(--cs-card); box-shadow: 0 12px 28px rgba(15, 23, 42, .06); position:relative; overflow:hidden; }
.cs-kpi-card::after { content:""; position:absolute; inset:auto -22px -30px auto; width:92px; height:92px; border-radius:999px; background:rgba(37,99,235,.08); }
.cs-kpi-label { font-size:12px; font-weight:800; color:var(--cs-muted); text-transform:uppercase; letter-spacing:.04em; }
.cs-kpi-value { font-size:30px; line-height:1.1; font-weight:900; color:var(--cs-text); margin-top:8px; }
.cs-kpi-sub { font-size:12px; color:var(--cs-muted); margin-top:6px; }

.cs-layout { display:grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap:16px; align-items:start; }
.cs-sidebar, .cs-detail, .cs-card { background:var(--cs-card); border:1px solid var(--cs-border); border-radius:22px; box-shadow:var(--cs-shadow); }
.cs-sidebar { padding:14px; position:sticky; top:86px; max-height:calc(100vh - 110px); overflow:auto; }
.cs-filter-grid { display:grid; gap:9px; margin-bottom:12px; }
.cs-list { display:grid; gap:10px; }
.cs-client-card { width:100%; text-align:left; border:1px solid rgba(148,163,184,.24); background:#fff; border-radius:18px; padding:12px; cursor:pointer; transition:.16s ease; }
.cs-client-card:hover, .cs-client-card.is-active { border-color:rgba(37,99,235,.45); transform:translateY(-1px); box-shadow:0 12px 28px rgba(37,99,235,.10); }
.cs-client-name { font-weight:900; color:var(--cs-text); display:flex; justify-content:space-between; gap:8px; }
.cs-client-meta { margin-top:7px; display:flex; gap:6px; flex-wrap:wrap; }
.cs-chip { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:5px 8px; font-size:11px; font-weight:800; background:#f1f5f9; color:#475569; }
.cs-chip--healthy { background:#dcfce7; color:#166534; }
.cs-chip--watch { background:#fef9c3; color:#854d0e; }
.cs-chip--risk { background:#fee2e2; color:#991b1b; }
.cs-chip--critical { background:#450a0a; color:#fecaca; }
.cs-chip--blue { background:#dbeafe; color:#1e40af; }
.cs-chip--violet { background:#ede9fe; color:#5b21b6; }

.cs-detail { min-height:640px; overflow:hidden; }
.cs-detail-head { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:18px 18px 12px; border-bottom:1px solid var(--cs-border); background:linear-gradient(135deg, #ffffff, #f8fafc); }
.cs-detail-title h3 { margin:0; font-size:22px; color:var(--cs-text); }
.cs-detail-title p { margin:4px 0 0; color:var(--cs-muted); font-size:13px; }
.cs-health-ring { min-width:120px; display:grid; place-items:center; text-align:center; border:1px solid var(--cs-border); border-radius:18px; padding:10px; background:#fff; }
.cs-health-score { font-size:30px; font-weight:900; color:var(--cs-text); }
.cs-health-label { font-size:12px; color:var(--cs-muted); font-weight:800; }
.cs-tabs { display:flex; gap:6px; padding:10px 12px; overflow:auto; border-bottom:1px solid var(--cs-border); }
.cs-tab-btn { border:1px solid transparent; background:transparent; border-radius:999px; padding:8px 11px; cursor:pointer; color:#475569; font-weight:800; white-space:nowrap; }
.cs-tab-btn.is-active { border-color:rgba(37,99,235,.25); background:#eff6ff; color:#1d4ed8; }
.cs-tab-panel { padding:16px; display:none; }
.cs-tab-panel.is-active { display:block; }
.cs-info-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px; }
.cs-info-box { border:1px solid var(--cs-border); border-radius:16px; padding:12px; background:#fff; }
.cs-info-label { font-size:11px; text-transform:uppercase; letter-spacing:.04em; font-weight:900; color:var(--cs-muted); }
.cs-info-value { margin-top:6px; font-weight:800; color:var(--cs-text); word-break:break-word; }
.cs-section-title { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; margin: 4px 0 12px; }
.cs-section-title h4 { margin:0; color:var(--cs-text); }
.cs-empty { border:1px dashed rgba(148,163,184,.55); border-radius:18px; padding:18px; color:var(--cs-muted); text-align:center; background:#f8fafc; }
.cs-table-wrap { overflow:auto; border:1px solid var(--cs-border); border-radius:18px; }
.cs-table { width:100%; border-collapse:collapse; min-width:760px; }
.cs-table th, .cs-table td { padding:10px 12px; border-bottom:1px solid rgba(148,163,184,.18); text-align:left; vertical-align:top; }
.cs-table th { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--cs-muted); background:#f8fafc; }
.cs-table td { font-size:13px; color:var(--cs-text); }
.cs-progress { height:10px; border-radius:999px; background:#e2e8f0; overflow:hidden; }
.cs-progress span { display:block; height:100%; background:linear-gradient(90deg, #2563eb, #22c55e); border-radius:inherit; }
.cs-timeline { display:grid; gap:10px; }
.cs-timeline-item { display:grid; grid-template-columns: 110px 1fr; gap:12px; padding:12px; border:1px solid var(--cs-border); border-radius:16px; background:#fff; }
.cs-timeline-date { color:var(--cs-muted); font-size:12px; font-weight:800; }
.cs-timeline-title { font-weight:900; color:var(--cs-text); }
.cs-timeline-text { color:var(--cs-muted); font-size:13px; margin-top:4px; }

.cs-modal { position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(15,23,42,.55); z-index: 10000; padding:18px; }
.cs-modal.is-open { display:flex; }
.cs-modal-card { width:min(920px, 96vw); max-height:90vh; overflow:auto; background:#fff; border-radius:22px; box-shadow:0 28px 90px rgba(15,23,42,.32); }
.cs-modal-head { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--cs-border); }
.cs-modal-head h3 { margin:0; }
.cs-form { padding:16px 18px 18px; display:grid; gap:12px; }
.cs-form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }
.cs-form-field { display:grid; gap:5px; }
.cs-form-field label { color:var(--cs-muted); font-size:12px; font-weight:800; }
.cs-form-field textarea { min-height:90px; resize:vertical; }
.cs-form-field--full { grid-column:1 / -1; }
.cs-question-grid { display:grid; gap:10px; }
.cs-question-row { display:grid; grid-template-columns: minmax(0,1fr) 170px; gap:10px; align-items:center; border:1px solid rgba(148,163,184,.24); border-radius:14px; padding:10px; }
.cs-modal-actions { display:flex; justify-content:flex-end; gap:8px; border-top:1px solid var(--cs-border); padding-top:12px; }
.cs-state { color:var(--cs-muted); }
.cs-danger { color:#b91c1c; }

@media (max-width: 1180px) { .cs-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .cs-layout { grid-template-columns:1fr; } .cs-sidebar { position:relative; top:0; max-height:none; } }
@media (max-width: 720px) { .cs-kpi-grid, .cs-info-grid, .cs-form-grid { grid-template-columns:1fr; } .cs-timeline-item { grid-template-columns:1fr; } .cs-question-row { grid-template-columns:1fr; } }
body.dark .client-success-module, .dark .client-success-module { --cs-bg:#020617; --cs-card:#0f172a; --cs-border:rgba(148,163,184,.22); --cs-text:#e5e7eb; --cs-muted:#94a3b8; --cs-soft:#111827; }
body.dark .cs-client-card, body.dark .cs-info-box, body.dark .cs-modal-card, body.dark .cs-table td, body.dark .cs-health-ring, body.dark .cs-timeline-item { background:#0f172a; color:#e5e7eb; }
body.dark .cs-table th, body.dark .cs-empty { background:#111827; }

.cs-edit-table input.input { min-width: 92px; padding: 8px 9px; }
.cs-completion-preview { font-weight: 900; color: var(--cs-text); white-space: nowrap; }
.cs-table td:nth-child(2), .cs-table td:nth-child(3), .cs-table td:nth-child(4), .cs-table td:nth-child(5), .cs-table td:nth-child(6) { white-space: nowrap; }



/* Client Success 360 modern dashboard refresh */
.client-success-module {
  --cs-good:#16a34a;
  --cs-blue-accent:#2563eb;
  --cs-orange:#f97316;
  --cs-red:#ef4444;
  --cs-purple:#7c3aed;
}

.client-success-root { gap: 14px; }

.cs-hero-header {
  border-radius: 24px;
  padding: 22px 24px;
  background:
    radial-gradient(circle at top right, rgba(37,99,235,.10), transparent 34%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
}

.cs-hero-copy h2 {
  font-size: clamp(28px, 3vw, 38px);
  letter-spacing: -.03em;
}

.cs-header-actions .btn {
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(15,23,42,.05);
}

.cs-kpi-grid--modern {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
}

.cs-kpi-card {
  border-radius: 18px;
  min-height: 112px;
  padding: 16px 18px;
  background: linear-gradient(180deg, #fff, #fbfdff);
}

.cs-kpi-card::after { display:none; }

.cs-kpi-icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 18px;
  margin-bottom: 10px;
  background: #eff6ff;
  color: #2563eb;
}

.cs-kpi-card--green .cs-kpi-icon { background:#dcfce7; color:#16a34a; }
.cs-kpi-card--red .cs-kpi-icon { background:#fee2e2; color:#dc2626; }
.cs-kpi-card--warn .cs-kpi-icon { background:#ffedd5; color:#ea580c; }
.cs-kpi-card--blue .cs-kpi-icon { background:#eff6ff; color:#2563eb; }

.cs-kpi-card--green .cs-kpi-value { color:#166534; }
.cs-kpi-card--red .cs-kpi-value { color:#991b1b; }
.cs-kpi-card--warn .cs-kpi-value { color:#9a3412; }

.cs-dashboard {
  display:grid;
  gap: 14px;
}

.cs-dashboard-top {
  display:grid;
  grid-template-columns: minmax(330px, 1.3fr) minmax(300px, .95fr) minmax(270px, .75fr) minmax(260px, .75fr);
  gap: 14px;
  align-items: stretch;
}

.cs-dashboard-bottom {
  display:grid;
  grid-template-columns: 1fr 260px;
  gap: 14px;
}

.cs-analytics-card {
  background: var(--cs-card);
  border: 1px solid var(--cs-border);
  border-radius: 20px;
  box-shadow: 0 16px 36px rgba(15,23,42,.07);
  padding: 16px;
  overflow: hidden;
}

.cs-analytics-card .cs-section-title {
  margin: 0 0 14px;
}

.cs-section-title small {
  color: var(--cs-muted);
  font-size: 12px;
  font-weight: 700;
}

.cs-section-title span {
  font-size: 12px;
  color: var(--cs-muted);
  font-weight: 700;
}

.cs-breakdown-stack {
  position: relative;
  display:flex;
  height: 42px;
  border-radius: 12px;
  overflow:hidden;
  background:#eef2f7;
  margin: 18px 0 14px;
}

.cs-breakdown-seg {
  position:relative;
  min-width: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight: 900;
  font-size: 12px;
}

.cs-breakdown-seg em {
  position:absolute;
  top: 52px;
  left: 0;
  display:none;
}

.cs-breakdown-seg.done { background: var(--cs-good); }
.cs-breakdown-seg.late { background: var(--cs-blue-accent); }
.cs-breakdown-seg.partial { background: var(--cs-orange); }
.cs-breakdown-seg.missed { background: var(--cs-red); }

.cs-breakdown-axis {
  display:flex;
  justify-content:space-between;
  color: var(--cs-muted);
  font-size: 11px;
  padding-top: 7px;
  border-top: 1px solid rgba(148,163,184,.20);
}

.cs-breakdown-legend {
  display:flex;
  flex-wrap:wrap;
  gap: 16px;
  margin-top: 14px;
  color: var(--cs-text);
  font-size: 12px;
}

.cs-breakdown-legend span,
.cs-status-lines div {
  display:flex;
  align-items:center;
  gap: 8px;
}

.cs-breakdown-legend i,
.cs-status-lines i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.cs-breakdown-legend .done,
.cs-status-lines .done { background: var(--cs-good); }
.cs-breakdown-legend .late,
.cs-status-lines .late { background: var(--cs-blue-accent); }
.cs-breakdown-legend .partial,
.cs-status-lines .partial { background: var(--cs-orange); }
.cs-breakdown-legend .missed,
.cs-status-lines .missed { background: var(--cs-red); }

.cs-trend-svg {
  width:100%;
  min-height: 130px;
  display:block;
}

.cs-trend-svg .axis {
  stroke: rgba(148,163,184,.35);
  stroke-width:1;
}

.cs-trend-svg .line {
  fill:none;
  stroke: var(--cs-blue-accent);
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cs-trend-svg .points circle {
  fill: var(--cs-blue-accent);
  stroke: #fff;
  stroke-width: 2;
}

.cs-trend-svg .labels text {
  font-size: 10px;
  fill: var(--cs-muted);
}

.cs-status-card {
  display:grid;
  grid-template-rows:auto 1fr;
}

.cs-donut-mini {
  width: 138px;
  height: 138px;
  border-radius: 999px;
  margin: 6px auto 12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  color: var(--cs-text);
}

.cs-donut-mini::after {
  content:"";
  position:absolute;
  inset: 30px;
  border-radius:999px;
  background: var(--cs-card);
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.18);
}

.cs-donut-mini strong,
.cs-donut-mini span {
  z-index:1;
}

.cs-donut-mini strong {
  font-size: 30px;
  font-weight: 950;
}

.cs-donut-mini span {
  font-size: 11px;
  color: var(--cs-muted);
  font-weight: 800;
}

.cs-status-lines {
  display:grid;
  gap: 9px;
  font-size: 12px;
}

.cs-status-lines div {
  display:grid;
  grid-template-columns: 8px 1fr auto;
}

.cs-insights-card {
  display:grid;
  gap: 10px;
}

.cs-insight-row {
  border-radius: 14px;
  padding: 10px 12px;
  display:grid;
  gap: 4px;
  font-size: 12px;
  border: 1px solid rgba(148,163,184,.20);
}

.cs-insight-row b {
  color: var(--cs-text);
}

.cs-insight-row span {
  color: var(--cs-muted);
}

.cs-insight-row.good { background:#f0fdf4; }
.cs-insight-row.warn { background:#fff7ed; }
.cs-insight-row.danger { background:#fef2f2; }

.cs-full-width { width:100%; justify-content:center; }

.cs-compact-table-wrap {
  overflow:auto;
  border: 1px solid rgba(148,163,184,.22);
  border-radius: 14px;
}

.cs-compact-table {
  width:100%;
  border-collapse:collapse;
  min-width: 720px;
}

.cs-compact-table th {
  text-align:left;
  padding: 10px 12px;
  font-size: 11px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color: var(--cs-muted);
  background:#f8fafc;
  border-bottom:1px solid rgba(148,163,184,.20);
}

.cs-compact-table td {
  padding: 10px 12px;
  border-bottom:1px solid rgba(148,163,184,.14);
  color: var(--cs-text);
  font-size: 12px;
}

.cs-compact-table td small {
  display:block;
  color: var(--cs-muted);
  margin-top: 3px;
}

.cs-compact-table .good { color: var(--cs-good); font-weight:900; }
.cs-compact-table .danger { color: var(--cs-red); font-weight:900; }

.cs-quick-card {
  display:grid;
  gap: 9px;
  align-content:start;
}

.cs-quick-card button {
  border: 0;
  background: transparent;
  color: var(--cs-text);
  display:flex;
  align-items:center;
  gap: 10px;
  text-align:left;
  font-weight:800;
  padding: 9px 8px;
  border-radius: 12px;
  cursor:pointer;
}

.cs-quick-card button:hover {
  background:#eff6ff;
  color:#1d4ed8;
}

.cs-quick-card button span {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  display:grid;
  place-items:center;
  background:#eff6ff;
  color:#2563eb;
}

.cs-mini-note {
  margin-top: 8px;
  padding: 10px;
  border-radius: 12px;
  background:#f8fafc;
  color: var(--cs-muted);
  font-size: 12px;
  line-height: 1.45;
}

.cs-mini-empty {
  min-height: 130px;
  display:grid;
  place-items:center;
}

.cs-layout {
  grid-template-columns: 330px minmax(0, 1fr);
}

.cs-sidebar {
  border-radius: 20px;
}

.cs-detail {
  border-radius: 20px;
}

.cs-detail-head {
  background:
    radial-gradient(circle at right, rgba(37,99,235,.08), transparent 36%),
    linear-gradient(135deg, #ffffff, #f8fbff);
}

@media (max-width: 1500px) {
  .cs-kpi-grid--modern { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cs-dashboard-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1050px) {
  .cs-dashboard-top, .cs-dashboard-bottom { grid-template-columns: 1fr; }
  .cs-kpi-grid--modern { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .cs-kpi-grid--modern { grid-template-columns: 1fr; }
}


.cs-brand-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 8px; border-radius:999px; background:#eef2ff; color:#3730a3; font-size:11px; font-weight:900; }
.cs-row-error input { border-color:#ef4444!important; background:#fff1f2!important; }


.cs-table td .btn { margin: 2px 4px 2px 0; }
.cs-brand-actions { display:flex; gap:6px; flex-wrap:wrap; }
#csBrandAssignedLocations { margin-bottom: 4px; }


.cs-table td .select[data-brand-location-move-select] { min-width: 160px; }
.cs-mini-note strong { color: var(--cs-text); }


.cs-brand-location-table .cs-table { min-width: 860px; }
.cs-brand-location-table td strong { color: var(--cs-text); }
.cs-modal-card { width: min(1180px, 96vw); }
.cs-table button[disabled] { opacity: .55; cursor: not-allowed; }
.cs-mini-note strong { color: var(--cs-text); }


.cs-brand-assign-btn {
  cursor: pointer;
  position: relative;
  z-index: 2;
}
.cs-brand-location-table .btn {
  pointer-events: auto;
}


/* Customer Success role access */
.client-success-root.is-readonly [data-cs-write-action],
.client-success-root.is-readonly [data-cs-action="completion"],
.client-success-root.is-readonly [data-cs-action="group"],
.client-success-root.is-readonly [data-cs-action="group-member"],
.client-success-root.is-readonly [data-cs-action="group-activity"],
.client-success-root.is-readonly [data-cs-action="brand"],
.client-success-root.is-readonly [data-cs-action="brand-location"],
.client-success-root.is-readonly [data-cs-action="brand-location-assign"],
.client-success-root.is-readonly [data-cs-action="brand-location-remove"],
.client-success-root.is-readonly [data-cs-action="brand-location-move"],
.client-success-root.is-readonly [data-cs-action="review"],
.client-success-root.is-readonly [data-cs-action="task"],
.client-success-root.is-readonly [data-cs-action="risk"],
.client-success-root.is-readonly [data-cs-action="qbr"],
.client-success-root.is-readonly [data-cs-action="contact"],
.client-success-root.is-readonly [data-cs-action="contact-assign"] {
  display: none !important;
}
.client-success-root.is-readonly .cs-admin-chip {
  background: #eef2ff;
  color: #3730a3;
  border-color: #c7d2fe;
}

.cs-special-filter { margin: 0 0 12px; grid-template-columns: minmax(180px, 240px) 1fr; }
.cs-table td small { display:block; color: var(--cs-muted); margin-top: 3px; }
.cs-row-error input { border-color: #ef4444 !important; box-shadow: 0 0 0 2px rgba(239,68,68,.12); }

.cs-client-select-controls,
.cs-client-select-field {
  display: grid;
  gap: 6px;
}
.cs-client-select-controls {
  margin-bottom: 10px;
}
.cs-client-select-controls label,
.cs-client-select-field label {
  font-size: 12px;
  font-weight: 900;
  color: var(--cs-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.cs-client-select-search {
  width: 100%;
}
.cs-client-select-pagination {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 14px;
  background: #f8fafc;
}
.cs-client-select-pagination .btn[disabled] {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.cs-client-select-page-info {
  color: var(--cs-muted);
  font-size: 12px;
  font-weight: 800;
}
.cs-client-select-page-size {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--cs-muted);
  font-size: 12px;
  font-weight: 800;
}
.cs-client-select-page-size .select {
  min-width: 76px;
  padding: 6px 8px;
}


/* CS360 save/persistence reliability */
.cs-modal.is-open,
.cs-modal.is-open .cs-modal-card,
.cs-modal.is-open .cs-form,
.cs-modal.is-open .cs-modal-actions {
  pointer-events: auto;
}

.cs-modal-actions {
  position: sticky;
  bottom: 0;
  z-index: 20;
  background: var(--cs-card, #fff);
  padding-bottom: 4px;
}

.cs-modal-actions button[type="submit"],
.cs-special-client-save-btn,
[data-cs-modal-submit="true"] {
  position: relative;
  z-index: 21;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.cs-modal-actions button[type="submit"][aria-busy="true"] {
  cursor: wait !important;
  opacity: .72;
}


/* CS360 complete client visibility + standalone Special CS Client separation */
.cs-sidebar-section {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.cs-sidebar-section--special {
  border-top: 1px solid var(--cs-border);
  padding-top: 14px;
  margin-top: 16px;
}

.cs-sidebar-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--cs-muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: 0 4px;
}

.cs-sidebar-section-title b {
  min-width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--cs-soft);
  color: var(--cs-text);
}

.cs-client-card--special {
  border-style: dashed;
  background:
    radial-gradient(circle at right top, rgba(124,58,237,.10), transparent 42%),
    var(--cs-card);
}

.cs-client-card--special.is-active {
  border-color: #7c3aed;
  box-shadow: 0 0 0 2px rgba(124,58,237,.12);
}

.cs-client-source-badge {
  display: inline-flex;
  align-items: center;
  max-width: 150px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.cs-client-source-badge--special {
  background: #f3e8ff;
  color: #7e22ce;
}

.cs-detail-head--special {
  border: 1px dashed rgba(124,58,237,.40);
  background:
    radial-gradient(circle at right, rgba(124,58,237,.12), transparent 38%),
    linear-gradient(135deg, #fff, #faf5ff);
}

.cs-detail-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.cs-completion-normal-fields {
  display: contents;
}

body.dark .cs-detail-head--special,
.dark .cs-detail-head--special {
  background:
    radial-gradient(circle at right, rgba(124,58,237,.18), transparent 38%),
    #0f172a;
}


/* CS360 all completion history */
.cs-completion-history {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 2px solid var(--cs-border);
  display: grid;
  gap: 14px;
}

.cs-completion-history-filters {
  display: grid;
  grid-template-columns: repeat(6, minmax(140px, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--cs-border);
  border-radius: 16px;
  background: var(--cs-soft);
}

.cs-completion-history-search {
  grid-column: span 2;
}

.cs-completion-history-kpis {
  margin: 0;
}

.cs-completion-history-subtitle {
  margin-top: 4px;
}

.cs-history-period-table {
  min-width: 980px;
}

.cs-history-detail-table {
  min-width: 1380px;
}

.cs-completion-history-pagination {
  justify-content: flex-end;
  margin-top: 2px;
}

.cs-history-open-btn {
  margin-top: 10px;
  justify-self: start;
}

@media (max-width: 1300px) {
  .cs-completion-history-filters {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }

  .cs-completion-history-search {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .cs-completion-history-filters {
    grid-template-columns: 1fr;
  }

  .cs-completion-history-search {
    grid-column: auto;
  }

  .cs-completion-history-pagination {
    justify-content: center;
    flex-wrap: wrap;
  }
}


/* CS360 duplicate client-name protection */
.cs-client-card [data-cs-duplicate-merged] {
  font-weight: 800;
}


/* CS360 company UUID write safety */
.cs-company-link-warning {
  margin-top: 8px;
}
