/* Cabinet UI only. Shared tokens are supplied by variables.css. */
/* Explicit bridge: legacy sheets contain !important rules. Restrict overrides
   to page chrome and named components instead of resetting interactive sheets. */
html body.ds-site{font-family:var(--font-family)!important;font-size:var(--fs-body)!important;line-height:var(--lh-body);color:var(--color-text)!important;--font-sans:var(--font-family);--font-serif:var(--font-family)}

body.ds-site :is(.unified-header,.topbar,.student-sidebar,.student-heading,.dashboard-pane,.row28,.inner-hero,.inner-body,.glass-intro,.footer,.site-links){font-family:var(--font-family)!important}

body.ds-site :is(.homework-count,.chat-nav-count40,.chat-count40,.fresh-badge39,.row28-state){font-family:var(--font-family)!important;font-size:var(--fs-meta)!important;line-height:var(--lh-meta)!important;font-variant-numeric:tabular-nums}

body.ds-site :is(.glass-intro,.inner-hero-copy,.student-heading) h1{font-family:var(--font-family)!important;font-size:var(--fs-h1)!important;font-weight:600!important;line-height:var(--lh-h1)!important;letter-spacing:var(--tracking-heading)!important;white-space:normal!important;margin:0 0 var(--space-sm)!important}

body.ds-site :is(.gateway-copy,.approach,.exams-head,.footer-top) h2{font-family:var(--font-family)!important;font-size:var(--fs-h2)!important;line-height:var(--lh-h2)!important;letter-spacing:var(--tracking-heading)!important;font-weight:600!important}

body.ds-site :is(.aud-card,.exam-card,.material-card,.scenario-card) h3{font-family:var(--font-family)!important;font-size:var(--fs-h3)!important;line-height:var(--lh-heading)!important;letter-spacing:var(--tracking-heading)!important}

body.ds-site :is(.glass-note,.aud-tag,.free-kicker,.eyebrow-label,.exam-sub,.row28-copy small,.row28-copy p,.feedback-intro,.student-subtitle){font-size:var(--fs-meta)!important;line-height:var(--lh-meta)!important;color:var(--color-text-muted)}

body.ds-site :is(.glass-lead,.approach-text,.aud-card p,.scenario-card p,.inner-hero-copy>p){font-size:var(--fs-body)!important;line-height:var(--lh-body)!important;color:var(--color-text-muted)}

/* Shared button family. No fixed height: allow translated labels and zoom. */
body.ds-site :is(.btn,.btn-primary,.btn-secondary,.btn-ghost){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--button-height-md)!important;height:auto;max-width:100%;padding:var(--space-xs) var(--space-sm)!important;border-radius:var(--radius-md)!important;font-family:var(--font-family)!important;font-size:var(--fs-body)!important;font-weight:600;line-height:1.25!important;text-decoration:none;box-shadow:none!important;transition:background-color var(--duration-fast),border-color var(--duration-fast)}

body.ds-site :is(.btn,.btn-primary){background:var(--color-accent)!important;color:var(--color-on-accent)!important;border:1px solid var(--color-border-strong)!important}

body.ds-site :is(.btn-secondary,.btn-ghost,.glass-secondary,.contact-picker>.btn){background:var(--color-surface)!important;color:var(--color-accent-text)!important;border:1px solid var(--color-border-strong)!important}

body.ds-site :is(.glass-actions,.gateway-copy,.footer-top) .btn{min-height:var(--button-height-lg)!important;padding-inline:var(--space-md)!important}

body.ds-site :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}

body.ds-site :is(.btn,.btn-primary,.btn-secondary,.btn-ghost):disabled{opacity:.55;cursor:not-allowed}

/* Plain surfaces are the default. Glass is reserved for the hero/header. */
body.ds-site :is(.aud-card,.exam-card,.format-card,.material-card,.scenario-card,.formats-teaser-copy,.approach-grid,.try-now,.footer-top){padding:var(--card-padding)!important;border-radius:var(--radius-lg)!important;background:var(--color-surface)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;min-width:0}

body.ds-site.app28 :is(.dashboard-pane,.feed-card.row28,.next-action,.catalog-row,.timeline-row){border-radius:var(--radius-md)!important;background:var(--color-surface)!important;border:1px solid var(--color-border)!important;box-shadow:none!important;backdrop-filter:none!important;padding:var(--card-padding)!important}

body.ds-site.app28 .row28-copy h3{font-size:var(--fs-h3)!important;line-height:var(--lh-heading)!important}

body.ds-site.app28 .student-dashboard-grid{gap:var(--space-md)!important}

body.ds-site.app28 :is(.student-sidebar a,.student-bottom-nav a){font-family:var(--font-family)!important;font-size:var(--fs-meta)!important}

body.ds-site :is(.glass-intro,.unified-header){background:var(--color-glass-fallback)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-glass)!important;border-radius:var(--radius-lg)!important}

@supports (backdrop-filter:blur(1px)){body.ds-site :is(.glass-intro,.unified-header){background:var(--color-glass)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important}
}

@media(max-width:600px){
 body.ds-site :is(.inner-hero-copy,.student-heading) h1{font-size:var(--fs-h2)!important}

 body.ds-site.app28 .feed-card.row28{grid-template-columns:40px minmax(0,1fr)!important;gap:var(--space-xs) var(--space-sm)!important}

 body.ds-site.app28 .feed-card.row28>.row28-copy{grid-column:2!important;grid-row:1!important}

 body.ds-site.app28 .feed-card.row28>.row28-state{grid-column:2!important;grid-row:2!important;max-width:100%!important;justify-self:start}

 body.ds-site.app28 .feed-card.row28>.row28-actions{grid-column:1/-1!important;grid-row:3!important;max-width:100%!important}

 body.ds-site.app28 .feed-card.row28>.row28-icon{grid-column:1!important;grid-row:1!important}
}

@media(hover:hover){body.ds-site :is(.aud-card,.exam-card,.material-card):hover{transform:translateY(-2px)!important;transition:transform var(--duration-normal);box-shadow:var(--shadow-glass)!important}
body.ds-site .btn-primary:not(:disabled):hover{background:var(--color-accent-hover)!important}
}

@media(prefers-reduced-motion:reduce){body.ds-site :is(.btn,.btn-primary,.btn-secondary,.btn-ghost,.aud-card,.exam-card,.material-card){transition:none!important;transform:none!important}
}

body.ds-site :is(h1,h2,h3,h4,h5,h6){font-family:var(--font-family)!important;line-height:var(--lh-heading)!important;letter-spacing:var(--tracking-heading)!important}

body.ds-site.app28 :is(button,.button,.action-btn){font-family:var(--font-family)!important;border-radius:var(--radius-md)!important}

body.ds-site.app28 :is(.dashboard-pane,.feed-card.row28,.next-action,.catalog-row,.timeline-row){border-radius:var(--radius-lg)!important}

@media(prefers-reduced-transparency:reduce){body.ds-site :is(.aud-card,.exam-card,.glass-intro,.inner-chapter,.faq-item,.pull-quote,.next-step,.mission-gateway,.footer-top){background:var(--color-surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

/* Base type applies to utility pages too; geometry stays scoped to named UI. */
body,button,input,select,textarea{font-family:var(--font-family)!important}

/* Step 1: student home only. Keep the rest of the cabinet unchanged. */
body.app28 .app-nudge{
 width:100%;max-width:640px;box-sizing:border-box;align-self:start;
 display:flex;flex-direction:column;align-items:stretch;gap:var(--space-16);
 margin:var(--space-24) 0!important;padding:var(--space-24)!important;
 border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;
 background:rgb(40 62 74 / 70%)!important;color:var(--color-text)!important;
 backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));
 box-shadow:var(--shadow-glass)!important;font-family:var(--font-family)!important;
}
body.app28 .app-nudge>div:first-child{flex:0 1 auto;min-width:0}
body.app28 .app-nudge strong{display:block;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text)}
body.app28 .app-nudge p{font-size:14px;line-height:var(--lh-body);color:var(--color-text-muted);margin:var(--space-4) 0 0;max-width:52ch}
body.app28 .app-nudge .nudge-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-8);min-width:0}
body.app28 .app-nudge .nudge-actions button{min-height:var(--button-height-md)!important;max-width:100%;padding:var(--space-8) var(--space-16)!important;font-size:14px!important;line-height:var(--lh-body)!important;border-radius:var(--radius-md)!important;white-space:normal;overflow-wrap:anywhere}
body.app28 .app-nudge .nudge-actions .nudge-never{flex-basis:100%;justify-content:flex-start;background:transparent!important;border:0!important;padding-left:0!important;min-height:44px!important;text-decoration:underline;text-underline-offset:3px;color:var(--color-text-muted)!important}
body.app28 .app-nudge button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){body.app28 .app-nudge{background:var(--color-glass-fallback)!important}}
@media(max-width:480px){body.app28 .app-nudge{padding:var(--space-16)!important;margin:var(--space-16) 0!important}body.app28 .app-nudge .nudge-actions>.btn-primary,body.app28 .app-nudge .nudge-actions>.btn-ghost:not(.nudge-never){flex:1 1 120px}}

body.ds-site.app28{--accent:var(--color-accent)}
body.ds-site.app28 :is(.btn-primary,button.btn-primary,a.btn-primary){background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:var(--color-on-accent)!important}
body.ds-site.app28 .btn-primary:not(:disabled):hover{background:var(--color-accent-hover)!important}

/* v40.74: one visual authority for page chrome. Document and game coordinates stay untouched. */
html body.ds-site{--accent:var(--color-accent);--brand:var(--color-accent);--primary:var(--color-accent)}
html body.ds-site :is(h1,h2,h3,h4,h5,h6){line-height:var(--lh-heading)!important;letter-spacing:var(--tracking-heading)!important;font-family:var(--font-family)!important}
html body.ds-site :is(.page-title,.ws-heading h1,.game-shell41>h1){font-size:clamp(1.5625rem,3vw,2rem)!important}
html body.ds-site :is(.btn-primary,button.primary,a.primary,.theme-action.primary){background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:var(--color-on-accent)!important}
html body.ds-site :is(.btn-primary,button.primary,a.primary):hover{background:var(--color-accent-hover)!important}
html body.ds-site :is(.btn-primary,.btn-ghost,.btn-secondary,button.primary,.ws-actions button,.ws-top button,.ws-view-tools button,.game-practice-actions50 button,.game-practice-controls50 select){font-family:var(--font-family)!important;border-radius:var(--radius-md)!important;min-height:44px!important;box-sizing:border-box}
html body.ds-site :is(.panel,.theme-panel,.dashboard-pane,.work-card,.diag-card,.catalog-row,.timeline-row,.ws-panel,.ws-card,.game-panel41,.game-practice50,.next-action,.feed-card.row28){border-radius:var(--radius-lg)!important;border-color:var(--color-border)!important;background:var(--color-surface)!important;color:var(--color-text)!important;min-width:0}
html body.ds-site :is(.topbar,.ws-top,.game-top41){font-family:var(--font-family)!important;background:var(--color-glass)!important;color:var(--color-text)!important;border-color:var(--color-border)!important;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}
html body.ds-site .site-navigation{display:none!important}
html body.ds-site :is(.student-sidebar,.student-bottom-nav,.teacher-sidebar) a[aria-current=page]{background:var(--color-accent-soft)!important;color:var(--color-accent-text)!important;border-radius:var(--radius-sm)!important}
html body.ds-site .cabinet-utility-nav{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);padding:var(--space-16) var(--space-24);border-bottom:1px solid var(--color-border);background:var(--color-glass);font-family:var(--font-family);backdrop-filter:blur(var(--glass-blur))}
html body.ds-site .cabinet-utility-nav a{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-8) var(--space-12);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;line-height:1.4}
html body.ds-site .cabinet-utility-nav a[aria-current=page]{background:var(--color-accent-soft);color:var(--color-accent-text)}
html body.ds-site .cabinet-utility-nav a:first-child{font-weight:700}
html body.ds-site :is(.ws-heading,.ws-view-tools,.ws-actions,.ws-top){color:var(--color-text)!important}
html body.ds-site .hint{color:var(--color-text-muted)}
/* Preserve the white worksheet canvas, printed content, input geometry and game illustrations. */
@media(max-width:480px){html body.ds-site .cabinet-utility-nav{padding:var(--space-8) var(--space-16);gap:var(--space-4)}html body.ds-site .cabinet-utility-nav a{font-size:14px}}
@media(prefers-reduced-transparency:reduce){html body.ds-site :is(.app-nudge,.topbar,.ws-top,.cabinet-utility-nav){background:var(--color-glass-fallback)!important;backdrop-filter:none!important}}

html body.ds-site .practice-picker100 input[type=range]{accent-color:var(--color-accent)}
html body.ds-site .practice-chips100 button[aria-pressed=true]{background:var(--color-accent-soft)!important;color:var(--color-accent-text)!important;border-color:var(--color-accent-text)!important}
html body.ds-site :is(.game-practice-controls50 select,.game-practice-actions50 button:not(.btn-primary)){background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important}

html body.ds-site :is(.topbar,.ws-top) a{color:var(--color-text)!important}
html body.ds-site :is(.topbar,.ws-top) nav a[aria-current=page]{color:var(--color-accent-text)!important;border-color:var(--color-accent-text)!important;background:var(--color-accent-soft)!important;border-radius:var(--radius-md)!important}
html body.ds-site :is(input,select,textarea):not(.ws-page input,.ws-page select,.ws-page textarea){background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border-strong)!important;border-radius:var(--radius-md)!important}
html body.ds-site :is(input,textarea):not(.ws-page input,.ws-page textarea)::placeholder{color:var(--color-text-muted)}
html body.ds-site :is(.ws-panel,.ws-card) :is(h2,h3,p,label){color:var(--color-text)!important}
html body.ds-site :is(.ws-heading,.ws-view-tools,#editor-tools) .hint{color:var(--color-text-muted)!important}
html body.ds-site :is(.quick-tools,#dropzone){background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border-strong)!important;border-radius:var(--radius-md)!important}
html body.ds-site #dropzone :is(strong,span){color:var(--color-text-muted)!important}
html body.ds-site .quick-tools button{color:var(--color-text)!important;background:transparent!important}
html body.ds-site .quick-tools button:hover{background:var(--color-surface-hover)!important}
html body.ds-site .cabinet-utility-header nav{display:none!important}

html body.ds-site .hint:not(.ws-page .hint){color:var(--color-text-muted)!important}
html body.ds-site .ws-actions button:not(.primary){background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border-strong)!important}
html body.ds-site .cabinet-utility-header{background:var(--color-glass)!important;color:var(--color-text)!important;border-bottom:1px solid var(--color-border)}
html body.ds-site .cabinet-utility-header a{color:var(--color-text)!important}




html body.ds-site:not([data-game]){background:var(--color-bg)!important}
