/* RadarFlex UI Kit v0.2 · Propuesta de F03-U, pendiente de aceptación.
   Cargar DESPUÉS de Bootstrap 5.3 y del CSS oficial 00-radarflex-brand-aprobada.css.
   No contiene CSS externo ni archivos de fuente. Mantener el logotipo oficial sin alteraciones. */
:root {
  --rf-ui-ink: var(--rf-brand-text, #2F2F30);
  --rf-ui-ink-soft: #4C5D6D;
  --rf-ui-ink-muted: #55697B;
  --rf-ui-primary: var(--rf-brand-primary, #004E5D);
  --rf-ui-primary-hover: #006578;
  --rf-ui-primary-pressed: #003941;
  --rf-ui-primary-soft: #E5F3F4;
  --rf-ui-canvas: #F4F7FB;
  --rf-ui-card: #FFFFFF;
  --rf-ui-border: #D8E2E8;
  --rf-ui-border-soft: #E8EDF0;
  --rf-ui-blue: #2677CF;
  --rf-ui-blue-soft: #E5F1FD;
  --rf-ui-green: #11684D;
  --rf-ui-green-soft: #E0F5ED;
  --rf-ui-purple: #7447A5;
  --rf-ui-purple-soft: #F1E8FA;
  --rf-ui-amber: #805200;
  --rf-ui-amber-soft: #FFF2DA;
  --rf-ui-red: #B32D2D;
  --rf-ui-red-soft: #FCE9E9;
  --rf-ui-focus: #1E7898;
  --rf-ui-shadow: 0 4px 20px rgba(20, 48, 68, 0.07);
  --rf-ui-shadow-raised: 0 10px 30px rgba(20, 48, 68, 0.10);
  --rf-ui-sidebar-width: 280px;
  --rf-ui-header-height: 72px;
  --rf-ui-content-width: 1800px;
  --rf-ui-base: 1rem;
  /* Ajustes de variables públicas de Bootstrap 5.3: no hay recompilación SASS. */
  --bs-primary: #004E5D;
  --bs-primary-rgb: 0, 78, 93;
  --bs-body-color: #2F2F30;
  --bs-body-color-rgb: 47, 47, 48;
  --bs-body-bg: #F4F7FB;
  --bs-body-bg-rgb: 244, 247, 251;
  --bs-border-color: #D8E2E8;
  --bs-font-sans-serif: "Sora", system-ui, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 1rem;
  --bs-body-line-height: 1.55;
  --bs-link-color: #004E5D;
  --bs-link-hover-color: #006578;
  --bs-focus-ring-color: rgba(30, 120, 152, 0.33);
  --bs-border-radius: 0.75rem;
  --bs-border-radius-lg: 0.875rem;
}

body.rf-app {
  margin: 0;
  color: var(--rf-ui-ink);
  background: var(--rf-ui-canvas);
  font-family: var(--rf-font-family, "Sora", system-ui, sans-serif);
  font-size: var(--rf-ui-base);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.rf-app :is(h1, h2, h3, h4, h5, h6) { color: var(--rf-ui-ink); letter-spacing: -0.025em; }
.rf-app :is(h1, h2) { font-weight: 700; }
.rf-app :is(h3, h4, h5, h6) { font-weight: 600; }
.rf-app :is(.text-muted, .rf-text-muted) { color: var(--rf-ui-ink-muted) !important; }
.rf-app .rf-text-secondary { color: var(--rf-ui-ink-soft); }
.rf-app a { color: var(--rf-ui-primary); text-underline-offset: .18em; }
.rf-app a:hover { color: var(--rf-ui-primary-hover); }
.rf-app :is(button, input, textarea, select) { font: inherit; }
.rf-app :is(a, button, input, select, textarea, [tabindex]):focus-visible,
.swal2-popup.rf-swal :is(button, input, textarea):focus-visible {
  outline: 3px solid var(--rf-ui-focus);
  outline-offset: 3px;
}
.rf-app .btn { --bs-btn-font-weight: 600; --bs-btn-padding-y: .59rem; --bs-btn-padding-x: .95rem; --bs-btn-border-radius: .625rem; }
.rf-app .btn-primary {
  --bs-btn-bg: var(--rf-ui-primary);
  --bs-btn-border-color: var(--rf-ui-primary);
  --bs-btn-hover-bg: var(--rf-ui-primary-hover);
  --bs-btn-hover-border-color: var(--rf-ui-primary-hover);
  --bs-btn-active-bg: var(--rf-ui-primary-pressed);
  --bs-btn-active-border-color: var(--rf-ui-primary-pressed);
  --bs-btn-disabled-bg: var(--rf-ui-primary);
  --bs-btn-disabled-border-color: var(--rf-ui-primary);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
}
.rf-app .btn-outline-primary {
  --bs-btn-color: var(--rf-ui-primary);
  --bs-btn-border-color: var(--rf-ui-primary);
  --bs-btn-hover-bg: var(--rf-ui-primary);
  --bs-btn-hover-border-color: var(--rf-ui-primary);
  --bs-btn-active-bg: var(--rf-ui-primary-pressed);
  --bs-btn-active-border-color: var(--rf-ui-primary-pressed);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
}
.rf-app :is(.form-control, .form-select) {
  color: var(--rf-ui-ink);
  background-color: var(--rf-ui-card);
  border-color: #C9D6DF;
  border-radius: .625rem;
  min-height: 44px;
  font-size: .9375rem;
}
.rf-app :is(.form-control, .form-select):focus {
  border-color: var(--rf-ui-focus);
  box-shadow: 0 0 0 .22rem rgba(30, 120, 152, .17);
}
.rf-app .form-control::placeholder { color: #526677; opacity: 1; }
.rf-app .form-label { color: var(--rf-ui-ink); font-size: .875rem; font-weight: 600; }
.rf-app .form-text { color: var(--rf-ui-ink-muted); font-size: .8125rem; }
.rf-app .form-check-input:checked { background-color: var(--rf-ui-primary); border-color: var(--rf-ui-primary); }
.rf-app .form-check-input:focus { border-color: var(--rf-ui-focus); box-shadow: 0 0 0 .22rem rgba(30, 120, 152, .16); }
.rf-app .dropdown-menu { --bs-dropdown-border-color: var(--rf-ui-border); --bs-dropdown-border-radius: .75rem; --bs-dropdown-box-shadow: var(--rf-ui-shadow-raised); }
.rf-app .dropdown-item { color: var(--rf-ui-ink); padding-block: .6rem; }
.rf-app .dropdown-item:hover, .rf-app .dropdown-item:focus { background-color: var(--rf-ui-primary-soft); }
.rf-app .card { --bs-card-border-color: var(--rf-ui-border); --bs-card-border-radius: .875rem; box-shadow: var(--rf-ui-shadow); }
.rf-app .card-header { background: #fff; border-color: var(--rf-ui-border-soft); }
.rf-app .modal-content, .rf-app .offcanvas { border-color: var(--rf-ui-border); border-radius: .875rem; }
.rf-app .alert { border-radius: .75rem; }
.rf-app .table { --bs-table-color: var(--rf-ui-ink); --bs-table-border-color: var(--rf-ui-border-soft); --bs-table-bg: #fff; }
.rf-app .table thead th { background: #F1F5F8; color: #344657; font-size: .8125rem; letter-spacing: .01em; font-weight: 700; }
.rf-app .table > :not(caption) > * > * { padding: .825rem .95rem; }
.rf-app .table-hover tbody tr:hover > * { --bs-table-bg-state: #F5FAFB; }
.rf-app :is(.visually-hidden-focusable, .skip-link):focus { z-index: 9999; }

@media (prefers-reduced-motion: reduce) {
  .rf-app *, .rf-app *::before, .rf-app *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
