/* RC196 Theme Contract: the LAST LessonSky frontend style.
   The legacy styles remain available for geometry, but their component surfaces
   use the three mode tokens below. Never style WordPress admin from this file.
   This contract is evaluated for both html and body classes during bootstrap. */
:is(html.lessonsky-light body,body.lessonsky-light){
  --sk196-bg:#f1f5fa;--sk196-card:#ffffff;--sk196-panel:#f7faff;
  --sk196-inset:#edf3fa;--sk196-text:#172b47;--sk196-heading:#102643;
  --sk196-muted:#526781;--sk196-line:#cad7e7;--sk196-strong-line:#a5bcd5;
  --sk196-link:#20528d;--sk196-control:#f0f5fc;--sk196-control-text:#173c6a;
  --sk196-primary:#315fba;--sk196-on-primary:#fff;--sk196-focus:#235eaa;
  --sk196-hero-top:#e7f2ff;--sk196-hero-end:#f4f0ff;
  --sk196-ok-bg:#e4f5ec;--sk196-ok-ink:#175b3c;
  --sk196-wrong-bg:#fcece8;--sk196-wrong-ink:#922f35;
}
:is(html.lessonsky-dim body,body.lessonsky-dim){
  --sk196-bg:#dce5f0;--sk196-card:#f0f5fb;--sk196-panel:#e8eff8;
  --sk196-inset:#d7e2ef;--sk196-text:#203650;--sk196-heading:#172e49;
  --sk196-muted:#475f78;--sk196-line:#b1c4da;--sk196-strong-line:#90aaca;
  --sk196-link:#204c7f;--sk196-control:#d5e1f1;--sk196-control-text:#173857;
  --sk196-primary:#355f9b;--sk196-on-primary:#fff;--sk196-focus:#245a9c;
  --sk196-hero-top:#d2e3f3;--sk196-hero-end:#e5e8f4;
  --sk196-ok-bg:#d5ebe0;--sk196-ok-ink:#205940;
  --sk196-wrong-bg:#f5e1de;--sk196-wrong-ink:#84353b;
}
:is(html.lessonsky-dark body,body.lessonsky-dark){
  --sk196-bg:#0a1729;--sk196-card:#182e49;--sk196-panel:#203b5a;
  --sk196-inset:#10243d;--sk196-text:#eaf3ff;--sk196-heading:#f5faff;
  --sk196-muted:#c7d8ed;--sk196-line:#4a698b;--sk196-strong-line:#698bad;
  --sk196-link:#bcddff;--sk196-control:#274463;--sk196-control-text:#f3f8ff;
  --sk196-primary:#4076c6;--sk196-on-primary:#fff;--sk196-focus:#abd9ff;
  --sk196-hero-top:#193e66;--sk196-hero-end:#30365e;
  --sk196-ok-bg:#153e38;--sk196-ok-ink:#bef6d9;
  --sk196-wrong-bg:#512f3c;--sk196-wrong-ink:#ffdcdf;
}

/* RC197: the application and host WordPress theme may generate different
   header wrappers. JS tags ONLY top-row profile and locale controls; style
   those exact elements instead of guessing which header owns them. */
html body [data-sk196-control="profile"],
html body [data-sk196-control="locale"]{
 box-sizing:border-box!important;
 background:var(--sk196-control)!important;background-image:none!important;
 color:var(--sk196-control-text)!important;
 -webkit-text-fill-color:var(--sk196-control-text)!important;
 border:1px solid var(--sk196-strong-line)!important;
 box-shadow:none!important;text-shadow:none!important;opacity:1!important;
 color-scheme:normal;min-width:0;max-width:100%;
}
html body [data-sk196-control] :is(span,strong,b,small,i,svg){
 color:var(--sk196-control-text)!important;
 -webkit-text-fill-color:var(--sk196-control-text)!important;
 opacity:1!important;
}
html body [data-sk196-control]:focus-visible{outline:3px solid var(--sk196-focus)!important;outline-offset:3px!important}
html body [data-sk196-control="locale"] option{background:var(--sk196-card)!important;color:var(--sk196-text)!important}
html body [data-sk196-control="profile"] :is(.avatar,[class*="avatar"]){
 color:#fff!important;-webkit-text-fill-color:#fff!important;
 background:#173e71!important;border-radius:999px;
}

/* RC203: only an explicitly identified top navigation control receives this
   high-specificity override. Host themes can set #masthead .nav-actions .locale
   to white !important; do not repeat blind !important rules on every button. */
html body :is(#masthead,.ls-site-header,.ls-global-header,.ls-app-header,.site-header,.sk-mobile-topbar,.sk-global-nav,header[role="banner"])
[data-sk196-control][data-sk196-control]{
 background:var(--sk196-control,#274463)!important;
 background-image:none!important;
 color:var(--sk196-control-text,#f3f8ff)!important;
 -webkit-text-fill-color:var(--sk196-control-text,#f3f8ff)!important;
 border-color:var(--sk196-strong-line,#698bad)!important;
 box-shadow:none!important;
}

/* Fix the original web and native mobile identity without depending on JS. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-mobile-topbar .sk-mobile-profile-pill{
  background:var(--sk196-control)!important;color:var(--sk196-control-text)!important;
  border-color:var(--sk196-strong-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-mobile-topbar .sk-mobile-profile-pill :is(.sk-mobile-profile-name,strong,span){color:var(--sk196-control-text)!important}

/* Learner history: older assessment-history-rc68.css forced white rows and
   dark text with !important in all three modes. Restore contrast everywhere. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
:is(.sk-rc68-history-link,.sk-rc68-question,.sk-rc68-result,.sk80-history-body,.sk-rc68-solution[open],.sk-rc68-answer span){
  background:var(--sk196-card)!important;background-image:none!important;
  border-color:var(--sk196-line)!important;color:var(--sk196-text)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
:is(.sk-rc68-history-link,.sk-rc68-question,.sk-rc68-result,.sk80-history-body) :is(strong,h2,h3,b,.sk-rc68-stem){
  color:var(--sk196-heading)!important;opacity:1!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
:is(.sk-rc68-history-link,.sk-rc68-question,.sk-rc68-result,.sk80-history-body) :is(small,p,span,.sk-rc68-question-heading,.sk-rc68-score){
  color:var(--sk196-muted)!important;opacity:1!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-history-link:is(:hover,:focus-visible,.is-selected){background:var(--sk196-panel)!important;border-color:var(--sk196-strong-line)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-options li{background:var(--sk196-panel)!important;border-color:var(--sk196-line)!important;color:var(--sk196-text)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-options li.is-answer{background:var(--sk196-ok-bg)!important;color:var(--sk196-ok-ink)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-options li.is-selected:not(.is-answer){background:var(--sk196-wrong-bg)!important;color:var(--sk196-wrong-ink)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-solution>summary{color:var(--sk196-link)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-toolbar :is(button,a){background:var(--sk196-control)!important;color:var(--sk196-control-text)!important;border-color:var(--sk196-line)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-rc68-toolbar :is(button.is-selected,button[aria-pressed="true"]){background:var(--sk196-primary)!important;color:var(--sk196-on-primary)!important}

/* Learn 4.0 studio: all three modes share coherent text / surfaces, including
   details/summary and guided activity areas without blank white islands. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell{--il-ink:var(--sk196-text);--il-muted:var(--sk196-muted);--il-line:var(--sk196-line);color:var(--sk196-text)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-hero{
  background:linear-gradient(125deg,var(--sk196-hero-top),var(--sk196-hero-end))!important;
  border-color:var(--sk196-strong-line)!important;
  color:var(--sk196-heading)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-hero :is(h1,h2,strong,.sk-il-kicker){color:var(--sk196-heading)!important;opacity:1!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-hero p{color:var(--sk196-muted)!important;opacity:1!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-workspace,.sk-il-catalog,.sk-il-group,.sk-il-guided,.sk-il-guided-steps,.sk-il-summary,.sk-il-outcome,.sk-il-lesson,.sk-il-panel,.sk-il-notice){
  background:var(--sk196-card)!important;background-image:none!important;
  border-color:var(--sk196-line)!important;color:var(--sk196-text)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-group>summary,.sk-il-tab,.sk-il-topic,.sk-il-objectives li,.sk-il-concept,.sk-il-guided-answer input,.sk-il-steps li,.sk-il-map,.sk-il-parts,.sk-il-guided-forget,.sk-il-draft){
  background:var(--sk196-panel)!important;background-image:none!important;
  border-color:var(--sk196-line)!important;color:var(--sk196-text)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-back,.sk-il-scope a,.sk-il-langs a,.sk-il-link,.sk-il-search input){
  background:var(--sk196-control)!important;color:var(--sk196-control-text)!important;border-color:var(--sk196-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-tab.is-current,.sk-il-tab[aria-selected="true"],.sk-il-scope a.is-active,.sk-il-langs a.is-active,.sk-il-topic.is-current){
  background:var(--sk196-primary)!important;color:var(--sk196-on-primary)!important;border-color:var(--sk196-strong-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(h1,h2,h3,h4,strong,.sk-il-cat-head h2,.sk-il-workspace-head h2){color:var(--sk196-heading)!important;opacity:1!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(p,small,.sk-il-guided-copy,.sk-il-guided-note,.sk-il-search span){color:var(--sk196-muted)!important;opacity:1!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-group>summary,.sk-il-topic.is-current,.sk-il-tab.is-current) :is(strong,small){color:inherit!important}

/* Student Learn subject accordion: keep summary and counters readable even
   when older component rules force a white-to-white gradient. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-learn-subject,.sk-learn-topic-card,.sk-learn-lesson-body{
  background:var(--sk196-card)!important;background-image:none!important;
  border-color:var(--sk196-line)!important;color:var(--sk196-text)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-learn-subject>summary,.sk-learn-topic-card>details>summary{
  background:var(--sk196-panel)!important;background-image:none!important;
  border-color:var(--sk196-line)!important;color:var(--sk196-text)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-learn-subject>summary :is(strong,small,span),
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-learn-topic-card :is(strong,h2,h3){color:var(--sk196-heading)!important;opacity:1!important}

/* High-impact shared cards/forms without altering progress bars, score colors,
   native select checkmarks, or status badges. Avoid a universal * reset. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-profile-center :is(.sk-profile-tabs,.sk-profile-panel,.sk-profile-summary-item,.sk-profile-topic-row,.sk-profile-toggle,.sk-profile-completion,.sk-profile-action-box){
  background:var(--sk196-card)!important;background-image:none!important;
  color:var(--sk196-text)!important;border-color:var(--sk196-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-profile-center :is(.sk-profile-summary-item,.sk-profile-topic-row,.sk-profile-completion,.sk-profile-action-box) :is(strong,b,h2,h3){color:var(--sk196-heading)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-profile-center :is(.sk-profile-summary-item,.sk-profile-topic-row,.sk-profile-completion,.sk-profile-action-box) :is(p,small,span){color:var(--sk196-muted)!important}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-shell :is(input[type="search"],input[type="text"],input[type="number"],input[type="email"],input[type="date"],select,textarea){
  background:var(--sk196-inset)!important;color:var(--sk196-text)!important;
  border-color:var(--sk196-strong-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-shell :is(input,textarea)::placeholder{color:var(--sk196-muted)!important;opacity:1!important}

/* RC182-191 use --s182 palette; normalize lo\u015f and align with new contract. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
:is(.sk182-weekly,.sk182-today,.sk182-preview){
  --s182-bg:var(--sk196-panel);--s182-card:var(--sk196-card);
  --s182-ink:var(--sk196-text);--s182-muted:var(--sk196-muted);
  --s182-line:var(--sk196-line);--s182-link:var(--sk196-link);
  --s182-accent:var(--sk196-focus);--s182-track:var(--sk196-inset);
}

/* WCAG keyboard focus and narrow-width controls, no new fixed overlays. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
:is(.sk-il-shell,.sk-shell,.sk80-workspace) :is(a,button,input,textarea,select,summary):focus-visible{
  outline:3px solid var(--sk196-focus)!important;outline-offset:3px!important;
}
@media(max-width:767px){
  :is(.ls-site-header,.ls-global-header,.ls-app-header,.site-header,#masthead,.sk-mobile-topbar,header[role="banner"],.sk-global-nav,body > header,#page > header)
  [data-sk196-control]{min-height:36px;flex-shrink:1;overflow:hidden;text-overflow:ellipsis}
  .sk-il-shell{min-width:0;max-width:100%;padding-inline:clamp(10px,3vw,24px)}
  .sk-il-hero{flex-wrap:wrap;min-width:0}
  .sk-rc68-history-link{min-width:0;max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  :is(.sk-il-shell,.sk-rc68-history-link,.sk-learn-subject) *{scroll-behavior:auto!important}
}

/* RC196 visual-review follow-up: the lesson list kept a white inner backing,
   despite correct dark topic cards. This surface is owned by Learn 4.0. */
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-catalog-grid,.sk-il-lab,.sk-il-quiz,.sk-il-reflect,.sk-il-evidence,.sk-il-parts,.sk-il-guided-steps,.sk-il-steps li){
  background:var(--sk196-inset)!important;background-image:none!important;
  color:var(--sk196-text)!important;border-color:var(--sk196-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell :is(.sk-il-quiz label,.sk-il-guided-opt,.sk-il-lab input[type="text"],.sk-il-reflect textarea,.sk-il-plot){
  background:var(--sk196-card)!important;color:var(--sk196-text)!important;
  border-color:var(--sk196-line)!important;
}
:is(html.lessonsky-light body,html.lessonsky-dim body,html.lessonsky-dark body,body.lessonsky-light,body.lessonsky-dim,body.lessonsky-dark)
.sk-il-shell .sk-il-topic.is-current :is(strong,small){color:var(--sk196-on-primary)!important}

/* Host navbar ink is owned by the host theme: RC196's forced
   light-mode heading text made links invisible on dark navbars. */
