﻿html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.sos-landing-shell {
    width: 100%;
}

.sos-landing-main {
    padding: 0;
}

.sos-home-hero {
    padding-top: 0.35rem;
    padding-bottom: 1.25rem;
}

.sos-home-logo-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 0;
    margin: 0;
    padding: 0;
}

.sos-navbar-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    flex-wrap: nowrap;
}

.sos-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.25rem;
    height: 2rem;
    line-height: 1;
    padding: .25rem .75rem;
    text-align: center;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .sos-navbar-actions {
        justify-content: flex-start;
        align-items: flex-start;
        flex-direction: column;
        gap: .75rem;
        margin-top: .75rem;
    }

    .sos-theme-toggle {
        align-self: flex-start;
    }
}

.sos-home-logo {
    display: block;
    width: min(680px, 96vw);
    height: auto;
    margin: 0;
    padding: 0;
}

.sos-home-lead {
    margin-top: 0.15rem;
    margin-bottom: 1rem;
}

.sos-home-actions {
    margin-top: 0.75rem;
}

:root {
    --sos-red: #E81D25;
    --sos-blue: #1B75BC;
    --sos-blue-soft: #9FD8F6;
    --sos-navy: #0F2C3F;
    --sos-gold: #CFBA8E;
    --bs-primary: var(--sos-red);
    --bs-secondary: var(--sos-blue);
    --bs-info: var(--sos-blue-soft);
    --bs-success: var(--sos-blue);
    --bs-success-rgb: 27, 117, 188;
    --bs-link-color: var(--sos-blue);
    --bs-link-hover-color: #124568;
    --bs-focus-ring-color: rgba(232, 29, 37, 0.25);
    --sos-header-gradient: radial-gradient(circle at 14% 18%, rgba(255, 255, 255, 0.28) 0, rgba(255, 255, 255, 0.10) 22%, transparent 44%), linear-gradient(135deg, var(--sos-red) 0%, #f8fbff 48%, var(--sos-blue) 76%, var(--sos-navy) 100%);
    --sos-header-gradient-overlay: linear-gradient(90deg, rgba(15, 44, 63, 0.22), rgba(15, 44, 63, 0.18) 45%, rgba(15, 44, 63, 0.30));
    --sos-soft-gradient: linear-gradient(135deg, rgba(232, 29, 37, 0.055), rgba(248, 251, 255, 0.78) 48%, rgba(27, 117, 188, 0.10));
    --sos-soft-gradient-strong: linear-gradient(135deg, rgba(232, 29, 37, 0.075), rgba(248, 251, 255, 0.84) 48%, rgba(27, 117, 188, 0.15));
    --sos-state-gradient: linear-gradient(135deg, rgba(232, 29, 37, 0.085), rgba(248, 251, 255, 0.88) 46%, rgba(27, 117, 188, 0.12));
    --sos-blue-white-blue-gradient: linear-gradient(180deg, var(--sos-blue) 0%, #5fa9d5 28%, #f8fbff 50%, #5fa9d5 72%, var(--sos-blue) 100%);
    --sos-blue-white-blue-overlay: linear-gradient(180deg, rgba(15, 44, 63, 0.26) 0%, rgba(15, 44, 63, 0.12) 28%, rgba(15, 44, 63, 0.04) 50%, rgba(15, 44, 63, 0.12) 72%, rgba(15, 44, 63, 0.24) 100%);
}

.required-dot::after {
    content: " *";
    color: var(--sos-red);
    font-weight: 600;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem #ffffff, 0 0 0 0.25rem rgba(232, 29, 37, 0.55);
}

.btn-success {
    color: #fff;
    background-color: var(--bs-success);
    border-color: var(--bs-success);
}

    .btn-success:hover,
    .btn-success:focus,
    .btn-success:active,
    .btn-success:active:focus,
    .btn-success:focus-visible {
        color: #fff;
        background-color: #155a8c;
        border-color: #155a8c;
    }

.btn-outline-success {
    color: var(--bs-success);
    border-color: var(--bs-success);
}

    .btn-outline-success:hover,
    .btn-outline-success:focus,
    .btn-outline-success:active,
    .btn-outline-success:active:focus,
    .btn-outline-success:focus-visible {
        color: #fff;
        background-color: var(--bs-success);
        border-color: var(--bs-success);
    }

body {
    margin-bottom: 60px;
}

.footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 60px;
    line-height: 60px;
    background-color: #f5f5f5;
}

.text-muted-soft {
    color: var(--bs-secondary-color, #6c757d);
}

.table thead th {
    background-color: var(--bs-body-tertiary, #f1f3f5);
    font-weight: 600;
}

dl.row {
    margin-bottom: 0;
}

    dl.row dt {
        font-weight: 600;
        border-bottom: 1px solid rgba(0, 0, 0, 0.03);
        padding-top: .25rem;
        padding-bottom: .25rem;
    }

    dl.row dd {
        border-bottom: 1px solid rgba(0, 0, 0, 0.03);
        padding-top: .25rem;
        padding-bottom: .25rem;
    }

.card {
    border-radius: .75rem;
}

    .card.hover-lift,
    .card-hover {
        transition: transform .12s ease-out, box-shadow .12s ease-out, border-color .12s ease-out;
    }

        .card.hover-lift:hover,
        .card-hover:hover {
            transform: translateY(-1px);
            box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .08);
            border-color: rgba(15, 44, 63, 0.15);
        }

.student-card {
    transition: transform .12s ease, box-shadow .12s ease;
}

    .student-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .08);
    }

th[aria-sort] .sort-indicator::after {
    content: "";
    display: inline-block;
    margin-left: .25rem;
    border: 4px solid transparent;
}

th[aria-sort="ascending"] .sort-indicator::after {
    border-bottom-color: currentColor;
}

th[aria-sort="descending"] .sort-indicator::after {
    border-top-color: currentColor;
}

.card-media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: var(--bs-body-tertiary, #f1f3f5);
    border-bottom: 1px solid var(--bs-border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-top-left-radius: .5rem;
    border-top-right-radius: .5rem;
}

    .card-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

#dAvatar {
    background: var(--bs-body-tertiary, #f1f3f5);
    border-radius: 9999px;
    width: 72px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--sos-navy);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

#sosModal .modal-dialog {
    max-width: 640px;
}

#sosModal .modal-content {
    border-radius: .75rem;
    border: 1px solid rgba(15, 44, 63, .15);
    background: #fff;
    color: #212529;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, 0.35);
}

#sosModal .modal-header {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    overflow: hidden;
    background: var(--sos-blue-white-blue-gradient);
    color: #FAFAF7;
    border-bottom: 1px solid rgba(15, 44, 63, 0.25);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    padding: .9rem 1rem;
}

    #sosModal .modal-header::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background: var(--sos-blue-white-blue-overlay);
        pointer-events: none;
    }

#sosModal .sos-modal-header-copy {
    min-width: 0;
}

#sosModal .sos-modal-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: .25rem;
    padding: .22rem .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .94);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.1;
    text-transform: uppercase;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .42);
}

#sosModal .modal-header .modal-title {
    margin: 0;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.08;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .46);
}

#sosModal .sos-modal-subtitle {
    max-width: 34rem;
    margin-top: .3rem;
    color: var(--sos-red);
    font-size: .86rem;
    font-weight: 500;
    line-height: 1.4;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
}

#sosModal .modal-body,
#sosModal .modal-footer {
    background: #fff;
    color: #212529;
}

.quickview-modal-header {
    background: transparent;
    padding-bottom: .5rem;
    margin-bottom: .75rem;
    border: 0;
    border-bottom: 1px solid rgba(15, 44, 63, 0.25);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
}

    .quickview-modal-header .title {
        color: #FAFAF7;
    }

.badge-soft-primary {
    background-color: rgba(232, 29, 37, 0.10);
    color: var(--sos-red);
}

.badge-soft-secondary {
    background-color: rgba(27, 117, 188, 0.10);
    color: var(--sos-blue);
}

.dl-grid > * {
    border-bottom: 1px solid var(--bs-border-color);
    padding-top: .5rem;
    padding-bottom: .5rem;
}

.dashboard-avatar-frame {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
}

.dashboard-avatar-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
}

.dashboard-page .avatar-lifesaver {
    width: 80px;
    height: 80px;
    padding: 15px;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, .9), 0 6px 12px rgba(0, 0, 0, .14);
}

.dashboard-page .avatar-name-block .name {
    font-size: .9rem;
}

.dashboard-page .stats-pill {
    border-radius: 999px;
    padding: .25rem .75rem;
    background-color: rgba(15, 44, 63, .12);
    color: #FAFAF7;
    font-size: .75rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

    .dashboard-page .stats-pill .value {
        font-weight: 600;
    }

.sos-card {
    border-radius: .75rem;
    border: 1px solid rgba(0, 0, 0, .04);
    box-shadow: 0 4px 10px rgba(15, 44, 63, .04);
    transition: box-shadow .15s ease, transform .1s ease, border-color .15s ease;
    overflow: hidden;
}

    .sos-card .d-flex {
        min-width: 0;
    }

    .sos-card .sos-text-column {
        min-width: 0;
    }

        .sos-card .sos-text-column .flex-grow-1 {
            min-width: 0;
        }

    .sos-card:hover {
        box-shadow: 0 8px 20px rgba(15, 44, 63, .10);
        transform: translateY(-1px);
        border-color: rgba(15, 44, 63, .15);
    }

.sos-image-wrapper {
    border-radius: .65rem;
    overflow: hidden;
    background: radial-gradient(circle at 20% 20%, #fdfbfb 0, #ebedee 100%);
    border: 1px solid rgba(0, 0, 0, .02);
    position: relative;
    padding-top: 85%;
}

    .sos-image-wrapper img {
        position: absolute;
        inset: 0;
        margin: auto;
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

.sos-meta {
    font-size: .8rem;
    color: #6c757d;
}

.badge-retailer {
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
    font-size: .65rem;
    padding: .2rem .45rem;
    border-radius: 999px;
    background-color: rgba(15, 44, 63, .06);
    color: #0F2C3F;
}

    .badge-retailer.amazon {
        background-color: rgba(255, 153, 0, .10);
        color: #B35A00;
    }

    .badge-retailer.target {
        background-color: rgba(220, 53, 69, .10);
        color: #842029;
    }

    .badge-retailer.walmart {
        background-color: rgba(13, 110, 253, .10);
        color: #0B5ED7;
    }

    .badge-retailer.other {
        background-color: rgba(108, 117, 125, .08);
        color: #41464b;
    }

.badge-xs {
    font-size: .65rem;
    padding: .20rem .35rem;
}

.badge-soft-light {
    background-color: rgba(255, 255, 255, .7);
    color: #6c757d;
    border-radius: 999px;
    padding: .15rem .5rem;
    font-size: .65rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.small-muted {
    font-size: .8rem;
    color: #6c757d;
}

.text-muted-xs {
    font-size: .75rem;
    color: #6c757d;
}

.table-sm td,
.table-sm th {
    vertical-align: middle;
}

.sos-target-pill {
    font-size: .7rem;
    border-radius: 999px;
    padding: .15rem .5rem;
    background-color: rgba(13, 110, 253, .06);
    color: #0B5ED7;
}

.sos-card .sos-title,
.sos-card .sos-title.text-truncate {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    line-height: 1.3;
    max-height: 2.6em;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.student-details-page .student-details-hero {
    border: 1px solid rgba(15, 44, 63, 0.25);
    border-radius: .75rem;
    box-shadow: 0 2px 10px rgba(15, 44, 63, 0.15);
    padding-top: 1.1rem !important;
    padding-bottom: 1.1rem !important;
}

.student-details-page .student-details-header-main {
    max-width: 620px;
    margin: 0 auto;
}

.student-details-page .student-details-avatar {
    width: 100px;
    height: 100px;
    padding: 18px;
    box-shadow: 0 4px 12px rgba(15, 44, 63, 0.20);
}

    .student-details-page .student-details-avatar img {
        width: 64px;
        height: 64px;
    }

.student-details-page .student-details-kicker {
    display: inline-block;
    margin-bottom: .45rem;
    padding: .28rem .75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .92);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.student-details-page .student-details-name {
    font-size: clamp(1.8rem, 2.6vw, 2.35rem);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.01em;
    margin-bottom: .25rem;
}

.student-details-page .student-details-school {
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.student-details-page .student-details-major {
    margin-top: .12rem;
    font-size: .94rem;
    font-weight: 500;
    line-height: 1.25;
    color: rgba(255, 255, 255, .88);
}

.student-details-page .student-follow-panel {
    min-width: 0;
}

.student-details-page .student-follow-btn {
    color: #fff;
    background-color: var(--sos-red);
    border: 1px solid rgba(255, 255, 255, .95);
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: .01em;
    padding: .42rem .9rem;
    min-width: 138px;
    box-shadow: 0 6px 16px rgba(232, 29, 37, .22);
}

    .student-details-page .student-follow-btn:hover,
    .student-details-page .student-follow-btn:focus,
    .student-details-page .student-follow-btn:active,
    .student-details-page .student-follow-btn:focus-visible {
        color: #fff;
        background-color: #c91820;
        border-color: #fff;
    }

@media (max-width: 991.98px) {
    .student-details-page .student-follow-panel {
        text-align: center !important;
    }

    .student-details-page .student-follow-btn {
        min-width: 160px;
    }
}

.student-details-page .student-bio {
    white-space: pre-wrap;
    font-size: .95rem;
    line-height: 1.5;
}

.student-details-page .section-title {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #6c757d;
    margin-bottom: .35rem;
}

.student-details-page .wishlist-summary-badges .badge,
.student-details-page .wishlist-status-badge {
    font-size: .7rem;
}

.student-details-page .wishlist-item-row img {
    width: 64px;
    height: 64px;
    object-fit: cover;
}

.student-details-page .wishlist-item-row .item-title {
    font-weight: 600;
    font-size: .9rem;
}

    .student-details-page .wishlist-item-row .item-title a {
        text-decoration: none;
    }

        .student-details-page .wishlist-item-row .item-title a:hover {
            text-decoration: underline;
        }

.student-details-page .student-section-heading {
    margin-bottom: 1rem;
}

.student-details-page .student-section-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.2;
    color: #0F2C3F;
    letter-spacing: -.01em;
}

.student-details-page .student-section-subtitle {
    font-size: .88rem;
    line-height: 1.45;
    color: #6c757d;
}

.donor-details-page .donor-details-hero {
    border: 1px solid rgba(15, 44, 63, 0.25);
    border-radius: .75rem;
    box-shadow: 0 2px 10px rgba(15, 44, 63, 0.15);
    padding-top: 1.1rem !important;
    padding-bottom: 1.1rem !important;
}

.donor-details-page .donor-details-header-main {
    max-width: 620px;
    margin: 0 auto;
}

.donor-details-page .donor-details-avatar {
    width: 100px;
    height: 100px;
    padding: 18px;
    box-shadow: 0 4px 12px rgba(15, 44, 63, 0.20);
}

    .donor-details-page .donor-details-avatar img {
        width: 64px;
        height: 64px;
    }

.donor-details-page .donor-details-kicker {
    display: inline-block;
    margin-bottom: .45rem;
    padding: .28rem .75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .92);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.donor-details-page .donor-details-name {
    font-size: clamp(1.8rem, 2.6vw, 2.35rem);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.01em;
    margin-bottom: .25rem;
}

.donor-details-page .donor-details-role {
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.donor-details-page .donor-details-context {
    max-width: 36rem;
    margin: .35rem auto 0;
    font-size: .94rem;
    font-weight: 500;
    line-height: 1.35;
    color: rgba(255, 255, 255, .88);
}

.donor-details-page .donor-details-header-spacer {
    width: 100px;
    height: 100px;
}

.donors-index-page .donors-index-card-img {
    object-fit: cover;
}

.donor-send-sos-modal .modal-dialog {
    max-width: 640px;
}

.donor-send-sos-content {
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.18);
    text-align: left;
}

.donor-send-sos-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 5.25rem;
    padding: .9rem 3.25rem .9rem 3.25rem;
    margin-bottom: 0;
    background: var(--sos-header-gradient);
    color: #FAFAF7;
    border: 0;
    border-bottom: 1px solid rgba(15, 44, 63, 0.22);
    text-align: center;
}

    .donor-send-sos-header .btn-close {
        position: absolute;
        top: .9rem;
        right: 1rem;
        filter: invert(1) brightness(200%);
        opacity: .9;
    }

.donor-send-sos-header-copy {
    min-width: 0;
    max-width: 34rem;
    margin: 0 auto;
    text-align: center;
}

.donor-send-sos-kicker {
    margin-bottom: .15rem;
    color: rgba(255, 255, 255, .92);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.1;
    text-transform: uppercase;
}

.donor-send-sos-header .modal-title {
    margin: 0;
    color: #FAFAF7;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: 0 1px 2px rgba(15, 44, 63, 0.42);
}

.donor-send-sos-subtitle {
    margin: .18rem auto 0;
    max-width: 32rem;
    color: rgba(255, 255, 255, .92) !important;
    font-size: .8rem;
    line-height: 1.35;
    text-shadow: 0 1px 2px rgba(15, 44, 63, 0.32);
}

.donor-send-sos-body {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 30%);
    padding: .85rem 1rem;
    text-align: left;
}

.donor-send-sos-panel {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: .9rem;
    background: #fff;
    padding: .75rem;
    box-shadow: 0 .25rem .8rem rgba(15, 23, 42, 0.045);
    text-align: left;
}

.donor-send-sos-section-title {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    margin: 0 0 .6rem 0;
    padding: .35rem .6rem;
    border: 1px solid rgba(15, 44, 63, 0.10);
    border-radius: 999px;
    background: var(--sos-state-gradient);
    color: #0F2C3F;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1;
    text-align: left;
    text-transform: uppercase;
}

.donor-send-sos-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 5.5rem 7rem;
    gap: .65rem;
    align-items: end;
}

.donor-send-sos-label {
    margin-bottom: .2rem;
    color: #64748b;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.1;
    text-transform: uppercase;
}

.donor-send-sos-select {
    min-width: 0;
}

.donor-send-sos-qty,
.donor-send-sos-days {
    width: 100%;
}

.donor-send-sos-help {
    color: #64748b;
    font-size: .76rem;
    line-height: 1.35;
}

.donor-send-sos-choice-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.donor-send-sos-choice-btn {
    width: auto;
    min-width: 8rem;
    padding: .38rem .7rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.btn-check:checked + .donor-send-sos-choice-btn {
    color: #fff;
    background-color: var(--sos-blue);
    border-color: var(--sos-blue);
    box-shadow: 0 .25rem .65rem rgba(27, 117, 188, .20);
}

.donor-send-sos-note {
    max-width: 100%;
}

.donor-send-sos-footer {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
    padding: .75rem 1rem .9rem;
}

@media (max-width: 575.98px) {
    .donor-send-sos-modal .modal-dialog {
        margin: .75rem;
    }

    .donor-send-sos-header {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }

    .donor-send-sos-body,
    .donor-send-sos-footer {
        padding-left: .85rem;
        padding-right: .85rem;
    }

    .donor-send-sos-grid {
        grid-template-columns: 1fr 5rem;
    }

    .donor-send-sos-item-field,
    .donor-send-sos-days-field {
        grid-column: 1 / -1;
    }

    .donor-send-sos-choice-btn {
        min-width: auto;
        flex: 0 1 auto;
    }

    .donor-send-sos-footer {
        flex-direction: column-reverse;
        align-items: stretch;
    }

        .donor-send-sos-footer .btn {
            width: 100%;
        }
}

.student-manage-page .qty-compact {
    width: 64px;
}

.student-manage-page .control-block {
    min-width: 140px;
}

.student-manage-page .control-label {
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #6c757d;
    margin-bottom: 0.25rem;
}

.student-manage-page .card-condensed-header {
    padding: .5rem .75rem;
    border-bottom: 1px solid rgba(0,0,0,.05);
    background: var(--sos-soft-gradient);
}

.student-manage-page .wishlist-card-header {
    background: var(--sos-soft-gradient-strong);
    border-bottom: 1px solid rgba(0,0,0,.05);
}

    .student-manage-page .wishlist-card-header .badge {
        font-size: .7rem;
    }

.student-manage-page .wishlist-name {
    font-weight: 600;
    letter-spacing: .02em;
}

.student-manage-page .wishlist-meta {
    font-size: .8rem;
    color: #6c757d;
}

.student-manage-page .pill-soft {
    border-radius: 999px;
    padding: .25rem .6rem;
    font-size: .75rem;
    background-color: rgba(15,44,63,.04);
    color: #0f2c3f;
}

    .student-manage-page .pill-soft.badge-danger-soft {
        background-color: rgba(220,53,69,.08);
        color: #842029;
    }

    .student-manage-page .pill-soft.badge-success-soft {
        background-color: rgba(25,135,84,.08);
        color: #0f5132;
    }

    .student-manage-page .pill-soft.badge-secondary-soft {
        background-color: rgba(108,117,125,.08);
        color: #41464b;
    }

.student-manage-page .priority-pill {
    min-width: 2rem;
    text-align: center;
}

.student-manage-page .item-card {
    border: 1px solid rgba(0,0,0,.05);
    border-radius: .75rem;
    transition: box-shadow .15s ease, transform .1s ease, border-color .15s ease;
    background-color: #fff;
}

    .student-manage-page .item-card:hover {
        box-shadow: 0 .5rem 1rem rgba(0,0,0,.06);
        transform: translateY(-1px);
        border-color: rgba(15,44,63,.12);
    }

    .student-manage-page .item-card.disabled {
        opacity: .6;
    }

.student-manage-page .item-image-wrapper {
    position: relative;
    border-radius: .75rem;
    overflow: hidden;
    background: radial-gradient(circle at 20% 20%, #fdfbfb 0, #ebedee 100%);
    border: 1px solid rgba(0,0,0,.02);
}

.student-manage-page .item-image-inner {
    position: relative;
    padding-top: 85%;
}

    .student-manage-page .item-image-inner img {
        position: absolute;
        inset: 0;
        margin: auto;
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

.student-manage-page .item-title {
    font-weight: 600;
    font-size: .9rem;
}

.student-manage-page .item-meta {
    font-size: .8rem;
    color: #6c757d;
}

.student-manage-page .badges-row > .badge {
    margin-right: .25rem;
    margin-bottom: .25rem;
}

.student-manage-page .qty-input-sm {
    max-width: 80px;
}

.student-manage-page .wishlist-header-row {
    align-items: center;
}

    .student-manage-page .wishlist-header-row .btn {
        white-space: nowrap;
    }

.student-manage-page .wishlist-card {
    border-radius: 1rem;
    border: 1px solid rgba(0,0,0,.06);
    overflow: hidden;
}

    .student-manage-page .wishlist-card + .wishlist-card {
        margin-top: 1rem;
    }

.student-manage-page .wishlist-source-link {
    font-size: .8rem;
    color: #6c757d;
}

    .student-manage-page .wishlist-source-link a {
        text-decoration-style: dotted;
    }

.student-manage-page .badge-retailer.amazon {
    background-color: rgba(255,153,0,.08);
}

.student-manage-page .badge-retailer.target {
    background-color: rgba(220,53,69,.08);
}

.student-manage-page .badge-retailer.walmart {
    background-color: rgba(13,110,253,.08);
}

.student-manage-page .badge-retailer.other {
    background-color: rgba(108,117,125,.08);
}

.student-manage-page .alert-soft-info {
    background-color: rgba(13,202,240,.08);
    border-color: rgba(13,202,240,.25);
    color: #055160;
}

.student-manage-page .alert-soft-warning {
    background-color: rgba(255,193,7,.08);
    border-color: rgba(255,193,7,.25);
    color: #664d03;
}

.student-manage-page .input-xs {
    padding: .1rem .35rem;
    font-size: .7rem;
    border-radius: .25rem;
}

.student-manage-page .avatar-wrapper {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.student-manage-page .avatar-lifesaver {
    width: 96px;
    height: 96px;
    padding: 18px;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    flex: 0 0 auto;
    box-shadow: 0 0 0 3px rgba(255,255,255,.9), 0 6px 12px rgba(0,0,0,.14);
}

    .student-manage-page .avatar-lifesaver img {
        width: 60px;
        height: 60px;
        display: block;
        margin: 0;
        object-fit: cover;
    }

.student-manage-page .avatar-name-block .name {
    font-size: .8rem;
}

.student-manage-page .avatar-name-block .meta {
    font-size: .75rem;
}

.student-manage-page .sos-pill {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: .2rem .55rem;
}

    .student-manage-page .sos-pill.live {
        background-color: rgba(220,53,69,.1);
        color: #842029;
    }

    .student-manage-page .sos-pill.expired {
        background-color: rgba(108,117,125,.1);
        color: #41464b;
    }

    .student-manage-page .sos-pill.inactive {
        background-color: rgba(222,226,230,.7);
        color: #6c757d;
    }

.student-manage-page .sos-meta-text {
    font-size: .75rem;
    color: #6c757d;
}

.student-manage-page .fade-soft {
    opacity: .75;
}

.student-manage-page .form-text-xs {
    font-size: .7rem;
}

.student-manage-page .card-border-soft {
    border-color: rgba(0,0,0,.05);
}

.student-manage-page .btn-compact {
    padding: .2rem .4rem;
    font-size: .75rem;
}

.student-manage-page .btn-link-compact {
    padding: 0;
    font-size: .8rem;
}

.student-manage-page .synced-message {
    border-radius: .75rem;
    border: 1px solid rgba(15,44,63,.08);
    background: var(--sos-soft-gradient);
    padding: .75rem 1rem;
    font-size: .85rem;
}

    .student-manage-page .synced-message .meta {
        font-size: .75rem;
        color: #6c757d;
    }

.profile-manage-page .sos-profile-card {
    border-radius: .75rem;
    border: 1px solid rgba(15, 44, 63, 0.12);
    box-shadow: 0 2px 10px rgba(15, 44, 63, 0.08);
}

.profile-manage-page .sos-profile-header {
    background: var(--sos-header-gradient);
    color: #FAFAF7;
    border-radius: .75rem .75rem 0 0;
    padding: 1.25rem 1.5rem;
}

.profile-manage-page .sos-profile-avatar {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid rgba(250, 250, 247, 0.85);
    margin: 0 auto 0.75rem;
    background: #0F2C3F;
}

    .profile-manage-page .sos-profile-avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.profile-manage-page .sos-badge-soft {
    border-radius: 999px;
    padding: 0.15rem 0.85rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.profile-manage-page .sos-badge-anon {
    background: rgba(15, 44, 63, 0.12);
    color: #0F2C3F;
}

.profile-manage-page .sos-badge-visible {
    background: rgba(26, 135, 84, 0.12);
    color: #1A8754;
}

.profile-manage-page .sos-badge-shipping-on {
    background: rgba(13, 110, 253, 0.12);
    color: #0D6EFD;
}

.profile-manage-page .sos-badge-shipping-off {
    background: rgba(108, 117, 125, 0.15);
    color: #6C757D;
}

.profile-manage-page .sos-list-label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6C757D;
    margin-bottom: 0.1rem;
}

.profile-manage-page .sos-list-value {
    font-size: 0.9rem;
    color: #212529;
}

.quickview-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--sos-header-gradient);
    color: #ffffff;
    border: 1px solid rgba(15, 44, 63, 0.24);
    border-bottom-color: rgba(15, 44, 63, 0.28);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    box-shadow: 0 0.45rem 1rem rgba(15, 44, 63, 0.16);
}

    .quickview-header::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--sos-header-gradient-overlay);
        z-index: -1;
        pointer-events: none;
    }

    .quickview-header::after {
        content: "";
        position: absolute;
        inset: auto 0 0 0;
        height: 1px;
        background: rgba(255, 255, 255, 0.34);
        pointer-events: none;
    }

    .quickview-header .title,
    .quickview-header .modal-title,
    .quickview-header h1,
    .quickview-header h2,
    .quickview-header h3,
    .quickview-header h4,
    .quickview-header h5,
    .quickview-header h6,
    .quickview-header .avatar-name-block .name {
        color: #ffffff;
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.46);
    }

    .quickview-header .meta,
    .quickview-header .small,
    .quickview-header .small-muted,
    .quickview-header .text-muted,
    .quickview-header .avatar-name-block .meta {
        color: rgba(255, 255, 255, 0.94) !important;
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.38);
    }

    .quickview-header .btn-close {
        filter: invert(1) brightness(200%);
        opacity: .9;
    }

    .quickview-header .btn-outline-primary,
    .quickview-header .btn-primary {
        color: #ffffff;
        background-color: var(--sos-red);
        border-color: rgba(255, 255, 255, 0.88);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.22);
    }

        .quickview-header .btn-outline-primary:hover,
        .quickview-header .btn-outline-primary:focus-visible,
        .quickview-header .btn-primary:hover,
        .quickview-header .btn-primary:focus-visible {
            color: #ffffff;
            background-color: #c91820;
            border-color: #ffffff;
            transform: translateY(-1px);
            box-shadow: 0 0.5rem 1rem rgba(15, 44, 63, 0.30);
        }

    .quickview-header .btn-outline-secondary,
    .quickview-header .btn-secondary {
        color: #0F2C3F;
        background-color: rgba(255, 255, 255, 0.96);
        border-color: rgba(255, 255, 255, 1);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.20);
    }

        .quickview-header .btn-outline-secondary:hover,
        .quickview-header .btn-outline-secondary:focus-visible,
        .quickview-header .btn-secondary:hover,
        .quickview-header .btn-secondary:focus-visible {
            color: #0F2C3F;
            background-color: #ffffff;
            border-color: #ffffff;
            transform: translateY(-1px);
            box-shadow: 0 0.5rem 1rem rgba(15, 44, 63, 0.28);
        }

    .quickview-header .badge,
    .quickview-header .stats-pill {
        border: 1px solid rgba(255, 255, 255, 0.36);
        box-shadow: 0 0.2rem 0.55rem rgba(15, 44, 63, 0.12);
    }

    .quickview-header .avatar-lifesaver {
        box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.95), 0 0.45rem 1rem rgba(15, 44, 63, 0.26);
    }

.avatar-lifesaver {
    --ring-red: #D6483D;
    --ring-white: #FFFFFF;
    background: repeating-conic-gradient( var(--ring-red) 0deg 20deg, var(--ring-white) 20deg 90deg );
    border-radius: 9999px;
    padding: 17px;
    box-shadow: 0 2px 10px rgba(15, 44, 63, 0.25);
    width: 88px;
    height: 88px;
    display: grid;
    place-items: center;
}

    .avatar-lifesaver img,
    .avatar-inner img {
        width: 54px;
        height: 54px;
        border-radius: 9999px;
        object-fit: cover;
        background-color: #ffffff;
        box-shadow: inset 0 0 0 1px rgba(15, 44, 63, 0.15);
    }

.avatar-name-block .name {
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    font-size: .8rem;
    color: #0f2c3f;
}

.avatar-name-block .meta {
    font-size: .75rem;
    color: rgba(255, 255, 255, .9);
}

.alert {
    border-radius: .75rem;
    border-width: 1px;
    padding: .75rem 1rem;
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .875rem;
    box-shadow: 0 2px 8px rgba(15, 44, 63, 0.10);
}

    .alert .bi {
        font-size: 1rem;
        margin-top: 2px;
    }

.alert-success {
    background: linear-gradient(135deg, rgba(25,135,84,0.10), rgba(15,44,63,0.03));
    border-color: rgba(25,135,84,0.35);
    color: #0f5132;
}

.alert-danger {
    background: linear-gradient(135deg, rgba(232,29,37,0.10), rgba(15,44,63,0.03));
    border-color: rgba(232,29,37,0.40);
    color: #842029;
}

.alert-info {
    background: linear-gradient(135deg, rgba(93,179,226,0.12), rgba(15,44,63,0.03));
    border-color: rgba(93,179,226,0.40);
    color: #08425b;
}

.alert-warning {
    background: linear-gradient(135deg, rgba(255,193,7,0.12), rgba(15,44,63,0.03));
    border-color: rgba(255,193,7,0.45);
    color: #664d03;
}

.alert-secondary {
    background: linear-gradient(135deg, rgba(108,117,125,0.10), rgba(15,44,63,0.02));
    border-color: rgba(108,117,125,0.45);
    color: #343a40;
}

.admin-page .admin-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border: 1px solid #e9ecef;
    border-radius: 1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .04);
}

.admin-page .admin-section-kicker {
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6c757d;
    font-weight: 700;
    margin-bottom: .15rem;
}

.admin-page .admin-section-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    color: #212529;
}

.admin-page .admin-section-subtitle {
    margin: .15rem 0 0;
    font-size: .9rem;
    color: #6c757d;
}

.admin-page .admin-card {
    border: 1px solid #e9ecef;
    border-radius: 1rem;
}

    .admin-page .admin-card .card-header {
        border-bottom: 1px solid #eef1f4;
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem;
        padding: .9rem 1rem;
    }

    .admin-page .admin-card .card-body {
        padding: 1rem;
    }

.admin-page .admin-card-kicker {
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6c757d;
    font-weight: 700;
    margin-bottom: .35rem;
}

.admin-page .admin-card-title {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .4rem;
    color: #212529;
}

.admin-page .admin-card-copy {
    color: #6c757d;
    font-size: .9rem;
    margin-bottom: 1rem;
}

.admin-page .table thead th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6c757d;
    white-space: nowrap;
}

.admin-page .admin-metric-card {
    border: 1px solid #e9ecef;
    border-radius: .85rem;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    color: inherit;
}

    .admin-page .admin-metric-card:hover {
        transform: translateY(-1px);
        box-shadow: 0 .25rem .65rem rgba(0, 0, 0, .05);
    }

    .admin-page .admin-metric-card .card-body {
        padding: .7rem .85rem;
    }

    .admin-page .admin-metric-card .small.text-muted.text-uppercase {
        font-size: .66rem;
        letter-spacing: .06em;
        margin-bottom: .15rem !important;
        line-height: 1.1;
    }

    .admin-page .admin-metric-card .fs-3 {
        font-size: 1.45rem !important;
        line-height: 1.05;
        margin-bottom: .15rem;
    }

    .admin-page .admin-metric-card .text-muted.small:last-child {
        font-size: .76rem;
        line-height: 1.2;
        margin-bottom: 0;
    }

.admin-page .admin-metric-grid {
    --bs-gutter-x: .75rem;
    --bs-gutter-y: .75rem;
}

.dashboard-pledge-modal .modal-dialog {
    max-width: 980px;
}

.dashboard-pledge-modal .modal-content {
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.18);
}

.dashboard-pledge-modal .modal-header.quickview-modal-header {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--sos-blue-white-blue-gradient) !important;
    color: #FAFAF7;
    padding: 1rem 1.25rem;
    margin-bottom: 0;
    border: 0;
    border-bottom: 1px solid rgba(15, 44, 63, 0.22);
    overflow: hidden;
}

    .dashboard-pledge-modal .modal-header.quickview-modal-header::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background: var(--sos-blue-white-blue-overlay) !important;
        pointer-events: none;
    }

.dashboard-pledge-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
}

.dashboard-pledge-modal .modal-header .title {
    color: #FAFAF7;
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin: 0;
    text-shadow: 0 1px 2px rgba(15, 44, 63, 0.46);
}

.dashboard-pledge-header-copy {
    min-width: 0;
}

.dashboard-pledge-header-subtitle {
    margin-top: .2rem;
    color: var(--sos-red);
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.35;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
}

.dashboard-pledge-header-status {
    flex-shrink: 0;
}

    .dashboard-pledge-header-status .badge {
        font-size: 0.76rem;
        font-weight: 700;
        letter-spacing: 0.03em;
        padding: 0.5rem 0.7rem;
    }

.dashboard-pledge-modal .modal-body {
    background: linear-gradient(180deg, #f7fafc 0%, #ffffff 26%);
    padding: 1.1rem;
}

.dashboard-pledge-modal .modal-footer {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
    padding: 0.9rem 1.1rem 1.1rem;
}

.pledge-detail-stack {
    display: grid;
    gap: 1rem;
}

.pledge-detail-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    padding: 0.95rem;
    box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.05);
}

.pledge-detail-section-title {
    display: flex;
    align-items: center;
    min-height: 2.25rem;
    margin: -0.15rem -0.15rem 0.9rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid rgba(15, 44, 63, 0.10);
    border-radius: 0.85rem;
    background: var(--sos-state-gradient);
    color: #0F2C3F;
    font-size: 0.84rem;
    font-weight: 650;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pledge-state-banner {
    width: 100%;
    border: 1px solid rgba(15, 44, 63, 0.10);
    border-radius: 1rem;
    background: var(--sos-state-gradient);
    padding: 0.75rem 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.pledge-state-label {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #0F2C3F;
    margin-right: 0.35rem;
}

.pledge-state-text {
    flex: 1 1 320px;
    min-width: 0;
    color: #0f172a;
    font-weight: 600;
    line-height: 1.45;
}

.pledge-detail-image-wrap {
    width: 124px;
    min-width: 124px;
    height: 124px;
    border-radius: 1rem;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.pledge-detail-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pledge-item-kicker {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.pledge-item-title {
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.35rem;
}

.pledge-item-link {
    display: inline-block;
    text-decoration: none;
}

    .pledge-item-link:hover {
        text-decoration: underline;
    }

.pledge-detail-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem 1rem;
}

.pledge-detail-meta-grid-compact {
    grid-template-columns: minmax(0, 1.4fr) minmax(170px, 0.75fr) minmax(170px, 0.75fr);
    align-items: start;
    gap: 0.65rem 0.9rem;
}

.pledge-detail-label {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.15rem;
}

.pledge-detail-value {
    color: #0f172a;
    font-weight: 600;
    word-break: break-word;
}

.pledge-detail-address {
    margin-top: 0.35rem;
    white-space: pre-line;
    color: #0f172a;
}

.pledge-detail-time-stack {
    display: grid;
    gap: 0.4rem;
    align-content: start;
}

.pledge-detail-time-value {
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.35;
}

.pledge-action-panel {
    display: flex;
    justify-content: center;
}

    .pledge-action-panel .pledge-detail-card {
        width: 100%;
        max-width: 100%;
    }

        .pledge-action-panel .pledge-detail-card .btn,
        .pledge-action-panel .pledge-detail-card .d-flex.justify-content-center {
            justify-content: center;
        }

.pledge-thread {
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 0.95rem;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    padding: 0.85rem;
}

.pledge-thread-scroll {
    display: grid;
    gap: 0.7rem;
}

.pledge-thread-row {
    display: flex;
    width: 100%;
}

    .pledge-thread-row.is-self {
        justify-content: flex-start;
    }

    .pledge-thread-row.is-respondent {
        justify-content: flex-end;
    }

    .pledge-thread-row.is-system {
        justify-content: center;
    }

.pledge-thread-bubble {
    max-width: min(100%, 38rem);
    border-radius: 1rem;
    padding: 0.8rem 0.95rem;
    box-shadow: 0 0.25rem 0.75rem rgba(15, 23, 42, 0.06);
}

.pledge-thread-row.is-self .pledge-thread-bubble {
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-top-left-radius: 0.35rem;
}

.pledge-thread-row.is-respondent .pledge-thread-bubble {
    background: rgba(93, 179, 226, 0.12);
    border: 1px solid rgba(93, 179, 226, 0.22);
    border-top-right-radius: 0.35rem;
}

.pledge-thread-author {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.3rem;
}

.pledge-thread-text {
    color: #0f172a;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

.pledge-thread-time {
    margin-top: 0.45rem;
    font-size: 0.76rem;
    color: #64748b;
}

.pledge-thread-inline-label {
    display: inline-block;
    margin-right: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.pledge-thread-event {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(148, 163, 184, 0.26);
    text-align: center;
    box-shadow: 0 0.15rem 0.45rem rgba(15, 23, 42, 0.04);
}

    .pledge-thread-event.is-warning {
        background: #fff7ed;
        border-color: rgba(245, 158, 11, 0.28);
    }

.pledge-thread-event-title {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #0F2C3F;
}

.pledge-thread-event-time {
    font-size: 0.74rem;
    color: #64748b;
}

.pledge-thread-proof {
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    padding-top: 0.55rem;
}

    .pledge-thread-proof summary {
        cursor: pointer;
        list-style: none;
        font-size: 0.8rem;
        font-weight: 700;
        color: #0F2C3F;
    }

        .pledge-thread-proof summary::-webkit-details-marker {
            display: none;
        }

        .pledge-thread-proof summary::after {
            content: " ▾";
            color: #64748b;
        }

.pledge-proof-preview {
    width: 100%;
    max-height: 260px;
    object-fit: contain;
    border-radius: 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
    display: block;
}

@media (max-width: 767.98px) {
    .dashboard-pledge-header-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .pledge-detail-meta-grid-compact {
        grid-template-columns: 1fr;
    }

    .pledge-state-banner {
        align-items: flex-start;
    }

    .pledge-thread-bubble {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .dashboard-pledge-modal .modal-header.quickview-modal-header,
    .dashboard-pledge-modal .modal-body,
    .dashboard-pledge-modal .modal-footer {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }

    .pledge-detail-image-wrap {
        width: 100px;
        min-width: 100px;
        height: 100px;
    }

    .pledge-detail-card {
        padding: 0.875rem;
    }

    .pledge-detail-section-title {
        font-size: 0.78rem;
        padding: 0.5rem 0.7rem;
    }

    .pledge-state-banner {
        padding: 0.75rem 0.85rem;
    }

    .pledge-state-text {
        width: 100%;
    }

    .pledge-thread {
        padding: 0.7rem;
    }

    .pledge-thread-bubble {
        padding: 0.72rem 0.82rem;
    }

    .pledge-thread-event {
        width: 100%;
        border-radius: 0.85rem;
    }
}

.pledge-create-modal .modal-dialog {
    max-width: 680px;
}

.pledge-create-modal .modal-content {
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, 0.18);
}

.pledge-create-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 0;
    padding: 1rem 1.15rem;
    background: var(--sos-blue-white-blue-gradient);
    color: #FAFAF7;
}

.pledge-create-header-copy {
    min-width: 0;
}

.pledge-create-kicker {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    line-height: 1.1;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.94);
    text-shadow: 0 1px 2px rgba(15, 44, 63, 0.42);
    margin-bottom: 0.3rem;
}

.pledge-create-modal .modal-title {
    color: #fff;
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -0.02em;
    text-shadow: 0 1px 2px rgba(15, 44, 63, 0.46);
    margin: 0;
}

.pledge-create-subtitle {
    margin-top: 0.35rem;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--sos-red);
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.65);
}

.pledge-create-body {
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 28%);
    padding: 1rem 1.15rem;
}

.pledge-create-summary {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.95rem;
    background: #fff;
    padding: 0.85rem 0.95rem;
    box-shadow: 0 0.3rem 0.85rem rgba(15, 23, 42, 0.04);
}

.pledge-create-summary-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.pledge-create-summary-title {
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

.pledge-student-note {
    margin-top: 0.85rem;
    border: 1px solid rgba(93, 179, 226, 0.2);
    border-radius: 0.95rem;
    background: var(--sos-state-gradient);
    padding: 0.85rem 0.95rem;
}

.pledge-student-note-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #0F2C3F;
    margin-bottom: 0.25rem;
}

.pledge-student-note-text {
    color: #0f172a;
    line-height: 1.55;
    white-space: pre-wrap;
}

.pledge-create-card {
    margin-top: 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: #fff;
    padding: 0.95rem;
    box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.05);
}

.pledge-create-card-title {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #0F2C3F;
    margin-bottom: 0.8rem;
}

.pledge-create-footer {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
    padding: 0.9rem 1.15rem 1.1rem;
    background: #fff;
}

@media (max-width: 575.98px) {
    .pledge-create-header,
    .pledge-create-body,
    .pledge-create-footer {
        padding-left: 0.9rem;
        padding-right: 0.9rem;
    }
}

.pledge-activity-disclosure {
    display: block;
}

    .pledge-activity-disclosure summary {
        list-style: none;
        cursor: pointer;
        margin-bottom: 0;
    }

        .pledge-activity-disclosure summary::-webkit-details-marker {
            display: none;
        }

    .pledge-activity-disclosure[open] .pledge-detail-section-title {
        margin-bottom: 0.9rem;
    }

.pledge-activity-disclosure-meta {
    margin-left: auto;
    padding-left: 1rem;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #64748b;
}

.pledge-activity-disclosure[open] .pledge-activity-disclosure-meta::after {
    content: "Collapse";
}

.pledge-activity-disclosure[open] .pledge-activity-disclosure-meta {
    font-size: 0;
}

.pledge-thread-proof-block {
    color: #0f172a;
    line-height: 1.45;
}

    .pledge-thread-proof-block .fw-semibold {
        margin-bottom: 0.2rem !important;
    }

    .pledge-thread-proof-block > div + div,
    .pledge-thread-proof-block > details {
        margin-top: 0.35rem;
    }

    .pledge-thread-proof-block .pledge-thread-inline-label {
        margin-bottom: 0;
    }

.admin-page .admin-announcement-admin-card {
    border: 1px solid #e9ecef;
    border-radius: 1rem;
    overflow: hidden;
}

.admin-page .admin-announcement-admin-header {
    padding: .85rem 1rem .55rem;
}

.admin-page .admin-announcement-kicker {
    font-size: .66rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6c757d;
    font-weight: 700;
}

.admin-page .admin-announcement-title {
    font-size: .98rem;
    font-weight: 650;
    color: #212529;
    line-height: 1.2;
}

.admin-page .admin-announcement-subtitle {
    font-size: .83rem;
    color: #6c757d;
    line-height: 1.4;
    max-width: 48rem;
}

.admin-page .admin-announcement-trigger {
    white-space: nowrap;
    border-radius: 999px;
    padding-inline: .85rem;
}

.admin-page .admin-announcement-admin-body {
    padding-top: .45rem;
}

.admin-page .admin-announcement-grid {
    --bs-gutter-x: .85rem;
    --bs-gutter-y: .85rem;
}

.admin-page .admin-announcement-item {
    height: 100%;
    border: 1px solid #e9ecef;
    border-radius: .9rem;
    padding: .85rem .9rem;
    background: #fff;
    box-shadow: 0 .2rem .55rem rgba(15, 44, 63, .04);
}

    .admin-page .admin-announcement-item.is-critical {
        background: linear-gradient(180deg, #fff6f6 0%, #fff 100%);
        border-color: rgba(232, 29, 37, .20);
    }

    .admin-page .admin-announcement-item.is-important {
        background: linear-gradient(180deg, #fff9f2 0%, #fff 100%);
        border-color: rgba(245, 158, 11, .24);
    }

    .admin-page .admin-announcement-item.is-info {
        background: linear-gradient(180deg, #fffdf4 0%, #fff 100%);
        border-color: rgba(234, 179, 8, .26);
    }

.admin-page .admin-announcement-item-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .6rem;
}

.admin-page .admin-announcement-item-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.admin-page .admin-announcement-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .16rem .48rem;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    background: rgba(15, 44, 63, .06);
    color: #0F2C3F;
}

.admin-page .admin-announcement-pill-severity {
    background: rgba(15, 44, 63, .10);
}

.admin-page .admin-announcement-item.is-critical .admin-announcement-pill-severity {
    background: rgba(232, 29, 37, .12);
    color: #842029;
}

.admin-page .admin-announcement-item.is-important .admin-announcement-pill-severity {
    background: rgba(245, 158, 11, .14);
    color: #9a5a00;
}

.admin-page .admin-announcement-item.is-info .admin-announcement-pill-severity {
    background: rgba(234, 179, 8, .16);
    color: #7a5a00;
}

.admin-page .admin-announcement-pill.is-active {
    background: rgba(25, 135, 84, .10);
    color: #0f5132;
}

.admin-page .admin-announcement-pill.is-inactive {
    background: rgba(108, 117, 125, .12);
    color: #495057;
}

.admin-page .admin-announcement-pill.is-required {
    background: rgba(15, 23, 42, .10);
    color: #0f172a;
}

.admin-page .admin-announcement-item-actions {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    flex-shrink: 0;
}

    .admin-page .admin-announcement-item-actions .btn {
        padding: .22rem .55rem;
        font-size: .75rem;
    }

.admin-page .admin-announcement-item-title {
    margin: 0 0 .55rem;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.3;
    color: #212529;
}

.admin-page .admin-announcement-item-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

    .admin-page .admin-announcement-item-meta span {
        display: block;
        font-size: .66rem;
        text-transform: uppercase;
        letter-spacing: .05em;
        color: #6c757d;
        margin-bottom: .12rem;
        font-weight: 700;
    }

    .admin-page .admin-announcement-item-meta strong {
        display: block;
        font-size: .8rem;
        color: #212529;
        font-weight: 600;
        line-height: 1.3;
    }

.admin-page .admin-announcement-empty {
    border: 1px dashed #d7dee6;
    border-radius: .9rem;
    padding: .95rem;
    background: #fafbfc;
    color: #6c757d;
    font-size: .9rem;
}

.admin-page .admin-announcement-modal-dialog {
    max-width: 560px;
}

.admin-page .admin-announcement-modal-content,
#manualPriceModal .modal-content.manage-price-modal,
.students-quickview-modal .modal-content {
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, .18);
}

.admin-page .admin-announcement-modal-header {
    border: 0;
    padding: .85rem 1rem .75rem;
    background: var(--sos-header-gradient);
    color: #FAFAF7;
}

    .admin-page .admin-announcement-modal-header .btn-close {
        filter: invert(1) brightness(200%);
        opacity: .9;
    }

.admin-page .admin-announcement-modal-copy {
    min-width: 0;
}

.admin-page .admin-announcement-modal-title {
    font-size: 1rem;
    font-weight: 650;
    color: #FAFAF7;
    line-height: 1.2;
}

.admin-page .admin-announcement-modal-subtitle {
    font-size: .8rem;
    color: rgba(250, 250, 247, .90);
    line-height: 1.4;
}

.admin-page .admin-announcement-modal-body {
    padding: .85rem 1rem 1rem;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 26%);
}

.admin-page .admin-announcement-form {
    --bs-gutter-x: .75rem;
    --bs-gutter-y: .7rem;
}

.admin-page .admin-announcement-form-label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #6c757d;
    margin-bottom: .25rem;
}

.admin-page .admin-announcement-message-input {
    min-height: 5.8rem;
    resize: vertical;
}

.admin-page .admin-announcement-switch {
    border: 1px solid #e9ecef;
    border-radius: .8rem;
    padding: .65rem .8rem .65rem 2.6rem;
    background: #fff;
}

    .admin-page .admin-announcement-switch .form-check-label {
        font-size: .9rem;
    }

    .admin-page .admin-announcement-switch .small {
        font-size: .78rem;
        line-height: 1.35;
    }

.admin-page .admin-announcement-schedule-box {
    border: 1px solid #e9ecef;
    border-radius: .85rem;
    padding: .7rem .8rem .8rem;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
}

.admin-page .admin-announcement-schedule-title {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6c757d;
    margin-bottom: .15rem;
}

.admin-page .admin-announcement-schedule-copy {
    font-size: .78rem;
    color: #6c757d;
    margin-bottom: .65rem;
}

@media (max-width: 767.98px) {
    .admin-page .admin-announcement-item-top {
        flex-direction: column;
    }

    .admin-page .admin-announcement-item-actions {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .admin-page .admin-announcement-item-meta {
        grid-template-columns: 1fr;
    }

    .admin-page .admin-announcement-trigger {
        width: 100%;
    }
}

.student-manage-page .price-status-card {
    margin-top: .45rem;
    padding: .45rem .55rem;
    border: 1px solid rgba(15, 44, 63, .08);
    border-radius: .65rem;
    background: rgba(15, 44, 63, .025);
}

    .student-manage-page .price-status-card.is-verified {
        border-color: rgba(27, 117, 188, .18);
        background: rgba(27, 117, 188, .045);
    }

    .student-manage-page .price-status-card.is-needed {
        border-color: rgba(255, 193, 7, .34);
        background: rgba(255, 193, 7, .08);
    }

.student-manage-page .price-status-label {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.2;
}

.student-manage-page .price-status-card.is-verified .price-status-label {
    color: var(--sos-blue);
}

.student-manage-page .price-status-card.is-needed .price-status-label {
    color: #664d03;
}

.student-manage-page .price-status-value {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    margin-top: .18rem;
    font-size: .84rem;
    font-weight: 600;
    color: #0F2C3F;
}

.student-manage-page .price-source-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .1rem .4rem;
    background: rgba(15, 44, 63, .08);
    color: #0F2C3F;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.student-manage-page .price-status-helper {
    margin-top: .18rem;
    font-size: .74rem;
    line-height: 1.35;
    color: #664d03;
}

.student-manage-page .item-action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .5rem;
}

.student-manage-page .item-action-group {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

    .student-manage-page .item-action-group.item-actions {
        flex: 1 1 170px;
    }

    .student-manage-page .item-action-group.price-action,
    .student-manage-page .item-action-group.sos-action {
        flex: 0 0 auto;
        min-width: 132px;
    }

.student-manage-page .item-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.student-manage-page .item-action-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #6c757d;
    line-height: 1;
}

.student-manage-page .item-action-group .btn {
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .student-manage-page .item-action-group,
    .student-manage-page .item-action-group.price-action,
    .student-manage-page .item-action-group.sos-action {
        flex: 1 1 100%;
    }

        .student-manage-page .item-action-group .btn {
            width: 100%;
        }
}

#manualPriceModal .manage-price-modal-header {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    overflow: hidden;
    background: var(--sos-blue-white-blue-gradient);
    color: #FAFAF7;
    border-bottom: 1px solid rgba(15, 44, 63, .22);
    padding: .9rem 1rem .8rem;
}

    #manualPriceModal .manage-price-modal-header::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background: var(--sos-blue-white-blue-overlay);
        pointer-events: none;
    }

#manualPriceModal .manage-price-modal-header-copy {
    min-width: 0;
    max-width: 34rem;
}

#manualPriceModal .manage-price-modal-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: .25rem;
    padding: .22rem .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .94);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.1;
    text-transform: uppercase;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .42);
}

#manualPriceModal .manage-price-modal-header .modal-title {
    margin: 0;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.08;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .46);
}

#manualPriceModal .manage-price-modal-subtitle {
    max-width: 34rem;
    margin-top: .3rem;
    color: var(--sos-red);
    font-size: .86rem;
    font-weight: 500;
    line-height: 1.4;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
}

.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    line-height: 1;
    aspect-ratio: 1 / 1;
    padding: .45rem;
    border-radius: 999px;
    transition: transform .12s ease, box-shadow .12s ease, filter .12s ease, background-color .12s ease, border-color .12s ease;
}

    .btn-icon > i {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 1rem;
        line-height: 1;
    }

    .btn-icon.btn-sm,
    .btn-icon-sm {
        width: 2.05rem;
        height: 2.05rem;
        min-width: 2.05rem;
        padding: 0;
    }

    .btn-icon.btn-lg,
    .btn-icon-lg {
        width: 2.75rem;
        height: 2.75rem;
        min-width: 2.75rem;
        padding: 0;
    }

    .btn-icon.btn-outline-primary,
    .btn-icon.btn-primary {
        color: #fff;
        background-color: var(--sos-red);
        border-color: var(--sos-red);
    }

    .btn-icon.btn-outline-secondary,
    .btn-icon.btn-secondary,
    .btn-icon.btn-outline-success,
    .btn-icon.btn-success {
        color: #fff;
        background-color: var(--sos-blue);
        border-color: var(--sos-blue);
    }

    .btn-icon.btn-outline-danger,
    .btn-icon.btn-danger {
        color: #fff;
        background-color: var(--bs-danger);
        border-color: var(--bs-danger);
    }

    .btn-icon.btn-outline-warning,
    .btn-icon.btn-warning {
        color: #212529;
        background-color: var(--bs-warning);
        border-color: var(--bs-warning);
    }

    .btn-icon.btn-outline-dark,
    .btn-icon.btn-dark {
        color: #fff;
        background-color: var(--sos-navy);
        border-color: var(--sos-navy);
    }

    .btn-icon.btn-outline-light,
    .btn-icon.btn-light {
        color: var(--sos-navy);
        background-color: #FAFAF7;
        border-color: rgba(15, 44, 63, .18);
    }

    .btn-icon:hover,
    .btn-icon:focus-visible,
    .student-manage-page .item-action-group .btn-icon:hover,
    .student-manage-page .item-action-group .btn-icon:focus-visible,
    .dashboard-page .btn-icon:hover,
    .dashboard-page .btn-icon:focus-visible {
        filter: brightness(1.08);
        transform: translateY(-1px);
        box-shadow: 0 .35rem .85rem rgba(15, 44, 63, .18), 0 0 0 .15rem rgba(255, 255, 255, .85);
    }

    .btn-icon.btn-outline-primary:hover,
    .btn-icon.btn-primary:hover,
    .btn-icon.btn-outline-primary:focus-visible,
    .btn-icon.btn-primary:focus-visible {
        color: #fff;
        background-color: #c91820;
        border-color: #c91820;
    }

    .btn-icon.btn-outline-secondary:hover,
    .btn-icon.btn-secondary:hover,
    .btn-icon.btn-outline-success:hover,
    .btn-icon.btn-success:hover,
    .btn-icon.btn-outline-secondary:focus-visible,
    .btn-icon.btn-secondary:focus-visible,
    .btn-icon.btn-outline-success:focus-visible,
    .btn-icon.btn-success:focus-visible {
        color: #fff;
        background-color: #155a8c;
        border-color: #155a8c;
    }

    .btn-icon.btn-outline-danger:hover,
    .btn-icon.btn-danger:hover,
    .btn-icon.btn-outline-danger:focus-visible,
    .btn-icon.btn-danger:focus-visible {
        color: #fff;
        background-color: #bb2d3b;
        border-color: #bb2d3b;
    }

    .btn-icon.btn-outline-warning:hover,
    .btn-icon.btn-warning:hover,
    .btn-icon.btn-outline-warning:focus-visible,
    .btn-icon.btn-warning:focus-visible {
        color: #212529;
        background-color: #ffca2c;
        border-color: #ffca2c;
    }

    .btn-icon.btn-outline-dark:hover,
    .btn-icon.btn-dark:hover,
    .btn-icon.btn-outline-dark:focus-visible,
    .btn-icon.btn-dark:focus-visible {
        color: #fff;
        background-color: #071a26;
        border-color: #071a26;
    }

    .btn-icon:disabled,
    .btn-icon.disabled,
    button.btn-icon:disabled {
        color: rgba(255, 255, 255, .88);
        background-color: #6c757d;
        border-color: #6c757d;
        cursor: not-allowed;
        filter: none;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        opacity: .62;
    }

        .btn-icon:disabled > i,
        .btn-icon.disabled > i,
        button.btn-icon:disabled > i {
            opacity: .95;
        }

.student-manage-page .item-action-group.price-action,
.student-manage-page .item-action-group.sos-action {
    min-width: auto;
}

@media (max-width: 575.98px) {
    .student-manage-page .item-action-buttons {
        display: flex;
        flex-wrap: wrap;
    }

    .student-manage-page .item-action-group .btn-icon {
        width: 2.2rem;
        min-width: 2.2rem;
    }
}

.sos-btn-svg {
    display: inline-block;
    width: 1.05em;
    height: 1.05em;
    object-fit: contain;
    vertical-align: -0.18em;
    flex: 0 0 auto;
}

.btn-icon .sos-btn-svg {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0;
}

.btn-icon-sm .sos-btn-svg {
    width: 1.05rem;
    height: 1.05rem;
}

.btn:disabled .sos-btn-svg,
.btn.disabled .sos-btn-svg {
    opacity: .55;
    filter: grayscale(.35);
}

.btn:hover .sos-btn-svg,
.btn:focus-visible .sos-btn-svg {
    transform: translateY(-1px);
}

.profile-manage-page .sos-profile-header,
.admin-page .admin-announcement-modal-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

    .profile-manage-page .sos-profile-header::before,
    .admin-page .admin-announcement-modal-header::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--sos-header-gradient-overlay);
        z-index: -1;
        pointer-events: none;
    }

.pledge-create-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--sos-blue-white-blue-overlay);
    z-index: -1;
    pointer-events: none;
}

.dashboard-page > .quickview-header,
.student-manage-page .quickview-header {
    position: relative;
    isolation: isolate;
    background: var(--sos-header-gradient);
    color: #ffffff;
    border: 1px solid rgba(15, 44, 63, 0.24);
    border-radius: 1rem;
    box-shadow: 0 0.65rem 1.45rem rgba(15, 44, 63, 0.20);
    overflow: hidden;
}

    .dashboard-page > .quickview-header::before,
    .student-manage-page .quickview-header::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--sos-header-gradient-overlay);
        z-index: -1;
        pointer-events: none;
    }

    .dashboard-page > .quickview-header::after,
    .student-manage-page .quickview-header::after {
        content: "";
        position: absolute;
        inset: auto 0 0 0;
        height: 1px;
        background: rgba(255, 255, 255, 0.34);
        pointer-events: none;
    }

    .dashboard-page > .quickview-header .title,
    .student-manage-page .quickview-header .title,
    .dashboard-page > .quickview-header .avatar-name-block .name,
    .student-manage-page .quickview-header .avatar-name-block .name {
        color: #ffffff;
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.46);
    }

    .dashboard-page > .quickview-header .meta,
    .student-manage-page .quickview-header .meta,
    .dashboard-page > .quickview-header .small-muted,
    .student-manage-page .quickview-header .small-muted,
    .dashboard-page > .quickview-header .avatar-name-block .meta,
    .student-manage-page .quickview-header .avatar-name-block .meta {
        color: rgba(255, 255, 255, 0.94);
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.38);
    }

    .dashboard-page > .quickview-header .avatar-lifesaver,
    .student-manage-page .quickview-header .avatar-lifesaver {
        box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.95), 0 0.45rem 1rem rgba(15, 44, 63, 0.26);
    }

    .dashboard-page > .quickview-header .stats-pill {
        background: rgba(15, 44, 63, 0.20);
        color: #ffffff;
        border: 1px solid rgba(255, 255, 255, 0.38);
        box-shadow: inset 0 0 0 1px rgba(15, 44, 63, 0.08), 0 0.25rem 0.65rem rgba(15, 44, 63, 0.14);
        backdrop-filter: blur(2px);
    }

        .dashboard-page > .quickview-header .stats-pill .label {
            color: rgba(255, 255, 255, 0.88);
        }

        .dashboard-page > .quickview-header .stats-pill .value {
            color: #ffffff;
            font-weight: 800;
        }

    .dashboard-page > .quickview-header .btn-outline-primary,
    .student-manage-page .quickview-header .btn-outline-primary,
    .dashboard-page > .quickview-header .btn-primary,
    .student-manage-page .quickview-header .btn-primary {
        color: #ffffff;
        background-color: var(--sos-red);
        border-color: rgba(255, 255, 255, 0.88);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.22);
    }

        .dashboard-page > .quickview-header .btn-outline-primary:hover,
        .dashboard-page > .quickview-header .btn-outline-primary:focus-visible,
        .student-manage-page .quickview-header .btn-outline-primary:hover,
        .student-manage-page .quickview-header .btn-outline-primary:focus-visible,
        .dashboard-page > .quickview-header .btn-primary:hover,
        .student-manage-page .quickview-header .btn-primary:hover {
            color: #ffffff;
            background-color: #c91820;
            border-color: #ffffff;
            transform: translateY(-1px);
            box-shadow: 0 0.5rem 1rem rgba(15, 44, 63, 0.30);
        }

    .dashboard-page > .quickview-header .btn-outline-secondary,
    .student-manage-page .quickview-header .btn-outline-secondary,
    .dashboard-page > .quickview-header .btn-secondary,
    .student-manage-page .quickview-header .btn-secondary {
        color: #0F2C3F;
        background-color: rgba(255, 255, 255, 0.96);
        border-color: rgba(255, 255, 255, 1);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.20);
    }

        .dashboard-page > .quickview-header .btn-outline-secondary:hover,
        .dashboard-page > .quickview-header .btn-outline-secondary:focus-visible,
        .student-manage-page .quickview-header .btn-outline-secondary:hover,
        .student-manage-page .quickview-header .btn-outline-secondary:focus-visible,
        .dashboard-page > .quickview-header .btn-secondary:hover,
        .student-manage-page .quickview-header .btn-secondary:hover {
            color: #0F2C3F;
            background-color: #ffffff;
            border-color: #ffffff;
            transform: translateY(-1px);
            box-shadow: 0 0.5rem 1rem rgba(15, 44, 63, 0.28);
        }

    .dashboard-page > .quickview-header .btn-danger,
    .student-manage-page .quickview-header .btn-danger {
        color: #ffffff;
        background-color: var(--bs-danger);
        border-color: rgba(255, 255, 255, 0.88);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.22);
    }

        .dashboard-page > .quickview-header .btn-danger:hover,
        .dashboard-page > .quickview-header .btn-danger:focus-visible,
        .student-manage-page .quickview-header .btn-danger:hover,
        .student-manage-page .quickview-header .btn-danger:focus-visible {
            border-color: #ffffff;
            transform: translateY(-1px);
            box-shadow: 0 0.5rem 1rem rgba(15, 44, 63, 0.30);
        }

    .dashboard-page > .quickview-header .btn-icon,
    .student-manage-page .quickview-header .btn-icon {
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.24);
    }

        .dashboard-page > .quickview-header .btn-icon:hover,
        .dashboard-page > .quickview-header .btn-icon:focus-visible,
        .student-manage-page .quickview-header .btn-icon:hover,
        .student-manage-page .quickview-header .btn-icon:focus-visible {
            box-shadow: 0 0.55rem 1rem rgba(15, 44, 63, 0.32), 0 0 0 .14rem rgba(255, 255, 255, .72);
        }

    .dashboard-page > .quickview-header .d-flex.flex-wrap.gap-2,
    .student-manage-page .quickview-header .mt-1 {
        row-gap: 0.45rem;
    }


.student-manage-page .manage-hero {
    background: var(--sos-blue-white-blue-gradient);
}

    .student-manage-page .manage-hero::before {
        background: var(--sos-blue-white-blue-overlay);
    }

    .student-manage-page .manage-hero .avatar-name-block .name {
        color: #fff;
        font-weight: 600;
        letter-spacing: -.025em;
        text-shadow: 0 1px 2px rgba(15, 44, 63, .46);
    }

    .student-manage-page .manage-hero .avatar-name-block .meta,
    .student-manage-page .manage-hero .small-muted {
        color: var(--sos-red);
        font-weight: 500;
        text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
    }

.student-manage-page .manage-header-avatar {
    transform: scale(1.2);
    transform-origin: left center;
}

@media (max-width: 767.98px) {
    .student-manage-page .quickview-header > .d-flex {
        align-items: flex-start !important;
        flex-direction: column;
    }

    .student-manage-page .quickview-header .ms-auto {
        margin-left: 0 !important;
        text-align: left !important;
        width: 100%;
    }

    .student-manage-page .quickview-header .mt-1 {
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
    }

    .dashboard-page > .quickview-header .avatar-lifesaver,
    .student-manage-page .quickview-header .avatar-lifesaver {
        transform: none !important;
    }
}

.dashboard-page > .dashboard-hero {
    background: var(--sos-blue-white-blue-gradient);
}

    .dashboard-page > .dashboard-hero::before {
        background: var(--sos-blue-white-blue-overlay);
    }

.dashboard-header-avatar {
    transform: scale(1.2);
    transform-origin: left center;
}

.dashboard-header-content,
.dashboard-header-copy {
    min-width: 0;
}

.dashboard-header-copy {
    max-width: 56rem;
}

.students-browse-kicker,
.students-quickview-kicker,
.dashboard-header-kicker {
    display: inline-flex;
    align-items: center;
    margin-bottom: .3rem;
    padding: .25rem .65rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .94);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1.1;
    text-transform: uppercase;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .42);
}

.students-browse-title,
.dashboard-header-title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.05;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .46);
}

.students-browse-subtitle,
.dashboard-header-subtitle {
    max-width: 46rem;
    margin: .35rem 0 0;
    color: var(--sos-red);
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.45;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
}

.dashboard-header-meta {
    margin-top: .35rem;
    color: rgba(255, 255, 255, .94);
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.3;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .38);
}

.dashboard-header-stats {
    align-items: flex-start;
}

@media (max-width: 767.98px) {
    .dashboard-page > .dashboard-hero > .d-flex {
        align-items: flex-start !important;
    }

    .dashboard-header-avatar {
        transform: none;
    }

    .dashboard-header-stats {
        width: 100%;
        margin-left: 0 !important;
    }
}

.modal-header.quickview-modal-header,
.quickview-modal-header {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--sos-header-gradient) !important;
    color: #ffffff !important;
    border: 0;
    border-bottom: 1px solid rgba(15, 44, 63, 0.28);
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    box-shadow: 0 0.45rem 1rem rgba(15, 44, 63, 0.16);
}

    .modal-header.quickview-modal-header::before,
    .quickview-modal-header::before {
        content: "";
        position: absolute;
        inset: 0;
        background: var(--sos-header-gradient-overlay);
        z-index: -1;
        pointer-events: none;
    }

    .modal-header.quickview-modal-header::after,
    .quickview-modal-header::after {
        content: "";
        position: absolute;
        inset: auto 0 0 0;
        height: 1px;
        background: rgba(255, 255, 255, 0.34);
        pointer-events: none;
    }

    .modal-header.quickview-modal-header .title,
    .modal-header.quickview-modal-header .modal-title,
    .modal-header.quickview-modal-header h1,
    .modal-header.quickview-modal-header h2,
    .modal-header.quickview-modal-header h3,
    .modal-header.quickview-modal-header h4,
    .modal-header.quickview-modal-header h5,
    .modal-header.quickview-modal-header h6,
    .quickview-modal-header .title,
    .quickview-modal-header .modal-title,
    .quickview-modal-header h1,
    .quickview-modal-header h2,
    .quickview-modal-header h3,
    .quickview-modal-header h4,
    .quickview-modal-header h5,
    .quickview-modal-header h6 {
        color: #ffffff !important;
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.46);
    }

    .modal-header.quickview-modal-header .meta,
    .modal-header.quickview-modal-header .small,
    .modal-header.quickview-modal-header .small-muted,
    .modal-header.quickview-modal-header .text-muted,
    .quickview-modal-header .meta,
    .quickview-modal-header .small,
    .quickview-modal-header .small-muted,
    .quickview-modal-header .text-muted {
        color: rgba(255, 255, 255, 0.94) !important;
        text-shadow: 0 1px 2px rgba(15, 44, 63, 0.38);
    }

    .modal-header.quickview-modal-header .btn-close,
    .quickview-modal-header .btn-close {
        filter: invert(1) brightness(200%);
        opacity: .9;
    }

    .modal-header.quickview-modal-header .btn-outline-primary,
    .modal-header.quickview-modal-header .btn-primary,
    .quickview-modal-header .btn-outline-primary,
    .quickview-modal-header .btn-primary {
        color: #ffffff;
        background-color: var(--sos-red);
        border-color: rgba(255, 255, 255, 0.88);
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.22);
    }

    .modal-header.quickview-modal-header .btn-outline-secondary,
    .modal-header.quickview-modal-header .btn-secondary,
    .quickview-modal-header .btn-outline-secondary,
    .quickview-modal-header .btn-secondary {
        color: #0F2C3F;
        background-color: rgba(255, 255, 255, 0.96);
        border-color: #ffffff;
        box-shadow: 0 0.35rem 0.8rem rgba(15, 44, 63, 0.20);
    }

    .modal-header.quickview-modal-header .avatar-lifesaver,
    .quickview-modal-header .avatar-lifesaver {
        box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.95), 0 0.45rem 1rem rgba(15, 44, 63, 0.26);
    }

.students-index-page {
    --students-card-radius: 1rem;
    --students-card-border: rgba(15, 23, 42, 0.08);
    --students-muted: #64748b;
    --students-title: #0F2C3F;
}

.students-browse-hero {
    padding: 1.1rem;
    border-radius: 1rem;
    background: var(--sos-blue-white-blue-gradient);
}

    .students-browse-hero.quickview-header::before {
        background: var(--sos-blue-white-blue-overlay);
    }

.students-browse-hero-copy {
    max-width: 56rem;
    margin-bottom: 1rem;
}

.students-browse-filter {
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: .95rem;
    background: rgba(255, 255, 255, .92);
    padding: .85rem;
    box-shadow: 0 .45rem 1rem rgba(15, 44, 63, .12);
}

.students-browse-filter-grid {
    display: grid;
    grid-template-columns: minmax(14rem, 1.35fr) repeat(3, minmax(10rem, 1fr)) auto;
    gap: .7rem;
    align-items: end;
}

.students-browse-label {
    margin-bottom: .22rem;
    color: var(--students-muted);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.1;
    text-transform: uppercase;
}

.students-browse-filter-actions {
    display: flex;
    gap: .45rem;
    align-items: center;
    white-space: nowrap;
}

.students-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.students-results-count {
    color: var(--students-title);
    font-size: .98rem;
    font-weight: 600;
}

.students-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .35rem;
}

.students-filter-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(15, 44, 63, .06);
    color: var(--students-title);
    padding: .2rem .55rem;
    font-size: .74rem;
    font-weight: 500;
}

.students-browse-card {
    overflow: hidden;
    border: 1px solid var(--students-card-border);
    border-radius: var(--students-card-radius);
    box-shadow: 0 .25rem .9rem rgba(15, 23, 42, .045);
    transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

    .students-browse-card:hover {
        transform: translateY(-2px);
        border-color: rgba(15, 44, 63, .18);
        box-shadow: 0 .7rem 1.25rem rgba(15, 23, 42, .09);
    }

.students-card-top {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 13.6rem;
    padding: 1.35rem .85rem 1.05rem;
    background: linear-gradient(180deg, #d9ecfa 0%, #9fd0ee 34%, #5fa9d5 68%, var(--sos-blue) 100%);
    overflow: hidden;
}

    .students-card-top::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 1.1rem;
        height: 3.2rem;
        pointer-events: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' preserveAspectRatio='none'%3E%3Cpath d='M0 24 Q20 10 40 24 T80 24 T120 24 T160 24 L160 40 L0 40 Z' fill='white' fill-opacity='0.20'/%3E%3C/svg%3E");
        background-repeat: repeat-x;
        background-size: 10rem 3.2rem;
        opacity: .95;
    }

    .students-card-top::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: .2rem;
        height: 3.8rem;
        pointer-events: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 48' preserveAspectRatio='none'%3E%3Cpath d='M0 28 Q25 14 50 28 T100 28 T150 28 T200 28 L200 48 L0 48 Z' fill='white' fill-opacity='0.14'/%3E%3C/svg%3E");
        background-repeat: repeat-x;
        background-size: 12rem 3.8rem;
        opacity: .9;
    }

    .students-card-top > * {
        position: relative;
        z-index: 1;
    }

.students-index-page .students-card-avatar {
    width: 152px;
    height: 152px;
    padding: 30px;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .92), 0 .75rem 1.35rem rgba(15, 44, 63, .26);
}

    .students-index-page .students-card-avatar img {
        width: 92px;
        height: 92px;
    }

.students-card-live-badge {
    position: absolute;
    top: .7rem;
    right: .7rem;
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, .52);
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #842029;
    padding: .22rem .5rem;
    font-size: .68rem;
    font-weight: 600;
    line-height: 1.1;
    box-shadow: 0 .25rem .7rem rgba(15, 44, 63, .18);
}

.students-card-body {
    padding: .9rem .95rem .85rem;
}

.students-card-name {
    margin: 0;
    color: var(--students-title);
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -.01em;
}

.students-card-meta {
    display: grid;
    gap: .12rem;
    min-height: 2.55rem;
    margin-top: .35rem;
    color: var(--students-muted);
    font-size: .82rem;
    font-weight: 400;
    line-height: 1.35;
}

.students-card-snapshot {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: .45rem;
    margin-top: .8rem;
}

.students-card-stat {
    border: 1px solid rgba(15, 23, 42, .07);
    border-radius: .8rem;
    background: #fff;
    padding: .5rem .35rem;
    text-align: center;
}

    .students-card-stat.is-live {
        border-color: rgba(232, 29, 37, .20);
        background: linear-gradient(180deg, rgba(232, 29, 37, .08), #fff 76%);
    }

.students-card-stat-value {
    display: block;
    color: var(--students-title);
    font-size: .98rem;
    font-weight: 600;
    line-height: 1;
}

.students-card-stat.is-live .students-card-stat-value {
    color: var(--sos-red);
    font-size: 1.08rem;
}

.students-card-stat-label {
    display: block;
    margin-top: .2rem;
    color: var(--students-muted);
    font-size: .64rem;
    font-weight: 500;
    letter-spacing: .06em;
    line-height: 1;
    text-transform: uppercase;
}

.students-card-actions {
    display: flex;
    gap: .5rem;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid rgba(15, 23, 42, .06);
    background: #fff;
    padding: .75rem .95rem .9rem;
}

    .students-card-actions .btn {
        min-width: 0;
        font-weight: 500;
    }

.students-card-primary-action {
    flex: 1 1 auto;
}

.students-quickview-header {
    position: relative;
    isolation: isolate;
    border: 0;
    border-bottom: 1px solid rgba(15, 44, 63, .22);
    background: var(--sos-blue-white-blue-gradient) !important;
    overflow: hidden;
}

    .students-quickview-header::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background: var(--sos-blue-white-blue-overlay);
    }

    .students-quickview-header::after {
        content: "";
        position: absolute;
        inset: auto 0 0 0;
        height: 1px;
        background: rgba(255, 255, 255, .34);
        pointer-events: none;
    }

.students-quickview-header-layout {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    width: 100%;
}

.students-index-page .students-quickview-avatar {
    width: 92px;
    height: 92px;
    padding: 18px;
}

    .students-index-page .students-quickview-avatar img {
        width: 56px;
        height: 56px;
    }

.students-quickview-header-copy {
    min-width: 0;
    text-align: left;
}

.students-quickview-title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.35rem, 2.3vw, 1.65rem);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.05;
    text-shadow: 0 1px 2px rgba(15, 44, 63, .46);
}

.students-quickview-meta {
    max-width: 42rem;
    margin-top: .35rem;
    color: var(--sos-red) !important;
    font-size: .92rem;
    font-weight: 500;
    line-height: 1.42;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .65);
}

.students-index-page .quickview-header-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: .45rem;
    margin-top: .75rem;
}

.students-index-page .quickview-header-stat {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .32rem .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    border: 1px solid rgba(255, 255, 255, .30);
    color: #FAFAF7;
    line-height: 1;
    white-space: nowrap;
}

.students-index-page .quickview-header-stat-value {
    color: #fff;
    font-size: .86rem;
    font-weight: 600;
}

.students-index-page .quickview-header-stat-label {
    color: rgba(255, 255, 255, .92);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .03em;
}

.students-index-page .quickview-header-stat-sos {
    background: rgba(232, 29, 37, .24);
}

.students-quickview-body {
    background: linear-gradient(180deg, #f8fafc 0%, #fff 28%);
    padding: 1rem;
}

.students-quickview-section {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .3rem .9rem rgba(15, 23, 42, .045);
}

.students-quickview-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .8rem .9rem .65rem;
    border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.students-quickview-section-kicker {
    color: var(--students-muted);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.1;
    text-transform: uppercase;
}

.students-quickview-section-title {
    margin: .15rem 0 0;
    color: var(--students-title);
    font-size: .98rem;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.2;
}

.students-quickview-section-body {
    padding: .85rem .9rem .95rem;
}

.students-quickview-bio {
    color: #0f172a;
    font-size: .92rem;
    font-weight: 400;
    line-height: 1.5;
    white-space: pre-wrap;
}

.students-empty-note,
.students-anonymous-note {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    border: 1px solid rgba(15, 44, 63, .08);
    border-radius: .9rem;
    background: var(--sos-soft-gradient);
    color: var(--students-muted);
    padding: .75rem .85rem;
    font-size: .85rem;
    line-height: 1.4;
}

    .students-empty-note .bi,
    .students-anonymous-note .bi {
        color: var(--sos-blue);
        margin-top: .1rem;
    }

.students-anonymous-note-title {
    color: var(--students-title);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.25;
}

.students-anonymous-note-copy {
    margin-top: .15rem;
    font-size: .82rem;
    font-weight: 400;
    line-height: 1.4;
}

.students-index-page .quickview-links-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
}

    .students-index-page .quickview-links-list li + li {
        margin-top: .55rem;
    }

.students-index-page .quickview-link-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: .68rem .78rem;
}

.students-index-page .quickview-link-main {
    min-width: 0;
}

.students-index-page .quickview-link-label {
    display: block;
    margin-bottom: .15rem;
    color: var(--students-muted);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .07em;
    line-height: 1.1;
    text-transform: uppercase;
}

.students-index-page .quickview-link-title {
    display: block;
    color: var(--students-title);
    font-size: .92rem;
    font-weight: 500;
    line-height: 1.28;
    text-decoration: none;
}

    .students-index-page .quickview-link-title:hover {
        text-decoration: underline;
    }

.students-index-page .quickview-link-meta {
    flex-shrink: 0;
    color: var(--students-title);
    font-size: .78rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}

    .students-index-page .quickview-link-meta:hover {
        text-decoration: underline;
    }

.students-social-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.students-social-pill {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 999px;
    background: #fff;
    color: var(--students-title);
    padding: .35rem .62rem;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.1;
    text-decoration: none;
}

    .students-social-pill:hover {
        border-color: rgba(27, 117, 188, .24);
        background: rgba(27, 117, 188, .06);
        color: var(--students-title);
    }

.students-social-primary {
    border-radius: 999px;
    background: rgba(27, 117, 188, .1);
    color: var(--sos-blue);
    padding: .12rem .4rem;
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.students-quickview-footer {
    border-top: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
    padding: .85rem 1rem 1rem;
}

.students-pagination-wrap {
    margin-top: 1.25rem;
}

.students-pagination .page-link {
    color: var(--students-title);
    font-weight: 500;
}

.students-pagination .page-item.active .page-link {
    background-color: var(--sos-blue);
    border-color: var(--sos-blue);
    color: #fff;
}

@media (max-width: 1199.98px) {
    .students-browse-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .students-browse-search-field,
    .students-browse-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .students-browse-hero {
        padding: .95rem;
    }

    .students-browse-filter-grid,
    .students-quickview-header-layout {
        grid-template-columns: 1fr;
    }

    .students-quickview-header-copy,
    .students-quickview-header-stats {
        text-align: center;
        justify-content: center;
    }

    .students-index-page .quickview-header-stats {
        justify-content: center;
    }

    .students-index-page .students-quickview-avatar {
        margin: 0 auto;
    }

    .students-card-actions,
    .students-browse-filter-actions,
    .students-quickview-footer {
        flex-direction: column;
        align-items: stretch;
    }

        .students-card-actions .btn,
        .students-browse-filter-actions .btn,
        .students-quickview-footer .btn {
            width: 100%;
        }
}

@media (max-width: 575.98px) {
    .students-card-snapshot {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .students-index-page .quickview-link-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .students-index-page .quickview-link-meta {
        white-space: normal;
    }
}
