/* ==========================================================================
   SURVALE 2026 - Solution Page Styles
   ========================================================================== */

/* --------------------------------------------------------------------------
   SOLUTION HERO
   -------------------------------------------------------------------------- */
.solution-hero {
    padding: calc(var(--header-height) + var(--notif-bar-height, 0px) + 24px) 0 var(--space-12);
    background: linear-gradient(180deg, var(--color-gray-100) 0%, var(--color-white) 100%);
    overflow: hidden;
}

.solution-hero__content {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-12);
    align-items: center;
}

.solution-hero__text .section-eyebrow {
    margin-bottom: var(--space-4);
}

.solution-hero h1 {
    font-size: clamp(2rem, 5vw, 3.25rem);
    margin-bottom: var(--space-6);
}

.solution-hero__description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    line-height: 1.7;
    max-width: 540px;
    margin-bottom: var(--space-6);
}

.solution-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.solution-hero__image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
}

/* Solution hero visual container */
.solution-hero__visual {
    width: 100%;
    min-width: 0;
}

/* Solution hero graphic (fallback illustration) */
.solution-hero__graphic {
    position: relative;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
}

.sh-graphic__window {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    overflow: hidden;
}

.sh-graphic__titlebar {
    display: flex;
    gap: 6px;
    padding: 12px 16px;
    background: var(--color-gray-50);
    border-bottom: 1px solid var(--color-gray-200);
}

.sh-graphic__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.sh-graphic__dot--red { background: #ff6b6b; }
.sh-graphic__dot--yellow { background: #ffd93d; }
.sh-graphic__dot--green { background: #6bcb77; }

.sh-graphic__body {
    display: grid;
    grid-template-columns: 48px 1fr;
    min-height: 240px;
}

.sh-graphic__sidebar {
    background: var(--color-gray-50);
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-right: 1px solid var(--color-gray-100);
}

.sh-graphic__sidebar--indigo {
    background: #1e1b4b;
    padding: 10px 8px;
    align-items: center;
    gap: 4px;
    border-right: none;
    grid-column: 1;
}

.sh-graphic__sidebar--indigo ~ .sh-graphic__main {
    padding: 14px;
}

.sh-graphic__sidebar-logo {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: linear-gradient(135deg, #58a415 0%, #3d7a0f 100%);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}

.sh-graphic__nav-item {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-sm);
    background: var(--color-gray-200);
}

.sh-graphic__nav-item--indigo {
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.4);
    width: 32px;
    height: 32px;
}

.sh-graphic__nav-item--indigo.sh-graphic__nav-item--active {
    background: rgba(255,255,255,0.15);
    color: #fff;
    opacity: 1;
}

.sh-graphic__nav-item--active {
    background: var(--color-green);
    opacity: 0.3;
}

.sh-graphic__main {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-graphic__survey-card {
    padding: var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-graphic__survey-header {
    width: 70%;
    height: 8px;
    background: var(--color-gray-200);
    border-radius: 4px;
    margin-bottom: var(--space-3);
}

.sh-graphic__survey-comment {
    font-size: var(--font-size-sm);
    font-style: italic;
    color: var(--color-orange);
    line-height: 1.5;
    margin-bottom: var(--space-3);
}

.sh-graphic__survey-bar {
    height: 6px;
    border-radius: 3px;
    margin-bottom: 6px;
}

.sh-graphic__survey-bar--full {
    width: 100%;
    background: var(--color-green);
    opacity: 0.4;
}

.sh-graphic__survey-bar--partial {
    width: 60%;
    background: var(--color-gray-200);
}

.sh-graphic__trigger-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--color-green-light);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-green-dark);
    align-self: flex-start;
}

/* Solution hero — default variant vivid enhancements */
.sh-default__metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}

.sh-default__metric {
    background: var(--color-white);
    border: 1px solid var(--color-gray-100);
    border-radius: var(--radius-sm);
    padding: 10px;
    border-top: 3px solid var(--color-gray-200);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sh-default__metric--green { border-top-color: var(--color-green); }
.sh-default__metric--orange { border-top-color: var(--color-orange); }

.sh-default__metric-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}

.sh-default__metric-value {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text);
}

.sh-default__metric--green .sh-default__metric-value { color: var(--color-green); }
.sh-default__metric--orange .sh-default__metric-value { color: var(--color-orange); }

.sh-graphic__survey-card--vivid {
    border-left: 3px solid var(--color-orange);
    background: #fff8f3;
}

.sh-default__card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-2);
}

.sh-default__card-stage {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sh-default__card-tag {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 10px;
    background: #fee2e2;
    color: #dc2626;
}

.sh-default__sentiment {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sh-default__sentiment-bar {
    flex: 1;
    height: 6px;
    background: var(--color-gray-100);
    border-radius: 3px;
    overflow: hidden;
}

.sh-default__sentiment-fill--negative {
    height: 100%;
    background: linear-gradient(90deg, #dc2626, #f87171);
    border-radius: 3px;
}

.sh-default__sentiment-label {
    font-size: 10px;
    font-weight: 600;
    color: #dc2626;
    white-space: nowrap;
}

/* Solution hero — auto-survey variant */
.sh-auto__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.sh-auto__trigger {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: var(--space-3) var(--space-5);
    background: var(--color-green-light);
    border: 1px solid var(--color-green);
    border-radius: var(--radius-md);
}

.sh-auto__trigger-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-green-dark);
}

.sh-auto__trigger-sub {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.sh-auto__connector {
    display: flex;
    justify-content: center;
    padding: 4px 0;
}

.sh-auto__channels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    width: 100%;
}

.sh-auto__channel {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    overflow: hidden;
}

.sh-auto__channel--sent {
    border-color: var(--color-green);
    color: var(--color-green-dark);
}

.sh-auto__channel--queued {
    border-color: var(--color-gray-300);
    color: var(--color-text-muted);
}

.sh-auto__status {
    margin-left: auto;
    font-size: var(--font-size-xs);
    font-weight: 400;
}

.sh-auto__channel--sent .sh-auto__status {
    color: var(--color-green);
}

.sh-auto__channel--queued .sh-auto__status {
    color: var(--color-text-muted);
}

.sh-auto__response {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-auto__response-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}

.sh-auto__response-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.sh-auto__response-value {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-green-dark);
}

.sh-auto__response-bar {
    height: 6px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-auto__response-fill {
    width: 43%;
    height: 100%;
    background: var(--color-green);
    border-radius: 3px;
}

/* Solution hero — qoh-dashboard variant */
.sh-qoh__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-qoh__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-qoh__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-qoh__header-score {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-green-dark);
}

.sh-qoh__header-max {
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-text-muted);
}

.sh-qoh__timeline {
    display: flex;
    align-items: center;
    gap: 0;
}

.sh-qoh__milestone {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.sh-qoh__milestone-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-qoh__milestone-score {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.sh-qoh__milestone-bar {
    width: 100%;
    height: 5px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-qoh__milestone-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 3px;
    transition: width 0.6s ease;
}

.sh-qoh__milestone-fill--strong {
    background: var(--color-green-dark);
}

.sh-qoh__timeline-line {
    width: 16px;
    height: 2px;
    background: var(--color-gray-300);
    flex-shrink: 0;
    align-self: center;
    margin-top: 12px;
}

.sh-qoh__perspectives {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.sh-qoh__perspective {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-qoh__perspective--green {
    border-color: var(--color-green);
}

.sh-qoh__perspective--orange {
    border-color: var(--color-orange);
}

.sh-qoh__perspective-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
}

.sh-qoh__perspective-score {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
    margin-left: auto;
}

.sh-qoh__perspective-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sh-qoh__perspective-dot--green {
    background: var(--color-green);
}

.sh-qoh__perspective-dot--orange {
    background: var(--color-orange);
}

.sh-qoh__trend {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px var(--space-3);
    background: var(--color-green-light);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
}

/* -- Employee Lifecycle NPS (employee-nps variant) -- */
.sh-enps__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-enps__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-enps__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-enps__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: var(--color-gray-100);
    color: var(--color-text-muted);
}

.sh-enps__chart {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sh-enps__bar-group {
    display: grid;
    grid-template-columns: 72px 1fr 32px;
    align-items: center;
    gap: 8px;
}

.sh-enps__bar-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-align: right;
}

.sh-enps__bar-track {
    height: 18px;
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.sh-enps__bar-fill {
    height: 100%;
    border-radius: var(--radius-sm);
    transition: width 0.6s ease;
}

.sh-enps__bar-fill--green {
    background: var(--color-green);
}

.sh-enps__bar-fill--yellow {
    background: #f59e0b;
}

.sh-enps__bar-value {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.sh-enps__scale-labels {
    display: grid;
    grid-template-columns: 72px 1fr 32px;
    gap: 8px;
}

.sh-enps__scale-labels span:first-child {
    visibility: hidden;
}

.sh-enps__scale-labels span:nth-child(2) {
    text-align: left;
    font-size: 9px;
    color: var(--color-text-muted);
}

.sh-enps__scale-labels span:last-child {
    font-size: 9px;
    color: var(--color-text-muted);
    text-align: right;
}

.sh-enps__qoh {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-enps__qoh-left {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sh-enps__qoh-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-enps__qoh-score {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 800;
    color: var(--color-green-dark);
}

.sh-enps__qoh-max {
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-text-muted);
}

.sh-enps__qoh-ring {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-enps__ring-pct {
    position: absolute;
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-muted);
}

/* -- ATS Connection hero (ats-connection variant) -- */
.sh-atsc__body {
    padding: 0 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-atsc__vendor-banner {
    background: linear-gradient(135deg, var(--color-indigo, #4f46e5) 0%, #6366f1 100%);
    margin: 0 -16px;
    padding: 20px 20px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.sh-atsc__vendor-name {
    font-size: 1.6rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
    line-height: 1;
}

.sh-atsc__vendor-tag {
    font-size: 0.8rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.7);
}

.sh-atsc__vendor-banner--greenhouse {
    background: linear-gradient(135deg, #2e7d32 0%, #43a047 100%);
}

.sh-atsc__vendor-banner--oracle {
    background: linear-gradient(135deg, #c74634 0%, #e05a47 100%);
}

.sh-atsc__vendor-banner--ukg {
    background: linear-gradient(135deg, #005f3b 0%, #00875a 100%);
}

.sh-atsc__vendor-banner--icims {
    background: linear-gradient(135deg, #0b5394 0%, #1a73c7 100%);
}

.so-graphic__tef-marker-dot--icims {
    background: #0b5394;
    box-shadow: 0 0 0 3px rgba(11, 83, 148, 0.15);
}

.sh-atsc__vendor-banner--sr {
    background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
}

.so-graphic__tef-marker-dot--sr {
    background: #1a237e;
    box-shadow: 0 0 0 3px rgba(26, 35, 126, 0.15);
}

.sh-atsc__vendor-banner--jobvite {
    background: linear-gradient(135deg, #f26522 0%, #f5874b 100%);
}

.so-graphic__tef-marker-dot--jobvite {
    background: #f26522;
    box-shadow: 0 0 0 3px rgba(242, 101, 34, 0.15);
}

.sh-atsc__vendor-banner--ams {
    background: linear-gradient(135deg, #1b3a5c 0%, #2d5f8a 100%);
}

.so-graphic__tef-marker-dot--ams {
    background: #1b3a5c;
    box-shadow: 0 0 0 3px rgba(27, 58, 92, 0.15);
}

.sh-atsc__vendor-banner--phenom {
    background: linear-gradient(135deg, #4f46e5 0%, #6366f1 100%);
}

.sh-atsc__vendor-banner--radancy {
    background: linear-gradient(135deg, #0055a5 0%, #1976d2 100%);
}

/* --------------------------------------------------------------------------
   CAREER SITE FEEDBACK HERO
   -------------------------------------------------------------------------- */
.sh-csf__body {
    padding: 0;
    display: flex;
    flex-direction: column;
}

.sh-csf__site {
    padding: 10px 14px 14px;
}

.sh-csf__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    background: #f8fafc;
    border-radius: 6px;
    margin-bottom: 10px;
}

.sh-csf__nav-logo {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.sh-csf__nav-links {
    display: flex;
    gap: 10px;
}

.sh-csf__nav-link {
    font-size: 0.6rem;
    color: var(--color-gray-500);
    font-weight: 500;
}

.sh-csf__content {
    display: flex;
    gap: 10px;
}

.sh-csf__jobs {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-csf__job-card {
    padding: 8px 10px;
    background: #f8fafc;
    border-radius: 6px;
    border: 1px solid var(--color-gray-200);
}

.sh-csf__job-card--faded {
    opacity: 0.45;
}

.sh-csf__job-title {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-gray-800);
}

.sh-csf__job-meta {
    font-size: 0.58rem;
    color: var(--color-gray-400);
}

.sh-csf__widget {
    width: 130px;
    flex-shrink: 0;
    padding: 10px;
    background: #fff;
    border: 1.5px solid var(--color-green);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    box-shadow: 0 2px 8px rgba(88, 164, 21, 0.1);
    position: relative;
}

.sh-csf__widget-header {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--color-green);
}

.sh-csf__widget-q {
    font-size: 0.58rem;
    color: var(--color-gray-700);
    line-height: 1.3;
    margin: 0;
}

.sh-csf__widget-stars {
    display: flex;
    gap: 2px;
}

.sh-csf__star {
    font-size: 0.85rem;
    color: var(--color-gray-200);
    line-height: 1;
}

.sh-csf__star--filled {
    color: #facc15;
}

.sh-csf__widget-btn {
    font-size: 0.56rem;
    font-weight: 600;
    color: #fff;
    background: var(--color-green);
    padding: 3px 0;
    border-radius: 4px;
    text-align: center;
}

.sh-csf__widget-badge {
    position: absolute;
    top: -8px;
    right: -6px;
    font-size: 0.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #fff;
    background: var(--color-green);
    padding: 2px 6px;
    border-radius: 8px;
}

/* --------------------------------------------------------------------------
   CAREER SITE SURVEY WIDGET (Overview)
   -------------------------------------------------------------------------- */
.so-graphic__csw-layout {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.so-graphic__csw-tab {
    writing-mode: vertical-lr;
    transform: rotate(180deg);
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 6px;
    background: var(--color-green);
    color: #fff;
    font-size: 0.6rem;
    font-weight: 700;
    border-radius: 0 6px 6px 0;
    flex-shrink: 0;
}

.so-graphic__csw-survey {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__csw-question {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.so-graphic__csw-q-num {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(79, 70, 229, 0.1);
    color: var(--color-indigo, #4f46e5);
    font-size: 0.6rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.so-graphic__csw-q-text {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-gray-800);
    line-height: 1.3;
}

.so-graphic__csw-stars {
    display: flex;
    gap: 3px;
    padding-left: 24px;
}

.so-graphic__csw-star {
    font-size: 1rem;
    color: var(--color-gray-200);
    line-height: 1;
}

.so-graphic__csw-star--filled {
    color: #facc15;
}

.so-graphic__csw-options {
    display: flex;
    gap: 6px;
    padding-left: 24px;
}

.so-graphic__csw-option {
    font-size: 0.62rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 12px;
    background: var(--color-gray-100);
    color: var(--color-gray-500);
}

.so-graphic__csw-option--selected {
    background: rgba(79, 70, 229, 0.1);
    color: var(--color-indigo, #4f46e5);
}

.so-graphic__csw-textarea {
    margin-left: 24px;
    height: 28px;
    border: 1px solid var(--color-gray-200);
    border-radius: 6px;
    background: #f8fafc;
}

.so-graphic__csw-textarea--lg {
    height: 72px;
}

.so-graphic__csw-nps {
    margin-left: 24px;
    display: grid;
    grid-template-columns: repeat(11, 1fr);
    gap: 3px;
}

.so-graphic__csw-nps-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1;
    font-size: 0.62rem;
    font-weight: 700;
    border-radius: 4px;
    border: 1px solid var(--color-gray-200);
    background: #fff;
    color: #4b5563;
}

.so-graphic__csw-nps-btn--low { color: #b91c1c; border-color: #fecaca; background: #fef2f2; }
.so-graphic__csw-nps-btn--mid { color: #b45309; border-color: #fed7aa; background: #fffbeb; }
.so-graphic__csw-nps-btn--high { color: var(--color-green-dark, #3d7a0f); border-color: #bbf7d0; background: #f0fdf4; }

.so-graphic__csw-nps-btn--selected {
    background: var(--color-green);
    color: #fff;
    border-color: var(--color-green);
}

.so-graphic__csw-nps-scale {
    margin-left: 24px;
    display: flex;
    justify-content: space-between;
    font-size: 0.56rem;
    color: #6b7280;
    font-weight: 500;
}

/* --------------------------------------------------------------------------
   CAREER SITE INSIGHT LAYERS (Overview)
   -------------------------------------------------------------------------- */
.so-graphic__cil-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.so-graphic__cil-layer {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__cil-layer--perception {
    background: rgba(79, 70, 229, 0.06);
    border: 1px solid rgba(79, 70, 229, 0.15);
}

.so-graphic__cil-layer--behavioral {
    background: var(--color-gray-100);
    border: 1px solid var(--color-gray-200);
}

.so-graphic__cil-layer-label {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.so-graphic__cil-layer--perception .so-graphic__cil-layer-label {
    color: var(--color-indigo, #4f46e5);
}

.so-graphic__cil-metrics {
    display: flex;
    justify-content: space-around;
}

.so-graphic__cil-metric {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__cil-metric-val {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-gray-900);
}

.so-graphic__cil-layer--perception .so-graphic__cil-metric-val {
    color: var(--color-indigo, #4f46e5);
}

.so-graphic__cil-metric-name {
    font-size: 0.58rem;
    color: var(--color-gray-500);
    font-weight: 500;
}

.so-graphic__cil-caption {
    font-size: 0.58rem;
    font-weight: 600;
    font-style: italic;
    color: var(--color-gray-400);
    text-align: center;
}

.so-graphic__cil-layer--perception .so-graphic__cil-caption {
    color: var(--color-indigo, #4f46e5);
}

.so-graphic__cil-connector {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
}

.so-graphic__cil-connector-label {
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-gray-400);
}

.sh-atsc__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-atsc__header-label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.sh-atsc__status-badge {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-green);
    background: rgba(88, 164, 21, 0.1);
    padding: 3px 10px;
    border-radius: 12px;
}

.sh-atsc__status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-green);
}

.sh-atsc__connection {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 0;
}

.sh-atsc__node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.sh-atsc__node-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-atsc__node-icon--vendor {
    background: rgba(79, 70, 229, 0.08);
}

.sh-atsc__node-icon--survale {
    background: rgba(88, 164, 21, 0.08);
}

.sh-atsc__node-name {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.sh-atsc__sync-line {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.sh-atsc__sync-label {
    font-size: 0.6rem;
    color: var(--color-green);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sh-atsc__events {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: #f9fafb;
    border-radius: 8px;
    padding: 10px 12px;
}

.sh-atsc__events-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.sh-atsc__events-count {
    font-weight: 500;
    color: var(--color-gray-400);
    font-size: 0.65rem;
}

.sh-atsc__event {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
}

.sh-atsc__event-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sh-atsc__event-dot--green {
    background: var(--color-green);
}

.sh-atsc__event-type {
    font-weight: 600;
    color: var(--color-gray-700);
}

.sh-atsc__event-action {
    color: var(--color-gray-400);
    font-size: 0.68rem;
}

.sh-enps__rings {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    justify-items: center;
}

.sh-enps__ring-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    position: relative;
}

.sh-enps__ring-val {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -70%);
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-gray-900);
}

.sh-enps__ring-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-gray-500);
    margin-top: -2px;
}

/* -- Onboarding NPS (onboarding-nps variant) -- */
.sh-onb__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-onb__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-onb__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-onb__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: var(--color-gray-100);
    color: var(--color-text-muted);
}

.sh-onb__scores {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.sh-onb__score-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 10px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-onb__score-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-onb__score-value {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    line-height: 1;
}

.sh-onb__score-value--green {
    color: var(--color-green-dark);
}

.sh-onb__score-max {
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-text-muted);
}

/* NPS scale bar */
.sh-onb__nps-scale {
    width: 100%;
    position: relative;
    margin-top: 2px;
}

.sh-onb__nps-bar {
    display: flex;
    height: 6px;
    border-radius: 3px;
    overflow: hidden;
}

.sh-onb__nps-zone {
    flex: 1;
}

.sh-onb__nps-zone--red {
    background: #ef4444;
}

.sh-onb__nps-zone--yellow {
    background: #f59e0b;
}

.sh-onb__nps-zone--green {
    background: var(--color-green);
}

.sh-onb__nps-marker {
    position: absolute;
    top: -3px;
    width: 3px;
    height: 12px;
    background: var(--color-gray-900);
    border-radius: 2px;
    transform: translateX(-50%);
}

.sh-onb__nps-labels {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    color: var(--color-text-muted);
    margin-top: 2px;
}

/* QoH ring */
.sh-onb__qoh-ring {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-onb__ring-label {
    position: absolute;
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-muted);
}

.sh-onb__trend {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px var(--space-3);
    background: var(--color-green-light);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
}

/* -- Exit Survey Dashboard (exit-survey variant) -- */
.sh-exit__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sh-exit__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-exit__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-exit__header-badge {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
    background: var(--color-green-light);
    padding: 2px 8px;
    border-radius: 99px;
}

.sh-exit__top-reason {
    padding: 10px 12px;
    background: var(--color-white);
    border: 1px solid var(--color-orange);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-exit__top-reason-head {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sh-exit__top-reason-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-orange);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-exit__top-reason-text {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.sh-exit__top-reason-bar {
    width: 100%;
    height: 6px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-exit__top-reason-fill {
    height: 100%;
    background: var(--color-orange);
    border-radius: 3px;
}

.sh-exit__top-reason-pct {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-orange);
    align-self: flex-end;
}

.sh-exit__reasons {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-exit__reason-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-exit__reason-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    min-width: 110px;
    flex-shrink: 0;
}

.sh-exit__reason-bar {
    flex: 1;
    height: 5px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-exit__reason-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 3px;
}

.sh-exit__reason-pct {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-text);
    min-width: 28px;
    text-align: right;
}


/* -- Healthcare Dashboard (healthcare-dash variant) -- */
.sh-hc__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.sh-hc__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding: var(--space-3) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    min-width: 0;
}

.sh-hc__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sh-hc__header-badge {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
    background: var(--color-green-light);
    padding: 2px 8px;
    border-radius: 99px;
    flex-shrink: 0;
}

.sh-hc__metric {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    min-width: 0;
}

.sh-hc__metric--green {
    border-color: var(--color-green);
}

.sh-hc__metric--orange {
    border-color: var(--color-orange);
}

.sh-hc__metric-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    overflow-wrap: break-word;
    word-break: break-word;
}

.sh-hc__metric-value {
    font-size: var(--font-size-lg);
    font-weight: 700;
}

.sh-hc__metric-value--green {
    color: var(--color-green-dark);
}

.sh-hc__metric-value--orange {
    color: var(--color-orange);
}

.sh-hc__concern {
    padding: 10px 12px;
    background: var(--color-white);
    border: 1px solid var(--color-orange);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.sh-hc__concern-head {
    display: flex;
    align-items: center;
    gap: 6px;
}

.sh-hc__concern-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-orange);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-hc__concern-text {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
    overflow-wrap: break-word;
    word-break: break-word;
}

.sh-hc__concern-bar {
    width: 100%;
    height: 6px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-hc__concern-fill {
    height: 100%;
    background: var(--color-orange);
    border-radius: 3px;
}

.sh-hc__concern-pct {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-orange);
    align-self: flex-end;
}

.sh-hc__departments {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-hc__dept-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    min-width: 0;
}

.sh-hc__dept-name {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sh-hc__dept-score {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
    flex-shrink: 0;
    white-space: nowrap;
}

.sh-hc__dept-max {
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: var(--color-text-muted);
}

.sh-hc__dept-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sh-hc__dept-dot--green {
    background: var(--color-green);
}

.sh-hc__dept-dot--orange {
    background: var(--color-orange);
}

.sh-hc__trend {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px var(--space-3);
    background: var(--color-green-light);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
    text-align: center;
    flex-wrap: wrap;
}

.sh-hc__trend svg {
    flex-shrink: 0;
}

/* -- TA Feedback (ta-feedback variant) -- */
.sh-ta__body {
    padding: 0;
    display: flex;
    flex-direction: column;
}
.sh-ta__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
}
.sh-ta__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.sh-ta__filter {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-neutral-600, #525252);
    background: var(--color-neutral-100, #f5f5f5);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    padding: 2px 10px;
    border-radius: 4px;
}
.sh-ta__cards {
    padding: 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sh-ta__donuts {
    padding: 1.2rem 16px 1.4rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto 1fr;
    column-gap: 14px;
    row-gap: 0.6rem;
    align-items: start;
    justify-items: center;
}

.sh-ta__donut-card {
    display: contents;
}

.sh-ta__donut-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: #1f2937;
    line-height: 1.2;
    text-align: center;
}

.sh-ta__donut-wrap {
    position: relative;
    width: 108px;
    height: 108px;
}

.sh-ta__donut {
    width: 100%;
    height: 100%;
    display: block;
}

.sh-ta__donut-val {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1;
}

.sh-ta__donut-val small {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-text-muted, #6b7280);
}

.sh-ta__donut-val--red { color: #ef4444; }
.sh-ta__donut-val--orange { color: var(--color-orange); }
.sh-ta__donut-val--green { color: var(--color-green); }

.sh-ta__donut-quote {
    justify-self: stretch;
    align-self: stretch;
    font-size: 0.78rem;
    line-height: 1.45;
    color: #4b5563;
    font-style: italic;
    padding: 0.7rem 0.75rem;
    background: var(--color-gray-50, #f9fafb);
    border-left: 3px solid var(--color-gray-200, #e5e7eb);
    border-radius: 0 6px 6px 0;
    text-align: left;
}

.sh-ta__donut-card--red .sh-ta__donut-quote { border-left-color: #ef4444; }
.sh-ta__donut-card--orange .sh-ta__donut-quote { border-left-color: var(--color-orange); }
.sh-ta__donut-card--green .sh-ta__donut-quote { border-left-color: var(--color-green); }
.sh-ta__card {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid;
}
.sh-ta__card--danger {
    background: #fef2f2;
    border-color: #fecaca;
}
.sh-ta__card--warning {
    background: #fff7ed;
    border-color: #fed7aa;
}
.sh-ta__card--success {
    background: #f0f7e8;
    border-color: #c6e09b;
}
.sh-ta__card-top {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--color-neutral-700, #404040);
}
.sh-ta__card-label {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.sh-ta__card-stat {
    font-size: 0.68rem;
    line-height: 1.4;
    color: var(--color-neutral-600, #525252);
}
.sh-ta__card-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.58rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    align-self: flex-start;
}
.sh-ta__card-badge--danger {
    background: #fecaca;
    color: #991b1b;
}
.sh-ta__card-badge--warning {
    background: #fed7aa;
    color: #9a3412;
}
.sh-ta__card-badge--success {
    background: #c6e09b;
    color: #365314;
}
.sh-ta__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 16px;
    margin-top: 8px;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    border-radius: 0 0 12px 12px;
}

/* -- Hiring Manager Feedback (hm-feedback variant) -- */
.sh-hm__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.sh-hm__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.sh-hm__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.sh-hm__filter {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-neutral-600, #525252);
    background: var(--color-neutral-100, #f5f5f5);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    padding: 2px 10px;
    border-radius: 4px;
}
.sh-hm__channels {
    display: flex;
    gap: 10px;
}
.sh-hm__channel {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--color-neutral-600, #525252);
    background: var(--color-neutral-50, #fafafa);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 6px;
    padding: 4px 10px;
}
.sh-hm__survey-card {
    background: var(--color-neutral-50, #fafafa);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sh-hm__question {
    margin: 0;
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--color-neutral-800, #262626);
}
.sh-hm__scale {
    display: flex;
    gap: 6px;
}
.sh-hm__scale-num {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 600;
    background: var(--color-neutral-100, #f5f5f5);
    color: var(--color-neutral-500, #737373);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
}
.sh-hm__scale-num--selected {
    background: var(--color-green, #58a415);
    color: #fff;
    border-color: var(--color-green, #58a415);
}
.sh-hm__insights {
    display: flex;
    gap: 10px;
}
.sh-hm__insight {
    flex: 1;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 10px;
    border-radius: 8px;
}
.sh-hm__insight--warning {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #c2410c;
}
.sh-hm__insight--danger {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
}
.sh-hm__insight svg {
    flex-shrink: 0;
    margin-top: 1px;
}
.sh-hm__insight-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
}
.sh-hm__insight-detail {
    display: block;
    font-size: 0.64rem;
    line-height: 1.4;
    opacity: 0.85;
}

/* -- Branded Survey (branded-survey variant) -- */
.sh-bs__body {
    padding: 0;
    display: flex;
    flex-direction: column;
}
.sh-bs__brand-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    background: linear-gradient(135deg, #1e40af, #3b82f6);
    color: #fff;
}
.sh-bs__logo {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    font-weight: 700;
}
.sh-bs__brand-badge {
    font-size: 0.6rem;
    font-weight: 600;
    background: rgba(255,255,255,0.2);
    padding: 2px 8px;
    border-radius: 999px;
}
.sh-bs__survey {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sh-bs__question {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--color-neutral-800, #262626);
}
.sh-bs__stars {
    display: flex;
    gap: 4px;
}
.sh-bs__subquestion {
    margin: 0;
    font-size: 0.72rem;
    color: var(--color-neutral-600, #525252);
}
.sh-bs__textarea {
    height: 36px;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 6px;
    background: var(--color-neutral-50, #fafafa);
}
.sh-bs__submit {
    align-self: flex-end;
    background: #3b82f6;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    padding: 6px 20px;
    border-radius: 6px;
}
.sh-bs__customize {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    background: var(--color-neutral-50, #fafafa);
}
.sh-bs__customize-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-neutral-500, #737373);
    white-space: nowrap;
}
.sh-bs__swatches {
    display: flex;
    gap: 5px;
}
.sh-bs__swatch {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1.5px solid rgba(0,0,0,0.1);
}
.sh-bs__domain {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    font-size: 0.62rem;
    color: var(--color-neutral-500, #737373);
    white-space: nowrap;
}
.sh-bs__mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 8px 16px;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    border-radius: 0 0 12px 12px;
}

/* -- AI Chat (ai-chat variant) -- */
.sh-ai__body {
    padding: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.sh-ai__conversation {
    flex: 1;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow: hidden;
}
.sh-ai__msg {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}
.sh-ai__avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.sh-ai__avatar--user {
    background: var(--color-neutral-200, #e5e5e5);
    color: var(--color-neutral-600, #525252);
}
.sh-ai__avatar--ai {
    background: var(--color-green, #58a415);
    color: #fff;
}
.sh-ai__bubble {
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.78rem;
    line-height: 1.5;
    max-width: 88%;
}
.sh-ai__bubble--user {
    background: var(--color-neutral-100, #f5f5f5);
    color: var(--color-neutral-800, #262626);
    font-weight: 600;
}
.sh-ai__bubble--ai {
    background: #f0f7e8;
    color: var(--color-neutral-700, #404040);
}
.sh-ai__response-intro {
    margin: 0 0 10px;
    font-weight: 600;
    font-size: 0.76rem;
    color: var(--color-neutral-800, #262626);
}
.sh-ai__insight {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.sh-ai__insight:last-child {
    margin-bottom: 0;
}
.sh-ai__insight-num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
}
.sh-ai__insight-title {
    display: block;
    font-weight: 600;
    font-size: 0.76rem;
    color: var(--color-neutral-800, #262626);
    margin-bottom: 2px;
}
.sh-ai__insight-detail {
    display: block;
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--color-neutral-600, #525252);
}

/* -- Analytics Journey (analytics-journey variant) -- */
.sh-aj__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-aj__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-aj__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-aj__filters {
    display: flex;
    gap: 4px;
}

.sh-aj__filter {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 10px;
    background: var(--color-gray-100);
    border: 1px solid var(--color-gray-300);
    color: var(--color-text-muted);
}

.sh-aj__journey {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 4px;
    padding: 8px 0;
}

.sh-aj__stage {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.sh-aj__stage--alert {
    position: relative;
}

.sh-aj__stage--alert::before {
    content: '';
    position: absolute;
    inset: -4px;
    border: 1.5px dashed #ef4444;
    border-radius: var(--radius-md);
    opacity: 0.4;
}

.sh-aj__stage-score {
    font-size: clamp(0.9rem, 1.6vw, 1.15rem);
    font-weight: 800;
    line-height: 1;
}

.sh-aj__stage-score--green {
    color: var(--color-green-dark);
}

.sh-aj__stage-score--red {
    color: #ef4444;
}

.sh-aj__stage-bar-wrap {
    width: 100%;
    height: 60px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.sh-aj__stage-bar {
    width: 70%;
    max-width: 40px;
    height: var(--bar-h, 50%);
    border-radius: 3px 3px 0 0;
}

.sh-aj__stage-bar--green {
    background: linear-gradient(180deg, var(--color-green) 0%, rgba(88, 164, 21, 0.3) 100%);
}

.sh-aj__stage-bar--red {
    background: linear-gradient(180deg, #ef4444 0%, rgba(239, 68, 68, 0.3) 100%);
}

.sh-aj__stage-label {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: center;
}

.sh-aj__stage-connector {
    display: flex;
    align-items: center;
    padding-bottom: 40px;
    flex-shrink: 0;
}

.sh-aj__alert {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: rgba(239, 68, 68, 0.05);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: var(--radius-sm);
    font-size: 10px;
    font-weight: 500;
    color: #b91c1c;
}

.sh-aj__alert svg {
    flex-shrink: 0;
}

/* -- EmployE Pricing (employe-pricing variant) -- */
.sh-epr__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-epr__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-epr__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-epr__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.sh-epr__tiers {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    align-items: end;
}

.sh-epr__tier {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 4px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    position: relative;
}

.sh-epr__tier--highlight {
    border-color: var(--color-orange);
    background: rgba(232, 119, 34, 0.03);
}

.sh-epr__tier-new {
    position: absolute;
    top: -8px;
    font-size: 9px;
    font-weight: 700;
    color: var(--color-white);
    background: var(--color-orange);
    padding: 1px 6px;
    border-radius: 8px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-epr__tier-icon {
    color: var(--color-green-dark);
}

.sh-epr__tier--highlight .sh-epr__tier-icon {
    color: var(--color-orange);
}

.sh-epr__tier-name {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text);
    text-align: center;
    line-height: 1.2;
}

.sh-epr__tier-bar {
    width: 80%;
    height: var(--tier-h, 50%);
    min-height: 8px;
    max-height: 48px;
    background: linear-gradient(180deg, var(--color-green) 0%, rgba(88, 164, 21, 0.3) 100%);
    border-radius: 3px 3px 0 0;
}

.sh-epr__tier--highlight .sh-epr__tier-bar {
    background: linear-gradient(180deg, var(--color-orange) 0%, rgba(232, 119, 34, 0.3) 100%);
}

.sh-epr__includes {
    padding: 8px 10px;
    background: var(--color-gray-100);
    border-radius: var(--radius-md);
}

.sh-epr__includes-label {
    display: block;
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.sh-epr__includes-items {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.sh-epr__includes-tag {
    font-size: 10px;
    font-weight: 500;
    padding: 2px 8px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: 10px;
    color: var(--color-text-muted);
}

/* -- EmployE Process (employe-process variant) -- */
.sh-ep__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-ep__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-ep__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-ep__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.sh-ep__steps {
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.sh-ep__step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 4px;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    background: var(--color-white);
    text-align: center;
}

.sh-ep__step--done {
    border-color: rgba(88, 164, 21, 0.3);
    background: rgba(88, 164, 21, 0.03);
}

.sh-ep__step--done .sh-ep__step-icon {
    color: var(--color-green-dark);
}

.sh-ep__step--active {
    border-color: var(--color-green);
    background: rgba(88, 164, 21, 0.06);
    box-shadow: 0 0 0 2px rgba(88, 164, 21, 0.1);
}

.sh-ep__step--active .sh-ep__step-icon {
    color: var(--color-green-dark);
}

.sh-ep__step-icon {
    color: var(--color-text-muted);
}

.sh-ep__step-num {
    font-size: 9px;
    font-weight: 700;
    color: var(--color-text-muted);
    background: var(--color-gray-100);
    width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-ep__step--done .sh-ep__step-num,
.sh-ep__step--active .sh-ep__step-num {
    background: var(--color-green);
    color: var(--color-white);
}

.sh-ep__step-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text);
}

.sh-ep__step-sub {
    font-size: 9px;
    color: var(--color-text-muted);
    line-height: 1.2;
}

.sh-ep__step-connector {
    display: flex;
    align-items: center;
    padding-top: 20px;
    flex-shrink: 0;
}

.sh-ep__progress {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sh-ep__progress-bar {
    height: 5px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-ep__progress-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 3px;
}

.sh-ep__progress-labels {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    color: var(--color-text-muted);
}

.sh-ep__support {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
    font-size: 10px;
    font-weight: 500;
    color: var(--color-text-muted);
}

.sh-ep__support svg {
    flex-shrink: 0;
    color: var(--color-green-dark);
}

/* -- EmployE Benchmark (employe-benchmark variant) -- */
.sh-eb__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sh-eb__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-eb__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-eb__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.sh-eb__score-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.sh-eb__score-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 6px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-eb__score-label {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-eb__score-value {
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    font-weight: 800;
    line-height: 1;
    color: var(--color-text);
}

.sh-eb__score-value--green {
    color: var(--color-green-dark);
}

.sh-eb__benchmarks {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-eb__bench-row {
    display: grid;
    grid-template-columns: 64px 1fr 28px;
    align-items: center;
    gap: 6px;
}

.sh-eb__bench-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: right;
}

.sh-eb__bench-track {
    height: 8px;
    background: var(--color-gray-200);
    border-radius: 4px;
    position: relative;
    overflow: visible;
}

.sh-eb__bench-fill--you {
    height: 100%;
    background: var(--color-green);
    border-radius: 4px;
    opacity: 0.7;
}

.sh-eb__bench-marker {
    position: absolute;
    top: -2px;
    width: 3px;
    height: 12px;
    background: var(--color-gray-500);
    border-radius: 2px;
    transform: translateX(-50%);
}

.sh-eb__bench-value {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text);
}

.sh-eb__legend {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.sh-eb__legend-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9px;
    color: var(--color-text-muted);
}

.sh-eb__legend-swatch {
    width: 10px;
    height: 6px;
    border-radius: 2px;
}

.sh-eb__legend-swatch--you {
    background: var(--color-green);
    opacity: 0.7;
}

.sh-eb__legend-swatch--peer {
    background: var(--color-gray-500);
    width: 3px;
    height: 10px;
}

/* -- CandE Pricing (cande-pricing variant) -- */
.sh-cp__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-cp__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-cp__header-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
}

.sh-cp__header-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: rgba(55, 54, 142, 0.08);
    color: var(--cande-indigo, #37368e);
}

.sh-cp__tiers {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    align-items: end;
}

.sh-cp__tier {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 4px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    position: relative;
}

.sh-cp__tier--highlight {
    border-color: var(--color-orange);
    background: rgba(232, 119, 34, 0.03);
}

.sh-cp__tier-new {
    position: absolute;
    top: -8px;
    font-size: 9px;
    font-weight: 700;
    color: var(--color-white);
    background: var(--color-orange);
    padding: 1px 6px;
    border-radius: 8px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-cp__tier-icon {
    color: var(--cande-indigo, #37368e);
}

.sh-cp__tier--highlight .sh-cp__tier-icon {
    color: var(--color-orange);
}

.sh-cp__tier-name {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text);
    text-align: center;
    line-height: 1.2;
}

.sh-cp__tier-bar {
    width: 80%;
    height: var(--tier-h, 50%);
    min-height: 8px;
    max-height: 48px;
    background: linear-gradient(180deg, var(--cande-indigo, #37368e) 0%, rgba(55, 54, 142, 0.4) 100%);
    border-radius: 3px 3px 0 0;
}

.sh-cp__tier--highlight .sh-cp__tier-bar {
    background: linear-gradient(180deg, var(--color-orange) 0%, rgba(232, 119, 34, 0.4) 100%);
}

.sh-cp__includes {
    padding: 8px 10px;
    background: var(--color-gray-100);
    border-radius: var(--radius-md);
}

.sh-cp__includes-label {
    display: block;
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.sh-cp__includes-items {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.sh-cp__includes-tag {
    font-size: 10px;
    font-weight: 500;
    padding: 2px 8px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: 10px;
    color: var(--color-text-muted);
}

/* -- CandE Award Winners (cande-winners variant) -- */
.sh-cw__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-cw__badge {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(135deg, rgba(232,119,34,0.06) 0%, rgba(232,119,34,0.02) 100%);
    border: 1px solid rgba(232,119,34,0.2);
    border-radius: var(--radius-md);
}

.sh-cw__trophy {
    flex-shrink: 0;
}

.sh-cw__badge-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sh-cw__badge-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.sh-cw__badge-sub {
    font-size: 10px;
    color: var(--color-text-muted);
}

.sh-cw__counter {
    text-align: center;
    padding: 10px 0;
}

.sh-cw__counter-num {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    color: var(--color-orange);
    line-height: 1;
}

.sh-cw__counter-label {
    font-size: 10px;
    font-weight: 500;
    color: var(--color-text-muted);
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sh-cw__stats {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sh-cw__stat {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.sh-cw__stat-bar {
    width: 100%;
    height: 5px;
    background: var(--color-gray-200);
    border-radius: 3px;
    overflow: hidden;
}

.sh-cw__stat-fill {
    height: 100%;
    width: var(--bar-w, 50%);
    background: var(--color-orange);
    border-radius: 3px;
    opacity: 0.7;
}

.sh-cw__stat-fill--alt {
    background: #f59e0b;
}

.sh-cw__stat-fill--green {
    background: var(--color-green);
}

.sh-cw__stat-row {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.sh-cw__stat-num {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.sh-cw__stat-text {
    font-size: 10px;
    color: var(--color-text-muted);
}

.sh-cw__tier {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
    font-size: 10px;
    font-weight: 500;
    color: var(--color-text-muted);
}

.sh-cw__tier svg {
    flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   PAIN POINTS
   -------------------------------------------------------------------------- */
.pain-points {
    padding: var(--space-16) 0;
}

.pain-points__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

.pain-points__card {
    padding: var(--space-8);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.pain-points__card:hover {
    border-color: var(--color-gray-300);
    box-shadow: var(--shadow-md);
}

.pain-points__icon {
    margin-bottom: var(--space-5);
}

.pain-points__card h3 {
    font-size: var(--font-size-xl);
    margin-bottom: var(--space-3);
}

.pain-points__card p {
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   BUSINESS IMPACT
   -------------------------------------------------------------------------- */
.business-impact {
    padding: var(--space-12) 0;
    background: var(--color-orange-light);
}

.business-impact__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}

.business-impact__card {
    padding: var(--space-6);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-left: 3px solid var(--color-green);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.business-impact__card:hover {
    border-color: var(--color-gray-300);
    border-left-color: var(--color-green-dark);
    box-shadow: var(--shadow-md);
}

.business-impact__icon {
    margin-bottom: var(--space-4);
}

.business-impact__icon svg {
    width: 36px;
    height: 36px;
}

.business-impact__card h3 {
    font-size: var(--font-size-lg);
    font-weight: 700;
    margin-bottom: var(--space-2);
}

.business-impact__card p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   SHARED: FEATURE ROWS (used by solution-overview, mirrored from homepage.css)
   -------------------------------------------------------------------------- */
.feature-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
    align-items: center;
    margin-bottom: var(--space-16);
}

.feature-row > * {
    min-width: 0;
}

.feature-row:last-child {
    margin-bottom: 0;
}

.feature-text h3 {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-4);
}

.feature-text > p {
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin-bottom: var(--space-6);
}

.feature-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.feature-list li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.feature-list li::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-green);
    flex-shrink: 0;
    margin-top: 0.55em;
}

.feature-text .btn {
    margin-top: var(--space-6);
}

/* --------------------------------------------------------------------------
   SHARED: TESTIMONIALS (reused block, mirrored from homepage.css)
   -------------------------------------------------------------------------- */
.testimonials {
    padding: var(--space-16) 0;
    background: var(--color-gray-100);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

.testimonial-card {
    padding: var(--space-8);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition);
}

.testimonial-card:hover {
    border-color: var(--color-gray-300);
}

.testimonial-card p {
    font-size: var(--font-size-lg);
    line-height: 1.7;
    color: var(--color-text);
    margin-bottom: var(--space-6);
}

.testimonial-card cite {
    display: flex;
    flex-direction: column;
    font-style: normal;
}

.testimonial-card cite strong {
    font-size: var(--font-size-sm);
    font-weight: 600;
}

.testimonial-card cite span {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

.section-cta {
    margin-top: var(--space-10);
}

/* --------------------------------------------------------------------------
   SHARED: INTEGRATIONS STRIP (reused block, mirrored from homepage.css)
   -------------------------------------------------------------------------- */
.integrations-strip {
    padding: var(--space-16) 0;
    background: var(--color-gray-100);
}

.integration-logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
}

.integration-logos:last-child {
    margin-bottom: 0;
}

.integrations-strip + .solution-overview {
    padding-top: 0;
}

.integration-logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 64px;
    padding: var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    transition: border-color var(--transition), box-shadow var(--transition);
    overflow: hidden;
}

.integration-logo-item:hover {
    border-color: var(--color-gray-300);
    box-shadow: var(--shadow-sm);
}

.integration-logo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

/* --------------------------------------------------------------------------
   SHARED: CTA SECTION (reused block, mirrored from homepage.css)
   -------------------------------------------------------------------------- */
.cta-section {
    padding: var(--space-16) 0;
    background: var(--color-gray-900);
    color: var(--color-white);
}

.cta-content {
    text-align: center;
    max-width: 640px;
    margin: 0 auto;
}

.cta-content h2 {
    color: var(--color-white);
    margin-bottom: var(--space-4);
}

.cta-content p {
    color: var(--color-gray-400);
    font-size: var(--font-size-lg);
    line-height: 1.7;
    margin-bottom: var(--space-8);
}

.cta-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-4);
}

.cta-email {
    margin-top: var(--space-3);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    text-align: center;
}

.cta-email--light {
    color: rgba(255, 255, 255, 0.7);
}

/* CTA — light variant (warm background) */
.cta-section--light {
    background: var(--color-orange-light);
    color: var(--color-text);
}

.cta-section--light .cta-content h2 {
    color: var(--color-text);
}

.cta-section--light .cta-content p {
    color: var(--color-text-secondary);
}

/* --------------------------------------------------------------------------
   SHARED: FAQ (reused block, mirrored from homepage.css)
   -------------------------------------------------------------------------- */
.faq {
    padding: var(--space-16) 0;
}

.faq-list {
    display: flex;
    flex-direction: column;
}

.faq-item {
    border-bottom: 1px solid var(--color-gray-200);
}

.faq-item:first-child {
    border-top: 1px solid var(--color-gray-200);
}

.faq-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: var(--space-5) 0;
    text-align: left;
    font-size: var(--font-size-base);
    font-weight: 500;
    color: var(--color-text);
    gap: var(--space-4);
}

.faq-trigger:hover {
    color: var(--color-green-dark);
}

.faq-icon {
    flex-shrink: 0;
    transition: transform var(--transition);
}

.faq-trigger[aria-expanded="true"] .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    padding-bottom: var(--space-5);
}

.faq-answer p {
    color: var(--color-text-secondary);
    line-height: 1.7;
}

/* --------------------------------------------------------------------------
   SOLUTION OVERVIEW
   -------------------------------------------------------------------------- */
.solution-overview {
    padding: var(--space-16) 0;
    background: var(--color-gray-100);
    overflow: hidden;
}

/* -- AI Compliance (ai-compliance overview variant) -- */
.so-graphic__ac {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.so-graphic__ac-shield {
    display: flex;
    align-items: center;
    gap: 10px;
}
.so-graphic__ac-shield-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__ac-checks {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.so-graphic__ac-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.74rem;
    font-weight: 500;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__ac-check svg {
    flex-shrink: 0;
}
.so-graphic__ac-risk {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    padding-top: 12px;
}
.so-graphic__ac-risk-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
}
.so-graphic__ac-risk-row--low {
    background: #f0f7e8;
}
.so-graphic__ac-risk-row--high {
    background: var(--color-neutral-100, #f5f5f5);
    opacity: 0.55;
}
.so-graphic__ac-risk-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.so-graphic__ac-risk-dot--green {
    background: var(--color-green, #58a415);
}
.so-graphic__ac-risk-dot--red {
    background: #ef4444;
}
.so-graphic__ac-risk-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-neutral-800, #262626);
    min-width: 72px;
}
.so-graphic__ac-risk-badge {
    font-size: 0.62rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    white-space: nowrap;
}
.so-graphic__ac-risk-badge--green {
    background: var(--color-green, #58a415);
    color: #fff;
}
.so-graphic__ac-risk-badge--red {
    background: #fecaca;
    color: #991b1b;
}
.so-graphic__ac-risk-desc {
    font-size: 0.65rem;
    color: var(--color-neutral-500, #737373);
    margin-left: auto;
}
.so-graphic__ac-risk-row--high .so-graphic__ac-risk-label,
.so-graphic__ac-risk-row--high .so-graphic__ac-risk-desc {
    color: var(--color-neutral-500, #737373);
}

/* Solution overview graphics */
.so-graphic {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    padding: 0;
    display: flex;
    flex-direction: column;
    display: flex;
    align-items: stretch;
    justify-content: center;
    min-height: 280px;
}

/* Universal sizing contract: every direct child fills the container */
.so-graphic > div {
    width: 100%;
    flex: 1;
    box-sizing: border-box;
}

/* Survey flow graphic */
.so-graphic__flow {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    justify-content: center;
}

.so-graphic__step-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
}

.so-graphic__step-box--ats {
    border-color: var(--color-green);
    background: var(--color-green-light);
}

.so-graphic__step-box--survey {
    border-color: var(--color-orange);
    background: var(--color-orange-light);
}

.so-graphic__step-box--data {
    border-color: var(--color-green);
    background: var(--color-green-light);
}

.so-graphic__data-tags {
    margin: 4px 0 0;
    padding: 0 0 0 1.1em;
    list-style: disc;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--color-green);
    text-align: left;
}

.so-graphic__data-tag {
    line-height: 1.4;
}

.so-graphic__arrow {
    display: none;
}

/* -- System Event Flow: event list layout -- */
.so-graphic__sef-events {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

.so-graphic__sef-event {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: #f9fafb;
    border-radius: 6px;
    border-left: 3px solid var(--color-indigo, #4f46e5);
}

.so-graphic__sef-event-trigger {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.so-graphic__sef-event-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.so-graphic__sef-event-dot--indigo {
    background: var(--color-indigo, #4f46e5);
}

.so-graphic__sef-event-name {
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--color-gray-700);
}

.so-graphic__sef-arrow {
    flex-shrink: 0;
}

.so-graphic__sef-survey {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-green);
    white-space: nowrap;
    background: rgba(88, 164, 21, 0.08);
    padding: 2px 8px;
    border-radius: 4px;
}

/* -- Timed Event Flow: timeline layout -- */
.so-graphic__tef-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 8px;
}

.so-graphic__tef-milestone {
    display: flex;
    gap: 12px;
    align-items: stretch;
}

.so-graphic__tef-marker {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 14px;
    flex-shrink: 0;
}

.so-graphic__tef-marker-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-green);
    flex-shrink: 0;
    margin-top: 3px;
}

.so-graphic__tef-marker-line {
    flex: 1;
    width: 2px;
    background: #d1d5db;
    margin: 3px 0;
}

.so-graphic__tef-content {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding-bottom: 14px;
}

.so-graphic__tef-milestone--last .so-graphic__tef-content {
    padding-bottom: 0;
}

.so-graphic__tef-day {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-green);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__tef-label {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-gray-800);
}

.so-graphic__tef-action {
    font-size: 0.7rem;
    color: var(--color-gray-500);
}

.so-graphic__tef-marker-dot--greenhouse {
    background: #2e7d32;
    box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.15);
}

.so-graphic__tef-marker-dot--survale {
    background: var(--color-orange);
}

.so-graphic__tef-source {
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-gray-400);
}

.so-graphic__tef-milestone--trigger .so-graphic__tef-source {
    color: #2e7d32;
}

.so-graphic__tef-milestone--survale .so-graphic__tef-source {
    color: var(--color-orange);
}

/* Filter dashboard graphic */
.so-graphic__dashboard {
    padding: var(--space-4);
}

.so-graphic__filters {
    display: flex;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}

.so-graphic__filter-tag {
    padding: var(--space-1) var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: 20px;
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-muted);
}

.so-graphic__filter-tag--active {
    background: var(--color-green-light);
    border-color: var(--color-green);
    color: var(--color-green-dark);
}

.so-graphic__bars {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__bar-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.so-graphic__bar-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    width: 100px;
    flex-shrink: 0;
}

.so-graphic__bar {
    height: 8px;
    background: var(--color-green);
    border-radius: 4px;
    opacity: 0.6;
}

.so-graphic__bar--warning {
    background: var(--color-orange);
}

.so-graphic__bar--danger {
    background: #e74c3c;
}

.so-graphic__bar-value {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
    width: 32px;
    text-align: right;
    flex-shrink: 0;
}

/* Source quality graphic */
.so-graphic__source-quality {
    padding: var(--space-4);
}

.so-graphic__sq-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 1px solid var(--color-gray-200);
}

.so-graphic__sq-title {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__sq-legend {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 10px;
    color: var(--color-text-muted);
}

.so-graphic__sq-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.so-graphic__sq-dot--green {
    background: var(--color-green);
}

.so-graphic__sq-dot--orange {
    background: var(--color-orange);
}

.so-graphic__sq-rows {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__sq-row {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__sq-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text);
}

.so-graphic__sq-bars {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.so-graphic__sq-bar {
    height: 10px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 6px;
    transition: width 0.4s ease;
}

.so-graphic__sq-bar span {
    font-size: 9px;
    font-weight: 600;
    color: #fff;
    line-height: 1;
}

.so-graphic__sq-bar--green {
    background: var(--color-green);
}

.so-graphic__sq-bar--orange {
    background: var(--color-orange);
}

/* Manager pulse graphic */
.so-graphic__manager-pulse {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-4);
}

.so-graphic__mp-filter {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.so-graphic__mp-filter-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-right: var(--space-1);
}

.so-graphic__mp-filter-tag {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: var(--radius-sm);
    background: var(--color-gray-100);
    color: var(--color-text-muted);
}

.so-graphic__mp-filter-tag--active {
    background: var(--color-green);
    color: var(--color-white);
}

.so-graphic__mp-responses {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.so-graphic__mp-response {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.so-graphic__mp-question {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.3;
}

.so-graphic__mp-answer {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
    width: fit-content;
}

.so-graphic__mp-answer--warning {
    background: #fef3c7;
    color: #92400e;
    border: 1px solid #f59e0b;
}

.so-graphic__mp-nps {
    position: relative;
    width: 100%;
    margin-top: 2px;
}

.so-graphic__mp-nps-bar {
    display: flex;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__mp-nps-zone {
    flex: 1;
}

.so-graphic__mp-nps-zone--red {
    background: #ef4444;
}

.so-graphic__mp-nps-zone--yellow {
    background: #f59e0b;
}

.so-graphic__mp-nps-zone--green {
    background: var(--color-green);
}

.so-graphic__mp-nps-marker {
    position: absolute;
    top: -3px;
    width: 4px;
    height: 14px;
    background: var(--color-gray-900);
    border-radius: 2px;
    transform: translateX(-50%);
}

.so-graphic__mp-nps-score {
    font-size: var(--font-size-sm);
    font-weight: 700;
    margin-top: 2px;
}

.so-graphic__mp-nps-score--negative {
    color: #dc2626;
}

/* Promoter route graphic */
.so-graphic__promoter-route {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: var(--space-4);
}

.so-graphic__pr-response {
    width: 100%;
    padding: var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__pr-response-header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-muted);
}

.so-graphic__pr-nps-row {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.so-graphic__pr-nps-label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__pr-nps-dots {
    display: flex;
    gap: 3px;
}

.so-graphic__pr-nps-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
    background: var(--color-gray-100);
    color: var(--color-text-muted);
    border: 1px solid var(--color-gray-200);
}

.so-graphic__pr-nps-dot--selected {
    background: var(--color-green);
    color: var(--color-white);
    border-color: var(--color-green);
}

.so-graphic__pr-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    width: fit-content;
}

.so-graphic__pr-badge--promoter {
    background: var(--color-green-light);
    color: var(--color-green-dark);
}

.so-graphic__pr-connector {
    display: flex;
    justify-content: center;
    padding: 2px 0;
}

.so-graphic__pr-action {
    width: 100%;
    padding: var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-green);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.so-graphic__pr-action-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-green-light);
    border-radius: var(--radius-sm);
    color: var(--color-green-dark);
}

.so-graphic__pr-action-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1;
    min-width: 0;
}

.so-graphic__pr-action-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-green-dark);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__pr-action-dest {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
}

.so-graphic__pr-glassdoor-badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: 11px;
    font-weight: 700;
    color: var(--color-green-dark);
}

/* Always-on survey graphic */
.so-graphic__always-on {
    padding: var(--space-4);
}

.so-graphic__ao-browser {
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--color-white);
}

.so-graphic__ao-urlbar {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 6px 10px;
    background: var(--color-gray-50);
    border-bottom: 1px solid var(--color-gray-200);
    font-size: 10px;
    color: #1f2937;
    font-weight: 600;
    font-family: monospace;
}

.so-graphic__ao-page {
    padding: var(--space-3);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__ao-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__ao-page-title {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__ao-status {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-green-dark);
}

.so-graphic__ao-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-green);
    animation: aoPulse 2s ease-in-out infinite;
}

@keyframes aoPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.so-graphic__ao-card {
    padding: var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.so-graphic__ao-card-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__ao-card-desc {
    font-size: 11px;
    color: var(--color-text-muted);
    line-height: 1.4;
}

.so-graphic__ao-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 5px 12px;
    background: var(--color-green);
    color: var(--color-white);
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 700;
    width: fit-content;
}

.so-graphic__ao-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
}

.so-graphic__ao-stat {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: var(--space-2);
    background: var(--color-gray-50);
    border-radius: var(--radius-sm);
}

.so-graphic__ao-stat-num {
    font-size: var(--font-size-sm);
    font-weight: 800;
    color: var(--color-green-dark);
}

.so-graphic__ao-stat-label {
    font-size: 9px;
    color: var(--color-text-muted);
    font-weight: 500;
}

@media (prefers-reduced-motion: reduce) {
    .so-graphic__ao-status-dot {
        animation: none;
    }
}

/* Prepare & configure graphic */
.so-graphic__prepare-config {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
}

.so-graphic__pc-header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__pc-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.so-graphic__pc-step {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 8px 12px;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    border-bottom: 1px solid var(--color-gray-100);
    background: var(--color-white);
}

.so-graphic__pc-step:last-child {
    border-bottom: none;
}

.so-graphic__pc-step--done {
    color: var(--color-text-secondary);
}

.so-graphic__pc-step--done .so-graphic__pc-step-text {
    text-decoration: line-through;
    opacity: 0.6;
}

.so-graphic__pc-step--active {
    background: var(--color-green-light);
    color: var(--color-text);
    font-weight: 600;
}

.so-graphic__pc-check {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-green);
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.so-graphic__pc-radio {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--color-gray-300);
    flex-shrink: 0;
}

.so-graphic__pc-step--active .so-graphic__pc-radio {
    border-color: var(--color-green);
    background: var(--color-white);
    box-shadow: inset 0 0 0 3px var(--color-green);
}

.so-graphic__pc-config {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__pc-config-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__pc-config-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__pc-config-value {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text);
}

/* Collect & analyze graphic */
.so-graphic__collect-analyze {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
}

.so-graphic__ca-collection {
    padding: var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__ca-collection-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__ca-collection-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__ca-collection-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: var(--color-green-light);
    color: var(--color-green-dark);
}

.so-graphic__ca-progress {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__ca-progress-bar {
    height: 8px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__ca-progress-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 4px;
    transition: width 0.6s ease;
}

.so-graphic__ca-progress-stats {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
}

.so-graphic__ca-stages {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.so-graphic__ca-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 4px;
    background: var(--color-gray-50);
    border-radius: var(--radius-sm);
}

.so-graphic__ca-stage-label {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.so-graphic__ca-stage-count {
    font-size: var(--font-size-sm);
    font-weight: 800;
    color: var(--color-green-dark);
}

.so-graphic__ca-benchmark {
    padding: 8px 12px;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__ca-benchmark-header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-secondary);
}

/* CandE report graphic */
.so-graphic__cande-report {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
}

.so-graphic__cr-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__cr-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__cr-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    background: var(--color-gray-100);
    color: var(--color-text-muted);
}

.so-graphic__cr-score-card {
    padding: var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
}

.so-graphic__cr-score-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__cr-score-value {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    color: var(--color-green-dark);
    line-height: 1;
}

.so-graphic__cr-score-bar {
    position: relative;
    width: 100%;
    height: 8px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: visible;
}

.so-graphic__cr-score-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 4px;
}

.so-graphic__cr-score-avg {
    position: absolute;
    top: -16px;
    transform: translateX(-50%);
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.so-graphic__cr-score-avg::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 20px;
    background: var(--color-gray-400);
    border-radius: 1px;
}

.so-graphic__cr-above {
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-green-dark);
}

.so-graphic__cr-gaps {
    padding: var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__cr-gaps-title {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__cr-gap-row {
    display: grid;
    grid-template-columns: 80px 1fr;
    align-items: center;
    gap: 8px;
}

.so-graphic__cr-gap-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.so-graphic__cr-gap-dots {
    position: relative;
    height: 6px;
    background: var(--color-gray-200);
    border-radius: 3px;
}

.so-graphic__cr-gap-dot {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--color-white);
}

.so-graphic__cr-gap-dot--employer {
    background: var(--color-green);
}

.so-graphic__cr-gap-dot--candidate {
    background: var(--color-orange);
}

.so-graphic__cr-gap-legend {
    display: flex;
    gap: var(--space-4);
    font-size: 10px;
    color: var(--color-text-muted);
    font-weight: 500;
}

.so-graphic__cr-gap-legend span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.so-graphic__cr-legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.so-graphic__cr-legend-dot--employer {
    background: var(--color-green);
}

.so-graphic__cr-legend-dot--candidate {
    background: var(--color-orange);
}

.so-graphic__cr-award {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 8px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: #9a3412;
}

/* Optimize actions graphic */
.so-graphic__actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
}

.so-graphic__action-card {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text);
}

.so-graphic__action-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    flex-shrink: 0;
}

.so-graphic__action-icon--people {
    background: var(--color-green-light);
    color: var(--color-green-dark);
}

.so-graphic__action-icon--process {
    background: var(--color-orange-light);
    color: var(--color-orange);
}

.so-graphic__action-icon--tech {
    background: var(--color-gray-100);
    color: var(--color-text-secondary);
}

/* Healthcare insight graphic */
.so-graphic__insight {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-graphic__insight-question {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.5;
}

.so-graphic__insight-respondents {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.so-graphic__insight-chart {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__insight-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.so-graphic__insight-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    width: 110px;
    flex-shrink: 0;
}

.so-graphic__insight-bar-track {
    flex: 1;
    height: 8px;
    background: var(--color-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__insight-bar {
    height: 100%;
    border-radius: 4px;
}

.so-graphic__insight-bar--orange {
    background: var(--color-orange);
}

.so-graphic__insight-bar--gray {
    background: var(--color-gray-400);
}

.so-graphic__insight-bar--green {
    background: var(--color-green);
}

.so-graphic__insight-pct {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text);
    width: 28px;
    text-align: right;
    flex-shrink: 0;
}

.so-graphic__insight-pct--bold {
    font-weight: 700;
    color: var(--color-orange);
}

/* --------------------------------------------------------------------------
   FEATURE GRID
   -------------------------------------------------------------------------- */
.feature-grid {
    padding: var(--space-16) 0;
}

.feature-grid__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}

.feature-grid__card {
    padding: var(--space-6);
    background: var(--color-white);
    border: 1px solid var(--color-gray-100);
    border-radius: var(--radius-md);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.feature-grid__card:hover {
    border-color: var(--color-gray-200);
    box-shadow: var(--shadow-sm);
}

.feature-grid__icon {
    margin-bottom: var(--space-4);
}

.feature-grid__card h3 {
    font-size: var(--font-size-base);
    font-weight: 600;
    margin-bottom: var(--space-2);
}

.feature-grid__card p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* --------------------------------------------------------------------------
   STATS BAR
   -------------------------------------------------------------------------- */
.stats-bar {
    padding: var(--space-12) 0;
    background: var(--color-green-light);
}

.stats-bar__headline {
    text-align: center;
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--space-8);
}

.stats-bar__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    text-align: center;
}

.stats-bar__number {
    display: block;
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--color-green-dark);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-2);
}

.stats-bar__label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    font-weight: 500;
}

/* --------------------------------------------------------------------------
   CANDE RESEARCH
   -------------------------------------------------------------------------- */
.cande-research {
    padding: var(--space-12) 0;
    background: var(--color-gray-900);
}

.cande-research__heading {
    text-align: center;
    font-size: var(--font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-gray-400);
    margin-bottom: var(--space-8);
}

.cande-research__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    text-align: center;
}

.cande-research__number {
    display: block;
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--color-green);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: var(--space-2);
}

.cande-research__label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-gray-300);
    font-weight: 400;
    line-height: 1.5;
    max-width: 280px;
    margin: 0 auto;
}

/* --------------------------------------------------------------------------
   RELATED SOLUTIONS
   -------------------------------------------------------------------------- */
.related-solutions {
    padding: var(--space-16) 0;
    background: var(--color-gray-100);
}

.related-solutions__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-8);
}

.related-solutions__card {
    padding: var(--space-8);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.related-solutions__card:hover {
    border-color: var(--color-gray-300);
    box-shadow: var(--shadow-md);
}

.related-solutions__card h3 {
    font-size: var(--font-size-xl);
    margin-bottom: var(--space-3);
}

.related-solutions__card p {
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--space-4);
}

.related-solutions__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-green);
    transition: color var(--transition);
}

.related-solutions__link:hover {
    color: var(--color-green-dark);
}

.related-solutions__link svg {
    transition: transform var(--transition);
}

.related-solutions__link:hover svg {
    transform: translateX(4px);
}

/* -- Sentiment Priority (ai-analysis variant) -- */
.so-graphic__sp {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__sp-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__sp-chart {
    position: relative;
    width: 100%;
    aspect-ratio: 5 / 3;
    background:
        linear-gradient(to right, var(--color-neutral-100, #f5f5f5) 1px, transparent 1px),
        linear-gradient(to top,   var(--color-neutral-100, #f5f5f5) 1px, transparent 1px);
    background-size: 25% 25%;
    border-left: 1.5px solid var(--color-neutral-300, #d4d4d4);
    border-bottom: 1.5px solid var(--color-neutral-300, #d4d4d4);
    overflow: visible;
}
/* Dashed threshold line (vertical, ~57% from left ≈ sentiment 85) */
.so-graphic__sp-threshold {
    position: absolute;
    left: 57%;
    top: 0;
    bottom: 0;
    border-left: 2px dashed var(--color-green, #58a415);
    opacity: 0.6;
}
/* Bubbles — positioned via % left/bottom within the chart area */
.so-graphic__sp-bubble {
    position: absolute;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.so-graphic__sp-bubble span {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-neutral-800, #262626);
}
/* Process: large, orange — sentiment ~76 (21%), priority ~73.5 (83%) */
.so-graphic__sp-bubble--process {
    width: 90px;
    height: 90px;
    background: rgba(251, 146, 60, 0.3);
    border: 2px solid #f97316;
    left: 16%;
    bottom: 75%;
    transform: translate(-50%, 50%);
}
/* People: medium, blue — sentiment ~81 (37%), priority ~71.5 (17%) */
.so-graphic__sp-bubble--people {
    width: 70px;
    height: 70px;
    background: rgba(96, 165, 250, 0.3);
    border: 2px solid #3b82f6;
    left: 37%;
    bottom: 22%;
    transform: translate(-50%, 50%);
}
/* Technology: small, purple — sentiment ~80 (34%), priority ~71.2 (7%) */
.so-graphic__sp-bubble--technology {
    width: 44px;
    height: 44px;
    background: rgba(192, 132, 252, 0.3);
    border: 2px solid #a855f7;
    left: 34%;
    bottom: 8%;
    transform: translate(-50%, 50%);
}
.so-graphic__sp-bubble--technology span {
    font-size: 0.58rem;
}
/* Axis labels */
.so-graphic__sp-y-label,
.so-graphic__sp-x-label {
    position: absolute;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-neutral-500, #737373);
}
.so-graphic__sp-y-label {
    left: -6px;
    top: 50%;
    transform: rotate(-90deg) translateX(-50%);
    transform-origin: left center;
    white-space: nowrap;
}
.so-graphic__sp-x-label {
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}
/* Tick labels */
.so-graphic__sp-y-axis {
    position: absolute;
    left: -28px;
    top: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0;
}
.so-graphic__sp-y-axis span {
    font-size: 0.58rem;
    color: var(--color-neutral-400, #a3a3a3);
    transform: translateY(-50%);
}
.so-graphic__sp-x-axis {
    position: absolute;
    bottom: -16px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
}
.so-graphic__sp-x-axis span {
    font-size: 0.58rem;
    color: var(--color-neutral-400, #a3a3a3);
}

/* -- Brand Config (brand-config overview variant) -- */
.so-graphic__bc {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.so-graphic__bc-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__bc-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__bc-field {
    display: flex;
    align-items: center;
    gap: 10px;
}
.so-graphic__bc-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-neutral-500, #737373);
    min-width: 42px;
}
.so-graphic__bc-logo-upload {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.68rem;
    color: var(--color-neutral-600, #525252);
    border: 1px dashed var(--color-neutral-300, #d4d4d4);
    border-radius: 6px;
    padding: 4px 10px;
}
.so-graphic__bc-colors {
    display: flex;
    gap: 8px;
}
.so-graphic__bc-color {
    display: flex;
    align-items: center;
    gap: 4px;
}
.so-graphic__bc-color span:first-child {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1.5px solid rgba(0,0,0,0.1);
}
.so-graphic__bc-hex {
    font-size: 0.58rem;
    color: var(--color-neutral-400, #a3a3a3);
    font-family: monospace;
}
.so-graphic__bc-domain-input {
    font-size: 0.68rem;
    color: var(--color-neutral-700, #404040);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 4px;
    padding: 3px 10px;
    background: #fff;
}
.so-graphic__bc-preview-label {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    padding-top: 10px;
}
.so-graphic__bc-previews {
    display: flex;
    gap: 10px;
}
.so-graphic__bc-thumb {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.so-graphic__bc-thumb-bar {
    width: 100%;
    height: 4px;
    border-radius: 3px 3px 0 0;
}
.so-graphic__bc-thumb-body {
    width: 100%;
    padding: 6px;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-top: none;
    border-radius: 0 0 4px 4px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.so-graphic__bc-thumb-line {
    height: 3px;
    background: var(--color-neutral-200, #e5e5e5);
    border-radius: 2px;
}
.so-graphic__bc-thumb-line--short {
    width: 60%;
}
.so-graphic__bc-thumb span {
    font-size: 0.58rem;
    color: var(--color-neutral-500, #737373);
}

/* -- Accessibility (accessibility overview variant) -- */
.so-graphic__a11y {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.so-graphic__a11y-header {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__a11y-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__a11y-contrast {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__a11y-contrast-pair {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--color-neutral-50, #fafafa);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 8px 12px;
}
.so-graphic__a11y-swatch-row {
    display: flex;
    gap: 4px;
}
.so-graphic__a11y-swatch {
    width: 20px;
    height: 20px;
    border-radius: 4px;
}
.so-graphic__a11y-ratio {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}
.so-graphic__a11y-ratio-value {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-neutral-700, #404040);
    font-family: monospace;
}
.so-graphic__a11y-ratio-badge {
    font-size: 0.6rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
}
.so-graphic__a11y-ratio-badge--pass {
    background: #f0f7e8;
    color: var(--color-green, #58a415);
}
.so-graphic__a11y-ratio-badge--fail {
    background: #fef2f2;
    color: #dc2626;
}
.so-graphic__a11y-arrow {
    flex-shrink: 0;
    color: var(--color-green, #58a415);
}
.so-graphic__a11y-checks {
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-top: 1px solid var(--color-neutral-200, #e5e5e5);
    padding-top: 10px;
}
.so-graphic__a11y-check {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__a11y-check svg {
    flex-shrink: 0;
}

/* -- HM Delivery (hm-delivery overview variant) -- */
.so-graphic__hmd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.so-graphic__hmd-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__hmd-channels {
    display: flex;
    gap: 8px;
}
.so-graphic__hmd-channel {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-neutral-500, #737373);
    background: var(--color-neutral-50, #fafafa);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 6px;
    padding: 5px 12px;
}
.so-graphic__hmd-channel--active {
    background: #f0f7e8;
    border-color: var(--color-green, #58a415);
    color: var(--color-green, #58a415);
}
.so-graphic__hmd-message {
    background: #fff;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__hmd-msg-header {
    display: flex;
    align-items: center;
    gap: 6px;
}
.so-graphic__hmd-bot-avatar {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    background: var(--color-green, #58a415);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.so-graphic__hmd-bot-name {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__hmd-time {
    font-size: 0.62rem;
    color: var(--color-neutral-400, #a3a3a3);
    margin-left: auto;
}
.so-graphic__hmd-msg-text {
    margin: 0;
    font-size: 0.72rem;
    line-height: 1.5;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__hmd-msg-btn {
    align-self: flex-start;
    background: var(--color-green, #58a415);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 5px 16px;
    border-radius: 6px;
}

/* -- HM Triggers (hm-triggers overview variant) -- */
.so-graphic__hmt {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    justify-content: center;
}
.so-graphic__hmt-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__hmt-timeline {
    position: relative;
    display: flex;
    justify-content: space-between;
    padding: 28px 0 0;
    flex: 1;
    gap: 16px;
}
.so-graphic__hmt-line {
    position: absolute;
    top: 38px;
    left: 5%;
    right: 5%;
    height: 2px;
    background: var(--color-neutral-200, #e5e5e5);
}
.so-graphic__hmt-point {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 1;
    flex: 1;
}
.so-graphic__hmt-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--color-green, #58a415);
}
.so-graphic__hmt-card {
    background: #fff;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 10px;
    padding: 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    text-align: center;
    width: 100%;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.so-graphic__hmt-trigger-label {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-neutral-500, #737373);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.so-graphic__hmt-trigger-name {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__hmt-survey-type {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    padding: 4px 14px;
    border-radius: 4px;
    margin-top: 2px;
}

/* -- Managed Services Hero (managed-services variant) -- */
.sh-ms__body {
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}
.sh-ms__tier {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sh-ms__tier--core {
    background: var(--color-neutral-50, #fafafa);
}
.sh-ms__tier--enhanced {
    background: #f0f7e8;
    border-radius: 0 0 12px 12px;
}
.sh-ms__tier-header {
    display: flex;
    align-items: center;
    gap: 8px;
}
.sh-ms__tier-label {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.sh-ms__tier--enhanced .sh-ms__tier-label {
    color: var(--color-green, #58a415);
}
.sh-ms__tier-badge {
    font-size: 0.56rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-green, #58a415);
    padding: 2px 8px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sh-ms__tier-items {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sh-ms__tier-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--color-neutral-700, #404040);
}
.sh-ms__tier--core .sh-ms__tier-item svg {
    color: var(--color-neutral-500, #737373);
    flex-shrink: 0;
}
.sh-ms__tier--enhanced .sh-ms__tier-item svg {
    color: var(--color-green, #58a415);
    flex-shrink: 0;
}
.sh-ms__upgrade-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 0;
    color: var(--color-green, #58a415);
    border-top: 1px dashed var(--color-neutral-200, #e5e5e5);
    border-bottom: 1px dashed var(--color-neutral-200, #e5e5e5);
    background: #fff;
}

/* -- Dedicated Resource (impl-timeline overview variant) -- */
.so-graphic__dr {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 14px;
    justify-content: center;
}
.so-graphic__dr-header {
    display: flex;
    align-items: center;
    gap: 10px;
}
.so-graphic__dr-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.so-graphic__dr-name {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__dr-sub {
    display: block;
    font-size: 0.65rem;
    color: var(--color-neutral-500, #737373);
}
.so-graphic__dr-cycle {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}
.so-graphic__dr-step {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    text-align: center;
    background: var(--color-neutral-50, #fafafa);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 12px 8px;
}
.so-graphic__dr-step-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #f0f7e8;
    color: var(--color-green, #58a415);
    display: flex;
    align-items: center;
    justify-content: center;
}
.so-graphic__dr-step-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__dr-step-detail {
    font-size: 0.6rem;
    line-height: 1.4;
    color: var(--color-neutral-500, #737373);
}
.so-graphic__dr-arrow {
    color: var(--color-green, #58a415);
    flex-shrink: 0;
    margin-top: 20px;
}
.so-graphic__dr-schedule {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    padding: 7px 14px;
    border-radius: 6px;
    align-self: center;
}

/* -- Ongoing Optimization (ongoing-optimization overview variant) -- */
.so-graphic__oo {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
}
.so-graphic__oo-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__oo-metric {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.so-graphic__oo-metric-top {
    display: flex;
    align-items: center;
    gap: 8px;
}
.so-graphic__oo-metric-label {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-neutral-600, #525252);
}
.so-graphic__oo-metric-value {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-neutral-800, #262626);
    margin-left: auto;
}
.so-graphic__oo-metric-trend {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-green, #58a415);
}
.so-graphic__oo-bar-track {
    height: 6px;
    background: var(--color-neutral-100, #f5f5f5);
    border-radius: 3px;
    overflow: hidden;
}
.so-graphic__oo-bar-fill {
    height: 100%;
    background: var(--color-green, #58a415);
    border-radius: 3px;
}
.so-graphic__oo-alert {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    padding: 10px 12px;
}
.so-graphic__oo-alert-icon {
    color: #c2410c;
    flex-shrink: 0;
    margin-top: 1px;
}
.so-graphic__oo-alert-title {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    color: #c2410c;
}
.so-graphic__oo-alert-detail {
    display: block;
    font-size: 0.66rem;
    line-height: 1.4;
    color: var(--color-neutral-600, #525252);
}
.so-graphic__oo-rec {
    background: #f0f7e8;
    border: 1px solid #c6e09b;
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.so-graphic__oo-rec-header {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-green, #58a415);
}
.so-graphic__oo-rec-text {
    margin: 0;
    font-size: 0.66rem;
    line-height: 1.5;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__oo-rec-action {
    align-self: flex-start;
    font-size: 0.64rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-green, #58a415);
    padding: 4px 12px;
    border-radius: 4px;
}

/* -- Recruiter Triggers (recruiter-triggers overview variant) -- */
.so-graphic__rt {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    justify-content: center;
}
.so-graphic__rt-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__rt-timeline {
    position: relative;
    display: flex;
    justify-content: space-between;
    padding: 28px 0 0;
    gap: 12px;
    flex: 1;
}
.so-graphic__rt-line {
    position: absolute;
    top: 38px;
    left: 8%;
    right: 8%;
    height: 2px;
    background: var(--color-neutral-200, #e5e5e5);
}
.so-graphic__rt-point {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    position: relative;
    z-index: 1;
    flex: 1;
}
.so-graphic__rt-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--color-green, #58a415);
}
.so-graphic__rt-card {
    background: #fff;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 12px 10px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
    text-align: center;
    width: 100%;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.so-graphic__rt-trigger-label {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__rt-desc {
    font-size: 0.64rem;
    color: var(--color-neutral-500, #737373);
}
.so-graphic__rt-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    padding: 6px 14px;
    border-radius: 6px;
    align-self: center;
}

/* -- Perspective Compare (perspective-compare overview variant) -- */
.so-graphic__pc {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
}
.so-graphic__pc-header {
    display: flex;
    align-items: center;
}
.so-graphic__pc-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__pc-columns {
    display: flex;
    gap: 0;
    align-items: stretch;
}
.so-graphic__pc-col {
    flex: 1;
    background: #fff;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 10px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__pc-col-header {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72rem;
    font-weight: 700;
    padding-bottom: 6px;
    border-bottom: 2px solid;
}
.so-graphic__pc-col-header--recruiter {
    color: #3b82f6;
    border-color: #3b82f6;
}
.so-graphic__pc-col-header--manager {
    color: #8b5cf6;
    border-color: #8b5cf6;
}
.so-graphic__pc-score {
    display: flex;
    align-items: baseline;
    gap: 2px;
}
.so-graphic__pc-score-num {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__pc-score-label {
    font-size: 0.68rem;
    color: var(--color-neutral-400, #a3a3a3);
}
.so-graphic__pc-quote {
    margin: 0;
    font-size: 0.66rem;
    line-height: 1.5;
    color: var(--color-neutral-600, #525252);
    font-style: italic;
}
.so-graphic__pc-tag {
    display: inline-flex;
    align-items: center;
    font-size: 0.6rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    align-self: flex-start;
}
.so-graphic__pc-tag--warning {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fed7aa;
}
.so-graphic__pc-tag--danger {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}
.so-graphic__pc-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 8px;
    flex-shrink: 0;
}
.so-graphic__pc-divider-line {
    width: 2px;
    flex: 1;
    background: #ef4444;
    opacity: 0.3;
    border-radius: 1px;
}
.so-graphic__pc-divider-label {
    font-size: 0.56rem;
    font-weight: 700;
    color: #ef4444;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    writing-mode: vertical-lr;
    text-orientation: mixed;
}

/* -- Legal Alerts (legal-alerts overview variant) -- */
.so-graphic__la {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.so-graphic__la-header {
    display: flex;
    align-items: baseline;
    gap: 10px;
}
.so-graphic__la-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__la-disclaimer {
    font-size: 0.6rem;
    color: var(--color-neutral-400, #a3a3a3);
    font-style: italic;
}
.so-graphic__la-filters {
    display: flex;
    gap: 8px;
}
.so-graphic__la-filter {
    font-size: 0.65rem;
    color: var(--color-neutral-500, #737373);
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 4px;
    padding: 3px 10px;
    background: #fff;
}
.so-graphic__la-card {
    background: #fff;
    border: 1px solid var(--color-neutral-200, #e5e5e5);
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.so-graphic__la-feedback {
    margin: 0;
    font-size: 0.7rem;
    line-height: 1.5;
    color: var(--color-neutral-700, #404040);
    font-style: italic;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.so-graphic__la-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.so-graphic__la-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.62rem;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 4px;
}
.so-graphic__la-tag--legal {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}
.so-graphic__la-tag--risk {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fed7aa;
}
.so-graphic__la-analysis {
    margin: 0;
    font-size: 0.66rem;
    line-height: 1.45;
    color: var(--color-neutral-600, #525252);
}

/* -- AI Chat (ai-chat overview variant) -- */
.so-graphic__aic {
    padding: var(--space-4);
}
.so-graphic__aic-conversation {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.so-graphic__aic-msg {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}
.so-graphic__aic-avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.so-graphic__aic-avatar--user {
    background: var(--color-neutral-200, #e5e5e5);
    color: var(--color-neutral-600, #525252);
}
.so-graphic__aic-avatar--ai {
    background: var(--color-green, #58a415);
    color: #fff;
}
.so-graphic__aic-bubble {
    border-radius: 10px;
    padding: 8px 12px;
    font-size: 0.74rem;
    line-height: 1.5;
    max-width: 90%;
}
.so-graphic__aic-bubble--user {
    background: var(--color-neutral-100, #f5f5f5);
    color: var(--color-neutral-800, #262626);
    font-weight: 600;
}
.so-graphic__aic-bubble--ai {
    background: #f0f7e8;
    color: var(--color-neutral-700, #404040);
}
.so-graphic__aic-intro {
    margin: 0 0 8px;
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--color-neutral-800, #262626);
}
.so-graphic__aic-insight {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 8px;
}
.so-graphic__aic-insight:last-child {
    margin-bottom: 0;
}
.so-graphic__aic-num {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
}
.so-graphic__aic-insight-title {
    display: block;
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--color-neutral-800, #262626);
    margin-bottom: 1px;
}
.so-graphic__aic-insight-detail {
    display: block;
    font-size: 0.68rem;
    line-height: 1.4;
    color: var(--color-neutral-600, #525252);
}

/* -- Role Dashboards (role-dashboards variant) -- */
.so-graphic__rd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__rd-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__rd-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__rd-badge {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.so-graphic__rd-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.so-graphic__rd-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 4px;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    background: var(--color-white);
    text-align: center;
    color: var(--color-text-muted);
}

.so-graphic__rd-card--active {
    border-color: var(--color-green);
    background: rgba(88, 164, 21, 0.04);
    color: var(--color-green-dark);
}

.so-graphic__rd-card-name {
    font-size: 9px;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.2;
}

.so-graphic__rd-card-sub {
    font-size: 8px;
    color: var(--color-text-muted);
}

/* -- Real-Time Dashboard (realtime-dash variant) -- */
.so-graphic__rtd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__rtd-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__rtd-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__rtd-live {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 600;
    color: var(--color-green-dark);
}

.so-graphic__rtd-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-green);
    animation: rtd-pulse 2s ease-in-out infinite;
}

@keyframes rtd-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.so-graphic__rtd-kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.so-graphic__rtd-kpi {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 4px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__rtd-kpi-label {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.so-graphic__rtd-kpi-value {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    font-weight: 800;
    color: var(--color-text);
    line-height: 1;
}

.so-graphic__rtd-kpi-trend {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 9px;
    font-weight: 600;
}

.so-graphic__rtd-kpi-trend--up {
    color: var(--color-green-dark);
}

.so-graphic__rtd-kpi-trend--down {
    color: #ef4444;
}

.so-graphic__rtd-chart {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__rtd-chart-label {
    font-size: 9px;
    font-weight: 600;
    color: var(--color-text-muted);
}

.so-graphic__rtd-sparkline {
    width: 100%;
    height: 50px;
}

.so-graphic__rtd-chart-labels {
    display: flex;
    justify-content: space-between;
    font-size: 8px;
    color: var(--color-text-muted);
}

/* -- Multi-Channel Delivery (multi-channel variant) -- */
.so-graphic__mc {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__mc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__mc-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__mc-badge {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.so-graphic__mc-channels {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__mc-channel {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-sm);
    background: var(--color-white);
}

.so-graphic__mc-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
}

.so-graphic__mc-icon--email {
    background: rgba(88, 164, 21, 0.08);
    color: var(--color-green-dark);
}

.so-graphic__mc-icon--sms {
    background: rgba(232, 119, 34, 0.08);
    color: var(--color-orange);
}

.so-graphic__mc-icon--teams {
    background: rgba(55, 54, 142, 0.08);
    color: var(--cande-indigo, #37368e);
}

.so-graphic__mc-icon--slack {
    background: rgba(55, 54, 142, 0.08);
    color: var(--cande-indigo, #37368e);
}

.so-graphic__mc-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.so-graphic__mc-name {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__mc-target {
    font-size: 9px;
    color: var(--color-text-muted);
}

.so-graphic__mc-status {
    font-size: 9px;
    font-weight: 600;
    flex-shrink: 0;
}

.so-graphic__mc-status--green {
    color: var(--color-green-dark);
}

.so-graphic__mc-footer {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 500;
    color: var(--color-text-muted);
    padding: 4px 8px;
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
}

.so-graphic__mc-footer svg {
    flex-shrink: 0;
}

/* -- EmployE Survey Distribution (employe-survey-dist variant) -- */
.so-graphic__esd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__esd-header {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--color-green-dark);
}

.so-graphic__esd-email {
    padding: 8px 10px;
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__esd-email-row {
    display: flex;
    gap: 6px;
    font-size: 10px;
}

.so-graphic__esd-label {
    font-weight: 600;
    color: var(--color-text-muted);
    min-width: 42px;
}

.so-graphic__esd-value {
    color: var(--color-text);
}

.so-graphic__esd-progress {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__esd-progress-header {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
}

.so-graphic__esd-progress-count {
    color: var(--color-text);
}

.so-graphic__esd-progress-bar {
    height: 8px;
    background: var(--color-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__esd-progress-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 4px;
}

.so-graphic__esd-progress-pct {
    font-size: 9px;
    color: var(--color-green-dark);
    font-weight: 600;
}

.so-graphic__esd-status {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__esd-status-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    color: var(--color-text-muted);
}

.so-graphic__esd-status-item--done {
    color: var(--color-green-dark);
}

.so-graphic__esd-status-item--active {
    color: var(--color-green-dark);
    font-weight: 600;
}

.so-graphic__esd-stages {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-top: 6px;
}

.so-graphic__esd-stage {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: #f9fafb;
    border-radius: 8px;
}

.so-graphic__esd-stage-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.so-graphic__esd-stage-icon--green {
    background: rgba(88, 164, 21, 0.12);
    color: var(--color-green);
}

.so-graphic__esd-stage-icon--indigo {
    background: rgba(79, 70, 229, 0.12);
    color: var(--color-indigo, #4f46e5);
}

.so-graphic__esd-stage-icon--orange {
    background: rgba(245, 158, 11, 0.12);
    color: #f59e0b;
}

.so-graphic__esd-stage-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.so-graphic__esd-stage-name {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-gray-800);
}

.so-graphic__esd-stage-detail {
    font-size: 0.68rem;
    color: var(--color-gray-500);
}

.so-graphic__esd-stage-badge {
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 2px 8px;
    border-radius: 4px;
    flex-shrink: 0;
}

.so-graphic__esd-stage-badge--active {
    background: rgba(88, 164, 21, 0.12);
    color: var(--color-green);
}

.so-graphic__esd-stage-connector {
    display: flex;
    justify-content: center;
    padding-left: 20px;
}

/* -- EmployE Benchmark Compare (employe-benchmark-compare variant) -- */
.so-graphic__ebc {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__ebc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__ebc-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__ebc-badge {
    font-size: 9px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark);
}

.so-graphic__ebc-rows {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-graphic__ebc-row {
    display: grid;
    grid-template-columns: 58px 1fr 24px;
    align-items: center;
    gap: 6px;
}

.so-graphic__ebc-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: right;
}

.so-graphic__ebc-track {
    height: 7px;
    background: var(--color-gray-200);
    border-radius: 4px;
    position: relative;
    overflow: visible;
}

.so-graphic__ebc-fill {
    height: 100%;
    background: var(--color-green);
    border-radius: 4px;
    opacity: 0.6;
}

.so-graphic__ebc-marker {
    position: absolute;
    top: -2px;
    width: 3px;
    height: 11px;
    background: var(--color-gray-500);
    border-radius: 2px;
    transform: translateX(-50%);
}

.so-graphic__ebc-value {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text);
}

.so-graphic__ebc-legend {
    display: flex;
    gap: 12px;
    justify-content: center;
    font-size: 9px;
    color: var(--color-text-muted);
}

.so-graphic__ebc-legend span {
    display: flex;
    align-items: center;
    gap: 4px;
}

.so-graphic__ebc-swatch {
    display: inline-block;
    border-radius: 2px;
}

.so-graphic__ebc-swatch--you {
    width: 10px;
    height: 6px;
    background: var(--color-green);
    opacity: 0.6;
}

.so-graphic__ebc-swatch--avg {
    width: 3px;
    height: 9px;
    background: var(--color-gray-500);
}

/* -- EmployE Insights Report (employe-insights variant) -- */
.so-graphic__ei {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__ei-header {
    display: flex;
    align-items: center;
}

.so-graphic__ei-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__ei-findings {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-graphic__ei-finding {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-gray-200);
    background: var(--color-white);
}

.so-graphic__ei-finding--green {
    border-color: rgba(88, 164, 21, 0.2);
    background: rgba(88, 164, 21, 0.03);
    color: var(--color-green-dark);
}

.so-graphic__ei-finding--amber {
    border-color: rgba(245, 158, 11, 0.25);
    background: rgba(245, 158, 11, 0.03);
    color: #b45309;
}

.so-graphic__ei-finding svg {
    flex-shrink: 0;
}

.so-graphic__ei-finding-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.so-graphic__ei-finding-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text);
}

.so-graphic__ei-finding-status {
    font-size: 9px;
    font-weight: 500;
}

.so-graphic__ei-finding-score {
    font-size: 14px;
    font-weight: 800;
    color: inherit;
}

.so-graphic__ei-award {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: rgba(232, 119, 34, 0.05);
    border: 1px solid rgba(232, 119, 34, 0.2);
    border-radius: var(--radius-md);
    font-size: 10px;
    font-weight: 600;
    color: var(--color-orange);
}

.so-graphic__ei-award svg {
    flex-shrink: 0;
}

.so-graphic__ei-rings {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 10px;
    justify-items: center;
}

.so-graphic__ei-ring-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    position: relative;
}

.so-graphic__ei-ring-val {
    position: absolute;
    top: 36px;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-gray-900);
}

.so-graphic__ei-ring-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-gray-700);
    text-align: center;
}

.so-graphic__ei-ring-status {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 1px 6px;
    border-radius: 3px;
}

.so-graphic__ei-ring-status--good {
    background: rgba(88, 164, 21, 0.12);
    color: var(--color-green);
}

.so-graphic__ei-ring-status--warn {
    background: rgba(245, 158, 11, 0.12);
    color: #f59e0b;
}

/* --------------------------------------------------------------------------
   RESPONSIVE - TABLET (768px+)
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
    .pain-points__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pain-points__grid .pain-points__card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }

    .business-impact__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .business-impact__grid .business-impact__card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }

    .feature-grid__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stats-bar__grid {
        flex-direction: row;
        justify-content: space-evenly;
    }

    .cande-research__grid {
        flex-direction: row;
        justify-content: space-evenly;
    }

    .integration-logos {
        gap: var(--space-5);
    }

    .integration-logo-item {
        width: 180px;
        height: 72px;
        padding: var(--space-4);
    }

    .related-solutions__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .related-solutions__grid .related-solutions__card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }

    .so-graphic__arrow {
        display: block;
    }

    .so-graphic__flow {
        flex-wrap: nowrap;
    }

    .testimonials-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-grid .testimonial-card:last-child {
        grid-column: 1 / -1;
        max-width: 50%;
        margin: 0 auto;
    }
}

/* --------------------------------------------------------------------------
   RESPONSIVE - DESKTOP (1024px+)
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
    .solution-hero {
        padding: calc(var(--header-height) + var(--notif-bar-height, 0px) + 24px) 0 var(--space-16);
    }

    .solution-hero__content {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-12);
    }

    .solution-hero__graphic {
        max-width: none;
        margin: 0;
    }

    .sh-auto__body {
        padding: 20px 24px;
    }

    .sh-auto__channel {
        gap: 8px;
        padding: 10px 12px;
        font-size: var(--font-size-sm);
    }

    .pain-points__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .pain-points__grid .pain-points__card:last-child:nth-child(odd) {
        grid-column: auto;
        max-width: none;
        margin: 0;
    }

    .business-impact__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* When exactly 4 cards, use 2x2 grid instead of 3-col */
    .business-impact__grid:has(.business-impact__card:nth-child(4):last-child) {
        grid-template-columns: repeat(2, 1fr);
    }

    .business-impact__grid .business-impact__card:last-child:nth-child(odd) {
        grid-column: auto;
        max-width: none;
        margin: 0;
    }

    .feature-grid__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .related-solutions__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .related-solutions__grid .related-solutions__card:last-child:nth-child(odd) {
        grid-column: auto;
        max-width: none;
        margin: 0;
    }

    .feature-row {
        grid-template-columns: 1fr 1fr;
    }

    .feature-row--reverse {
        direction: rtl;
    }

    .feature-row--reverse > * {
        direction: ltr;
    }

    .testimonials-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .testimonials-grid .testimonial-card:last-child {
        grid-column: auto;
        max-width: none;
    }
}

/* --------------------------------------------------------------------------
   ANIMATIONS (reduced motion respected)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
/* ==========================================================================
   HERO: CX Repurposed Survey (sh-cx__)
   ========================================================================== */

.sh-cx__body {
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.sh-cx__header {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-gray-200);
}

.sh-cx__subtitle {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.4;
}

.sh-cx__strikethrough {
    text-decoration: line-through;
    text-decoration-color: #ef4444;
    text-decoration-thickness: 2px;
    color: var(--color-text-muted);
}

.sh-cx__handwritten {
    color: #ef4444;
    font-weight: 700;
    position: relative;
    margin: 0 2px;
}

.sh-cx__questions {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.sh-cx__question {
    display: flex;
    gap: var(--space-3);
    align-items: baseline;
}

.sh-cx__q-num {
    font-size: 11px;
    font-weight: 700;
    color: var(--color-text-muted);
    background: var(--color-gray-100);
    padding: 2px 6px;
    border-radius: 4px;
    flex-shrink: 0;
}

.sh-cx__q-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    line-height: 1.5;
}

.sh-cx__scale {
    display: flex;
    gap: var(--space-2);
    padding-left: 36px;
}

.sh-cx__scale-dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--color-gray-300, #d1d5db);
    background: var(--color-white);
}

.sh-cx__scale-dot--filled {
    background: var(--color-gray-300, #d1d5db);
}


/* ==========================================================================
   HERO: Data Export (sh-de__)
   ========================================================================== */

.sh-de__body {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.sh-de__toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sh-de__format-select {
    display: flex;
    gap: 0;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.sh-de__format-option {
    padding: var(--space-1) var(--space-3);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-secondary);
    background: var(--color-white);
    cursor: default;
}

.sh-de__format-option--active {
    background: var(--color-indigo);
    color: var(--color-white);
}

.sh-de__download-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-white);
    background: var(--color-green);
    border-radius: var(--radius-sm);
    cursor: default;
}

.sh-de__table {
    display: flex;
    flex-direction: column;
}

.sh-de__thead {
    display: grid;
    grid-template-columns: 1fr 0.6fr 1.1fr 1fr 1fr;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--color-gray-100);
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary);
}

.sh-de__row {
    display: grid;
    grid-template-columns: 1fr 0.6fr 1.1fr 1fr 1fr;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--color-gray-100);
    font-size: 12px;
    color: var(--color-text-primary);
}

.sh-de__row--faded {
    opacity: 0.4;
}

.sh-de__nps {
    font-weight: 700;
}

.sh-de__nps--pos { color: var(--color-green); }
.sh-de__nps--neg { color: var(--color-orange); }

.sh-de__footer {
    padding: var(--space-3);
    text-align: center;
    font-size: 11px;
    color: var(--color-text-muted);
    border-top: 1px solid var(--color-gray-200);
}

/* ==========================================================================
   OVERVIEW: Talent Lifecycle — Dashboard (so-graphic__tl)
   ========================================================================== */

.so-graphic__tl {
    display: flex;
    padding: 0; /* sidebar goes edge-to-edge */
    border-radius: var(--radius-md);
    overflow: hidden;
}

.so-graphic__tl-sidebar {
    width: 160px;
    background: var(--color-indigo);
    padding: var(--space-3) 0;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
}

.so-graphic__tl-sidebar-header {
    padding: var(--space-2) var(--space-4);
    margin-bottom: var(--space-2);
}

.so-graphic__tl-sidebar-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.5);
}

.so-graphic__tl-nav-item {
    padding: var(--space-2) var(--space-4);
    font-size: 11px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.75);
    cursor: default;
    border-left: 3px solid transparent;
}

.so-graphic__tl-nav-item--active {
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
    font-weight: 600;
    border-left-color: var(--color-white);
}

.so-graphic__tl-main {
    flex: 1;
    padding: var(--space-3) var(--space-4);
    background: var(--color-white);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__tl-main-header {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__tl-gauges {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
}

.so-graphic__tl-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: var(--space-2) var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    flex: 1;
    min-width: 0;
}

.so-graphic__tl-gauge-value {
    font-size: var(--font-size-lg);
    font-weight: 800;
    color: var(--color-text-primary);
    margin-top: -4px;
}

.so-graphic__tl-gauge-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-align: center;
}

@media (max-width: 767px) {
    .so-graphic__tl-sidebar {
        width: 120px;
    }
    .so-graphic__tl-gauges {
        flex-direction: column;
        align-items: center;
    }
}

/* ==========================================================================
   OVERVIEW: Rewards Config (so-graphic__rc)
   ========================================================================== */

.so-graphic__rc {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    gap: var(--space-4);
}

.so-graphic__rc-section {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.so-graphic__rc-section-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
}

.so-graphic__rc-upload {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) var(--space-4);
    background: var(--color-green-light);
    border: 1px solid var(--color-green);
    border-radius: var(--radius-md);
}

.so-graphic__rc-file {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.so-graphic__rc-filename {
    font-size: var(--font-size-sm);
    font-weight: 600;
    font-family: monospace;
    color: var(--color-green-dark);
}

.so-graphic__rc-upload-status {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: #10b981;
}

.so-graphic__rc-fields {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__rc-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__rc-field-label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-secondary);
}

.so-graphic__rc-select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-2) var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-primary);
}

.so-graphic__rc-pills {
    display: flex;
    gap: var(--space-1);
}

.so-graphic__rc-pill {
    font-size: 10px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
    color: var(--color-text-muted);
    background: var(--color-gray-100);
}

.so-graphic__rc-pill--active {
    background: var(--color-green);
    color: var(--color-white);
}

/* ==========================================================================
   OVERVIEW: Rewards Targeting (so-graphic__rt)
   ========================================================================== */

.so-graphic__rt {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    gap: var(--space-3);
}

.so-graphic__rt-header {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__rt-rules {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.so-graphic__rt-rule {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__rt-rule-left {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
    min-width: 0;
}

.so-graphic__rt-rule-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.so-graphic__rt-rule-survey {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-primary);
}

.so-graphic__rt-rule-audience {
    font-size: 10px;
    color: var(--color-text-muted);
}

.so-graphic__rt-rule-arrow {
    flex-shrink: 0;
}

.so-graphic__rt-reward {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    border-radius: 999px;
    font-size: var(--font-size-xs);
    font-weight: 700;
    flex-shrink: 0;
    white-space: nowrap;
}

.so-graphic__rt-reward--orange {
    background: #ffedd5;
    color: #9a3412;
}

.so-graphic__rt-reward--green {
    background: #d1fae5;
    color: #065f46;
}

.so-graphic__rt-reward--purple {
    background: #ede9fe;
    color: #5b21b6;
}

/* ==========================================================================
   OVERVIEW: Promote Prompt (so-graphic__pp)
   ========================================================================== */

.so-graphic__pp {
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
}

.so-graphic__pp-inner {
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    padding: var(--space-6) var(--space-5);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-4);
    width: 100%;
    box-sizing: border-box;
}

.so-graphic__pp-heading {
    font-size: clamp(1rem, 2.5vw, 1.35rem);
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.3;
    margin: 0;
}

.so-graphic__pp-icon {
    display: flex;
    justify-content: center;
}

.so-graphic__pp-subtext {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.5;
    max-width: 320px;
    margin: 0;
}

.so-graphic__pp-socials {
    display: grid;
    grid-template-columns: repeat(2, 36px);
    gap: var(--space-3);
    justify-content: center;
}

.so-graphic__pp-social {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ==========================================================================
   OVERVIEW: NPS Breakdown (so-graphic__nps)
   ========================================================================== */

.so-graphic__nps {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    gap: var(--space-4);
}

.so-graphic__nps-top {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    justify-content: center;
}

.so-graphic__nps-gauge {
    max-width: 110px;
}

.so-graphic__nps-score-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__nps-val {
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1;
}

.so-graphic__nps-label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.so-graphic__nps-breakdown {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.so-graphic__nps-row {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.so-graphic__nps-cat {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-primary);
    min-width: 100px;
}

.so-graphic__nps-range {
    font-weight: 400;
    color: var(--color-text-muted);
}

.so-graphic__nps-bar-wrap {
    flex: 1;
    height: 8px;
    background: var(--color-gray-200);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__nps-bar {
    height: 100%;
    border-radius: 4px;
}

.so-graphic__nps-bar--green { background: #10b981; }
.so-graphic__nps-bar--gray { background: var(--color-gray-400); }
.so-graphic__nps-bar--orange { background: var(--color-orange); }

.so-graphic__nps-pct {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-secondary);
    min-width: 32px;
    text-align: right;
}

.so-graphic__nps-pct--green { color: #10b981; }
.so-graphic__nps-pct--orange { color: var(--color-orange); }

/* ==========================================================================
   OVERVIEW: Review Site Routing (so-graphic__rr)
   ========================================================================== */

.so-graphic__rr {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: var(--space-2);
}

.so-graphic__rr-source {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background: var(--color-green-light);
    border: 1px solid var(--color-green);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
}

.so-graphic__rr-connector {
    display: flex;
    justify-content: center;
}

.so-graphic__rr-sites {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
    flex-wrap: wrap;
}

.so-graphic__rr-count {
    font-size: var(--font-size-sm);
    font-weight: 800;
    color: var(--color-green-dark);
}

.so-graphic__rr-total {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-green-dark);
    margin-top: var(--space-2);
}

/* ==========================================================================
   OVERVIEW: Negative Intercept (so-graphic__ni)
   ========================================================================== */

.so-graphic__ni {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 1;
    gap: var(--space-2);
}

.so-graphic__ni-source {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-300);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-secondary);
}

.so-graphic__ni-connector {
    display: flex;
    justify-content: center;
}

.so-graphic__ni-split {
    display: flex;
    gap: var(--space-6);
    justify-content: center;
    width: 100%;
}

.so-graphic__ni-path {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
    max-width: 140px;
}

.so-graphic__ni-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 999px;
}

.so-graphic__ni-badge--green {
    background: #d1fae5;
    color: #065f46;
}

.so-graphic__ni-badge--orange {
    background: #ffedd5;
    color: #9a3412;
}

.so-graphic__ni-arrow {
    display: block;
}

/* ==========================================================================
   HERO: Promote Dashboard extras (sh-promote)
   ========================================================================== */

/* ==========================================================================
   HERO: Rewards Coupon (sh-rewards)
   ========================================================================== */

.sh-rewards__body {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-4);
}

.sh-rewards__thanks {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.sh-rewards__thanks-text {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
}

.sh-rewards__coupon {
    width: 100%;
    border: 1.5px solid var(--color-gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--color-white);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.sh-rewards__coupon-top {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4) var(--space-5);
    background: linear-gradient(135deg, var(--color-green-light) 0%, #ecfdf5 100%);
}

.sh-rewards__coupon-offer {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}

.sh-rewards__coupon-save {
    font-size: var(--font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-green-dark);
}

.sh-rewards__coupon-pct {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    color: var(--color-green-dark);
    line-height: 1;
}

.sh-rewards__coupon-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.sh-rewards__brand-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-rewards__brand-name {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sh-rewards__coupon-divider {
    height: 0;
    border-top: 1.5px dashed var(--color-gray-300);
    margin: 0 var(--space-3);
    position: relative;
}

.sh-rewards__coupon-divider::before,
.sh-rewards__coupon-divider::after {
    content: '';
    position: absolute;
    top: -8px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--color-gray-50);
}

.sh-rewards__coupon-divider::before { left: -24px; }
.sh-rewards__coupon-divider::after { right: -24px; }

.sh-rewards__coupon-bottom {
    padding: var(--space-4) var(--space-5);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
}

.sh-rewards__code-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.sh-rewards__code-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-text-muted);
}

.sh-rewards__code-value {
    font-size: var(--font-size-base);
    font-weight: 700;
    font-family: monospace;
    color: var(--color-text-primary);
    padding: var(--space-1) var(--space-4);
    background: var(--color-gray-50);
    border: 1px dashed var(--color-gray-300);
    border-radius: var(--radius-sm);
    letter-spacing: 0.1em;
}

.sh-rewards__cta-btn {
    display: inline-block;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-white);
    background: var(--color-green);
    padding: var(--space-2) var(--space-5);
    border-radius: var(--radius-md);
}

.sh-rewards__footer {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.sh-promote__gauge-metric {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 10px 12px;
    background: var(--color-white);
    border: 1px solid var(--color-green);
    border-radius: var(--radius-md);
}

.sh-promote__gauge-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}

.sh-promote__gauge-svg {
    width: 80px;
    height: auto;
}

.sh-promote__gauge-val {
    font-size: var(--font-size-lg);
    font-weight: 800;
    color: var(--color-green-dark);
    line-height: 1;
    margin-top: -6px;
}

.sh-promote__gauge-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    line-height: 1.2;
}

.sh-promote__sites {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-promote__site-header {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-bottom: 2px;
}

/* -- Career Site Feedback Tab (cs-feedback-tab overview variant) -- */
.so-graphic__cs {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
}

.so-graphic__cs-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid var(--color-gray-200, #e5e5e5);
}

.so-graphic__cs-logo {
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--color-text-primary);
    letter-spacing: 0.06em;
}

.so-graphic__cs-links {
    display: flex;
    gap: 12px;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.so-graphic__cs-content {
    padding: 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
}

.so-graphic__cs-hero {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__cs-headline {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--color-text-primary);
}

.so-graphic__cs-sub {
    font-size: 0.76rem;
    color: var(--color-text-secondary);
}

.so-graphic__cs-fields {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__cs-field {
    height: 32px;
    background: var(--color-gray-50, #fafafa);
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 6px;
}

.so-graphic__cs-field-row {
    display: flex;
    gap: 8px;
}

.so-graphic__cs-field-row .so-graphic__cs-field {
    flex: 1;
}

.so-graphic__cs-field--short {
    max-width: 100px;
}

.so-graphic__cs-feedback-tab {
    position: absolute;
    right: 0;
    top: 30%;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    background: var(--color-green, #58a415);
    color: #fff;
    padding: 12px 7px;
    border-radius: 8px 0 0 8px;
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: -2px 0 8px rgba(0,0,0,0.1);
    line-height: 1;
}

.so-graphic__cs-feedback-tab strong {
    font-weight: 800;
    font-size: 0.84rem;
    letter-spacing: 0.03em;
}

/* -- Career Site Dashboard (cs-dashboard overview variant) -- */
.so-graphic__cd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.so-graphic__cd-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__cd-columns {
    display: flex;
    gap: 10px;
    flex: 1;
}

.so-graphic__cd-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-width: 120px;
}

.so-graphic__cd-nps {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 10px;
    padding: 12px 14px 10px;
    width: 100%;
}

.so-graphic__cd-nps-title {
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    text-align: center;
    line-height: 1.2;
}

.so-graphic__cd-nps-svg {
    width: 90px;
    height: auto;
}

.so-graphic__cd-nps-val {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--color-green-dark, #3d7a0f);
    line-height: 1;
    margin-top: -4px;
}

.so-graphic__cd-nps-val--red {
    color: #ef4444;
}

.so-graphic__cd-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.so-graphic__cd-feed-title {
    font-size: 0.64rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__cd-comments {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.so-graphic__cd-comment {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    padding: 6px 8px;
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 6px;
    font-size: 0.58rem;
    color: var(--color-text-secondary);
    line-height: 1.3;
}

.so-graphic__cd-comment svg {
    flex-shrink: 0;
    margin-top: 1px;
}

.so-graphic__cd-comment--pos {
    border-left: 2px solid #10b981;
}

.so-graphic__cd-comment--neg {
    border-left: 2px solid #ef4444;
}

/* -- Recruiter NPS Table (recruiter-nps-table overview variant) -- */
.so-graphic__rnt {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    justify-content: center;
}

.so-graphic__rnt-header {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__rnt-sub {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-text-muted);
    margin-top: -6px;
}

.so-graphic__rnt-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.66rem;
}

.so-graphic__rnt-table thead th {
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 6px 8px;
    text-align: center;
    border-bottom: 2px solid var(--color-gray-200, #e5e5e5);
}

.so-graphic__rnt-table thead th:first-child {
    text-align: left;
}

.so-graphic__rnt-table tbody td {
    padding: 8px;
    text-align: center;
    border-bottom: 1px solid var(--color-gray-100, #f5f5f5);
}

.so-graphic__rnt-name {
    text-align: left !important;
    font-weight: 700;
    color: var(--color-text-primary);
    white-space: nowrap;
}

.so-graphic__rnt-score {
    display: inline-block;
    min-width: 28px;
    padding: 3px 6px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.64rem;
}

.so-graphic__rnt-score--good {
    background: #ecfdf5;
    color: #065f46;
}

.so-graphic__rnt-score--warn {
    background: #fef3c7;
    color: #92400e;
}

.so-graphic__rnt-score--bad {
    background: #fee2e2;
    color: #991b1b;
}

.so-graphic__rnt-row--alert {
    background: #fff5f5;
}

/* -- Exit Full Dashboard (exit-full-dashboard overview variant) -- */
.so-graphic__efd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.so-graphic__efd-gauges {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.so-graphic__efd-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 8px;
    padding: 10px 6px 8px;
}

.so-graphic__efd-svg {
    width: 70px;
    height: auto;
}

.so-graphic__efd-val {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-green-dark, #3d7a0f);
    line-height: 1;
    margin-top: -4px;
}

.so-graphic__efd-val--red {
    color: #ef4444;
}

.so-graphic__efd-label {
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    text-align: center;
}

.so-graphic__efd-feed {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.so-graphic__efd-feed-title {
    font-size: 0.64rem;
    font-weight: 700;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* -- Job Description Survey Popup (cs-job-survey overview variant) -- */
.so-graphic__cs-content--jd {
    gap: 10px;
}

.so-graphic__jd-header {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.so-graphic__jd-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-text-primary);
}

.so-graphic__jd-meta {
    font-size: 0.62rem;
    color: var(--color-text-muted);
}

.so-graphic__jd-section {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.so-graphic__jd-heading {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__jd-line {
    height: 6px;
    background: var(--color-gray-100, #f5f5f5);
    border-radius: 3px;
    width: 100%;
}

.so-graphic__jd-line--short {
    width: 55%;
}

.so-graphic__jd-line--med {
    width: 75%;
}

.so-graphic__jd-apply {
    align-self: flex-start;
    font-size: 0.66rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-text-primary);
    padding: 6px 18px;
    border-radius: 6px;
    margin-top: 2px;
}

.so-graphic__cs-popup {
    position: absolute;
    bottom: 14px;
    right: 14px;
    width: 180px;
    background: #fff;
    border: 1.5px solid var(--color-green, #58a415);
    border-radius: 10px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    z-index: 2;
}

.so-graphic__cs-popup-badge {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.54rem;
    font-weight: 700;
    color: var(--color-green, #58a415);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__cs-popup-q {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.3;
    margin: 0;
}

.so-graphic__cs-popup-options {
    display: flex;
    gap: 5px;
}

.so-graphic__cs-popup-opt {
    flex: 1;
    text-align: center;
    font-size: 0.58rem;
    font-weight: 600;
    padding: 5px 0;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 5px;
    color: var(--color-text-secondary);
    cursor: default;
}

/* -- Career Site with Survey Popup (career-site hero variant) -- */
.sh-cs__body {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 280px;
}

.sh-cs__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid var(--color-gray-200, #e5e5e5);
}

.sh-cs__nav-logo {
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--color-text-primary);
    letter-spacing: 0.06em;
}

.sh-cs__nav-links {
    display: flex;
    gap: 14px;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--color-text-secondary);
}

.sh-cs__hero-area {
    padding: 20px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-cs__hero-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sh-cs__hero-headline {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-text-primary);
}

.sh-cs__hero-sub {
    font-size: 0.74rem;
    color: var(--color-text-secondary);
}

.sh-cs__search-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    padding: 7px 12px;
    background: var(--color-gray-50, #fafafa);
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 999px;
    font-size: 0.68rem;
    color: var(--color-text-muted);
    width: fit-content;
}

.sh-cs__job-cards {
    display: flex;
    gap: 8px;
}

.sh-cs__job-card {
    flex: 1;
    padding: 10px 12px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sh-cs__job-title {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.sh-cs__job-meta {
    font-size: 0.58rem;
    color: var(--color-text-muted);
}

.sh-cs__survey-popup {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 210px;
    background: #fff;
    border: 1.5px solid var(--color-green, #58a415);
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 2;
}

.sh-cs__survey-badge {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.6rem;
    font-weight: 700;
    color: var(--color-green, #58a415);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sh-cs__survey-question {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1.35;
    margin: 0;
}

.sh-cs__survey-stars {
    display: flex;
    gap: 3px;
}

.sh-cs__survey-actions {
    display: flex;
}

.sh-cs__survey-btn {
    font-size: 0.66rem;
    font-weight: 700;
    color: #fff;
    background: var(--color-green, #58a415);
    padding: 5px 16px;
    border-radius: 6px;
    cursor: default;
}

/* -- Benchmark Dashboard (benchmark-dash hero variant) -- */
.sh-bench__body {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.sh-bench__body .sh-hc__header {
    border: none;
    background: none;
    padding: 0 0 var(--space-2);
}

.sh-bench__gauges {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.sh-bench__gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: var(--radius-md);
    padding: 12px 8px 10px;
}

.sh-bench__gauge-svg {
    width: 72px;
    height: auto;
}

.sh-bench__gauge-val {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--color-green-dark, #3d7a0f);
    line-height: 1;
    margin-top: -4px;
}

.sh-bench__gauge-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    text-align: center;
    line-height: 1.2;
    margin-bottom: 6px;
}

.sh-bench__gauge-suffix {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-text-muted);
    margin-left: 1px;
}

.sh-bench__notes {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 10px;
    border-top: 1px solid var(--color-gray-200, #e5e5e5);
}

.sh-bench__note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 0.72rem;
    line-height: 1.35;
}

.sh-bench__note-tag {
    flex-shrink: 0;
    background: rgba(243, 140, 32, 0.12);
    color: var(--color-orange, #f38c20);
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 2px 7px;
    border-radius: 999px;
}

.sh-bench__note-text {
    color: var(--color-text-secondary);
    font-style: italic;
}

.sh-bench__bm-bars {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-top: 5px;
    border-top: 1px solid var(--color-gray-200, #e5e5e5);
}

.sh-bench__bm-row {
    display: flex;
    align-items: center;
    gap: 3px;
}

.sh-bench__bm-label {
    font-size: 0.5rem;
    font-weight: 500;
    color: var(--color-text-muted);
    min-width: 36px;
}

.sh-bench__bm-bar {
    flex: 1;
    height: 4px;
    background: var(--color-gray-100, #f5f5f5);
    border-radius: 999px;
    overflow: hidden;
}

.sh-bench__bm-fill {
    height: 100%;
    border-radius: 999px;
}

.sh-bench__bm-fill--overall {
    background: var(--color-gray-400, #a3a3a3);
}

.sh-bench__bm-fill--industry {
    background: var(--color-orange, #f59e0b);
}

.sh-bench__bm-val {
    font-size: 0.5rem;
    font-weight: 700;
    color: var(--color-text-muted);
    min-width: 14px;
    text-align: right;
}

/* -- Benchmark Widget (bench-application / bench-interview overview variants) -- */
.so-graphic__bw {
    padding: var(--space-6) var(--space-4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex: 1;
}

.so-graphic__bw-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.so-graphic__bw-svg {
    width: 140px;
    height: auto;
}

.so-graphic__bw-val {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-green-dark, #3d7a0f);
    line-height: 1;
    margin-top: -6px;
}

.so-graphic__bw-label {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__bw-bench {
    width: 70%;
    max-width: 240px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__bw-bench-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.so-graphic__bw-bench-label {
    font-size: 0.64rem;
    font-weight: 600;
    color: var(--color-text-muted);
    min-width: 44px;
}

.so-graphic__bw-bench-bar {
    flex: 1;
    height: 6px;
    background: var(--color-gray-100, #f5f5f5);
    border-radius: 999px;
    overflow: hidden;
}

.so-graphic__bw-bench-fill {
    height: 100%;
    border-radius: 999px;
}

.so-graphic__bw-bench-fill--overall {
    background: var(--color-gray-400, #a3a3a3);
}

.so-graphic__bw-bench-fill--industry {
    background: var(--color-orange, #f59e0b);
}

.so-graphic__bw-bench-fill--cande {
    background: var(--color-green, #58a415);
}

.so-graphic__bw-bench-val {
    font-size: 0.64rem;
    font-weight: 700;
    color: var(--color-text-muted);
    min-width: 18px;
    text-align: right;
}

/* ==========================================================================
   OVERVIEW: Gauge Grid — shared by tsf, tc, td tech variants
   ========================================================================== */

.so-graphic__tsf,
.so-graphic__tc,
.so-graphic__td {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
}

.so-graphic__gauge-header {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--space-4);
}

.so-graphic__gauge-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--space-2);
    flex: 1;
}

.so-graphic__gauge-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: var(--space-4) var(--space-2);
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__gauge-svg {
    width: 100%;
    max-width: 90px;
    height: auto;
}

.so-graphic__gauge-val {
    font-size: clamp(1rem, 2vw, 1.35rem);
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1;
    margin-top: -4px;
}

.so-graphic__gauge-val--amber {
    color: #b45309;
}

.so-graphic__gauge-label {
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--color-text-secondary);
    text-align: center;
    line-height: 1.2;
}

.so-graphic__gauge-trend {
    font-size: 10px;
    font-weight: 700;
    margin-top: 2px;
}

.so-graphic__gauge-trend--up { color: #10b981; }
.so-graphic__gauge-trend--flat { color: var(--color-text-muted); }
.so-graphic__gauge-trend--down { color: #ef4444; }

.so-graphic__td-badge {
    font-size: 9px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 999px;
    text-align: center;
    margin-top: 2px;
}

.so-graphic__td-badge--renew {
    background: #d1fae5;
    color: #065f46;
}

.so-graphic__td-badge--reconfigure {
    background: #fef3c7;
    color: #92400e;
}

.so-graphic__td-badge--replace {
    background: #fee2e2;
    color: #991b1b;
}

/* -- SurvaleStart Timeline (start-timeline overview variant) -- */
.so-graphic__st {
    padding: var(--space-5) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    justify-content: center;
    flex: 1;
}

.so-graphic__st-platform {
    background: var(--color-green, #58a415);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-align: center;
    padding: 10px 0;
    border-radius: 10px;
}

.so-graphic__st-timeline {
    position: relative;
    padding: 0 12px;
}

.so-graphic__st-line {
    position: absolute;
    top: 50%;
    left: 12px;
    right: 12px;
    height: 2px;
    background: var(--color-gray-300, #d4d4d4);
    transform: translateY(-1px);
}

.so-graphic__st-milestones {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding-top: 6px;
}

.so-graphic__st-milestone {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    position: relative;
    min-width: 60px;
}

.so-graphic__st-milestone--has-email {
    padding-top: 0;
}

.so-graphic__st-email {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    white-space: nowrap;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.so-graphic__st-connector {
    width: 1px;
    height: 10px;
    background: var(--color-gray-300, #d4d4d4);
}

.so-graphic__st-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--color-green, #58a415);
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px var(--color-green, #58a415);
    flex-shrink: 0;
    z-index: 1;
}

.so-graphic__st-dot--end {
    background: var(--color-orange, #f59e0b);
    box-shadow: 0 0 0 2px var(--color-orange, #f59e0b);
}

.so-graphic__st-label {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--color-text-primary);
    text-align: center;
}

.so-graphic__st-interval {
    font-size: 0.64rem;
    color: var(--color-text-muted);
    font-weight: 500;
}

/* -- SurvaleStart Feedback (start-feedback overview variant) -- */
.so-graphic__sf {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
    flex: 1;
}

.so-graphic__sf-dash {
    background: var(--color-green, #58a415);
    border-radius: 10px;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__sf-dash-title {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.so-graphic__sf-dash-metrics {
    display: flex;
    gap: 8px;
}

.so-graphic__sf-metric {
    flex: 1;
    background: rgba(255,255,255,0.15);
    border-radius: 8px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__sf-metric-val {
    font-size: 1.1rem;
    font-weight: 800;
    color: #fff;
}

.so-graphic__sf-metric-val--green {
    color: #d1fae5;
}

.so-graphic__sf-metric-val--orange {
    color: #fde68a;
}

.so-graphic__sf-metric-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: rgba(255,255,255,0.75);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.so-graphic__sf-arrows {
    text-align: center;
    line-height: 0;
}

.so-graphic__sf-arrows svg {
    width: 100%;
    height: 20px;
}

.so-graphic__sf-touchpoints {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.so-graphic__sf-card {
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 8px;
    overflow: hidden;
}

.so-graphic__sf-card--alert {
    border-color: var(--color-orange, #f59e0b);
}

.so-graphic__sf-card-header {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-text-primary);
    padding: 8px 10px 4px;
}

.so-graphic__sf-card-body {
    padding: 4px 10px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
}

.so-graphic__sf-response {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 0.62rem;
    font-weight: 600;
}

.so-graphic__sf-response--good {
    color: var(--color-green, #58a415);
}

.so-graphic__sf-response--warn {
    color: var(--color-orange, #f59e0b);
}

.so-graphic__sf-score {
    font-size: 0.62rem;
    color: var(--color-text-muted);
}

.so-graphic__sf-score span {
    font-weight: 800;
    font-size: 0.78rem;
    color: var(--color-green, #58a415);
}

.so-graphic__sf-score--warn span {
    color: var(--color-orange, #f59e0b);
}

/* -- SurvaleStart Dashboard (start-dashboard overview variant) -- */
.so-graphic__sd {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
    flex: 1;
}

.so-graphic__sd-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.so-graphic__sd-title {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__sd-filter {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-green, #58a415);
    background: #f0f7e8;
    padding: 5px 12px;
    border-radius: 999px;
}

.so-graphic__sd-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__sd-card {
    background: #fff;
    border: 1px solid var(--color-gray-200, #e5e5e5);
    border-radius: 10px;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-graphic__sd-card-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__sd-card-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.so-graphic__sd-card-pct {
    font-size: 1.1rem;
    font-weight: 800;
    min-width: 38px;
}

.so-graphic__sd-card-pct--red {
    color: #ef4444;
}

.so-graphic__sd-card-pct--orange {
    color: var(--color-orange, #f59e0b);
}

.so-graphic__sd-bar {
    flex: 1;
    height: 8px;
    background: var(--color-gray-100, #f5f5f5);
    border-radius: 999px;
    overflow: hidden;
}

.so-graphic__sd-bar-fill {
    height: 100%;
    border-radius: 999px;
}

.so-graphic__sd-bar-fill--red {
    background: #ef4444;
}

.so-graphic__sd-bar-fill--orange {
    background: var(--color-orange, #f59e0b);
}

.so-graphic__sd-card-detail {
    font-size: 0.66rem;
    color: var(--color-text-muted);
}

/* -- SurvaleStart Email (start-email hero variant) -- */
.sh-start__body {
    padding: var(--space-5) var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.sh-start__email-header {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-gray-200);
}

.sh-start__email-row {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}

.sh-start__email-field {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--color-text-muted);
    min-width: 52px;
}

.sh-start__email-value {
    font-size: 0.82rem;
    color: var(--color-text-secondary);
}

.sh-start__email-value--bold {
    font-weight: 700;
    color: var(--color-text-primary);
}

.sh-start__email-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.sh-start__greeting {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0;
}

.sh-start__subtext {
    font-size: 0.88rem;
    color: var(--color-text-secondary);
    margin: 0;
}

.sh-start__links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.sh-start__links li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sh-start__link {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--color-green);
    text-decoration: none;
    cursor: default;
}

@media (max-width: 600px) {
    .so-graphic__gauge-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ==========================================================================
   OVERVIEW: HR Integrations — Vertical Flow (so-graphic__hri)
   ========================================================================== */

.so-graphic__hri {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: var(--space-5) var(--space-4);
}

.so-graphic__hri-systems {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
}

.so-graphic__hri-system-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-2) var(--space-4);
    background: var(--color-white);
    border: 1.5px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    gap: 2px;
}

.so-graphic__hri-system-type {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
}

.so-graphic__hri-system-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-primary);
}

.so-graphic__hri-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-2) 0;
}

.so-graphic__hri-flow-line {
    width: 2px;
    height: 12px;
    background: var(--color-indigo);
}

.so-graphic__hri-hub {
    display: flex;
    justify-content: center;
}

.so-graphic__hri-glyph {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-1);
}

.so-graphic__hri-glyph-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__hri-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
}

.so-graphic__hri-tag {
    display: inline-block;
    padding: var(--space-1) var(--space-3);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-green);
    background: var(--color-green-light, #ecfdf5);
    border: 1px solid var(--color-green);
    border-radius: 20px;
}

/* ==========================================================================
   OVERVIEW: Export Table (so-graphic__et)
   ========================================================================== */

.so-graphic__et {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
}

.so-graphic__et-table {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    overflow: hidden;
    flex: 1;
}

.so-graphic__et-thead {
    display: grid;
    grid-template-columns: 1fr 0.6fr 1.1fr 1fr 1fr;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--color-indigo);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-white);
}

.so-graphic__et-row {
    display: grid;
    grid-template-columns: 1fr 0.6fr 1.1fr 1fr 1fr;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-gray-100);
    font-size: 12px;
    color: var(--color-text-primary);
}

.so-graphic__et-row:last-child {
    border-bottom: none;
}

.so-graphic__et-row--faded {
    opacity: 0.4;
}

.so-graphic__et-nps {
    font-weight: 700;
}

.so-graphic__et-nps--pos { color: var(--color-green); }
.so-graphic__et-nps--neg { color: var(--color-orange); }

.so-graphic__et-footer {
    padding: var(--space-3) var(--space-4);
    text-align: center;
    font-size: 11px;
    color: var(--color-text-muted);
    border-top: 1px solid var(--color-gray-200);
}

/* ==========================================================================
   OVERVIEW: Export Destinations (so-graphic__ed)
   ========================================================================== */

.so-graphic__ed {
    padding: var(--space-6);
    display: flex;
    align-items: center;
    gap: var(--space-6);
    justify-content: center;
}

.so-graphic__ed-source {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
}

.so-graphic__ed-glyph {
    display: flex;
    align-items: center;
    justify-content: center;
}

.so-graphic__ed-source-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-indigo);
}

.so-graphic__ed-branches {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.so-graphic__ed-branch {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.so-graphic__ed-line {
    width: 40px;
    height: 2px;
    background: var(--color-gray-300, #d1d5db);
    position: relative;
}

.so-graphic__ed-line::after {
    content: '';
    position: absolute;
    right: -3px;
    top: -3px;
    width: 0;
    height: 0;
    border-left: 6px solid var(--color-gray-300, #d1d5db);
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
}

.so-graphic__ed-dest {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    background: var(--color-white);
    border: 1.5px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-primary);
    min-width: 120px;
}

@media (max-width: 767px) {
    .so-graphic__ed {
        flex-direction: column;
    }
    .so-graphic__ed-branches {
        align-items: center;
    }
    .so-graphic__ed-line {
        width: 2px;
        height: 20px;
    }
    .so-graphic__ed-line::after {
        right: auto;
        bottom: -3px;
        top: auto;
        left: -3px;
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 6px solid var(--color-gray-300, #d1d5db);
        border-bottom: none;
    }
    .so-graphic__ed-branch {
        flex-direction: column;
    }
}

/* ==========================================================================
   HERO: SMS Conversation (sh-sms__)
   ========================================================================== */

.sh-sms__phone {
    background: var(--color-gray-50);
    border: 2px solid var(--color-gray-200);
    border-radius: 28px;
    padding: 0;
    overflow: hidden;
    max-width: 320px;
    margin: 0 auto;
    box-shadow: var(--shadow-lg);
}

.sh-sms__status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-2) var(--space-5);
    background: var(--color-gray-100);
    border-bottom: 1px solid var(--color-gray-200);
    color: var(--color-text-primary);
}

.sh-sms__time {
    font-size: 13px;
    font-weight: 600;
}

.sh-sms__status-icons {
    display: flex;
    gap: var(--space-2);
    align-items: center;
    color: var(--color-text-secondary);
}

.sh-sms__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-gray-200);
    background: var(--color-white);
}

.sh-sms__contact-name {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text-primary);
}

.sh-sms__contact-sub {
    font-size: 11px;
    color: var(--color-text-muted);
}

.sh-sms__messages {
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    background: var(--color-white);
}

.sh-sms__bubble {
    max-width: 85%;
    padding: var(--space-3) var(--space-4);
    border-radius: 16px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-text-primary);
    position: relative;
}

.sh-sms__bubble--incoming {
    background: var(--color-gray-100);
    border-bottom-left-radius: 4px;
    align-self: flex-start;
}

.sh-sms__bubble--outgoing {
    background: var(--color-indigo);
    color: var(--color-white);
    border-bottom-right-radius: 4px;
    align-self: flex-end;
}

.sh-sms__sender {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--color-indigo);
    margin-bottom: var(--space-1);
}

.sh-sms__link {
    display: inline-block;
    margin-top: var(--space-1);
    color: var(--color-indigo);
    font-weight: 600;
    text-decoration: underline;
    cursor: default;
}

.sh-sms__timestamp {
    display: block;
    font-size: 10px;
    color: var(--color-text-muted);
    margin-top: var(--space-1);
}

.sh-sms__timestamp--right {
    text-align: right;
    color: rgba(255, 255, 255, 0.7);
}

.sh-sms__response-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    background: var(--color-green-light, #ecfdf5);
    border-top: 1px solid var(--color-gray-200);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-green);
}

/* ==========================================================================
   OVERVIEW: SMS Trigger Flow (so-graphic__stf)
   ========================================================================== */

.so-graphic__stf {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding: var(--space-6) var(--space-4);
}

.so-graphic__stf-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    text-align: center;
    flex: 1;
    min-width: 0;
    position: relative;
}

.so-graphic__stf-node {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid;
    background: var(--color-white);
    position: relative;
    z-index: 1;
}

.so-graphic__stf-node--indigo {
    border-color: var(--color-indigo);
    color: var(--color-indigo);
}

.so-graphic__stf-node--orange {
    border-color: var(--color-orange);
    color: var(--color-orange);
}

.so-graphic__stf-node--green {
    border-color: var(--color-green);
    color: var(--color-green);
}

.so-graphic__stf-step-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--color-text-primary);
}

.so-graphic__stf-step-detail {
    font-size: 11px;
    color: var(--color-text-secondary);
}

.so-graphic__stf-connector {
    flex: 0 0 auto;
    width: 40px;
    height: 2px;
    background: var(--color-gray-300, #d1d5db);
    margin-top: 24px;
    position: relative;
}

.so-graphic__stf-connector::after {
    content: '';
    position: absolute;
    right: -3px;
    top: -3px;
    width: 0;
    height: 0;
    border-left: 6px solid var(--color-gray-300, #d1d5db);
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
}

@media (max-width: 767px) {
    .so-graphic__stf {
        flex-direction: column;
        align-items: center;
    }
    .so-graphic__stf-connector {
        width: 2px;
        height: 24px;
        margin-top: 0;
    }
    .so-graphic__stf-connector::after {
        right: auto;
        bottom: -3px;
        top: auto;
        left: -3px;
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 6px solid var(--color-gray-300, #d1d5db);
        border-bottom: none;
    }
}

/* ==========================================================================
   OVERVIEW: SMS Response Rates (so-graphic__srr)
   ========================================================================== */

.so-graphic__srr {
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.so-graphic__srr-header {
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-text-primary);
    text-align: center;
}

.so-graphic__srr-chart {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: var(--space-8);
    height: 180px;
}

.so-graphic__srr-bar-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
}

.so-graphic__srr-bar-wrapper {
    display: flex;
    align-items: flex-end;
    height: 160px;
    width: 72px;
}

.so-graphic__srr-bar {
    width: 100%;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: var(--space-2);
    transition: height 0.6s ease;
}

.so-graphic__srr-bar--sms {
    height: 90%;
    background: linear-gradient(180deg, var(--color-green) 0%, rgba(16, 185, 129, 0.7) 100%);
}

.so-graphic__srr-bar--email {
    height: 12%;
    background: linear-gradient(180deg, var(--color-gray-400, #9ca3af) 0%, var(--color-gray-300, #d1d5db) 100%);
}

.so-graphic__srr-bar-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text-primary);
}

.so-graphic__srr-populations {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3);
}

.so-graphic__srr-pop-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.so-graphic__srr-pop-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-2);
}

.so-graphic__srr-pop-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: var(--space-1) var(--space-3);
    background: var(--color-indigo-light, rgba(55, 54, 142, 0.08));
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-indigo);
}

.so-graphic__srr-bar--messaging {
    height: 78%;
    background: linear-gradient(180deg, var(--color-green) 0%, rgba(88, 164, 21, 0.7) 100%);
}

/* ==========================================================================
   OVERVIEW: Messaging Channels — survey tag pills
   ========================================================================== */

.so-graphic__mc-surveys {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    padding-top: var(--space-2);
}

.so-graphic__mc-surveys-title {
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
}

.so-graphic__mc-survey-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
}

.so-graphic__mc-survey-tag {
    display: inline-block;
    padding: 2px 8px;
    background: var(--color-indigo-light, rgba(55, 54, 142, 0.08));
    border-radius: 12px;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-indigo);
}

/* ==========================================================================
   HERO: Messaging Delivery (sh-msg)
   ========================================================================== */

.sh-msg__app {
    display: flex;
    width: 100%;
    max-width: 420px;
    height: 280px;
    margin: 0 auto;
    background: var(--color-white);
    border-radius: 12px;
    border: 1px solid var(--color-gray-200);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.sh-msg__sidebar {
    width: 120px;
    flex-shrink: 0;
    background: #3f0e40;
    padding: var(--space-3) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.sh-msg__sidebar-header {
    padding: 0 var(--space-3);
}

.sh-msg__workspace {
    font-size: 12px;
    font-weight: 800;
    color: #fff;
}

.sh-msg__sidebar-channels {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.sh-msg__channel {
    display: block;
    padding: 3px var(--space-3);
    font-size: 11px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
}

.sh-msg__channel::before {
    content: '#';
    margin-right: 3px;
    opacity: 0.5;
}

.sh-msg__channel--dm::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    margin-right: 5px;
    vertical-align: middle;
}

.sh-msg__channel--active {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 700;
    border-radius: 0;
}

.sh-msg__channel--active::before {
    background: var(--color-green);
}

.sh-msg__main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sh-msg__main-header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    border-bottom: 1px solid var(--color-gray-200);
}

.sh-msg__main-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--color-text);
}

.sh-msg__main-status {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    color: var(--color-text-muted);
}

.sh-msg__main-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-green);
}

.sh-msg__messages {
    flex: 1;
    padding: var(--space-3);
    overflow: hidden;
}

.sh-msg__message {
    display: flex;
    gap: var(--space-2);
}

.sh-msg__avatar {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-gray-100);
    border-radius: 6px;
}

.sh-msg__message-body {
    flex: 1;
    min-width: 0;
}

.sh-msg__message-meta {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    margin-bottom: 2px;
}

.sh-msg__message-name {
    font-size: 11px;
    font-weight: 800;
    color: var(--color-text);
}

.sh-msg__message-time {
    font-size: 9px;
    color: var(--color-text-muted);
}

.sh-msg__message-text {
    font-size: 11px;
    line-height: 1.5;
    color: var(--color-text);
    margin: 0 0 var(--space-2);
}

.sh-msg__message-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    background: var(--color-indigo);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    text-decoration: none;
    cursor: default;
}

.sh-msg__message-tag {
    display: inline-block;
    margin-top: var(--space-2);
    padding: 2px 8px;
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green-dark, #3d7a0a);
    font-size: 9px;
    font-weight: 700;
    border-radius: 10px;
}

.sh-msg__delivery-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: var(--space-2);
    background: rgba(88, 164, 21, 0.06);
    border-top: 1px solid var(--color-gray-200);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-green-dark, #3d7a0a);
}

/* Teams variant overrides */
.sh-msg__app--teams .sh-msg__sidebar {
    background: #464775;
    width: 56px;
    padding: var(--space-3) 0;
    align-items: center;
}

.sh-msg__app--teams .sh-msg__sidebar-header {
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-msg__app--teams .sh-msg__teams-icon {
    display: block;
}

.sh-msg__teams-icon {
    display: none;
}

.sh-msg__app--teams .sh-msg__workspace {
    display: none;
}

.sh-msg__app--teams .sh-msg__sidebar-channels {
    gap: 4px;
    align-items: center;
    padding-top: var(--space-2);
}

.sh-msg__app--teams .sh-msg__channel--teams-nav {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 4px;
    font-size: 8px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    border-radius: 4px;
    width: 44px;
    text-align: center;
}

.sh-msg__app--teams .sh-msg__channel--teams-nav::before {
    display: none;
}

.sh-msg__app--teams .sh-msg__channel--teams-nav svg {
    flex-shrink: 0;
}

.sh-msg__app--teams .sh-msg__channel--teams-nav.sh-msg__channel--active {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 700;
    border-radius: 4px;
}

.sh-msg__header-info {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.sh-msg__avatar--header {
    width: 24px;
    height: 24px;
}

    .pain-points__card,
    .business-impact__card,
    .feature-grid__card,
    .related-solutions__card,
    .so-graphic,
    .stats-bar__item,
    .cande-research__item {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.5s ease, transform 0.5s ease, border-color var(--transition), box-shadow var(--transition);
    }
}

/* ── TA Team Dashboard Hero ────────────────────────────────── */
.sh-ta__body {
    display: grid;
    grid-template-columns: 110px 1fr;
    min-height: 280px;
}

.sh-ta__sidebar {
    background: #2c3e6b;
    padding: 12px 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sh-ta__nav-item {
    padding: 7px 12px;
    font-size: 0.65rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    cursor: default;
    letter-spacing: 0.02em;
}

.sh-ta__nav-item--active {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 700;
    border-left: 3px solid var(--color-green);
    padding-left: 9px;
}

.sh-ta__main {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overflow: hidden;
}

.sh-ta__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.sh-ta__title {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.sh-ta__period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

/* Table */
.sh-ta__table {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--color-gray-100);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.sh-ta__thead {
    display: grid;
    grid-template-columns: 1fr repeat(3, 44px);
    gap: 0;
    padding: 5px 10px;
    background: var(--color-gray-50);
    border-bottom: 1px solid var(--color-gray-100);
}

.sh-ta__th {
    font-size: 0.55rem;
    font-weight: 700;
    color: var(--color-gray-400);
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 0.04em;
}

.sh-ta__th--name {
    text-align: left;
}

.sh-ta__row {
    display: grid;
    grid-template-columns: 1fr repeat(3, 44px);
    gap: 0;
    padding: 5px 10px;
    border-bottom: 1px solid var(--color-gray-50);
    align-items: center;
}

.sh-ta__row--selected {
    background: #eef3ff;
    border-left: 3px solid #2c3e6b;
    padding-left: 7px;
}

.sh-ta__name {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-gray-700);
}

.sh-ta__score {
    font-size: 0.65rem;
    font-weight: 700;
    text-align: center;
    border-radius: 3px;
    padding: 1px 4px;
}

.sh-ta__score--good {
    color: #15803d;
    background: #dcfce7;
}

.sh-ta__score--warn {
    color: #a16207;
    background: #fef9c3;
}

.sh-ta__score--bad {
    color: #dc2626;
    background: #fee2e2;
}

/* Comment feed */
.sh-ta__feed {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-ta__feed-header {
    padding-bottom: 4px;
    border-bottom: 1px solid var(--color-gray-100);
}

.sh-ta__feed-title {
    font-size: 0.6rem;
    font-weight: 700;
    color: #2c3e6b;
}

.sh-ta__comment {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.sh-ta__comment-indicator {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.sh-ta__comment-indicator--pos {
    background: var(--color-green);
}

.sh-ta__comment-indicator--neg {
    background: #dc2626;
}

.sh-ta__comment-text {
    font-size: 0.55rem;
    color: var(--color-gray-600);
    line-height: 1.4;
    font-style: italic;
}

@media (max-width: 767px) {
    .sh-ta__body {
        grid-template-columns: 1fr;
    }
    .sh-ta__sidebar {
        flex-direction: row;
        overflow-x: auto;
        padding: 8px;
        gap: 4px;
    }
    .sh-ta__nav-item {
        white-space: nowrap;
        font-size: 0.6rem;
        padding: 4px 8px;
    }
    .sh-ta__nav-item--active {
        border-left: none;
        border-bottom: 2px solid var(--color-green);
        padding-left: 8px;
        border-radius: var(--radius-sm);
    }
}

/* ── EE Cohort Connection (so-graphic__ecc) ─────────────────── */
.so-graphic__ecc {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.so-graphic__ecc-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.so-graphic__ecc-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.so-graphic__ecc-gauges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.so-graphic__ecc-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__ecc-val {
    font-size: 1.3rem;
    font-weight: 800;
    margin-top: -8px;
}

.so-graphic__ecc-val--red {
    color: #dc2626;
}

.so-graphic__ecc-val--warn {
    color: #a16207;
}

.so-graphic__ecc-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-align: center;
}

.so-graphic__ecc-sub {
    font-size: 0.55rem;
    font-weight: 500;
    color: var(--color-gray-400);
    font-style: italic;
}

.so-graphic__ecc-connector {
    flex-shrink: 0;
    margin-top: -20px;
}

/* Average comparison bar */
.so-graphic__ecc-compare {
    border-top: 1px solid var(--color-gray-100);
    padding-top: 10px;
}

.so-graphic__ecc-avg {
    display: flex;
    align-items: center;
    gap: 8px;
}

.so-graphic__ecc-avg-label {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-gray-500);
    flex-shrink: 0;
}

.so-graphic__ecc-avg-bar-wrap {
    flex: 1;
    height: 6px;
    background: var(--color-gray-100);
    border-radius: 3px;
    overflow: hidden;
}

.so-graphic__ecc-avg-bar {
    height: 100%;
    background: var(--color-green);
    border-radius: 3px;
}

.so-graphic__ecc-avg-val {
    font-size: 0.8rem;
    font-weight: 800;
    color: #15803d;
}

/* Insight badge */
.so-graphic__ecc-insight {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.66rem;
    font-weight: 600;
    color: var(--color-orange);
    padding: 6px 10px;
    background: #fff7ed;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(245, 158, 11, 0.2);
}

/* ── Employee Experience Lifecycle Hero (sh-ee) ─────────────── */
.sh-ee__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sh-ee__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.sh-ee__title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.sh-ee__period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.sh-ee__gauges {
    display: flex;
    justify-content: space-around;
    gap: 12px;
}

.sh-ee__gauge-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.sh-ee__gauge-val {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -10px;
}

.sh-ee__gauge-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-ee__trend {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-green);
    padding: 8px 12px;
    background: var(--color-gray-50);
    border-radius: var(--radius-sm);
}

/* ── QoH Scorecard (so-graphic__qs) ─────────────────────────── */
.so-graphic__qs {
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.so-graphic__qs-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    width: 100%;
}

.so-graphic__qs-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.so-graphic__qs-period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.so-graphic__qs-hero-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__qs-hero-val {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -10px;
}

.so-graphic__qs-hero-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.so-graphic__qs-subs {
    display: flex;
    justify-content: center;
    gap: 20px;
    width: 100%;
    border-top: 1px solid var(--color-gray-100);
    padding-top: 12px;
}

.so-graphic__qs-sub {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

.so-graphic__qs-sub-val {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -6px;
}

.so-graphic__qs-sub-val--warn {
    color: #a16207;
}

.so-graphic__qs-sub-label {
    font-size: 0.5rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    text-align: center;
}

/* ── QoH Recruiter Dashboard Hero (sh-qr) ──────────────────── */
.sh-qr__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-qr__section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 8px;
}

.sh-qr__section-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.sh-qr__section-period {
    font-size: 0.62rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.sh-qr__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.68rem;
}

.sh-qr__table thead th {
    text-align: left;
    font-size: 0.58rem;
    font-weight: 700;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 4px 8px;
    border-bottom: 1px solid var(--color-gray-100);
    background: var(--color-gray-50);
}

.sh-qr__table thead th:not(:first-child) {
    text-align: center;
}

.sh-qr__table tbody td {
    padding: 5px 8px;
    border-bottom: 1px solid var(--color-gray-50);
    color: var(--color-gray-600);
    font-size: 0.68rem;
}

.sh-qr__table tbody td:not(:first-child) {
    text-align: center;
}

.sh-qr__name {
    font-weight: 600;
    color: var(--color-gray-700);
}

.sh-qr__score {
    display: inline-block;
    font-weight: 700;
    font-size: 0.68rem;
    border-radius: 3px;
    padding: 1px 6px;
    min-width: 28px;
}

.sh-qr__score--good {
    color: #15803d;
    background: #dcfce7;
}

.sh-qr__score--warn {
    color: #a16207;
    background: #fef9c3;
}

.sh-qr__trend {
    font-size: 0.58rem;
    font-weight: 600;
}

.sh-qr__trend--up {
    color: #15803d;
}

.sh-qr__trend--down {
    color: #dc2626;
}

.sh-qr__trend--flat {
    color: var(--color-gray-400);
}

/* Gauge + feed row */
.sh-qr__gauge-row {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 12px;
    align-items: start;
}

.sh-qr__gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.sh-qr__gauge-val {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -6px;
}

.sh-qr__gauge-label {
    font-size: 0.58rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sh-qr__hm-feed {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-qr__hm-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.sh-qr__hm-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.sh-qr__hm-dot--pos {
    background: var(--color-green);
}

.sh-qr__hm-dot--neg {
    background: #dc2626;
}

.sh-qr__hm-text {
    font-size: 0.65rem;
    color: var(--color-gray-600);
    line-height: 1.4;
    font-style: italic;
}

@media (max-width: 767px) {
    .sh-qr__gauge-row {
        grid-template-columns: 1fr;
    }
    .sh-qr__gauge {
        margin: 0 auto;
    }
}

/* ── Early Careers University Dashboard (so-graphic__ecu) ──── */
.so-graphic__ecu {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-graphic__ecu-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.so-graphic__ecu-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.so-graphic__ecu-period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.so-graphic__ecu-gauges {
    display: flex;
    justify-content: space-around;
    gap: 8px;
}

.so-graphic__ecu-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    position: relative;
}

.so-graphic__ecu-arc {
    display: block;
}

.so-graphic__ecu-val {
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -8px;
}

.so-graphic__ecu-label {
    font-size: 0.55rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* Compare table */
.so-graphic__ecu-compare {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-graphic__ecu-compare-head {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-700);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--color-gray-100);
}

.so-graphic__ecu-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.6rem;
}

.so-graphic__ecu-table thead th {
    text-align: left;
    font-size: 0.5rem;
    font-weight: 700;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 4px 6px;
    border-bottom: 1px solid var(--color-gray-100);
}

.so-graphic__ecu-table thead th:not(:first-child) {
    text-align: center;
}

.so-graphic__ecu-table tbody td {
    padding: 4px 6px;
    border-bottom: 1px solid var(--color-gray-50);
    color: var(--color-gray-600);
}

.so-graphic__ecu-table tbody td:not(:first-child) {
    text-align: center;
}

.so-graphic__ecu-row--highlight {
    background: #eef3ff;
}

.so-graphic__ecu-name {
    font-weight: 600;
    color: var(--color-gray-700);
}

.so-graphic__ecu-score {
    display: inline-block;
    font-weight: 700;
    font-size: 0.55rem;
    border-radius: 3px;
    padding: 1px 5px;
    min-width: 24px;
}

.so-graphic__ecu-score--good {
    color: #15803d;
    background: #dcfce7;
}

.so-graphic__ecu-score--warn {
    color: #a16207;
    background: #fef9c3;
}

.so-graphic__ecu-score--bad {
    color: #dc2626;
    background: #fee2e2;
}

/* ── Hiring Manager NPS Feed (so-graphic__hm) ──────────────── */
.so-graphic__hm {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-graphic__hm-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.so-graphic__hm-title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.so-graphic__hm-period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.so-graphic__hm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}

.so-graphic__hm-table thead th {
    text-align: left;
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 6px 10px;
    border-bottom: 1px solid var(--color-gray-100);
    background: var(--color-gray-50);
}

.so-graphic__hm-table tbody td {
    padding: 6px 10px;
    border-bottom: 1px solid var(--color-gray-50);
    color: var(--color-gray-600);
    font-size: 0.7rem;
}

.so-graphic__hm-name {
    font-weight: 600;
    color: var(--color-gray-700);
}

.so-graphic__hm-score {
    display: inline-block;
    font-weight: 700;
    font-size: 0.7rem;
    border-radius: 3px;
    padding: 2px 8px;
    text-align: center;
    min-width: 32px;
}

.so-graphic__hm-score--good {
    color: #15803d;
    background: #dcfce7;
}

.so-graphic__hm-score--warn {
    color: #a16207;
    background: #fef9c3;
}

.so-graphic__hm-score--bad {
    color: #dc2626;
    background: #fee2e2;
}

/* Feed */
.so-graphic__hm-feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.so-graphic__hm-feed-head {
    border-bottom: 1px solid var(--color-gray-100);
    padding-bottom: 4px;
}

.so-graphic__hm-feed-title {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.so-graphic__hm-comment {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.so-graphic__hm-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 3px;
}

.so-graphic__hm-dot--pos {
    background: var(--color-green);
}

.so-graphic__hm-dot--neg {
    background: #dc2626;
}

.so-graphic__hm-comment-body {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.so-graphic__hm-comment-meta {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-gray-400);
}

.so-graphic__hm-comment-text {
    font-size: 0.72rem;
    color: var(--color-gray-600);
    line-height: 1.4;
    font-style: italic;
}


/* ── TTH Dimension Filter (so-graphic__tdf) ──────────────────── */
.so-graphic__tdf {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-graphic__tdf-tabs {
    display: flex;
    gap: 4px;
    background: var(--color-gray-50);
    border-radius: 6px;
    padding: 3px;
}

.so-graphic__tdf-tab {
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--color-gray-400);
    padding: 4px 10px;
    border-radius: 4px;
    cursor: default;
}

.so-graphic__tdf-tab--active {
    background: #fff;
    color: var(--color-gray-800);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

/* ── CandE Benchmark (so-graphic__cb) ────────────────────────── */
.so-graphic__cb-compare {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--color-gray-100);
    padding-top: 10px;
}

.so-graphic__cb-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.so-graphic__cb-row-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-gray-500);
    min-width: 62px;
    flex-shrink: 0;
}

.so-graphic__cb-bar-wrap {
    flex: 1;
    height: 8px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__cb-bar {
    height: 100%;
    border-radius: 4px;
}

.so-graphic__cb-bar--you {
    background: var(--color-green);
}

.so-graphic__cb-bar--avg {
    background: var(--color-gray-300);
}

.so-graphic__cb-row-val {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-500);
    min-width: 22px;
    text-align: right;
}

.so-graphic__cb-row-val--you {
    color: var(--color-green);
}

.so-graphic__cb-award {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fefce8;
    border: 1px solid #e5d56e;
    border-radius: 6px;
    margin-top: 2px;
}

.so-graphic__cb-award-text {
    font-size: 0.62rem;
    font-weight: 700;
    color: #854d0e;
}

/* ── Survale Pro Tiers (so-graphic__pro) ──────────────────────── */
.so-graphic__pro-tiers {
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-top: 1px solid var(--color-gray-100);
    padding-top: 10px;
}

.so-graphic__pro-tier {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px;
    border-radius: 6px;
    border: 1px solid;
}

.so-graphic__pro-tier--bronze {
    background: #fdf6ee;
    border-color: #e8d5b8;
}

.so-graphic__pro-tier--silver {
    background: #f5f6f8;
    border-color: #d1d5db;
}

.so-graphic__pro-tier--gold {
    background: #fefce8;
    border-color: #e5d56e;
}

.so-graphic__pro-tier-name {
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    min-width: 48px;
}

.so-graphic__pro-tier--bronze .so-graphic__pro-tier-name {
    color: #92400e;
}

.so-graphic__pro-tier--silver .so-graphic__pro-tier-name {
    color: #4b5563;
}

.so-graphic__pro-tier--gold .so-graphic__pro-tier-name {
    color: #854d0e;
}

.so-graphic__pro-tier-desc {
    font-size: 0.6rem;
    color: var(--color-gray-600);
    font-weight: 500;
}

/* ── Pro Survey Templates (so-graphic__pst) ──────────────────── */
.so-graphic__pst-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
    padding: 0 0.75rem;
}

.so-graphic__pst-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.75rem 0.5rem;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.so-graphic__pst-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.so-graphic__pst-name {
    font-size: 0.68rem;
    font-weight: 600;
    color: #1f2937;
}

.so-graphic__pst-badge {
    font-size: 0.55rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-green);
    background: rgba(88, 164, 21, 0.08);
    padding: 0.1em 0.5em;
    border-radius: 4px;
}

.so-graphic__pst-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.6rem 0.75rem;
    margin: 0 0.75rem 0.75rem;
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-green);
}

/* ── Brand Routing Hero (sh-br__) ────────────────────────────── */
.sh-br__body {
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.sh-br__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.sh-br__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #1f2937;
}

.sh-br__period {
    font-size: 0.62rem;
    color: #6b7280;
}

.sh-br__gauge-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
}

.sh-br__gauge-val {
    font-size: 1.6rem;
    font-weight: 700;
    color: #111827;
    margin-top: -0.5rem;
}

.sh-br__section-label {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--color-green);
    padding-top: 0.3rem;
    border-top: 1px solid var(--color-gray-200);
}

.sh-br__sites {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.sh-br__site {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.65rem;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
}

.sh-br__site-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.sh-br__site-name {
    font-size: 0.72rem;
    font-weight: 600;
    color: #1f2937;
}

.sh-br__stars {
    display: flex;
    align-items: center;
    gap: 0.1rem;
}

.sh-br__rating {
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--color-orange);
    margin-left: 0.25rem;
}

.sh-br__volume {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
}

.sh-br__volume-count {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-green);
    line-height: 1;
}

.sh-br__volume-label {
    font-size: 0.62rem;
    font-weight: 600;
    color: #6b7280;
}

.sh-br__arrow {
    flex-shrink: 0;
}

.sh-br__footer {
    text-align: center;
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-green);
    padding-top: 0.2rem;
}

/* ── Quality Scorecard Hero (sh-qs__) ────────────────────────── */
.sh-qs__body {
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.sh-qs__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.sh-qs__title {
    font-size: 0.82rem;
    font-weight: 700;
    color: #1f2937;
}

.sh-qs__period {
    font-size: 0.62rem;
    color: #6b7280;
}

.sh-qs__gauge-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
}

.sh-qs__gauge-val {
    font-size: 1.6rem;
    font-weight: 700;
    color: #111827;
    margin-top: -0.4rem;
}

.sh-qs__gauge-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    font-weight: 600;
}

.sh-qs__table {
    display: flex;
    flex-direction: column;
}

.sh-qs__row {
    display: grid;
    grid-template-columns: 5.5rem 3rem 1fr;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--color-gray-100);
}

.sh-qs__row--header {
    border-bottom: 1.5px solid var(--color-gray-200);
    padding-bottom: 0.3rem;
}

.sh-qs__row--header .sh-qs__col-source,
.sh-qs__row--header .sh-qs__col-nps {
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #9ca3af;
}

.sh-qs__col-source {
    font-size: 0.68rem;
    font-weight: 500;
    color: #1f2937;
}

.sh-qs__col-nps {
    font-size: 0.72rem;
    font-weight: 700;
    text-align: right;
}

.sh-qs__col-nps--good { color: var(--color-green); }
.sh-qs__col-nps--warn { color: var(--color-orange); }

.sh-qs__col-bar {
    height: 8px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.sh-qs__bar {
    height: 100%;
    border-radius: 4px;
}

.sh-qs__bar--good { background: var(--color-green); }
.sh-qs__bar--warn { background: var(--color-orange); }

/* ── Offer Pies Hero (sh-op__) ───────────────────────────────── */
.sh-op__body {
    padding: 1.2rem;
}

.sh-op__chart-group {
    display: flex;
    gap: 1rem;
}

.sh-op__chart {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.sh-op__chart-title {
    font-size: 0.82rem;
    font-weight: 700;
    text-align: center;
}

.sh-op__chart-title--declined { color: #ef4444; }
.sh-op__chart-title--accepted { color: var(--color-green); }

.sh-op__pie {
    width: 100px;
    height: 100px;
}

.sh-op__legend {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
}

.sh-op__legend-item {
    display: grid;
    grid-template-columns: 7px 1fr;
    column-gap: 0.3rem;
    row-gap: 0.15rem;
    align-items: center;
    font-size: 0.62rem;
}

.sh-op__legend-dot {
    grid-row: 1;
    grid-column: 1;
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.sh-op__legend-label {
    grid-row: 1;
    grid-column: 2;
    color: #4b5563;
    line-height: 1.2;
}

.sh-op__bar {
    grid-row: 2;
    grid-column: 2;
    display: block;
    height: 3px;
    border-radius: 2px;
}

.sh-op__bar--declined { background: #ef4444; }
.sh-op__bar--accepted { background: var(--color-green); }

/* ── QoH HM Feedback Loop (so-graphic__hml) ──────────────────── */
.so-graphic__hml-panels {
    display: flex;
    gap: 0;
    margin-top: 0.4rem;
}

.so-graphic__hml-panel {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.6rem;
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
}

.so-graphic__hml-panel-header {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #1f2937;
}

.so-graphic__hml-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 0.3rem;
}

.so-graphic__hml-score {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}

.so-graphic__hml-score-label {
    font-size: 0.76rem;
    color: #6b7280;
    font-weight: 500;
}

.so-graphic__hml-score-val {
    font-size: 1.2rem;
    font-weight: 700;
}

.so-graphic__hml-score-val small {
    font-size: 0.6rem;
    font-weight: 500;
    color: #9ca3af;
}

.so-graphic__hml-score-val--good { color: var(--color-green); }
.so-graphic__hml-score-val--warn { color: var(--color-orange); }

.so-graphic__hml-comment {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    font-size: 0.76rem;
    font-style: italic;
    color: #374151;
    line-height: 1.45;
}

/* ── QoH 90-Day Review (so-graphic__q9d) ─────────────────────── */
.so-graphic__q9d-gauges {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 0.3rem;
}

.so-graphic__q9d-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
}

.so-graphic__q9d-val {
    font-size: 1.3rem;
    font-weight: 700;
    color: #111827;
    margin-top: -0.3rem;
}

.so-graphic__q9d-label {
    font-size: 0.58rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    font-weight: 600;
    text-align: center;
}

.so-graphic__q9d-metrics {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 0.6rem;
    padding-top: 0.6rem;
    border-top: 1px solid var(--color-gray-200);
}

.so-graphic__q9d-metric {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    flex: 1;
    padding: 0.5rem 0.3rem;
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
}

.so-graphic__q9d-metric-val {
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-green);
}

.so-graphic__q9d-metric-label {
    font-size: 0.56rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    text-align: center;
}

/* ── Offer Outcome Feed (so-graphic__oof) ────────────────────── */
.so-graphic__oof-feed {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.3rem;
}

.so-graphic__oof-item {
    padding: 0.5rem 0.6rem;
    background: var(--color-gray-50);
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-gray-200);
}

.so-graphic__oof-tags {
    display: flex;
    gap: 0.3rem;
    margin-bottom: 0.25rem;
}

.so-graphic__oof-tag {
    font-size: 0.55rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.1em 0.45em;
    border-radius: 3px;
}

.so-graphic__oof-tag--stage {
    background: rgba(55, 54, 142, 0.08);
    color: var(--color-indigo);
}

.so-graphic__oof-tag--accepted {
    background: rgba(88, 164, 21, 0.1);
    color: var(--color-green);
}

.so-graphic__oof-tag--declined {
    background: rgba(239, 68, 68, 0.08);
    color: #ef4444;
}

.so-graphic__oof-text {
    font-size: 0.66rem;
    line-height: 1.5;
    color: #374151;
    margin: 0;
    font-style: italic;
}

.so-graphic__oof-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.so-graphic__oof-group + .so-graphic__oof-group {
    margin-top: 0.5rem;
}

.so-graphic__oof-group-header {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid var(--color-gray-200);
}

.so-graphic__oof-group-header .so-graphic__oof-tag {
    font-size: 0.62rem;
    padding: 0.18em 0.6em;
}

/* ── Offer Win Rate (so-graphic__owr) ────────────────────────── */
.so-graphic__owr-table {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 0.4rem;
}

.so-graphic__owr-row {
    display: grid;
    grid-template-columns: 5.5rem 3rem 1fr;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--color-gray-100);
}

.so-graphic__owr-row--header {
    border-bottom: 1.5px solid var(--color-gray-200);
    padding-bottom: 0.3rem;
}

.so-graphic__owr-row--header .so-graphic__owr-dept,
.so-graphic__owr-row--header .so-graphic__owr-rate {
    font-size: 0.58rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #9ca3af;
}

.so-graphic__owr-dept {
    font-size: 0.68rem;
    font-weight: 500;
    color: #1f2937;
}

.so-graphic__owr-rate {
    font-size: 0.7rem;
    font-weight: 700;
    text-align: right;
}

.so-graphic__owr-rate--good { color: var(--color-green); }
.so-graphic__owr-rate--warn { color: var(--color-orange); }
.so-graphic__owr-rate--bad { color: #ef4444; }

.so-graphic__owr-bar-col {
    height: 8px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__owr-bar {
    height: 100%;
    border-radius: 4px;
}

.so-graphic__owr-bar--good { background: var(--color-green); }
.so-graphic__owr-bar--warn { background: var(--color-orange); }
.so-graphic__owr-bar--bad { background: #ef4444; }

/* ── Offer Survey Card (so-graphic__osc) ─────────────────────── */
.so-graphic__osc {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.so-graphic__osc-question {
    font-size: 0.76rem;
    font-weight: 600;
    color: #1f2937;
}

.so-graphic__osc-scale {
    display: flex;
    gap: 0.4rem;
    padding: 0.3rem 0;
}

.so-graphic__osc-point {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 1.5px solid var(--color-gray-300);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 600;
    color: #6b7280;
    background: #fff;
}

.so-graphic__osc-point--selected {
    background: var(--color-green);
    border-color: var(--color-green);
    color: #fff;
}

.so-graphic__osc-options {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.2rem 0;
}

.so-graphic__osc-option {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    color: #4b5563;
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
}

.so-graphic__osc-option--selected {
    background: rgba(88, 164, 21, 0.06);
    color: #1f2937;
    font-weight: 600;
}

.so-graphic__osc-radio {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1.5px solid var(--color-gray-300);
    flex-shrink: 0;
}

.so-graphic__osc-radio--selected {
    border-color: var(--color-green);
    background: radial-gradient(circle, var(--color-green) 40%, transparent 41%);
}

.so-graphic__osc-textarea {
    font-size: 0.68rem;
    font-style: italic;
    color: #6b7280;
    background: var(--color-gray-50);
    border: 1px solid var(--color-gray-200);
    border-radius: var(--radius-md);
    padding: 0.5rem 0.6rem;
    line-height: 1.5;
}

/* ── Pro Tier Path (so-graphic__ptp) ─────────────────────────── */
.so-graphic__ptp-steps {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 0.25rem 0;
}

.so-graphic__ptp-step {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid;
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.so-graphic__ptp-step--bronze {
    background: #fdf6ee;
    border-color: #d4a96a;
}

.so-graphic__ptp-step--silver {
    background: #f5f6f8;
    border-color: #b0b8c4;
}

.so-graphic__ptp-step--gold {
    background: #fefce8;
    border-color: #e5d56e;
}

.so-graphic__ptp-step-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.so-graphic__ptp-tier-name {
    font-size: 0.72rem;
    font-weight: 700;
}

.so-graphic__ptp-step--bronze .so-graphic__ptp-tier-name { color: #92400e; }
.so-graphic__ptp-step--silver .so-graphic__ptp-tier-name { color: #475569; }
.so-graphic__ptp-step--gold .so-graphic__ptp-tier-name { color: #854d0e; }

.so-graphic__ptp-feature {
    font-size: 0.62rem;
    color: #4b5563;
    padding-left: 0.15rem;
}

.so-graphic__ptp-arrow {
    display: flex;
    justify-content: center;
    padding: 0.15rem 0;
}

/* ── Time to Hire (sh-tth__) ─────────────────────────────────── */
.sh-tth__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-tth__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.sh-tth__title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.sh-tth__period {
    font-size: 0.6rem;
    color: var(--color-gray-400);
    font-weight: 500;
}

.sh-tth__gauges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
}

.sh-tth__flow-line {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    margin: 0 4px;
    margin-bottom: 18px;
}

.sh-tth__flow-label {
    font-size: 0.5rem;
    font-weight: 700;
    color: #dc2626;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sh-tth__feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px solid var(--color-gray-100);
    padding-top: 10px;
}

.sh-tth__feed-head {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.sh-tth__comment {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.sh-tth__comment--featured {
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 8px 10px;
}

.sh-tth__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 4px;
}

.sh-tth__dot--neg {
    background: #dc2626;
}

.sh-tth__dot--pos {
    background: var(--color-green);
}

.sh-tth__comment-text {
    font-size: 0.68rem;
    color: var(--color-gray-600);
    line-height: 1.4;
    font-style: italic;
}

.sh-tth__comment--featured .sh-tth__comment-text {
    color: #991b1b;
    font-weight: 600;
}

/* ── No-Integration Flow (sh-nif__) ──────────────────────────── */
.sh-nif__body {
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: center;
}

.sh-nif__steps {
    display: flex;
    align-items: center;
    gap: 0;
}

.sh-nif__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 90px;
}

.sh-nif__icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sh-nif__icon--done {
    background: #f0f7e8;
    border: 1.5px solid #c6e09b;
}

.sh-nif__icon--dash {
    background: #f0f7e8;
    border: 1.5px solid #c6e09b;
}

.sh-nif__label {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--color-gray-700);
    text-align: center;
    line-height: 1.3;
    max-width: 100px;
}

.sh-nif__check {
    margin-top: -4px;
}

.sh-nif__connector {
    margin: 0 4px;
    margin-bottom: 28px;
}

.sh-nif__step--result {
    gap: 4px;
}

.sh-nif__result-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: -4px;
}

.sh-nif__result-val {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -8px;
}

.sh-nif__footer {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-green);
    padding: 8px 14px;
    background: var(--color-gray-50);
    border-radius: var(--radius-sm);
}

@media (max-width: 767px) {
    .sh-nif__steps {
        flex-direction: column;
    }
    .sh-nif__connector {
        transform: rotate(90deg);
        margin: -4px 0;
        margin-bottom: 0;
    }
    .sh-nif__step {
        min-width: unset;
    }
}

/* ── HM Candidate Quality NPS (so-graphic__hq) ──────────────── */
.so-graphic__hq {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-graphic__hq-gauges {
    display: flex;
    justify-content: space-around;
    gap: 12px;
}

.so-graphic__hq-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.so-graphic__hq-val {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -10px;
}

.so-graphic__hq-label {
    font-size: 0.6rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* ── RPO Handoff Comparison (so-graphic__rh) ─────────────────── */
.so-graphic__rh {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-graphic__rh-gauges {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.so-graphic__rh-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.so-graphic__rh-group-label {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--color-gray-700);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.so-graphic__rh-gauge-row {
    display: flex;
    justify-content: space-around;
    gap: 8px;
    width: 100%;
}

.so-graphic__rh-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

.so-graphic__rh-val {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--color-gray-900);
    margin-top: -8px;
}

.so-graphic__rh-val--warn {
    color: #f59e0b;
}

.so-graphic__rh-label {
    font-size: 0.62rem;
    font-weight: 600;
    color: var(--color-gray-400);
    text-align: center;
}

.so-graphic__rh-divider {
    width: 1px;
    background: var(--color-gray-200);
    align-self: stretch;
    margin: 20px 0 8px;
}

/* ── EE Benefits Dashboard (so-graphic__eb) ──────────────────── */
.so-graphic__eb {
    display: flex;
    min-height: 260px;
}

.so-graphic__eb-sidebar {
    background: #2c3e6b;
    padding: 10px 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 80px;
    border-radius: 0 0 0 12px;
}

.so-graphic__eb-nav {
    padding: 6px 10px;
    font-size: 0.65rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: 0.02em;
}

.so-graphic__eb-nav--active {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-weight: 700;
    border-left: 3px solid var(--color-green);
    padding-left: 7px;
}

.so-graphic__eb-main {
    flex: 1;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
}

.so-graphic__eb-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.so-graphic__eb-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-gray-900);
}

.so-graphic__eb-period {
    font-size: 0.62rem;
    color: var(--color-gray-400);
}

.so-graphic__eb-gauge-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    margin: -2px 0;
}

.so-graphic__eb-gauge-val {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--color-green);
    margin-top: -6px;
}

.so-graphic__eb-scales {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.so-graphic__eb-scale-title {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-gray-700);
    margin-bottom: 2px;
}

.so-graphic__eb-scale {
    display: flex;
    align-items: center;
    gap: 6px;
}

.so-graphic__eb-scale-label {
    font-size: 0.66rem;
    color: var(--color-gray-600);
    min-width: 72px;
    flex-shrink: 0;
}

.so-graphic__eb-bar-wrap {
    flex: 1;
    height: 6px;
    background: var(--color-gray-100);
    border-radius: 3px;
    overflow: hidden;
}

.so-graphic__eb-bar {
    height: 100%;
    border-radius: 3px;
}

.so-graphic__eb-bar--good {
    background: var(--color-green);
}

.so-graphic__eb-bar--warn {
    background: #f59e0b;
}

.so-graphic__eb-bar--bad {
    background: #dc2626;
}

.so-graphic__eb-scale-val {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--color-gray-700);
    min-width: 20px;
    text-align: right;
}

.so-graphic__eb-feed {
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-top: 1px solid var(--color-gray-100);
    padding-top: 6px;
    margin-top: 2px;
}

.so-graphic__eb-feed-head {
    font-size: 0.66rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.so-graphic__eb-comment {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.so-graphic__eb-comment-text {
    font-size: 0.65rem;
    color: var(--color-gray-600);
    line-height: 1.4;
    font-style: italic;
}

@media (max-width: 767px) {
    .so-graphic__eb {
        flex-direction: column;
    }
    .so-graphic__eb-sidebar {
        flex-direction: row;
        overflow-x: auto;
        padding: 6px;
        gap: 3px;
        min-width: unset;
        border-radius: 0;
    }
    .so-graphic__eb-nav {
        white-space: nowrap;
        font-size: 0.52rem;
        padding: 3px 7px;
    }
    .so-graphic__eb-nav--active {
        border-left: none;
        border-bottom: 2px solid var(--color-green);
        padding-left: 7px;
        border-radius: var(--radius-sm);
    }
}

/* --------------------------------------------------------------------------
   OVERVIEW: Brand Affinity (so-graphic__ba)
   -------------------------------------------------------------------------- */
.so-graphic__ba-widgets {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 8px;
}

.so-graphic__ba-widget {
    background: #f9fafb;
    border-radius: 8px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.so-graphic__ba-stage {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-gray-700);
}

.so-graphic__ba-stars {
    display: flex;
    gap: 2px;
}

.so-graphic__ba-val {
    font-size: 1rem;
    font-weight: 800;
}

.so-graphic__ba-val--good {
    color: var(--color-green);
}

.so-graphic__ba-val--warn {
    color: #f59e0b;
}

.so-graphic__ba-trend {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 8px 10px;
    background: #f0fdf4;
    border-radius: 6px;
    font-size: 0.74rem;
    color: var(--color-gray-600);
    line-height: 1.4;
}

/* --------------------------------------------------------------------------
   OVERVIEW: Brand Perception (so-graphic__bp)
   -------------------------------------------------------------------------- */
.so-graphic__bp-layout {
    display: flex;
    gap: 14px;
    margin-top: 8px;
}

.so-graphic__bp-question {
    flex: 1.2;
    min-width: 0;
}

.so-graphic__bp-q-label {
    display: block;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--color-gray-700);
    margin-bottom: 8px;
    line-height: 1.4;
}

.so-graphic__bp-bars {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-graphic__bp-bar-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.so-graphic__bp-bar-label {
    font-size: 0.78rem;
    color: var(--color-gray-600);
    min-width: 90px;
    flex-shrink: 0;
}

.so-graphic__bp-bar-track {
    flex: 1;
    height: 7px;
    background: var(--color-gray-100);
    border-radius: 4px;
    overflow: hidden;
}

.so-graphic__bp-bar-fill {
    height: 100%;
    border-radius: 4px;
}

.so-graphic__bp-bar-fill--green { background: var(--color-green); }
.so-graphic__bp-bar-fill--green-light { background: #86efac; }
.so-graphic__bp-bar-fill--gray { background: var(--color-gray-400); }
.so-graphic__bp-bar-fill--orange { background: #f59e0b; }
.so-graphic__bp-bar-fill--red { background: #dc2626; }

.so-graphic__bp-bar-pct {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-gray-700);
    min-width: 26px;
    text-align: right;
}

.so-graphic__bp-stat {
    margin-top: 8px;
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.so-graphic__bp-stat-val {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--color-green);
}

.so-graphic__bp-stat-text {
    font-size: 0.82rem;
    color: var(--color-gray-500);
}

.so-graphic__bp-feed .so-graphic__eb-feed-head {
    font-size: 0.78rem;
}

.so-graphic__bp-feed .so-graphic__eb-comment-text {
    font-size: 0.76rem;
}

.so-graphic__bp-feed {
    flex: 0.8;
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-left: 1px solid var(--color-gray-100);
    padding-left: 12px;
}

@media (max-width: 767px) {
    .so-graphic__bp-layout {
        flex-direction: column;
    }
    .so-graphic__bp-feed {
        border-left: none;
        border-top: 1px solid var(--color-gray-100);
        padding-left: 0;
        padding-top: 8px;
    }
}

@media (prefers-reduced-motion: no-preference) {

    .pain-points__card.is-visible,
    .business-impact__card.is-visible,
    .feature-grid__card.is-visible,
    .related-solutions__card.is-visible,
    .so-graphic.is-visible,
    .stats-bar__item.is-visible,
    .cande-research__item.is-visible {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   Comment Mining graphics
   - Hero: full window with filter chips, sentiment word cloud, comment list
   - Rows: sentiment buckets, sentiment cloud, filter before/after, keyword search
   ========================================================================== */

/* Shared sentiment colors. Reuse existing brand greens; pick a balanced red. */
:root {
    --cm-pos: #2f8f3a;
    --cm-pos-bg: #e8f5d9;
    --cm-neg: #c0392b;
    --cm-neg-bg: #fdecea;
    --cm-neu: #1f2937;
    --cm-neu-bg: #f3f4f6;
}

/* ── Hero: Comment Mining ─────────────────────────────────────── */
.sh-cm__body {
    padding: 18px 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sh-cm__filterbar {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--color-text-muted, #6b7280);
}

.sh-cm__filter-label {
    font-weight: 600;
    color: var(--color-text-secondary, #4b5563);
    letter-spacing: 0.02em;
}

.sh-cm__filter-chip {
    background: var(--color-indigo, #37368e);
    color: #fff;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
}

.sh-cm__cloud {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 6px 14px;
    padding: 14px 8px;
    background: linear-gradient(180deg, #fafbfd 0%, #ffffff 100%);
    border-radius: 10px;
    border: 1px solid var(--color-border, #e5e7eb);
    line-height: 1.1;
}

.sh-cm__word {
    font-weight: 700;
    letter-spacing: -0.01em;
}
.sh-cm__word--xl { font-size: 30px; }
.sh-cm__word--lg { font-size: 22px; }
.sh-cm__word--md { font-size: 16px; }
.sh-cm__word--sm { font-size: 12px; }

.sh-cm__word--pos { color: var(--cm-pos); }
.sh-cm__word--neg { color: var(--cm-neg); }
.sh-cm__word--neu { color: var(--cm-neu); }

.sh-cm__comments {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sh-cm__comment {
    position: relative;
    padding: 8px 10px 8px 14px;
    border-radius: 6px;
    background: #fafbfd;
    font-size: 11px;
    line-height: 1.4;
    color: var(--color-text-secondary, #4b5563);
}

.sh-cm__comment-bar {
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 3px;
}

.sh-cm__comment--pos .sh-cm__comment-bar { background: var(--cm-pos); }
.sh-cm__comment--neg .sh-cm__comment-bar { background: var(--cm-neg); }
.sh-cm__comment--neu .sh-cm__comment-bar { background: var(--cm-neu); }

.sh-cm__comment-text { margin: 0; font-style: italic; }
.sh-cm__comment--pos em { color: var(--cm-pos); font-style: normal; font-weight: 600; }
.sh-cm__comment--neg em { color: var(--cm-neg); font-style: normal; font-weight: 600; }

/* ── Row 1: Sentiment Buckets ─────────────────────────────────── */
.so-cm-buckets {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.so-cm-buckets__source {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    color: var(--color-text-muted, #6b7280);
}

.so-cm-buckets__source-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.so-cm-buckets__arrow {
    color: var(--color-text-muted, #9ca3af);
}

.so-cm-buckets__row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.so-cm-buckets__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 10px 8px;
    border-radius: 8px;
    border: 1px solid var(--color-border, #e5e7eb);
}

.so-cm-buckets__col--pos { background: var(--cm-pos-bg); border-color: rgba(47, 143, 58, 0.25); }
.so-cm-buckets__col--neu { background: var(--cm-neu-bg); border-color: var(--color-border, #e5e7eb); }
.so-cm-buckets__col--neg { background: var(--cm-neg-bg); border-color: rgba(192, 57, 43, 0.25); }

.so-cm-buckets__head {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
}

.so-cm-buckets__col--pos .so-cm-buckets__head { color: var(--cm-pos); }
.so-cm-buckets__col--neu .so-cm-buckets__head { color: var(--cm-neu); }
.so-cm-buckets__col--neg .so-cm-buckets__head { color: var(--cm-neg); }

.so-cm-buckets__card {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.7);
}

.so-cm-buckets__count {
    margin-top: 4px;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-dark, #1a1a2e);
}

/* ── Row 2: Sentiment Word Cloud (compact) ────────────────────── */
.so-cm-cloud {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-cm-cloud__legend {
    display: flex;
    gap: 10px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
}

.so-cm-cloud__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.so-cm-cloud__legend-item::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.so-cm-cloud__legend-item--pos { color: var(--cm-pos); }
.so-cm-cloud__legend-item--pos::before { background: var(--cm-pos); }
.so-cm-cloud__legend-item--neu { color: var(--cm-neu); }
.so-cm-cloud__legend-item--neu::before { background: var(--cm-neu); }
.so-cm-cloud__legend-item--neg { color: var(--cm-neg); }
.so-cm-cloud__legend-item--neg::before { background: var(--cm-neg); }

.so-cm-cloud__cloud {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 6px 12px;
    padding: 14px 8px;
    border-radius: 8px;
    background: #fafbfd;
    border: 1px solid var(--color-border, #e5e7eb);
    line-height: 1.1;
}

.so-cm-cloud__word { font-weight: 700; letter-spacing: -0.01em; }
.so-cm-cloud__word--xl { font-size: 28px; }
.so-cm-cloud__word--lg { font-size: 20px; }
.so-cm-cloud__word--md { font-size: 14px; }
.so-cm-cloud__word--sm { font-size: 11px; }
.so-cm-cloud__word--pos { color: var(--cm-pos); }
.so-cm-cloud__word--neu { color: var(--cm-neu); }
.so-cm-cloud__word--neg { color: var(--cm-neg); }

.so-cm-cloud__comments {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 4px;
}

.so-cm-cloud__comment {
    position: relative;
    padding: 8px 10px 8px 14px;
    border-radius: 6px;
    background: #fafbfd;
    font-size: 11px;
    line-height: 1.4;
    color: var(--color-text-secondary, #4b5563);
}

.so-cm-cloud__comment-bar {
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 3px;
}

.so-cm-cloud__comment--pos .so-cm-cloud__comment-bar { background: var(--cm-pos); }
.so-cm-cloud__comment--neg .so-cm-cloud__comment-bar { background: var(--cm-neg); }
.so-cm-cloud__comment--neu .so-cm-cloud__comment-bar { background: var(--cm-neu); }

.so-cm-cloud__comment-text { margin: 0; font-style: italic; }
.so-cm-cloud__comment--pos em { color: var(--cm-pos); font-style: normal; font-weight: 600; }
.so-cm-cloud__comment--neg em { color: var(--cm-neg); font-style: normal; font-weight: 600; }

/* ── Row 3: Filter Before/After ───────────────────────────────── */
.so-cm-filter {
    padding: 14px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: center;
}

.so-cm-filter__side {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-cm-filter__caption {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    color: var(--color-text-muted, #6b7280);
    text-align: center;
}

.so-cm-filter__cloud {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 4px 8px;
    padding: 10px 6px;
    border-radius: 6px;
    background: #fafbfd;
    border: 1px solid var(--color-border, #e5e7eb);
    min-height: 80px;
    line-height: 1.1;
}

.so-cm-filter__word { font-weight: 700; letter-spacing: -0.01em; }
.so-cm-filter__word--xl { font-size: 22px; }
.so-cm-filter__word--lg { font-size: 17px; }
.so-cm-filter__word--md { font-size: 12px; }
.so-cm-filter__word--sm { font-size: 10px; }
.so-cm-filter__word--pos { color: var(--cm-pos); }
.so-cm-filter__word--neu { color: var(--cm-neu); }
.so-cm-filter__word--neg { color: var(--cm-neg); }

.so-cm-filter__pivot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--color-indigo, #37368e);
}

.so-cm-filter__chip {
    background: var(--color-indigo, #37368e);
    color: #fff;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}

/* ── Row 4: Keyword Search ────────────────────────────────────── */
.so-cm-search {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.so-cm-search__bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: #fff;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.so-cm-search__icon { color: var(--color-text-muted, #9ca3af); flex-shrink: 0; }

.so-cm-search__query {
    flex: 1;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-dark, #1a1a2e);
}

.so-cm-search__count {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-indigo, #37368e);
    background: rgba(55, 54, 142, 0.1);
    padding: 2px 8px;
    border-radius: 999px;
}

.so-cm-search__results {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.so-cm-search__result {
    position: relative;
    padding: 8px 10px 8px 14px;
    border-radius: 6px;
    background: #fafbfd;
    font-size: 11px;
    line-height: 1.4;
    color: var(--color-text-secondary, #4b5563);
}

.so-cm-search__edge {
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 3px;
}

.so-cm-search__result--pos .so-cm-search__edge { background: var(--cm-pos); }
.so-cm-search__result--neg .so-cm-search__edge { background: var(--cm-neg); }
.so-cm-search__result--neu .so-cm-search__edge { background: var(--cm-neu); }

.so-cm-search__text { margin: 0; font-style: italic; }
.so-cm-search__text mark {
    background: rgba(243, 140, 32, 0.25);
    color: var(--color-dark, #1a1a2e);
    padding: 0 2px;
    border-radius: 2px;
    font-style: normal;
    font-weight: 600;
}
