@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/fonts/ictus/Inter.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/ictus/Poppins-Medium.woff2') format('woff2');
}

@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/ictus/Poppins-Bold.woff2') format('woff2');
}

:root {
  /* Marca */
  --ictus-blue: #002a5c;
  --ictus-blue-rgb: 0, 42, 92;
  --ictus-cyan: #3cbddd;
  --ictus-cyan-rgb: 60, 189, 221;

  /* Apoio */
  --ictus-midnight: #001a38;
  --ictus-midnight-rgb: 0, 26, 56;
  --ictus-ocean: #0a4a8f;
  --ictus-ocean-rgb: 10, 74, 143;
  --ictus-cyan-light: #8fdcee;
  --ictus-cyan-mist: #e3f5fa;

  /* Neutros */
  --ictus-graphite: #1c2430;
  --ictus-graphite-rgb: 28, 36, 48;
  --ictus-lead: #4a5568;
  --ictus-lead-rgb: 74, 85, 104;
  --ictus-gray-medium: #8b96a5;
  --ictus-gray-medium-rgb: 139, 150, 165;
  --ictus-border: #d8dee6;
  --ictus-border-rgb: 216, 222, 230;
  --ictus-screen: #f2f5f8;
  --ictus-white: #ffffff;
  --ictus-white-rgb: 255, 255, 255;

  /* Superfícies reutilizáveis */
  --ictus-surface: var(--ictus-white);
  --ictus-surface-soft: var(--ictus-cyan-mist);
  --ictus-dark-surface: #062548;
  --ictus-dark-surface-hover: #0a3158;
  --ictus-dark-border: rgba(var(--ictus-border-rgb), 0.22);
  --ictus-dark-muted: #b9c5d3;

  /* Forma e elevação dos componentes */
  --ictus-radius-sm: 6px;
  --ictus-radius-md: 8px;
  --ictus-radius-lg: 12px;
  --ictus-shadow-sm: 0 3px 12px rgba(var(--ictus-midnight-rgb), 0.05);
  --ictus-shadow-md: 0 12px 32px rgba(var(--ictus-midnight-rgb), 0.09);

  /* Estados: preenchimento e texto nunca compartilham o mesmo token. */
  --ictus-healthy-fill: #1e9e6a;
  --ictus-healthy-fill-rgb: 30, 158, 106;
  --ictus-healthy-text: #178054;
  --ictus-healthy-on-dark: #8bdab5;
  --ictus-attention-fill: #e8a33d;
  --ictus-attention-fill-rgb: 232, 163, 61;
  --ictus-attention-text: #8f5b00;
  --ictus-attention-on-dark: #f1c56f;
  --ictus-critical-fill: #d64545;
  --ictus-critical-fill-rgb: 214, 69, 69;
  --ictus-critical-text: #bf3434;
  --ictus-critical-on-dark: #f1a0a0;
  --ictus-information-fill: #3cbddd;
  --ictus-information-text: #0a4a8f;
  --ictus-inactive-fill: #d8dee6;
  --ictus-inactive-text: #5a6472;

  /* Tipografia */
  --ictus-font-interface: 'Inter', Arial, Helvetica, sans-serif;
  --ictus-font-heading: 'Poppins', Verdana, 'Trebuchet MS', sans-serif;

  /* Compatibilidade com os componentes Bootstrap existentes. */
  --bs-blue: var(--ictus-blue);
  --bs-primary: var(--ictus-blue);
  --bs-primary-rgb: var(--ictus-blue-rgb);
  --bs-success: var(--ictus-healthy-fill);
  --bs-success-rgb: var(--ictus-healthy-fill-rgb);
  --bs-warning: var(--ictus-attention-fill);
  --bs-warning-rgb: var(--ictus-attention-fill-rgb);
  --bs-danger: var(--ictus-critical-fill);
  --bs-danger-rgb: var(--ictus-critical-fill-rgb);
  --bs-info: var(--ictus-information-fill);
  --bs-info-rgb: var(--ictus-cyan-rgb);
  --bs-secondary: var(--ictus-inactive-text);
  --bs-secondary-rgb: 90, 100, 114;
  --bs-body-font-family: var(--ictus-font-interface);
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--ictus-graphite);
  --bs-body-color-rgb: var(--ictus-graphite-rgb);
  --bs-body-bg: var(--ictus-screen);
  --bs-body-bg-rgb: 242, 245, 248;
  --bs-border-color: var(--ictus-border);
  --bs-link-color: var(--ictus-ocean);
  --bs-link-hover-color: var(--ictus-blue);
}

body {
  color: var(--ictus-graphite);
  background-color: var(--ictus-screen);
  font-family: var(--ictus-font-interface);
  font-variant-numeric: tabular-nums;
  line-height: 1.6;
}

body::selection {
  color: var(--ictus-blue);
  background: var(--ictus-cyan);
}

h1,
h2,
h3,
.h1,
.h2,
.h3,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
  font-family: var(--ictus-font-heading);
}

h1,
.h1,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
  font-weight: 700;
}

h2,
h3,
.h2,
.h3 {
  font-weight: 500;
}

h4,
h5,
h6,
.h4,
.h5,
.h6 {
  font-family: var(--ictus-font-interface);
  font-weight: 600;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
}

.btn-primary {
  --bs-btn-color: var(--ictus-white);
  --bs-btn-bg: var(--ictus-blue);
  --bs-btn-border-color: var(--ictus-blue);
  --bs-btn-hover-color: var(--ictus-white);
  --bs-btn-hover-bg: var(--ictus-ocean);
  --bs-btn-hover-border-color: var(--ictus-ocean);
  --bs-btn-focus-shadow-rgb: 60, 189, 221;
  --bs-btn-active-color: var(--ictus-white);
  --bs-btn-active-bg: var(--ictus-midnight);
  --bs-btn-active-border-color: var(--ictus-midnight);
  --bs-btn-disabled-color: var(--ictus-white);
  --bs-btn-disabled-bg: var(--ictus-blue);
  --bs-btn-disabled-border-color: var(--ictus-blue);
}

.btn-outline-primary {
  --bs-btn-color: var(--ictus-ocean);
  --bs-btn-border-color: var(--ictus-ocean);
  --bs-btn-hover-color: var(--ictus-white);
  --bs-btn-hover-bg: var(--ictus-ocean);
  --bs-btn-hover-border-color: var(--ictus-ocean);
  --bs-btn-focus-shadow-rgb: 60, 189, 221;
  --bs-btn-active-color: var(--ictus-white);
  --bs-btn-active-bg: var(--ictus-blue);
  --bs-btn-active-border-color: var(--ictus-blue);
  --bs-btn-disabled-color: var(--ictus-ocean);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--ictus-ocean);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--ictus-cyan);
  box-shadow: 0 0 0 0.25rem rgba(var(--ictus-cyan-rgb), 0.2);
}

.form-check-input:checked,
.form-check-input[type='checkbox']:indeterminate {
  border-color: var(--ictus-blue);
  background-color: var(--ictus-blue);
}

.text-primary {
  color: var(--ictus-ocean) !important;
}

.text-success {
  color: var(--ictus-healthy-text) !important;
}

.text-warning {
  color: var(--ictus-attention-text) !important;
}

.text-danger {
  color: var(--ictus-critical-text) !important;
}

.text-info {
  color: var(--ictus-information-text) !important;
}

.text-secondary,
.text-muted {
  color: var(--ictus-lead) !important;
}

body.theme-dark {
  --bs-body-color: var(--ictus-screen);
  --bs-body-color-rgb: 242, 245, 248;
  --bs-body-bg: var(--ictus-midnight);
  --bs-body-bg-rgb: 0, 26, 56;
  --bs-border-color: var(--ictus-dark-border);
  --bs-link-color: var(--ictus-cyan-light);
  --bs-link-hover-color: var(--ictus-cyan);
  color: var(--ictus-screen);
  background-color: var(--ictus-midnight);
  font-family: var(--ictus-font-interface);
}

body.theme-dark h1,
body.theme-dark h2,
body.theme-dark h3,
body.theme-dark .h1,
body.theme-dark .h2,
body.theme-dark .h3,
body.theme-dark .display-1,
body.theme-dark .display-2,
body.theme-dark .display-3,
body.theme-dark .display-4,
body.theme-dark .display-5,
body.theme-dark .display-6 {
  font-family: var(--ictus-font-heading);
}

body.theme-dark h4,
body.theme-dark h5,
body.theme-dark h6,
body.theme-dark .h4,
body.theme-dark .h5,
body.theme-dark .h6 {
  font-family: var(--ictus-font-interface);
  font-weight: 600;
}

body.theme-dark .text-primary {
  color: var(--ictus-cyan-light) !important;
}

body.theme-dark .text-secondary,
body.theme-dark .text-muted {
  color: var(--ictus-dark-muted) !important;
}
