/* ScholarSight UI polish layer.
   Loaded directly so critical layout and accessibility fixes are available even
   when the Vite bundle has not been rebuilt on a deployment target. */

:root {
    --ss-prebook-pink: #f472b6;
    --ss-prebook-fuchsia: #d946ef;
    --ss-prebook-violet: #8b5cf6;
    --ss-prebook-ink: #0b1020;
    --ss-prebook-panel: #17152d;
    --ss-prebook-border: rgba(232, 121, 249, .36);
}

/* Shared card rhythm ------------------------------------------------------- */
.course-card-shell,
.degree-card-shell {
    height: 100%;
    box-shadow: 0 18px 44px -34px rgba(15, 23, 42, .46);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.course-card-shell:hover,
.degree-card-shell:hover {
    transform: translateY(-3px);
    box-shadow: 0 26px 58px -36px rgba(15, 23, 42, .58);
}

.dark .course-card-shell,
.dark .degree-card-shell {
    box-shadow: 0 22px 54px -38px rgba(0, 0, 0, .92);
}

.course-card-shell--prebook {
    color: #fff;
    border-color: rgba(232, 121, 249, .52) !important;
    background:
        radial-gradient(circle at 92% 92%, rgba(244, 114, 182, .22), transparent 34%),
        radial-gradient(circle at 12% 8%, rgba(139, 92, 246, .16), transparent 35%),
        linear-gradient(145deg, #111827 0%, #21162f 58%, #35183b 100%) !important;
    box-shadow: 0 24px 60px -38px rgba(217, 70, 239, .92);
}

.course-card-shell--prebook:hover {
    border-color: rgba(244, 114, 182, .75) !important;
    box-shadow: 0 30px 72px -38px rgba(217, 70, 239, .95);
}

.course-card-media,
.degree-card-media,
.course-price-media {
    isolation: isolate;
    background: #111827;
}

.course-card-body {
    min-height: 20rem;
}

.course-card-prebook-badge {
    box-shadow: 0 12px 28px -14px rgba(217, 70, 239, .9);
}

.course-card-price-row {
    min-height: 6.25rem;
}

.course-card-action-stack {
    min-width: 9rem;
}

/* Designed media fallback ------------------------------------------------- */
.course-media-fallback {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 100%;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: #f8fafc;
    background:
        linear-gradient(120deg, rgba(255,255,255,.05), transparent 38%),
        radial-gradient(circle at 82% 20%, rgba(34, 211, 238, .22), transparent 34%),
        radial-gradient(circle at 10% 92%, rgba(139, 92, 246, .25), transparent 36%),
        linear-gradient(145deg, #172033, #101827 58%, #21163d);
}

.course-media-fallback--prebook,
.prebook-theme .course-media-fallback {
    background:
        linear-gradient(120deg, rgba(255,255,255,.05), transparent 38%),
        radial-gradient(circle at 82% 18%, rgba(244, 114, 182, .30), transparent 34%),
        radial-gradient(circle at 10% 92%, rgba(139, 92, 246, .32), transparent 38%),
        linear-gradient(145deg, #17152d, #221535 58%, #3b173e);
}

.course-media-fallback__content {
    position: relative;
    z-index: 2;
    display: flex;
    max-width: 84%;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    text-align: center;
}

.course-media-fallback__icon {
    display: inline-flex;
    width: 3.75rem;
    height: 3.75rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 1rem;
    color: #67e8f9;
    background: rgba(255,255,255,.07);
    box-shadow: 0 18px 34px -20px rgba(0,0,0,.75);
    backdrop-filter: blur(10px);
}

.course-media-fallback--prebook .course-media-fallback__icon,
.prebook-theme .course-media-fallback__icon {
    color: #f0abfc;
}

.course-media-fallback__icon svg {
    width: 1.65rem;
    height: 1.65rem;
}

.course-media-fallback__eyebrow {
    font-size: .625rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.60);
}

.course-media-fallback__title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.35;
    color: rgba(255,255,255,.94);
}

.course-media-fallback__orb {
    position: absolute;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 999px;
}

.course-media-fallback__orb--one {
    right: -2.5rem;
    top: -3rem;
    width: 10rem;
    height: 10rem;
}

.course-media-fallback__orb--two {
    left: -2rem;
    bottom: -2.75rem;
    width: 7.5rem;
    height: 7.5rem;
}

/* Search cards ------------------------------------------------------------ */
.search-course-grid > * {
    min-width: 0;
    height: 100%;
}

.search-course-grid .course-card-shell,
.search-program-grid .degree-card-shell {
    min-height: 31rem;
}

.degree-card-shell .degree-card-media {
    min-height: 13.5rem;
}

.degree-card-content {
    min-height: 14.75rem;
}

.degree-card-wishlist svg {
    width: 1rem;
    height: 1rem;
}

/* Pre-book detail page ---------------------------------------------------- */
.prebook-theme {
    background:
        radial-gradient(circle at 10% 8%, rgba(139, 92, 246, .10), transparent 28%),
        radial-gradient(circle at 92% 32%, rgba(217, 70, 239, .08), transparent 28%),
        #070b1b;
}

.prebook-theme .prebook-content-card {
    border-radius: 1.25rem !important;
    border-color: rgba(232, 121, 249, .28) !important;
    background:
        radial-gradient(circle at 96% 4%, rgba(232, 121, 249, .13), transparent 32%),
        linear-gradient(135deg, rgba(25, 20, 47, .98), rgba(42, 24, 62, .97)) !important;
    box-shadow: 0 24px 68px -48px rgba(217, 70, 239, .9);
}

.prebook-theme .prebook-content-card > * {
    position: relative;
    z-index: 1;
}

.prebook-theme .prebook-content-card .prebook-section-kicker {
    color: #f0abfc !important;
}

.prebook-theme .prebook-content-card .prebook-section-divider {
    border-color: rgba(255,255,255,.12) !important;
}

.prebook-theme .prebook-learning-outcome {
    border-color: rgba(255,255,255,.11) !important;
    background: rgba(6, 10, 25, .28) !important;
}

.prebook-theme .prebook-learning-outcome__icon {
    color: #f0abfc !important;
    background: rgba(217, 70, 239, .16) !important;
}

.prebook-theme .prebook-curriculum-section {
    border-color: rgba(255,255,255,.12) !important;
    background: rgba(6, 10, 25, .25) !important;
}

.prebook-theme .prebook-curriculum-section__header {
    background: rgba(255,255,255,.035) !important;
}

.prebook-theme .prebook-curriculum-section__header:hover {
    background: rgba(255,255,255,.07) !important;
}

.prebook-theme .prebook-curriculum-lecture {
    border-color: rgba(255,255,255,.09) !important;
    background: rgba(3, 7, 18, .10) !important;
}

.prebook-theme .prebook-curriculum-lecture:hover {
    background: rgba(255,255,255,.045) !important;
}

.prebook-access-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border: 1px solid rgba(232,121,249,.46);
    border-radius: 999px;
    padding: .25rem .55rem;
    font-size: .58rem;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #f5d0fe;
    background: rgba(217,70,239,.14);
    white-space: nowrap;
}

.prebook-access-badge svg {
    width: .75rem;
    height: .75rem;
}

/* Purchase widget --------------------------------------------------------- */
.course-price-widget {
    box-shadow: 0 24px 64px -40px rgba(15, 23, 42, .72);
}

.prebook-theme .course-price-widget {
    border-color: rgba(232,121,249,.28) !important;
    color: #fff;
    background: linear-gradient(180deg, rgba(13,18,37,.98), rgba(10,15,32,.98)) !important;
    box-shadow: 0 26px 72px -40px rgba(217,70,239,.72);
}

.course-price-media {
    min-height: 13.75rem;
}

.course-price-media > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.course-price-media__shade {
    position: absolute;
    inset: 0;
    z-index: 10;
    background: linear-gradient(to top, rgba(5,8,20,.86), transparent 55%);
    pointer-events: none;
}

.course-price-preview-button {
    position: absolute;
    z-index: 25;
    left: 50%;
    top: 50%;
    display: inline-flex;
    min-height: 2.9rem;
    transform: translate(-50%, -50%);
    align-items: center;
    justify-content: center;
    gap: .55rem;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    padding: .75rem 1rem;
    font-size: .72rem;
    font-weight: 800;
    color: #fff;
    background: rgba(9,14,29,.76);
    box-shadow: 0 14px 36px -18px rgba(0,0,0,.95);
    backdrop-filter: blur(12px);
    transition: transform .2s ease, background-color .2s ease;
}

.course-price-preview-button:hover {
    transform: translate(-50%, -50%) scale(1.035);
    background: rgba(17,24,39,.92);
}

.course-price-preview-button svg {
    width: 1rem;
    height: 1rem;
}

.prebook-purchase-summary {
    border-color: rgba(232,121,249,.38) !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(244,114,182,.16), transparent 36%),
        linear-gradient(145deg, rgba(31,19,52,.96), rgba(13,18,37,.96)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 18px 44px -34px rgba(217,70,239,.8);
}

.prebook-purchase-summary__amount {
    color: #fff !important;
    text-shadow: 0 1px 20px rgba(232,121,249,.15);
}

.prebook-lifetime-badge {
    border-color: rgba(244,114,182,.55) !important;
    color: #fce7f3 !important;
    background: rgba(217,70,239,.18) !important;
}

.course-includes-item {
    min-height: 3.35rem;
    border-color: rgba(148,163,184,.14) !important;
    background: rgba(148,163,184,.055) !important;
}

.course-includes-icon {
    color: #f0abfc !important;
    background: rgba(217,70,239,.15) !important;
}

.course-includes-icon svg,
.course-moneyback-icon svg {
    width: .95rem;
    height: .95rem;
}

.course-moneyback-card {
    border-color: rgba(232,121,249,.26) !important;
    background: linear-gradient(135deg, rgba(217,70,239,.09), rgba(15,23,42,.30)) !important;
}

.course-moneyback-icon {
    color: #f0abfc !important;
    background: rgba(217,70,239,.15) !important;
}

/* Admin ------------------------------------------------------------------- */
.admin-course-status-tabs [role="tab"] {
    min-height: 2.45rem;
}

.admin-course-status-count {
    display: inline-flex;
    min-width: 1.45rem;
    height: 1.45rem;
    align-items: center;
    justify-content: center;
    margin-left: .35rem;
    border-radius: 999px;
    padding: 0 .4rem;
    font-size: .66rem;
    font-weight: 750;
    color: rgba(113,113,122,.95);
    background: rgba(161,161,170,.14);
}

.dark .admin-course-status-count {
    color: rgba(228,228,231,.76);
    background: rgba(255,255,255,.08);
}

.admin-course-status-tab--prebook .admin-course-status-count {
    color: #fbcfe8;
    background: rgba(217,70,239,.20);
}

.admin-prebook-action,
.admin-prebook-status {
    display: flex;
    width: 100%;
    min-height: 2.85rem;
    align-items: center;
    gap: .65rem;
    border: 1px solid rgba(236,72,153,.58);
    border-radius: .75rem;
    padding: .7rem .85rem;
    font-size: .82rem;
    font-weight: 750;
    color: #f9a8d4;
    background: linear-gradient(135deg, rgba(190,24,93,.12), rgba(126,34,206,.16));
    box-shadow: 0 12px 28px -22px rgba(236,72,153,.95);
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}

.admin-prebook-action:hover {
    transform: translateY(-1px);
    border-color: rgba(244,114,182,.9);
    background: linear-gradient(135deg, rgba(190,24,93,.20), rgba(126,34,206,.24));
}

.admin-prebook-status {
    border-color: rgba(244,114,182,.42);
    background: rgba(190,24,93,.10);
}

.admin-prebook-action svg,
.admin-prebook-status svg {
    width: 1rem;
    height: 1rem;
    flex: none;
}

.admin-prebook-live-date {
    padding: .1rem .25rem 0;
    font-size: .72rem;
    font-weight: 550;
    line-height: 1.4;
    color: #a1a1aa;
}

.admin-launch-panel {
    border-color: rgba(236,72,153,.28) !important;
    background:
        radial-gradient(circle at 96% 0%, rgba(236,72,153,.11), transparent 30%),
        rgba(24,24,27,.55) !important;
}

.admin-launch-guidance {
    border-color: rgba(244,114,182,.35) !important;
    color: #fce7f3 !important;
    background: rgba(190,24,93,.10) !important;
}

.admin-launch-button {
    min-height: 2.75rem !important;
    border: 1px solid rgba(244,114,182,.62) !important;
    color: #fff !important;
    background: linear-gradient(135deg, #c026d3, #ec4899) !important;
    box-shadow: 0 14px 30px -18px rgba(236,72,153,.95) !important;
}

.admin-launch-button:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
}

/* Responsive -------------------------------------------------------------- */
@media (max-width: 767px) {
    .course-card-body {
        min-height: 18.5rem;
    }

    .search-course-grid .course-card-shell,
    .search-program-grid .degree-card-shell {
        min-height: auto;
    }

    .course-card-price-row {
        min-height: auto;
    }

    .course-card-action-stack {
        min-width: 8.25rem;
    }

    .course-price-media {
        min-height: 12rem;
    }

    .prebook-access-badge {
        font-size: .54rem;
        padding: .22rem .45rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .course-card-shell,
    .degree-card-shell,
    .course-price-preview-button,
    .admin-prebook-action,
    .admin-launch-button {
        transition: none !important;
    }
}

.course-media-fallback.hidden {
    display: none;
}

/* Final visual QA overrides ----------------------------------------------- */
.ui-page-shell.prebook-theme {
    color: #f8fafc;
    background:
        radial-gradient(circle at 8% 4%, rgba(139, 92, 246, .20), transparent 30rem),
        radial-gradient(circle at 96% 30%, rgba(217, 70, 239, .16), transparent 34rem),
        linear-gradient(180deg, #090d1f 0%, #0b1022 46%, #080c1a 100%) !important;
}

.ui-page-shell.prebook-theme .prebook-content-card {
    color: #f8fafc !important;
    border-color: rgba(232, 121, 249, .32) !important;
    background:
        radial-gradient(circle at 96% 0%, rgba(232, 121, 249, .13), transparent 30%),
        linear-gradient(140deg, rgba(27, 21, 50, .99), rgba(47, 25, 67, .98)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .045),
        0 28px 74px -54px rgba(217, 70, 239, .92) !important;
}

.ui-page-shell.prebook-theme .prebook-content-card h1,
.ui-page-shell.prebook-theme .prebook-content-card h2,
.ui-page-shell.prebook-theme .prebook-content-card h3,
.ui-page-shell.prebook-theme .prebook-content-card h4,
.ui-page-shell.prebook-theme .prebook-content-card .text-surface-900,
.ui-page-shell.prebook-theme .prebook-content-card .dark\:text-white {
    color: #fff !important;
}

.ui-page-shell.prebook-theme .prebook-content-card .text-surface-700,
.ui-page-shell.prebook-theme .prebook-content-card .text-surface-600,
.ui-page-shell.prebook-theme .prebook-content-card .dark\:text-surface-200,
.ui-page-shell.prebook-theme .prebook-content-card .dark\:text-surface-300,
.ui-page-shell.prebook-theme .prebook-content-card .prose,
.ui-page-shell.prebook-theme .prebook-content-card .prose p,
.ui-page-shell.prebook-theme .prebook-content-card .prose li {
    color: rgba(241, 245, 249, .82) !important;
}

.ui-page-shell.prebook-theme .prebook-content-card .text-surface-500,
.ui-page-shell.prebook-theme .prebook-content-card .text-surface-400 {
    color: rgba(203, 213, 225, .70) !important;
}

.ui-page-shell.prebook-theme .prebook-content-card [class*="from-white"] {
    --tw-gradient-from: rgba(47, 25, 67, .98) !important;
}

.prebook-theme .course-price-widget > .space-y-2\.5 > div > .h-px {
    background: rgba(255, 255, 255, .10) !important;
}

.prebook-theme .course-price-widget [class*="text-surface-900"],
.prebook-theme .course-price-widget [class*="dark:text-white"] {
    color: #fff !important;
}

.prebook-theme .course-price-widget [class*="text-surface-500"],
.prebook-theme .course-price-widget [class*="dark:text-surface-400"] {
    color: rgba(203, 213, 225, .72) !important;
}

.prebook-theme .course-price-widget [class*="text-surface-400"],
.prebook-theme .course-price-widget [class*="dark:text-surface-500"] {
    color: rgba(148, 163, 184, .78) !important;
}

.prebook-theme .course-includes-item {
    border-color: rgba(255, 255, 255, .10) !important;
    background: rgba(255, 255, 255, .045) !important;
}

.prebook-theme .course-includes-item p:first-child {
    color: #f8fafc !important;
}

.prebook-theme .course-includes-item p:last-child {
    color: rgba(203, 213, 225, .68) !important;
}

.prebook-theme .course-moneyback-card p:first-child {
    color: #f8fafc !important;
}

.prebook-theme .course-moneyback-card p:nth-child(2) {
    color: rgba(203, 213, 225, .72) !important;
}

.prebook-theme .course-price-widget > .space-y-2\.5 > div > p[class*="uppercase"] {
    color: rgba(203, 213, 225, .65) !important;
}

.course-price-media .course-media-fallback__content {
    transform: translateY(.65rem);
}

.course-price-media .course-media-fallback__icon {
    width: 4.25rem;
    height: 4.25rem;
    border-radius: 1.25rem;
}

.course-price-media .course-media-fallback__eyebrow {
    color: rgba(255, 255, 255, .72);
}

.course-price-media .course-media-fallback__title {
    color: rgba(255, 255, 255, .94);
}

.search-course-grid .course-media-fallback__content,
.search-program-grid .course-media-fallback__content {
    gap: .7rem;
}

.search-course-grid .course-media-fallback__eyebrow,
.search-program-grid .course-media-fallback__eyebrow {
    color: rgba(255, 255, 255, .76);
}

.course-card-shell--prebook .course-card-body {
    background: linear-gradient(180deg, rgba(34, 20, 49, .94), rgba(47, 22, 53, .98));
}

.course-card-shell--prebook .course-card-price-row {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-top: 1rem;
}

.course-card-shell--prebook .course-card-action-stack a,
.course-card-shell--prebook .course-card-action-stack button {
    min-width: 8.75rem;
    justify-content: center;
}

.admin-course-status-tabs {
    gap: .15rem;
    border-radius: .9rem;
}

.admin-course-status-tabs [role="tab"][aria-selected="true"] .admin-course-status-count {
    color: currentColor;
    background: rgba(255, 255, 255, .15);
}

.admin-course-status-tab--prebook[aria-selected="true"] {
    box-shadow: 0 10px 28px -20px rgba(236, 72, 153, .9);
}

.admin-launch-panel .admin-launch-guidance {
    max-width: 28rem;
}

@media (max-width: 640px) {
    .ui-page-shell.prebook-theme {
        background:
            radial-gradient(circle at 15% 4%, rgba(139, 92, 246, .20), transparent 20rem),
            linear-gradient(180deg, #090d1f, #080c1a) !important;
    }

    .prebook-theme .course-includes-item {
        align-items: flex-start;
    }

    .prebook-theme .course-includes-item p {
        white-space: normal !important;
    }

    .admin-course-status-tabs {
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .admin-course-status-tabs::-webkit-scrollbar {
        display: none;
    }
}

/* Preview media layout: keep the action clear of decorative artwork. */
.course-price-media:has(.course-price-preview-button) .course-media-fallback__icon {
    display: none;
}

.course-price-media:has(.course-price-preview-button) .course-media-fallback__content {
    transform: translateY(2.6rem);
    gap: .35rem;
}

.course-price-media:has(.course-price-preview-button) .course-price-preview-button {
    top: 43%;
}

.course-price-media:has(.course-price-preview-button) .course-media-fallback__title {
    max-width: 90%;
    font-size: .82rem;
    color: rgba(255, 255, 255, .78);
}

/* Responsive course-detail QA ------------------------------------------------ */
.course-detail-hero__image {
    transition: opacity .3s ease, filter .3s ease;
}

@media (max-width: 640px) {
    .course-detail-hero {
        padding-top: 7.25rem;
        padding-bottom: 3rem;
    }

    .course-detail-hero__image {
        opacity: .34;
        filter: saturate(.7) brightness(.58) contrast(1.04);
        object-position: 50% 30%;
    }

    .course-detail-hero h1 {
        max-width: 22rem;
        font-size: clamp(2.15rem, 10vw, 2.75rem);
        line-height: 1.02;
        letter-spacing: -.045em;
        text-wrap: balance;
        text-shadow: 0 2px 20px rgba(0, 0, 0, .45);
    }

    .prebook-curriculum-section__header {
        align-items: flex-start;
        gap: .75rem;
        padding: 1rem !important;
    }

    .prebook-curriculum-section__identity {
        width: 100%;
        align-items: flex-start;
    }

    .prebook-curriculum-section__identity > div {
        flex-direction: column;
        align-items: flex-start;
        gap: .5rem;
    }

    .prebook-curriculum-section__title {
        width: 100%;
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
        line-height: 1.35;
    }

    .prebook-curriculum-lecture {
        align-items: flex-start !important;
        gap: .65rem;
        padding: .9rem 1rem !important;
    }

    .prebook-curriculum-lecture__content {
        flex: 1 1 auto;
        align-items: flex-start;
    }

    .prebook-curriculum-lecture__details {
        flex-direction: column;
        align-items: flex-start;
        gap: .45rem;
    }

    .prebook-curriculum-lecture__title {
        width: 100%;
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
        line-height: 1.35;
    }

    .prebook-curriculum-lecture__badges {
        flex-wrap: wrap;
    }

    .prebook-access-badge {
        max-width: 100%;
        white-space: nowrap;
    }

    .course-card-price-row {
        flex-direction: column;
        align-items: stretch !important;
        gap: .9rem;
    }

    .course-card-action-stack {
        width: 100%;
        min-width: 0;
        align-items: stretch;
    }

    .course-card-action-stack a,
    .course-card-action-stack button {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .course-detail-hero {
        background:
            radial-gradient(circle at 88% 14%, rgba(217, 70, 239, .18), transparent 15rem),
            radial-gradient(circle at 16% 74%, rgba(124, 58, 237, .16), transparent 18rem),
            linear-gradient(145deg, #10152b 0%, #15112d 52%, #0b1022 100%);
    }

    .course-detail-hero__image {
        display: none;
    }
}
