/* Optical compatibility aliases for the existing resolved Zentrack theme.
   Screen-only: paper templates keep their original palettes in print/PDF. */
@media screen {
  :root[data-z-theme="dark"] {
    color-scheme: dark;
    /* Older Optical controls use these aliases; share the resolved Framework values. */
    --z-muted: var(--z-text-muted);
    --z-bg: var(--z-background);
    --z-subtle: var(--z-surface-alt);
    --z-on-primary: #062f2a;
    --zn-success-light: color-mix(in srgb, var(--z-success) 12%, var(--z-surface));
    --zn-success-border: color-mix(in srgb, var(--z-success) 40%, var(--z-surface));
    --zn-surface: var(--z-surface);
    --zn-surface-secondary: var(--z-surface-alt);
    --zn-text: var(--z-text);
    --zn-text-muted: var(--z-text-muted);
    --zn-muted: var(--z-text-muted);
    --zn-border: var(--z-border);
    --zn-primary: var(--z-primary);
    --zn-primary-light: var(--z-primary-soft);
    --zn-success: var(--z-success);
    --zn-danger: var(--z-danger);
    --optical-theme-surface: var(--z-surface);
    --optical-theme-text: var(--z-text);
    --optical-theme-muted: var(--z-text-muted);
    --optical-theme-border: #607692;
    --optical-theme-accent: var(--z-primary);
    --optical-theme-danger: var(--z-danger);
    --optical-theme-warning: var(--z-warning);
    --optical-theme-success: var(--z-success);
    --optical-theme-info: #a5d5ff;
    --optical-theme-danger-soft: color-mix(in srgb, var(--z-danger) 12%, var(--z-surface));
    --optical-theme-warning-soft: color-mix(in srgb, var(--z-warning) 12%, var(--z-surface));
    --optical-theme-success-soft: color-mix(in srgb, var(--z-success) 10%, var(--z-surface));
    --optical-theme-info-soft: color-mix(in srgb, #60a5fa 12%, var(--z-surface));
    --optical-theme-violet-soft: color-mix(in srgb, #c4b5fd 12%, var(--z-surface));
  }
  :root[data-z-theme="dark"] :is(.z-btn-primary,.zn-primary) { background-color: var(--z-primary); border-color: var(--z-primary); color: #062f2a; }
  :root[data-z-theme="dark"] :is(.z-btn-primary,.zn-primary):focus-visible { outline: 2px solid var(--z-primary); outline-offset: 3px; }
  /* These shared native controls previously relied on browser defaults, especially textareas. */
  :root[data-z-theme="dark"] :is(.optical-entry-page,.optical-popup,.workshop-page,.workshop-created-dialog,.optical-ui,.optical-design)
    :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea) {
    background-color: var(--z-surface); color: var(--z-text); border-color: var(--optical-theme-border);
  }
  :root[data-z-theme="dark"] :is(.optical-entry-page,.optical-popup,.workshop-page,.workshop-created-dialog,.optical-ui,.optical-design)
    :is(input,textarea)::placeholder { color: var(--z-text-muted); opacity: 1; }
  :root[data-z-theme="dark"] :is(.optical-entry-page,.optical-popup,.workshop-page,.workshop-created-dialog,.optical-ui,.optical-design)
    :is(input,select,textarea):is(:disabled,[readonly]) { background-color: var(--z-surface-alt); color: var(--z-text-muted); }
  :root[data-z-theme="dark"] :is(.optical-entry-page,.optical-popup,.workshop-page,.workshop-created-dialog,.optical-ui,.optical-design)
    :is(input,select,textarea)[aria-invalid=true] { border-color: var(--z-danger); }
  :root[data-z-theme="dark"] .branch-indicator { background: var(--z-surface-alt); color: var(--z-text); }
  :root[data-z-theme="dark"] .common-action-feedback.is-error { border-color: var(--z-danger); }
  :root[data-z-theme="dark"] .common-action-feedback.is-success { border-color: var(--z-success); }
}

/* Keep Devanagari glyphs legible without changing theme colors or numeric formatting. */
:root:lang(hi){--z-font:Inter,"Nirmala UI","Noto Sans Devanagari","Segoe UI",sans-serif}
:lang(hi) :is(.optical-popup,.workshop-created-dialog,.optical-design,.optical-ui){font-family:Inter,"Nirmala UI","Noto Sans Devanagari","Segoe UI",sans-serif}

/* Existing business controls consume the shared palette in both modes. */
@media screen {
 :root[data-z-accent] {
  --optical-bg:var(--z-background); --optical-surface:var(--z-surface);
  --optical-surface-muted:var(--z-surface-alt); --optical-ink:var(--z-text);
  --optical-muted:var(--z-text-muted); --optical-border:var(--z-border);
  --optical-teal:var(--z-primary); --optical-teal-dark:var(--z-primary);
  --optical-teal-light:var(--z-primary-soft); --optical-teal-soft:var(--z-primary-soft);
  --z-bg:var(--z-background); --zn-surface:var(--z-surface); --zn-text:var(--z-text);
  --optical-theme-surface:var(--z-surface); --optical-theme-text:var(--z-text);
  --optical-theme-muted:var(--z-text-muted); --optical-theme-border:var(--z-border);
  --optical-theme-accent:var(--z-primary);
 }
 :root[data-z-accent] .power-dialog .power-choice-grid .selected-power {
  background:var(--z-primary);color:var(--z-on-primary);border-color:var(--z-primary);
  box-shadow:0 0 0 2px var(--z-focus-ring);
 }
 :root[data-z-accent] .final-dialog .product-choice.selected {border-color:var(--z-primary)}
}

/* Shared Optical field focus: normalize outlines/shadows only, never control geometry.
   Buttons, checkboxes, radios and file controls retain their existing focus treatment. */
@media screen {
 :root { --optical-field-focus:var(--z-primary); }
 :root :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=range]):not([type=file]):not([type=color]),textarea,select):not(:disabled):focus {
  outline:1px solid var(--optical-field-focus)!important;
  outline-offset:0!important;
  box-shadow:none!important;
 }
 :root[data-optical-keyboard="true"] :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=range]):not([type=file]):not([type=color]),textarea,select):not(:disabled):focus-visible {
  outline-width:2px!important;
  outline-offset:1px!important;
 }
 :root :is(input,textarea,select):not(:disabled):not([readonly]):not([aria-readonly="true"]):not([aria-invalid="true"]):not(.invalid):not(.input-validation-error):not(.workshop-amount-invalid):not(.is-invalid):focus {border-color:var(--z-primary)}
 :root :is(input,textarea,select):is([readonly],[aria-readonly="true"]):focus {--optical-field-focus:var(--z-border-strong,var(--z-primary))!important}
 :root :is(input,textarea,select):is([aria-invalid="true"],.invalid,.input-validation-error,.workshop-amount-invalid,.is-invalid):focus {--optical-field-focus:var(--z-danger,#b42318)!important}
 /* Chevron focus must not add a second ring around a sibling search field. */
 :root .optical-editable-combo:focus-within>.zn-input:not(:focus){box-shadow:none}
}
@media screen and (forced-colors:active){
 :root :is(input,textarea,select):not(:disabled):focus {outline-color:Highlight!important}
}
