:root {
  --brand: #0b6b58;
  --brand-dark: #075246;
  --brand-deep: #043b33;
  --brand-soft: #e8f6f2;
  --accent: #d79a2b;
  --ink: #172a2a;
  --surface: #f3f8f6;
  --landing-radius: 1.35rem;
  --landing-shadow: 0 1.1rem 3rem rgba(4, 59, 51, .1);
}

.protected-video-shell { -webkit-user-select:none;user-select:none; }
.external-player-shell { position:relative;aspect-ratio:16/9; }
.external-player-shell iframe { position:absolute;inset:0;width:100%;height:100%; }
.external-player-shell iframe[data-provider="Vimeo"] { pointer-events:none; }
.external-player-controls { position:absolute;inset:auto 0 0;z-index:2;display:flex;align-items:center;gap:.65rem;min-height:52px;padding:.55rem .75rem;color:#fff;background:rgba(2,30,26,.9);direction:ltr; }
.external-player-controls button { display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;padding:0;color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:transparent; }
.external-player-controls button:hover,.external-player-controls button:focus-visible { color:#021e1a;background:#fff; }
.external-player-controls input { min-width:80px;flex:1;accent-color:#d8a72d; }
.external-player-controls [data-player-time] { min-width:48px;text-align:center;font-variant-numeric:tabular-nums; }

@font-face {
  font-family: "Cairo";
  src: url("../fonts/cairo/Cairo-Variable.ttf") format("truetype-variations");
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
}

html {
  font-size: 16px;
  min-height: 100%;
}

body {
  color: var(--ink);
  background: #fff;
  min-height: 100vh;
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
}

html[lang^="ar"] body { font-family: Tahoma, "Segoe UI", Arial, sans-serif; }

.app-navbar { position: relative; z-index: 30; min-height: 78px; padding: 0; color: #fff; background: linear-gradient(120deg,var(--brand-deep),var(--brand-dark)); box-shadow: 0 .65rem 1.8rem rgba(4,59,51,.18); }
html[lang^="ar"] .app-navbar { font-family: "Cairo", Tahoma, Arial, sans-serif; }
.app-navbar-brand { display: inline-flex; align-items: center; gap: .65rem; max-width: 18rem; color: #fff !important; font-weight: 800; line-height: 1.2; white-space: normal; }
.app-navbar-logo { display:block; width:auto; max-width:210px; height:58px; padding:.25rem .45rem; object-fit:contain; border-radius:.65rem; background:rgba(255,255,255,.94); }
.app-brand-mark { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; flex: 0 0 2.7rem; color: var(--brand-deep); background: #fff; border-radius: .8rem; box-shadow: 0 .3rem .9rem rgba(0,0,0,.2); font-size: .7rem; letter-spacing: .08em; }
.app-navbar .navbar-toggler { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.94); }
.app-navbar-primary { align-items: center; gap: .15rem; }
.app-navbar .nav-link { min-height: 46px; display: inline-flex; align-items: center; padding: .6rem .8rem !important; color: rgba(255,255,255,.92) !important; border: 0; border-radius: .65rem; background: transparent; font-size: 1.125rem; font-weight: 600; line-height: 1.5; }
.app-navbar .nav-link:hover,.app-navbar .nav-link:focus,.app-navbar .nav-link.active { color: #fff !important; background: rgba(255,255,255,.13); }
.app-navbar .app-admin-trigger { color: #153b35 !important; background: #f2c45e; }
.app-navbar .app-admin-trigger:hover,.app-navbar .app-admin-trigger:focus { color: #153b35 !important; background: #ffd77b; }
.app-navbar .dropdown-menu { min-width: 15rem; padding: .6rem; border: 1px solid rgba(4,59,51,.12); border-radius: .9rem; box-shadow: 0 1rem 2.5rem rgba(3,45,39,.22); }
.app-navbar .dropdown-item { padding: .65rem .8rem; border-radius: .55rem; color: #21443e; font-weight: 600; }
.app-navbar .dropdown-item:hover,.app-navbar .dropdown-item:focus { color: var(--brand-deep); background: var(--brand-soft); }
.app-navbar-actions { margin-inline-start: .65rem; padding-inline-start: .65rem; border-inline-start: 1px solid rgba(255,255,255,.22); }
.app-navbar-actions form { margin: 0; }
.app-navbar-actions .btn { white-space: nowrap; }
.app-header-action { padding: .45rem .65rem; color: rgba(255,255,255,.9); font-size: .95rem; font-weight: 650; }
.app-header-action:hover,.app-header-action:focus { color: #fff; background: rgba(255,255,255,.12); }
.app-navbar-actions .btn-outline-secondary,.app-navbar-actions .btn-outline-primary { color: #fff; border-color: rgba(255,255,255,.65); }
.app-navbar-actions .btn-outline-secondary:hover,.app-navbar-actions .btn-outline-primary:hover { color: var(--brand-deep); background: #fff; }
@media (max-width: 1199.98px) {
  .app-navbar .navbar-collapse { margin-top: .75rem; padding: 1rem; border-top: 1px solid rgba(255,255,255,.18); }
  .app-navbar-primary { align-items: stretch; }
  .app-navbar .nav-link { width: 100%; justify-content: space-between; }
  .app-navbar-actions { flex-wrap: wrap; margin: .75rem 0 0; padding: .75rem 0 0; border-inline-start: 0; border-top: 1px solid rgba(255,255,255,.18); }
}

.btn-primary {
  --bs-btn-bg: var(--brand);
  --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand-dark);
  --bs-btn-hover-border-color: var(--brand-dark);
}

.text-primary,
.navbar-brand {
  color: var(--brand) !important;
}

.hero-section {
  background:
    radial-gradient(circle at 15% 15%, rgba(11, 107, 88, .12), transparent 30rem),
    linear-gradient(180deg, #fff, var(--surface));
}

.py-lg-6 {
  padding-top: 7rem;
  padding-bottom: 7rem;
}

.eyebrow {
  display: inline-flex;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: rgba(11, 107, 88, .1);
  color: var(--brand-dark);
  font-weight: 700;
}

.foundation-card,
.auth-card {
  border: 1px solid rgba(11, 107, 88, .16);
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 1.25rem 3rem rgba(8, 58, 50, .1);
}

.auth-card {
  max-width: 32rem;
}

.form-card {
  max-width: 56rem;
  border: 1px solid rgba(11, 107, 88, .16);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 1rem 2.5rem rgba(8, 58, 50, .08);
}

.filter-panel {
  padding: 1rem;
  border-radius: 1rem;
  background: var(--surface);
}

.feature-item {
  padding: 1rem 0;
  font-weight: 650;
  border-bottom: 1px solid rgba(11, 107, 88, .12);
}

.feature-item:last-child {
  border-bottom: 0;
}

.course-catalogue-card {
  transition: transform .18s ease, box-shadow .18s ease;
}

.course-catalogue-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 1.25rem 2.75rem rgba(8, 58, 50, .14) !important;
}

.course-catalogue-card .card-img-top {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.course-description {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.portal-card {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  height: 100%;
  padding: 1.5rem;
  color: var(--ink);
  text-decoration: none;
  border: 1px solid rgba(11, 107, 88, .16);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 .75rem 2rem rgba(8, 58, 50, .07);
  transition: transform .15s ease, box-shadow .15s ease;
}

.portal-card:hover {
  color: var(--brand-dark);
  transform: translateY(-2px);
  box-shadow: 0 1rem 2.5rem rgba(8, 58, 50, .12);
}

.portal-card span {
  color: #5d6f6c;
}

.form-control:focus,
.form-check-input:focus,
.btn:focus-visible,
.nav-link:focus-visible {
  border-color: var(--brand);
  box-shadow: 0 0 0 .25rem rgba(11, 107, 88, .2);
}

@media (max-width: 991.98px) {
  .py-lg-6 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

.skip-link { position: fixed; inset-block-start: .5rem; inset-inline-start: .5rem; z-index: 2000; padding: .65rem 1rem; background: #fff; color: var(--brand-dark); border-radius: .5rem; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.landing-body { --landing-heading-font: "Segoe UI", Tahoma, Arial, sans-serif; --landing-subtitle-font: "Segoe UI", Tahoma, Arial, sans-serif; --landing-body-font: "Segoe UI", Tahoma, Arial, sans-serif; background: #fff; font-family: var(--landing-body-font); }
.landing-heading-font-cairo { --landing-heading-font: "Cairo", Tahoma, Arial, sans-serif; }
.landing-heading-font-tahoma { --landing-heading-font: Tahoma, "Segoe UI", Arial, sans-serif; }
.landing-heading-font-arial { --landing-heading-font: Arial, Tahoma, sans-serif; }
.landing-subtitle-font-cairo { --landing-subtitle-font: "Cairo", Tahoma, Arial, sans-serif; }
.landing-subtitle-font-tahoma { --landing-subtitle-font: Tahoma, "Segoe UI", Arial, sans-serif; }
.landing-subtitle-font-arial { --landing-subtitle-font: Arial, Tahoma, sans-serif; }
.landing-body-font-cairo { --landing-body-font: "Cairo", Tahoma, Arial, sans-serif; }
.landing-body-font-tahoma { --landing-body-font: Tahoma, "Segoe UI", Arial, sans-serif; }
.landing-body-font-arial { --landing-body-font: Arial, Tahoma, sans-serif; }
.landing-body :is(h1,h2,h3,h4,h5,h6) { font-family: var(--landing-heading-font); }
.landing-body :is(.landing-pill,.landing-kicker,.landing-heading > span,.landing-heading > div > span,.landing-hero-copy > p,.landing-slide-overlay p) { font-family: var(--landing-subtitle-font); }
.landing-font-sample { display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.15rem;border:1px solid rgba(11,107,88,.15);border-radius:1rem;background:#f7faf9;font-family:"Cairo",Tahoma,Arial,sans-serif; }
.landing-font-sample strong { color:var(--brand-dark);font-size:1.35rem;font-weight:800; }
.landing-font-sample span { color:#647a75; }
.landing-body .navbar { position: relative; z-index: 100; }
.landing-body .navbar .container { max-width: 1240px; }
.landing-body .navbar-brand { font-size: 1.05rem; }
.landing-body .nav-link.active { color: var(--brand) !important; font-weight: 700; border-block-end: 2px solid var(--brand); }
.landing-hero { overflow: hidden; background: radial-gradient(circle at 10% 20%, rgba(45, 188, 164, .18), transparent 28rem), linear-gradient(135deg, #f7fcfa, #fff 58%, #edf9f5); }
.landing-hero-grid { max-width: 1280px; min-height: 660px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 3rem; padding-block: 4rem; }
.landing-hero-secondary .landing-hero-grid { min-height: 520px; padding-block: 3.5rem; }
.landing-hero-copy { position: relative; z-index: 2; }
.landing-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .85rem; border-radius: 999px; background: #e8f6f2; color: var(--brand-dark); font-weight: 750; font-size: .88rem; }
.landing-hero h1 { max-width: 680px; margin: 1.2rem 0; color: #073f36; font-size: clamp(2.35rem, 5vw, 4.7rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 850; }
.landing-hero-copy > p { max-width: 650px; margin-bottom: 1.8rem; color: #526a66; font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.9; }
.landing-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.landing-actions .btn-light { color: var(--brand-dark); border: 1px solid rgba(11,107,88,.25); }
.landing-trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 2rem; }
.landing-trust-item { display: flex; gap: .65rem; align-items: center; min-width: 0; padding: .8rem; background: rgba(255,255,255,.72); border: 1px solid rgba(11,107,88,.1); border-radius: .9rem; }
.landing-trust-item span:last-child { display: flex; min-width: 0; flex-direction: column; }
.landing-trust-item strong { font-size: .82rem; }
.landing-trust-item small { color: #71827f; font-size: .7rem; white-space: normal; }
.landing-mini-icon { display: grid; place-items: center; flex: 0 0 1.8rem; height: 1.8rem; color: #fff; background: var(--brand); border-radius: 50%; }
.landing-hero-visual { position: relative; min-width: 0; }
.landing-hero-visual img { display: block; width: 100%; height: auto; border-radius: 2rem; box-shadow: 0 2rem 5rem rgba(4, 74, 61, .18); }
.floating-card { position: absolute; display: flex; flex-direction: column; padding: .9rem 1.1rem; min-width: 9rem; color: #32534d; background: rgba(255,255,255,.95); border: 1px solid rgba(11,107,88,.12); border-radius: 1rem; box-shadow: 0 1rem 2.5rem rgba(8,58,50,.13); backdrop-filter: blur(12px); }
.floating-card span { font-size: .72rem; }
.floating-card strong { color: var(--brand-dark); font-size: 1.6rem; }
.floating-card-progress { inset-block-start: 8%; inset-inline-start: -4%; }
.floating-card-courses { inset-block-end: 8%; inset-inline-end: -2%; }
.landing-section { padding-block: 5rem; }
.landing-section-soft { background: #f7faf9; }
.landing-heading { margin: 0 auto 2.25rem; text-align: center; }
.landing-heading > span, .landing-heading > div > span { color: var(--brand); font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.landing-heading h2 { margin: .45rem 0 0; color: #103d36; font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 800; }
.landing-heading-actions { display: flex; align-items: end; justify-content: space-between; text-align: start; }
.landing-heading-actions > div { text-align: start; }
.landing-heading-actions > a { color: var(--brand); font-weight: 700; text-decoration: none; }
.landing-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.15rem; }
.landing-feature-card, .landing-benefit-grid article { height: 100%; padding: 1.6rem; border: 1px solid rgba(11,107,88,.11); border-radius: 1.25rem; background: #fff; box-shadow: 0 .75rem 2rem rgba(8,58,50,.06); }
.landing-card-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1rem; color: var(--brand); background: #e8f6f2; border-radius: .9rem; font-size: 1.35rem; font-weight: 800; }
.landing-feature-card h3, .landing-benefit-grid h3 { color: #173f39; font-size: 1.05rem; font-weight: 750; }
.landing-feature-card p, .landing-benefit-grid p { margin: 0; color: #6a7c78; font-size: .88rem; line-height: 1.7; }
.landing-course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.landing-course-card { overflow: hidden; border: 1px solid rgba(11,107,88,.12); border-radius: 1.3rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(8,58,50,.08); transition: transform .2s ease, box-shadow .2s ease; }
.landing-course-card:hover { transform: translateY(-5px); box-shadow: 0 1.4rem 3rem rgba(8,58,50,.14); }
.landing-course-image { position: relative; display: grid; place-items: center; aspect-ratio: 16/9; overflow: hidden; color: var(--brand); background: linear-gradient(135deg,#dff4ee,#f9fcfb); text-decoration: none; font-size: 3rem; }
.landing-course-image img { width: 100%; height: 100%; object-fit: cover; }
.landing-course-image b { position: absolute; inset-block-start: .8rem; inset-inline-start: .8rem; padding: .35rem .65rem; color: #fff; background: var(--brand); border-radius: 999px; font-size: .72rem; }
.landing-course-body { padding: 1.3rem; }
.landing-course-meta { display: flex; gap: .5rem; color: var(--brand); font-size: .75rem; font-weight: 700; }
.landing-course-body h3 { margin: .65rem 0; font-size: 1.2rem; }
.landing-course-body h3 a { color: #123e37; text-decoration: none; }
.landing-course-body > p { min-height: 4.5em; color: #6a7c78; font-size: .88rem; line-height: 1.6; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.landing-course-placeholder { display: grid; place-items: center; width: 5rem; height: 5rem; color: var(--brand-dark); border: 2px solid rgba(11,107,88,.22); border-radius: 1.25rem; font-size: 1rem; font-weight: 900; letter-spacing: .12em; }
.landing-course-facts { display: flex; flex-wrap: wrap; gap: .45rem .8rem; margin: .9rem 0; color: #657873; font-size: .8rem; }
.landing-course-facts span { display: inline-flex; align-items: center; gap: .35rem; }
.landing-course-facts span::before { width: .38rem; height: .38rem; content: ""; background: var(--accent); border-radius: 50%; }
.landing-course-footer { display: flex; align-items: end; justify-content: space-between; gap: .75rem; padding-top: 1rem; border-top: 1px solid #edf1f0; }
.landing-course-footer small { color: #758580; }
.landing-course-footer strong { color: var(--brand-dark); white-space: nowrap; }
.landing-subject-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.landing-subject-card { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; color: #173f39; background: #fff; border: 1px solid rgba(11,107,88,.12); border-radius: 1.1rem; box-shadow: 0 .5rem 1.5rem rgba(8,58,50,.05); text-decoration: none; }
.landing-subject-card > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.landing-subject-card small { color: #74837f; white-space: normal; }
.landing-subject-icon { display: grid; place-items: center; flex: 0 0 3.2rem; height: 3.2rem; color: #fff; background: var(--brand); border-radius: 1rem; font-size: 1.35rem; font-weight: 800; }
.accent-blue .landing-subject-icon { background: #2679c9; }.accent-amber .landing-subject-icon { background: #c8811b; }.accent-purple .landing-subject-icon { background: #7653b8; }.accent-teal .landing-subject-icon { background: #188b82; }
.landing-path-section { padding-block-start: 3rem; }
.landing-path-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.landing-path-grid a { display: inline-flex; min-width: 10rem; justify-content: center; align-items: center; gap: .5rem; padding: .8rem 1.3rem; color: #164f45; border: 1px solid #a9d7cd; border-radius: .8rem; text-decoration: none; font-weight: 700; }
.landing-benefit-band { background: linear-gradient(180deg,#eff8f5,#f9fcfb); }
.landing-benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.landing-teacher-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.landing-teacher-card { display: flex; align-items: center; gap: 1rem; padding: 1.4rem; border: 1px solid rgba(11,107,88,.12); border-radius: 1.2rem; background: #fff; box-shadow: 0 .75rem 2rem rgba(8,58,50,.06); }
.landing-avatar { display: grid; place-items: center; flex: 0 0 4.5rem; height: 4.5rem; border-radius: 50%; color: #fff; background: linear-gradient(135deg,var(--brand),#56bca7); font-size: 1.8rem; font-weight: 800; }
.landing-teacher-card h3 { margin: 0; font-size: 1.1rem; }.landing-teacher-card h3 a { color: #163f38; text-decoration: none; }.landing-teacher-card p { margin: .35rem 0; color: #697c78; }.landing-teacher-card small { color: #c67d12; }
.landing-avatar-photo { object-fit: cover; padding: 0; }
.landing-teacher-bio { flex: 1 1 100%; margin: 0; color: #526b66; }
.teacher-admin-photo { width: 8rem; height: 8rem; border-radius: 1rem; object-fit: cover; }
.student-admin-page { max-width: 1440px; }
.student-stat-card { min-height: 8.25rem; padding: 1.25rem; border-radius: 1rem; background: linear-gradient(145deg,#fff,#f4f8f7); box-shadow: 0 12px 32px rgba(15,74,63,.08); border-inline-start: .3rem solid #56877e; display:flex; flex-direction:column; justify-content:space-between; }
.student-stat-card strong { color:#0b4f43; font-size:2rem; }
.student-stat-card.is-active { border-inline-start-color:#168b6c; }
.student-stat-card.is-access { border-inline-start-color:#2878d0; }
.student-stat-card.is-expired { border-inline-start-color:#e39a45; }
.admin-surface { background:#fff; border-radius:1rem; box-shadow:0 12px 34px rgba(15,74,63,.08); }
.admin-data-table tbody tr:hover { background:#f4faf8; }
.teacher-directory-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.teacher-profile-photo { width: min(100%, 22rem); aspect-ratio: 4 / 3; border-radius: 1rem; object-fit: cover; }
.landing-package-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; max-width: 960px; margin: auto; }
.landing-package-card { display: flex; flex-direction: column; gap: .8rem; padding: 1.8rem; border: 1px solid rgba(11,107,88,.13); border-radius: 1.3rem; background: #fff; box-shadow: 0 1rem 2.5rem rgba(8,58,50,.07); }
.landing-package-card h3 { margin: 0; color: #143e37; }.landing-package-card p { flex: 1; color: #6c7d79; }.landing-package-card > strong { color: var(--brand); font-size: 1.6rem; }.landing-package-card > small { color: #73827e; }
.landing-testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.landing-testimonial-grid figure { margin: 0; padding: 1.6rem; border: 1px solid rgba(11,107,88,.12); border-radius: 1.2rem; background: #fff; box-shadow: 0 .7rem 2rem rgba(8,58,50,.06); }
.landing-testimonial-grid blockquote { min-height: 4.5em; color: #3f5955; line-height: 1.8; }
.landing-testimonial-grid figcaption { display: flex; flex-direction: column; }.landing-testimonial-grid figcaption small { color: #84918e; }
.landing-stat-band { padding-block: 2.5rem; color: #fff; background: linear-gradient(110deg,#075246,#0b7863); }
.landing-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; text-align: center; }
.landing-stat-grid div { display: flex; flex-direction: column; }.landing-stat-grid strong { font-size: 2rem; }.landing-stat-grid span { color: #cce7df; }
.landing-cta { padding-block: 4rem; background: linear-gradient(135deg,#fff,#e9f7f3); }
.landing-cta > .container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2.5rem; border: 1px solid rgba(11,107,88,.12); border-radius: 1.8rem; background: rgba(255,255,255,.75); }
.landing-cta h2 { margin: .8rem 0; color: #0f433a; font-size: clamp(1.8rem,3vw,2.7rem); font-weight: 800; }.landing-cta p { color: #617571; }
.landing-cta-art { font-size: 4rem; }.landing-cta-art span { color: var(--brand); }
.public-footer { padding-block-start: 3.5rem; color: #d4e8e2; background: #063f36; }
.public-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 2rem; }
.public-footer-brand { display: block; margin-bottom: .8rem; color: #fff; font-size: 1.25rem; }.public-footer p { max-width: 28rem; color: #afcbc4; line-height: 1.8; }
.public-footer h2 { color: #fff; font-size: 1rem; }.public-footer a,.public-footer span { display: block; margin-block: .45rem; color: #c5ded8; text-decoration: none; }.public-footer a:hover { color: #fff; }
.public-footer-bottom { margin-top: 2.5rem; padding-block: 1.2rem; border-top: 1px solid rgba(255,255,255,.12); color: #9fc1b8; text-align: center; font-size: .8rem; }

@media (max-width: 991.98px) {
  .landing-hero-grid { min-height: 0; grid-template-columns: 1fr; padding-block: 3rem; }
  .landing-hero-copy { text-align: center; }.landing-hero-copy > p { margin-inline: auto; }.landing-actions,.landing-trust-row { justify-content: center; }
  .landing-hero-visual { max-width: 760px; margin-inline: auto; }
  .landing-feature-grid,.landing-subject-grid { grid-template-columns: repeat(2,1fr); }
  .landing-course-grid,.landing-benefit-grid,.landing-teacher-grid { grid-template-columns: repeat(2,1fr); }
  .landing-package-grid,.landing-testimonial-grid { grid-template-columns: repeat(2,1fr); }
  .public-footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 575.98px) {
  .landing-hero-grid { padding-block: 2.2rem; }.landing-hero h1 { font-size: 2.4rem; }
  .landing-actions .btn { width: 100%; }.landing-trust-row { grid-template-columns: 1fr; }
  .floating-card { display: none; }
  .landing-section { padding-block: 3.5rem; }
  .landing-heading-actions { align-items: start; gap: 1rem; }
  .landing-feature-grid,.landing-course-grid,.landing-subject-grid,.landing-benefit-grid,.landing-teacher-grid,.landing-package-grid,.landing-testimonial-grid { grid-template-columns: 1fr; }
  .landing-stat-grid { grid-template-columns: repeat(2,1fr); }
  .landing-cta > .container { align-items: start; flex-direction: column; padding: 1.6rem; }
  .public-footer-grid { grid-template-columns: 1fr; }
}

/* Keep one stable navigation system across the landing page and inner pages. */
body.landing-body > header { position: relative; z-index: 30; }
body.landing-body > header .app-navbar,
body.landing-body > header .app-navbar.is-scrolled { position: relative; min-height: 78px; background: linear-gradient(120deg,var(--brand-deep),var(--brand-dark)); box-shadow: 0 .65rem 1.8rem rgba(4,59,51,.18); backdrop-filter: none; }
body.landing-body > header .app-navbar-logo,
body.landing-body > header .app-navbar.is-scrolled .app-navbar-logo { height: 58px; max-width: 210px; }
body.landing-body .landing-ribbon { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.landing-slider { background: #062f2b; }
body.landing-body > header { position:absolute; z-index:30; inset:0 0 auto; width:100%; }
body.landing-body > header .app-navbar { min-height:96px; background:linear-gradient(180deg,rgba(1,34,30,.62),rgba(1,34,30,.18),transparent); box-shadow:none; }
body.landing-body > header .app-navbar-logo { height:76px; max-width:260px; }
body.landing-body > header .app-navbar.is-scrolled { position:fixed; inset:0 0 auto; min-height:70px; background:rgba(4,59,51,.96); box-shadow:0 .65rem 2rem rgba(0,0,0,.16); backdrop-filter:blur(16px); }
body.landing-body > header .app-navbar.is-scrolled .app-navbar-logo { height:54px; }
body.landing-body > main { position: relative; }
body.landing-body .landing-ribbon { position: absolute; z-index: 20; inset: 0 0 auto; min-height: 96px; color: #fff; background: linear-gradient(180deg,rgba(1,34,30,.28),rgba(1,34,30,.04),transparent); }
body.landing-body .landing-ribbon.is-scrolled { position: fixed; min-height: 70px; background: rgba(4,59,51,.94); box-shadow: 0 .65rem 2rem rgba(0,0,0,.16); backdrop-filter: blur(16px); animation: landing-ribbon-in .18s ease-out; }
@keyframes landing-ribbon-in { from { transform: translateY(-100%); } to { transform: translateY(0); } }
.landing-ribbon .navbar-brand,.landing-ribbon .nav-link { color: #fff !important; font-weight: 700; text-shadow: 0 1px 12px rgba(0,0,0,.48); }
.landing-ribbon-brand { display: inline-flex; align-items: center; min-width: 11rem; padding-block: .35rem; }
.landing-ribbon-logo { display: block; width: auto; max-width: 260px; height: 76px; padding: .3rem .55rem; object-fit: contain; object-position: center; border: 1px solid rgba(255,255,255,.72); border-radius: .7rem; background: rgba(255,255,255,.94); box-shadow: 0 .35rem 1rem rgba(0,0,0,.18); }
.landing-logo-preview { width: auto; max-width: 240px; height: 90px; padding: .5rem; object-fit: contain; border: 1px solid #d9eee8; border-radius: .75rem; background: #eef8f5; }
.landing-ribbon .nav-link:hover,.landing-ribbon .nav-link:focus { color: #bdf2df; }
.landing-ribbon .dropdown-toggle { border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: rgba(1,34,30,.12); }
.landing-ribbon .dropdown-toggle::after { margin-inline-start: .45rem; }
.landing-ribbon .dropdown-menu { min-width: 15rem; padding: .55rem; border: 1px solid rgba(7,82,70,.15); border-radius: .8rem; box-shadow: 0 1rem 2.5rem rgba(0,0,0,.2); }
.landing-ribbon .dropdown-item { padding: .55rem .75rem; border-radius: .5rem; }
.landing-ribbon .dropdown-item:hover,.landing-ribbon .dropdown-item:focus { color: #064d42; background: #e8f7f2; }
.landing-ribbon-actions { display: flex; align-items: center; gap: .5rem; }
.landing-ribbon .nav-link,.landing-ribbon-actions .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.btn-ribbon { color: #fff; border: 1px solid rgba(255,255,255,.72); background: rgba(1,50,43,.26); backdrop-filter: blur(8px); }
.btn-ribbon:hover { color: #064d42; background: #fff; }
.landing-ribbon .navbar-toggler { width: 44px; min-width: 44px; height: 44px; padding: .35rem; border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.9); }
.landing-ribbon + .landing-hero .landing-hero-grid { padding-top: 8rem; }
.landing-slider .carousel-item:first-child,.landing-hero:first-of-type { padding-top: 0; }
.landing-slider .carousel-item { position: relative; min-height: clamp(300px,42vw,620px); }
.landing-slider .carousel-item::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,rgba(1,32,29,.18),rgba(1,32,29,.74)); }
[dir="ltr"] .landing-slider .carousel-item::after { background: linear-gradient(270deg,rgba(1,32,29,.18),rgba(1,32,29,.74)); }
.landing-slider .carousel-item > img { width: 100%; height: clamp(300px,42vw,620px); object-fit: cover; }
.landing-slide-overlay { position: absolute; z-index: 2; inset-inline-start: max(6vw,calc((100vw - 1140px)/2)); top: 50%; width: min(560px,78vw); color: #fff; transform: translateY(-50%); }
.landing-slide-overlay h2 { font-size: clamp(2rem,4vw,4rem); font-weight: 800; text-wrap: balance; }
.landing-slide-overlay p { max-width: 52ch; font-size: clamp(1rem,1.6vw,1.3rem); white-space: pre-line; }
.landing-slide-overlay .btn { min-width: 11rem; padding: .8rem 1.25rem; font-weight: 750; }
.landing-slider-toggle { position: absolute; z-index: 5; inset-inline-end: 1.25rem; inset-block-end: 1.2rem; display: grid; place-items: center; width: 44px; height: 44px; color: #fff; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(2,49,43,.62); backdrop-filter: blur(8px); }
.landing-slider-toggle:hover,.landing-slider-toggle:focus-visible { background: var(--brand); }
.landing-course-finder { position: relative; z-index: 4; margin-top: -2.2rem; padding-bottom: 1rem; }
.landing-finder-shell { display: grid; grid-template-columns: minmax(220px,.75fr) minmax(0,2fr); align-items: end; gap: 2rem; padding: 1.6rem; border: 1px solid rgba(11,107,88,.13); border-radius: var(--landing-radius); background: rgba(255,255,255,.97); box-shadow: var(--landing-shadow); backdrop-filter: blur(14px); }
.landing-finder-heading > span { color: var(--brand); font-size: .78rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.landing-finder-heading h2 { margin: .3rem 0; color: var(--brand-deep); font-size: clamp(1.35rem,2.1vw,1.85rem); font-weight: 850; }
.landing-finder-heading p { margin: 0; color: #667a75; font-size: .9rem; }
.landing-finder-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; align-items: end; gap: .8rem; }
.landing-finder-form label { display: block; margin-bottom: .35rem; color: #385851; font-size: .78rem; font-weight: 750; }
.landing-finder-form .form-select,.landing-finder-form .form-control { min-height: 48px; border-color: #cfe2dc; border-radius: .75rem; }
.landing-finder-form .btn { min-height: 48px; white-space: nowrap; }
.landing-course-card,.landing-feature-card,.landing-subject-card,.landing-teacher-card,.landing-package-card { border-radius: var(--landing-radius); box-shadow: var(--landing-shadow); }
.landing-course-card:focus-within,.landing-feature-card:focus-within,.landing-subject-card:focus-visible,.landing-teacher-card:focus-within,.landing-package-card:focus-within { outline: 3px solid rgba(11,107,88,.34); outline-offset: 3px; }
.landing-course-card .btn { min-height: 40px; padding-inline: 1rem; }
.landing-heading-actions > a { min-height: 44px; display: inline-flex; align-items: center; gap: .35rem; }
.landing-cta > .container { position: relative; overflow: hidden; box-shadow: var(--landing-shadow); }
.landing-cta > .container::after { position: absolute; z-index: -1; inset-inline-end: -8rem; inset-block-start: -10rem; width: 24rem; height: 24rem; content: ""; background: radial-gradient(circle,rgba(11,107,88,.18),transparent 68%); }
.landing-cta-art span { display: grid; place-items: center; width: 8rem; height: 8rem; color: #fff; border-radius: 2rem; background: linear-gradient(135deg,var(--brand),var(--brand-dark)); box-shadow: 0 1.25rem 3rem rgba(4,59,51,.2); font-size: 1.4rem; font-weight: 900; letter-spacing: .12em; }

.landing-body :focus-visible { outline: 3px solid #f3b33d; outline-offset: 3px; }
.landing-managed-section { padding: clamp(2.25rem,5vw,4.5rem) 0; text-align: center; background: #f2fbf8; border-bottom: 1px solid #d9eee8; }
.landing-managed-section h2 { color: #075b4d; font-weight: 800; }
.landing-managed-section p { max-width: 820px; margin: 1rem auto 1.5rem; color: #4d6561; font-size: 1.08rem; white-space: pre-line; }

@media (max-width: 575.98px) {
  .landing-slide-overlay { inset-inline: 1.25rem; width: auto; text-align: center; }
  .landing-slider .carousel-item,.landing-slider .carousel-item > img { min-height: 420px; height: 420px; }
}

@media (max-width: 991.98px) {
  body.landing-body .landing-ribbon { min-height: 76px; background: rgba(3,63,54,.94); }
  .landing-ribbon-logo { max-width: 180px; height: 58px; }
  .landing-ribbon .navbar-collapse { margin-top: .75rem; padding: 1rem; border-radius: .85rem; background: rgba(3,63,54,.98); box-shadow: 0 18px 45px rgba(0,0,0,.22); }
  .landing-ribbon-actions { align-items: stretch; flex-wrap: wrap; margin-top: .75rem; }
  .landing-ribbon-actions > * { flex: 1 1 auto; }
  .landing-ribbon-actions .btn { width: 100%; }
  .landing-course-finder { margin-top: 0; padding-block: 1rem; background: #f3f8f6; }
  .landing-finder-shell { grid-template-columns: 1fr; }
  .landing-finder-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 575.98px) {
  .landing-finder-shell { padding: 1.15rem; }
  .landing-finder-form { grid-template-columns: 1fr; }
  .landing-finder-form .btn { width: 100%; }
  .landing-ribbon-brand { min-width: 0; }
  .landing-ribbon-logo { max-width: 155px; height: 52px; }
  .landing-slider-toggle { inset-inline-end: .8rem; inset-block-end: .8rem; }
  .landing-course-footer { align-items: center; }
  .landing-course-footer .btn { min-height: 44px; }
  .landing-cta-art { display: none; }
}
.course-workspace-anchor {
    scroll-margin-top: 7rem;
}
.course-management-header { display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;border-radius:1.35rem;background:linear-gradient(135deg,#edf8f4,#fff);box-shadow:0 .8rem 2rem rgba(4,65,55,.07); }
.course-management-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem; }
.course-management-stats > div { display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border:1px solid #dceae6;border-radius:1rem;background:#fff; }
.course-management-stats strong { color:#076452;font-size:1.7rem; }.course-management-stats span { color:#647872;font-weight:700; }
.course-management-panel { padding:1.25rem;border:1px solid #dce8e4;border-radius:1.25rem;background:#fff;box-shadow:0 .8rem 2.2rem rgba(4,65,55,.06); }
.course-management-tools { display:flex;align-items:center;gap:.75rem;margin-bottom:1rem; }.course-management-tools > .form-control { max-width:24rem; }.course-management-tools > .form-select { max-width:14rem; }
.course-list-identity { display:flex;align-items:center;gap:.8rem;min-width:15rem; }.course-list-identity small { display:block;color:#758680; }.course-list-thumb { display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;object-fit:cover;color:#087762;border:1px solid #d5e8e2;border-radius:.8rem;background:#e2f2ed;font-size:.68rem;font-weight:900; }.course-list-thumb-fallback { display:grid; }
.course-management-empty { padding:4rem 1rem;text-align:center; }.course-management-empty > span { display:grid;place-items:center;width:64px;height:64px;margin:0 auto 1rem;color:#087762;border-radius:50%;background:#e1f2ed;font-size:2rem; }
.course-builder-tabs { display:flex;gap:.35rem;overflow-x:auto;padding:.45rem;border:1px solid #dce9e5;border-radius:1rem;background:#fff;box-shadow:0 .5rem 1.5rem rgba(4,65,55,.06); }
.course-builder-tabs a,.course-builder-tabs .nav-link { min-height:44px;padding:.65rem 1rem;color:#526b64;border:0;border-radius:.7rem;text-decoration:none;font-weight:800;white-space:nowrap;background:transparent; }.course-builder-tabs a:hover,.course-builder-tabs a:focus-visible,.course-builder-tabs a.active,.course-builder-tabs .nav-link:hover,.course-builder-tabs .nav-link:focus-visible,.course-builder-tabs .nav-link.active { color:#fff;background:#087762; }
.course-builder-panel:not(.active) { display:none; }
.course-unit-builder { scroll-margin-top:7rem;border-radius:1.2rem!important; }.course-unit-builder .card-header { border-bottom-color:#dfeae6!important; }.course-unit-builder .btn-group form { margin:0; }.lesson-editor-page section { scroll-margin-top:6rem; }.lesson-editor-page video { border-radius:1rem;background:#031f1b;box-shadow:0 .8rem 2rem rgba(0,0,0,.12); }
.course-drag-handle { display:inline-block;padding:.2rem;color:#668079;cursor:grab;font-weight:900;letter-spacing:-.2em; }.course-management-table [draggable="true"],tr[data-lesson-order-id][draggable="true"] { cursor:grab; }.is-dragging { opacity:.45;background:#e2f3ee!important; }
.course-readiness-panel { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1rem 1.2rem;border:1px solid #dce9e5;border-radius:1rem;background:#f8fbfa; }.course-readiness-panel > div { display:flex;flex-direction:column; }.course-readiness-panel > div span { color:#087762;font-size:1.2rem;font-weight:900; }.course-readiness-panel ul { display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none; }.course-readiness-panel li { padding:.35rem .6rem;color:#62756f;border-radius:999px;background:#e8efed;font-size:.78rem;font-weight:750; }.course-readiness-panel li span { margin-inline-end:.3rem; }.course-readiness-panel li.is-complete { color:#08705e;background:#dcf2eb; }.course-readiness-panel li.is-required { color:#8c3b32;background:#f9e4e1; }.course-readiness-panel small { opacity:.75; }
@media (max-width:991.98px) { .course-readiness-panel { grid-template-columns:1fr;align-items:stretch; } }
.resource-editor-card { margin:0;padding:1rem;border:1px solid #dfeae6;border-radius:1rem;background:#fbfdfc; }
.lesson-editor-utilities { display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:1rem;border:1px solid #dce9e5;border-radius:1rem;background:#f8fbfa; }.lesson-editor-utilities .form-select { min-width:14rem; }
@media (max-width:767.98px) { .course-management-header,.course-management-tools { align-items:stretch;flex-direction:column; }.course-management-header .btn,.course-management-tools > .form-control,.course-management-tools > .form-select { width:100%;max-width:none; }.course-management-stats { grid-template-columns:1fr; } }
.course-save-toolbar { position: sticky; z-index: 12; top: .75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; padding: .85rem 1rem; color: #fff; border-radius: 1rem; background: rgba(4,75,64,.96); box-shadow: 0 .8rem 2rem rgba(4,55,48,.18); backdrop-filter: blur(12px); }
.course-save-toolbar > div { display: flex; flex-direction: column; }.course-save-toolbar small { color: #cce7df; }
.course-save-toolbar form { margin: 0; }
.contents-fieldset { display: contents; }
.course-section-actions { position: sticky; bottom: .75rem; display: flex; align-items: center; justify-content: flex-end; gap: 1rem; padding: .75rem; border: 1px solid #d8e8e3; border-radius: .85rem; background: rgba(255,255,255,.96); box-shadow: 0 .6rem 1.5rem rgba(4,55,48,.1); }
.course-filter-grid { display: grid; grid-template-columns: minmax(14rem,2fr) repeat(5,minmax(9rem,1fr)) auto auto; gap: .65rem; align-items: center; }
@media (max-width:1199.98px) { .course-filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width:767.98px) { .course-filter-grid { grid-template-columns: 1fr; } }
fieldset[disabled].contents-fieldset input,fieldset[disabled].contents-fieldset textarea,fieldset[disabled].contents-fieldset select { color: #52635f; background: #f3f5f4; opacity: 1; }
@media (max-width:575.98px) { .course-save-toolbar { align-items: stretch; flex-direction: column; top: .25rem; }.course-save-toolbar .btn,.course-save-toolbar form { width: 100%; }.course-section-actions { align-items: stretch; flex-direction: column; }.course-section-actions .btn { width: 100%; } }

/* Landing 2026 modernization: warm surfaces, fewer borders and focused conversion. */
.landing-body { background: #fbfaf5; color: #173e37; }
.landing-body .landing-section { padding-block: clamp(4rem,7vw,7rem); }
.landing-body .landing-heading h2 { font-size: clamp(2rem,4vw,3.35rem); font-weight: 900; letter-spacing: -.025em; text-wrap: balance; }
.landing-body .landing-course-card { overflow: hidden; border: 0; background: #fff; box-shadow: 0 1.4rem 3.5rem rgba(3,55,47,.1); transition: transform .2s ease, box-shadow .2s ease; }
.landing-section-order { display: flex; flex-direction: column; }
.landing-admin-toolbar { position: sticky; z-index: 20; top: .5rem; padding: .85rem 1rem; border: 1px solid #dce9e5; border-radius: 1rem; background: rgba(255,255,255,.96); box-shadow: 0 .65rem 1.7rem rgba(4,65,55,.09); backdrop-filter: blur(12px); }
.landing-admin-tabs { position: sticky; z-index: 19; top: 6rem; overflow-x: auto; margin-bottom: 1.25rem; border: 1px solid #dce9e5; border-radius: 1rem; background: rgba(255,255,255,.97); scrollbar-width: thin; }
.landing-admin-tabs .nav-tabs { min-width: max-content; padding-inline: .65rem; border: 0; }
.landing-admin-tabs .nav-link { min-height: 52px; padding-inline: 1rem; color: #49645e; border: 0; border-bottom: 3px solid transparent; border-radius: 0; font-weight: 800; white-space: nowrap; }
.landing-admin-tabs .nav-link.active { color: #076452; border-bottom-color: #087762; background: transparent; }
.landing-admin-panels > .tab-pane { min-height: 22rem; padding-block: .5rem 2rem; }
.landing-admin-summary { height: 100%; padding: 1.15rem; border: 1px solid #dce9e5; border-radius: 1rem; background: #fff; box-shadow: 0 .45rem 1.3rem rgba(4,65,55,.06); }
.landing-admin-summary span { display: block; margin-bottom: .35rem; color: #667c77; font-size: .9rem; }
.landing-admin-summary strong { color: #064f42; font-size: 1.35rem; }
.landing-settings-group { margin-bottom: 1rem; padding: 1.15rem; border: 1px solid #dce9e5; border-radius: 1rem; background: #fbfdfc; }
.landing-settings-group > .landing-settings-heading { margin-bottom: .35rem; color: #075a4b; }
#homepage-slider .card:not(#landing-add-slide) .card-body { align-items: start; }
#homepage-slider .card:not(#landing-add-slide) img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
@media (max-width: 767.98px) { .landing-admin-toolbar { position: static; } .landing-admin-tabs { top: .5rem; } .landing-admin-panels > .tab-pane { padding-top: 0; } }
.landing-managed-sections { display: block; }
.landing-sortable-item { cursor: grab; transition: opacity .15s ease, transform .15s ease, box-shadow .15s ease; }
.landing-sortable-item:active { cursor: grabbing; }
.landing-sortable-item.is-dragging { opacity: .55; box-shadow: 0 .75rem 1.5rem rgba(3,55,47,.15); }
.landing-drag-handle { color: var(--brand); font-weight: 900; cursor: grab; }
.landing-order-number { display: grid; place-items: center; width: 2rem; height: 2rem; flex: 0 0 2rem; border-radius: 50%; background: #e8f5f1; color: var(--brand-dark); font-weight: 800; }
.landing-cta-art img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
@media (max-width: 575.98px) { .landing-order-fallback { display: none; } .landing-sortable-item { gap: .5rem !important; } }
.landing-body .landing-course-card:hover { transform: translateY(-6px); box-shadow: 0 1.8rem 4rem rgba(3,55,47,.16); }
.landing-body .landing-course-image { aspect-ratio: 16/9; min-height: 0; }
.landing-body .landing-course-image img { width: 100%; height: 100%; object-fit: cover; }
.landing-preview-section { color: #fff; background: radial-gradient(circle at 15% 20%,rgba(33,176,153,.24),transparent 32%),linear-gradient(125deg,#043d35,#076957); }
.landing-preview-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: clamp(2rem,5vw,5rem); }
.landing-preview-copy h2 { margin: .75rem 0 1rem; font-size: clamp(2rem,4vw,3.4rem); font-weight: 900; }
.landing-preview-copy p { color: #cfe7e1; line-height: 1.85; }
.landing-kicker { color: #f0b544; font-weight: 850; }
.landing-preview-options { display: flex; flex-wrap: wrap; gap: .65rem; margin: 1.5rem 0; }
.landing-preview-option { padding: .65rem 1rem; color: #d6eee8; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.06); }
.landing-preview-option.active,.landing-preview-option:hover { color: #063f36; background: #f0b544; border-color: #f0b544; }
.landing-preview-player { overflow: hidden; border-radius: 1.5rem; background: #032d28; box-shadow: 0 2rem 5rem rgba(0,0,0,.28); }
.landing-preview-player video { display: block; width: 100%; aspect-ratio: 16/9; background: #021a17; }
.landing-preview-player > img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; background: #e7f3ef; }
.landing-preview-placeholder { display: grid; place-items: center; width: 100%; aspect-ratio: 16/9; color: #0b6657; background: radial-gradient(circle at 30% 25%,#fff,#dcefe9); }
.landing-preview-placeholder span { display: grid; place-items: center; width: 6rem; height: 6rem; border: 2px solid rgba(11,102,87,.25); border-radius: 1.5rem; font-weight: 900; letter-spacing: .15em; }
.landing-preview-player strong { display: block; padding: 1rem 1.25rem; }
.landing-teacher-card { align-items: stretch; flex-direction: column; padding: 0; overflow: hidden; border: 0; }
.landing-teacher-card .landing-avatar { width: 100%; height: auto; aspect-ratio: 4/3; border-radius: 0; font-size: 4rem; }
.landing-teacher-card .landing-avatar-photo { width: 100%; object-fit: cover; }
.landing-teacher-card > div:last-child,.landing-teacher-card > .landing-teacher-bio { margin-inline: 1.35rem; }
.landing-teacher-card > div:last-child { margin-bottom: 1.35rem; }
.landing-teacher-card > .landing-teacher-bio { margin-top: 1.15rem; }
.landing-testimonial-grid figure { position: relative; border: 0; background: #f5f1e7; }
.landing-testimonial-grid figure::before { content: "“"; position: absolute; inset-inline-end: 1.2rem; top: .3rem; color: #d49a26; font-size: 4rem; opacity: .35; }
.landing-journey { background: #f2eee2; }
.landing-journey-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; padding: 0; list-style: none; }
.landing-journey-grid li { display: flex; flex-direction: column; gap: .55rem; padding: 1.5rem; border-radius: 1.2rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(3,55,47,.07); }
.landing-journey-grid b { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; color: #073f36; border-radius: 50%; background: #f0b544; }
.landing-journey-grid strong { font-size: 1.15rem; }.landing-journey-grid span { color: #687b76; }
.landing-faq-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 3rem; }
.landing-faq .accordion-item { margin-bottom: .75rem; overflow: hidden; border: 0; border-radius: 1rem; box-shadow: 0 .5rem 1.5rem rgba(3,55,47,.06); }
.landing-faq .accordion-button { font-weight: 800; }.landing-faq .accordion-button:not(.collapsed) { color: #075b4d; background: #e6f5f0; }
.footer-social { display: flex; flex-wrap: wrap; gap: .7rem; }.footer-social a { color: #f0c15e; }
@media (max-width: 991.98px) { .landing-preview-grid,.landing-faq-grid { grid-template-columns: 1fr; }.landing-journey-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 575.98px) { .landing-journey-grid { grid-template-columns: 1fr; }.landing-preview-options { flex-direction: column; }.landing-preview-option { width: 100%; }.landing-body .landing-heading h2 { font-size: 2rem; } }

/* Student learning workspace */
.student-learning-page,.student-course-workspace { min-height: 70vh; background: #f7f5ee; }
.student-dashboard-shell { max-width: 1200px; }
.student-dashboard-header { margin-bottom: 1.5rem; }
.student-dashboard-header h1 { margin: .25rem 0; color: #073f35; font-size: clamp(1.8rem,3vw,2.5rem); font-weight: 900; }
.student-dashboard-header p { margin: 0; color: #61756f; }
.student-continue-section,.student-dashboard-courses { margin-top: 1.5rem; }
.student-dashboard-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.student-dashboard-section-heading > div { min-width: 0; }
.student-dashboard-section-heading span { color: #087762; font-size: .82rem; font-weight: 800; }
.student-dashboard-section-heading h2 { margin: .15rem 0 0; color: #073f35; font-size: 1.35rem; font-weight: 900; }
.student-dashboard-section-heading > strong { color: #087762; font-size: 1.35rem; }
.student-dashboard-section-heading > a { color: #087762; font-weight: 800; text-decoration: none; }
.student-continue-card { display: grid; grid-template-columns: minmax(220px,.8fr) minmax(0,1.7fr); overflow: hidden; border: 1px solid #cfe3dd; border-radius: .5rem; background: #fff; box-shadow: 0 .8rem 2.2rem rgba(4,65,55,.08); }
.student-continue-cover { display: grid; place-items: center; min-height: 235px; overflow: hidden; color: #08705d; background: #dcefe9; }
.student-continue-cover img { width: 100%; height: 100%; object-fit: cover; }
.student-continue-cover > span { font-size: 1.2rem; font-weight: 900; }
.student-continue-content { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(1.25rem,3vw,2rem); }
.student-continue-content > p { margin: 1rem 0 .15rem; color: #697d77; font-size: .88rem; }
.student-continue-content h3 { margin-bottom: 1.25rem; color: #123f37; font-size: clamp(1.25rem,2.3vw,1.75rem); font-weight: 900; }
.student-continue-content .progress { width: 100%; height: .65rem; margin-bottom: 1.25rem; background: #dfe9e6; }
.student-continue-content .progress-bar { background: #087762; }
.student-continue-content .btn { min-width: 11rem; }
.student-dashboard-course-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.student-dashboard-course-grid .student-course-card { display: flex; min-width: 0; flex-direction: column; border-radius: .5rem; }
.student-dashboard-course-grid .student-course-body { display: flex; flex: 1; flex-direction: column; }
.student-dashboard-course-grid .student-course-body .btn { margin-top: auto; }
.student-dashboard-course-grid.is-single { grid-template-columns: 1fr; }
.student-dashboard-course-grid.is-single .student-course-card { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.7fr); }
.student-dashboard-course-grid.is-single .student-course-cover { aspect-ratio: auto; min-height: 230px; }
.student-learning-hero,.student-course-header { color: #fff; background: radial-gradient(circle at 12% 18%,rgba(47,189,160,.24),transparent 30%),linear-gradient(125deg,#043d35,#08705d); }
.student-learning-hero { padding: clamp(3rem,7vw,6rem) 0; }
.student-learning-hero h1,.student-course-header h1 { margin: .5rem 0; font-size: clamp(2.2rem,5vw,4rem); font-weight: 900; }
.student-learning-hero p { margin: 0; color: #cde6e0; font-size: 1.1rem; }
.student-learning-kicker { color: #f3bd4e; font-size: .85rem; font-weight: 850; letter-spacing: .04em; }
.student-course-card { overflow: hidden; border-radius: 1.35rem; background: #fff; box-shadow: 0 1.2rem 3rem rgba(3,55,47,.1); transition: transform .2s ease,box-shadow .2s ease; }
.student-course-card:hover { transform: translateY(-5px); box-shadow: 0 1.5rem 3.5rem rgba(3,55,47,.15); }
.student-course-cover { display: grid; place-items: center; overflow: hidden; aspect-ratio: 16/9; color: #08705d; background: radial-gradient(circle at 30% 20%,#fff,#dcefe9); }
.student-course-cover img { width: 100%; height: 100%; object-fit: cover; }
.student-course-cover span { display: grid; place-items: center; width: 5rem; height: 5rem; border: 1px solid #9ecfc2; border-radius: 1.25rem; font-weight: 900; letter-spacing: .12em; }
.student-course-body { padding: 1.5rem; }
.student-course-body h2 { min-height: 3.2rem; margin: .75rem 0; font-size: 1.3rem; font-weight: 850; }
.student-course-meta { display: flex; flex-wrap: wrap; gap: .5rem; color: #08705d; font-size: .78rem; font-weight: 800; }
.student-course-meta span { padding: .3rem .65rem; border-radius: 999px; background: #e8f5f1; }
.student-continue-label { min-height: 2.7rem; color: #667a75; font-size: .88rem; }
.student-course-card .progress,.student-progress-panel .progress { height: .65rem; border-radius: 999px; background: #e2ebe8; }
.student-course-card .progress-bar,.student-progress-panel .progress-bar { background: linear-gradient(90deg,#0a806a,#32b89b); }
.student-empty-state { padding: 4rem 1.5rem; text-align: center; border-radius: 1.5rem; background: #fff; box-shadow: 0 1rem 3rem rgba(3,55,47,.08); }
.student-empty-state > span { color: #0a806a; font-size: 3rem; }
.student-back-link { color: #d2ebe5; text-decoration: none; font-weight: 750; }
.student-back-link:hover { color: #fff; }
.student-progress-panel { padding: 1.5rem; border-radius: 1.2rem; background: #fff; box-shadow: 0 .8rem 2rem rgba(3,55,47,.08); }
.student-unit-card { overflow: hidden; border-radius: 1.35rem; background: #fff; box-shadow: 0 .8rem 2.5rem rgba(3,55,47,.08); }
.student-unit-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #064f43; font-weight: 850; }
.student-unit-title span { padding: .4rem .7rem; color: #0a705e; border-radius: 999px; background: #e7f4f0; font-size: .75rem; white-space: nowrap; }
.student-lesson { border-top: 1px solid #e2ebe8; }
.student-lesson iframe,.student-lesson video { border: 0; border-radius: 1rem; background: #031f1b; box-shadow: 0 .8rem 2rem rgba(0,0,0,.12); }
@media (max-width:575.98px) { .student-learning-hero { text-align:center; }.student-course-body { padding:1.2rem; }.student-unit-card .card-body { padding:1.25rem!important; }.student-unit-title { align-items:flex-start; flex-direction:column; } }
@media (max-width: 991.98px) { .student-dashboard-course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767.98px) { .student-continue-card,.student-dashboard-course-grid.is-single .student-course-card { grid-template-columns: 1fr; }.student-continue-cover,.student-dashboard-course-grid.is-single .student-course-cover { min-height: 0; aspect-ratio: 16/8; }.student-dashboard-course-grid { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { .student-dashboard-header { margin-bottom: 1rem; }.student-dashboard-section-heading { align-items: flex-start; }.student-dashboard-section-heading > strong { font-size: 1.15rem; }.student-continue-content { padding: 1.1rem; }.student-continue-content .btn { width: 100%; }.student-dashboard-course-grid { gap: .8rem; } }

/* Nibras student course experience */
.nibras-course-page { min-height:75vh;overflow-x:clip;color:#153f37;background:#f7f8f5; }
.nibras-course-shell { max-width: 1320px; }
.nibras-course-hero { display: grid; grid-template-columns: 1.05fr .95fr; overflow: hidden; min-height: 390px; border: 1px solid #dce9e5; border-radius: 1.5rem; background: linear-gradient(135deg,#f3faf7,#fff); box-shadow: 0 1.2rem 3.4rem rgba(4,65,55,.09); }
.nibras-course-hero-copy { display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding: clamp(1.5rem,4vw,3.25rem); }
.nibras-course-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.nibras-course-tags span { padding: .35rem .75rem; color: #076452; border-radius: 999px; background: #dbf1eb; font-size: .8rem; font-weight: 800; }
.nibras-course-hero h1 { margin: 1rem 0 .75rem; color: #073f35; font-size: clamp(2rem,4vw,3.35rem); font-weight: 900; letter-spacing: -.035em; line-height: 1.12; }
.nibras-course-hero-copy > p { max-width: 58ch; color: #61746f; line-height: 1.85; }
.nibras-course-hero-media { min-height: 100%; background: #072e29; }
.nibras-course-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.nibras-course-fallback { display: grid; place-items: center; align-content: center; width: 100%; height: 100%; min-height: 390px; color: #fff; background: radial-gradient(circle at 25% 20%,#118c75,#053c34 48%,#021f1c); }
.nibras-course-fallback span { margin-bottom: .75rem; color: #f0bd52; font-size: 2.4rem; font-weight: 900; }.nibras-course-fallback strong { font-size: 1.25rem; }
.nibras-course-teacher-inline { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; }.nibras-course-teacher-inline > div:last-child { display: flex; flex-direction: column; }.nibras-course-teacher-inline small { color: #71847f; }.nibras-mini-avatar { display: grid; place-items: center; overflow: hidden; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; color: #08715e; background: #dcefe9; }.nibras-mini-avatar img { width:100%;height:100%;object-fit:cover; }
.nibras-course-facts { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }.nibras-course-facts li { display: flex; align-items: baseline; gap: .35rem; }.nibras-course-facts b { color:#064d41;font-size:1.15rem; }.nibras-course-facts span { color:#71847f;font-size:.82rem; }
.student-workspace-header { display:grid;grid-template-columns:112px minmax(0,1fr) minmax(190px,240px);align-items:center;gap:1.25rem;padding:1.25rem;border:1px solid #dce9e5;border-radius:1rem;background:#fff;box-shadow:0 .65rem 1.8rem rgba(4,65,55,.07); }
.student-workspace-course-image { display:grid;place-items:center;overflow:hidden;width:112px;aspect-ratio:1;border-radius:.65rem;color:#087762;background:#e4f2ee;font-weight:900; }.student-workspace-course-image img { width:100%;height:100%;object-fit:cover; }
.student-workspace-context { min-width:0; }.student-workspace-context h1 { overflow-wrap:anywhere;margin:.55rem 0;color:#073f35;font-size:1.55rem;font-weight:900;letter-spacing:0;line-height:1.3; }.student-workspace-context .nibras-course-teacher-inline { margin-top:.55rem; }.student-workspace-location { display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:0;color:#71847f;font-size:.9rem; }.student-workspace-location strong { color:#315950; }
.student-workspace-progress { padding-inline-start:1.25rem;border-inline-start:1px solid #e1ebe8; }.student-workspace-progress > div:first-child { display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#526a64;font-weight:750; }.student-workspace-progress strong { color:#076452;font-size:1.25rem; }.student-workspace-progress .progress { height:.55rem;margin:.65rem 0;background:#dfe9e6; }.student-workspace-progress .progress-bar { background:#087762; }.student-workspace-progress small { color:#71847f; }
.student-outline-toggle { grid-column:1/-1;justify-self:start; }.student-outline-offcanvas { width:min(88vw,390px); }.student-outline-offcanvas .offcanvas-title { color:#073f35;font-size:1.2rem;font-weight:900; }.student-outline-offcanvas .offcanvas-body { padding:0 1rem 1rem; }
.nibras-course-tabs { position: sticky; z-index: 8; top: .5rem; overflow-x: auto; margin-top: 1.25rem; border: 1px solid #dfeae7; border-radius: 1rem; background: rgba(255,255,255,.96); box-shadow: 0 .55rem 1.6rem rgba(4,65,55,.07); backdrop-filter: blur(12px); scrollbar-width: thin; }
.nibras-course-tabs .nav-tabs { flex-wrap: nowrap; min-width: max-content; padding-inline: .75rem; border: 0; }.nibras-course-tabs .nav-link { min-height: 54px; color: #526a64; border: 0; border-bottom: 3px solid transparent; border-radius: 0; font-weight: 800; white-space: nowrap; }.nibras-course-tabs .nav-link.active { color: #076452; border-bottom-color: #087762; background: transparent; }
.nibras-course-tab-content { padding-top: 1.25rem; }.nibras-content-card { padding: clamp(1.35rem,3vw,2.4rem); border: 1px solid #dfeae7; border-radius: 1.25rem; background:#fff;box-shadow:0 .7rem 2.2rem rgba(4,65,55,.06); }.nibras-content-card h2 { color:#064d41;font-weight:900; }.nibras-content-card h3 { margin-top:1.75rem;color:#165f52;font-size:1.2rem;font-weight:850; }
.nibras-outcomes { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0;padding:0;list-style:none; }.nibras-outcomes li { display:flex;gap:.65rem;padding:.85rem;border-radius:.8rem;background:#f1f8f5; }.nibras-outcomes span { color:#07816b;font-weight:900; }
.nibras-curriculum .accordion-item { overflow:hidden;margin-bottom:.85rem;border:1px solid #dfe9e6;border-radius:1rem!important;background:#fff;box-shadow:0 .45rem 1.4rem rgba(4,65,55,.05); }.nibras-curriculum .accordion-button { padding:1.15rem 1.25rem;color:#153f37;background:#fff;font-weight:800;box-shadow:none; }.nibras-curriculum .accordion-button:not(.collapsed) { color:#064d41;background:#eef8f5; }.nibras-curriculum .accordion-button > span { display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem;text-align:start; }.nibras-curriculum .accordion-button small { color:#6e827d;font-weight:650; }
.nibras-lesson-row { border-top:1px solid #e4ece9; }.nibras-lesson-summary { display:flex;align-items:center;gap:.9rem;width:100%;min-height:64px;padding:.75rem 1.15rem;text-align:start;border:0;background:#fff; }.nibras-lesson-summary:hover { background:#f7fbfa; }.nibras-lesson-row.is-current .nibras-lesson-summary { background:linear-gradient(90deg,#e7f5f1,#fff); }.nibras-lesson-state { display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;color:#07715e;border:1px solid #a8d4c8;border-radius:50%;font-weight:900; }.nibras-lesson-row.is-current .nibras-lesson-state { color:#fff;background:#087762;border-color:#087762; }.nibras-lesson-copy { display:flex;flex:1;flex-direction:column; }.nibras-lesson-copy small { color:#82928e;font-size:.72rem; }.nibras-lesson-copy strong { color:#244a42; }.nibras-lesson-meta { display:flex;align-items:center;gap:.75rem;color:#657b75;font-size:.78rem; }.nibras-lesson-panel { padding:1.25rem 1.5rem 1.75rem;background:#fbfcfb; }.nibras-lesson-panel h3 { color:#064d41;font-weight:900; }.nibras-player { overflow:hidden;margin:1rem 0 1.25rem;border-radius:1rem;background:#021e1a;box-shadow:0 1.2rem 2.5rem rgba(0,0,0,.16); }.nibras-player video { display:block;width:100%;aspect-ratio:16/9;background:#021e1a; }.nibras-player iframe { border:0; }.nibras-lesson-text { margin:1.25rem 0;line-height:1.9; }
.nibras-resource-list { display:grid;gap:.65rem;margin:1rem 0; }.nibras-resource-item { display:flex;align-items:center;gap:.8rem;padding:.9rem;border:1px solid #dfe9e6;border-radius:.85rem;background:#fff; }.nibras-resource-item > span { color:#087762;font-size:1.25rem; }.nibras-resource-item > div { display:flex;flex:1;flex-direction:column; }.nibras-resource-item small { color:#788985; }
.student-lesson-practice { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.25rem 0;padding:1rem;border-inline-start:4px solid #d6a529;border-radius:.5rem;background:#fff9e9; }.student-lesson-practice small { color:#776224;font-weight:800; }.student-lesson-practice h4 { margin:.15rem 0;color:#164d43;font-size:1.1rem;font-weight:900; }.student-lesson-practice p { margin:0;color:#65756f; }
.student-lesson-navigation { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #dfe9e6; }.student-lesson-navigation .btn { display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;padding:.8rem 1rem;text-align:start; }.student-lesson-navigation .btn > span { display:flex;min-width:0;flex-direction:column; }.student-lesson-navigation small { opacity:.78; }.student-lesson-navigation strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.student-nav-arrow { font-size:1.15rem; }.student-nav-arrow-previous::before { content:"→"; }.student-nav-arrow-next::before { content:"←"; }[dir="ltr"] .student-nav-arrow-previous::before { content:"←"; }[dir="ltr"] .student-nav-arrow-next::before { content:"→"; }
.student-course-teacher-details { display:grid;grid-template-columns:72px minmax(0,1fr);gap:1rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid #dfe9e6; }.student-course-teacher-details .nibras-teacher-photo { width:72px;height:72px;margin:0; }.student-course-teacher-details h3 { margin:0 0 .25rem; }.student-course-teacher-details p { margin:.35rem 0;color:#61746f; }.student-course-info-disclosure summary { color:#164d43;font-weight:900;cursor:pointer; }.student-course-info-disclosure[open] summary { margin-bottom:.75rem; }.student-course-info-disclosure summary:focus-visible { outline:3px solid rgba(8,119,98,.32);outline-offset:4px; }
.nibras-course-sidebar { display:grid;gap:1rem; }.nibras-side-card { padding:1.25rem;border:1px solid #dbe8e4;border-radius:1.15rem;background:#fff;box-shadow:0 .7rem 2rem rgba(4,65,55,.07); }.nibras-side-card h2 { margin-bottom:1rem;color:#164d43;font-size:1rem;font-weight:900; }.nibras-side-lesson-status { color:#087762;font-weight:750; }.nibras-progress-card { text-align:center; }.nibras-progress-card > strong { display:block;margin-top:.2rem;color:#164d43; }.nibras-progress-card > small { color:#73847f; }.nibras-progress-ring { display:grid;place-items:center;width:132px;height:132px;margin:1rem auto;border-radius:50%;background:conic-gradient(#087762 calc(var(--progress) * 1%),#e1ebe8 0);position:relative; }.nibras-progress-ring::after { position:absolute;width:102px;height:102px;content:"";border-radius:50%;background:#fff; }.nibras-progress-ring strong { z-index:1;color:#064d41;font-size:1.75rem; }.nibras-course-info { margin:0; }.nibras-course-info div { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid #e5ecea; }.nibras-course-info div:first-child { border-top:0; }.nibras-course-info dt { color:#72837e;font-size:.82rem;font-weight:650; }.nibras-course-info dd { margin:0;color:#244a42;font-weight:800; }
.nibras-teacher-card { text-align:center; }.nibras-teacher-photo { display:grid;place-items:center;overflow:hidden;width:92px;height:92px;margin:0 auto .85rem;color:#087762;border-radius:50%;background:#dcefe9;font-size:2rem; }.nibras-teacher-photo img { width:100%;height:100%;object-fit:cover; }.nibras-teacher-card h3 { font-size:1.1rem;font-weight:900; }.nibras-teacher-card p { color:#6a7c77;font-size:.86rem; }.nibras-question { padding:1rem 0;border-top:1px solid #e3ebe8; }.nibras-question h3 { margin:0 0 .5rem; }.nibras-question blockquote { padding:1rem;border-radius:.75rem;background:#f2f8f6; }
.nibras-course-page .btn-primary { border-color:#087762;background:#087762; }.nibras-course-page .btn-primary:hover { border-color:#055f4f;background:#055f4f; }.nibras-course-page .btn-outline-primary { color:#087762;border-color:#087762; }.nibras-course-page .btn-outline-primary:hover { color:#fff;background:#087762; }
.nibras-course-page :is(a,button,video,summary):focus-visible { outline:3px solid rgba(8,119,98,.38);outline-offset:3px; }.student-lesson-column,.nibras-lesson-copy,.nibras-lesson-panel { min-width:0; }
@media (min-width:992px) { .nibras-course-sidebar { position:sticky;top:1rem;order:-1; }.student-lesson-column { order:0; } }
@media (max-width:991.98px) { .student-workspace-header { grid-template-columns:96px minmax(0,1fr); }.student-workspace-course-image { width:96px; }.student-workspace-progress { grid-column:1/-1;padding:1rem 0 0;border-inline-start:0;border-top:1px solid #e1ebe8; }.nibras-course-sidebar { margin-top:1rem; }.nibras-curriculum-sidebar { display:none; }.nibras-progress-card { order:-1; } }
@media (max-width:575.98px) { .nibras-course-shell { padding-inline:.85rem; }.student-workspace-header { grid-template-columns:72px minmax(0,1fr);align-items:start;gap:.85rem;padding:1rem; }.student-workspace-course-image { width:72px; }.student-workspace-context h1 { margin:.4rem 0;font-size:1.2rem; }.student-workspace-context .nibras-course-teacher-inline { grid-column:1/-1; }.student-workspace-context .nibras-mini-avatar { width:36px;height:36px;flex-basis:36px; }.student-workspace-location { font-size:.8rem; }.nibras-course-tabs { margin-inline:-.2rem; }.nibras-outcomes { grid-template-columns:1fr; }.nibras-curriculum .accordion-button > span { align-items:flex-start;flex-direction:column;gap:.2rem; }.nibras-lesson-summary { align-items:flex-start;padding:.8rem; }.nibras-lesson-meta { align-items:flex-end;flex-direction:column;gap:.3rem; }.nibras-lesson-panel { padding:1rem; }.nibras-resource-item { align-items:flex-start;flex-wrap:wrap; }.nibras-resource-item .btn,.student-lesson-practice .btn { width:100%; }.student-lesson-practice { align-items:stretch;flex-direction:column; }.student-lesson-navigation { grid-template-columns:1fr; }.student-lesson-navigation .btn { width:100%; } }
@media (max-width:430px) { .student-workspace-header { grid-template-columns:56px minmax(0,1fr); }.student-workspace-course-image { width:56px; }.student-workspace-context .nibras-course-tags { gap:.25rem; }.student-workspace-context .nibras-course-tags span { padding:.25rem .5rem;font-size:.72rem; }.nibras-course-tabs .nav-link { min-height:48px;padding-inline:.75rem; }.nibras-lesson-copy strong { overflow-wrap:anywhere; } }
@media (prefers-reduced-motion:reduce) { .nibras-course-page * { scroll-behavior:auto!important;transition-duration:.01ms!important; } }

.student-portal-summary { display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 1.75rem;overflow:hidden;border:1px solid #cfe7e0;border-radius:1.35rem;background:radial-gradient(circle at 85% 10%,rgba(42,178,149,.2),transparent 30%),linear-gradient(135deg,#e8f7f3,#fbfdfc);box-shadow:0 .8rem 2.4rem rgba(4,65,55,.06); }
.student-portal-summary h1 { margin:.3rem 0;color:#073f35;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:900; }.student-portal-summary p { margin:0;color:#60766f; }
.student-portal-kpis { display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:.75rem; }.student-portal-kpis > div { display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;min-width:120px;padding:.85rem;border:1px solid rgba(8,119,98,.12);border-radius:1rem;background:rgba(255,255,255,.82); }.student-portal-kpis span { grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;color:#087762;border-radius:50%;background:#def1eb;font-weight:900; }.student-portal-kpis strong { color:#073f35;font-size:1.25rem; }.student-portal-kpis small { color:#71847f;white-space:nowrap; }
.student-portal-courses { padding:1.25rem;border:1px solid #dbe8e4;border-radius:1.35rem;background:#fff;box-shadow:0 .7rem 2rem rgba(4,65,55,.06); }.student-portal-section-heading { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem; }.student-portal-section-heading h2 { margin:0;color:#073f35;font-size:1.45rem;font-weight:900; }.student-portal-section-heading a { color:#087762;font-weight:800;text-decoration:none; }
.student-portal-course-strip { display:grid;grid-auto-columns:minmax(260px,310px);grid-auto-flow:column;gap:1rem;overflow-x:auto;padding:.2rem .15rem .75rem;scroll-snap-type:x proximity;scrollbar-width:thin; }.student-portal-course-card { overflow:hidden;color:inherit;border:2px solid transparent;border-radius:1rem;background:#fff;box-shadow:0 .45rem 1.5rem rgba(4,65,55,.08);text-decoration:none;scroll-snap-align:start;transition:transform .18s ease,border-color .18s ease; }.student-portal-course-card:hover { color:inherit;transform:translateY(-3px); }.student-portal-course-card.is-selected { border-color:#087762;box-shadow:0 .7rem 1.8rem rgba(8,119,98,.18); }.student-portal-course-image { display:grid;place-items:center;overflow:hidden;aspect-ratio:16/7;color:#087762;background:linear-gradient(135deg,#dcefe9,#f8fbfa);font-weight:900; }.student-portal-course-image img { width:100%;height:100%;object-fit:cover; }.student-portal-course-card-body { display:grid;gap:.7rem;padding:1rem; }.student-portal-course-card-body > strong { min-height:2.8rem;color:#153f37;font-size:1.05rem; }.student-portal-course-card-body small { color:#70827d; }.student-portal-course-card .progress { height:.42rem;background:#dfe9e6; }.student-portal-course-card .progress-bar { background:#0a8a71; }
.nibras-curriculum-sidebar { padding:0;overflow:hidden; }.nibras-curriculum-sidebar > h2 { margin:0;padding:1.15rem 1.2rem;border-bottom:1px solid #dfe9e6; }.nibras-side-unit > button { display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.9rem 1rem;color:#244b43;text-align:start;border:0;border-bottom:1px solid #e2ebe8;background:#f5faf8; }.nibras-side-unit > button small { color:#71847f;font-size:.72rem; }.nibras-side-lesson { display:flex;align-items:center;gap:.7rem;min-height:54px;padding:.65rem .9rem;color:#385c54;border-bottom:1px solid #e9efed;text-decoration:none; }.nibras-side-lesson:hover { color:#076452;background:#f5faf8; }.nibras-side-lesson.is-current { color:#075c4d;background:#e4f5f0;font-weight:800; }.nibras-side-lesson > span { display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;color:#087762;border:1px solid #acd5ca;border-radius:50%; }.nibras-side-lesson.is-current > span { color:#fff;background:#087762;border-color:#087762; }.nibras-side-lesson > div { display:flex;min-width:0;flex:1;flex-direction:column; }.nibras-side-lesson strong { overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap; }.nibras-side-lesson small { color:#7a8a86;font-size:.7rem;direction:ltr;text-align:end; }
.nibras-no-media { display:grid;place-items:center;margin:1rem 0;padding:2.5rem 1.25rem;text-align:center;border:1px dashed #b9d6ce;border-radius:1rem;background:#f2f8f6; }.nibras-no-media > span { display:grid;place-items:center;width:56px;height:56px;margin-bottom:.75rem;color:#087762;border-radius:50%;background:#dcefe9;font-size:1.25rem; }.nibras-no-media strong { color:#174d43; }.nibras-no-media p { margin:.35rem 0 0;color:#71847f; }
@media (min-width:992px) { .nibras-curriculum-sidebar { max-height:calc(100vh - 2rem);overflow-y:auto; } }
@media (max-width:991.98px) { .student-portal-summary { align-items:stretch;flex-direction:column; }.student-portal-kpis { grid-template-columns:repeat(3,1fr); }.nibras-curriculum-sidebar { order:-2; } }
@media (max-width:575.98px) { .student-portal-summary { padding:1.2rem; }.student-portal-kpis { grid-template-columns:1fr; }.student-portal-kpis > div { min-width:0; }.student-portal-course-strip { grid-auto-columns:minmax(245px,85vw); }.student-portal-courses { margin-inline:-.15rem;padding:1rem; }.student-portal-section-heading { align-items:flex-start; }.nibras-curriculum-sidebar { max-height:none; } }

.database-operation-overlay[hidden] { display:none; }
.database-operation-overlay { position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(1,29,25,.72);backdrop-filter:blur(4px); }
.database-operation-status { display:flex;align-items:center;flex-direction:column;gap:.9rem;width:min(92vw,420px);padding:2rem;text-align:center;border-radius:1.2rem;background:#fff;box-shadow:0 1.5rem 4rem rgba(0,0,0,.28); }
.database-operation-status .spinner-border { width:3rem;height:3rem; }
.database-operation-status strong { color:#064d41;font-size:1.15rem; }
.database-operation-status span { color:#657b75;font-size:.9rem; }
.database-operation-running { overflow:hidden; }

/* Nibras reporting workspace */
.reports-page{min-height:75vh;background:#f3f6f5;color:#173e37}.reports-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);max-width:1600px;margin:auto}.reports-sidebar{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;min-height:calc(100vh - 80px);padding:1.35rem;color:#fff;background:linear-gradient(180deg,#062f2b,#084d42)}
.reports-sidebar-brand{display:flex;align-items:center;gap:.8rem;padding:.65rem .5rem 1.35rem;border-bottom:1px solid rgba(255,255,255,.13)}.reports-sidebar-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:.8rem;color:#063d34;background:#f2b84b;font-size:1.3rem}.reports-sidebar-brand div{display:flex;min-width:0;flex-direction:column}.reports-sidebar-brand small{color:#b9d8d1;font-size:.72rem}.reports-sidebar nav{display:grid;gap:.35rem;padding-block:1.25rem}.reports-sidebar nav a,.reports-permission-link{display:flex;align-items:center;gap:.7rem;min-height:46px;padding:.7rem .8rem;color:#d8ece7;border-radius:.75rem;text-decoration:none;font-weight:750}.reports-sidebar nav a b{margin-inline-start:auto;padding:.15rem .5rem;border-radius:999px;background:rgba(255,255,255,.12);font-size:.7rem}.reports-sidebar nav a:hover,.reports-sidebar nav a:focus-visible,.reports-sidebar nav a.active{color:#fff;background:rgba(255,255,255,.13)}.reports-permission-link{margin-top:auto;border:1px solid rgba(255,255,255,.2)}
.reports-main{min-width:0;padding:clamp(1.25rem,3vw,2.5rem)}.reports-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.reports-header h1{margin:.25rem 0;color:#0a3f36;font-size:clamp(1.8rem,3vw,2.65rem);font-weight:900}.reports-header p{margin:0;color:#687b76}.reports-eyebrow,.reports-section-title>div>span{color:#0a806a;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.reports-section-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.reports-section-title h2{margin:.15rem 0 0;color:#164a40;font-size:1.22rem;font-weight:900}.reports-section-title small{color:#71837e}
.report-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:.9rem;margin-bottom:1.25rem}.report-kpi{position:relative;overflow:hidden;padding:1.15rem;border:1px solid #dbe7e3;border-radius:1rem;background:#fff;box-shadow:0 .45rem 1.4rem rgba(4,65,55,.05)}.report-kpi:before{position:absolute;inset:0 0 auto;height:4px;content:"";background:#315d55}.report-kpi span{display:block;min-height:2.4em;color:#70817d;font-size:.8rem;font-weight:750}.report-kpi strong{display:block;margin-top:.35rem;color:#123f36;font-size:1.75rem}.report-kpi.accent-green:before{background:#18a57f}.report-kpi.accent-blue:before{background:#3a83d4}.report-kpi.accent-gold:before{background:#e1a52f}.report-kpi.accent-red:before{background:#d65d59}.report-kpi.accent-purple:before{background:#8667c9}
.report-category-section{scroll-margin-top:1rem;margin-top:1.75rem}.report-catalogue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.report-catalogue-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.15rem;border:1px solid #dce7e4;border-radius:1rem;background:#fff;box-shadow:0 .45rem 1.5rem rgba(4,65,55,.05)}.report-card-icon{display:grid;place-items:center;width:48px;height:48px;color:#087762;border-radius:.85rem;background:#e3f2ee;font-size:1.35rem}.report-card-copy span{color:#07806a;font-size:.7rem;font-weight:800}.report-card-copy h3{margin:.15rem 0;color:#17483e;font-size:1rem;font-weight:900}.report-card-copy p{margin:0;color:#71817d;font-size:.78rem}.report-card-action form{margin:0}
.report-filter-panel,.report-chart-card,.report-results-card{margin-bottom:1.25rem;padding:1.25rem;border:1px solid #dbe7e3;border-radius:1rem;background:#fff;box-shadow:0 .5rem 1.6rem rgba(4,65,55,.055)}.report-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(115px,1fr)) auto;align-items:end;gap:.8rem}.filter-search{grid-column:span 2}.report-filter-grid label{display:block;margin-bottom:.35rem;color:#405f58;font-size:.76rem;font-weight:800}.report-filter-grid .form-control,.report-filter-grid .form-select{min-height:44px;border-color:#d2e0dc;border-radius:.65rem}.report-filter-submit{min-height:44px;white-space:nowrap}
.report-chart-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1rem}.report-line-chart{display:block;width:100%;height:230px;overflow:visible}.report-line-chart line{stroke:#d9e5e1;stroke-width:1}.report-line-chart polyline{fill:none;stroke:#0b806a;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 5px 5px rgba(11,128,106,.16))}.report-chart-axis{display:flex;justify-content:space-between;color:#748680;font-size:.72rem}.report-chart-card details{margin-top:.75rem;color:#567069;font-size:.76rem}.report-chart-card details ul{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin:.5rem 0;padding:0;list-style:none}.report-chart-card details li{display:flex;justify-content:space-between;padding:.35rem;background:#f4f8f6}.report-distribution-list{display:grid;gap:1rem}.report-distribution-list>div>div{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem;color:#365950;font-size:.8rem}.report-distribution-list progress{width:100%;height:.65rem;border:0;border-radius:999px;overflow:hidden;background:#e3ebe8}.report-distribution-list progress::-webkit-progress-bar{background:#e3ebe8}.report-distribution-list progress::-webkit-progress-value{background:linear-gradient(90deg,#0b806a,#3db99e)}.report-distribution-list progress::-moz-progress-bar{background:#0b806a}.report-empty-chart{display:grid;place-items:center;min-height:180px;color:#788984}
.report-results-card{padding:0;overflow:hidden}.report-results-card>.reports-section-title{padding:1.2rem 1.25rem 0}.report-results-card table{margin:0;white-space:nowrap}.report-results-card thead th{padding:.8rem 1rem;color:#536d66;background:#f0f6f4;font-size:.72rem;text-transform:uppercase}.report-results-card tbody td{padding:.85rem 1rem;border-color:#e5ecea;font-size:.82rem}.report-results-card td>strong,.report-results-card td>small{display:block}.report-results-card td>small{color:#7a8b86}.report-status{display:inline-flex;padding:.28rem .6rem;border-radius:999px;font-size:.72rem;font-weight:800}.report-status.is-positive{color:#08705d;background:#dff3ed}.report-status.is-muted{color:#6d7875;background:#e9edec}
@media(max-width:1199.98px){.report-kpi-grid{grid-template-columns:repeat(3,1fr)}.report-filter-grid{grid-template-columns:repeat(3,1fr)}.filter-search{grid-column:span 1}.report-catalogue-grid{grid-template-columns:1fr}}@media(max-width:991.98px){.reports-workspace{grid-template-columns:1fr}.reports-sidebar{position:static;min-height:0}.reports-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.reports-permission-link{margin-top:.5rem}.report-chart-grid{grid-template-columns:1fr}}@media(max-width:575.98px){.reports-main{padding:1rem}.reports-header{align-items:stretch;flex-direction:column}.reports-header .btn,.reports-header form{width:100%}.reports-sidebar nav{grid-template-columns:1fr}.report-kpi-grid{grid-template-columns:repeat(2,1fr)}.report-filter-grid{grid-template-columns:1fr}.report-filter-submit{width:100%}.report-catalogue-card{grid-template-columns:auto 1fr}.report-card-action{grid-column:1/-1}.report-card-action .btn,.report-card-action form{width:100%}.report-chart-card details ul{grid-template-columns:1fr}}

/* Unified user administration navigation and staff workspace. */
.user-admin-tabs{display:flex;gap:.35rem;overflow-x:auto;margin-bottom:1.25rem;padding:.4rem;border:1px solid #dce8e4;border-radius:1rem;background:#fff;box-shadow:0 .45rem 1.3rem rgba(4,65,55,.05)}.user-admin-tabs a{min-height:44px;padding:.65rem 1rem;color:#526c65;border-radius:.7rem;text-decoration:none;font-weight:800;white-space:nowrap}.user-admin-tabs a:hover,.user-admin-tabs a:focus-visible{color:#fff;background:#087762}.user-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding:1.4rem;border-radius:1.2rem;background:linear-gradient(135deg,#edf8f4,#fff);box-shadow:0 .65rem 1.8rem rgba(4,65,55,.06)}.user-admin-hero h1{margin:.2rem 0;color:#073f35;font-size:2rem;font-weight:900}.user-admin-hero p{margin-bottom:0;color:#667b74}.user-admin-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:.8rem;padding:1rem}.user-admin-filters label{display:block;margin-bottom:.35rem;color:#45635c;font-size:.78rem;font-weight:800}.user-admin-table-title{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid #e1ebe8}.user-admin-table-title h2{margin:0;color:#164a40;font-size:1.2rem;font-weight:900}.user-admin-table-title span{padding:.25rem .6rem;color:#08705d;border-radius:999px;background:#e2f3ee;font-weight:850}.user-admin-page td>small{display:block;color:#74857f}
@media(max-width:767.98px){.user-admin-hero{align-items:stretch;flex-direction:column}.user-admin-filters{grid-template-columns:1fr}.user-admin-filters .btn{width:100%}}

.package-image-editor{display:grid;grid-template-columns:minmax(180px,280px) 1fr;align-items:center;gap:1.25rem;padding:1rem;border:1px solid #dce8e4;border-radius:1rem;background:#f7fbfa}.package-image-editor>div{display:grid;place-items:center;overflow:hidden;aspect-ratio:16/9;color:#71847f;border-radius:.8rem;background:#e5efec}.package-image-editor img{width:100%;height:100%;object-fit:cover}.public-package-card{overflow:hidden}.public-package-card>img{width:100%;aspect-ratio:16/9;object-fit:cover}.package-details-card>img{display:block;width:min(100%,720px);aspect-ratio:16/7;margin:0 auto 1.5rem;object-fit:cover;border-radius:1rem}.landing-package-card{overflow:hidden}.landing-package-image{width:calc(100% + 2.5rem);max-width:none;aspect-ratio:16/8;margin:-1.25rem -1.25rem 1rem;object-fit:cover}
.landing-news-section{padding-block:4.5rem;background:#fbfcfa}.landing-news-section .landing-heading{margin-bottom:2.2rem}.landing-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.7rem;max-width:1180px;margin-inline:auto}.landing-news-card{display:flex;overflow:hidden;flex-direction:column;min-width:0;border:1px solid #c7ddd5;border-radius:1.15rem;background:#fff;box-shadow:0 .55rem 1.5rem rgba(3,63,54,.07);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.landing-news-card:hover{transform:translateY(-4px);border-color:#79b8a8;box-shadow:0 1rem 2.4rem rgba(3,63,54,.13)}.landing-news-image{display:block;overflow:hidden;aspect-ratio:16/10;background:#e9f1ee}.landing-news-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.landing-news-card:hover .landing-news-image img{transform:scale(1.025)}.landing-news-content{display:flex;flex:1;flex-direction:column;padding:1.15rem 1.2rem 1.25rem}.landing-news-content time{color:#71817c;font-size:.78rem}.landing-news-content h2,.landing-news-content h3{margin:.55rem 0 .65rem;color:#123f37;font-size:1.12rem;font-weight:850;line-height:1.55}.landing-news-content p{display:-webkit-box;overflow:hidden;margin-bottom:1.2rem;color:#536b64;font-size:.9rem;line-height:1.8;-webkit-box-orient:vertical;-webkit-line-clamp:3}.landing-news-content .btn{padding:.48rem 1rem;border-radius:.45rem}.news-page{max-width:1220px}.news-page-heading{text-align:center;margin-bottom:2.4rem}.news-page-heading span{color:#16816c;font-size:.78rem;font-weight:850}.news-page-heading h1{margin-top:.35rem;color:#103f36;font-size:2.1rem;font-weight:900}
@media(max-width:991.98px){.landing-news-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}}
@media(max-width:575.98px){.landing-news-section{padding-block:3rem}.landing-news-grid{grid-template-columns:1fr}.landing-news-card{border-radius:1rem}.landing-news-content{padding:1rem}.landing-news-content h2,.landing-news-content h3{font-size:1.05rem}}
@media(max-width:575.98px){.package-image-editor{grid-template-columns:1fr}}

/* Public experience polish: consistent density, cards, navigation and RTL. */
@media (min-width: 1200px) {
  .app-navbar > .container-fluid { flex-wrap: nowrap; }
  .app-navbar-brand { max-width: 10rem; flex: 0 0 auto; }
  .app-navbar-logo { max-width: 132px; height: 52px; }
  .app-navbar-primary { min-width: 0; gap: .05rem; }
  .app-navbar .nav-link { padding-inline: .55rem !important; font-size: .82rem; white-space: nowrap; }
  .app-navbar-actions { gap: .35rem !important; margin-inline-start: .4rem; padding-inline-start: .4rem; }
  .app-navbar-actions .btn { padding-inline: .55rem; font-size: .78rem; }
  body.landing-body > header .app-navbar-logo { max-width: 150px; height: 62px; }
}

@media (max-width: 1199.98px) {
  .app-navbar .navbar-collapse.show,
  .app-navbar .navbar-collapse.collapsing {
    max-height: calc(100vh - 92px);
    overflow-y: auto;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 1rem;
    background: rgba(3,63,54,.985);
    box-shadow: 0 1.25rem 3rem rgba(0,0,0,.28);
    backdrop-filter: blur(18px);
  }
  body.landing-body > header .app-navbar:has(.navbar-collapse.show),
  body.landing-body > header .app-navbar:has(.navbar-collapse.collapsing) {
    background: rgba(3,63,54,.98);
  }
  .app-navbar .navbar-collapse .dropdown-menu { position: static; margin-block: .35rem; box-shadow: none; }
  .app-navbar-actions { align-items: stretch !important; }
  .app-navbar-actions > a,
  .app-navbar-actions > form { flex: 1 1 9rem; }
  .app-navbar-actions .btn { width: 100%; min-height: 44px; }
}

.landing-body .landing-section { padding-block: clamp(3.5rem,5vw,5.5rem); }
.landing-body .landing-managed-section { padding-block: clamp(2.5rem,4vw,3.75rem); }
.landing-course-grid,
.landing-teacher-grid,
.landing-package-grid,
.landing-news-grid { align-items: stretch; }
.landing-course-card,
.landing-teacher-card,
.landing-package-card,
.landing-news-card,
.public-package-card,
.teacher-directory-card { height: 100%; }
.landing-course-card { display: flex; flex-direction: column; }
.landing-course-body { display: flex; flex: 1; flex-direction: column; }
.landing-course-body h3 { min-height: 2.9em; }
.landing-course-body > p { min-height: 4.8em; }
.landing-course-facts { margin-top: auto; }
.landing-teacher-card h3 { min-height: 1.5em; }
.landing-teacher-card .landing-avatar { aspect-ratio: 4/3; height: auto; }
.landing-teacher-card .landing-avatar-photo { width: 100%; height: 100%; object-fit: cover; }
.landing-package-card h3 { min-height: 2.8em; }
.landing-package-card p { display: -webkit-box; min-height: 4.8em; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.public-package-card { display: flex; flex-direction: column; }
.public-package-card .card-body { display: flex; flex: 1; flex-direction: column; }
.public-package-card .btn { margin-top: auto; }
.teacher-directory-photo { aspect-ratio: 4/3; }
.landing-news-content h3 { min-height: 3.1em; }
.landing-news-content p { min-height: 5.4em; }
[dir="rtl"] .landing-heading-actions > a span[aria-hidden="true"] { transform: scaleX(-1); }

@media (max-width: 575.98px) {
  body.landing-body > header .app-navbar { min-height: 76px; }
  body.landing-body > header .app-navbar-logo { max-width: 115px; height: 54px; }
  .app-navbar .navbar-collapse.show,
  .app-navbar .navbar-collapse.collapsing { margin-inline: -.25rem; padding: .85rem; }
  .app-navbar .nav-link { min-height: 46px; padding-inline: .85rem !important; }
  .landing-body .landing-section { padding-block: 3rem; }
  .landing-body .landing-managed-section { padding-block: 2.5rem; }
  .landing-course-body h3,
  .landing-course-body > p,
  .landing-package-card h3,
  .landing-package-card p,
  .landing-news-content h3,
  .landing-news-content p { min-height: 0; }
}
.database-maintenance-page { max-width: 1440px; padding-inline: clamp(1rem, 3vw, 2.5rem); }
.database-maintenance-page .admin-surface { min-width: 0; }
.database-backup-create { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.database-backup-create > div { min-width: 0; }
.database-backup-create > form { flex: 0 0 auto; }
.database-backup-database { overflow-wrap: anywhere; font-weight: 600; }
.database-backup-list { display: grid; gap: 1rem; }
.database-backup-item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 21rem); gap: 1.5rem; padding: 1.5rem; border: 1px solid #dce8e4; border-radius: 1rem; background: #fff; }
.database-backup-info { min-width: 0; }
.database-backup-name { margin: .4rem 0 1.25rem; font-size: 1rem; font-weight: 600; line-height: 1.6; overflow-wrap: anywhere; text-align: start; }
.database-backup-metadata { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 0; }
.database-backup-metadata dt { margin-bottom: .35rem; font-size: .85rem; font-weight: 400; color: #566b66; }
.database-backup-metadata dd { margin: 0; white-space: nowrap; font-size: .95rem; }
.database-backup-actions { display: flex; flex-direction: column; align-items: stretch; gap: .6rem; border-inline-start: 1px solid #e3ece8; padding-inline-start: 1.5rem; }
.database-backup-actions summary { display: block; width: 100%; }
.database-backup-actions .btn, .database-backup-create .btn { min-height: 44px; white-space: normal; }
.database-backup-notice { padding: .85rem 1rem; border-radius: .65rem; background: #f2f6f4; color: #52665e; font-size: .9rem; line-height: 1.8; }
.database-backup-empty { padding: 2rem; text-align: center; border: 1px dashed #c9d9d2; border-radius: 1rem; }
@media (max-width: 767.98px) {
  .database-backup-create { align-items: stretch; flex-direction: column; }
  .database-backup-item { grid-template-columns: minmax(0, 1fr); padding: 1rem; }
  .database-backup-actions { border-inline-start: 0; border-block-start: 1px solid #e3ece8; padding-inline-start: 0; padding-block-start: 1rem; }
  .database-maintenance-page .admin-surface { padding: 1rem !important; }
}
.news-admin-page { max-width: 1440px; padding-inline: clamp(1rem, 3vw, 2.5rem); }
.news-admin-search { display: flex; gap: .75rem; max-width: 700px; }
.news-admin-search input { min-width: 0; }
.news-admin-table { table-layout: fixed; }
.news-admin-table th:first-child { width: 46%; }
.news-admin-table th:nth-child(2) { width: 15%; }
.news-admin-table th:nth-child(3) { width: 16%; }
.news-admin-table th:last-child { width: 23%; }
.news-admin-table td { padding-block: 1.25rem; }
.news-admin-story { display: flex; align-items: start; gap: 1rem; }
.news-admin-story > div { min-width: 0; }
.news-admin-thumbnail { width: 76px; height: 76px; border-radius: .7rem; object-fit: cover; flex-shrink: 0; }
.news-admin-title { font-weight: 700; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.news-admin-summary { margin: .45rem 0; font-size: .9rem; color: #566b66; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.news-admin-landing { display: block; margin-top: .65rem; color: #566b66; }
.news-admin-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.news-admin-actions .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.news-editor-toolbar:not([hidden]) { display: flex; flex-wrap: wrap; gap: .35rem; padding: .65rem; border: 1px solid #ccdcd5; border-radius: .65rem .65rem 0 0; background: #f3f8f6; }
.news-editor-toolbar .btn { min-width: 44px; min-height: 44px; font-weight: 600; }
.news-editor-canvas { min-height: 320px; max-height: 650px; overflow: auto; padding: 1.25rem; border: 1px solid #ccdcd5; border-top: 0; border-radius: 0 0 .65rem .65rem; background: #fff; }
.news-editor-canvas:focus { outline: 3px solid rgba(11,107,88,.25); outline-offset: 2px; }
.news-body { line-height: 2; overflow-wrap: anywhere; }
.news-body h2, .news-body h3 { margin-block: 1rem; line-height: 1.5; }
.news-body blockquote { border-inline-start: 4px solid var(--brand); padding-inline-start: 1rem; color: #566b66; }
.news-preview-image { width: 100%; max-height: 440px; object-fit: contain; margin-bottom: 1.5rem; border-radius: 1rem; }
@media (max-width: 991.98px) {
  .news-admin-table, .news-admin-table tbody, .news-admin-table tr, .news-admin-table td { display: block; width: 100%; }
  .news-admin-table thead { display: none; }
  .news-admin-table tr { border: 1px solid #dce8e4; border-radius: .8rem; margin-bottom: 1rem; padding: 1rem; }
  .news-admin-table td { padding: .6rem 0; border: 0; }
  .news-admin-table td[data-label]::before { content: attr(data-label); display: block; font-weight: 600; margin-bottom: .4rem; }
  .news-admin-page > .admin-surface { padding: 1rem !important; }
}
.certificate-designer { max-width: 1800px; }
.designer-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.designer-grid { display: grid; grid-template-columns: 220px minmax(0,1fr) 245px; gap: 1rem; align-items: start; }
.designer-grid aside { min-width: 0; }
.designer-workspace { min-width: 0; overflow: auto; padding: 16px; background: #e5e9ed; border-radius: .75rem; direction: ltr; }
.designer-workspace .canvas-container { margin-inline: auto; box-shadow: 0 4px 20px #172a2a20; }
.designer-grid label { font-size: .9rem; }
.designer-toolbar .btn, .designer-grid .btn { min-height: 44px; }
@media (max-width: 1100px) {
  .designer-grid { grid-template-columns: 200px minmax(0,1fr); }
  .designer-grid > aside:last-child { grid-column: 1 / -1; }
}
@media (max-width: 650px) { .designer-grid { grid-template-columns: minmax(0,1fr); } }
/* Certificate administration remains usable in Arabic RTL and narrow viewports. */
.certificate-admin-nav { overflow-x: auto; flex-wrap: nowrap; padding-bottom: .25rem; }
.certificate-admin-nav .nav-link { white-space: nowrap; }
.certificate-assignment-table form { min-width: 58rem; }
@media (max-width: 767.98px) {
  .certificate-admin-nav { margin-inline: -.75rem; padding-inline: .75rem; }
  .certificate-assignment-table { min-width: 0; }
  .certificate-assignment-table thead { display: none; }
  .certificate-assignment-table tbody,
  .certificate-assignment-table tr,
  .certificate-assignment-table td { display: block; width: 100%; }
  .certificate-assignment-table tr { border: 1px solid var(--bs-border-color); border-radius: .75rem; margin-bottom: 1rem; padding: .75rem; }
  .certificate-assignment-table td { border: 0; }
  .certificate-assignment-table form { min-width: 0; }
}
