/* Student learning experience layer.
   Keeps educational screens calm, consistent and accessible without coupling
   feature components to one-off Bootstrap overrides. */

.student-page {
    --student-ink: #10233f;
    --student-muted: #66758a;
    --student-line: #dfe7f1;
    --student-primary: #2155d9;
    --student-primary-dark: #173b9c;
    --student-surface: #fff;
    --student-soft: #f5f8fc;
    max-width: 1500px;
    margin-inline: auto;
    color: var(--student-ink);
}

.student-page .page-hero,
.student-page .nahj-page-hero {
    overflow: hidden;
    position: relative;
    border: 0;
    border-radius: 1.45rem;
    background: linear-gradient(125deg, #112f6b, #1f58c9 58%, #177fad);
    color: #fff;
    box-shadow: 0 18px 45px rgba(25, 68, 155, .18);
}

.student-page .page-hero::after,
.student-page .nahj-page-hero::after {
    content: "";
    position: absolute;
    inset: auto -4rem -7rem auto;
    width: 16rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    pointer-events: none;
}

.student-page .page-hero :is(h1, h2, h3, p, span, i),
.student-page .nahj-page-hero :is(h1, h2, h3, p, span, i) { color: inherit; }
.student-page .page-hero .btn-outline-secondary,
.student-page .page-hero .btn-outline-primary,
.student-page .nahj-page-hero .btn-outline-secondary,
.student-page .nahj-page-hero .btn-outline-primary { border-color: rgba(255,255,255,.42); color: #fff; background: rgba(255,255,255,.08); }

.student-page .panel,
.student-page.panel,
.student-page .section-card,
.student-page .nahj-section-card,
.student-page .card {
    border-color: var(--student-line);
    border-radius: 1.1rem;
    box-shadow: 0 8px 28px rgba(24, 49, 86, .065);
}

.student-page .panel-header,
.student-page .section-card__header,
.student-page .nahj-section-card__header {
    border-bottom-color: #edf1f6;
    background: linear-gradient(180deg, #fff, #fbfcfe);
}

.student-page .btn {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    border-radius: .72rem;
    font-weight: 750;
}

.student-page .btn-sm { min-height: 34px; }
.student-page .btn-primary { border-color: var(--student-primary); background: var(--student-primary); }
.student-page .btn-primary:hover { border-color: var(--student-primary-dark); background: var(--student-primary-dark); }
.student-page .btn-outline-primary { border-color: #b7c9ec; color: var(--student-primary-dark); background: #fff; }
.student-page .btn-outline-primary:hover { border-color: var(--student-primary); color: #fff; background: var(--student-primary); }

.student-page .form-control,
.student-page .form-select {
    min-height: 44px;
    border-color: #cfd9e6;
    border-radius: .72rem;
    background-color: #fff;
}
.student-page textarea.form-control { min-height: 110px; }
.student-page :is(.form-control, .form-select):focus { border-color: #6f97e8; box-shadow: 0 0 0 .22rem rgba(33, 85, 217, .13); }

.student-page .nahj-list { display: grid; gap: .6rem; }
.student-page .nahj-list-item {
    min-height: 72px;
    padding: .75rem;
    border: 1px solid var(--student-line);
    border-radius: .9rem;
    background: #fff;
    transition: transform .18s, border-color .18s, box-shadow .18s;
}
.student-page .nahj-list-item:hover { transform: translateY(-2px); border-color: #adc3ee; box-shadow: 0 9px 22px rgba(24, 67, 145, .08); }
.student-page .nahj-list-item__icon { flex: 0 0 auto; width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: .78rem; background: #eaf1ff; color: var(--student-primary); }
.student-page .nahj-list-item__title { color: var(--student-ink); font-weight: 800; }
.student-page .nahj-list-item__meta { color: var(--student-muted); }

.student-page .table-responsive { border: 1px solid var(--student-line); border-radius: 1rem; }
.student-page .table { margin: 0; }
.student-page .table thead th { padding: .85rem; border-bottom-color: var(--student-line); background: #f3f6fb; color: #43536a; font-size: .78rem; font-weight: 850; white-space: nowrap; }
.student-page .table tbody td { padding: .85rem; border-bottom-color: #edf1f6; }
.student-page .table tbody tr:last-child td { border-bottom: 0; }
.student-page .table-hover tbody tr:hover > * { --bs-table-bg-state: #f7faff; }

.student-page--courses .student-dashboard__courses-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.student-page--courses .nahj-course-card { overflow: hidden; min-height: 340px; border: 1px solid var(--student-line); border-radius: 1.2rem; background: #fff; box-shadow: 0 10px 30px rgba(22, 53, 98, .07); transition: transform .2s, border-color .2s, box-shadow .2s; }
.student-page--courses .nahj-course-card:hover { transform: translateY(-5px); border-color: #a7bfe9; box-shadow: 0 18px 36px rgba(25, 70, 150, .13); }
.student-page--courses .nahj-course-card__cover { min-height: 130px; background: linear-gradient(140deg, #173d93, #197fae); }
.student-page--courses .progress { height: .48rem; border-radius: 999px; background: #e7edf5; }
.student-page--courses .progress-bar { border-radius: inherit; background: linear-gradient(90deg, #2155d9, #18a1ae); }

.student-page--offers .student-offer-card { overflow: hidden; position: relative; border: 1px solid var(--student-line); box-shadow: none !important; transition: transform .2s, border-color .2s, box-shadow .2s; }
.student-page--offers .student-offer-card::before { content: ""; display: block; height: .32rem; background: linear-gradient(90deg, #2155d9, #18a1ae); }
.student-page--offers .student-offer-card:hover { transform: translateY(-5px); border-color: #a9c0eb; box-shadow: 0 17px 34px rgba(24, 66, 145, .12) !important; }
.student-page--offers .student-offer-card .card-body { padding: 1.2rem; }
.student-page--offers .student-offer-card .card-title { color: var(--student-ink); font-weight: 850; line-height: 1.55; }

.student-page--assessment.panel { overflow: clip; }
.student-page--assessment .panel-header { position: sticky; z-index: 10; inset-block-start: 0; }
.student-page--assessment fieldset,
.student-page--assessment .question-card { border-radius: 1rem; border-color: var(--student-line); }

.student-page--focus { max-width: 1100px; }
.student-page--communication { min-height: calc(100vh - 150px); }
.student-page--results .nahj-metrics-grid > * { border: 1px solid var(--student-line); border-radius: 1rem; box-shadow: none; }
.student-page--live .live-session-grid { grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 1rem; }
.student-page--live .live-session-card { border: 1px solid var(--student-line); border-radius: 1.15rem; background: #fff; box-shadow: 0 10px 28px rgba(20, 51, 93, .07); }
.student-page--live .live-session-card__icon { color: #c63636; background: #feeceb; }

.student-page :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #f5bc38; outline-offset: 3px; }

@media (max-width: 767px) {
    .student-page .page-hero,
    .student-page .nahj-page-hero { border-radius: 1.05rem; }
    .student-page .nahj-list-item { align-items: flex-start; flex-wrap: wrap; }
    .student-page .nahj-list-item .btn { width: 100%; }
    .student-page .table-responsive { border-radius: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
    .student-page *, .student-page *::before, .student-page *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
