/* JDS navy mode. Primitive → semantic → existing component contracts.
   Light mode has no overrides. The public brand action palette remains authoritative. */
:root {
    --jds-night-page: #090e18;
    --jds-night-surface: #121a2a;
    --jds-night-elevated: #202b40;
    --jds-night-hover: #2b3c57;
    --jds-night-text: #f1f5f9;
    --jds-night-secondary: #c3cfdf;
    --jds-night-muted: #a6b5cb;
    --jds-night-divider: #3d506c;
    --jds-night-control-border: #7d90ad;
}
body:is(.dark-mode-shkrn,[data-jds-color-mode="dark"]) {
    color-scheme: dark;
    --jds-color-page: var(--jds-night-page);
    --jds-color-surface: var(--jds-night-surface);
    --jds-color-surface-soft: var(--jds-night-elevated);
    --jds-color-elevated: var(--jds-night-elevated);
    --jds-card-surface: var(--jds-night-elevated);
    --jds-step-surface: var(--jds-night-surface);
    --jds-step-idle-bg: var(--jds-night-elevated);
    --jds-step-active-bg: var(--jds-action-start);
    --jds-step-active-label: var(--jds-dark-primary);
    --jds-step-done-label: var(--jds-dark-success);
    --jds-step-done-bg: var(--jds-dark-success-solid);
    --jds-step-done-on: var(--jds-dark-success-on-solid);
    --jds-checkout-danger: var(--jds-dark-danger);
    --jds-total-text: var(--jds-dark-primary);
    --jaygah-breadcrumb-link: var(--jds-dark-primary);
    --jds-progress-label: var(--jds-dark-primary);
    --jds-price-badge-background: var(--jds-action-start);
    --jds-price-badge-text: var(--jds-action-text);
    --jds-price-original-text: var(--jds-night-secondary);
    --jds-color-hover: var(--jds-night-hover);
    --jds-color-selected: var(--jds-night-hover);
    --jds-color-text: var(--jds-night-text);
    --jds-site-text: var(--jds-night-text);
    --jds-color-secondary-text: var(--jds-night-secondary);
    --jds-color-muted: var(--jds-night-muted);
    --jds-color-border: var(--jds-night-divider);
    --jds-color-control-border: var(--jds-night-control-border);
    --jds-scrollbar-thumb: var(--jds-night-control-border);
    --jds-scrollbar-track: var(--jds-night-surface);
    --jds-color-accent-text: var(--jds-dark-primary);
    --jds-color-primary-hover: var(--jds-dark-primary);
    --jds-color-primary-soft: var(--jds-night-hover);
    --jds-color-success: var(--jds-dark-success);
    --jds-color-success-text: var(--jds-dark-success);
    --jds-color-warning: var(--jds-dark-warning);
    --jds-color-warning-text: var(--jds-dark-warning);
    --jds-color-danger: var(--jds-dark-danger);
    --jds-color-danger-text: var(--jds-dark-danger);
    --jds-color-info: var(--jds-dark-info);
    --jds-color-info-text: var(--jds-dark-info);
    --jds-state-success-bg: color-mix(in oklch,var(--jds-dark-success) 12%,var(--jds-night-surface));
    --jds-state-warning-bg: color-mix(in oklch,var(--jds-dark-warning) 12%,var(--jds-night-surface));
    --jds-state-danger-bg: color-mix(in oklch,var(--jds-dark-danger) 12%,var(--jds-night-surface));
    --jds-state-info-bg: color-mix(in oklch,var(--jds-dark-info) 12%,var(--jds-night-surface));
    --jds-color-disabled-bg: var(--jds-night-elevated);
    --jds-color-disabled-text: var(--jds-night-muted);
    --jds-focus-color: var(--jds-dark-primary);
    --jds-focus-ring: 0 0 0 3px var(--jds-night-page), 0 0 0 5px var(--jds-focus-color);
    --jds-shadow-sm: 0 2px 8px #02071133;
    --jds-shadow-card: 0 8px 28px #02071133;
    --jds-shadow-raised: 0 16px 40px #02071166;
    --shkrn-var-color-light-dark-high: var(--jds-night-page);
    --shkrn-var-color-light-dark-middle: var(--jds-night-surface);
    --shkrn-var-color-light-dark-card: var(--jds-night-surface);
    --shkrn-var-color-light-dark-bg: var(--jds-night-page);
    --shkrn-var-color-light-dark-text: var(--jds-night-text);
    --shkrn-var-color-light-dark-opacity-text: var(--jds-night-muted);
    --shkrn-var-color-light-dark-opacity-bg: var(--jds-night-elevated);
    --shkrn-var-color-light-dark-border: var(--jds-night-divider);
    --jaygah-primary-rgb: var(--shkrn-var-main-color-rgb);
    background-color: var(--jds-color-page);
    color: var(--jds-color-text);
}
@media(prefers-color-scheme:dark) {
 body.system-mode-shkrn {
    color-scheme: dark;
    --jds-color-page: var(--jds-night-page);
    --jds-color-surface: var(--jds-night-surface);
    --jds-color-surface-soft: var(--jds-night-elevated);
    --jds-color-elevated: var(--jds-night-elevated);
    --jds-card-surface: var(--jds-night-elevated);
    --jds-step-surface: var(--jds-night-surface);
    --jds-step-idle-bg: var(--jds-night-elevated);
    --jds-step-active-bg: var(--jds-action-start);
    --jds-step-active-label: var(--jds-dark-primary);
    --jds-step-done-label: var(--jds-dark-success);
    --jds-step-done-bg: var(--jds-dark-success-solid);
    --jds-step-done-on: var(--jds-dark-success-on-solid);
    --jds-checkout-danger: var(--jds-dark-danger);
    --jds-total-text: var(--jds-dark-primary);
    --jaygah-breadcrumb-link: var(--jds-dark-primary);
    --jds-progress-label: var(--jds-dark-primary);
    --jds-price-badge-background: var(--jds-action-start);
    --jds-price-badge-text: var(--jds-action-text);
    --jds-price-original-text: var(--jds-night-secondary);
    --jds-color-hover: var(--jds-night-hover);
    --jds-color-selected: var(--jds-night-hover);
    --jds-color-text: var(--jds-night-text);
    --jds-site-text: var(--jds-night-text);
    --jds-color-secondary-text: var(--jds-night-secondary);
    --jds-color-muted: var(--jds-night-muted);
    --jds-color-border: var(--jds-night-divider);
    --jds-color-control-border: var(--jds-night-control-border);
    --jds-scrollbar-thumb: var(--jds-night-control-border);
    --jds-scrollbar-track: var(--jds-night-surface);
    --jds-color-accent-text: var(--jds-dark-primary);
    --jds-color-primary-hover: var(--jds-dark-primary);
    --jds-color-primary-soft: var(--jds-night-hover);
    --jds-color-success: var(--jds-dark-success);
    --jds-color-success-text: var(--jds-dark-success);
    --jds-color-warning: var(--jds-dark-warning);
    --jds-color-warning-text: var(--jds-dark-warning);
    --jds-color-danger: var(--jds-dark-danger);
    --jds-color-danger-text: var(--jds-dark-danger);
    --jds-color-info: var(--jds-dark-info);
    --jds-color-info-text: var(--jds-dark-info);
    --jds-state-success-bg: color-mix(in oklch,var(--jds-dark-success) 12%,var(--jds-night-surface));
    --jds-state-warning-bg: color-mix(in oklch,var(--jds-dark-warning) 12%,var(--jds-night-surface));
    --jds-state-danger-bg: color-mix(in oklch,var(--jds-dark-danger) 12%,var(--jds-night-surface));
    --jds-state-info-bg: color-mix(in oklch,var(--jds-dark-info) 12%,var(--jds-night-surface));
    --jds-color-disabled-bg: var(--jds-night-elevated);
    --jds-color-disabled-text: var(--jds-night-muted);
    --jds-focus-color: var(--jds-dark-primary);
    --jds-focus-ring: 0 0 0 3px var(--jds-night-page), 0 0 0 5px var(--jds-focus-color);
    --jds-shadow-sm: 0 2px 8px #02071133;
    --jds-shadow-card: 0 8px 28px #02071133;
    --jds-shadow-raised: 0 16px 40px #02071166;
    --shkrn-var-color-light-dark-high: var(--jds-night-page);
    --shkrn-var-color-light-dark-middle: var(--jds-night-surface);
    --shkrn-var-color-light-dark-card: var(--jds-night-surface);
    --shkrn-var-color-light-dark-bg: var(--jds-night-page);
    --shkrn-var-color-light-dark-text: var(--jds-night-text);
    --shkrn-var-color-light-dark-opacity-text: var(--jds-night-muted);
    --shkrn-var-color-light-dark-opacity-bg: var(--jds-night-elevated);
    --shkrn-var-color-light-dark-border: var(--jds-night-divider);
    --jaygah-primary-rgb: var(--shkrn-var-main-color-rgb);
    background-color: var(--jds-color-page);
    color: var(--jds-color-text);
}
}

/* Elementor's saved text global describes light mode. Owned widgets resolve it
   from the effective JDS mode; authored content/geometry is not rewritten. */
body[data-jds-color-mode="dark"] .jds-widget {
    --jds-elementor-text: var(--jds-night-text);
    --jds-color-muted: var(--jds-night-muted);
    --jds-color-accent-text: var(--jds-dark-primary);
    --jds-color-primary-soft: var(--jds-night-hover);
}
body[data-jds-color-mode="dark"] .elementor { --e-global-color-text: var(--jds-night-text); }
body[data-jds-color-mode="dark"] :is(input,textarea)::placeholder { color: var(--jds-night-muted); opacity:1; }
body[data-jds-color-mode="dark"] :is(input,textarea,select):not([type=hidden]):not([type=checkbox]):not([type=radio]) { border-color:var(--jds-color-control-border); }
body[data-jds-color-mode="dark"] :is(a,button,input,textarea,select):focus-visible { outline-color:var(--jds-focus-color); }
body[data-jds-color-mode="dark"] :is(.jds-button,.jaygah-button,.jaygah-ui-button):disabled { background:var(--jds-color-disabled-bg); color:var(--jds-color-disabled-text); }
/* The account shell inherits page/surface depth, including system mode. */
body.jaygah-account-app[data-jds-color-mode="dark"] :is(.content-inner,.app) { background:var(--jds-color-page); }
body.jaygah-workspace-instructor[data-jds-color-mode="dark"] { --jgi-canvas:var(--jds-color-page); --jgi-accent-strong:var(--jds-dark-primary); }
/* Native controls and utility text use semantic link/status colours. */
body[data-jds-color-mode="dark"] :is(.jaygah-learning-filters a.is-active,.jaygah-workspace-switcher form button) { background:var(--jds-action-background); color:var(--jds-action-text); }
body[data-jds-color-mode="dark"] :is(.jaygah-progress-meta strong,.jaygah-course-outline strong) { color:var(--jds-color-accent-text); }

/* Legacy discussion components consume the same semantic status/action contract. */
body[data-jds-color-mode="dark"] .jaygah-discussion-heading nav b { background:var(--jds-night-surface); color:var(--jds-night-text); }
body[data-jds-color-mode="dark"] .jaygah-discussion-labels .is-student { background:var(--jds-state-success-bg); color:var(--jds-color-success-text); }
body[data-jds-color-mode="dark"] .jaygah-discussion-labels .is-instructor { background:var(--jds-state-info-bg); color:var(--jds-color-info-text); }
body[data-jds-color-mode="dark"] .jaygah-discussion-labels .is-question { background:var(--jds-state-warning-bg); color:var(--jds-color-warning-text); }
body[data-jds-color-mode="dark"] .jaygah-form-notice a { background:var(--jds-action-background); }
body.jaygah-account-app[data-jds-color-mode="dark"] .jaygah-library { --jds-library-accent:var(--jds-dark-primary); }
body.jaygah-account-app[data-jds-color-mode="dark"] .jaygah-library .jaygah-learning-filters a.is-active { background:var(--jds-action-background); }

body[data-jds-color-mode="dark"] .jaygah-review-votes button[aria-pressed="true"] { color:var(--jds-color-accent-text); border-color:currentColor; background:var(--jds-color-selected); }

/* Reusable card and search-control surfaces, independent of page layout. */
body[data-jds-color-mode="dark"] :is(.jds-card,.box-course,.box-article) { background-color:var(--jds-color-elevated); }
body[data-jds-color-mode="dark"] :is(.search-el-jaygah form,.jaygah-library-controls form) { border-color:var(--jds-color-control-border); }
body[data-jds-color-mode="dark"] :is(input[type=checkbox],input[type=radio]) { accent-color:var(--jds-color-accent-text); }

body[data-jds-color-mode="dark"] #label-profile-image {
    opacity:1; background:var(--jds-color-elevated); color:var(--jds-color-text);
    border:1px solid var(--jds-color-control-border);
}

body[data-jds-color-mode="dark"] .woocommerce form .form-row .required { color:var(--jds-color-danger-text); }
body[data-jds-color-mode="dark"] .jaygah-checkout-shell .box-focus-coupon-shkrn input { border-color:var(--jds-color-control-border); }
