/* Principal Web Estate theme: Estate Blue.
   APPEARANCE ONLY. Do not add layout properties (display, position, width,
   height, margin, padding, gap, grid/flex geometry, font-size or line-height). */
:root{
  --estate-ink:#0F1726;
  --estate-ink-2:#162235;
  --estate-muted:#5B6F89;
  --estate-paper:#F7FAFD;
  --estate-tint:#EDF3F8;
  --estate-white:#FFFFFF;
  --estate-line:#D6E0EB;
  --estate-accent:#1F4DB8;
  --estate-accent-dark:#315D92;
  --estate-accent-2:#3E79E6;
  --estate-dark:#173B72;
  --estate-dark-2:#1B477F;
  --estate-radius:16px;
  --estate-shadow:0 14px 34px rgba(15,23,38,.10);

  /* compatibility aliases consumed by the four legacy layouts */
  --ink:var(--estate-ink)!important;
  --ink2:var(--estate-ink-2)!important;
  --muted:var(--estate-muted)!important;
  --paper:var(--estate-paper)!important;
  --paper2:var(--estate-tint)!important;
  --white:var(--estate-white)!important;
  --light:var(--estate-white)!important;
  --line:var(--estate-line)!important;
  --accent:var(--estate-accent)!important;
  --accent-dark:var(--estate-accent-dark)!important;
  --accent2:var(--estate-accent-2)!important;
  --dark:var(--estate-dark)!important;
  --deep:var(--estate-dark-2)!important;
  --tint:var(--estate-tint)!important;
  --radius:var(--estate-radius)!important;
  --shadow:var(--estate-shadow)!important;
}
html,body{background:var(--estate-paper)!important;color:var(--estate-ink)!important}
:is(.site-header,.nav){
  background:rgba(247,250,253,.95)!important;
  border-color:var(--estate-line)!important;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}
:is(.mark,.brand-mark,.brandmark){border-color:var(--estate-accent)!important;color:var(--estate-accent)!important;border-radius:10px!important}
:is(.eyebrow,.tool-kicker,.tag,.status,.number,.panel-label,.card-label,.workspace-kicker){color:var(--estate-accent-dark)!important}
:is(.alt,.tint-section,.workspace-section,.signal-strip,.media-strip){background:var(--estate-tint)!important}
:is(.card,.content-card,.tool-card,.mini-card,.project-card,.qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,.workspace-privacy,.modal-panel,.legal-document){
  background:var(--estate-white)!important;
  border-color:var(--estate-line)!important;
  border-radius:var(--estate-radius)!important;
  box-shadow:none!important;
}
:is(.button,button,.btn,.slot,.quick-tutorial,.tutorial-close,.tutorial-prev,.tutorial-next){border-radius:10px!important}
:is(.button.primary,.primary,.tutorial-next,.slot.selected){
  background:var(--estate-accent)!important;
  border-color:var(--estate-accent)!important;
  color:#fff!important;
}
:is(.button.secondary,.button.ghost,.secondary,.quick-tutorial,.tutorial-prev){border-color:#AFC1D6!important}
:is(.accent,.text-link){color:var(--estate-accent)!important}
:is(.light){color:#D6E4FF!important}
:is(input,textarea,select){
  border-color:#C8D5E3!important;
  border-radius:10px!important;
  background:#fff!important;
  color:var(--estate-ink)!important;
}
:is(input,textarea,select):focus{
  border-color:var(--estate-accent-2)!important;
  box-shadow:0 0 0 3px rgba(62,121,230,.12)!important;
}
:is(a,button,.button,input,textarea,select):focus-visible{outline-color:var(--estate-accent-2)!important}
:is(.result,.workspace-report,.connector-state){background:#EAF1FB!important;border-color:var(--estate-line)!important}
:is(.dark,.dark-section,.mobile-companion,.hero-card,.framework-card,.tutorial-player){
  background:var(--estate-dark)!important;
  color:#fff!important;
}
:is(.dark p,.dark-section p,.mobile-companion p,.hero-card small,.framework-card p,.tutorial-player p){color:#D6E2F0!important}
:is(.dark .card,.dark .content-card,.dark .tool-card,.dark .mini-card){
  background:var(--estate-dark-2)!important;
  border-color:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
:is(.dark .card p,.dark .content-card p,.dark .tool-card p,.dark .mini-card p){color:#D6E2F0!important}
:is(.dark .button.ghost,.dark .button.secondary){color:#fff!important;border-color:rgba(255,255,255,.28)!important;background:transparent!important}
:is(.cross-book,.bridge){background:#E7EFF7!important}
:is(.site-footer,footer.footer,body>footer){background:var(--estate-dark)!important;color:#EAF1FB!important}
:is(.site-footer a,footer.footer a,body>footer a){color:#D8E2EC!important}


/* Dual appearance contract */
html[data-estate-theme="dark"]{
  --estate-ink:#F5F8FC;
  --estate-ink-2:#E4EDF7;
  --estate-muted:#C3D0DF;
  --estate-paper:#06101D;
  --estate-tint:#0A1727;
  --estate-white:#0F2035;
  --estate-line:#496A8E;
  --estate-accent:#8DC2FF;
  --estate-accent-dark:#A8CFFF;
  --estate-accent-2:#72AFFF;
  --estate-dark:#06101D;
  --estate-dark-2:#0B192A;
  --estate-shadow:0 16px 44px rgba(0,0,0,.30);
}
html[data-estate-theme="dark"],html[data-estate-theme="dark"] body{background:var(--estate-paper)!important;color:var(--estate-ink)!important}
html[data-estate-theme="dark"] :is(.site-header,.nav){background:rgba(6,16,29,.95)!important;border-color:var(--estate-line)!important}
html[data-estate-theme="dark"] :is(.alt,.tint-section,.workspace-section,.signal-strip,.media-strip){background:var(--estate-tint)!important}
html[data-estate-theme="dark"] :is(.card,.content-card,.tool-card,.mini-card,.project-card,.qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,.workspace-privacy,.modal-panel,.legal-document){
  background:var(--estate-white)!important;border-color:var(--estate-line)!important;color:var(--estate-ink)!important;
}
html[data-estate-theme="dark"] :is(p,li,dd,dt,label,small,td){color:inherit}
html[data-estate-theme="dark"] :is(.muted,.subtle,.meta,.help,.description){color:var(--estate-muted)!important}
html[data-estate-theme="dark"] :is(input,textarea,select){background:#102338!important;color:#F7FAFD!important;border-color:#58789A!important}
html[data-estate-theme="dark"] :is(input,textarea,select)::placeholder{color:#AFC0D2!important}
html[data-estate-theme="dark"] :is(.result,.workspace-report,.connector-state){background:#10243A!important;border-color:#496A8E!important}
html[data-estate-theme="dark"] :is(.cross-book,.bridge){background:#10243A!important}
html[data-estate-theme="dark"] :is(.site-footer,footer.footer,body>footer){background:#040B14!important;color:#EAF1FB!important}

.estate-appearance-button{
  background:var(--estate-white)!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important;box-shadow:var(--estate-shadow)!important;
}
.estate-appearance-dialog::backdrop{background:rgba(2,8,18,.68)}
.estate-appearance-card{
  background:var(--estate-white)!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important;box-shadow:0 28px 80px rgba(0,0,0,.28)!important;
}
.estate-appearance-head>div>span{color:var(--estate-accent-dark)!important}
.estate-appearance-card>p,.estate-appearance-foot>span{color:var(--estate-muted)!important}
.estate-appearance-card fieldset{border-color:var(--estate-line)!important}
.estate-appearance-close{background:transparent!important;color:var(--estate-muted)!important;border-color:var(--estate-line)!important}
.estate-appearance-foot button{background:var(--estate-accent)!important;color:#fff!important;border-color:var(--estate-accent)!important}
html[data-estate-theme="dark"] .estate-appearance-foot button{color:#06101D!important}


/* Authenticated engagement and Living Learning appearance coverage */
html[data-estate-theme="light"] :is(
  .workspace-body,.workspace-shell,.workspace-main,.workspace-view,.workspace-topbar,.workspace-sidebar,
  .workspace-detail,.workspace-access,.brief-editor,.version-rail,.trajectory-card,.attention-card,
  .learn-top,.learn-shell,.hero-strip,.resume-banner,.panel,.path-panel,.player-panel,.passport-panel,
  .qualification-panel,.scenario-box,.learning-home-update,.learning-home-panel,.mock-ui,.mock-card,
  .card
){
  background-color:var(--estate-white)!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important;
}
html[data-estate-theme="light"] :is(.workspace-body,.learn-shell,.learning-home-shell){background-color:var(--estate-paper)!important}
html[data-estate-theme="light"] :is(.learn-top,.workspace-topbar){background-color:var(--estate-white)!important;border-color:var(--estate-line)!important}
html[data-estate-theme="light"] :is(.player-stage,.passport-head,.hero-strip,.workspace-sidebar){background-color:var(--estate-dark)!important;color:#fff!important}
html[data-estate-theme="light"] :is(.player-stage p,.passport-head p,.hero-strip p,.workspace-sidebar p){color:#D6E2F0!important}

html[data-estate-theme="dark"] :is(
  .workspace-body,.workspace-shell,.workspace-main,.workspace-view,.workspace-topbar,.workspace-sidebar,
  .workspace-detail,.workspace-access,.brief-editor,.version-rail,.trajectory-card,.attention-card,
  .learn-top,.learn-shell,.hero-strip,.resume-banner,.panel,.path-panel,.player-panel,.passport-panel,
  .qualification-panel,.scenario-box,.learning-home-update,.learning-home-panel,.mock-ui,.mock-card,
  .card
){
  background-color:var(--estate-white)!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important;
}
html[data-estate-theme="dark"] :is(.workspace-body,.learn-shell,.learning-home-shell){background-color:var(--estate-paper)!important}
html[data-estate-theme="dark"] :is(.learn-top,.workspace-topbar){background-color:#081525!important;border-color:var(--estate-line)!important}
html[data-estate-theme="dark"] :is(
  .workspace-context,.workspace-heading p,.workspace-view p,.view-intro,.brief-editor label>span,
  .version-rail small,.version-rail p,.card-head p,.attention-card p,.attention-card small,
  .learn-top a,.learn-top nav a,.panel p,.path-foot p,.lesson-copy p,.capability span,
  .passport-metrics span,.delta p,.notice-meta,.security,.brand small
){color:var(--estate-muted)!important}
html[data-estate-theme="dark"] :is(
  .workspace-button.subtle,.header-signout,.lesson-actions .secondary,.notice-actions button,
  .scenario-actions button,.passport-reset,.resume-banner button,.card button
){background-color:#102338!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important}
html[data-estate-theme="dark"] :is(
  .workspace-button.light,.lesson-actions .primary,.primary-link,.qualification-panel>.primary,
  .learning-auth-form button,.card button[type="submit"]
){background-color:var(--estate-accent)!important;color:#06101D!important;border-color:var(--estate-accent)!important}
html[data-estate-theme="dark"] :is(
  .ledger-row,.document-list article,.project-cards article,.lesson-list button,.cap-row,
  .passport-metrics,.voice-picker,.progress-wrap,.pitfall-box,.learning-home-list article,
  .security,.workspace-access
){background-color:#10243A!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important}
html[data-estate-theme="dark"] :is(.brand,.brand strong,.learn-brand,.workspace-brand,.workspace-heading h1,.card h1){color:var(--estate-ink)!important}
html[data-estate-theme="dark"] :is(.mark,.workspace-mark){color:var(--estate-accent)!important;border-color:var(--estate-accent)!important}
html[data-estate-theme="dark"] :is(.lock-dialog,.detail-drawer){background-color:var(--estate-white)!important;color:var(--estate-ink)!important;border-color:var(--estate-line)!important}
html[data-estate-theme="dark"] :is(.track,.confidence-bar){background-color:#29415D!important}
html[data-estate-theme="dark"] :is(.track span,.confidence-bar i){background-color:var(--estate-accent)!important}


/* Internal PWG console light-mode normalization.
   These surfaces historically shipped dark-first CSS with component selectors
   that outranked the generic estate palette. Light mode must visibly render
   light here; dark mode remains available through the shared runtime. */
html[data-estate-theme="light"] body{
  --bg:#F7FAFD;--panel:#FFFFFF;--panel2:#EDF3F8;--text:#0F1726;--muted:#5B6F89;
  --blue:#315D92;--blue2:#3E79E6;--pink:#A74270;--green:#2D7A58;--amber:#9A6518;--red:#A33D3D;
}
html[data-estate-theme="light"] body{
  background:#F7FAFD!important;color:#0F1726!important;
}
html[data-estate-theme="light"] :is(.op-top,.atlas-top,.topbar,.learn-top){
  background:rgba(247,250,253,.97)!important;color:#0F1726!important;border-color:#D6E0EB!important;
}
html[data-estate-theme="light"] :is(.op-top a,.op-top button,.atlas-top a,.topbar a,.learn-top a,.learn-top nav,.header-signout){
  color:#334760!important;
}
html[data-estate-theme="light"] :is(.op-brand b,.atlas-brand b,.brand b,.learn-brand b){
  background:#173B72!important;color:#fff!important;border-color:#173B72!important;
}
html[data-estate-theme="light"] :is(.op-card,.stat,.metric,.panel,.version-card,.step,.command,.path-panel,.player-panel,.passport-panel,.qualification-panel,.learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card){
  background:#FFFFFF!important;color:#0F1726!important;border-color:#D6E0EB!important;box-shadow:0 10px 26px rgba(15,23,38,.06)!important;
}
html[data-estate-theme="light"] :is(.op-card,.stat,.metric,.panel,.version-card,.step,.command,.path-panel,.player-panel,.passport-panel,.qualification-panel,.learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card) :is(h1,h2,h3,h4,strong,b){
  color:#0F1726!important;
}
html[data-estate-theme="light"] :is(.op-heading p,.stat span,.queue-item p,.notice small,.person small,.atlas-intro>p,.legend,.variations,.step p,.command p,.hero p,.version-card small,.version-card span,.metric span,.panel p,.passport small,.curr-row span,.reminder-card p,.life-step p,.action-card p,.attention-main p,.attention-main small,.notification-row p,.notification-row small,.lesson small,.lesson-copy p,.passport-head p,.cap-row,.delta p,.learning-home-cap small,.learning-home-update p){
  color:#5B6F89!important;
}
html[data-estate-theme="light"] :is(.filters button,.review,.quiet,.secondary,.scenario-actions button,.notice-actions button,.learning-home-cap>a,.header-signout){
  background:#FFFFFF!important;color:#315D92!important;border-color:#AFC1D6!important;
}
html[data-estate-theme="light"] .filters button.active,
html[data-estate-theme="light"] :is(.primary,.resume-banner button,.action-card button,.attention-action,.primary-link){
  background:#1F4DB8!important;color:#fff!important;border-color:#1F4DB8!important;
}
html[data-estate-theme="light"] :is(dialog,.lock-dialog,.detail-drawer){
  background:#FFFFFF!important;color:#0F1726!important;border-color:#D6E0EB!important;
}
html[data-estate-theme="light"] dialog::backdrop{background:rgba(15,23,38,.28)!important}
html[data-estate-theme="light"] :is(.comment textarea,.voice-picker select,input,textarea,select){
  background:#FFFFFF!important;color:#0F1726!important;border-color:#B7C7D8!important;
}
html[data-estate-theme="light"] :is(.player-stage,.passport-head,.hero-strip){
  background:#173B72!important;color:#fff!important;
}
html[data-estate-theme="light"] :is(.player-stage p,.passport-head p,.hero-strip p){color:#D6E2F0!important}
html[data-estate-theme="light"] .step.dashed{
  background:#F8FAFC!important;border-color:#95A6BA!important;
}
html[data-estate-theme="light"] .step.success{
  background:#F1FAF5!important;border-color:#7DBA98!important;
}
html[data-estate-theme="light"] .shot:after{
  background:#173B72!important;color:#fff!important;border-color:#315D92!important;
}
html[data-estate-theme="light"] :is(.badge.client_ready,.badge.draft,.badge.locked,.state.live,.readiness,.readiness.current,.impact.yes,.impact.no,.tag.bad,.tag.good){
  filter:saturate(.8);
}


/* Appearance Contract v2 — semantic, contrast-qualified tokens.
   Page CSS owns geometry. This contract owns readable color relationships. */
:root{
  --surface-canvas:#F7FAFD;
  --surface-panel:#FFFFFF;
  --surface-subtle:#EEF3F8;
  --surface-raised:#FFFFFF;
  --surface-inverse:#173B72;
  --text-primary:#101828;
  --text-secondary:#344054;
  --text-muted:#475467;
  --text-inverse:#FFFFFF;
  --text-inverse-link:#BFDBFE;
  --text-link:#1D4ED8;
  --border-default:#B8C4D0;
  --border-strong:#98A2B3;
  --focus-ring:#2563EB;
  --control-primary:#1D4ED8;
  --control-primary-text:#FFFFFF;
  --status-success:#166534;
  --status-warning:#92400E;
  --status-danger:#B42318;

  --estate-ink:var(--text-primary)!important;
  --estate-ink-2:var(--text-secondary)!important;
  --estate-muted:var(--text-muted)!important;
  --estate-paper:var(--surface-canvas)!important;
  --estate-tint:var(--surface-subtle)!important;
  --estate-white:var(--surface-panel)!important;
  --estate-line:var(--border-default)!important;
  --estate-accent:var(--control-primary)!important;
  --estate-accent-dark:var(--text-link)!important;
  --estate-accent-2:var(--focus-ring)!important;
}
html[data-estate-theme="dark"]{
  --surface-canvas:#07111F;
  --surface-panel:#0F2035;
  --surface-subtle:#132A43;
  --surface-raised:#162B45;
  --surface-inverse:#07111F;
  --text-primary:#F8FAFC;
  --text-secondary:#D0D5DD;
  --text-muted:#B8C4D0;
  --text-inverse:#F8FAFC;
  --text-inverse-link:#93C5FD;
  --text-link:#93C5FD;
  --border-default:#5E7186;
  --border-strong:#7890A8;
  --focus-ring:#93C5FD;
  --control-primary:#93C5FD;
  --control-primary-text:#07111F;
  --status-success:#86EFAC;
  --status-warning:#FCD34D;
  --status-danger:#FDA4AF;
}
html[data-estate-theme] body{
  background:var(--surface-canvas)!important;
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(.card,.content-card,.tool-card,.mini-card,.project-card,.qsection,.scheduler-info,.scheduler-main,.workspace-detail,.workspace-privacy,.modal-panel,.legal-document,.panel,.metric,.op-card,.stat,.profile-card,.pipeline-stat,.path-panel,.player-panel,.passport-panel,.qualification-panel,.learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card,[data-appearance-surface="panel"]){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(.alt,.tint-section,.workspace-section,.signal-strip,.media-strip,[data-appearance-surface="subtle"]){
  background:var(--surface-subtle)!important;
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(.dark,.dark-section,.mobile-companion,.hero-card,.framework-card,.tutorial-player,.player-stage,.passport-head,[data-appearance-surface="inverse"]){
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(.dark,.dark-section,.mobile-companion,.hero-card,.framework-card,.tutorial-player,.player-stage,.passport-head,[data-appearance-surface="inverse"]) :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,label,small,strong,span,a){
  color:inherit!important;
}
html[data-estate-theme] :is(.muted,.subtle,.meta,.help,.description,.source-state,.asof,.empty,[data-appearance-tone="muted"]){
  color:var(--text-muted)!important;
}
html[data-estate-theme] :is(a,.text-link,[data-appearance-tone="link"]){color:var(--text-link)}
html[data-estate-theme] :is(.button.primary,.primary,.slot.selected,[data-appearance-action="primary"]){
  background:var(--control-primary)!important;
  color:var(--control-primary-text)!important;
  border-color:var(--control-primary)!important;
}
html[data-estate-theme] :is(input,textarea,select){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-strong)!important;
}
html[data-estate-theme] :is(input,textarea)::placeholder{color:var(--text-muted)!important}
html[data-estate-theme] :is(a,button,.button,input,textarea,select):focus-visible{
  outline:3px solid var(--focus-ring)!important;
  outline-offset:2px;
}
html[data-estate-theme] [data-appearance-tone="success"]{color:var(--status-success)!important}
html[data-estate-theme] [data-appearance-tone="warning"]{color:var(--status-warning)!important}
html[data-estate-theme] [data-appearance-tone="danger"]{color:var(--status-danger)!important}


/* Appearance Contract v2 — navigation/control contrast hardening.
   Header navigation and secondary controls must remain readable in both themes,
   regardless of legacy page-local color declarations. */
html[data-estate-theme="light"] :is(.eyebrow,.tool-kicker,.workspace-kicker){
  color:var(--text-link)!important;
}
html[data-estate-theme="light"] :is(.quiet,.article-meta,.essay-intro){
  color:var(--text-muted)!important;
}
html[data-estate-theme="dark"] :is(.site-nav,.navlinks,.site-header nav,.nav-wrap nav)>a{
  color:var(--text-primary)!important;
}
html[data-estate-theme="dark"] :is(.site-header .brand,.site-header .brand strong){
  color:var(--text-primary)!important;
}
html[data-estate-theme="dark"] :is(.site-header .brand small,.site-header .menu-button){
  color:var(--text-secondary)!important;
}
html[data-estate-theme="dark"] :is(.button.secondary,.button.ghost,.secondary,.quick-tutorial,.tutorial-prev){
  background:var(--surface-raised)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-strong)!important;
}


/* Rendered appearance qualification — final semantic normalization.
   These rules intentionally win over legacy page-local literal colors so
   visible text/control relationships stay readable in both appearances. */
html[data-estate-theme] :is(
  .card,.content-card,.tool-card,.mini-card,.project-card,.essay-card,.explore-item,
  .qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,
  .workspace-privacy,.modal-panel,.legal-document,.panel,.metric,.op-card,.stat,
  .profile-card,.pipeline-stat,.path-panel,.player-panel,.qualification-panel,
  .learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card
){
  background-color:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(
  .card,.content-card,.tool-card,.mini-card,.project-card,.essay-card,.explore-item,
  .qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,
  .workspace-privacy,.modal-panel,.legal-document,.panel,.metric,.op-card,.stat,
  .profile-card,.pipeline-stat,.path-panel,.player-panel,.qualification-panel,
  .learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card
) :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,label,small,strong){
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(
  .muted,.subtle,.meta,.help,.description,.source-state,.asof,.empty,
  .project-coming,.project-state,.section-intro,.essay-intro,.quiet,
  [data-appearance-tone="muted"]
){
  color:var(--text-muted)!important;
}
html[data-estate-theme] :is(.site-header,.nav,.topbar,.op-top,.atlas-top,.learn-top) :is(a,button){
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(.site-header,.nav) :is(.brand small,.brand p){
  color:var(--text-secondary)!important;
}
html[data-estate-theme] button:not(.primary):not(.secondary):not(.ghost),
html[data-estate-theme] .button:not(.primary):not(.secondary):not(.ghost){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-strong)!important;
}
html[data-estate-theme] .button:not(.primary):not(.secondary):not(.ghost){
  background:var(--control-primary)!important;
  color:var(--control-primary-text)!important;
  border-color:var(--control-primary)!important;
}
html[data-estate-theme] :is(.button.primary,.primary,.slot.selected,[data-appearance-action="primary"]){
  background:var(--control-primary)!important;
  color:var(--control-primary-text)!important;
  border-color:var(--control-primary)!important;
}
html[data-estate-theme] :is(.button.secondary,.button.ghost,.secondary,.quick-tutorial,.tutorial-prev){
  background:var(--surface-panel)!important;
  color:var(--text-link)!important;
  border-color:var(--border-strong)!important;
}
html[data-estate-theme] :is(
  .dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,
  .tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"]
){
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(
  .dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,
  .tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"]
) :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,label,small,strong,span,a){
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(
  .dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,
  .tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"]
) :is(.eyebrow,.panel-label,.card-label,.tool-kicker,.tag){
  color:var(--text-inverse-link)!important;
}

/* Nested panels always return to the normal panel text/surface pair, even
   when they live inside an inverse section. This must remain after inverse
   descendant rules so cards never inherit inverse text onto panel surfaces. */
html[data-estate-theme] :is(
  .card,.content-card,.tool-card,.mini-card,.project-card,.essay-card,.explore-item,
  .qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,
  .workspace-privacy,.modal-panel,.legal-document,.panel,.metric,.op-card,.stat,
  .profile-card,.pipeline-stat,.path-panel,.player-panel,.qualification-panel,
  .learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card
){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(
  .card,.content-card,.tool-card,.mini-card,.project-card,.essay-card,.explore-item,
  .qsection,.scheduler-info,.scheduler-main,.workspace-sidebar,.workspace-detail,
  .workspace-privacy,.modal-panel,.legal-document,.panel,.metric,.op-card,.stat,
  .profile-card,.pipeline-stat,.path-panel,.player-panel,.qualification-panel,
  .learning-home-panel,.learning-home-cap,.notification-row,.attention-item,.life-step,.action-card
) :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,label,small,strong){
  color:var(--text-primary)!important;
}



/* Rendered appearance qualification — dynamic architecture coverage. */
html[data-estate-theme] :is(.journey-section,.continuum-section,.factory-section,.book-section){
  background:var(--surface-canvas)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(.journey-section,.continuum-section,.factory-section,.book-section)
  :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(.journey-section,.continuum-section,.factory-section,.book-section)
  :is(p,li,label,small){
  color:var(--text-secondary)!important;
}
html[data-estate-theme] :is(
  .intent-card,.journey-next,.continuum-stage,.stage-head,.stage-tool,.scenario-chip,
  .continuum-footer,.carry-note,.stage-output
){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(
  .intent-card,.journey-next,.continuum-stage,.stage-head,.stage-tool,.scenario-chip,
  .continuum-footer,.carry-note,.stage-output
) :is(h1,h2,h3,h4,strong){
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(
  .intent-card,.journey-next,.continuum-stage,.stage-head,.stage-tool,.scenario-chip,
  .continuum-footer,.carry-note,.stage-output
) :is(p,small){
  color:var(--text-muted)!important;
}
html[data-estate-theme] :is(.stage-head small,.stage-output span,.intent-number,.specialist-kicker){
  color:var(--text-link)!important;
}
html[data-estate-theme] .stage-head>span{
  background:var(--control-primary)!important;
  color:var(--control-primary-text)!important;
}
html[data-estate-theme] .journey-panel{
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] .journey-panel :is(h1,h2,h3,h4,p,small,strong,span){
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(.step,.command){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(.step,.command) :is(b,strong,h1,h2,h3,h4,p){
  color:var(--text-primary)!important;
}
html[data-estate-theme] :is(.step,.command) :is(small,.variations,.flow-title p){
  color:var(--text-muted)!important;
}
html[data-estate-theme] :is(.enterprise-teaser,.dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,.tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"]){
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(.enterprise-teaser,.dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,.tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"])
  :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,label,small,strong,span,a){
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(.enterprise-teaser,.dark,.dark-section,.mobile-companion,.hero-card,.hero-panel,.framework-card,.tutorial-player,.player-stage,.passport-head,.band,[data-appearance-surface="inverse"])
  :is(.eyebrow,.panel-label,.card-label,.tool-kicker,.tag){
  color:var(--text-inverse-link)!important;
}
html[data-estate-theme] :is(.site-footer,footer.footer,body>footer){
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] :is(.site-footer,footer.footer,body>footer) :is(a,p,span,small,strong){
  color:var(--text-inverse)!important;
}
html[data-estate-theme] :is(.skip,.skip-link){
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-strong)!important;
}
html[data-estate-theme] .studio-card p:not(.eyebrow){
  color:var(--text-secondary)!important;
}
html[data-estate-theme] .factory-section .eyebrow{
  color:var(--text-link)!important;
}


/* Rendered qualification corrections — browser-proven relationship fixes.
   Keep these at the end so legacy selectors cannot reintroduce low-contrast
   inheritance after semantic normalization. */
html[data-estate-theme] .dark .card,
html[data-estate-theme] .dark-section .card{
  background:var(--surface-panel)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-estate-theme] .dark .card :is(h1,h2,h3,h4,h5,h6,p,li,small,strong,a),
html[data-estate-theme] .dark-section .card :is(h1,h2,h3,h4,h5,h6,p,li,small,strong,a){
  color:var(--text-primary)!important;
}
html[data-estate-theme] .dark-section{
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
}
html[data-estate-theme] .dark-section>.shell :is(h1,h2,h3,h4,h5,h6,p,li,small,strong,span,a),
html[data-estate-theme] .dark-section>.wrap :is(h1,h2,h3,h4,h5,h6,p,li,small,strong,span,a){
  color:var(--text-inverse)!important;
}
html[data-estate-theme] .dark-section :is(.eyebrow,.light){
  color:var(--text-inverse-link)!important;
}
html[data-estate-theme] .site-footer,
html[data-estate-theme] body>footer{
  background:var(--surface-inverse)!important;
  color:var(--text-inverse)!important;
}
html[data-estate-theme] .site-footer :is(p,a,span,small,strong),
html[data-estate-theme] body>footer :is(p,a,span,small,strong){
  color:var(--text-inverse)!important;
}
html[data-estate-theme="dark"] .bridge{
  background:var(--surface-subtle)!important;
  color:var(--text-primary)!important;
}
html[data-estate-theme="dark"] .bridge :is(h1,h2,h3,h4,p,strong,span){
  color:var(--text-primary)!important;
}
html[data-estate-theme="dark"] .bridge a{
  color:var(--text-link)!important;
}

/* Product visual tokens — centrally governed so product-specific media
   can stay distinctive without reintroducing page-local literal colors. */
:root{
  --product-polly-stage-glow:rgba(88,126,255,.40);
  --product-polly-stage-a:#071A35;
  --product-polly-stage-b:#0C2E5F;
  --product-polly-stage-c:#152667;
  --product-polly-border:rgba(150,187,255,.42);
  --product-polly-text:#F4F7FF;
  --product-polly-foot:#58729A;
  --product-polly-progress-track:rgba(255,255,255,.15);
  --product-polly-progress-a:#6DE5FF;
  --product-polly-progress-b:#7990FF;
  --product-polly-card-a:rgba(30,66,126,.98);
  --product-polly-card-b:rgba(9,31,72,.98);
  --product-polly-card-border:rgba(147,197,253,.45);
  --product-polly-shadow:rgba(0,0,0,.26);
  --product-polly-ghost:rgba(74,101,177,.38);
  --product-polly-ghost-border:rgba(147,197,253,.18);
  --product-polly-label:#9ED8FF;
  --product-polly-subtle:#D6E6FF;
  --product-polly-dot:rgba(255,255,255,.34);
  --product-polly-dot-active:#72DFFF;
}
