/* GENERATED by branding/tux/gen-vision.py from tti-ux v3.4.6 app/assets/css/globals.css (the vision &
 * accessibility sections, verbatim). Do not edit: re-run the generator. The changes:
 * TUX's dark variants also match :root[data-tti-scheme="dark"], which tti-a11y.js
 * sets on every surface (#628), and the soft-dark and field-sunlight token blocks gain a
 * :root[data-tti-scheme] twin that outranks tux-bridge.css's per-theme blocks. */

/* =====================================================
   Anti-Halation Soft Dark Theme (Clinical Astigmatism Comfort)
   Calibrated slate-charcoal canvas and soft off-white text to
   eliminate high-contrast glare, diffraction, and haloing for
   astigmatic users while maintaining 100% WCAG 2.2 AAA compliance.
   ===================================================== */

[data-theme="tti-dark"][data-theme-variant="soft"],
[data-theme="tti-soft-dark"],
[data-theme-variant="soft-dark"],
[data-vision-comfort="anti-halation"],
.tux-theme--soft-dark,
:root[data-tti-scheme="dark"][data-theme-variant="soft"],
:root[data-tti-scheme][data-vision-comfort="anti-halation"] {
  color-scheme: dark !important;

  /* Lifted brand teal tuned for >= 7.2:1 AAA contrast on #1f2430 */
  --brand-primary: #74bdca;
  --color-brand-primary: var(--brand-primary);

  /* Slate-charcoal canvas replacing pitch-black wells */
  --surface-canvas: #161a22;
  --surface-page: #161a22;
  --surface-raised: #1f2430;
  --surface-sunken: #0f1217;
  --surface-border: #384152;
  --surface-border-subtle: #282f3d;
  --surface-eggshell: #1b202a;
  --surface-cool-gray: #242b38;

  --color-surface-page: var(--surface-page);
  --color-surface-raised: var(--surface-raised);
  --color-surface-sunken: var(--surface-sunken);
  --color-surface-border: var(--surface-border);
  --color-surface-border-subtle: var(--surface-border-subtle);
  --color-surface-eggshell: var(--surface-eggshell);
  --color-surface-cool-gray: var(--surface-cool-gray);

  /* Anti-halation typography replacing glaring pure white (all >= 7.2:1 AAA on #1f2430) */
  --text-primary: #e6edf3;
  --text-secondary: #c2ccd6;
  --text-muted: #a6b2bf;
  --text-charcoal: #e6edf3;
  --text-dark: #f0f6fc;

  --color-text-primary: var(--text-primary);
  --color-text-secondary: var(--text-secondary);
  --color-text-muted: var(--text-muted);
  --color-text-charcoal: var(--text-charcoal);
  --color-text-dark: var(--text-dark);

  /* Subtle adjusted focus ring for soft-dark surface */
  --focus-ring-outer: #74bdca;
  --focus-ring-inner: #161a22;
}

html[data-vision-comfort="anti-halation"],
[data-vision-comfort="anti-halation"] body,
[data-vision-comfort="anti-halation"] .tux-default-layout,
[data-vision-comfort="anti-halation"] .tti-shell-main {
  background-color: #161a22 !important;
  color: #e6edf3 !important;
  color-scheme: dark !important;
}

[data-vision-comfort="anti-halation"] .tti-shell-header,
[data-vision-comfort="anti-halation"] .tti-shell-sidebar,
[data-vision-comfort="anti-halation"] .tux-card,
[data-vision-comfort="anti-halation"] .tux-slab,
[data-vision-comfort="anti-halation"] .tux-modal__panel,
[data-vision-comfort="anti-halation"] .tux-drawer__panel,
[data-vision-comfort="anti-halation"] .tux-table,
[data-vision-comfort="anti-halation"] .tux-echarts,
[data-vision-comfort="anti-halation"] .tux-code-block,
[data-vision-comfort="anti-halation"] .tux-workbench,
[data-vision-comfort="anti-halation"] .tux-example,
[data-vision-comfort="anti-halation"] .tux-preview,
[data-vision-comfort="anti-halation"] .tux-metric-card,
[data-vision-comfort="anti-halation"] .tux-stat,
[data-vision-comfort="anti-halation"] .tux-big-stat,
[data-vision-comfort="anti-halation"] [role="dialog"],
[data-vision-comfort="anti-halation"] [role="menu"],
[data-vision-comfort="anti-halation"] [role="region"] {
  background-color: #1f2430 !important;
  border-color: #384152 !important;
  color: #e6edf3 !important;
}

[data-vision-comfort="anti-halation"] input,
[data-vision-comfort="anti-halation"] select,
[data-vision-comfort="anti-halation"] textarea,
[data-vision-comfort="anti-halation"] pre,
[data-vision-comfort="anti-halation"] code:not(pre code) {
  background-color: #0f1217 !important;
  border-color: #384152 !important;
  color: #e6edf3 !important;
}

/* =====================================================
   RELLIS Field-Sunlight Mode (Outdoor Proving Ground & Roadside Glare)
   Maximum daylight luminance polarity (21:1 ink, 18.5:1 deep maroon,
   2px high-contrast structural keylines, and 48px glove touch targets).
   ===================================================== */

[data-theme-variant="field-sunlight"],
[data-vision-comfort="field-sunlight"],
.tux-theme--field-sunlight,
:root[data-tti-scheme][data-vision-comfort="field-sunlight"] {
  color-scheme: light !important;

  --brand-primary: #3c0000;
  --color-brand-primary: var(--brand-primary);

  --surface-canvas: #ffffff;
  --surface-page: #ffffff;
  --surface-raised: #f8fafc;
  --surface-sunken: #f1f5f9;
  --surface-border: #111827;
  --surface-border-subtle: #374151;
  --surface-eggshell: #ffffff;
  --surface-cool-gray: #f1f5f9;

  --color-surface-page: var(--surface-page);
  --color-surface-raised: var(--surface-raised);
  --color-surface-sunken: var(--surface-sunken);
  --color-surface-border: var(--surface-border);
  --color-surface-border-subtle: var(--surface-border-subtle);

  --text-primary: #000000;
  --text-secondary: #111827;
  --text-muted: #1f2937;
  --text-charcoal: #000000;
  --text-dark: #000000;

  --color-text-primary: var(--text-primary);
  --color-text-secondary: var(--text-secondary);
  --color-text-muted: var(--text-muted);

  --focus-ring-outer: #000000;
  --focus-ring-inner: #ffcf00;
}

[data-vision-comfort="field-sunlight"] button,
[data-vision-comfort="field-sunlight"] input:not([type="checkbox"]):not([type="radio"]),
[data-vision-comfort="field-sunlight"] select,
[data-vision-comfort="field-sunlight"] [role="button"] {
  min-height: 48px;
}

/* =====================================================
   Live Color Vision Deficiency (CVD) Simulation Filters
   Applies clinical SVG color matrices across the viewport
   for accessibility verification, audits, and demonstrations.
   ===================================================== */

html[data-cvd-simulation="deuteranopia"] {
  filter: url("#tux-filter-deuteranopia") !important;
}

html[data-cvd-simulation="protanopia"] {
  filter: url("#tux-filter-protanopia") !important;
}

html[data-cvd-simulation="tritanopia"] {
  filter: url("#tux-filter-tritanopia") !important;
}

html[data-cvd-simulation="achromatopsia"] {
  filter: url("#tux-filter-achromatopsia") !important;
}

/* =====================================================
   Enhanced Stroke Widths (+1px) for Low-Vision Clarity
   ===================================================== */

[data-vision-stroke="heavy"] .tux-chart-line__line {
  stroke-width: 3.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-line__marker {
  transform: scale(1.35);
  transform-box: fill-box;
  transform-origin: center;
}

[data-vision-stroke="heavy"] .tux-chart-donut__slice {
  stroke: var(--surface-page, #161a22) !important;
  stroke-width: 3.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-bar__bar {
  stroke: currentColor !important;
  stroke-width: 2px !important;
}

[data-vision-stroke="heavy"] .tux-chart-area__top-line {
  stroke-width: 3.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-scatter__dot {
  stroke: var(--surface-page, #161a22) !important;
  stroke-width: 2px !important;
}

[data-vision-stroke="heavy"] .tux-chart-scatter__trend {
  stroke-width: 2.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-histogram__bar {
  stroke: var(--surface-page, #161a22) !important;
  stroke-width: 2.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-sunburst path {
  stroke-width: 3px !important;
}

[data-vision-stroke="heavy"] .tux-chart-gauge__needle {
  stroke-width: 4.5px !important;
}

[data-vision-stroke="heavy"] .tux-chart-gauge__track {
  stroke-width: 14px !important;
}

[data-vision-stroke="heavy"] .tux-sparkline__line {
  stroke-width: 2.75px !important;
}

[data-vision-stroke="heavy"] .tux-sparkline__last {
  r: 3.5 !important;
}

[data-vision-stroke="heavy"] .tux-card,
[data-vision-stroke="heavy"] .tux-button,
[data-vision-stroke="heavy"] .tux-badge,
[data-vision-stroke="heavy"] .tux-chat-message,
[data-vision-stroke="heavy"] .tux-composer__frame,
[data-vision-stroke="heavy"] article,
[data-vision-stroke="heavy"] section,
[data-vision-stroke="heavy"] aside,
[data-vision-stroke="heavy"] header,
[data-vision-stroke="heavy"] input,
[data-vision-stroke="heavy"] select,
[data-vision-stroke="heavy"] textarea,
[data-vision-stroke="heavy"] [class*="border"] {
  border-width: 2px !important;
}

[data-vision-stroke="heavy"] svg.iconify,
[data-vision-stroke="heavy"] svg[class*="lucide"] {
  stroke-width: 2.5px !important;
}

/* =====================================================
   Site-Wide Categorical CVD Palette Rebinding ([data-cvd-mode])
   Transforms brand, accent, semantic status, and chart tokens
   across ALL application surfaces (not just standalone charts).
   ===================================================== */

/* 1. Universal CVD (Okabe-Ito): Deep Blue + Warm Orange + Bluish Green + Vermilion */
[data-cvd-mode="okabe-ito"] {
  --brand-primary: #0072B2 !important;
  --brand-primary-deep: #005585 !important;
  --brand-accent: #E69F00 !important;
  --brand-accent-deep: #B87D00 !important;
  --brand-fill: #0072B2 !important;
  --text-brand: #0072B2 !important;
  --color-brand-primary: #0072B2 !important;
  --color-brand-accent: #E69F00 !important;
  --color-success: #009E73 !important;
  --color-warning: #E69F00 !important;
  --color-error: #D55E00 !important;
  --color-danger: #D55E00 !important;
  --color-info: #56B4E9 !important;
  --status-ok: #009E73 !important;
  --status-warning: #E69F00 !important;
  --status-critical: #D55E00 !important;
  --focus-ring-outer: #0072B2 !important;
}

html.dark[data-cvd-mode="okabe-ito"],
[data-theme="tti-dark"][data-cvd-mode="okabe-ito"],
.dark[data-cvd-mode="okabe-ito"],
:root[data-tti-scheme="dark"][data-cvd-mode="okabe-ito"] {
  --brand-primary: #56B4E9 !important;
  --brand-primary-deep: #0072B2 !important;
  --brand-accent: #F0B030 !important;
  --brand-accent-deep: #E69F00 !important;
  --brand-fill: #0072B2 !important;
  --text-brand: #56B4E9 !important;
  --color-brand-primary: #56B4E9 !important;
  --color-brand-accent: #F0B030 !important;
  --color-success: #2AC098 !important;
  --color-warning: #F0B030 !important;
  --color-error: #E87A28 !important;
  --color-danger: #E87A28 !important;
  --color-info: #7CD0F7 !important;
  --status-ok: #2AC098 !important;
  --status-warning: #F0B030 !important;
  --status-critical: #E87A28 !important;
  --focus-ring-outer: #56B4E9 !important;
}

/* 2. Deutan / Protan Optimized (Red-Green Safe): Sky Blue + High-Contrast Amber + Vermilion */
[data-cvd-mode="deutan-protan"] {
  --brand-primary: #0072B2 !important;
  --brand-primary-deep: #004C78 !important;
  --brand-accent: #E69F00 !important;
  --brand-accent-deep: #B87D00 !important;
  --brand-fill: #0072B2 !important;
  --text-brand: #0072B2 !important;
  --color-brand-primary: #0072B2 !important;
  --color-brand-accent: #E69F00 !important;
  --color-success: #0072B2 !important;
  --color-warning: #E69F00 !important;
  --color-error: #D55E00 !important;
  --color-danger: #D55E00 !important;
  --color-info: #56B4E9 !important;
  --status-ok: #0072B2 !important;
  --status-warning: #E69F00 !important;
  --status-critical: #D55E00 !important;
  --focus-ring-outer: #0072B2 !important;
}

html.dark[data-cvd-mode="deutan-protan"],
[data-theme="tti-dark"][data-cvd-mode="deutan-protan"],
.dark[data-cvd-mode="deutan-protan"],
:root[data-tti-scheme="dark"][data-cvd-mode="deutan-protan"] {
  --brand-primary: #56B4E9 !important;
  --brand-primary-deep: #0072B2 !important;
  --brand-accent: #F5EB68 !important;
  --brand-accent-deep: #E69F00 !important;
  --brand-fill: #0072B2 !important;
  --text-brand: #56B4E9 !important;
  --color-brand-primary: #56B4E9 !important;
  --color-brand-accent: #F5EB68 !important;
  --color-success: #56B4E9 !important;
  --color-warning: #F5EB68 !important;
  --color-error: #E87A28 !important;
  --color-danger: #E87A28 !important;
  --color-info: #7CD0F7 !important;
  --status-ok: #56B4E9 !important;
  --status-warning: #F5EB68 !important;
  --status-critical: #E87A28 !important;
  --focus-ring-outer: #56B4E9 !important;
}

/* 3. Tritanopia Safe (Blue-Yellow Safe): High-Contrast Magenta + Deep Teal + Vermilion */
[data-cvd-mode="tritan"] {
  --brand-primary: #A63A75 !important;
  --brand-primary-deep: #7A2352 !important;
  --brand-accent: #009E73 !important;
  --brand-accent-deep: #007353 !important;
  --brand-fill: #A63A75 !important;
  --text-brand: #A63A75 !important;
  --color-brand-primary: #A63A75 !important;
  --color-brand-accent: #009E73 !important;
  --color-success: #009E73 !important;
  --color-warning: #D55E00 !important;
  --color-error: #B20014 !important;
  --color-danger: #B20014 !important;
  --color-info: #009E73 !important;
  --status-ok: #009E73 !important;
  --status-warning: #D55E00 !important;
  --status-critical: #B20014 !important;
  --focus-ring-outer: #A63A75 !important;
}

html.dark[data-cvd-mode="tritan"],
[data-theme="tti-dark"][data-cvd-mode="tritan"],
.dark[data-cvd-mode="tritan"],
:root[data-tti-scheme="dark"][data-cvd-mode="tritan"] {
  --brand-primary: #DE91BD !important;
  --brand-primary-deep: #CC79A7 !important;
  --brand-accent: #2AC098 !important;
  --brand-accent-deep: #009E73 !important;
  --brand-fill: #A63A75 !important;
  --text-brand: #DE91BD !important;
  --color-brand-primary: #DE91BD !important;
  --color-brand-accent: #2AC098 !important;
  --color-success: #2AC098 !important;
  --color-warning: #E87A28 !important;
  --color-error: #FF6B6B !important;
  --color-danger: #FF6B6B !important;
  --color-info: #2AC098 !important;
  --status-ok: #2AC098 !important;
  --status-warning: #E87A28 !important;
  --status-critical: #FF6B6B !important;
  --focus-ring-outer: #DE91BD !important;
}

/* 4. Achromatopsia & High-Luminance Monochrome */
[data-cvd-mode="monochrome"] {
  --brand-primary: #1F1F1F !important;
  --brand-primary-deep: #000000 !important;
  --brand-accent: #555555 !important;
  --brand-accent-deep: #333333 !important;
  --brand-fill: #1F1F1F !important;
  --text-brand: #1F1F1F !important;
  --color-brand-primary: #1F1F1F !important;
  --color-brand-accent: #555555 !important;
  --color-success: #333333 !important;
  --color-warning: #666666 !important;
  --color-error: #111111 !important;
  --color-danger: #111111 !important;
  --color-info: #444444 !important;
  --status-ok: #333333 !important;
  --status-warning: #666666 !important;
  --status-critical: #111111 !important;
  --focus-ring-outer: #111111 !important;
  filter: grayscale(100%);
}

html.dark[data-cvd-mode="monochrome"],
[data-theme="tti-dark"][data-cvd-mode="monochrome"],
.dark[data-cvd-mode="monochrome"],
:root[data-tti-scheme="dark"][data-cvd-mode="monochrome"] {
  --brand-primary: #E5E7EB !important;
  --brand-primary-deep: #FFFFFF !important;
  --brand-accent: #9CA3AF !important;
  --brand-accent-deep: #D1D5DB !important;
  --brand-fill: #374151 !important;
  --text-brand: #E5E7EB !important;
  --color-brand-primary: #E5E7EB !important;
  --color-brand-accent: #9CA3AF !important;
  --color-success: #D1D5DB !important;
  --color-warning: #9CA3AF !important;
  --color-error: #F9FAFB !important;
  --color-danger: #F9FAFB !important;
  --color-info: #D1D5DB !important;
  --status-ok: #D1D5DB !important;
  --status-warning: #9CA3AF !important;
  --status-critical: #F9FAFB !important;
  --focus-ring-outer: #FFFFFF !important;
  filter: grayscale(100%);
}

/* =====================================================
   Institutional Typography Profiles ([data-type-profile])
   1. editorial (default) — Oswald display + Open Sans body + Georgia pull-quotes
   2. kadence-comm — TTI Communications / Kadence WordPress parity (Work Sans / Open Sans unified)
   3. ops-dense — High-density TMC operations & tabular telemetry profile
   ===================================================== */

[data-type-profile="editorial"] {
  --font-display: "Oswald", sans-serif;
  --font-sans: "Open Sans", sans-serif;
  --font-body: "Open Sans", sans-serif;
}

[data-type-profile="kadence-comm"] {
  --font-display: var(--font-bold);
  --font-sans: var(--font-bold);
  --font-body: var(--font-bold);
  --tracking-tight: 0.01em;
  --tracking-wider: 0.05em;
  letter-spacing: 0.01em;
}

[data-type-profile="ops-dense"] {
  --font-display: var(--font-mono);
  --font-sans: var(--font-mono);
  --font-body: var(--font-mono);
  --leading-normal: 1.35;
  --leading-relaxed: 1.45;
  --tracking-wider: 0.06em;
  font-variant-numeric: tabular-nums;
  font-size: 94%;
}
