/* Orsi Digital design tokens — canonical v1.1, 24 August 2026.
   This is the only application stylesheet that may contain literal colour values. */
:root {
  --orsi-blue: #0077C8;
  --orsi-purple: #A7358B;
  --orsi-orange: #EC6607;
  --orsi-green: #96C11E;
  --orsi-blue-700: #005A97;
  --orsi-blue-400: #4AA3DA;
  --orsi-blue-100: #D6E9F7;
  --orsi-blue-050: #EEF4FB;
  --orsi-deep: #2F3F8D;
  --orsi-green-600: #6E9117;
  --orsi-success-fg: #4F6910;
  --orsi-purple-050: #F6E9F2;
  --orsi-purple-line: #E5C2DC;
  --orsi-ink: #1B2A4A;
  --orsi-ink-soft: #3D4A60;
  --orsi-muted: #5C6A82;
  --orsi-card: #FFFFFF;
  --orsi-surface: #F2F6FB;
  --orsi-line: #DCE5F0;
  --orsi-line-strong: #B4C2D6;
  --orsi-action: #EC6607;
  --orsi-action-hover: #D25A06;
  --orsi-action-ink: #0E1420;
  --orsi-orange-text: #A8460B;
  --orsi-error-bg: #FDF2F1;
  --orsi-error-line: #F0C3C1;
  --orsi-error-fg: #B5121B;
  --orsi-success-bg: #F1F8E9;
  --orsi-success-line: #CDE3B4;
  --orsi-warning-bg: #FFF4E2;
  --orsi-warning-line: #F3D9A8;
  --orsi-warning-fg: #8A5A00;
  --orsi-info-bg: #E6EEF6;
  --orsi-info-line: #BFD6EC;
  --orsi-info-fg: #1E5FA8;
  --orsi-progress-todo: #C6D2E0;
  --orsi-disabled-ink: #7A879B;
  --orsi-disabled-bg: #F5F7FA;
  --orsi-focus: #2F3F8D;
  --orsi-focus-inverse: #FFFFFF;
  --orsi-navy: #123A63;
  --orsi-navy-deep: #08284B;
  --orsi-shadow-sm: 0 1px 2px color-mix(in srgb, var(--orsi-ink) 5%, transparent);
  --orsi-shadow-md: 0 10px 30px color-mix(in srgb, var(--orsi-ink) 8%, transparent);
  --orsi-font: 'Poppins', 'Trebuchet MS', system-ui, sans-serif;
  --bs-font-sans-serif: var(--orsi-font);
  --bs-body-font-family: var(--orsi-font);
  --orsi-weight-body: 400;
  --orsi-weight-emphasis: 600;
  --orsi-weight-strong: 700;
  --orsi-radius: 16px;
  --orsi-radius-sm: 11px;
  --orsi-radius-pill: 999px;
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 24px;
  --s6: 32px;
}

/* One application typeface across the internal, organization and trainee layouts.
   Native controls do not consistently inherit body typography, so bind them explicitly.
   Code/preformatted content keeps Bootstrap's intentional monospace font. */
body,
button,
input,
optgroup,
select,
textarea {
  font-family: var(--orsi-font);
}

/* Same-request validation summaries floated at the top of the viewport (Dirk, 2 sep 2026 — the
   "pop-up i.p.v. fixed box"-sweep). site.js adds this class to a non-empty validation summary; the
   element stays inside its form (client-side validation keeps working), it is only lifted out of flow
   visually, mirroring the shared flash pop-up. The summary already carries .alert.alert-danger styling. */
.orsi-floating-validation {
  position: fixed;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1085;
  width: min(680px, 94vw);
  margin: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
