/* Central theme contract. Loaded last; component files own layout. */
html.theme-changing *,html.theme-changing *::before,html.theme-changing *::after{transition:none!important}
html[data-theme=light] {
 color-scheme:light;
 --paper:#f6f5fa;--surface:#fff;--surface-soft:#f0edf6;--surface-hover:#e9e3f3;
 --ink:#282334;--muted:#6b6278;--line:#ded8e8;--accent:#7045b4;--teal:#7045b4;
 --accent-soft:#ece3fa;--accent-ink:#603797;--primary:#7146b6;--primary-hover:#5e389a;
 --nav:#fcfbfe;--nav-ink:#574d65;--nav-active:#ece2fa;--nav-selected:#59318f;
 --hero-a:#f6f0ff;--hero-b:#e4daf1;--hero-text:#30213f;--hero-muted:#655471;
 --success-bg:#e5f3ec;--success-ink:#246346;--warning-bg:#fff1d8;--warning-ink:#805719;
 --danger-bg:#fbe9ed;--danger-ink:#a0384e;--logo-filter:brightness(0);
 --shadow:0 5px 24px #30204708;--ring:#8052ba;--glass:#ffffffd9;
}
html[data-theme=dark] {
 color-scheme:dark;
 --paper:#111017;--surface:#1c1925;--surface-soft:#262131;--surface-hover:#332b41;
 --ink:#f0ebf7;--muted:#b7acc5;--line:#3c334a;--accent:#c3a0f3;--teal:#c3a0f3;
 --accent-soft:#342442;--accent-ink:#d4b4fc;--primary:#7950b2;--primary-hover:#895dc5;
 --nav:#17131f;--nav-ink:#c7bdd3;--nav-active:#342443;--nav-selected:#e4caff;
 --hero-a:#21172f;--hero-b:#322044;--hero-text:#f6efff;--hero-muted:#c8b9d9;
 --success-bg:#19382e;--success-ink:#93d9b9;--warning-bg:#40311c;--warning-ink:#f0cd91;
 --danger-bg:#422630;--danger-ink:#f2acbc;--logo-filter:none;
 --shadow:0 8px 28px #0002;--ring:#c5a0f3;--glass:#211a2de8;
}
html[data-theme] body{background:var(--paper);color:var(--ink)}
html[data-theme] *{scrollbar-color:var(--line) var(--surface-soft)}
html[data-theme] .shell>header{background:var(--surface);border-color:var(--line)}
html[data-theme] :is(button,select,input,textarea,.button-link){color:var(--ink);border-color:var(--line);background-color:var(--surface)}
html[data-theme] :is(button,.button-link):hover{background-color:var(--surface-hover);border-color:var(--accent)}
html[data-theme] :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--ring);outline-offset:3px}
html[data-theme] :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
html[data-theme] :is(.primary,.login-page .login-submit){background:var(--primary);color:#fff;border-color:var(--primary)}
html[data-theme] :is(.primary,.login-page .login-submit):hover{background:var(--primary-hover);color:#fff;border-color:var(--primary-hover)}
html[data-theme] :is(.ghost,.textbutton,.back-link,.linkbutton,.modal-close button){background:transparent;color:var(--accent);border-color:transparent}
html[data-theme] :is(.theme-toggle,.login-appearance){display:inline-flex;align-items:center;gap:8px;min-height:40px;background:var(--surface-soft);color:var(--ink);border:1px solid var(--line)}
:is(.theme-toggle,.login-appearance) svg{width:17px;height:17px;flex-shrink:0}
:is(.theme-toggle,.login-appearance) b{font-size:11px;font-weight:500;white-space:nowrap}
html[data-theme] :is(.theme-toggle,.login-appearance):hover{background:var(--surface-hover)}
/* Sidebar, including all text, logo variants and interaction states. */
html[data-theme] .sidebar{background:var(--nav);color:var(--ink);border-right:1px solid var(--line)}
html[data-theme] .sidebar .darkride-brand img{filter:var(--logo-filter)}
html[data-theme] .sidebar :is(.darkride-brand small,.navlabel,.nav-separator,.sidebottom p,.workspace small){color:var(--muted)}
html[data-theme] .sidebar .workspace{background:var(--surface-soft);border-color:var(--line);color:var(--ink)}
html[data-theme] :is(.sidebar .avatar,.avatar.pale){background:var(--accent-soft);color:var(--accent-ink)}
html[data-theme] .sidebar nav a{color:var(--nav-ink);background:transparent;box-shadow:none}
html[data-theme] .sidebar nav a:hover{color:var(--ink);background:var(--surface-hover)}
html[data-theme] .sidebar nav a.active{color:var(--nav-selected);background:var(--nav-active);box-shadow:inset 3px 0 0 var(--accent)}
html[data-theme] .sidebar nav a.active:hover{background:var(--nav-active)}
html[data-theme] .sidebar :is(.sidebottom a,.connection){color:var(--nav-ink)}
html[data-theme] .sidebar .sidebottom a:hover{color:var(--accent)}
html[data-theme] .nav-count{background:var(--accent-soft);color:var(--accent-ink)}
/* Shared surfaces: dashboards, fleet, access, support and dialogs. */
html[data-theme] :is(.panel,.stat,dialog,.incident,.assistant-card,.request-list article,.payment-planner,.metriclist>div,.productfacts>div,.connect-hub,.client-tile){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme] :is(.statname,.statnote,.subtle,.fineprint,.chart-foot,.chart-legend,.chart-legend b,.tablewrap td small,.breadcrumb,.demobadge,.rolelabel,.step-label,.planner-demo,.store-overline,.game-category,.merchant-footer,.scenario,.setup-steps,.job-row small,.session-panel label,.session-facts span,footer){color:var(--muted)}
html[data-theme] :is(.demobadge,.source-strip,.report-scope,.notice,.scope-summary,.insight-ribbon,.planner-detail,.credit-purchase-summary,.setup-permissions,.service-explainer,.empty-icon,.credit-explainer span,.readiness-strip,.evidence,.job-icon,.spark,.setup-permissions span,.cataloglist span){background:var(--surface-soft);border-color:var(--line);color:var(--muted)}
html[data-theme] :is(.source-strip b,.eyebrow,.report-scope svg,.privacy-item>svg,.job-icon,.spark){color:var(--accent)}
html[data-theme] :is(.scope-summary b,.scope-summary span,.report-scope b,.insight-ribbon b,.planner-top h3,.planner-summary strong,.planner-summary p b,.period-heading b,.payment-model strong){color:var(--ink)}
html[data-theme] :is(.ai-support-intro,.ops-section,.mcp-panel){background:linear-gradient(125deg,var(--accent-soft),var(--surface) 70%);border-color:var(--line)}
html[data-theme] .ai-support-symbol{background:var(--accent-soft);color:var(--accent)}
html[data-theme] :is(.ai-support-intro p,.request-list p,.service-explainer p,.session-panel>p,.report-scope small,.scope-chip,.report-filters label,.ai-job-filter,.jobs-empty,.tablewrap th){color:var(--muted)}
html[data-theme] .tablewrap th{background:var(--surface-soft);border-color:var(--line)}
html[data-theme] .tablewrap tbody tr:hover{background:var(--surface-soft)}
html[data-theme] :is(td,.summaryrow,.license-facts,.license-facts>div,.job-row,.session-facts,.jobs-empty,.healthrow,.clean-list li,.receipt-lines>div,.credit-wallets article,.leader-row,.chart-legend>div){border-color:var(--line)}
html[data-theme] :is(.status,.connection-status.online,.success-note,.session-banner,.result-icon,.seat){background:var(--success-bg);color:var(--success-ink);border-color:var(--success-ink)}
html[data-theme] :is(.status.warn,.seat.warn,.alert,.checkout-notice,.demo-banner,.connector-demo-note){background:var(--warning-bg);color:var(--warning-ink);border-color:var(--warning-ink)}
html[data-theme] :is(.alert p,.checkout-notice span){color:var(--warning-ink);background:transparent}
html[data-theme] .status.gray{background:var(--surface-soft);color:var(--muted)}
html[data-theme] :is(.connection-status.offline,.inline-error){background:var(--danger-bg);color:var(--danger-ink);border-color:var(--danger-ink)}
html[data-theme] .readiness-warn{color:var(--warning-ink)}
html[data-theme] .login-message.login-error{color:var(--danger-ink)}
html[data-theme] :is(.seat small,.status small,.session-banner p){color:inherit}
html[data-theme] :is(.mini-bar,.age-bars>div>div,.wallet-progress){background:var(--surface-soft)}
html[data-theme] :is(.report-bars b,.report-bars small,.chart text){color:var(--muted);fill:var(--muted)}
html[data-theme] .donut-center{background:var(--surface);color:var(--ink)}
html[data-theme] .donut:after{background:var(--surface)}
html[data-theme] :is(.camera-visual,.role-welcome,.welcome-strip){background:linear-gradient(135deg,var(--hero-a),var(--hero-b));color:var(--hero-text);border:1px solid var(--line)}
html[data-theme] :is(.camera-visual>span,.camera-summary span,.role-welcome p,.welcome-strip p){color:var(--hero-muted)}
html[data-theme] :is(.role-welcome h2,.welcome-strip h2,.white-link){color:var(--hero-text)}
html[data-theme] :is(.role-welcome .eyebrow,.welcome-strip .eyebrow){color:var(--accent)}
html[data-theme] .seat-picture>div{color:var(--muted);border-color:var(--line)}
html[data-theme] .seat-picture .occupied{background:var(--accent-soft);border-color:var(--accent)}
/* Film artwork keeps its colors; its framing follows the theme. */
html[data-theme] .storefront .spotlight{background:var(--hero-a);border:1px solid var(--line);box-shadow:var(--shadow)}
html[data-theme] .storefront .spotlight-scene:before{background:linear-gradient(100deg,var(--hero-a) 15%,var(--hero-a) 40%,transparent 100%)}
html[data-theme] .storefront .spotlight-backdrop{opacity:.18}
html[data-theme] .storefront .spotlight-copy h2{color:var(--hero-text)}
html[data-theme] .storefront :is(.spotlight-description,.spotlight-category,.spotlight-caption,.spotlight-kicker,.spotlight-footnote,.spotlight-count){color:var(--hero-muted)}
html[data-theme] .storefront .spotlight-kicker span{background:var(--accent);box-shadow:0 0 12px var(--accent-soft)}
html[data-theme] .storefront .spotlight-count b{color:var(--hero-text)}
html[data-theme] .storefront .spotlight-primary{background:var(--primary);color:white;border-color:var(--primary)}
html[data-theme] .storefront .spotlight-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
html[data-theme] .storefront .spotlight-secondary{background:var(--glass);color:var(--hero-text);border-color:var(--line)}
html[data-theme] .storefront .spotlight-secondary:hover{background:var(--surface-hover)}
html[data-theme] .storefront .poster-plaque{background:var(--glass);border-color:var(--line);box-shadow:var(--shadow)}
html[data-theme] .storefront .poster-plaque :is(strong,span,small){color:var(--hero-text)}
html[data-theme] .storefront .poster-halo{border-color:var(--line);background:radial-gradient(circle,var(--accent-soft),transparent 70%)}
html[data-theme] .storefront .spotlight-footer{background:var(--surface);border-color:var(--line)}
html[data-theme] .storefront .spotlight-tabs{background:var(--surface-soft);border-color:var(--line)}
html[data-theme] .storefront .spotlight-tabs .spotlight-tab{background:transparent;color:var(--muted);box-shadow:none}
html[data-theme] .storefront .spotlight-tabs .spotlight-tab span{color:inherit}
html[data-theme] .storefront .spotlight-tabs .spotlight-tab:hover{background:var(--surface-hover);color:var(--ink)}
html[data-theme] .storefront .spotlight-tabs .spotlight-tab.active{background:var(--nav-active);color:var(--nav-selected);box-shadow:inset 0 0 0 1px var(--line)}
/* Store controls, poster edges, bundles and checkout. */
html[data-theme] :is(.planner-top,.planner-model-heading,.payment-models){background:var(--surface);border-color:var(--line)}
html[data-theme] :is(.content-switch,.period-switch,.genre-chip,.store-search){background:var(--surface-soft);border-color:var(--line);color:var(--muted)}
html[data-theme] :is(.content-switch button,.period-switch button){background:transparent;color:var(--muted)}
html[data-theme] :is(.content-switch button.active,.period-switch button.active){background:var(--primary);color:white}
html[data-theme] .period-switch button>span{background:var(--accent-soft);color:var(--accent-ink)}
html[data-theme] .period-switch button.active>span{background:#ffffff26;color:#fff}
html[data-theme] .payment-model{background:var(--surface);border-color:var(--line)}
html[data-theme] .payment-model:hover{background:var(--surface-soft);border-color:var(--accent)}
html[data-theme] .storefront .payment-model.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
html[data-theme] :is(.payment-model small,.period-heading small,.planner-summary p,.planner-summary strong small,.planner-summary>div>span,.planner-fine,.credit-explainer,.collection-intro){color:var(--muted)}
html[data-theme] .model-symbol{color:var(--accent)}
html[data-theme] .model-top i{border-color:var(--muted)}
html[data-theme] .active .model-top i{background:var(--surface);border-color:var(--accent)}
html[data-theme] .storefront .genre-chip.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
html[data-theme] .store-search input{background:transparent;color:var(--ink)}
html[data-theme] .storefront :is(.verified-card,.verified-body,.poster-link){background:transparent;border-color:transparent;box-shadow:none}
html[data-theme] .storefront .verified-card:hover{background:transparent;box-shadow:none;border-color:transparent}
html[data-theme] .storefront .official-poster{box-shadow:0 0 0 1px var(--line);border-color:transparent}
html[data-theme] .storefront :is(.verified-body h3,.bundle-body h3,.store-price,.store-service-strip b){color:var(--ink)}
html[data-theme] .storefront :is(.store-price small,.bundle-body p,.bundle-body li,.bundle-disclaimer,.catalog-footnote,.store-service-strip small){color:var(--muted)}
html[data-theme] .storefront .verified-body .card-arrow{background:transparent;border-color:var(--line);color:var(--accent)}
html[data-theme] .storefront .verified-body .card-arrow:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
html[data-theme] .storefront :is(.bundle-card,.bundle-body){background:var(--surface);border-color:var(--line)}
html[data-theme] .storefront :is(.bundle-body ul,.store-service-strip,.catalog-footnote){border-color:var(--line)}
html[data-theme] .storefront :is(.bundle-savings,.bundle-savings.credit-tag){background:var(--accent-soft);color:var(--accent-ink);border-color:var(--line)}
html[data-theme] .storefront .bundle-savings small{color:inherit}
html[data-theme] .admin-catalog-label{background:var(--surface-soft);border-color:var(--line);color:var(--muted)}
html[data-theme] .store-review .offer-heading{background:var(--surface-soft);border-color:var(--line)}
html[data-theme] :is(.checkout-v4 .checkout-order,.card-preview,.payment-card,.wallet-preview){background:var(--surface-soft);border-color:var(--line);color:var(--ink)}
html[data-theme] .checkout-v4 .checkout-form{background:var(--surface);color:var(--ink)}
html[data-theme] :is(.checkout-v4 .checkout-order>p,.checkout-location,.checkout-location small,.merchant-heading span,.checkout-v4 .checkout-order>h2 small,.wallet-preview p,.wallet-actions,.credit-wallets small,.credit-wallets p,.scenario){color:var(--muted)}
html[data-theme] .merchant-heading img{filter:var(--logo-filter);opacity:1}
html[data-theme] .checkout-v4 :is(input[readonly],.checkout-form input:not([type=checkbox])){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme] .payment-options button.selected{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
html[data-theme] :is(.payment-card .card-bottom,.checkout-v4 .summaryrow){border-color:var(--line)}
html[data-theme] :is(.wallet-balance,.stripe-word,.checkout-v4 .stripe-word,.visa){color:var(--accent)}
html[data-theme] :is(.wallet-symbol,.link-word){color:var(--success-ink)}
html[data-theme] .extra-plans article{background:var(--surface-soft);border-color:var(--line)}
html[data-theme] dialog::backdrop{background:#100b1b80;backdrop-filter:blur(5px)}
/* Sign-in shares the workspace preference. */
html[data-theme] .login-brand-panel{background:radial-gradient(ellipse at 60% 55%,var(--accent-soft),transparent 70%),linear-gradient(135deg,var(--hero-a),var(--hero-b));color:var(--hero-text)}
html[data-theme] .login-brand img{filter:var(--logo-filter)}
html[data-theme] .login-story h1{color:var(--hero-text)}
html[data-theme] :is(.login-story p,.login-features,.login-brand-footer){color:var(--hero-muted)}
html[data-theme] .login-kicker{color:var(--accent)}
html[data-theme] .login-form-panel{background:var(--surface)}
html[data-theme] .login-orbit{border-color:var(--line);background:radial-gradient(ellipse,var(--accent-soft),transparent 65%)}
/* Legacy spotlight copy used important colors; retain that priority for both themes. */
html[data-theme] .storefront :is(.spotlight-description,.spotlight-category){color:var(--hero-muted)!important}
html[data-theme] .spotlight-caption span{color:inherit}
html[data-theme] :is(.breadcrumb span,.catalog-footnote a){color:var(--muted)}
html[data-theme] .storefront .catalog-footnote a{color:var(--accent)}
html[data-theme] th{background:var(--surface-soft);color:var(--muted);border-color:var(--line)}
html[data-theme] #catalog-count{background:var(--surface-soft);color:var(--muted)}
html[data-theme] .game-category>span{background:var(--warning-bg);color:var(--warning-ink)}
html[data-theme] .shell .button-link{background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme] .shell .button-link:hover{background:var(--surface-hover);border-color:var(--accent)}
html[data-theme] .store-review .license-facts{background:var(--surface-soft);border-color:var(--line)}
html[data-theme] .request-list small{color:var(--muted)}
html[data-theme] .checkout-v4 .checkout-order .back-link{color:var(--accent);background:transparent}
html[data-theme] .subscription-list article :is(p,small){color:var(--muted)}
html[data-theme] .subscription-list article{border-color:var(--line)}
html[data-theme] .payment-card .card-bottom input+input{border-left-color:var(--line)!important}
html[data-theme] .storefront .bundle-body .eyebrow{color:var(--accent)}
html[data-theme] .store-search:focus-within{outline:2px solid var(--ring);outline-offset:3px}
@media(max-width:600px){
 html[data-theme] .storefront .spotlight-scene:before{background:linear-gradient(180deg,var(--hero-a) 10%,var(--hero-a) 45%,transparent 100%)}
 :is(.theme-toggle,.login-appearance) b{font-size:10px}
}
