:root {
  --fcee-navy: #082542;
  --fcee-blue: #0d3b66;
  --fcee-green: #0f763e;
  --fcee-gold: #f59e0b;
}

/* Keep supporting copy legible without disturbing the compact dashboard layout. */
.text-\[9px\] { font-size: 0.75rem !important; line-height: 1rem !important; }
.text-\[10px\],
.text-\[11px\] { font-size: 0.8125rem !important; line-height: 1.125rem !important; }

/* Elevate low-contrast slate-400 on light backgrounds to WCAG AA 4.5:1 compliant slate-500 (#64748b) */
:where(body, .bg-white, .bg-slate-50, .bg-slate-100) .text-slate-400 {
  color: #64748b !important;
}

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

/* Micro-interaction transitions for interactive UI controls */
button, a, input, select, textarea {
  transition-property: color, background-color, border-color, box-shadow, transform;
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Enforce 44px minimum touch targets on touch screens */
@media (pointer: coarse) {
  button:not(.btn-compact):not(.site-notice__close),
  a[role="button"],
  input[type="button"],
  input[type="submit"],
  .touch-target {
    min-height: 44px;
    min-width: 44px;
  }
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: 0.68;
}

[aria-invalid="true"] {
  border-color: #e11d48 !important;
  box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.14) !important;
}

@media (max-width: 640px) {
  :where(button, a, input, select) { touch-action: manipulation; }
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

