/* SPH Assessments public UI. Every rule is scoped to the plugin namespace. */
.spha-active .spha-exam-brief { padding: clamp(18px, 3vw, 28px); margin-bottom: 24px; border: 1px solid #d7e8e8; border-radius: 24px; background: linear-gradient(130deg, #fff 55%, #edf9f7); box-shadow: 0 12px 32px #163d3e09; }
.spha-active .spha-exam-brief__heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.spha-active .spha-exam-brief__heading h2 { margin: 6px 0; font-size: clamp(19px, 3vw, 24px); }
.spha-active .spha-exam-brief__text { max-height: 340px; overflow: auto; overscroll-behavior: contain; overflow-wrap: anywhere; padding: 4px 2px; margin: 14px 0 20px; line-height: 2; }
.spha-active .spha-exam-brief__text img { max-width: 100%; height: auto; }
.spha-active .spha-exam-brief__text table { display: block; max-width: 100%; overflow-x: auto; }
.spha-active .spha-participation { border-radius: 12px; padding: 12px 15px; margin: 14px 0; color: #126b6d; background: #e8f6f5; font-size: 13px; line-height: 1.9; }
.spha-active .spha-consent-brief { padding: 16px; margin: 16px 0; border: 1px solid #d7e8e8; border-radius: 16px; }
.spha-active .spha-consent-brief h3 { margin: 0; font-size: 17px; }
.spha-active .spha-consent-brief .spha-exam-brief__text { max-height: 220px; margin-bottom: 0; }
.spha-active .spha-catalog-steps { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 26px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--spha-muted); }
.spha-active .spha-catalog-steps li, .spha-active .spha-catalog-steps a { display: flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.spha-active .spha-catalog-steps li > span, .spha-active .spha-catalog-steps a > span { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid #c5dcd9; border-radius: 50%; background: #ffffffc9; color: #486a69; font-size: 12px; }
.spha-active .spha-catalog-steps [aria-current="step"] { color: #126b6d; font-weight: 800; }
.spha-active .spha-catalog-steps [aria-current="step"] > span { background: #126b6d; border-color: #126b6d; color: #fff; }
.spha-active .spha-category-index__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 32px 0 22px; }
.spha-active .spha-category-index__heading h2 { margin: 0 0 5px; font: inherit; font-size: 24px; font-weight: 800; }
.spha-active .spha-category-index__heading p { margin: 0; color: var(--spha-muted); font-size: 14px; }
.spha-active .spha-category-total { min-width: 25px; padding: 2px 7px; border-radius: 7px; background: #e8f6f5; font-size: 12px; }
.spha-active .spha-category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; padding-bottom: 40px; }
.spha-active a.spha-category-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--spha-line); border-radius: 22px; background: #fff; box-shadow: var(--spha-shadow); color: var(--spha-text); text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.spha-active a.spha-category-card:hover { transform: translateY(-4px); border-color: #78b9b3; box-shadow: 0 18px 40px #173f3c1c; }
.spha-active a.spha-category-card:focus-visible { outline: 3px solid #e87851; outline-offset: 4px; }
.spha-active .spha-category-card__media { position: relative; display: grid; place-items: center; height: 200px; overflow: hidden; background: radial-gradient(circle at 20% 25%, #ffffffb3, transparent 50%), linear-gradient(135deg, #e0f3ef, #c3e7e2); color: #277c77; }
.spha-active .spha-category-card:nth-child(3n+2) .spha-category-card__media { background: radial-gradient(circle at 20% 25%, #ffffffb3, transparent 50%), linear-gradient(135deg, #fff0e5, #f7dbcd); color: #b36e4d; }
.spha-active .spha-category-card:nth-child(3n+3) .spha-category-card__media { background: radial-gradient(circle at 20% 25%, #ffffffb3, transparent 50%), linear-gradient(135deg, #e9edf9, #d1dbef); color: #657bad; }
.spha-active .spha-category-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.spha-active .spha-category-card__media > svg { width: 70px; height: 70px; opacity: .8; }
.spha-active .spha-category-card__count { position: absolute; inset-inline-start: 16px; bottom: 16px; padding: 4px 12px; border: 1px solid #ffffffb3; border-radius: 999px; background: #fffffff0; color: #294f50; font-size: 12px; font-weight: 700; }
.spha-active .spha-category-card__body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.spha-active .spha-category-card h3 { margin: 0 0 10px; color: var(--spha-text); font: inherit; font-size: 21px; font-weight: 800; overflow-wrap: anywhere; }
.spha-active .spha-category-card p { flex: 1; margin: 0 0 22px; color: var(--spha-muted); font-size: 14px; line-height: 1.95; overflow-wrap: anywhere; }
.spha-active .spha-category-card__link { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 16px; border-top: 1px solid var(--spha-line); color: var(--spha-teal-dark); font-size: 13px; font-weight: 800; }
.spha-active .spha-category-card__link > span { font-size: 21px; font-weight: 400; }
.spha-active .spha-catalog-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; font-size: 13px; color: var(--spha-muted); }
.spha-active .spha-catalog-breadcrumb a { color: var(--spha-teal-dark); text-decoration: none; }
.spha-active .spha-category-description { margin: 0 0 22px; padding: 16px 20px; border: 1px solid var(--spha-line); border-radius: 16px; background: #fff; }
.spha-active .spha-category-description summary { cursor: pointer; color: var(--spha-teal-dark); font-weight: 700; }
.spha-active .spha-category-description > div { padding-top: 14px; font-size: 14px; overflow-wrap: anywhere; }
.spha-active .spha-filters.spha-catalog-filters { grid-template-columns: minmax(180px, 2fr) repeat(2, minmax(110px, 1fr)) auto; }
@media (max-width: 900px) { .spha-active .spha-filters.spha-catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .spha-active .spha-category-index__heading { align-items: flex-start; flex-direction: column; }
    .spha-active .spha-category-index__heading h2 { font-size: 21px; }
    .spha-active .spha-category-grid { gap: 18px; }
    .spha-active .spha-category-card__media { height: 170px; }
    .spha-active .spha-category-card__body { padding: 19px; }
    .spha-active .spha-catalog-steps { gap: 10px 16px; font-size: 11px; }
    .spha-active .spha-catalog-steps li > span, .spha-active .spha-catalog-steps a > span { width: 23px; height: 23px; }
    .spha-active .spha-filters.spha-catalog-filters { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .spha-active a.spha-category-card { transition: none; } }
.spha-active {
    --spha-teal: #1f8a8a;
    --spha-teal-dark: #126b6d;
    --spha-teal-soft: #e8f6f5;
    --spha-coral: #ff6f4e;
    --spha-coral-dark: #dc5134;
    --spha-coral-soft: #fff0ec;
    --spha-bg: #f6f8ff;
    --spha-card: #fff;
    --spha-text: #172033;
    --spha-muted: #687386;
    --spha-line: #dfe5ee;
    --spha-danger: #c9364e;
    --spha-warning: #a66300;
    --spha-success: #16845b;
    --spha-shadow: 0 12px 36px rgba(23, 32, 51, .08);
    --spha-shadow-lg: 0 22px 70px rgba(23, 32, 51, .15);
    --spha-radius: 20px;
    --spha-radius-sm: 13px;
}

.spha-active .spha-archive *,
.spha-active .spha-single *,
.spha-active .spha-account *,
.spha-active .spha-modal *,
.spha-active .spha-runner *,
.spha-active .spha-result * {
    box-sizing: border-box;
}
.spha-active .spha-invitation, .spha-active .spha-invitation * { box-sizing: border-box; }

.spha-active [hidden] {
    display: none !important;
}

.spha-active .spha-archive,
.spha-active .spha-single,
.spha-active .spha-account,
.spha-active .spha-runner,
.spha-active .spha-result,
.spha-active .spha-invitation {
    color: var(--spha-text);
    direction: rtl;
    font-family: Dana, IRANSans, Tahoma, sans-serif;
    line-height: 1.8;
}

.spha-active .spha-shell,
.spha-active .spha-archive {
    width: min(1180px, calc(100% - 32px));
    margin-inline: auto;
}

.spha-active .spha-eyebrow {
    display: inline-block;
    color: var(--spha-teal-dark);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.1px;
    margin-bottom: 5px;
}

.spha-active .spha-btn,
.spha-active a.spha-btn,
.spha-active button.spha-btn {
    appearance: none;
    align-items: center;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    gap: 7px;
    justify-content: center;
    line-height: 1.4;
    min-height: 44px;
    padding: 10px 18px;
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.spha-active .spha-btn:hover,
.spha-active .spha-btn:focus-visible {
    box-shadow: 0 8px 20px rgba(31, 138, 138, .18);
    text-decoration: none;
    transform: translateY(-1px);
}

.spha-active .spha-btn:focus-visible,
.spha-active .spha-field input:focus-visible,
.spha-active .spha-field select:focus-visible,
.spha-active .spha-options input:focus-visible + .spha-option__visual,
.spha-active .spha-runner__arrow:focus-visible,
.spha-active .spha-dot:focus-visible,
.spha-active .spha-cohort-tab:focus-visible {
    outline: 3px solid rgba(255, 111, 78, .3);
    outline-offset: 2px;
}

.spha-active .spha-btn[disabled] {
    cursor: not-allowed;
    filter: grayscale(.3);
    opacity: .55;
    transform: none;
}

.spha-active .spha-btn--primary {
    background: linear-gradient(135deg, var(--spha-teal), var(--spha-teal-dark));
    color: #fff !important;
}

.spha-active .spha-btn--outline {
    background: #fff;
    border-color: var(--spha-teal);
    color: var(--spha-teal-dark) !important;
}

.spha-active .spha-btn--ghost {
    background: #f7f9fc;
    border-color: var(--spha-line);
    color: var(--spha-text) !important;
}

.spha-active .spha-btn--wide { width: 100%; }
.spha-active .spha-btn--small { min-height: 36px; padding: 7px 12px; font-size: 12px; }

.spha-active .spha-account a.spha-btn,
.spha-active .spha-account button.spha-btn,
.spha-active .spha-account__header a.spha-btn,
.spha-active .spha-account-table a.spha-btn {
    align-items: center !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    display: inline-flex !important;
    font-family: Dana, IRANSans, Tahoma, sans-serif !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    justify-content: center !important;
    line-height: 1.4 !important;
    min-height: 38px !important;
    padding: 9px 15px !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    width: auto !important;
}

.spha-active .spha-account a.spha-btn--primary,
.spha-active .spha-account button.spha-btn--primary,
.spha-active .spha-account__header a.spha-btn--primary {
    background: linear-gradient(135deg, var(--spha-teal), var(--spha-teal-dark)) !important;
    border-color: transparent !important;
    color: #fff !important;
    opacity: 1 !important;
}

.spha-active .spha-account a.spha-btn--outline,
.spha-active .spha-account button.spha-btn--outline,
.spha-active .spha-account-table a.spha-btn--outline {
    background: #fff !important;
    border: 1px solid rgba(31, 138, 138, .38) !important;
    color: var(--spha-teal-dark) !important;
}

.spha-active .spha-account a.spha-report-link {
    background: linear-gradient(135deg, var(--spha-teal), var(--spha-teal-dark)) !important;
    border-color: transparent !important;
    color: #fff !important;
    min-width: 116px !important;
}

.spha-active .spha-badge {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    padding: 5px 11px;
}

.spha-active .spha-badge--free { background: #e8f8ef; color: var(--spha-success); }
.spha-active .spha-badge--paid { background: var(--spha-coral-soft); color: var(--spha-coral-dark); }

.spha-active .spha-notice {
    border: 1px solid var(--spha-line);
    border-radius: var(--spha-radius-sm);
    margin: 14px 0;
    padding: 12px 15px;
}

.spha-active .spha-notice--error { background: #fff2f4; border-color: #f2bec7; color: var(--spha-danger); }
.spha-active .spha-notice--warning { background: #fff9e8; border-color: #eddaa3; color: var(--spha-warning); }

.spha-active .spha-spinner {
    animation: spha-spin .75s linear infinite;
    border: 2px solid rgba(31, 138, 138, .18);
    border-radius: 50%;
    border-top-color: var(--spha-teal);
    display: inline-block;
    height: 18px;
    vertical-align: middle;
    width: 18px;
}

.spha-active .spha-spinner--large { border-width: 3px; height: 42px; width: 42px; }
@keyframes spha-spin { to { transform: rotate(360deg); } }

/* Archive */
.spha-active .spha-archive { padding-block: 36px 64px; }

.spha-active .spha-archive__hero {
    background: linear-gradient(135deg, rgba(31, 138, 138, .13), rgba(255, 111, 78, .1));
    border: 1px solid rgba(31, 138, 138, .18);
    border-radius: 28px;
    margin-bottom: 24px;
    overflow: hidden;
    padding: clamp(28px, 5vw, 58px);
    position: relative;
}

.spha-active .spha-archive__hero::after {
    background: radial-gradient(circle, rgba(255, 255, 255, .85) 0 3px, transparent 4px);
    background-size: 22px 22px;
    content: '';
    inset: 0 65% 0 0;
    opacity: .7;
    position: absolute;
}

.spha-active .spha-archive__hero h1 {
    color: var(--spha-text);
    font-size: clamp(27px, 4vw, 44px);
    line-height: 1.35;
    margin: 0 0 10px;
    position: relative;
    z-index: 1;
}

.spha-active .spha-archive__hero p { color: var(--spha-muted); font-size: 16px; margin: 0; max-width: 700px; position: relative; z-index: 1; }

.spha-active .spha-filters {
    align-items: end;
    background: var(--spha-card);
    border: 1px solid var(--spha-line);
    border-radius: var(--spha-radius);
    box-shadow: var(--spha-shadow);
    display: grid;
    gap: 13px;
    grid-template-columns: minmax(210px, 1.6fr) repeat(3, minmax(140px, 1fr)) auto;
    padding: 18px;
}

.spha-active .spha-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.spha-active .spha-field > span { color: var(--spha-muted); font-size: 12px; font-weight: 800; }
.spha-active .spha-field input,
.spha-active .spha-field select {
    background: #fff;
    border: 1px solid var(--spha-line);
    border-radius: 11px;
    color: var(--spha-text);
    font: inherit;
    font-size: 13px;
    height: 44px;
    margin: 0;
    max-width: none;
    padding: 8px 12px;
    width: 100%;
}

.spha-active .spha-archive__summary { color: var(--spha-muted); font-size: 13px; margin: 24px 2px 12px; }
.spha-active .spha-archive__summary strong { color: var(--spha-text); }

.spha-active .spha-product-grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.spha-active .spha-product-card {
    background: var(--spha-card);
    border: 1px solid var(--spha-line);
    border-radius: var(--spha-radius);
    box-shadow: 0 7px 24px rgba(23, 32, 51, .06);
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.spha-active .spha-product-card:hover { border-color: rgba(31, 138, 138, .35); box-shadow: var(--spha-shadow); transform: translateY(-3px); }
.spha-active .spha-product-card__media { aspect-ratio: 16 / 9; background: var(--spha-teal-soft); display: block; overflow: hidden; position: relative; }
.spha-active .spha-product-card__media img { height: 100%; margin: 0; object-fit: cover; transition: transform .3s ease; width: 100%; }
.spha-active .spha-product-card:hover .spha-product-card__media img { transform: scale(1.025); }
.spha-active .spha-product-card__media .spha-badge { position: absolute; right: 13px; top: 13px; }
.spha-active .spha-product-card__body { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.spha-active .spha-product-card__meta { color: var(--spha-muted); display: flex; flex-wrap: wrap; font-size: 11px; gap: 12px; }
.spha-active .spha-product-card__meta span::before { color: var(--spha-teal); content: '●'; font-size: 7px; margin-left: 5px; }
.spha-active .spha-product-card h2 { font-size: 18px; line-height: 1.6; margin: 9px 0 5px; }
.spha-active .spha-product-card h2 a { color: var(--spha-text); text-decoration: none; }
.spha-active .spha-product-card p { color: var(--spha-muted); flex: 1; font-size: 13px; margin: 0 0 16px; }
.spha-active .spha-product-card__footer { align-items: center; border-top: 1px solid var(--spha-line); display: flex; gap: 10px; justify-content: space-between; padding-top: 14px; }
.spha-active .spha-product-card__price { color: var(--spha-teal-dark); font-size: 14px; font-weight: 900; }
.spha-active .spha-product-card__price del { color: var(--spha-muted); font-size: 11px; }
.spha-active .spha-product-card__price ins { text-decoration: none; }

.spha-active .spha-pagination { margin-top: 28px; }
.spha-active .spha-pagination ul { display: flex; gap: 7px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.spha-active .spha-pagination a,
.spha-active .spha-pagination span { align-items: center; background: #fff; border: 1px solid var(--spha-line); border-radius: 9px; color: var(--spha-text); display: flex; height: 40px; justify-content: center; min-width: 40px; padding: 5px 10px; text-decoration: none; }
.spha-active .spha-pagination .current { background: var(--spha-teal); border-color: var(--spha-teal); color: #fff; }
.spha-active .spha-empty { background: #fff; border: 1px dashed var(--spha-line); border-radius: var(--spha-radius); padding: 50px 20px; text-align: center; }
.spha-active .spha-empty > span { color: var(--spha-teal); display: block; font-size: 50px; }
.spha-active .spha-empty h2 { font-size: 20px; margin: 8px 0; }
.spha-active .spha-empty p { color: var(--spha-muted); }

/* Assessment product */
.spha-active .spha-single { background: var(--spha-bg); min-height: 70vh; padding-block: 26px 64px; }
.spha-active .spha-breadcrumb { color: var(--spha-muted); font-size: 12px; margin-bottom: 16px; }
.spha-active .spha-breadcrumb a { color: var(--spha-teal-dark); }
.spha-active .spha-assessment-hero { background: #fff; border: 1px solid var(--spha-line); border-radius: 26px; box-shadow: var(--spha-shadow); display: grid; gap: clamp(22px, 4vw, 50px); grid-template-columns: minmax(270px, .8fr) minmax(0, 1.2fr); margin-bottom: 22px; padding: clamp(20px, 4vw, 38px); }
.spha-active .spha-assessment-hero__media { align-self: start; background: var(--spha-teal-soft); border-radius: 20px; min-height: 280px; overflow: hidden; position: relative; }
.spha-active .spha-assessment-hero__media img { display: block; height: 100%; margin: 0; object-fit: cover; width: 100%; }
.spha-active .spha-assessment-hero__media .spha-badge { position: absolute; right: 14px; top: 14px; }
.spha-active .spha-assessment-hero__content h1 { color: var(--spha-text); font-size: clamp(25px, 3.5vw, 38px); line-height: 1.45; margin: 0 0 10px; }
.spha-active .spha-assessment-hero__intro { color: var(--spha-muted); font-size: 14px; }
.spha-active .spha-assessment-hero__intro p { margin: 0 0 12px; }
.spha-active .spha-fact-grid { display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); margin: 18px 0; }
.spha-active .spha-fact { align-items: center; background: linear-gradient(145deg, #f8fafe, #eef3f7); border: 1px solid var(--spha-line); border-radius: 14px; display: grid; grid-template-columns: 32px 1fr; padding: 11px; }
.spha-active .spha-fact > span { color: var(--spha-teal); font-size: 21px; grid-row: 1 / 3; }
.spha-active .spha-fact strong { color: var(--spha-text); font-size: 17px; line-height: 1.2; }
.spha-active .spha-fact small { color: var(--spha-muted); font-size: 10px; }
.spha-active .spha-product-price { color: var(--spha-teal-dark); font-size: 21px; font-weight: 900; margin: 12px 0; }
.spha-active .spha-product-price ins { text-decoration: none; }
.spha-active .spha-product-price del { color: var(--spha-muted); font-size: 14px; }
.spha-active .spha-product-actions { min-height: 50px; }
.spha-active .spha-product-actions .cart { align-items: center; display: flex; gap: 9px; margin: 0; }
.spha-active .spha-product-actions .quantity input { border: 1px solid var(--spha-line); border-radius: 10px; height: 46px; max-width: 76px; }
.spha-active .spha-product-actions .single_add_to_cart_button { background: var(--spha-teal) !important; border-radius: 12px !important; min-height: 46px; }
.spha-active .spha-inline-loading { align-items: center; color: var(--spha-muted); display: flex; font-size: 12px; gap: 8px; margin-bottom: 9px; }
.spha-active .spha-inline-error { color: var(--spha-danger); font-size: 12px; margin-top: 9px; }
.spha-active .spha-privacy-note { color: var(--spha-muted); font-size: 11px; margin: 12px 0 0; }
.spha-active .spha-privacy-note span { color: var(--spha-coral); }
.spha-active .spha-content-card { background: #fff; border: 1px solid var(--spha-line); border-radius: var(--spha-radius); margin-top: 18px; padding: clamp(20px, 4vw, 32px); }
.spha-active .spha-content-card h2 { border-bottom: 2px solid var(--spha-teal-soft); color: var(--spha-text); font-size: 20px; margin: 0 0 15px; padding-bottom: 10px; }
.spha-active .spha-prose { color: #435066; font-size: 14px; line-height: 2.05; }
.spha-active .spha-prose > :first-child { margin-top: 0; }
.spha-active .spha-prose > :last-child { margin-bottom: 0; }
.spha-active .spha-check-list,
.spha-active .spha-reference-list { color: #435066; list-style: none; margin: 0; padding: 0; }
.spha-active .spha-check-list li,
.spha-active .spha-reference-list li { border-bottom: 1px dashed var(--spha-line); padding: 9px 28px 9px 0; position: relative; }
.spha-active .spha-check-list li:last-child,
.spha-active .spha-reference-list li:last-child { border-bottom: 0; }
.spha-active .spha-check-list li::before { color: var(--spha-success); content: '✓'; font-weight: 900; position: absolute; right: 2px; }
.spha-active .spha-reference-list li::before { color: var(--spha-teal); content: '●'; font-size: 8px; position: absolute; right: 5px; top: 14px; }

/* Dialogs */
.spha-active .spha-modal[hidden] { display: none !important; }
.spha-active .spha-modal { align-items: center; display: flex; inset: 0; justify-content: center; padding: 18px; position: fixed; z-index: 999999; }
.spha-active .spha-modal__backdrop { background: rgba(13, 22, 38, .6); inset: 0; position: absolute; }
.spha-active .spha-modal__dialog { background: #fff; border-radius: 18px; box-shadow: var(--spha-shadow-lg); max-height: calc(100vh - 36px); max-width: 620px; overflow-y: auto; padding: clamp(22px, 4vw, 34px); position: relative; width: 100%; }
.spha-active .spha-modal__dialog--small { max-width: 470px; }
.spha-active .spha-modal__close { background: #f3f5f8; border: 0; border-radius: 50%; color: var(--spha-muted); cursor: pointer; font-size: 23px; height: 36px; left: 14px; line-height: 1; position: absolute; top: 14px; width: 36px; }
.spha-active .spha-modal__icon { align-items: center; background: var(--spha-teal-soft); border-radius: 50%; color: var(--spha-teal); display: flex; font-size: 25px; font-weight: 900; height: 54px; justify-content: center; margin: 0 auto 10px; width: 54px; }
.spha-active .spha-modal__dialog h2 { color: var(--spha-text); font-size: 25px; margin: 0 0 5px; text-align: center; }
.spha-active .spha-modal__dialog--small h2 { font-size: 21px; text-align: right; }
.spha-active .spha-modal__lead { color: var(--spha-muted); font-size: 13px; margin: 0 0 14px; text-align: center; }
.spha-active .spha-consent-text { background: #f8fafc; border: 1px solid var(--spha-line); border-radius: 12px; color: #465268; font-size: 13px; line-height: 2; max-height: 270px; overflow: auto; padding: 14px 16px; }
.spha-active .spha-consent-text p { margin: 0 0 10px; }
.spha-active .spha-check { align-items: flex-start; color: #3c475b; cursor: pointer; display: flex; font-size: 12px; gap: 9px; margin: 15px 0; }
.spha-active .spha-check input { accent-color: var(--spha-teal); flex: 0 0 auto; height: 17px; margin-top: 5px; width: 17px; }
.spha-active .spha-modal__actions { display: flex; gap: 9px; justify-content: flex-end; margin-top: 18px; }
.spha-active .spha-modal__error { background: #fff2f4; border-radius: 9px; color: var(--spha-danger); font-size: 12px; padding: 9px; }
.spha-modal-open { overflow: hidden !important; }

/* Assignment fields need their own spacing, independent of WooCommerce forms. */
.spha-active [data-spha-assignment-modal] {
    box-sizing: border-box; top: 0; right: 0; bottom: auto; left: auto;
    width: 100vw; width: 100dvw; height: 100vh; height: 100dvh; padding: 16px;
    width: var(--spha-viewport-width, 100vw); height: var(--spha-viewport-height, 100vh);
    transform: translate(var(--spha-viewport-left, 0px), var(--spha-viewport-top, 0px));
    font-family: Dana, IRANSans, Tahoma, sans-serif; line-height: 1.9;
}
.spha-active [data-spha-assignment-modal] .spha-modal__dialog {
    display: flex; flex-direction: column; gap: 20px; width: 100%; max-width: 540px;
    max-height: calc(100vh - 32px); max-height: calc(var(--spha-viewport-height, 100dvh) - 32px);
    margin: 0; padding: 28px; border: 1px solid #dce9e9; border-radius: 24px;
    overflow-y: auto; overscroll-behavior: contain;
}
.spha-active [data-spha-assignment-modal] .spha-assignment-header { min-width: 0; margin: 0; padding-inline-end: 46px; }
.spha-active [data-spha-assignment-modal] .spha-assignment-header h2 { margin: 0; padding: 0; font: inherit; font-size: 23px; font-weight: 800; line-height: 1.65; text-align: right; }
.spha-active [data-spha-assignment-modal] button.spha-modal__close {
    appearance: none; display: grid; place-items: center; top: 22px; left: 22px;
    width: 38px; height: 38px; min-height: 38px; margin: 0; padding: 0;
    border: 1px solid #d5e5e5; border-radius: 50%; background: #f5fafa;
    color: var(--spha-teal-dark); box-shadow: none; line-height: 1;
}
.spha-active [data-spha-assignment-modal] button.spha-modal__close:hover { background: #e8f6f5; border-color: var(--spha-teal); }
.spha-active [data-spha-assignment-modal] button.spha-modal__close:focus-visible { outline: 3px solid #1f8a8a66; outline-offset: 3px; }
.spha-active [data-spha-assignment-modal] .spha-modal__close svg { display: block; }
.spha-active [data-spha-assignment-modal] .spha-assignment-intro { display: grid; gap: 12px; min-width: 0; }
.spha-active [data-spha-assignment-modal] .spha-assignment-intro p { margin: 0; padding: 0; color: var(--spha-muted); font-size: 13px; line-height: 1.95; overflow-wrap: anywhere; }
.spha-active [data-spha-assignment-modal] p.spha-assignment-notice { padding: 12px 14px; border: 1px solid #d8e9e7; border-radius: 12px; background: #f2f9f8; color: #3c6262; font-size: 12px; }
.spha-active [data-spha-assignment-modal] .spha-assignment-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.spha-active [data-spha-assignment-modal] label.spha-field { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; margin: 0; padding: 0; }
.spha-active [data-spha-assignment-modal] .spha-field > span { display: block; margin: 0; padding: 0; color: #405767; font-size: 13px; font-weight: 700; line-height: 1.8; }
.spha-active [data-spha-assignment-modal] .spha-field small { color: var(--spha-muted); font-size: 11px; font-weight: 400; }
.spha-active [data-spha-assignment-modal] .spha-field input {
    appearance: none; display: block; width: 100%; min-width: 0; max-width: 100%; height: 48px;
    margin: 0; padding: 11px 14px; border: 1px solid #d6e1e5; border-radius: 12px;
    background: #fff; color: var(--spha-text); box-shadow: none; font: inherit; font-size: 13px; line-height: 1.8;
}
.spha-active [data-spha-assignment-modal] .spha-field input:focus { border-color: var(--spha-teal); outline: 0; box-shadow: 0 0 0 3px #1f8a8a1a; }
.spha-active [data-spha-assignment-modal] .spha-field input::placeholder { color: #89969f; opacity: 1; font-size: 12px; }
.spha-active [data-spha-assignment-phone] { direction: ltr; text-align: left; }
.spha-active [data-spha-assignment-modal] label.spha-check { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 12px 14px; border: 1px solid #e1e8ed; border-radius: 12px; background: #f8fafc; }
.spha-active [data-spha-assignment-modal] .spha-check input { appearance: auto; flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 3px 0 0; padding: 0; }
.spha-active [data-spha-assignment-modal] .spha-check span { flex: 1; min-width: 0; margin: 0; font-size: 12px; line-height: 1.9; }
.spha-active [data-spha-assignment-modal] .spha-modal__error { margin: 0; overflow-wrap: anywhere; }
.spha-active [data-spha-assignment-modal] .spha-modal__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding-top: 18px; border-top: 1px solid #e7edef; }
.spha-active [data-spha-assignment-modal] .spha-modal__actions button.spha-btn { width: 100%; min-height: 48px; margin: 0; padding: 11px 12px; border-radius: 12px; font-size: 13px; line-height: 1.65; }
@media (max-width: 520px) {
    .spha-active [data-spha-assignment-modal] { padding: 10px; }
    .spha-active [data-spha-assignment-modal] .spha-modal__dialog { gap: 18px; max-height: calc(100vh - 20px); max-height: calc(var(--spha-viewport-height, 100dvh) - 20px); padding: 24px 18px 20px; border-radius: 20px; }
    .spha-active [data-spha-assignment-modal] .spha-assignment-header h2 { font-size: 20px; }
    .spha-active [data-spha-assignment-modal] button.spha-modal__close { top: 20px; left: 16px; }
}

/* Account */
.spha-active .spha-account { color: var(--spha-text); min-width: 0; }
.spha-active .spha-account__header {
    align-items: center;
    background:
        radial-gradient(circle at 10% 0%, rgba(255, 111, 78, .12), transparent 32%),
        linear-gradient(135deg, #fff, #f8fbff);
    border: 1px solid rgba(31, 138, 138, .16);
    border-radius: 22px;
    box-shadow: 0 16px 42px rgba(23, 32, 51, .07);
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    justify-content: space-between;
    margin-bottom: 18px;
    overflow: hidden;
    padding: 22px;
    position: relative;
}
.spha-active .spha-account__header::after {
    background: radial-gradient(circle, rgba(31, 138, 138, .16) 0 3px, transparent 4px);
    background-size: 22px 22px;
    content: "";
    inset: 0 auto 0 0;
    opacity: .45;
    position: absolute;
    width: 180px;
}
.spha-active .spha-account__header > * { position: relative; z-index: 1; }
.spha-active .spha-account__header h1 { color: var(--spha-text); font-size: clamp(24px, 3vw, 34px); line-height: 1.35; margin: 0; }
.spha-active .spha-account__header p { color: var(--spha-muted) !important; font-size: 13px; line-height: 1.9; margin: 5px 0 0; }
.spha-active .spha-account__header-side { align-items: flex-end; display: flex; flex-direction: column; gap: 12px; min-width: 260px; }
.spha-active .spha-account-kpis { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
.spha-active .spha-account-kpis span {
    background: rgba(255, 255, 255, .82);
    border: 1px solid rgba(31, 138, 138, .13);
    border-radius: 14px;
    min-width: 72px;
    padding: 9px 10px;
    text-align: center;
}
.spha-active .spha-account-kpis strong { color: var(--spha-teal-dark); display: block; font-size: 18px; line-height: 1.2; }
.spha-active .spha-account-kpis small { color: var(--spha-muted); display: block; font-size: 10px; font-weight: 800; margin-top: 3px; white-space: nowrap; }
.spha-active .spha-account__status {
    align-items: center;
    background: #fff;
    border: 1px solid var(--spha-line);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(23, 32, 51, .04);
    color: var(--spha-muted);
    display: flex;
    gap: 10px;
    margin-bottom: 16px;
    padding: 16px 18px;
}
.spha-active .spha-account__error .spha-btn { margin-right: 12px; }
.spha-active .spha-account-section {
    background: #fff;
    border: 1px solid var(--spha-line);
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(23, 32, 51, .055);
    margin-bottom: 18px;
    padding: 20px;
}
.spha-active .spha-section-heading { align-items: center; display: flex; gap: 10px; justify-content: space-between; margin-bottom: 16px; }
.spha-active .spha-section-kicker { color: var(--spha-teal-dark); display: block; font-size: 11px; font-weight: 900; margin-bottom: 2px; }
.spha-active .spha-section-heading h2 { color: var(--spha-text); font-size: 18px; line-height: 1.5; margin: 0; }
.spha-active .spha-section-heading p { color: var(--spha-muted); font-size: 12px; margin: 2px 0 0; }
.spha-active .spha-section-heading > span { background: var(--spha-teal-soft); border-radius: 999px; color: var(--spha-teal-dark); font-size: 11px; font-weight: 900; padding: 4px 9px; }
.spha-active .spha-account-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.spha-active .spha-account-card {
    background: linear-gradient(180deg, #fff, #fbfcff);
    border: 1px solid var(--spha-line);
    border-radius: 16px;
    min-width: 0;
    padding: 16px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.spha-active .spha-account-card:hover { border-color: rgba(31, 138, 138, .28); box-shadow: 0 12px 28px rgba(23, 32, 51, .07); transform: translateY(-1px); }
.spha-active .spha-account-card--active { border-color: rgba(255, 111, 78, .28); }
.spha-active .spha-account-card--credit { border-color: rgba(31, 138, 138, .22); }
.spha-active .spha-account-card__top { align-items: flex-start; display: flex; gap: 10px; justify-content: space-between; }
.spha-active .spha-card-kicker { color: var(--spha-muted); display: block; font-size: 10px; font-weight: 900; margin-bottom: 4px; }
.spha-active .spha-account-card h3 { color: var(--spha-text); font-size: 15px; line-height: 1.7; margin: 0; }
.spha-active .spha-account-card p { color: var(--spha-muted) !important; font-size: 12px; line-height: 1.8; margin: 3px 0 12px; }
.spha-active .spha-account-card__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.spha-active .spha-account-card__actions .spha-btn { min-height: 38px; padding: 8px 12px; }
.spha-active .spha-status { border-radius: 999px; display: inline-flex; font-size: 10px; font-weight: 900; padding: 3px 8px; white-space: nowrap; }
.spha-active .spha-status--active,
.spha-active .spha-status--available { background: var(--spha-teal-soft); color: var(--spha-teal-dark); }
.spha-active .spha-status--scored,
.spha-active .spha-status--consumed { background: #e8f8ef; color: var(--spha-success); }
.spha-active .spha-status--other { background: #f0f2f5; color: var(--spha-muted); }
.spha-active .spha-account-table-wrap { border: 1px solid var(--spha-line) !important; border-radius: 15px !important; overflow-x: auto !important; }
.spha-active .spha-account-table { border: 0 !important; border-collapse: separate !important; border-spacing: 0 !important; margin: 0 !important; min-width: 620px; table-layout: fixed !important; width: 100% !important; }
.spha-active .spha-account-table th,
.spha-active .spha-account-table td { background: #fff !important; border: 0 !important; border-bottom: 1px solid var(--spha-line) !important; color: var(--spha-muted) !important; font-family: Dana, IRANSans, Tahoma, sans-serif !important; font-size: 12px !important; line-height: 1.8 !important; padding: 14px 14px !important; text-align: right !important; vertical-align: middle !important; }
.spha-active .spha-account-table th { background: #f8fafc !important; border: 0 !important; border-bottom: 1px solid var(--spha-line) !important; color: var(--spha-text) !important; font-family: Dana, IRANSans, Tahoma, sans-serif !important; font-size: 12px !important; font-weight: 900 !important; line-height: 1.8 !important; padding: 12px 14px !important; text-align: right !important; vertical-align: middle !important; }
.spha-active .spha-account-table tr:last-child td { border-bottom: 0 !important; }
.spha-active .spha-account-table tbody tr:hover td { background: #fbfcff !important; }
.spha-active .spha-account-table--results th:last-child,
.spha-active .spha-account-table--results td:last-child { text-align: left !important; width: 150px !important; }
.spha-active .spha-account-table--purchases th:nth-child(3),
.spha-active .spha-account-table--purchases td:nth-child(3) { text-align: center !important; width: 90px !important; }
.spha-active .spha-account-table__actions { text-align: left !important; }
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn,
body.spha-active .woocommerce-MyAccount-content .spha-account button.spha-btn,
body.spha-active .woocommerce-MyAccount-content .spha-account .spha-btn,
body.spha-active .spha-account a.spha-btn,
body.spha-active .spha-account button.spha-btn,
body.spha-active .spha-account .spha-btn {
    border-radius: 12px !important;
    box-shadow: none !important;
    display: inline-flex !important;
    font-family: Dana, IRANSans, Tahoma, sans-serif !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    white-space: nowrap !important;
}
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn--primary,
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn--primary:visited,
body.spha-active .woocommerce-MyAccount-content .spha-account button.spha-btn--primary,
body.spha-active .woocommerce-MyAccount-content .spha-account .spha-report-link,
body.spha-active .woocommerce-MyAccount-content .spha-account .spha-report-link:visited,
body.spha-active .spha-account a.spha-btn--primary,
body.spha-active .spha-account a.spha-btn--primary:visited,
body.spha-active .spha-account button.spha-btn--primary,
body.spha-active .spha-account .spha-report-link,
body.spha-active .spha-account .spha-report-link:visited {
    background: linear-gradient(135deg, var(--spha-teal), var(--spha-teal-dark)) !important;
    border-color: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn--primary:hover,
body.spha-active .woocommerce-MyAccount-content .spha-account button.spha-btn--primary:hover,
body.spha-active .woocommerce-MyAccount-content .spha-account .spha-report-link:hover,
body.spha-active .spha-account a.spha-btn--primary:hover,
body.spha-active .spha-account button.spha-btn--primary:hover,
body.spha-active .spha-account .spha-report-link:hover {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn--outline:not(.spha-report-link),
body.spha-active .woocommerce-MyAccount-content .spha-account a.spha-btn--outline:not(.spha-report-link):visited,
body.spha-active .woocommerce-MyAccount-content .spha-account button.spha-btn--outline,
body.spha-active .spha-account a.spha-btn--outline:not(.spha-report-link),
body.spha-active .spha-account a.spha-btn--outline:not(.spha-report-link):visited,
body.spha-active .spha-account button.spha-btn--outline {
    background: #fff !important;
    border-color: rgba(31, 138, 138, .38) !important;
    color: var(--spha-teal-dark) !important;
    -webkit-text-fill-color: var(--spha-teal-dark) !important;
}
body.spha-active .woocommerce-MyAccount-content .spha-account .spha-btn--ghost,
body.spha-active .spha-account .spha-btn--ghost {
    background: #f7f9fc !important;
    border-color: var(--spha-line) !important;
    color: var(--spha-text) !important;
    -webkit-text-fill-color: var(--spha-text) !important;
}
.spha-active .spha-table-empty { color: var(--spha-muted); padding: 28px !important; text-align: center !important; }
.spha-active .spha-account .spha-empty {
    align-items: center;
    background: linear-gradient(135deg, #fbfcff, #fff);
    border: 1px dashed #cfd8e6;
    border-radius: 16px;
    color: var(--spha-muted);
    display: flex;
    flex-direction: column;
    gap: 7px;
    grid-column: 1 / -1;
    justify-content: center;
    min-height: 132px;
    padding: 22px;
    text-align: center;
}
.spha-active .spha-account .spha-empty__mark {
    background: var(--spha-teal-soft);
    border-radius: 999px;
    display: inline-flex;
    height: 26px;
    position: relative;
    width: 26px;
}
.spha-active .spha-account .spha-empty__mark::after {
    background: var(--spha-teal);
    border-radius: 999px;
    content: "";
    height: 6px;
    inset: 10px;
    position: absolute;
    width: 6px;
}
.spha-active .spha-account .spha-empty h3 { color: var(--spha-text); font-size: 14px; margin: 0; }
.spha-active .spha-account .spha-empty p { font-size: 12px; line-height: 1.8; margin: 0; max-width: 520px; }

/* Full-screen runner */
body.spha-runner-page { background: #eef1f7 !important; margin: 0 !important; }
body.spha-runner-page > header,
body.spha-runner-page > footer { display: none !important; }
.spha-active .spha-runner { background: radial-gradient(circle at 10% 10%, rgba(255, 111, 78, .06), transparent 30%), var(--spha-bg); display: flex; flex-direction: column; min-height: 100vh; }
.spha-active .spha-runner__header { align-items: center; background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--spha-line); display: flex; gap: 15px; justify-content: space-between; min-height: 66px; padding: 10px clamp(16px, 4vw, 52px); position: sticky; top: 0; z-index: 10; }
.spha-active .spha-runner__brand { align-items: center; display: flex; font-size: 13px; font-weight: 900; gap: 9px; }
.spha-active .spha-runner__mark { align-items: center; background: linear-gradient(135deg, var(--spha-teal), var(--spha-coral)); border-radius: 10px; color: #fff; display: flex; font-size: 10px; height: 36px; justify-content: center; letter-spacing: .5px; width: 38px; }
.spha-active .spha-runner__header-actions { align-items: center; display: flex; gap: 12px; }
.spha-active .spha-save-state { color: var(--spha-muted); font-size: 11px; }
.spha-active .spha-save-state.is-saving { color: var(--spha-warning); }
.spha-active .spha-save-state.is-saved { color: var(--spha-success); }
.spha-active .spha-save-state.is-error { color: var(--spha-danger); }
.spha-active .spha-runner__timer { direction: ltr; font-size: 13px; font-variant-numeric: tabular-nums; font-weight: 800; }
.spha-active .spha-runner__loading,
.spha-active .spha-result__loading { align-items: center; color: var(--spha-muted); display: flex; flex: 1; flex-direction: column; gap: 8px; justify-content: center; min-height: 400px; padding: 30px; text-align: center; }
.spha-active .spha-runner__loading strong,
.spha-active .spha-result__loading strong { color: var(--spha-text); margin-top: 8px; }
.spha-active .spha-runner__error,
.spha-active .spha-result__error { background: #fff; border: 1px solid #f2bec7; border-radius: var(--spha-radius); margin: 8vh auto; max-width: 600px; padding: 30px; text-align: center; width: calc(100% - 32px); }
.spha-active .spha-runner__error h1,
.spha-active .spha-result__error h1 { font-size: 22px; margin: 0 0 8px; }
.spha-active .spha-runner__workspace { margin: 0 auto; max-width: 940px; padding: clamp(22px, 5vh, 54px) 18px 60px; width: 100%; }
.spha-active .spha-runner__progress-wrap { margin: 0 auto 14px; max-width: 760px; }
.spha-active .spha-runner__progress-meta { color: var(--spha-muted); display: flex; font-size: 11px; justify-content: space-between; margin-bottom: 6px; }
.spha-active .spha-progress { background: #dfe5ea; border-radius: 99px; height: 5px; overflow: hidden; }
.spha-active .spha-progress > span { background: linear-gradient(90deg, var(--spha-teal), var(--spha-coral)); display: block; height: 100%; transition: width .25s ease; width: 0; }
.spha-active .spha-question-card { background: #fff; border: 1px solid rgba(31, 138, 138, .7); border-radius: 5px 5px 16px 16px; box-shadow: var(--spha-shadow); min-height: 420px; padding: clamp(20px, 4vw, 40px); }
.spha-active .spha-question-card__top { align-items: center; display: flex; gap: 9px; min-height: 34px; }
.spha-active .spha-question-number { align-items: center; background: linear-gradient(135deg, var(--spha-coral), #ff9d83); border-radius: 10px; box-shadow: 0 5px 12px rgba(255, 111, 78, .25); color: #fff; display: flex; font-size: 17px; font-weight: 900; height: 34px; justify-content: center; margin-left: auto; width: 34px; }
.spha-active .spha-question-scope { background: var(--spha-teal-soft); border-radius: 999px; color: var(--spha-teal-dark); font-size: 10px; font-weight: 800; padding: 4px 9px; }
.spha-active .spha-help-toggle { background: var(--spha-coral-soft); border: 0; border-radius: 7px; color: var(--spha-coral-dark); cursor: pointer; font: inherit; font-size: 11px; padding: 6px 9px; }
.spha-active .spha-help-panel { background: #fff9f6; border-right: 3px solid var(--spha-coral); color: var(--spha-muted); font-size: 11px; margin: 9px 0; padding: 8px 11px; }
.spha-active .spha-question-text { color: #243052; font-size: clamp(15px, 2.3vw, 20px); font-weight: 700; line-height: 1.9; margin: clamp(28px, 5vh, 48px) auto 30px; max-width: 700px; text-align: center; }
.spha-active .spha-options { --spha-option-count: 5; border: 0; display: grid; grid-template-columns: repeat(var(--spha-option-count), minmax(0, 1fr)); justify-content: center; margin: 0 auto; max-width: 720px; padding: 0; position: relative; width: 100%; }
.spha-active .spha-options::before { background: #3489e5; content: ''; height: 2px; inset-inline: calc((100% / var(--spha-option-count)) / 2); position: absolute; top: 7px; z-index: 0; }
.spha-active .spha-option { cursor: pointer; min-width: 0; position: relative; text-align: center; z-index: 1; }
.spha-active .spha-option input { opacity: 0; position: absolute; }
.spha-active .spha-option__visual { align-items: center; display: flex; flex-direction: column; min-height: 98px; padding: 0 5px; position: relative; }
.spha-active .spha-option__visual::before { background: #fff; border: 1.5px solid #3489e5; border-radius: 50%; box-shadow: 0 0 0 3px #fff; content: ''; height: 14px; margin-bottom: 14px; position: relative; transition: background .16s, box-shadow .16s, transform .16s; width: 14px; z-index: 2; }
.spha-active .spha-option__visual::after { display: none; }
.spha-active .spha-option input:checked + .spha-option__visual::before { background: var(--spha-coral); border-color: var(--spha-coral); box-shadow: 0 0 0 4px rgba(255, 111, 78, .2); transform: scale(1.18); }
.spha-active .spha-option__label { color: var(--spha-text); font-size: 10px; line-height: 1.5; max-width: 125px; }
.spha-active .spha-question-error { color: var(--spha-danger); font-size: 11px; margin-top: 9px; text-align: center; }
.spha-active .spha-runner__nav { align-items: center; display: grid; gap: 14px; grid-template-columns: 42px minmax(0, 1fr) 42px; margin-top: 42px; }
.spha-active .spha-runner__arrow { background: transparent; border: 0; color: var(--spha-coral); cursor: pointer; font-size: 32px; height: 42px; opacity: .8; }
.spha-active .spha-runner__arrow[disabled] { cursor: default; opacity: .18; }
.spha-active .spha-runner__dots { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.spha-active .spha-dot { background: transparent; border: 0; border-radius: 50%; cursor: pointer; height: 24px; padding: 0; position: relative; width: 24px; }
.spha-active .spha-dot::before { background: #aab2bb; border-radius: 50%; content: ''; height: 7px; inset: 50% auto auto 50%; position: absolute; transform: translate(-50%, -50%); width: 7px; }
.spha-active .spha-dot.is-answered::before { background: var(--spha-teal); }
.spha-active .spha-dot.is-current::before { background: var(--spha-coral); box-shadow: 0 0 0 3px rgba(255, 111, 78, .16); transform: translate(-50%, -50%) scale(1.25); }
.spha-active .spha-submit { display: flex; margin: 24px auto 0; }

/* Results */
body.spha-result-page { background: var(--spha-bg) !important; margin: 0 !important; }
body.spha-result-page > header,
body.spha-result-page > footer { display: none !important; }
.spha-active .spha-result { background: var(--spha-bg); min-height: 100vh; padding-bottom: 60px; }
.spha-active .spha-result__topbar { align-items: center; background: #fff; border-bottom: 1px solid var(--spha-line); color: var(--spha-muted); display: flex; font-size: 12px; justify-content: space-between; padding: 14px max(18px, calc((100% - 1060px) / 2)); }
.spha-active .spha-result__back { color: var(--spha-teal-dark); font-weight: 800; text-decoration: none; }
.spha-active .spha-result__content { margin: 0 auto; max-width: 1060px; padding: 28px 18px; }
.spha-active .spha-result-hero { align-items: center; background: linear-gradient(135deg, rgba(31, 138, 138, .12), rgba(255, 111, 78, .08)); border: 1px solid rgba(31, 138, 138, .2); border-radius: var(--spha-radius); display: flex; gap: 18px; justify-content: space-between; margin-bottom: 16px; padding: 22px; }
.spha-active .spha-result-hero h1 { color: var(--spha-text); font-size: 26px; line-height: 1.5; margin: 0; }
.spha-active .spha-result-hero p { color: var(--spha-muted); font-size: 11px; margin: 3px 0 0; }
.spha-active .spha-score-card,
.spha-active .spha-result-card { background: #fff; border: 1px solid var(--spha-line); border-radius: var(--spha-radius); box-shadow: 0 7px 25px rgba(23, 32, 51, .045); height: auto !important; margin-bottom: 16px; min-height: 0 !important; padding: clamp(18px, 4vw, 30px); }
.spha-active .spha-score-card { align-items: center; display: flex; gap: clamp(20px, 5vw, 55px); }
.spha-active .spha-score-gauge { --spha-score-angle: 0deg; align-items: center; background: conic-gradient(var(--spha-teal) var(--spha-score-angle), #e8edf2 0); border-radius: 50%; display: flex; flex: 0 0 auto; height: 170px; justify-content: center; position: relative; width: 170px; }
.spha-active .spha-score-gauge::after { background: #fff; border-radius: 50%; content: ''; inset: 13px; position: absolute; }
.spha-active .spha-score-gauge.is-unavailable { background: #e8edf2; }
.spha-active .spha-score-gauge > span { align-items: center; display: flex; flex-direction: column; position: relative; z-index: 1; }
.spha-active .spha-score-gauge strong { color: var(--spha-teal-dark); font-size: 43px; line-height: 1.15; }
.spha-active .spha-score-gauge small { color: var(--spha-muted); font-size: 12px; }
.spha-active .spha-score-card__copy h2 { font-size: 20px; margin: 0 0 6px; }
.spha-active .spha-score-card__copy p { color: var(--spha-muted); font-size: 13px; margin: 0; }
.spha-active .spha-percentile { background: var(--spha-teal-soft); border-radius: 10px; color: var(--spha-teal-dark); display: inline-flex; font-size: 12px; font-weight: 800; margin-top: 13px; padding: 7px 10px; }
.spha-active .spha-scope-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.spha-active .spha-scope-card { background: #f8fafc; border: 1px solid var(--spha-line); border-radius: 13px; padding: 13px; }
.spha-active .spha-scope-card__top { display: flex; font-size: 12px; font-weight: 800; justify-content: space-between; }
.spha-active .spha-scope-card__bar { background: #e3e8ed; border-radius: 99px; height: 6px; margin: 10px 0 4px; overflow: hidden; }
.spha-active .spha-scope-card__bar span { background: linear-gradient(90deg, var(--spha-teal), var(--spha-coral)); display: block; height: 100%; }
.spha-active .spha-scope-card small { color: var(--spha-muted); font-size: 10px; }
.spha-active .spha-scope-interpretation,
.spha-active .spha-interpretation-detail { border-right: 3px solid var(--spha-line); color: var(--spha-text); line-height: 1.9; margin-top: 12px; padding: 2px 12px 2px 0; }
.spha-active .spha-scope-interpretation { border-top: 1px solid var(--spha-line); font-size: 10px; padding-top: 9px; }
.spha-active .spha-interpretation-detail h3 { color: var(--spha-text); font-size: 18px; margin: 0 0 8px; }
.spha-active .spha-scope-interpretation strong { color: var(--spha-text); display: block; margin-bottom: 4px; }
.spha-active .spha-interpretation-detail p,
.spha-active .spha-scope-interpretation p { margin: 0 0 8px; }
.spha-active .spha-interpretation-short { font-weight: 800; }
.spha-active .spha-interpretation-recommendation { background: var(--spha-teal-soft); border-radius: 10px; color: var(--spha-teal-dark); padding: 8px 10px; }
.spha-active .spha-interpretation--success { border-right-color: var(--spha-success); }
.spha-active .spha-interpretation--warning { border-right-color: var(--spha-warning); }
.spha-active .spha-interpretation--danger,
.spha-active .spha-interpretation--error { border-right-color: var(--spha-danger); }
.spha-active .spha-interpretation--info { border-right-color: var(--spha-teal); }
.spha-active .spha-reference { color: var(--spha-muted) !important; display: block; font-size: 11px; line-height: 1.9; margin: 8px 0 0; }
.spha-active .is-unavailable { color: var(--spha-muted); }
.spha-active .spha-cohort-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 18px; }
.spha-active .spha-cohort-tab { background: #fff; border: 1px solid var(--spha-teal); border-radius: 7px; color: var(--spha-teal-dark); cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; min-height: 36px; padding: 7px 12px; }
.spha-active .spha-cohort-tab[aria-selected="true"] { background: var(--spha-teal); color: #fff; }
.spha-active .spha-cohort-tab[aria-disabled="true"] { border-color: var(--spha-line); color: var(--spha-muted); cursor: not-allowed; opacity: .65; }
.spha-active .spha-cohort-message { background: #fff9e8; border: 1px solid #eddaa3; border-radius: 10px; color: var(--spha-warning); font-size: 12px; padding: 11px; }
.spha-active .spha-chart-wrap { height: auto !important; min-height: 0 !important; overflow-x: auto; overflow-y: hidden; padding: 4px 0 10px; }
.spha-active .spha-chart-wrap.is-plotly { height: 530px !important; max-height: 530px !important; min-height: 530px !important; padding-bottom: 0 !important; }
.spha-active .spha-chart { display: block; height: auto; min-width: 650px; width: 100%; }
.spha-active .spha-plotly-chart { direction: ltr; height: 520px !important; max-height: 520px !important; min-height: 520px !important; min-width: 650px; width: 100%; }
.spha-active .spha-plotly-chart .modebar { left: auto; right: 8px; }
.spha-active .spha-plotly-chart .plot-container,
.spha-active .spha-plotly-chart .svg-container,
.spha-active .spha-plotly-chart .main-svg { height: 520px !important; max-height: 520px !important; min-height: 520px !important; overflow: hidden !important; }
.spha-active .spha-chart .spha-chart-axis { stroke: #cfd7df; stroke-width: 1; }
.spha-active .spha-chart .spha-density { fill: rgba(31, 138, 138, .14); stroke: #6aa9a8; stroke-width: 2; }
.spha-active .spha-chart .spha-box { fill: rgba(255, 255, 255, .9); stroke: #7187b3; stroke-width: 1.5; }
.spha-active .spha-chart .spha-scatter { fill: rgba(31, 138, 138, .28); }
.spha-active .spha-chart .spha-user-dot { fill: #ef4056; stroke: #fff; stroke-width: 3; }
.spha-active .spha-chart .spha-user-line { stroke: #ef4056; stroke-dasharray: 4 4; stroke-width: 1.5; }
.spha-active .spha-chart text { fill: #5d6879; font-family: Dana, Tahoma, sans-serif; font-size: 11px; }
.spha-active .spha-chart .spha-chart-mean { stroke: #7187b3; stroke-dasharray: 4 3; stroke-width: 1.5; }
.spha-active .spha-chart .spha-chart-y-label { fill: #334155; font-size: 11px; }
.spha-active .spha-chart .spha-chart-score-label { fill: #334155; font-weight: 700; }
.spha-active .spha-chart .spha-chart-percentile-label { fill: #64748b; font-size: 10px; }
.spha-active .spha-chart .spha-chart-score-title { fill: var(--spha-teal); font-size: 11px; }
.spha-active .spha-chart .spha-chart-percentile-title { fill: #475569; font-size: 11px; }
.spha-active .spha-report-table-wrap { margin: 0 auto 0; max-width: 820px; overflow-x: auto; }
.spha-active .spha-report-table { border-collapse: collapse; margin: 0; min-width: 560px; width: 100%; }
.spha-active .spha-report-table caption { background: #e9edf2; color: var(--spha-text); font-weight: 900; padding: 7px; }
.spha-active .spha-report-table th,
.spha-active .spha-report-table td { background: #f2f4f7; border: 1px solid #d8dee6; font-size: 11px; padding: 8px 10px; text-align: right; }
.spha-active .spha-report-table th { color: var(--spha-text); width: 50%; }
.spha-active .spha-reference { border-top: 1px dashed var(--spha-line); color: var(--spha-muted); font-size: 11px; margin: 16px 0 0; padding-top: 10px; }
.spha-active .spha-result__download-error { background: #fff2f4; border-radius: 10px; color: var(--spha-danger); margin: 10px 0; padding: 10px; }

.spha-active .spha-order-assessments { background: #fff !important; border: 1px solid var(--spha-line) !important; border-radius: 22px !important; box-shadow: var(--spha-shadow) !important; margin: 24px 0 !important; padding: 20px !important; }
.spha-active .spha-order-assessments__head { align-items: center !important; border-bottom: 1px solid #eef2f6 !important; display: flex !important; gap: 10px !important; justify-content: space-between !important; margin-bottom: 16px !important; padding-bottom: 14px !important; }
.spha-active .spha-order-assessments__head span { color: var(--spha-teal) !important; font-size: 12px !important; font-weight: 900 !important; }
.spha-active .spha-order-assessments__head strong { color: var(--spha-text) !important; font-size: 15px !important; font-weight: 900 !important; }
.spha-active .spha-order-assessments__grid { display: grid !important; gap: 12px !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important; }
.spha-active .spha-order-assessments__card { background: linear-gradient(135deg, #f8fcfc, #fff) !important; border: 1px solid #d8edf0 !important; border-radius: 18px !important; display: grid !important; gap: 14px !important; padding: 16px !important; }
.spha-active .spha-order-assessments__card.is-ready { border-color: rgba(31, 138, 138, .32) !important; }
.spha-active .spha-order-assessments__card.is-error { background: #fff8f8 !important; border-color: rgba(239, 68, 68, .22) !important; }
.spha-active .spha-order-assessments__card h3 { color: var(--spha-text) !important; font-size: 15px !important; font-weight: 900 !important; line-height: 1.8 !important; margin: 0 0 5px !important; }
.spha-active .spha-order-assessments__card p { color: var(--spha-muted) !important; font-size: 12px !important; line-height: 1.9 !important; margin: 0 !important; }
.spha-active .spha-order-assessments__meta { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
.spha-active .spha-order-assessments__meta span { background: var(--spha-teal-soft) !important; border-radius: 999px !important; color: var(--spha-teal) !important; font-size: 11px !important; font-weight: 900 !important; padding: 5px 10px !important; }
.spha-active .spha-order-assessments__button { align-items: center !important; background: var(--spha-teal) !important; border: 0 !important; border-radius: 12px !important; box-shadow: none !important; color: #fff !important; display: inline-flex !important; font-size: 13px !important; font-weight: 900 !important; justify-content: center !important; line-height: 1.5 !important; min-height: 42px !important; padding: 10px 16px !important; text-decoration: none !important; width: fit-content !important; }
.spha-active .spha-order-assessments__button:hover { background: #157b7b !important; color: #fff !important; }
.spha-active .spha-order-assessments__button.is-disabled { background: #eef2f6 !important; color: #7b8797 !important; cursor: not-allowed !important; }
.spha-active .spha-order-assessments__link { color: var(--spha-teal) !important; display: inline-flex !important; font-size: 12px !important; font-weight: 900 !important; margin-inline-start: 10px !important; text-decoration: none !important; }
.spha-active .spha-order-assessments__link:hover { color: #157b7b !important; text-decoration: underline !important; }
.spha-order-received-page .woocommerce-order { direction: rtl !important; margin: 0 auto !important; max-width: 1180px !important; padding: 24px 16px 70px !important; }
.spha-order-received-page .woocommerce-notice--success,
.spha-order-received-page .woocommerce-thankyou-order-received { align-items: center !important; background: linear-gradient(135deg, rgba(31, 138, 138, .1), rgba(255, 122, 89, .08)) !important; border: 1px solid rgba(31, 138, 138, .2) !important; border-radius: 18px !important; color: var(--spha-text) !important; display: flex !important; font-size: 15px !important; font-weight: 900 !important; justify-content: space-between !important; line-height: 1.9 !important; margin: 0 0 18px !important; padding: 16px 18px !important; text-align: right !important; }
.spha-order-received-page .woocommerce-order-overview { background: #fff !important; border: 1px solid var(--spha-line) !important; border-radius: 22px !important; box-shadow: 0 20px 55px rgba(18, 38, 63, .08) !important; display: grid !important; gap: 12px !important; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)) !important; list-style: none !important; margin: 0 0 22px !important; padding: 16px !important; }
.spha-order-received-page .woocommerce-order-overview::before,
.spha-order-received-page .woocommerce-order-overview::after { display: none !important; }
.spha-order-received-page .woocommerce-order-overview li { background: #f8fbfc !important; border: 1px solid #edf2f6 !important; border-radius: 16px !important; color: var(--spha-muted) !important; float: none !important; font-size: 11px !important; line-height: 1.8 !important; margin: 0 !important; padding: 13px !important; text-align: right !important; text-transform: none !important; width: auto !important; }
.spha-order-received-page .woocommerce-order-overview li strong { color: var(--spha-text) !important; display: block !important; font-size: 14px !important; font-weight: 900 !important; margin-top: 4px !important; }
.spha-order-received-page .woocommerce-order-details,
.spha-order-received-page .woocommerce-customer-details { background: #fff !important; border: 1px solid var(--spha-line) !important; border-radius: 22px !important; box-shadow: 0 20px 55px rgba(18, 38, 63, .08) !important; margin: 22px 0 !important; overflow: hidden !important; padding: 20px !important; }
.spha-order-received-page .woocommerce-order-details__title,
.spha-order-received-page .woocommerce-column__title { color: var(--spha-text) !important; font-size: 24px !important; font-weight: 900 !important; line-height: 1.8 !important; margin: 0 0 16px !important; text-align: right !important; }
.spha-order-received-page .woocommerce-table { border: 1px solid #edf2f6 !important; border-collapse: separate !important; border-radius: 16px !important; border-spacing: 0 !important; margin: 0 !important; overflow: hidden !important; width: 100% !important; }
.spha-order-received-page .woocommerce-table th,
.spha-order-received-page .woocommerce-table td { background: #fff !important; border-bottom: 1px solid #edf2f6 !important; color: var(--spha-text) !important; font-size: 13px !important; line-height: 1.9 !important; padding: 14px 16px !important; text-align: right !important; vertical-align: middle !important; }
.spha-order-received-page .woocommerce-table thead th { background: #f6f8fb !important; color: var(--spha-teal) !important; font-weight: 900 !important; }
.spha-order-received-page .woocommerce-table tfoot th,
.spha-order-received-page .woocommerce-table tfoot td { background: #fbfcfd !important; font-weight: 900 !important; }
.spha-order-received-page .woocommerce-table tr:last-child th,
.spha-order-received-page .woocommerce-table tr:last-child td { border-bottom: 0 !important; }
.spha-order-received-page .woocommerce-table a { color: var(--spha-teal) !important; font-weight: 900 !important; text-decoration: none !important; }
.spha-order-received-page .woocommerce-table a:hover { text-decoration: underline !important; }
.spha-order-received-page .woocommerce-customer-details address { background: #f8fbfc !important; border: 1px solid #edf2f6 !important; border-radius: 16px !important; color: var(--spha-text) !important; font-style: normal !important; line-height: 2 !important; margin: 0 !important; padding: 16px !important; text-align: right !important; }
.spha-thankyou-hero { background: radial-gradient(circle at 10% 0, rgba(255, 122, 89, .12), transparent 32%), linear-gradient(135deg, #f7fbfc, #fff) !important; border: 1px solid rgba(31, 138, 138, .18) !important; border-radius: 28px !important; box-shadow: 0 24px 70px rgba(18, 38, 63, .1) !important; display: grid !important; gap: 22px !important; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr) !important; margin: 0 0 24px !important; padding: 26px !important; position: relative !important; }
.spha-thankyou-hero__eyebrow { color: var(--spha-teal) !important; display: block !important; font-size: 12px !important; font-weight: 900 !important; margin-bottom: 8px !important; }
.spha-thankyou-hero h1 { color: var(--spha-text) !important; font-size: clamp(25px, 4vw, 38px) !important; font-weight: 950 !important; line-height: 1.7 !important; margin: 0 !important; text-align: right !important; }
.spha-thankyou-hero p { color: var(--spha-muted) !important; font-size: 14px !important; line-height: 2.1 !important; margin: 8px 0 0 !important; max-width: 690px !important; text-align: right !important; }
.spha-thankyou-hero__actions { align-items: center !important; display: flex !important; flex-wrap: wrap !important; gap: 12px !important; margin-top: 22px !important; }
.spha-thankyou-hero__button { background: var(--spha-teal) !important; border-radius: 14px !important; color: #fff !important; display: inline-flex !important; font-size: 14px !important; font-weight: 900 !important; min-height: 46px !important; padding: 12px 20px !important; text-decoration: none !important; }
.spha-thankyou-hero__button:hover { background: #157b7b !important; color: #fff !important; }
.spha-thankyou-hero__link { color: var(--spha-teal) !important; font-size: 13px !important; font-weight: 900 !important; text-decoration: none !important; }
.spha-thankyou-hero__summary { align-self: start !important; background: rgba(255, 255, 255, .75) !important; border: 1px solid #edf2f6 !important; border-radius: 20px !important; display: grid !important; gap: 10px !important; padding: 14px !important; }
.spha-thankyou-hero__summary div { align-items: center !important; background: #fff !important; border-radius: 14px !important; display: flex !important; gap: 10px !important; justify-content: space-between !important; padding: 11px 12px !important; }
.spha-thankyou-hero__summary span { color: var(--spha-muted) !important; font-size: 11px !important; font-weight: 800 !important; }
.spha-thankyou-hero__summary strong { color: var(--spha-text) !important; font-size: 13px !important; font-weight: 900 !important; }
.spha-thankyou-steps { display: grid !important; gap: 10px !important; grid-column: 1 / -1 !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.spha-thankyou-steps li { align-items: flex-start !important; background: #fff !important; border: 1px solid #edf2f6 !important; border-radius: 18px !important; display: grid !important; gap: 5px !important; padding: 14px !important; position: relative !important; text-align: right !important; }
.spha-thankyou-steps li span { align-items: center !important; background: #eef7f7 !important; border-radius: 999px !important; color: var(--spha-teal) !important; display: inline-flex !important; font-size: 12px !important; font-weight: 900 !important; height: 28px !important; justify-content: center !important; width: 28px !important; }
.spha-thankyou-steps li strong { color: var(--spha-text) !important; font-size: 13px !important; font-weight: 900 !important; }
.spha-thankyou-steps li small { color: var(--spha-muted) !important; font-size: 11px !important; line-height: 1.8 !important; }
.spha-thankyou-steps li.is-done { border-color: rgba(31, 138, 138, .25) !important; }
.spha-thankyou-steps li.is-error { border-color: rgba(239, 64, 86, .26) !important; }
.spha-thankyou-steps li.is-error span { background: #fff1f3 !important; color: var(--spha-danger) !important; }
.spha-swal { border: 1px solid rgba(31, 138, 138, .18) !important; border-radius: 24px !important; box-shadow: 0 24px 70px rgba(18, 38, 63, .18) !important; direction: rtl !important; font-family: Dana, Tahoma, sans-serif !important; padding: 22px !important; width: min(92vw, 460px) !important; }
.spha-swal__title { color: var(--spha-text, #172033) !important; font-size: 21px !important; font-weight: 900 !important; line-height: 1.8 !important; padding: 0 !important; }
.spha-swal__body { color: var(--spha-muted, #667085) !important; font-size: 13px !important; line-height: 2 !important; margin: 10px 0 0 !important; padding: 0 !important; text-align: center !important; }
.spha-swal__actions { flex-direction: row-reverse !important; gap: 10px !important; margin-top: 22px !important; }
.spha-swal__confirm,
.spha-swal__cancel { border: 0 !important; border-radius: 12px !important; box-shadow: none !important; cursor: pointer !important; font-family: Dana, Tahoma, sans-serif !important; font-size: 13px !important; font-weight: 900 !important; line-height: 1.6 !important; min-width: 118px !important; padding: 11px 18px !important; }
.spha-swal__confirm { background: var(--spha-teal, #1f8a8a) !important; color: #fff !important; }
.spha-swal__confirm:hover { background: #157b7b !important; }
.spha-swal__cancel { background: #f3f6f9 !important; color: #667085 !important; }
.spha-swal__cancel:hover { background: #e9eef4 !important; color: #344054 !important; }
.spha-swal .swal2-icon { margin: 4px auto 14px !important; }
.spha-swal .swal2-icon.swal2-warning { border-color: var(--spha-coral, #ff7a59) !important; color: var(--spha-coral, #ff7a59) !important; }
.spha-swal .swal2-icon.swal2-error { border-color: var(--spha-danger, #ef4056) !important; color: var(--spha-danger, #ef4056) !important; }
.spha-swal .swal2-icon.swal2-success { border-color: var(--spha-teal, #1f8a8a) !important; color: var(--spha-teal, #1f8a8a) !important; }

@media (max-width: 1024px) {
    .spha-active .spha-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .spha-active .spha-filters__submit { width: 100%; }
    .spha-active .spha-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .spha-active .spha-shell,
    .spha-active .spha-archive { width: min(100% - 20px, 1180px); }
    .spha-active .spha-archive { padding-block: 18px 40px; }
    .spha-active .spha-archive__hero { border-radius: 19px; padding: 26px 20px; }
    .spha-active .spha-archive__hero::after { display: none; }
    .spha-active .spha-filters { grid-template-columns: 1fr; padding: 14px; }
    .spha-active .spha-product-grid { grid-template-columns: 1fr; }
    .spha-active .spha-assessment-hero { grid-template-columns: 1fr; padding: 15px; }
    .spha-active .spha-assessment-hero__media { min-height: 210px; }
    .spha-active .spha-fact-grid { grid-template-columns: 1fr; }
    .spha-active .spha-account__header,
    .spha-active .spha-result-hero { align-items: stretch; flex-direction: column; }
    .spha-active .spha-account__header { display: flex; padding: 18px; }
    .spha-active .spha-account__header-side { align-items: stretch; min-width: 0; width: 100%; }
    .spha-active .spha-account-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .spha-active .spha-account-grid { grid-template-columns: 1fr; }
    .spha-active .spha-modal { padding: 10px; }
    .spha-active .spha-modal__dialog { max-height: calc(100vh - 20px); padding: 22px 17px; }
    .spha-active .spha-runner__header { align-items: flex-start; flex-direction: column; }
    .spha-active .spha-runner__header-actions { justify-content: space-between; width: 100%; }
    .spha-active .spha-save-state { max-width: 110px; }
    .spha-active .spha-question-card { min-height: 0; padding: 17px 13px 22px; }
    .spha-active .spha-question-text { margin-block: 25px 22px; }
    .spha-active .spha-options { align-items: stretch; display: flex; flex-direction: column; gap: 7px; }
    .spha-active .spha-options::before { display: none; }
    .spha-active .spha-option { text-align: right; }
    .spha-active .spha-option__visual { align-items: center; background: #f8fafc; border: 1px solid var(--spha-line); border-radius: 10px; flex-direction: row; min-height: 46px; padding: 8px 12px; }
    .spha-active .spha-option__visual::before { flex: 0 0 auto; margin: 0 0 0 11px; }
    .spha-active .spha-option__visual::after { display: none; }
    .spha-active .spha-option__label { font-size: 12px; max-width: none; }
    .spha-active .spha-runner__nav { margin-top: 24px; }
    .spha-active .spha-score-card { align-items: center; flex-direction: column; text-align: center; }
    .spha-active .spha-score-gauge { height: 145px; width: 145px; }
    .spha-active .spha-scope-grid { grid-template-columns: 1fr; }
    .spha-thankyou-hero { grid-template-columns: 1fr !important; padding: 19px !important; }
    .spha-thankyou-steps { grid-template-columns: 1fr !important; }
    .spha-order-received-page .woocommerce-order { padding-inline: 10px !important; }
    .spha-order-received-page .woocommerce-order-overview { grid-template-columns: 1fr !important; }
    .spha-order-received-page .woocommerce-table th,
    .spha-order-received-page .woocommerce-table td { font-size: 12px !important; padding: 11px !important; }
}

.spha-active .spha-invitation { min-height: 100vh; padding: 42px 20px; background: radial-gradient(ellipse at top right, #dcefee, transparent 65%), #f7fafb; }
.spha-active .spha-invitation__brand { display: block; max-width: 680px; margin: 0 auto 28px; color: #116567; font-size: 24px; font-weight: 800; text-decoration: none; }
.spha-active .spha-invitation__brand span { display: block; font-size: 13px; font-weight: 500; margin-top: 5px; }
.spha-active .spha-invitation__card { max-width: 680px; margin: auto; padding: clamp(24px, 5vw, 46px); border: 1px solid #d9e9eb; border-radius: 28px; background: #fff; box-shadow: 0 18px 60px #164c4e0b; }
.spha-active .spha-invitation__card h1 { font-size: clamp(24px, 4vw, 34px); margin: 12px 0 22px; color: #163d43; }
.spha-active .spha-invitation__card h2 { font-size: 22px; color: #163d43; }
.spha-active .spha-invitation__card p { line-height: 2; color: #5c727a; margin: 14px 0; }
.spha-active .spha-invitation__identity { padding: 16px; background: #eff8f8; border-radius: 16px; line-height: 2; margin-block: 22px; }
.spha-active .spha-invitation__identity a { display: inline-block; margin-inline-start: 16px; color: #116567; text-decoration: underline; }
.spha-active .spha-invitation__card .spha-check { margin-block: 24px; }
.spha-active .spha-invitation__card .spha-btn { width: 100%; min-height: 52px; }
.spha-active .spha-invitation__back { display: block; text-align: center; margin-top: 26px; color: #55727a; }
.spha-active [data-spha-link-modal] .spha-field { margin-block: 22px 12px; }
.spha-active [data-spha-link-modal] input { width: 100%; min-width: 0; font-family: sans-serif; font-size: 14px; }
.spha-active [data-spha-link-modal] p { line-height: 1.9; overflow-wrap: anywhere; }

/* Consent keeps its header and actions visible; only the reading area scrolls. */
.spha-active [data-spha-consent-modal]{padding:12px;isolation:isolate}
.spha-active [data-spha-consent-modal] .spha-modal__dialog{display:flex;flex-direction:column;width:100%;max-width:640px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);padding:0;overflow:hidden;border:1px solid #d6e6e3;border-radius:24px;background:#fff;box-shadow:0 24px 90px #123b4640}
.spha-active [data-spha-consent-modal] .spha-consent-header{display:grid;grid-template-columns:36px minmax(0,1fr) 44px;align-items:center;gap:12px;flex:none;padding:18px 20px;border-bottom:1px solid #e0ebe8;background:linear-gradient(120deg,#fff,#f1f9f6)}
.spha-active [data-spha-consent-modal] .spha-consent-header>div{min-width:0}
.spha-active [data-spha-consent-modal] .spha-modal__icon{width:36px;height:36px;margin:0;border-radius:11px;font-size:20px;background:#e3f3ed;color:#176e69}
.spha-active [data-spha-consent-modal] .spha-consent-header h2{margin:0;color:#194b51;font:inherit;font-size:21px;font-weight:800;line-height:1.7;text-align:right}
.spha-active [data-spha-consent-modal] .spha-modal__lead{margin:2px 0 0;font-size:12px;line-height:1.8;color:#617c80;text-align:right}
.spha-active [data-spha-consent-modal] button.spha-modal__close{appearance:none;display:grid;place-items:center;position:static;inset:auto;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;margin:0;border:1px solid #cce0da;border-radius:13px;background:#fff;color:#236b6b;font:inherit;line-height:1;box-shadow:none;cursor:pointer}
.spha-active [data-spha-consent-modal] button.spha-modal__close:hover{background:#eaf6f1;border-color:#76aaa1;color:#145a59}
.spha-active [data-spha-consent-modal] button.spha-modal__close:focus-visible{outline:2px solid #167778!important;outline-offset:3px}
.spha-active [data-spha-consent-modal] .spha-modal__close svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor}
.spha-active [data-spha-consent-modal] .spha-consent-body{flex:1 1 auto;min-height:40px;min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bad8d0 transparent;padding:20px;scroll-padding-block:12px}
.spha-active [data-spha-consent-modal] .spha-consent-brief{margin:0 0 16px;padding:16px;border-color:#dce9e4;background:#fcfefd}
.spha-active [data-spha-consent-modal] .spha-consent-brief h3{font-size:16px;line-height:1.9;color:#20565c}
.spha-active [data-spha-consent-modal] .spha-consent-brief .spha-exam-brief__text{max-height:none;overflow:visible;margin:12px 0 0;padding:0;font-size:14px;line-height:2.05}
.spha-active [data-spha-consent-modal] .spha-consent-text{max-height:none;overflow:visible;margin:0;padding:15px;border-color:#dfe8eb;font-size:13px;line-height:2}
.spha-active [data-spha-consent-modal] .spha-consent-footer{display:flex;flex-direction:column;gap:12px;flex:none;padding:16px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid #dce8e4;background:#fff;box-shadow:0 -5px 18px #174b5106}
.spha-active [data-spha-consent-modal] .spha-consent-confirmations{max-height:150px;max-height:min(22dvh,150px);overflow-y:auto;overscroll-behavior:contain;min-width:0;scrollbar-width:thin}
.spha-active [data-spha-consent-modal] label.spha-check{display:flex;align-items:flex-start;gap:10px;min-height:38px;margin:0;padding:5px 2px;color:#375a61;font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.spha-active [data-spha-consent-modal] .spha-check input{appearance:auto;flex:0 0 19px;width:19px;height:19px;min-height:19px;margin:2px 0 0;padding:0;border-radius:5px;accent-color:#167778;cursor:pointer}
.spha-active [data-spha-consent-modal] .spha-check span{min-width:0;flex:1}
.spha-active [data-spha-consent-modal] .spha-modal__error{margin:0;max-height:48px;overflow-y:auto;overflow-wrap:anywhere;padding:9px 12px;font-size:12px;line-height:1.9;flex:none}
.spha-active [data-spha-consent-modal] .spha-modal__actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:12px;margin:0;flex:none}
.spha-active [data-spha-consent-modal] .spha-modal__actions button.spha-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;height:auto;padding:12px 10px;margin:0;border-radius:12px;font:inherit;font-size:14px;font-weight:750;line-height:1.5;white-space:nowrap;transform:none;box-shadow:none}
.spha-active [data-spha-consent-modal] .spha-modal__actions .spha-btn--ghost{border:1px solid #bfd9d1;background:#f2f8f6;color:#245f62}
.spha-active [data-spha-consent-modal] .spha-modal__actions .spha-btn--primary{border:1px solid #167778;background:#167778;color:#fff}
.spha-active [data-spha-consent-modal] .spha-modal__actions .spha-btn--primary:disabled{background:#e1eae7!important;border-color:#d6e2dd!important;color:#617c79!important;opacity:1;filter:none;cursor:not-allowed}
@media(max-width:600px){
 .spha-active [data-spha-consent-modal] .spha-modal__dialog{border-radius:20px}
 .spha-active [data-spha-consent-modal] .spha-consent-header{padding:14px 16px;gap:10px}
 .spha-active [data-spha-consent-modal] .spha-consent-header h2{font-size:18px}
 .spha-active [data-spha-consent-modal] .spha-modal__lead{font-size:11px}
 .spha-active [data-spha-consent-modal] .spha-consent-body{padding:16px}
 .spha-active [data-spha-consent-modal] .spha-consent-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom));gap:10px}
 .spha-active [data-spha-consent-modal] .spha-consent-brief{padding:13px}
 .spha-active [data-spha-consent-modal] .spha-modal__actions{gap:10px}
 .spha-active [data-spha-consent-modal] .spha-modal__actions button.spha-btn{font-size:13px}
}
/* Focused response workspace and navigation, independent of questionnaire length. */
.spha-active .spha-runner .spha-runner__workspace{max-width:860px;padding-top:24px;min-width:0}
.spha-active .spha-runner .spha-question-card{border:1px solid #d3e5e3;border-radius:22px;min-width:0;padding:24px;box-shadow:0 14px 40px #174b5109}
.spha-active .spha-runner .spha-question-text{font-size:clamp(16px,2.2vw,20px);line-height:2;margin:24px auto;overflow-wrap:anywhere}
.spha-active .spha-runner .spha-help-toggle{min-height:40px;padding:8px 12px;border-radius:10px;font-size:12px}
.spha-active .spha-runner .spha-help-panel{font-size:13px;line-height:1.9;border-radius:10px}
.spha-active .spha-runner .spha-options{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;max-width:700px}
.spha-active .spha-runner .spha-options::before{display:none}
.spha-active .spha-runner .spha-option{text-align:right}
.spha-active .spha-runner .spha-option__visual{flex-direction:row;align-items:center;min-height:54px;padding:12px 16px;background:#f8fafb;border:1px solid #dce5e8;border-radius:13px;transition:background .15s,border-color .15s}
.spha-active .spha-runner .spha-option__visual::before{flex:none;width:18px;height:18px;margin:0 0 0 12px;border:1.5px solid #8aaab0;box-shadow:none;background:#fff;transform:none}
.spha-active .spha-runner .spha-option__label{max-width:none;font-size:14px;line-height:1.9}
.spha-active .spha-runner .spha-option input:checked+.spha-option__visual{background:#edf8f5;border-color:#288780;box-shadow:0 0 0 1px #288780}
.spha-active .spha-runner .spha-option input:checked+.spha-option__visual::before{background:#167778;border-color:#167778;box-shadow:inset 0 0 0 4px #fff;transform:none}
body.sph-ux .spha-runner .spha-option input:focus-visible{outline:none!important}
.spha-active .spha-runner .spha-question-map{margin-top:24px;padding-top:18px;border-top:1px solid #e4eceb;min-width:0}
.spha-active .spha-runner .spha-question-map__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;color:#335d63;font-size:13px;font-weight:700}
.spha-active .spha-runner [data-spha-answer-count]{font-size:12px;font-weight:500;color:#607a80}
.spha-active .spha-runner .spha-runner__dots{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:8px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;min-width:0;max-width:100%;padding:5px 3px 10px;scrollbar-width:thin;scrollbar-color:#b5d4cf transparent;scroll-padding-inline:4px;direction:rtl}
.spha-active .spha-runner .spha-dot{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #d4e2e0;border-radius:12px;background:#fff;color:#5b7077;font:inherit;font-size:14px;font-weight:700;position:relative}
.spha-active .spha-runner .spha-dot::before{display:none}
.spha-active .spha-runner .spha-dot.is-answered{background:#edf7f3;border-color:#9fc9c0;color:#156963}
.spha-active .spha-runner .spha-dot.is-answered::after{content:'✓';position:absolute;top:0;left:3px;font-size:9px;line-height:1.3}
.spha-active .spha-runner .spha-dot.is-current{background:#167778;border-color:#167778;color:#fff;box-shadow:0 0 0 2px #c6e4dd}
.spha-active .spha-runner .spha-question-map__legend{display:flex;justify-content:space-between;gap:8px;margin:6px 0 0;font-size:11px;line-height:1.9;color:#697e83}
.spha-active .spha-runner .spha-question-map__legend>span:last-child{flex:none}
.spha-active .spha-runner .spha-question-map__legend i{font-style:normal;color:#167778}
.spha-active .spha-runner .spha-runner__nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px;align-items:stretch}
.spha-active .spha-runner .spha-runner__arrow,.spha-active .spha-runner .spha-runner__nav .spha-submit{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:auto;min-height:50px;margin:0;padding:12px 14px;border:1px solid #bad7d2;border-radius:13px;font:inherit;font-size:14px;font-weight:800;line-height:1.6;opacity:1;cursor:pointer;text-decoration:none;white-space:nowrap}
.spha-active .spha-runner .spha-runner__previous{background:#f0f8f6;color:#205f61}
.spha-active .spha-runner .spha-runner__next{background:#167778;border-color:#167778;color:#fff;box-shadow:0 4px 12px #16777818}
.spha-active .spha-runner .spha-runner__arrow>span{font-size:22px;line-height:1}
.spha-active .spha-runner .spha-runner__arrow:not(:disabled):hover{filter:brightness(.96)}
.spha-active .spha-runner .spha-runner__arrow:disabled{background:#f3f5f5;border-color:#e0e7e6;color:#8b999d;cursor:default;box-shadow:none;opacity:1}
.spha-active .spha-runner .spha-question-error{font-size:13px;line-height:1.9;padding:10px 12px;background:#fff2ed;border-radius:10px}
@media(max-width:700px){
 .spha-active .spha-runner .spha-runner__workspace{padding:18px 12px calc(108px + env(safe-area-inset-bottom))}
 .spha-active .spha-runner .spha-question-card{padding:18px 14px;border-radius:18px}
 .spha-active .spha-runner .spha-question-text{text-align:right;margin:20px 0;font-size:16px}
 .spha-active .spha-runner .spha-option__visual{padding:10px 12px;min-height:52px}
 .spha-active .spha-runner .spha-question-map__legend{font-size:10px}
 .spha-active .spha-runner .spha-runner__nav{position:fixed;inset-inline:0;bottom:0;z-index:20;margin:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d8e7e4;box-shadow:0 -6px 24px #16494b0a;gap:10px}
 .spha-active .spha-runner .spha-runner__arrow,.spha-active .spha-runner .spha-runner__nav .spha-submit{font-size:13px;min-height:48px;padding:11px 10px}
}
@media (prefers-reduced-motion: reduce) {
    .spha-active .spha-runner .spha-option__visual{transition:none}
    .spha-active .spha-spinner { animation-duration: 1.6s; }
    .spha-active .spha-btn,
    .spha-active .spha-product-card,
    .spha-active .spha-product-card__media img,
    .spha-active .spha-progress > span { transition: none; }
}
