/* SystemicIQ LAB-VIS-003 | Global contrast and legibility guard */
:root {
  --siq-surface: #ffffff;
  --siq-surface-dark: #071426;
  --siq-text: #14243a;
  --siq-text-muted: #4f5f73;
  --siq-text-inverse: #ffffff;
  --siq-border: #69778a;
  --siq-focus: #005fcc;
  --siq-link: #0057b8;
  --siq-danger: #8f1515;
  --siq-success: #176b38;
  --siq-warning-text: #4f3500;
}

html, body { text-rendering: optimizeLegibility; }
body { color: var(--siq-text); }

:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]):focus-visible {
  outline: 3px solid var(--siq-focus) !important;
  outline-offset: 2px !important;
}

::placeholder {
  color: #58687a !important;
  opacity: 1 !important;
}

:disabled, [aria-disabled="true"] { opacity: .78; }

/* Runtime marks elements it has corrected. This selector intentionally does not choose a color. */
[data-siq-contrast-autofix="1"] { text-shadow: none !important; }

/* Deterministic readability treatment for text placed over imagery/gradients. */
.siq-image-contrast-guard {
  position: relative;
  isolation: isolate;
  box-shadow: inset 0 0 0 100vmax rgba(2, 12, 28, .68) !important;
}

/* Preserve focus visibility when a component already uses outlines for shape. */
:where(input, select, textarea, button, .button, .btn) {
  accent-color: var(--siq-focus);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
