:root {
    --admission-primary: #2e8b7c;
    --admission-primary-dark: #226c61;
    --admission-ink: #26334a;
    --admission-border: #e4e9f0;
    --admission-bg: #f7f9fc;
}

html {
    scroll-behavior: smooth;
}

body.admission-body {
    font-family: "AnjomanMax", sans-serif;
    background: var(--admission-bg);
    text-align: right;
}

.admission-header {
    position: relative;
    z-index: 20;
    border-bottom: 1px solid rgba(47, 53, 58, .06);
}

.brand-mark {
    width: 2.7rem;
    height: 2.7rem;
    display: inline-grid;
    place-items: center;
    border-radius: .85rem;
    color: #fff;
    background: linear-gradient(135deg, var(--admission-primary), #53bca8);
    box-shadow: 0 .6rem 1.4rem rgba(46, 139, 124, .22);
    font-size: 1.35rem;
}

.admission-hero {
    position: relative;
    overflow: hidden;
}

.admission-hero::before,
.admission-hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.admission-hero::before {
    width: 26rem;
    height: 26rem;
    left: -10rem;
    top: -12rem;
    background: radial-gradient(circle, rgba(69, 196, 160, .16), transparent 68%);
}

.admission-hero::after {
    width: 20rem;
    height: 20rem;
    right: -7rem;
    bottom: -11rem;
    background: radial-gradient(circle, rgba(63, 120, 224, .11), transparent 70%);
}

.hero-trust-card {
    position: relative;
    padding: 1.55rem;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, .75);
    box-shadow: 0 1rem 3rem rgba(31, 48, 70, .08);
    backdrop-filter: blur(12px);
}

.admission-shell {
    position: relative;
    margin-top: -3.1rem;
    z-index: 5;
}

.admission-card {
    border: 1px solid rgba(228, 233, 240, .9);
    border-radius: 1rem;
    scroll-margin-top: 1.5rem;
    overflow: visible;
}

.section-heading {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.section-icon {
    width: 3.15rem;
    height: 3.15rem;
    display: inline-grid;
    place-items: center;
    border-radius: .9rem;
    font-size: 1.45rem;
    flex: 0 0 auto;
}

.eyebrow {
    display: block;
    color: #8b94a5;
    font-size: .62rem;
    font-weight: 700;
    margin-bottom: .15rem;
}

.admission-stepper {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .7rem 1rem;
    border: 1px solid rgba(228, 233, 240, .9);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 .5rem 1.5rem rgba(31, 48, 70, .05);
}

.stepper-item {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .3rem;
    border: 0;
    background: transparent;
    color: #9aa2b1;
    white-space: nowrap;
}

.stepper-item span {
    width: 1.65rem;
    height: 1.65rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid #d9dfe8;
    border-radius: 50%;
    background: #fff;
    font-size: .65rem;
    font-weight: 700;
}

.stepper-item small {
    font-size: .62rem;
}

.stepper-item.active {
    color: var(--admission-primary-dark);
}

.stepper-item.active span {
    color: #fff;
    border-color: var(--admission-primary);
    background: var(--admission-primary);
    box-shadow: 0 .35rem .8rem rgba(46, 139, 124, .22);
}

.stepper-line {
    height: 1px;
    min-width: 1.7rem;
    margin: 0 .45rem;
    background: #dfe4eb;
    flex: 1;
}

.form-control,
.form-select,
.input-group-text {
    border-color: #dfe4eb;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(46, 139, 124, .62);
    box-shadow: 0 0 0 .2rem rgba(46, 139, 124, .12);
}

.form-floating > label {
    right: 0;
    left: auto;
    transform-origin: 100% 0;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    transform: scale(.85) translateY(-.55rem) translateX(.15rem);
}

.ltr-input {
    direction: ltr;
    text-align: right;
}

.complaint-box {
    min-height: 10.5rem !important;
}

.medium-textarea {
    min-height: 7.4rem !important;
}

.home-address-box {
    padding: 1rem;
    border: 1px solid rgba(46, 139, 124, .2);
    border-radius: .85rem;
    background: rgba(46, 139, 124, .04);
}

.severity-value {
    color: var(--admission-primary-dark);
    font-size: .65rem;
}

.form-range::-webkit-slider-thumb {
    background: var(--admission-primary);
}

.form-range::-moz-range-thumb {
    background: var(--admission-primary);
}

.lifestyle-panel {
    padding: 1.25rem;
    border: 1px dashed #d6dde7;
    border-radius: .85rem;
    background: #fbfcfe;
}

.form-check-input:checked {
    background-color: var(--admission-primary);
    border-color: var(--admission-primary);
}

.smart-card {
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, rgba(63, 120, 224, .3), rgba(69, 196, 160, .38)) border-box;
    border: 1px solid transparent;
}

.ai-icon {
    color: #fff;
    background: linear-gradient(135deg, #4f77e8, #45c4a0);
    box-shadow: 0 .6rem 1.4rem rgba(63, 120, 224, .22);
}

.privacy-note {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .85rem 1rem;
    border-radius: .75rem;
    color: #49617c;
    background: #f2f7ff;
    font-size: .68rem;
}

.privacy-note i {
    color: #3f78e0;
    font-size: 1.05rem;
    line-height: 1.5;
}

.ai-empty-state {
    padding: 2.2rem 1rem;
    text-align: center;
    border: 1px dashed #d6dde7;
    border-radius: .9rem;
    background: #fbfcfe;
}

.ai-orbit {
    width: 4rem;
    height: 4rem;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    color: #3f78e0;
    background: #eef4ff;
    font-size: 1.65rem;
    position: relative;
}

.ai-orbit::after {
    content: "";
    position: absolute;
    inset: -.4rem;
    border: 1px dashed rgba(63, 120, 224, .34);
    border-radius: 50%;
}

.ai-summary {
    padding: 1.15rem 1.25rem;
    border-right: 3px solid #3f78e0;
    border-radius: .65rem;
    background: #f6f9ff;
}

.recommended-tests {
    display: grid;
    gap: .75rem;
}

.test-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid #e3e8ef;
    border-radius: .8rem;
    background: #fff;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.test-card:hover {
    transform: translateY(-2px);
    border-color: rgba(46, 139, 124, .35);
    box-shadow: 0 .5rem 1.3rem rgba(31, 48, 70, .06);
}

.test-check {
    width: 1.8rem;
    height: 1.8rem;
    display: grid;
    place-items: center;
    border-radius: .55rem;
    color: var(--admission-primary);
    background: #edf9f6;
    font-size: 1rem;
}

.test-title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: .25rem;
}

.test-title strong {
    color: var(--admission-ink);
}

.test-code {
    direction: ltr;
    padding: .08rem .4rem;
    border-radius: .35rem;
    color: #627086;
    background: #f1f3f6;
    font-size: .55rem;
}

.test-reason,
.test-prep {
    margin: 0;
    font-size: .65rem;
    color: #788397;
}

.test-prep {
    margin-top: .35rem;
}

.priority-badge {
    padding: .22rem .5rem;
    border-radius: 50rem;
    font-size: .52rem;
    white-space: nowrap;
}

.priority-routine {
    color: #287767;
    background: #e5f7f2;
}

.priority-soon {
    color: #94661d;
    background: #fff4df;
}

.priority-urgent {
    color: #a23b45;
    background: #fdecee;
}

.question-panel {
    padding: 1.1rem 1.2rem;
    border-radius: .75rem;
    background: #f8f9fc;
}

.question-panel ul,
#redFlags {
    padding-right: 1.1rem;
    padding-left: 0;
}

.ai-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding-top: 1rem;
    border-top: 1px solid #edf0f4;
    color: #7d8798;
    font-size: .62rem;
}

.consent-box {
    padding: 1.15rem 1.25rem;
    border: 1px solid #dfe5ed;
    border-radius: .8rem;
    background: #fbfcfe;
}

.admission-sidebar {
    top: 1.5rem;
}

.guide-item {
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
}

.guide-item:last-child {
    margin-bottom: 0;
}

.guide-item > span {
    width: 1.35rem;
    height: 1.35rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #fff;
    background: var(--admission-primary);
    font-size: .7rem;
}

.guide-item strong,
.guide-item small {
    display: block;
}

.guide-item strong {
    color: var(--admission-ink);
    font-size: .68rem;
    margin-bottom: .15rem;
}

.guide-item small {
    color: #8992a3;
    font-size: .58rem;
}

.tracking-code {
    display: inline-block;
    direction: ltr;
    padding: .08rem .45rem;
    border-radius: .35rem;
    background: rgba(255, 255, 255, .7);
    font-weight: 700;
    letter-spacing: .04em;
}

.validation-summary-valid,
.field-validation-valid {
    display: none !important;
}

.input-validation-error {
    border-color: #e2626b !important;
}

.button-loading .spinner-border {
    width: .8rem;
    height: .8rem;
}

@media (max-width: 1199.98px) {
    .admission-sidebar {
        position: static !important;
    }
}

@media (max-width: 767.98px) {
    .admission-shell {
        margin-top: -2rem;
    }

    .admission-stepper {
        overflow-x: auto;
        justify-content: flex-start;
    }

    .stepper-line {
        min-width: 1rem;
    }

    .stepper-item small {
        display: none;
    }

    .section-heading {
        align-items: flex-start;
    }

    .test-card {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .priority-badge {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 575.98px) {
    .admission-card .card-body {
        padding: 1.25rem !important;
    }

    .section-icon {
        width: 2.7rem;
        height: 2.7rem;
    }

    .hero-trust-card {
        padding: 1.2rem;
    }
}

.admission-subsection {
    padding-top: 1.4rem;
    border-top: 1px solid #edf0f4;
}

.subsection-title {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
}

.subsection-title > span {
    width: 2.35rem;
    height: 2.35rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: .7rem;
    color: var(--admission-primary-dark);
    background: #edf9f6;
    font-size: 1.05rem;
}

.prescription-box {
    padding: 1rem 1.1rem;
    border: 1px dashed #d8dfe8;
    border-radius: .85rem;
    background: #fbfcfe;
}

.collection-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.collection-option {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
    min-height: 6.5rem;
    padding: 1rem;
    border: 1px solid #dfe4eb;
    border-radius: .9rem;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.collection-option:hover {
    transform: translateY(-1px);
    border-color: rgba(46, 139, 124, .45);
    box-shadow: 0 .45rem 1rem rgba(31, 48, 70, .05);
}

.collection-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.collection-option:has(input:checked) {
    border-color: var(--admission-primary);
    background: #f6fcfa;
    box-shadow: 0 0 0 .2rem rgba(46, 139, 124, .09);
}

.collection-icon {
    width: 2.8rem;
    height: 2.8rem;
    display: inline-grid;
    place-items: center;
    border-radius: .8rem;
    color: var(--admission-primary-dark);
    background: #edf9f6;
    font-size: 1.3rem;
}

.collection-copy strong,
.collection-copy small {
    display: block;
}

.collection-copy strong {
    margin-bottom: .2rem;
    color: var(--admission-ink);
    font-size: .78rem;
}

.collection-copy small {
    color: #8791a3;
    font-size: .6rem;
    line-height: 1.8;
}

.collection-check {
    width: 1.45rem;
    height: 1.45rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid #d7dde6;
    border-radius: 50%;
    color: transparent;
    background: #fff;
    font-size: .75rem;
}

.collection-option:has(input:checked) .collection-check {
    color: #fff;
    border-color: var(--admission-primary);
    background: var(--admission-primary);
}

.admission-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.3rem;
    border-top: 1px solid #edf0f4;
}

.smart-checkup-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.smart-master-switch {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    flex: 0 0 auto;
    min-height: 2.65rem;
    padding: .38rem .48rem .38rem .85rem;
    border: 1px solid #dfe5ed;
    border-radius: 50rem;
    background: #fff;
    color: #667287;
    cursor: pointer;
    user-select: none;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.smart-master-switch:hover {
    border-color: rgba(46, 139, 124, .38);
    background: #fbfefd;
}

.smart-master-switch:focus-within {
    border-color: rgba(46, 139, 124, .55);
    box-shadow: 0 0 0 .18rem rgba(46, 139, 124, .1);
}

.smart-master-switch-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.smart-master-switch-track {
    position: relative;
    width: 2.6rem;
    height: 1.45rem;
    flex: 0 0 auto;
    border: 1px solid #d8dee8;
    border-radius: 50rem;
    background: #edf0f4;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.smart-master-switch-thumb {
    position: absolute;
    top: 50%;
    right: .18rem;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 .1rem .3rem rgba(31, 48, 70, .18);
    transform: translateY(-50%);
    transition: right .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.smart-master-switch-text {
    min-width: 3.7rem;
    color: inherit;
    font-size: .66rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}

.smart-master-switch .state-on {
    display: none;
}

.smart-master-switch:has(.smart-master-switch-input:checked) {
    border-color: rgba(46, 139, 124, .38);
    background: #f1faf7;
    color: var(--admission-primary-dark);
    box-shadow: 0 .35rem 1rem rgba(46, 139, 124, .08);
}

.smart-master-switch-input:checked + .smart-master-switch-track {
    border-color: var(--admission-primary);
    background: var(--admission-primary);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
}

.smart-master-switch-input:checked + .smart-master-switch-track .smart-master-switch-thumb {
    right: calc(100% - 1.23rem);
    box-shadow: 0 .12rem .34rem rgba(31, 48, 70, .24);
}

.smart-master-switch:has(.smart-master-switch-input:checked) .state-off {
    display: none;
}

.smart-master-switch:has(.smart-master-switch-input:checked) .state-on {
    display: inline;
}

.optional-note {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .75rem .9rem;
    border: 1px solid #e4e9f0;
    border-radius: .75rem;
    color: #6f7b8e;
    background: #fbfcfe;
    font-size: .65rem;
}

.optional-note i {
    color: var(--admission-primary);
    font-size: 1rem;
}

.smart-checkup-fields {
    padding-top: 1.2rem;
    border-top: 1px solid #edf0f4;
}

.smart-consent-box {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(63, 120, 224, .2);
    border-radius: .8rem;
    background: #f6f9ff;
}

.optional-sidebar-card {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: 1rem;
    border: 1px dashed rgba(46, 139, 124, .35);
    border-radius: .85rem;
    color: #526278;
    background: #f3fbf8;
}

.optional-sidebar-card strong {
    display: block;
    margin-bottom: .25rem;
    color: var(--admission-primary-dark);
    font-size: .7rem;
}

.optional-sidebar-icon {
    width: 2.25rem;
    height: 2.25rem;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: .7rem;
    color: #fff;
    background: linear-gradient(135deg, #4f77e8, #45c4a0);
    font-size: 1.1rem;
}

@media (max-width: 767.98px) {
    .collection-options {
        grid-template-columns: 1fr;
    }

    .admission-submit-row,
    .smart-checkup-toggle {
        align-items: stretch;
        flex-direction: column;
    }

    .admission-submit-row .btn {
        width: 100%;
    }

    .smart-master-switch {
        align-self: flex-start;
        justify-content: center;
    }
}
