/* Acaderyx-to-TapLure color system, 2026-09-16.
   Canonical purpose tokens drive host, embedded, direct and mobile screens.
   Legacy aliases are compatibility bridges only. Printed documents and QR art
   retain their independent treatments. No navigation or learning logic here. */
@media screen {
  :root, html.dark, html[data-acemblex-theme="dark"], .app-shell[data-theme="dark"], [data-theme="dark"] {
    color-scheme:dark;
    --app-bg:#050B2E; --surface:#0A1B4D; --surface-secondary:#142E68;
    --border:#315DB0; --text-primary:#FFFFFF; --text-secondary:#C5D0F0;
    --accent-gold:#F4C76B; --accent-gold-soft:#FFD98A;
    --term-highlight:#FFD98A;
    --accent-blue:#168BFF; --accent-purple:#9A3CFF;
    --success:#25D876; --danger:#FF477A;
    --primary-button-bg:linear-gradient(120deg,#16C7FF 0%,#168BFF 42%,#9A3CFF 73%,#FF3D9A 100%);
    --primary-button-text:#FFFFFF;
    /* Dark ink is recommended for bright action fills. White remains on the
       brand CTA over a navy scrim, checked across its entire gradient. */
    --primary-button-scrim:linear-gradient(#050B2E75,#050B2E75);
    --semantic-button-text:#050B2E;
    --active-tab-bg:linear-gradient(135deg,#168BFF,#F4C76B);
    --active-tab-text:#050B2E;
    --card-bg:linear-gradient(145deg,#0A1B4D,#142E68);
    --page-bg:radial-gradient(ellipse at 20% 0%,rgba(255,220,157,.58) 0%,rgba(244,153,185,.30) 12%,transparent 29%),radial-gradient(ellipse at 49% 0%,rgba(76,160,255,.78) 0%,rgba(40,101,235,.42) 25%,transparent 52%),radial-gradient(ellipse at 78% 4%,rgba(139,92,246,.44) 0%,transparent 35%),radial-gradient(ellipse at 100% 61%,rgba(255,116,90,.42) 0%,rgba(139,55,163,.25) 21%,transparent 43%),linear-gradient(145deg,#020A2B 0%,#06194A 55%,#080E38 100%);
    --sidebar-bg:linear-gradient(180deg,rgba(7,21,65,.98) 0%,rgba(9,30,78,.98) 42%,rgba(4,11,46,.99) 100%);
    --header-bg:radial-gradient(ellipse at 17% 0%,rgba(255,222,163,.32),transparent 38%),radial-gradient(ellipse at 55% 0%,rgba(58,145,255,.36),transparent 55%),linear-gradient(90deg,rgba(24,78,181,.13),rgba(115,74,210,.10),transparent 88%);
    --header-text:#F8FBFF;
    --message-input:#17366F; --message-input-border:#4F8FE8;
    --message-own:#214483; --message-other:#17366F;
    --message-own-border:#77B5FF; --message-other-border:#4F8FE8;
    --message-placeholder:#C5D5F5;
    --panel-shadow:0 12px 30px #0003,inset 0 1px 0 #ffffff18;
    --button-shadow:0 7px 22px rgba(22,139,255,.34),inset 0 1px 0 rgba(255,255,255,.22);
  }
  html:not(.dark):not([data-acemblex-theme="dark"]), .app-shell[data-theme="light"], [data-theme="light"] {
    color-scheme:light;
    --app-bg:#F5F3F0; --surface:#FFFFFF; --surface-secondary:#EAE6E1;
    --border:#D5D0CA; --text-primary:#2C2620; --text-secondary:#635B53;
    /* Warm icon-corner palette: pastel fills, readable burnt-orange ink. */
    --accent-gold:#9A410F; --accent-gold-soft:#FFC48F;
    --accent-orange-icon:#D66B20;
    --term-highlight:#765810;
    --accent-blue:#476A8A; --accent-purple:#8E44AD;
    --success:#437D31; --danger:#C0453A;
    --primary-button-bg:linear-gradient(135deg,#FFD7AE,#FFC48F); --primary-button-text:#2C2620;
    --primary-button-scrim:linear-gradient(transparent,transparent);
    --semantic-button-text:#FFFFFF;
    --active-tab-bg:linear-gradient(135deg,#FFD7AE,#FFC48F);
    --active-tab-text:#2C2620;
    --card-bg:linear-gradient(145deg,#FFFFFF,#EAE6E1);
    --page-bg:#F5F3F0; --sidebar-bg:#FFFFFF;
    --header-bg:transparent; --header-text:#2C2620;
    --message-input:#FFFFFF; --message-input-border:#D5D0CA;
    --message-own:#D9E9FF; --message-other:#F0ECE7;
    --message-own-border:#7AA7D9; --message-other-border:#D5D0CA;
    --message-placeholder:#766D64;
    --panel-shadow:0 12px 28px #2c262019;
    --button-shadow:none;
  }
  html, .app-shell[data-theme] {
    --bg:var(--app-bg); --surface-2:var(--surface-secondary); --bg2:var(--surface-secondary);
    --panel:var(--surface); --panel2:var(--surface-secondary); --card:var(--surface);
    --line:var(--border); --ink:var(--text-primary); --text:var(--text-primary);
    --fg:var(--text-primary); --txt:var(--text-primary); --tc:var(--text-primary);
    --muted:var(--text-secondary); --sub:var(--text-secondary); --ink-soft:var(--text-secondary);
    --blue:var(--accent-blue); --blue-ink:var(--accent-blue); --gold:var(--accent-gold);
    --amber:var(--accent-gold); --purple:var(--accent-purple); --violet:var(--accent-purple);
    --violet-ink:var(--accent-purple); --green:var(--success); --teal:var(--success);
    --cyan:var(--accent-blue); --sky:var(--accent-blue); --pink:var(--danger);
    --ring-track:var(--border);
    --eg-glass-top:var(--surface); --eg-glass-bottom:var(--surface-secondary);
    --eg-glass-border:var(--border); --eg-glass-highlight:#ffffff18;
    --eg-glass-shadow:var(--panel-shadow);
    --soft-name:var(--text-primary); --soft-subheading:var(--text-secondary);
    --ace-light-surface:var(--card-bg); --ace-light-surface-soft:var(--surface-secondary);
    --ace-light-border:var(--border); --ace-light-ink:var(--text-primary);
    --ace-light-muted:var(--text-secondary); --ace-light-number:var(--accent-gold);
    --ace-screen:var(--app-bg);
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]), html .app-shell {
    background:var(--page-bg)!important;color:var(--text-primary)!important;
  }
  html .app-shell[data-theme] :is(.ambient,.sunrise)::before,
  html .app-shell[data-theme="light"] .ambient {background:none!important}
  html .app-shell[data-theme] :is(.dashboard-frame,.content,.course-frame-shell,.workflow-frame-shell) {
    background:transparent!important;border-color:var(--border)!important;
  }
  html .app-shell[data-theme] :is(.topbar,.mobile-bottom,.account-menu) {
    background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important;
  }
  html .app-shell[data-theme] .sidebar {background:var(--sidebar-bg)!important;border-color:var(--border)!important}
  html .app-shell[data-theme] .nav-item {
    background:transparent!important;color:var(--text-secondary)!important;
    border-color:transparent!important;box-shadow:none!important;
  }
  html .app-shell[data-theme] .nav-item.active {
    color:var(--text-primary)!important;background:color-mix(in srgb,var(--accent-blue) 12%,var(--surface))!important;
    border-left:3px solid var(--accent-blue)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.panel,.course,.focus-card,.detail-sample,.detail-view,.streak-panel,.account-gate-card,.resource-grid>a,.course-jump>a,.term-card,.subj-card,.cw-panel,.vg-panel,.vg-image,.pricing-card,.tcard,.match-card),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.rounded-xl,.rounded-2xl,.rounded-lg)[class*="border"],
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(div,section,article,details):is(.bg-si-800,.bg-si-900,.bg-si-950,.bg-cbg-800,.bg-gray-800,.bg-gray-900,.bg-slate-800,.bg-slate-900),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#dash,#focus,#heatmap,#patterns,#trends) .rounded-xl,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#activityFeed,#patternsContent,#trendsContent)>*,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#recentEmpty,#dashEmpty,#focusEmpty,#heatEmpty,#patternsEmpty,#trendsEmpty) {
    background:var(--card-bg)!important;color:var(--text-primary)!important;
    border-color:var(--border)!important;box-shadow:var(--panel-shadow)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(h1,h2,h3,h4,strong,.text-si-900,.text-si-800,.text-white,.text-slate-900,.text-gray-900) {
    color:var(--text-primary)!important;text-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(p,label,small,time,.empty,.text-cbg-400,.text-cbg-500,.text-cbg-600,.text-slate-500,.text-gray-500),
  html .app-shell[data-theme] :is(.activity-copy small,.course small,.hero-progress li div>span,.progress-ring span,.progress-ring small,.study-main span,.brand-tagline,.course-jump-copy span) {
    color:var(--text-secondary)!important;text-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.eyebrow,.kick,.nav-group,.text-amber-500,.text-yellow-500),
  html .app-shell[data-theme] :is(.panel-title button,.study-meta strong) {color:var(--accent-gold)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.term-name,#cardFront,#cardBack,#cardTerm,#cardDef,.accordion-body>p) {
    color:var(--text-primary)!important;text-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.text-pt-400,.text-pt-500,.text-pt-600) {color:var(--accent-blue)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.timer-core,.timer-panel,.timer-card,.timed-session-card,.mn-card,.ae-panel,.game-card) {background:var(--card-bg)!important;border-color:var(--border)!important;box-shadow:var(--panel-shadow)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.timer-display,.timer-caption,.timer-message,.timed-session-copy,.vg-caption) {color:var(--text-primary)!important;text-shadow:none!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(table,th,td,.border-si-100,.border-si-200,.border-si-800) {border-color:var(--border)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) a:not([class*="bg-gradient"]):not(.primary):not(.card):not(.btn):not(.course-jump>a):not([role="tab"]) {
    color:var(--accent-blue);
  }
  html .app-shell[data-theme] :is(.hero-card,.workspace-header),
  html body:not([data-acemblex-landing]):not([data-legacy-theme])>section:first-of-type,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#gamesHero,#examStart>div:first-child) {
    background:var(--header-bg)!important;color:var(--header-text)!important;
    border-color:var(--border)!important;box-shadow:none!important;
  }
  html .app-shell[data-theme] :is(.hero-copy h1,.workspace-header h1) {color:var(--header-text)!important}
  html .app-shell[data-theme] :is(.hero-copy h1 em,.brand-title strong) {
    color:var(--accent-gold)!important;background:none!important;-webkit-text-fill-color:currentColor!important;
  }
  html .app-shell[data-theme] :is(.progress-ring,.mini-ring)::before {background:var(--surface)!important}
  html .app-shell[data-theme] :is(.hero-progress,.panel-title,.study-meta,.activity-list button,.account-summary,.streak-mini,.avatar,.search,.plan-badge) {
    border-color:var(--border)!important;
  }
  html .app-shell[data-theme] :is(.bar,.course-accuracy>span) {background:var(--border)!important}
  html .app-shell[data-theme] :is(.bar i,.course-accuracy i) {background:var(--accent-blue)!important}
  html .app-shell[data-theme="light"] :is(.sunrise,.sunrise:before,.sunrise:after) {background:none!important}
  html .app-shell[data-theme="light"] .learning-path {background:repeating-linear-gradient(90deg,var(--accent-blue) 0 18px,transparent 18px 28px)!important;filter:none!important}
  html .app-shell[data-theme="light"] :is(.path-stop,.path-star,.week i.done) {background:var(--accent-blue)!important;color:#FFFFFF!important;border-color:var(--border)!important;box-shadow:none!important}
  html .app-shell[data-theme] .dashboard-frame :is(.panel,.course,.focus-card,.detail-sample,.streak-panel,.account-gate-card) {background:var(--card-bg)!important;box-shadow:var(--panel-shadow)!important}
  html .app-shell[data-theme] .mobile-bottom button.active :is(small,span) {color:inherit!important}
  html .app-shell[data-theme] :is(.account-logout,.text-button) {color:var(--text-secondary)!important}
  /* Consistent secondary controls also defeat legacy iframe glass skins. */
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"],a.rounded-lg,a.rounded-full),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#gameContent,#qOptions,#subjectPills,#cardSubjectPills,#alphaBar) :is(button,a),
  html .app-shell[data-theme] :is(.secondary,.ghost,.theme-toggle,.quick-grid button) {
    background:var(--surface)!important;color:var(--text-secondary)!important;
    border-color:var(--border)!important;box-shadow:none!important;text-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"]):hover,
  html .app-shell[data-theme] :is(.secondary,.ghost):hover {
    background:var(--surface-secondary)!important;color:var(--text-primary)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"])[aria-selected="true"],
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"])[aria-pressed="true"],
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#gameContent,#qOptions,#subjectPills,#cardSubjectPills,#topicPills,#alphaBar) :is(button,a):is([aria-pressed="true"],[aria-selected="true"]),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#subjectPills,#cardSubjectPills,#topicPills) button.bg-si-900,
  html .app-shell[data-theme] .mobile-bottom button.active {
    background:var(--active-tab-bg)!important;color:var(--active-tab-text)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.primary,.signup-action,.workflow-back,.focus-card button,button[class*="bg-gradient-to-r"],a[class*="bg-gradient-to-r"]),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #mpAuthSubmit {
    background:var(--primary-button-scrim),var(--primary-button-bg)!important;
    color:var(--primary-button-text)!important;box-shadow:var(--button-shadow)!important;border-color:var(--border)!important;
  }
  /* A solid token cannot serve as a second background image. */
  html:not(.dark):not([data-acemblex-theme="dark"]) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.primary,.signup-action,.workflow-back,.focus-card button,button[class*="bg-gradient-to-r"],a[class*="bg-gradient-to-r"],#mpAuthSubmit),
  html .app-shell[data-theme="light"] :is(.primary,.signup-action,.workflow-back,.focus-card button) {
    background:var(--primary-button-bg)!important;box-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(input,select,textarea) {
    background:var(--surface-secondary)!important;color:var(--text-primary)!important;
    border-color:var(--border)!important;accent-color:var(--accent-blue);
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(input,textarea)::placeholder {color:var(--text-secondary)!important;opacity:1}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards .flashcard-front,#cards .flashcard-back,#exam .sticky) {
    background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.text-red-500,.text-red-600,.text-rose-500,.text-rose-600,.answer-wrong) {color:var(--danger)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.text-emerald-500,.text-emerald-600,.text-green-500,.text-green-600,.answer-correct) {color:var(--success)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.bg-emerald-50,.bg-emerald-100,.bg-green-50,.bg-green-100):not(button) {background:color-mix(in srgb,var(--success) 12%,var(--surface))!important;color:var(--success)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.bg-red-50,.bg-red-100,.bg-rose-50,.bg-rose-100):not(button) {background:color-mix(in srgb,var(--danger) 12%,var(--surface))!important;color:var(--danger)!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#fcSrRating,#srConfidence) button:nth-child(1),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#qOptions,#gameContent) button.bg-red-50,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #cards button.text-red-600,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #cards button.course-stop-listening[aria-pressed="true"],
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button.answer-wrong,button.bg-red-50,button.text-red-600),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) button.course-stop-listening[aria-pressed="true"] {
    background:var(--danger)!important;color:var(--semantic-button-text)!important;border-color:var(--danger)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#fcSrRating,#srConfidence) button:nth-child(2) {
    background:var(--surface)!important;color:var(--accent-gold)!important;border-color:var(--accent-gold)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#fcSrRating,#srConfidence) button:nth-child(3),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#qOptions,#gameContent) button.bg-emerald-50,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button.answer-correct,button.bg-emerald-50) {
    background:var(--success)!important;color:var(--semantic-button-text)!important;border-color:var(--success)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#fcSrRating,#srConfidence) button:nth-child(4) {
    background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--accent-blue)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"]):disabled,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#qOptions,#gameContent) button:disabled {
    background:var(--surface-secondary)!important;color:var(--text-secondary)!important;
    opacity:1!important;box-shadow:none!important;border-color:var(--border)!important;
  }
  /* Answer feedback stays meaningful even when further answers are disabled. */
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #qOptions button.bg-emerald-50:disabled {
    background:var(--success)!important;color:var(--semantic-button-text)!important;border-color:var(--success)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #qOptions button.bg-red-50:disabled {
    background:var(--danger)!important;color:var(--semantic-button-text)!important;border-color:var(--danger)!important;
  }
  html body :is(button,a,input,select,textarea,[tabindex]):focus-visible {
    outline:3px solid var(--accent-blue)!important;outline-offset:3px!important;
  }
  /* Only icon containers get vivid decoration, not all tone-colored text. */
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon,.theme-toggle-icon) {
    --icon-accent:#168BFF;
    background:linear-gradient(145deg,color-mix(in srgb,var(--icon-accent) 78%,white),var(--icon-accent))!important;
    color:white!important;border-color:var(--icon-accent)!important;
    box-shadow:0 5px 14px color-mix(in srgb,var(--icon-accent) 24%,transparent)!important;
  }
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon).tone-purple {--icon-accent:#9A3CFF}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon).tone-violet {--icon-accent:#7C5CFF}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon):is(.tone-teal,.tone-green) {--icon-accent:#25D876}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon):is(.tone-cyan,.tone-sky,.tone-aqua) {--icon-accent:#16C7FF}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon):is(.tone-amber,.tone-orange) {--icon-accent:#FF8A18}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon).tone-pink {--icon-accent:#FF3D9A}
  html body #mpAuth {background:rgba(0,0,0,.7)!important}
  html body #mpAuthCard {background:var(--surface)!important;border:1px solid var(--border)!important}
  html body #mpAuthCard>div:first-child {background:var(--card-bg)!important;color:var(--text-primary)!important}
  html body :is(#mpAuthBody,#mpAuthTitle,#mpAuthSubtitle) {background:transparent!important;color:var(--text-primary)!important}
  html body #mpAuthBody :is(label,p) {color:var(--text-secondary)!important}
  html body #acemblex-chat-window {background:var(--surface)!important;border-color:var(--border)!important;color:var(--text-primary)!important}
  html body #acemblex-chat-header {background:var(--card-bg)!important;color:var(--text-primary)!important}
  html body #acemblex-chat-messages {background:var(--surface)!important;color:var(--text-primary)!important}
  html body #acemblex-chat-messages .msg {color:var(--text-primary)!important}
  html body #acemblex-chat-messages .msg.user {background:var(--message-own)!important;border:1px solid var(--message-own-border)!important}
  html body #acemblex-chat-messages .msg.assistant {background:var(--message-other)!important;border:1px solid var(--message-other-border)!important}
  html body #acemblex-chat-input-wrap {background:var(--surface)!important;border-color:var(--border)!important}
  html body #acemblex-chat-input {background:var(--message-input)!important;border-color:var(--message-input-border)!important;color:var(--text-primary)!important}
  html body #acemblex-chat-input::placeholder {color:var(--message-placeholder)!important}
  html body :is(#acemblex-chat-send,#acemblex-chat-fab) {background:var(--primary-button-scrim),var(--primary-button-bg)!important;color:var(--primary-button-text)!important}
  html:not(.dark):not([data-acemblex-theme="dark"]) body :is(#acemblex-chat-send,#acemblex-chat-fab) {background:var(--primary-button-bg)!important}
  html body button :is(strong,span.text-white) {color:inherit!important}
  html body #acemblex-chat-mic.listening {background:var(--danger)!important;color:var(--semantic-button-text)!important}
  .activity-visual {display:block;width:56px;height:56px;flex:0 0 56px;filter:drop-shadow(0 5px 10px #476a8a38)}
  /* Public marketing landing uses its own palette, not dashboard navy. */
  html.dark body[data-acemblex-landing] {
    --app-bg:#05091F; --surface:#10172D; --surface-secondary:#0D1429;
    --border:#26304C; --text-primary:#F7F9FF; --text-secondary:#B8C2D9;
    --accent-blue:#17D9DC; --accent-purple:#A04CFF; --accent-gold:#FFBD45;
    --page-bg:radial-gradient(circle at 50% -10%,#182444 0%,#05091F 38%);
    --card-bg:linear-gradient(180deg,#19213A,#0D1429);
    --primary-button-bg:linear-gradient(100deg,#FF6F61,#FF8A5D);
    --primary-button-text:#05091F;
    --landing-blue:#2582FF; --landing-footer:#030617;
    --panel-shadow:0 16px 35px #0005;
  }
  html body[data-acemblex-landing] {
    --sectionband:var(--card-bg);--glass:var(--surface);
    --ai:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));
    --bg:var(--app-bg);--bg2:var(--surface-secondary);--panel:var(--surface);
    --line:var(--border);--ink:var(--text-primary);--tc:var(--text-primary);
    --muted:var(--text-secondary);--ink-soft:var(--text-secondary);
    --blue-ink:var(--accent-blue);--violet-ink:var(--accent-purple);
    background:var(--page-bg)!important;color:var(--text-primary)!important;
  }
  html body[data-acemblex-landing] :is(header,.mnav) {background:var(--surface)!important;border-color:var(--border)!important}
  html body[data-acemblex-landing] :is(.card,.tcard,.pcard,.dpanel,.rstrip,.ctarow) {
    background:var(--card-bg)!important;border-color:var(--border)!important;box-shadow:var(--panel-shadow)!important;
  }
  html body[data-acemblex-landing] :is(.btn,.lp-cta) {background:var(--primary-button-bg)!important;color:var(--primary-button-text)!important;box-shadow:none!important}
  html body[data-acemblex-landing] .btn.ghost {background:transparent!important;color:var(--text-primary)!important;border-color:var(--border)!important}
  html body[data-acemblex-landing] :is(.card h3,.pbody h3,.pos,h1) {color:var(--text-primary)!important}
  html body[data-acemblex-landing] :is(.lead,.card p,.trial,.foot) {color:var(--text-secondary)!important}
  html body[data-acemblex-landing] .card .ic {background:color-mix(in srgb,var(--accent-purple) 15%,var(--surface))!important;color:var(--accent-purple)!important}
  html body[data-acemblex-landing] :is(h1 .b,h1 .hl2,.brand b span) {
    background:linear-gradient(110deg,var(--accent-blue),var(--accent-purple))!important;
    background-clip:text!important;-webkit-background-clip:text!important;
  }
  html.dark body[data-acemblex-landing] footer {background:#030617!important;color:#7F8AA5!important}
  html body[data-acemblex-landing] :is(input,select,textarea) {background:var(--surface-secondary)!important;color:var(--text-primary)!important;border-color:var(--border)!important}
  html body[data-acemblex-landing] :is(.rseg .active,.rseg .ontrack,.rseg .active svg,.rseg .ontrack svg) {color:var(--success)!important}
  html body[data-acemblex-landing] .tibadge {background:color-mix(in srgb,var(--accent-purple) 12%,var(--surface))!important;color:var(--accent-purple)!important;border-color:var(--accent-purple)!important}
  html body[data-acemblex-landing] :is(.card,.pcard):is(:hover,:focus-visible) {border-color:var(--accent-blue)!important;box-shadow:var(--panel-shadow)!important}
  html.dark body[data-acemblex-landing] :is(.contact-panel,[data-landing-contact]) {background:linear-gradient(145deg,#121C3A,#0A1028)!important;border-color:#334064!important}
  html.dark body[data-acemblex-landing] :is(.contact-panel,[data-landing-contact]) :is(input,select,textarea) {background:#070D22!important;border-color:#455379!important;color:#FFFFFF!important}
  html.dark body[data-acemblex-landing] :is(.contact-panel,[data-landing-contact]) :is(input,select,textarea):focus-visible {border-color:#17D9DC!important;outline:2px solid #17D9DC44!important}
  html:not(.dark) body[data-acemblex-landing] :is(.atm,.aura,.spectrum-orb) {background:none!important}
  html:not(.dark) body[data-acemblex-landing] :is(.card,.tcard,.pcard,.brand .mk,h1 .b,h1 .hl2) {filter:none!important;box-shadow:var(--panel-shadow)!important}
  html:not(.dark) body[data-acemblex-landing] :is(h1 .b,h1 .hl2) {box-shadow:none!important}
  html:not(.dark) body[data-acemblex-landing] :is(.card,.pcard)::before {background:none!important}
  html:not(.dark) body[data-acemblex-landing] footer {background:var(--app-bg)!important}
  /* QR images/canvases are never recolored or inverted. */
/* Study-photo banners are intentionally identical in light and dark mode.
     A dark photo scrim protects white heading contrast without recoloring UI. */
  html .app-shell[data-theme] :is(.hero-card,.workspace-header)[data-study-banner],
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) [data-study-banner] {
    background:linear-gradient(90deg,rgba(2,13,31,.92),rgba(3,18,42,.76) 42%,rgba(4,21,48,.38)),url('/massageexamprep/assets/acemblex-anatomy-study-banner.png') center 42%/cover no-repeat!important;
    color:#FFFFFF!important;border-color:var(--border)!important;
  }
  html .app-shell[data-theme] [data-study-banner] :is(.hero-copy h1,.workspace-header h1,.hero-copy p,.workspace-header p),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) [data-study-banner] :is(h1,p) {
    color:#FFFFFF!important;text-shadow:0 2px 12px #0005!important;
  }
  html .app-shell[data-theme] [data-study-banner] .eyebrow {color:#FFD98A!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) [data-study-banner] span.rounded-full {
    background:#0A1B4D!important;color:#FFD98A!important;border-color:#F4C76B!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) [data-study-banner]>.absolute {display:none!important}
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #termsList :is(.term-name,[id^="letter-"]>span),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #alphaBar>a,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cardTerm,#cardFront) {
    color:var(--term-highlight)!important;text-shadow:none!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #alphaBar>a:hover {
    border-color:var(--accent-gold)!important;
  }
  html body :is([data-qr-code],.qr-code,#qrCode) {background:#FFFFFF!important;color:#000000!important;filter:none!important}
  @media(max-width:650px) {
    html.dark body[data-acemblex-landing] {--page-bg:radial-gradient(circle at 80% 0,#16285E 0%,#080D27 44%,#05091F 100%)}
    html.dark body[data-acemblex-landing] .btn.ghost {border-color:#6B789D!important}
    html.dark body[data-acemblex-landing] :is(.card,.pcard) {border-color:#41507A!important}
    html.dark body[data-acemblex-landing] :is(a,button):focus-visible {outline-color:#FFFFFF!important}
  }
}
@media(prefers-reduced-motion:reduce) {.activity-visual{transition:none}}
/* Contained workflow launchers must clear the host's 68px mobile navigation.
   Scope this to embedded documents; standalone chat keeps its normal placement. */
@media screen and (max-width:820px) {
  html[data-acemblex-contained="true"] #acemblex-chat-fab {
    bottom:calc(92px + env(safe-area-inset-bottom))!important;
  }
}
@media screen and (max-width:480px) {
  html[data-acemblex-contained="true"] #acemblex-chat-window {
    bottom:calc(68px + env(safe-area-inset-bottom))!important;
    height:calc(var(--acemblex-chat-viewport-height,100dvh) - 68px - env(safe-area-inset-bottom))!important;
    max-height:calc(var(--acemblex-chat-viewport-height,100dvh) - 68px - env(safe-area-inset-bottom))!important;
  }
}

/* Light-only readability repair, 2026-09-17.
   Existing dark rules above are unchanged. Explicit theme gates exclude dark mode. */
@media screen {
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) {
    color:var(--text-primary)!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#dash,#focus,#heatmap,#patterns,#trends,#recent,#setup,#smartPractice,#practiceEngine,#results,#catalog,#examStart,#cards) :is(h2,h3,h4,strong,.text-white,.text-si-900,.text-si-800,.practice-subject-title),
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #focus :is(h3,#focusBars .text-cbg-600,#attentionList .text-si-800,#attentionList p:first-child),
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #practiceEngine #qText,
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #dash :is(#overallPct,#subjectCards .font-extrabold,#statsRow .font-extrabold) {
    color:var(--text-primary)!important;text-shadow:none!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#dash,#focus,#heatmap,#patterns,#trends,#recent,#setup,#smartPractice,#practiceEngine,#results,#catalog,#examStart,#cards) :is(p,label,small,.text-cbg-400,.text-cbg-500,.text-cbg-600),
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #focus :is(#focusBars .text-cbg-400,#attentionList .text-cbg-400,#attentionList .text-cbg-500) {
    color:var(--text-secondary)!important;text-shadow:none!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #attentionList a.text-pt-500 {
    color:#286155!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #attentionList a.text-pt-500:hover {
    color:#17473C!important;text-decoration:underline;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#dash,#focus,#heatmap,#patterns,#trends,#recent,#setup,#smartPractice,#practiceEngine,#results,#catalog,#examStart,#cards) :is(.rounded-xl.border,.rounded-xl.border-2,.stat-box,.subj-card,.flashcard-front,.flashcard-back),
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #attentionList > * {
    background:var(--card-bg)!important;border:1px solid var(--border)!important;box-shadow:var(--panel-shadow)!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#cards,#glossary) :is(button:not([aria-pressed="true"]):not(#fcSrRating button),.btn-secondary,.listen-btn),
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body :is(#optionsContainer>.opt-btn:not(.answer-correct):not(.answer-wrong):not(.bg-red-50):not(.bg-emerald-50),.count-btn:not([aria-pressed="true"]),.conf-btn) {
    background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border)!important;text-shadow:none!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #cards :is(button,.btn-secondary):disabled {
    color:#635B53!important;opacity:.65!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is([data-study-banner],#examStart>[data-study-banner],#gamesHero>[data-study-banner]) {
    background:linear-gradient(90deg,rgba(2,13,31,.88),rgba(3,18,42,.76) 42%,rgba(4,21,48,.66)),url('/massageexamprep/assets/acemblex-anatomy-study-banner.png') center 42%/cover no-repeat!important;
    color:#FFFFFF!important;border-color:var(--border)!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is([data-study-banner],#examStart>[data-study-banner],#gamesHero>[data-study-banner]) :is(h1,p) {
    color:#FFFFFF!important;text-shadow:0 2px 12px #0005!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) [data-study-banner] a[data-dashboard-view] {
    background:var(--card-bg)!important;color:var(--text-primary)!important;border-color:var(--border)!important;text-shadow:none!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body #cards .course-stop-listening[aria-pressed="true"] {
    background:#C0453A!important;color:#FFFFFF!important;border-color:#C0453A!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) #cards :is(#cardFront,#cardTerm) {
    color:var(--term-highlight)!important;
  }
  /* Light-mode streak accents share the orange action palette, not brown. */
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) .app-shell[data-theme="light"] .flame svg {
    color:var(--accent-orange-icon)!important;
  }
  /* Signed-in control follow-up, 2026-09-17: keep gold CTAs and selection legible. */
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#setup,#practiceEngine,#results,#examStart) :is(button,a)[class*="bg-gradient-to-r"] {
    color:var(--primary-button-text)!important;text-shadow:none!important;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]):not(:has(.app-shell[data-theme="dark"])) body:not([data-acemblex-landing]):not([data-legacy-theme]) #setup #countBtnGroup .count-btn[aria-pressed="true"] {
    background:linear-gradient(135deg,#EDE7FF,#DCEAFF)!important;color:#2C2620!important;
    border:2px solid #476A8A!important;box-shadow:inset 0 0 0 1px #476A8A!important;
  }
}

/* Glass-surface follow-up, 2026-09-17.
   Gloss is painted into bounded gradients, not extra DOM overlays or animation.
   Opaque base colors protect text contrast and avoid per-card blur costs.
   Screen-only: printed plans, PDFs, QR art and study-photo banners stay intact. */
@media screen {
  :root, html.dark, html[data-acemblex-theme="dark"], .app-shell[data-theme="dark"], [data-theme="dark"] {
    --glass-sheen:linear-gradient(165deg,#ffffff14 0%,#ffffff05 28%,transparent 48%,#16c7ff07 78%,#ff3d9a09 100%);
    --glass-base:linear-gradient(135deg,#142E68 0%,#152A59 48%,#241B48 100%);
    --card-bg:var(--glass-sheen),var(--glass-base);
    --glass-control-bg:var(--glass-sheen),linear-gradient(135deg,#142E68,#241B48);
    --glass-hover-bg:var(--glass-sheen),linear-gradient(135deg,#19386F,#312251);
    --glass-active-bg:var(--glass-sheen),linear-gradient(120deg,#194678,#35234F);
    --glass-border:#638BCA;
    --glass-edge:#ffffff24;
    --glass-shadow:0 12px 28px #020a2b38,inset 0 1px 0 var(--glass-edge),inset 0 -1px 0 #168bff16;
    --panel-shadow:var(--glass-shadow);
  }
  html:not(.dark):not([data-acemblex-theme="dark"]), .app-shell[data-theme="light"], [data-theme="light"] {
    --glass-sheen:linear-gradient(165deg,#ffffffcc 0%,#ffffff50 28%,transparent 48%,#16c7ff05 78%,#ff3d9a06 100%);
    --glass-base:linear-gradient(135deg,#FFFFFF 0%,#F0F6FF 48%,#F8EFFA 100%);
    --card-bg:var(--glass-sheen),var(--glass-base);
    --glass-control-bg:var(--glass-sheen),linear-gradient(135deg,#F0F6FF,#F8EFFA);
    --glass-hover-bg:var(--glass-sheen),linear-gradient(135deg,#E9F2FF,#F3E8F7);
    --glass-active-bg:var(--glass-sheen),linear-gradient(120deg,#DCEAFF,#EDE2F6);
    --glass-border:#9EB3CE;
    --glass-edge:#ffffff;
    --glass-shadow:0 10px 26px #476a8a1a,inset 0 1px 0 var(--glass-edge),inset 0 -1px 0 #8e44ad0d;
    --panel-shadow:var(--glass-shadow);
  }
  /* Every sidebar item has an illuminated glass surface, not just the icon. */
  html .app-shell[data-theme] .sidebar .nav-item {
    background:var(--glass-control-bg)!important;color:var(--text-secondary)!important;
    border:1px solid var(--glass-border)!important;border-left-width:3px!important;
    box-shadow:0 4px 12px #020a2b12,inset 0 1px 0 var(--glass-edge)!important;
  }
  html .app-shell[data-theme] .sidebar .nav-item:hover {
    background:var(--glass-hover-bg)!important;color:var(--text-primary)!important;
  }
  html .app-shell[data-theme] .sidebar .nav-item.active {
    background:var(--glass-active-bg)!important;color:var(--text-primary)!important;
    border-left-color:var(--accent-blue)!important;
    box-shadow:inset 0 1px 0 var(--glass-edge),inset 0 0 0 1px var(--accent-blue)!important;
  }
  /* Explicit component families cover dashboard, courses, lessons, games,
     exams, terminology, progress, performance, account and help boxes. */
  html .app-shell[data-theme] :is(.panel,.course,.focus-card,.detail-sample,.detail-view,.streak-panel,.account-gate-card,.course-jump>a,.resource-grid>a,.quick-grid button,.account-menu,.mobile-menu),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.panel,.course,.focus-card,.detail-sample,.detail-view,.streak-panel,.account-gate-card,.resource-grid>a,.course-jump>a,.term-card,.subj-card,.cw-panel,.vg-panel,.pricing-card,.tcard,.match-card,.mn-card,.ae-panel,.game-card,.timer-panel,.timer-card,.timed-session-card,.stat-box),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(div,section,article,details).rounded-2xl:not([data-study-banner]):not(#studyPhotoBanner):not(#studyPlanPhotoBanner),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(#dash,#focus,#heatmap,#patterns,#trends,#recent,#catalog,#setup,#examStart) .rounded-xl:not([data-study-banner]),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) details[id^="lesson-"] {
    background:var(--card-bg)!important;border-color:var(--glass-border)!important;
    box-shadow:var(--glass-shadow)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) details[id^="lesson-"]>summary,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #termsList button[aria-expanded] {
    background:var(--glass-control-bg)!important;border-color:var(--glass-border)!important;
    box-shadow:inset 0 1px 0 var(--glass-edge)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) details[id^="lesson-"]>summary:hover,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #termsList button[aria-expanded]:hover {
    background:var(--glass-hover-bg)!important;
  }
  /* Add sheen to ordinary controls while retaining their underlying fill.
     Exclusions protect semantic feedback, primary actions and selected states. */
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(button,[role="tab"],a.rounded-lg,a.rounded-full):where(:not([aria-pressed="true"]):not([aria-selected="true"]):not(:disabled):not(.primary):not(.signup-action):not(.workflow-back):not([class*="bg-gradient"]):not(.answer-correct):not(.answer-wrong):not(.bg-red-50):not(.bg-emerald-50):not(.text-red-600):not(.course-stop-listening):not(#fcSrRating button):not(#srConfidence button):not(#countBtnGroup button):not(#acemblex-chat-mic):not(#acemblex-chat-send):not(#acemblex-chat-fab):not(#mpAuthSubmit):not(#subjectPills button.bg-si-900):not(#cardSubjectPills button.bg-si-900):not(#topicPills button.bg-si-900) ) {
    background-image:var(--glass-sheen)!important;
    box-shadow:inset 0 1px 0 var(--glass-edge),0 3px 10px #020a2b12!important;
  }
  html .app-shell[data-theme] :is(.secondary,.ghost,.theme-toggle,.quick-grid button):not(:disabled) {
    background:var(--glass-control-bg)!important;
    box-shadow:inset 0 1px 0 var(--glass-edge),0 4px 12px #020a2b12!important;
  }
  /* Badges keep their category/status color; sheen does not change meaning. */
  html .app-shell[data-theme] :is(.plan-badge,.badge,.tag,.pill),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) :is(.badge,.tag,.pill,.study-mode-btn,span.rounded-full) {
    background-image:var(--glass-sheen)!important;
    box-shadow:inset 0 1px 0 var(--glass-edge)!important;
  }
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon,.theme-toggle-icon) {
    background:linear-gradient(165deg,#ffffff50,transparent 48%),linear-gradient(145deg,color-mix(in srgb,var(--icon-accent) 78%,white),var(--icon-accent))!important;
    box-shadow:inset 0 1px 0 #ffffff66,0 5px 14px color-mix(in srgb,var(--icon-accent) 24%,transparent)!important;
  }
  /* Marketing surfaces retain their separate palette and coral CTAs. */
  html.dark body[data-acemblex-landing] {
    --glass-base:linear-gradient(135deg,#19213A,#16223E 48%,#231C3A);
    --card-bg:var(--glass-sheen),var(--glass-base);
    --panel-shadow:var(--glass-shadow);
  }
  html body[data-acemblex-landing] :is(.card,.tcard,.pcard,.dpanel,.rstrip,.ctarow) {
    background:var(--card-bg)!important;box-shadow:var(--glass-shadow)!important;
    border-color:var(--glass-border)!important;
  }
  html body[data-acemblex-landing] :is(.tibadge,.card .ic) {
    background-image:var(--glass-sheen)!important;box-shadow:inset 0 1px 0 var(--glass-edge)!important;
  }
  /* Only embellish containers, never charts, scientific SVGs, images, QR art,
     progress bars, layouts, visibility, text sizes or navigation handlers. */
}

/* Modern glass icons: UI decoration only; scientific diagrams stay untouched. */
@media screen {
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) .hub-card {
    background:var(--card-bg)!important;border-color:var(--glass-border)!important;
    box-shadow:var(--glass-shadow)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) .hub-card:hover {
    background:var(--glass-hover-bg)!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) .hub-icon {
    background:transparent!important;box-shadow:none!important;
  }
  .hub-art-icon {width:48px;height:48px;max-width:100%}
  html .app-shell[data-theme] :is(.nav-icon,.course-icon,.course-jump-icon,.activity-icon,.detail-icon,.theme-toggle-icon) {
    background:linear-gradient(160deg,#ffffff70,transparent 42%),linear-gradient(135deg,var(--icon-accent) 8%,#725EFF 60%,#ED4DA8 100%)!important;
    border:1px solid #ffffff70!important;color:#FFFFFF!important;
    box-shadow:inset 0 1px 0 #ffffff90,inset 0 -1px 0 #26125930,0 6px 16px #725eff30!important;
  }
}
/* Free-first presentation prevents paid study choices appearing during auth.
   Protected APIs independently verify access; these rules do not grant it. */
html:not([data-study-access="full"]) [data-paid-study],
html:not([data-study-access="full"]) #acemblex-chat-fab[aria-label*="Atlas"],
html:not([data-study-access="full"]) #acemblex-chat-window[aria-label*="Atlas"],
html:not([data-study-access="full"]) #acemblex-chat-toggle-agent,
html:not([data-study-access="full"]) button[onclick^="launchGame"]:not(#matching):not(#speed):not(#pin-the-cell),
html:not([data-study-access="full"]) .hub-card[href="/exams"],
html:not([data-study-access="full"]) .hub-card[href="/courses"],
html:not([data-study-access="full"]) .hub-card[href="/scenarios"],
html:not([data-study-access="full"]) .hub-card:has(img[src*="hub-coach"]),
html:not([data-study-access="full"]) a[href^="/courses"],
html:not([data-study-access="full"]) a[href^="/exams"],
html:not([data-study-access="full"]) a[href^="/scenarios"],
html:not([data-study-access="full"]) a[href^="/lesson-"],
html:not([data-study-access="full"]) a[href="/progress#planCard"],
html:not([data-study-access="full"]) a[href="/progress#focus"],
html:not([data-study-access="full"]) a[href$="#planCard"],
html:not([data-study-access="full"]) a[href$="#focus"],
html:not([data-study-access="full"]) :is(#focus,#heatmap,#patterns,#trends,#planCard,#readinessBreakdown,#subjectCards,#countdownSection,#studyReportExportBtn,#quickRefPrintBtn) {
  display:none !important;
}
html:not([data-study-access="full"]) #dash .grid:has(#overallRing) { display:none !important; }
html:not([data-study-access="full"]) #weeklyGoalCard { margin-top:1.5rem; }
html[data-free-page-locked] body > :is(main,section) { display:none !important; }
#acemblex-free-access-options { margin:1rem; color:inherit; }
#acemblex-free-access-options a { text-decoration:none; }
#weeklyGoalCard { scroll-margin-top:1rem; }
#plan-pro,#plan-lifetime { scroll-margin-top:2rem; }
/* Practice tiles reuse the sidebar's accent-to-purple-to-pink glass icons.
   Two IDs keep the shared palette above the embedded host's theme resets. */
@media screen {
  html body #setup #subjectGrid .subj-card > div:first-child > span:first-child {
    --icon-accent:#448EFF;
    background:linear-gradient(160deg,#ffffff70,transparent 42%),linear-gradient(135deg,var(--icon-accent) 8%,#725EFF 60%,#ED4DA8 100%)!important;
    border:1px solid #ffffff70!important;color:#FFFFFF!important;
    box-shadow:inset 0 1px 0 #ffffff90,inset 0 -1px 0 #26125930,0 6px 16px #725eff30!important;
  }
  html body #setup #subjectGrid [data-subj="kin"] > div:first-child > span:first-child,
  html body #setup #subjectGrid [data-subj="ethics"] > div:first-child > span:first-child {--icon-accent:#25D876;}
  html body #setup #subjectGrid [data-subj="path"] > div:first-child > span:first-child {--icon-accent:#FF8A18;}
  html body #setup #subjectGrid [data-subj="assess"] > div:first-child > span:first-child {--icon-accent:#7C5CFF;}
  html body #setup #subjectGrid [data-subj="ther"] > div:first-child > span:first-child {--icon-accent:#FF3D9A;}
  html body #setup #subjectGrid [data-subj="guide"] > div:first-child > span:first-child {--icon-accent:#16C7FF;}
  html body #subjectGrid .practice-ethics-art {display:block;width:64%;height:64%;max-width:40px;max-height:40px}
}

/* Requested blue action palette and prismatic catalog glass.
   Color wraps all four edges without continuous motion or extra blur layers. */
@media screen {
  :root {
    --blue-action-bg:linear-gradient(160deg,#ffffff70,transparent 42%),linear-gradient(135deg,#72D9FF 8%,#448EFF 60%,#668BFF 100%);
    --catalog-prism:conic-gradient(from 225deg,#FFAA66,#42DFFF 18%,#8B79FF 40%,#EF65BB 63%,#FFC083 82%,#FFAA66);
    --catalog-glass:linear-gradient(145deg,#233e79c9 0%,#172b60b8 48%,#362456b8 100%);
    --catalog-gloss:linear-gradient(155deg,#ffffff28 0%,#ffffff09 30%,transparent 48%,#ee65bc0d 100%);
  }
  html:not(.dark):not([data-acemblex-theme="dark"]), .app-shell[data-theme="light"], [data-theme="light"] {
    --catalog-glass:linear-gradient(145deg,#ffffffc9 0%,#edf3ffad 48%,#f6e9f9ad 100%);
    --catalog-gloss:linear-gradient(155deg,#ffffffd9 0%,#ffffff50 30%,transparent 48%,#ee65bc09 100%);
  }
  html .app-shell[data-theme] :is(.workflow-back,.focus-card button,.courses-workspace #studyPhotoBanner button.primary),
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #studyPhotoBanner a[href="/practice"] {
    --primary-button-bg:var(--blue-action-bg);
    --primary-button-scrim:linear-gradient(transparent,transparent);
    --primary-button-text:#05030F;
    background:var(--blue-action-bg)!important;color:#05030F!important;
    border:1px solid #ffffff80!important;
    box-shadow:inset 0 1px 0 #ffffffa6,inset 0 -1px 0 #26125930,0 6px 16px #725eff30!important;
    font-weight:750;text-shadow:none!important;
  }
  html .app-shell[data-theme] :is(.workflow-back,.focus-card button,.courses-workspace #studyPhotoBanner button.primary):hover,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #studyPhotoBanner a[href="/practice"]:hover {
    box-shadow:inset 0 1px 0 #ffffffc0,0 8px 20px #725eff48!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #catalog .grid > a,
  html body #setup #subjectGrid .subj-card,
  html body #smartPractice#smartPractice > .grid > button {
    position:relative;isolation:isolate;
    --card-bg:var(--catalog-gloss),var(--catalog-glass);
    background:var(--catalog-gloss),var(--catalog-glass)!important;
    border:1px solid transparent!important;
    box-shadow:inset 0 1px 0 #ffffff55,inset 0 -1px 0 #ffffff18,0 12px 28px #476a8a20!important;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #catalog .grid > a::before,
  html body #setup #subjectGrid .subj-card::before,
  html body #smartPractice#smartPractice > .grid > button::before {
    content:"";position:absolute;inset:-1px;padding:1.5px;border-radius:inherit;
    background:var(--catalog-prism);pointer-events:none;
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;
    mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    mask-composite:exclude;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #catalog .grid > a:hover,
  html body #setup #subjectGrid .subj-card:hover,
  html body #smartPractice#smartPractice > .grid > button:hover {
    box-shadow:inset 0 1px 0 #ffffff80,0 14px 32px #725eff29,0 0 18px #ed4da815!important;
  }
  html body #setup #subjectGrid .subj-card.border-pt-500 {
    outline:2px solid var(--accent-blue);outline-offset:2px;
  }
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #catalog .grid > a:focus-visible,
  html body #setup #subjectGrid .subj-card:focus-visible,
  html body #smartPractice#smartPractice > .grid > button:focus-visible,
  html .app-shell[data-theme] :is(.workflow-back,.focus-card button,.courses-workspace #studyPhotoBanner button.primary):focus-visible,
  html body:not([data-acemblex-landing]):not([data-legacy-theme]) #studyPhotoBanner a[href="/practice"]:focus-visible {
    outline:3px solid var(--accent-blue)!important;outline-offset:4px;
  }
}

/* Blue controls replace the remaining warm action/tab fills, not the approved
   multicolor subject icons or correctness/error colors. */
@media screen {
  :root, html.dark, html[data-acemblex-theme="dark"], .app-shell[data-theme], [data-theme] {
    --primary-button-bg:var(--blue-action-bg);
    --primary-button-scrim:linear-gradient(transparent,transparent);
    --primary-button-text:#05030F;
    --active-tab-bg:var(--blue-action-bg);
    --active-tab-text:#05030F;
    --accent-gold:#85CAFF; --accent-gold-soft:#BAE5FF;
  }
  html:not(.dark):not([data-acemblex-theme="dark"]), .app-shell[data-theme="light"], [data-theme="light"] {
    --accent-gold:#1260AC; --accent-gold-soft:#BAE5FF;
    --term-highlight:#1260AC;
    --primary-button-bg:var(--blue-action-bg);
    --primary-button-scrim:linear-gradient(transparent,transparent);
    --primary-button-text:#05030F;
    --active-tab-bg:var(--blue-action-bg);
    --active-tab-text:#05030F;
  }
  html body :is(#acemblex-chat-fab,#acemblex-chat-send),
  html:not(.dark):not([data-acemblex-theme="dark"]) body :is(#acemblex-chat-fab,#acemblex-chat-send),
  html body #acemblex-chat-mic:not(.listening),
  html .app-shell[data-theme] .mobile-bottom button.active {
    background:var(--blue-action-bg)!important;color:#05030F!important;
  }
  #acemblex-chat-speech-status {padding:6px 16px;font:600 12px/1.4 system-ui;color:var(--text-primary);background:var(--surface);}
}

/* Dashboard actions and Atlas match Update focus, including the glass edge.
   Explicit light scope outranks the earlier warm/light control overrides. */
@media screen {
  html body .app-shell[data-theme] :is(.hero-card .hero-actions button.primary,.topbar .auth-actions button.signup-action,.focus-card button),
  html:not(.dark):not([data-acemblex-theme="dark"]) body .app-shell[data-theme] :is(.hero-card .hero-actions button.primary,.topbar .auth-actions button.signup-action,.focus-card button),
  html body #acemblex-chat-fab,
  html:not(.dark):not([data-acemblex-theme="dark"]) body #acemblex-chat-fab {
    background:var(--blue-action-bg)!important;
    color:#05030F!important;
    border:1px solid #ffffff80!important;
    box-shadow:inset 0 1px 0 #ffffffa6,inset 0 -1px 0 #26125930,0 6px 16px #725eff30!important;
    text-shadow:none!important;
  }
  html body #acemblex-chat-fab {animation:none!important;}
}

/* Practice setup: keep text and its blue surface paired. Shared active-action
   tokens can otherwise put dark ink over the embedded dark glass background. */
@media screen {
  html body #setup #countStep #countBtnGroup .count-btn[aria-pressed="true"],
  html body #setup #countStep button[onclick="beginPractice()"] {
    background:linear-gradient(135deg,#195DB4 0%,#293F99 100%)!important;
    color:#FFFFFF!important;text-shadow:none!important;
    border:2px solid #80B9FF!important;
    box-shadow:inset 0 1px 0 #ffffff40,0 4px 14px #10295830!important;
  }
  html body #setup #countStep :is(.count-btn,button[onclick="beginPractice()"]):focus-visible {
    outline:3px solid #168BFF!important;outline-offset:3px;
  }

  /* Dark-mode practice setup contrast: keep every question-count label bright
     green on its navy glass surface; make the primary action's surface green
     with navy ink, matching the established success-action treatment. */
  html:is(.dark,[data-acemblex-theme="dark"],:has(.app-shell[data-theme="dark"])) body #setup #countStep #countBtnGroup .count-btn {
    background:#121535!important;border-color:#25D876!important;
    color:#25D876!important;text-shadow:0 0 8px #25D87655!important;
  }
  html:is(.dark,[data-acemblex-theme="dark"],:has(.app-shell[data-theme="dark"])) body #setup #countStep #countBtnGroup .count-btn[aria-pressed="true"] {
    background:linear-gradient(135deg,#123B36,#142E68)!important;border-color:#72F5AC!important;
    box-shadow:0 0 0 3px #25D87630,0 0 20px #25D87640!important;
  }
  html:is(.dark,[data-acemblex-theme="dark"],:has(.app-shell[data-theme="dark"])) body #setup #countStep #countBtnGroup .count-btn:hover {
    background:#1B3154!important;border-color:#72F5AC!important;
  }
  html:is(.dark,[data-acemblex-theme="dark"],:has(.app-shell[data-theme="dark"])) body #setup #countStep button[onclick="beginPractice()"] {
    background:linear-gradient(135deg,#39E989,#16C875)!important;color:#050B2E!important;border:2px solid #72F5AC!important;
    box-shadow:inset 0 1px 0 #ffffff66,0 0 18px #25D87655!important;text-shadow:none!important;
  }
  html:is(.dark,[data-acemblex-theme="dark"],:has(.app-shell[data-theme="dark"])) body #setup #countStep button[onclick="beginPractice()"]:hover {
    background:linear-gradient(135deg,#58F5A0,#25D876)!important;border-color:#A0FFC9!important;
  }
}

/* Timed plans are intentionally dark islands in both surrounding themes.
   Scope to this section only: never recolor the page or adjacent note dialog. */
@media screen {
  html body #timedStudySession :is(h3,h4,p,strong,.timer-display,.timer-caption,.timer-message,.timed-session-eyebrow) {
    color:#FFFFFF!important;text-shadow:none!important;
  }
  html body #timedStudySession .timer-core {
    background:linear-gradient(135deg,#142E68 0%,#152A59 48%,#241B48 100%)!important;
    border-color:#315DA3!important;
    box-shadow:inset 0 1px 0 #ffffff18!important;
  }
  html body #timedStudySession .timer-control,
  html body #timedStudySession button.timer-step-action {
    background:#0E1E51!important;color:#CDD9FA!important;border-color:#315DA3!important;
    box-shadow:inset 0 1px 0 #ffffff18!important;
  }
  html body #timedStudySession .timer-control:hover,
  html body #timedStudySession button.timer-step-action:hover {
    background:#17366F!important;border-color:#77B5FF!important;
  }
  html body #timedStudySession .timer-control[aria-pressed="true"] {
    background:var(--blue-action-bg)!important;color:#05030F!important;
  }
  html body #timedStudySession :is(.timer-control,.timer-step-action):focus-visible {
    outline:3px solid #72D9FF!important;outline-offset:3px;
  }
}

/* Annual offer: purple glass in either theme; preserve the billing destination. */
@media screen {
  html body .app-shell[data-theme] button.trial-glass-action {
    color:#fff!important;
    background:linear-gradient(145deg,#7953BC 0%,#7041BB 35%,#482274 100%)!important;
    border:1px solid #D6BFFF!important;
    box-shadow:inset 0 1px 0 #ffffff99,inset 0 -2px 4px #21074366,0 5px 16px #6333A84D!important;
    text-shadow:0 1px 2px #260E4D;
  }
  html body .app-shell[data-theme] button.trial-glass-action:hover:not(:disabled) {
    background:linear-gradient(145deg,#8059C3 0%,#7A49C7 35%,#542885 100%)!important;
  }
  html body .app-shell[data-theme] button.trial-glass-action:focus-visible {
    outline:3px solid #AC83FF!important;outline-offset:3px;
  }
  html body .app-shell[data-theme] button.trial-glass-action:disabled { opacity:.72!important;cursor:wait; }
  html body .app-shell[data-theme] .hero-actions button.annual-glass-action {
    color:#fff!important;
    background:linear-gradient(145deg,#7953BC 0%,#7041BB 35%,#482274 100%)!important;
    border:1px solid #D6BFFF!important;
    box-shadow:inset 0 1px 0 #ffffff99,inset 0 -2px 4px #21074366,0 5px 16px #6333A84D!important;
    text-shadow:0 1px 2px #260E4D;
  }
  html body .app-shell[data-theme] .hero-actions button.annual-glass-action:hover {
    background:linear-gradient(145deg,#8059C3 0%,#7A49C7 35%,#542885 100%)!important;
  }
  html body .app-shell[data-theme] .hero-actions button.annual-glass-action:focus-visible {
    outline:3px solid #AC83FF!important;outline-offset:3px;
  }
}

/* Exam progression: pair the dark-mode Next/Submit ink and surface so the
   embedded rounded-card rule cannot leave dark text on dark glass. */
@media screen {
  html:is(.dark,[data-acemblex-theme="dark"]) body #exam #nextBtn {
    background:linear-gradient(135deg,#195DB4 0%,#293F99 100%)!important;
    color:#FFFFFF!important;text-shadow:none!important;
    border:2px solid #80B9FF!important;
    box-shadow:inset 0 1px 0 #ffffff40,0 4px 14px #10295830!important;
  }
  html:is(.dark,[data-acemblex-theme="dark"]) body #exam #nextBtn:focus-visible {
    outline:3px solid #72D9FF!important;outline-offset:3px;
  }
}
