/* 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}

/* v40.75: final review of populated cabinet screens. */
body.ds-site.app28 .student-dashboard-grid{display:grid!important;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)!important;grid-template-areas:'next next' 'lesson lesson' 'homework feedback'!important;align-items:start!important}
body.ds-site.app28 .student-dashboard-grid>#dashboard{grid-area:next!important;order:0!important;align-self:start!important}
body.ds-site.app28 .student-dashboard-grid>.lesson-pane{grid-area:lesson!important;order:1!important}
body.ds-site.app28 .student-dashboard-grid>.homework-pane{grid-area:homework!important;order:2!important}
body.ds-site.app28 .student-dashboard-grid>.feedback-pane{grid-area:feedback!important;order:3!important}
body.ds-site.app28 .student-dashboard-grid :is(#dashboard,#dashboard>div,.next-action,.feedback-pane){height:auto!important;min-height:0!important;position:relative!important;inset:auto!important;transform:none!important}
body.ds-site.app28 .next-action{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:var(--space-16)!important}
body.ds-site.app28 .next-action p{grid-column:1/-1;overflow-wrap:anywhere;margin:0!important}
body.ds-site.app28 .next-action :is(h2,h3){overflow-wrap:anywhere;margin:0!important}
body.ds-site.app28 :is(.row28-copy,.feedback-pane,#progress-summary){min-width:0;overflow-wrap:anywhere}
@media(max-width:1300px){body.ds-site.app28 .student-dashboard-grid{display:flex!important;flex-direction:column!important}body.ds-site.app28 .student-dashboard-grid>*{width:100%!important;box-sizing:border-box;min-width:0!important}body.ds-site.app28 .next-action{grid-template-columns:1fr!important}body.ds-site.app28 .next-action>a{justify-self:start}}
body.ds-site .profile28{position:relative}
body.ds-site .profile28>summary{display:flex!important;align-items:center!important;gap:var(--space-12)!important;cursor:pointer;list-style:none}
body.ds-site .profile28>summary::-webkit-details-marker{display:none}
body.ds-site .profile28-toggle{min-width:44px;min-height:44px;background:transparent!important;border:0!important;color:var(--color-text)!important;border-radius:var(--radius-md)!important;cursor:pointer;font:inherit}
body.ds-site .profile28-items{position:absolute;right:0;top:calc(100% + var(--space-8));min-width:240px;width:max-content;max-width:calc(100vw - var(--space-32));display:flex!important;flex-direction:column;gap:var(--space-8)!important;padding:var(--space-12)!important;background:var(--color-surface)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;z-index:100;box-shadow:var(--shadow-glass)}
body.ds-site .profile28:not([open])>.profile28-items{display:none!important}
body.ds-site .profile28-items::before{content:'';position:absolute;top:calc(-1 * var(--space-12));height:var(--space-12);left:0;right:0}
body.ds-site .profile28-items>:is(a,button){width:100%;justify-content:flex-start!important;text-align:left!important;padding:var(--space-12) var(--space-16)!important;min-height:44px!important;font:600 1rem/1.4 var(--font-family)!important;white-space:normal!important;margin:0!important;box-sizing:border-box;border-radius:var(--radius-md)!important}
body.ds-site.app28.compact-login #live-view:not([hidden]){padding:var(--space-48)!important;box-sizing:border-box;border-radius:var(--radius-lg)!important;column-gap:var(--space-48)!important;overflow:hidden}
body.ds-site.compact-login .london36{width:88%!important;justify-self:center;margin:var(--space-16) auto!important}
body.ds-site.compact-login .login-fields36{min-width:0;width:100%;padding:0!important}
@media(max-width:800px){body.ds-site.app28.compact-login #live-view:not([hidden]){padding:var(--space-24)!important;gap:var(--space-16)!important}body.ds-site.compact-login #live-view .london36{width:180px!important;max-width:70%!important}body.ds-site.compact-login .login-fields36{display:block!important}body.ds-site.compact-login #live-form input{min-height:48px!important}body.ds-site.compact-login #live-form .field-label{font-size:14px!important}}
body.ds-site :is(.tabs,.teacher-tabs){display:flex;flex-wrap:wrap;gap:var(--space-12)!important;align-items:center}
body.ds-site .tab{font:600 1rem/1.4 var(--font-family)!important;min-height:44px!important;padding:var(--space-12) var(--space-16)!important;border:1px solid var(--color-border-strong)!important;border-radius:var(--radius-md)!important;background:var(--color-surface)!important;color:var(--color-accent-text)!important;box-shadow:none!important;text-shadow:none!important}
body.ds-site .tab.active{background:var(--color-accent-soft)!important;color:var(--color-text)!important;border-color:var(--color-accent-text)!important}
body.ds-site .ws-review-toolbar{display:flex!important;flex-wrap:wrap;align-items:center;gap:var(--space-16)!important}
body.ds-site .ws-review-toolbar>input[type=search]{flex-basis:100%;box-sizing:border-box}
body.ds-site .review-queue-link{margin-top:var(--space-8)!important}
body.ds-site .vocab-view-tabs{display:flex;flex-wrap:wrap;gap:var(--space-12)!important;padding-bottom:var(--space-16)!important;margin-bottom:var(--space-24)!important;border-bottom:1px solid var(--color-border)!important}
body.ds-site .collection-select100{padding:var(--space-16)!important;display:flex;flex-direction:column;gap:var(--space-12)!important;border-radius:var(--radius-lg)!important;background:var(--color-surface)!important;border:1px solid var(--color-border)!important;min-width:0}
body.ds-site .collection-select100>button:first-child{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:var(--radius-md)!important;padding:var(--space-8)!important;text-align:left;color:var(--color-text)!important;white-space:normal;overflow-wrap:anywhere}
body.ds-site .collection-select100>button:first-child:is(:hover,[aria-pressed=true]){background:var(--color-accent-soft)!important}
body.ds-site .collection-select100>button small{display:block;color:var(--color-text-muted)!important;line-height:var(--lh-body)!important;margin-top:var(--space-8)}
body.ds-site #page-tabs{display:flex;flex-wrap:wrap;gap:var(--space-8)!important;margin:var(--space-24) 0!important}
body.ds-site #page-tabs button{font:600 1rem/1.4 var(--font-family)!important;border-radius:var(--radius-md)!important;background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;padding:var(--space-12) var(--space-16)!important;min-height:44px}
body.ds-site #page-tabs button[aria-pressed=true]{background:var(--color-accent-soft)!important;color:var(--color-text)!important;border-color:var(--color-accent-text)!important}
body.ds-site :is(.editor-delete,.game-trash104,.catalog-delete){color:var(--color-accent-text)!important;background:var(--color-surface)!important;border:1px solid var(--color-border-strong)!important;box-shadow:none!important}
body.ds-site .editor-delete{width:auto!important;font:600 1rem/1.4 var(--font-family)!important;min-height:44px!important;padding:var(--space-12) var(--space-16)!important;border-radius:var(--radius-md)!important;font-size:1rem!important}
body.ds-site .editor-delete::before{display:none!important}
body.ds-site .editor-batch{display:flex!important;flex-direction:column!important;gap:var(--space-16)!important;padding:var(--space-24)!important}
body.ds-site .editor-control-group{display:flex;flex-wrap:wrap;gap:var(--space-8);align-items:center;min-width:0}
body.ds-site .editor-group-label{display:block;width:100%;font-size:14px;font-weight:600;color:var(--color-text-muted);line-height:var(--lh-body)}
body.ds-site :is(.editor-control-group,.editor-task-group)>button{font:600 1rem/1.4 var(--font-family)!important;background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;border-radius:var(--radius-md)!important;padding:var(--space-12) var(--space-16)!important;min-height:44px!important;max-width:100%;white-space:normal;box-shadow:none!important}
body.ds-site #quick-tools{display:flex!important;flex-wrap:wrap!important;gap:var(--space-24)!important;align-items:flex-start;padding:var(--space-24)!important}
body.ds-site .editor-task-group{display:flex;flex-wrap:wrap;gap:var(--space-8);flex:1 1 300px;min-width:0}
body.ds-site #dropzone{padding:var(--space-24)!important;border-radius:var(--radius-lg)!important;margin-bottom:var(--space-24)!important}
body.ds-site #field-toolbar{gap:var(--space-16)!important;margin-top:var(--space-16)!important}
body.ds-site.library-page :is(.catalog-layout>nav,.library-card,.library-empty,.library-dialog,.library-dialog .dialog-actions){background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border)!important;border-radius:var(--radius-lg)!important;box-shadow:none!important;--ink:var(--color-text);--navy:var(--color-text);--muted:var(--color-text-muted);--line:var(--color-border)}
body.ds-site.library-page :is(.catalog-layout>nav,.library-card,.library-empty,.library-dialog) :is(p,small,label,h2,h3,h4,strong,summary){color:var(--color-text)!important}
body.ds-site.library-page :is(.tree-book[open]>summary,.tree-unit[open]>summary){background:var(--color-accent-soft)!important;color:var(--color-accent-text)!important;border-radius:var(--radius-md)!important}
body.ds-site.library-page :is(.tree-file,.library-word,.library-resource){color:var(--color-text)!important;background:var(--color-surface)!important;border-color:var(--color-border)!important;border-radius:var(--radius-md)!important}
body.ds-site.library-page :is(.catalog-layout>nav,.library-card,.library-dialog) .btn-ghost{background:var(--color-surface)!important;color:var(--color-accent-text)!important;border-color:var(--color-border-strong)!important;border-radius:var(--radius-md)!important}
body.ds-site.app28 .catalog-row{position:relative!important;display:flex!important;flex-wrap:wrap;align-items:center!important;gap:var(--space-16)!important;padding:var(--space-24)!important;padding-right:var(--space-96)!important;min-height:0!important}
body.ds-site .catalog-row h3{margin:0!important;flex:1 1 280px;min-width:0;overflow-wrap:anywhere}
body.ds-site .catalog-row>.catalog-tools{display:flex!important;flex-wrap:wrap;align-items:center;gap:var(--space-8)!important;flex:1 1 100%;margin:0!important}
body.ds-site .catalog-row>.catalog-delete{position:absolute!important;top:var(--space-24);right:var(--space-24);width:44px!important;min-height:44px!important;padding:var(--space-8)!important;border-radius:var(--radius-md)!important;font-size:0!important}
body.ds-site .catalog-row>.catalog-delete:not(:has(svg))::before{content:'×';font:600 24px/1 var(--font-family);color:var(--color-accent-text)}
body.ds-site .game-word-preview{margin-top:var(--space-12);font-size:14px;line-height:var(--lh-body);max-width:100%}
body.ds-site .game-word-preview summary{cursor:pointer;color:var(--color-accent-text);padding-block:var(--space-8);min-height:44px;box-sizing:border-box}
body.ds-site .game-word-list ul{list-style:none;padding:0;margin:var(--space-8) 0;display:grid;gap:var(--space-8)}
body.ds-site .game-word-list li{display:flex;flex-wrap:wrap;gap:var(--space-8);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-8);overflow-wrap:anywhere}
body.ds-site .game-word-list li>span{color:var(--color-text-muted)}
body.ds-site .game-topic{font-size:14px;line-height:var(--lh-body);color:var(--color-text-muted);margin:var(--space-8) 0}
body.ds-site:has(.free-stats) .topbar,body.ds-site:has(#free-stats) .topbar{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;background:var(--color-surface)!important;box-sizing:border-box;padding-inline:max(var(--page-gutter),calc((100vw - 1180px)/2))!important}
body.ds-site.free-stats-page>header{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;background:var(--color-surface)!important;box-sizing:border-box;padding:var(--space-16) max(var(--page-gutter),calc((100vw - 1180px)/2))!important;display:flex;justify-content:space-between;gap:var(--space-16);flex-wrap:wrap}
body.ds-site .editor-delete svg{width:20px;height:20px;color:var(--color-accent-text)!important}
body.ds-site .editor-batch{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;box-shadow:none!important;background:var(--color-surface)!important}
body.ds-site .editor-batch>strong,body.ds-site .editor-batch>.hint{grid-column:1/-1}
body.ds-site #quick-tools{border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;box-shadow:none!important;background:var(--color-surface)!important}
body.ds-site.app28 :is(.dashboard-pane,.feed-card.row28,.next-action,.catalog-row){border-radius:var(--radius-lg)!important}
@media(max-width:1300px){body.ds-site.app28.app28 #dashboard .next-action{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:var(--space-16)!important}body.ds-site.app28.app28 #dashboard .next-action .btn-primary{align-self:flex-start!important}}
@media(max-width:1100px){body.ds-site.app28.student-dashboard-v40 .student-sidebar{display:none!important}body.ds-site.app28.student-dashboard-v40>.shell{margin-left:0!important;margin-right:0!important;padding:var(--space-24) var(--page-gutter) var(--space-96)!important}body.ds-site.student-dashboard-v40 .student-bottom-nav{display:flex!important;position:fixed;z-index:100;left:var(--space-16);right:var(--space-16);bottom:max(var(--space-12),env(safe-area-inset-bottom));padding:var(--space-8);gap:var(--space-4);background:var(--color-glass);border:1px solid var(--color-border);border-radius:var(--radius-lg);backdrop-filter:blur(var(--glass-blur))}body.ds-site.student-dashboard-v40 .student-bottom-nav :is(a,button){display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);font:500 12px/1.4 var(--font-family);padding:var(--space-4);min-height:48px;background:transparent;border:0;color:var(--color-text);text-decoration:none;border-radius:var(--radius-md)}body.ds-site.student-dashboard-v40 .student-bottom-nav svg{width:24px;height:24px}}
@media(max-width:700px){body.ds-site .editor-batch{grid-template-columns:minmax(0,1fr)!important}body.ds-site #quick-tools{padding:var(--space-16)!important}body.ds-site .profile28-items{min-width:220px}}
body.ds-site .profile28>summary{border-radius:var(--radius-md)!important;border-color:var(--color-border-strong)!important;font:600 1rem/1.4 var(--font-family)!important;padding:var(--space-8) var(--space-12)!important}
body.ds-site #settings-toggle{font:600 1rem/1.4 var(--font-family)!important;border-radius:var(--radius-md)!important;padding:var(--space-12) var(--space-16)!important;min-height:44px!important;background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;box-shadow:none!important}
body.ds-site.compact-login .role-switch35>span,body.ds-site.compact-login #live-form>button[type=submit]{background:var(--color-accent)!important;color:var(--color-on-accent)!important;border-radius:var(--radius-md)!important}
body.ds-site.compact-login .role-switch35>button{font:600 1rem/1.4 var(--font-family)!important;border-radius:var(--radius-md)!important}
body.ds-site.compact-login .role-switch35{padding:var(--space-4)!important;border-radius:var(--radius-lg)!important;background:var(--color-bg)!important;border-color:var(--color-border-strong)!important}
html body.ds-site #work-refresh,html body.ds-site>header button.icon{border-radius:var(--radius-md)!important;font-family:var(--font-family)!important}
html body.ds-site.app28 :is(#work-student,#work-state,#work-search,#work-refresh){border-radius:var(--radius-md)!important;font-family:var(--font-family)!important}

/* v40.78: real cabinet selectors, including legacy app28 overrides. */
html body.ds-site.app28.library-page :is(.catalog-layout>nav,.library-card,.library-empty,.library-dialog){background:var(--color-surface)!important;color:var(--color-text)!important;color-scheme:dark;border-color:var(--color-border)!important}
html body.ds-site.app28.library-page :is(.catalog-layout>nav,.library-card,.library-empty,.library-dialog) :is(p,small,label,h2,h3,h4,strong,summary,.tree-file,.tree-empty){color:var(--color-text)!important;opacity:1!important}
html body.ds-site.app28.library-page :is(.tree-book,.tree-unit,.library-resource){color:var(--color-text)!important;border-color:var(--color-border)!important;background:transparent!important}
html body.ds-site.app28.library-page :is(.catalog-layout>nav,.library-card,.library-dialog) :is(.btn-ghost,.btn-secondary,a:not(.btn-primary)){color:var(--color-accent-text)!important;background:var(--color-surface)!important;border-color:var(--color-border-strong)!important}
html body.ds-site.app28.library-page :is(.tree-book[open]>summary,.tree-unit[open]>summary){color:var(--color-accent-text)!important;background:var(--color-accent-soft)!important}
html body.ds-site.app28.library-page :is(.catalog-layout>nav,.library-card,.library-dialog) :is(input,select,textarea){color:var(--color-text)!important;background:var(--color-surface)!important;color-scheme:dark}
html body.ds-site #worksheet-tree107{background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-lg)!important;padding:var(--space-16)!important;box-sizing:border-box}
html body.ds-site #worksheet-tree107 :is(summary,button,a){color:var(--color-text)!important;opacity:1!important;background:transparent!important;font-family:var(--font-family)!important;overflow-wrap:anywhere}
html body.ds-site #worksheet-tree107 [aria-current=true]{color:var(--color-accent-text)!important;background:var(--color-accent-soft)!important}
html body.ds-site.app28 .profile28 .profile-menu76>.profile-menu-row76{display:flex!important;align-items:center!important;justify-content:flex-start!important;box-sizing:border-box!important;padding:var(--space-12) var(--space-16)!important;margin:0!important;min-height:48px!important;height:auto!important;width:100%!important;text-indent:0!important;text-align:left!important;font:600 1rem/1.4 var(--font-family)!important;color:var(--color-accent-text)!important;border-radius:var(--radius-md)!important;white-space:normal!important}
html body.ds-site .profile28 .person-avatar{display:flex!important;visibility:visible!important;width:32px!important;height:32px!important;min-height:32px!important;flex:0 0 32px!important;padding:0!important;margin:0!important;align-items:center;justify-content:center;border-radius:50%!important;overflow:hidden}
html body.ds-site .profile28 .person-avatar :is(svg,img){width:100%!important;height:100%!important;object-fit:cover}
html body.ds-site.app28.app28 .catalog-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;padding:var(--space-24)!important;gap:var(--space-16)!important}
html body.ds-site.app28.app28 .catalog-row>h3{flex:initial!important;margin:0!important;order:0}
html body.ds-site.app28.app28 .catalog-row>.lesson-level{align-self:flex-start;order:0}
html body.ds-site.app28.app28 .catalog-row>.catalog-tools{position:static!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;max-width:none!important;gap:var(--space-12)!important;flex:initial!important;order:1}
html body.ds-site.app28.app28 .catalog-row>.catalog-tools>*{position:static!important;flex:0 0 auto!important;max-width:100%!important;min-width:0!important;margin:0!important;white-space:normal!important;box-sizing:border-box}
html body.ds-site.app28.app28 .catalog-row .catalog-delete,html body.ds-site.app28.app28 .catalog-row .lesson-edit76{width:44px!important;min-height:44px!important;height:44px!important;padding:var(--space-8)!important;font-size:0!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:var(--radius-md)!important}
html body.ds-site .lesson-edit76 svg,html body.ds-site .catalog-delete svg{width:20px!important;height:20px!important;flex:none;stroke:currentColor}
html body.ds-site.app28 .catalog-row .catalog-tools select{width:auto!important;flex:1 1 180px!important;max-width:280px!important;min-height:44px!important;padding:var(--space-8) var(--space-12)!important}
html body.ds-site .word-picker-controls{display:grid;gap:var(--space-16);margin-bottom:var(--space-16)}
html body.ds-site .word-picker-tabs{display:flex;flex-wrap:wrap;gap:var(--space-8)}
html body.ds-site .word-picker-tabs [aria-pressed=true]{color:var(--color-text)!important;background:var(--color-accent-soft)!important;border-color:var(--color-accent-text)!important}
html body.ds-site #practice-word-list50{display:block!important;max-height:560px!important;overflow-y:auto!important;overflow-x:hidden!important;padding:var(--space-16)!important;background:var(--color-bg)!important;border-radius:var(--radius-lg)!important}
html body.ds-site .word-picker-body{display:grid;gap:var(--space-16)}
html body.ds-site .word-group{padding:var(--space-16);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0}
html body.ds-site .word-group-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;margin-bottom:var(--space-8)}
html body.ds-site .word-group-pick{display:flex;align-items:center;gap:var(--space-8);font-size:14px;color:var(--color-text)}
html body.ds-site .word-group-count,.word-group-meta{font-size:14px;color:var(--color-text-muted);line-height:var(--lh-body)}
html body.ds-site .word-group summary{cursor:pointer;min-height:44px;overflow-wrap:anywhere;color:var(--color-text);padding:var(--space-8) 0;line-height:var(--lh-body)}
html body.ds-site .word-group summary>span{display:block;margin-left:var(--space-16)}
html body.ds-site .word-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--space-12);margin-top:var(--space-12)}
html body.ds-site .word-picker-grid .practice-word50{display:flex!important;align-items:flex-start;gap:var(--space-12);padding:var(--space-16)!important;background:var(--color-bg)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;min-width:0;overflow-wrap:anywhere}
html body.ds-site .word-picker-grid .practice-word50 span{min-width:0}
html body.ds-site .word-picker-grid .practice-word50 small{display:block;color:var(--color-text-muted)!important;line-height:var(--lh-body)}
html body.ds-site :is(.word-group-pick,.word-picker-grid) input[type=checkbox]{appearance:auto;width:20px!important;height:20px!important;min-height:20px!important;flex:0 0 20px;accent-color:var(--color-accent);margin:var(--space-4) 0!important}
@media(max-width:700px){
 html body.ds-site.app28.app28 .teacher-sidebar{position:fixed!important;left:var(--space-8)!important;right:var(--space-8)!important;top:var(--cabinet-nav-top,72px)!important;bottom:calc(80px + env(safe-area-inset-bottom))!important;width:calc(100% - var(--space-16))!important;max-width:calc(100vw - var(--space-16))!important;height:auto!important;min-height:0!important;padding:var(--space-16)!important;margin:0!important;transform:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;box-sizing:border-box!important;z-index:110}
 html body.ds-site.app28.app28 .teacher-sidebar *{box-sizing:border-box!important;min-width:0!important;max-width:100%!important}
 html body.ds-site.app28.app28 .teacher-sidebar a{width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:left!important;padding:var(--space-12)!important;margin:0!important;gap:var(--space-12)!important}
 html body.ds-site.app28.app28 .teacher-sidebar :is(p,nav,section,div){margin-left:0!important;padding-left:0!important;width:100%!important}
 html body.ds-site.app28.app28 .topbar{padding:var(--space-8) var(--space-12)!important;gap:var(--space-8)!important;min-height:64px!important;flex-wrap:nowrap!important}
 html body.ds-site.app28.app28 .topbar .brand{font-size:18px!important;min-width:0!important}
 html body.ds-site.app28.app28 :is(.student-account,.teacher-account){gap:var(--space-8)!important;min-width:0!important}
 html body.ds-site .profile-label76{display:none!important}
 html body.ds-site.app28.app28 .profile28>summary{gap:var(--space-4)!important;padding:var(--space-4) var(--space-8)!important;min-height:44px!important}
 html body.ds-site .profile28-toggle{min-width:28px!important;min-height:36px!important;padding:0!important}
 html body.ds-site.app28.app28 .bottom28>.teacher-menu-toggle{padding:var(--space-4)!important;font:500 12px/1.4 var(--font-family)!important;min-height:48px!important;border-radius:var(--radius-md)!important}
 html body.ds-site .profile28-items{position:fixed!important;top:auto!important;right:var(--space-12)!important;left:auto!important;width:min(300px,calc(100vw - var(--space-24)))!important;max-width:calc(100vw - var(--space-24))!important}
}
@media(max-width:700px){html body.ds-site.app28.app28 .teacher-sidebar.is-open{display:block!important;grid-template-columns:none!important;gap:0!important}}
html body.ds-site .teacher-menu-content76{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
@media(max-width:700px){html body.ds-site.app28.app28 .teacher-sidebar .teacher-menu-content76{position:relative!important;width:100%!important;max-width:100%!important;overflow-x:clip!important;margin:0!important;padding:0!important}}
html body.ds-site .word-group-meta{font-size:14px!important;color:var(--color-text-muted)!important;line-height:var(--lh-body)!important}

/* v40.78: asynchronously rendered assignment controls share the cabinet theme. */
html body.ds-site.app28 :is([data-open-assignment].item,.teacher-assignment-row){background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border)!important;border-radius:var(--radius-lg)!important;min-width:0;box-sizing:border-box}
html body.ds-site.app28 [data-open-assignment].item{padding:var(--space-24)!important;gap:var(--space-16)!important;flex-wrap:wrap;max-width:100%;text-align:left}
html body.ds-site.app28 :is(.item-title,.item-main){color:var(--color-text)!important;opacity:1!important}
html body.ds-site.app28 :is(.item-meta,.item-right,.item-right>span:not(.badge),.score-pill){color:var(--color-text-muted)!important;opacity:1!important;font-size:var(--fs-meta)!important;line-height:var(--lh-body)!important}
html body.ds-site.app28 .item-right{min-width:0;flex-wrap:wrap;max-width:100%;gap:var(--space-12)!important}
html body.ds-site.app28 :is(.badge.todo,.badge.progress,.badge.done,.assignment-state30){background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;padding:var(--space-8) var(--space-12)!important;line-height:1.6;border-radius:var(--radius-md)!important;opacity:1!important}
html body.ds-site.app28 :is(.badge.todo,.badge.progress,.badge.done) i{background:currentColor!important}
@media(max-width:768px){html body.ds-site.app28 [data-open-assignment].item{align-items:flex-start;flex-direction:column}html body.ds-site.app28 .item-right{width:100%}}

/* Keep profile and notification controls aligned in both cabinets. */
html body.ds-site.app28 .profile28>summary{height:44px!important;min-height:44px!important;box-sizing:border-box!important;padding:0 10px!important;align-items:center!important}
html body.ds-site.app28 .profile28>summary .profile28-avatar{width:32px!important;height:32px!important;flex:0 0 32px!important}
html body.ds-site.app28 :is(.teacher-account,.student-account){align-items:center!important}

/* Seven aligned cards with contained artwork. */
.game-picker104,#practice-games100{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:10px!important}
.game-picker104 .game-option104{height:auto!important;box-sizing:border-box!important;padding:8px!important;gap:6px!important}
.game-picker104 .game-icon104{width:min(100%,88px)!important;height:auto!important;aspect-ratio:1;object-fit:contain!important;flex:none!important}
.game-picker104 .game-option104 span{min-height:34px!important;font-size:12px!important;overflow-wrap:normal!important}
@media(max-width:900px){.game-picker104,#practice-games100{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:520px){.game-picker104,#practice-games100{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}.game-picker104 .game-icon104{max-width:66px!important}}

/* Games22: equal touch targets for the account controls, including legacy overrides. */
html body.ds-site.app28.app28 .topbar .notification-bell{box-sizing:border-box!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;flex:0 0 44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}

html body.ds-site .game-dialog41 .duel-settings100>label:has(input[type=checkbox]){display:flex!important;align-items:center!important;gap:10px!important;min-height:44px!important}
html body.ds-site .game-dialog41 input[type=checkbox]{appearance:auto!important;box-sizing:border-box!important;width:20px!important;min-width:20px!important;max-width:20px!important;height:20px!important;min-height:20px!important;padding:0!important;margin:0!important;flex:0 0 20px!important;accent-color:var(--color-accent)}
/* Eight games stay in one aligned row on a full-width desktop picker. */
.game-picker104,#practice-games100{grid-template-columns:repeat(8,minmax(0,1fr))!important}
.game-picker104 .game-icon104{max-width:78px!important}
@media(max-width:1100px){.game-picker104,#practice-games100{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:520px){.game-picker104,#practice-games100{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
