/* ==========================================================
   Jawda V68 — hard navy unification
   Final override loaded after all legacy/page CSS.
   Goal: every portal page title strip + every sidebar dashboard
   identity uses the same teacher-dashboard navy language.
   ========================================================== */
:root{
  --jx-v68-navy:#0b2754;
  --jx-v68-navy-2:#123b73;
  --jx-v68-navy-3:#1b4b89;
  --jx-v68-border:#284f83;
  --jx-v68-sub:#dbe8fa;
  --jx-v68-shadow:0 8px 18px rgba(11,39,84,.12);
}

/* One authoritative navy background for every page-title component in the portals. */
html body :is(
  .jawda-page-heading,
  .academic-hero,
  .bill-hero,
  .care-heading,
  .project-hero,
  .sa-hero,
  .acc-hero,
  .teacher-messages-heading,
  .leq-hero,
  .qb-hero,
  .events-page-heading,
  .leqs-head,
  .readiness-page-head,
  .responsible-welcome,
  .billing-workspace-head,
  .lectures-hero-box,
  .chgcat-hero,
  .teacher-pay-hero,
  .ov-hero
){
  background:linear-gradient(110deg,var(--jx-v68-navy),var(--jx-v68-navy-2) 68%,var(--jx-v68-navy-3))!important;
  background-color:var(--jx-v68-navy)!important;
  border-color:var(--jx-v68-border)!important;
  color:#fff!important;
  box-shadow:var(--jx-v68-shadow)!important;
}

/* Dashboard greeting in the teacher portal was explicitly made light in V67; V68 keeps it navy too. */
html body.teacher-page-shell .ov-hero,
html body.teacher-portal-page .ov-hero{
  min-height:52px!important;
  padding:8px 12px!important;
  margin-bottom:14px!important;
  border:1px solid var(--jx-v68-border)!important;
  border-radius:13px!important;
  background:linear-gradient(110deg,var(--jx-v68-navy),var(--jx-v68-navy-2) 68%,var(--jx-v68-navy-3))!important;
  color:#fff!important;
  box-shadow:var(--jx-v68-shadow)!important;
}
html body.teacher-page-shell .ov-hero :is(h1,h2,h3,strong),
html body.teacher-portal-page .ov-hero :is(h1,h2,h3,strong){color:#fff!important}
html body.teacher-page-shell .ov-hero :is(p,small,.text-muted),
html body.teacher-portal-page .ov-hero :is(p,small,.text-muted){color:var(--jx-v68-sub)!important}

/* Text inside every title strip is forced to the same white / soft-white palette,
   including legacy .fw-bold/.text-muted blocks that are not semantic h1/p elements. */
html body :is(
  .jawda-page-heading,
  .academic-hero,
  .bill-hero,
  .care-heading,
  .project-hero,
  .sa-hero,
  .acc-hero,
  .teacher-messages-heading,
  .leq-hero,
  .qb-hero,
  .events-page-heading,
  .leqs-head,
  .readiness-page-head,
  .responsible-welcome,
  .billing-workspace-head,
  .lectures-hero-box,
  .chgcat-hero,
  .teacher-pay-hero,
  .ov-hero
) :is(h1,h2,h3,h4,.fw-bold,.qb-hero-title,.section-title,strong){
  color:#fff!important;
}
html body :is(
  .jawda-page-heading,
  .academic-hero,
  .bill-hero,
  .care-heading,
  .project-hero,
  .sa-hero,
  .acc-hero,
  .teacher-messages-heading,
  .leq-hero,
  .qb-hero,
  .events-page-heading,
  .leqs-head,
  .readiness-page-head,
  .responsible-welcome,
  .billing-workspace-head,
  .lectures-hero-box,
  .chgcat-hero,
  .teacher-pay-hero,
  .ov-hero
) :is(p,small,.text-muted,.qb-hero-sub){
  color:var(--jx-v68-sub)!important;
}

/* Legacy student tools whose page heading is the first card head rather than a named hero. */
html body.student-learning-page .previous-exams-page > .student-tool-page-content > .row > .col-12 > .soft-card > .card-head,
html body.student-learning-page.readiness-page .readiness-page-head{
  min-height:52px!important;
  padding:8px 12px!important;
  margin-bottom:0!important;
  border:1px solid var(--jx-v68-border)!important;
  border-radius:13px 13px 0 0!important;
  background:linear-gradient(110deg,var(--jx-v68-navy),var(--jx-v68-navy-2) 68%,var(--jx-v68-navy-3))!important;
  background-color:var(--jx-v68-navy)!important;
  color:#fff!important;
  box-shadow:var(--jx-v68-shadow)!important;
}
html body.student-learning-page .previous-exams-page > .student-tool-page-content > .row > .col-12 > .soft-card > .card-head :is(.fw-bold,strong,h1,h2,h3){color:#fff!important}
html body.student-learning-page .previous-exams-page > .student-tool-page-content > .row > .col-12 > .soft-card > .card-head :is(.text-muted,small){color:var(--jx-v68-sub)!important}

/* Buttons that sit inside a navy title strip must stay readable and visually consistent. */
html body :is(
  .jawda-page-heading,.academic-hero,.bill-hero,.care-heading,.project-hero,
  .sa-hero,.acc-hero,.teacher-messages-heading,.leq-hero,.qb-hero,
  .events-page-heading,.leqs-head,.readiness-page-head,.responsible-welcome,
  .billing-workspace-head,.lectures-hero-box,.chgcat-hero,.teacher-pay-hero,.ov-hero
) :is(.btn,a.btn){
  border-color:rgba(255,255,255,.38)!important;
  color:#fff!important;
}
html body :is(
  .jawda-page-heading,.academic-hero,.bill-hero,.care-heading,.project-hero,
  .sa-hero,.acc-hero,.teacher-messages-heading,.leq-hero,.qb-hero,
  .events-page-heading,.leqs-head,.readiness-page-head,.responsible-welcome,
  .billing-workspace-head,.lectures-hero-box,.chgcat-hero,.teacher-pay-hero,.ov-hero
) :is(.btn-light,a.btn-light){
  background:rgba(255,255,255,.95)!important;
  border-color:rgba(255,255,255,.95)!important;
  color:var(--jx-v68-navy)!important;
}

/* ==========================================================
   Sidebar dashboard identity — direct selectors, no body-class dependency.
   This fixes staff pages embedded in billing/care shells too.
   ========================================================== */
html body .rw-actions > .rw-dashboard-link,
html body .staff-role-menu > .rw-dashboard-entry,
html body .responsible-mobile-offcanvas .rw-dashboard-entry,
html body .teacher-mobile-offcanvas .rw-dashboard-entry,
html body .acc-sidebar .acc-sidebar-head{
  background:linear-gradient(110deg,var(--jx-v68-navy),var(--jx-v68-navy-2) 68%,var(--jx-v68-navy-3))!important;
  background-color:var(--jx-v68-navy)!important;
  border-color:#244d82!important;
  color:#fff!important;
  box-shadow:0 9px 20px rgba(7,24,63,.16)!important;
}
html body .rw-actions > .rw-dashboard-link :is(span,strong,small,i),
html body .staff-role-menu > .rw-dashboard-entry :is(span,strong,small,i),
html body .responsible-mobile-offcanvas .rw-dashboard-entry :is(span,strong,small,i),
html body .teacher-mobile-offcanvas .rw-dashboard-entry :is(span,strong,small,i),
html body .acc-sidebar .acc-sidebar-head :is(strong,small,i){
  color:#fff!important;
}
html body .acc-sidebar .acc-sidebar-head-icon{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.20)!important;
  color:#fff!important;
}

/* The dashboard label itself must never inherit blue/gray text from legacy menu CSS. */
html body :is(.rw-dashboard-link,.rw-dashboard-entry,.acc-sidebar-head) > span,
html body .acc-sidebar-head > div > strong,
html body .acc-sidebar-head > div > small{
  color:#fff!important;
}

/* Generic staff lead rows recognized by V67 keep the exact same navy, not a page-specific tint. */
html body.staff-visual-v21 main > .d-flex.align-items-center.gap-3.mb-3:has(>div>h1),
html body.staff-visual-v21 main > .d-flex.align-items-center.gap-3.mb-3:has(>h1){
  background:linear-gradient(110deg,var(--jx-v68-navy),var(--jx-v68-navy-2) 68%,var(--jx-v68-navy-3))!important;
  background-color:var(--jx-v68-navy)!important;
  border-color:var(--jx-v68-border)!important;
  color:#fff!important;
}
html body.staff-visual-v21 main > .d-flex.align-items-center.gap-3.mb-3:has(>div>h1) :is(h1,h2,h3,strong){color:#fff!important}
html body.staff-visual-v21 main > .d-flex.align-items-center.gap-3.mb-3:has(>div>h1) :is(p,small,.text-muted){color:var(--jx-v68-sub)!important}

@media(max-width:767.98px){
  html body.teacher-page-shell .ov-hero,
  html body.teacher-portal-page .ov-hero,
  html body.student-learning-page .previous-exams-page > .student-tool-page-content > .row > .col-12 > .soft-card > .card-head{
    min-height:48px!important;
    padding:7px 9px!important;
    border-radius:11px!important;
  }
}
