/* Shared screen tokens and component states. PDF styles are deliberately separate. */
:root {
  --c-bg: #F8FAFC;
  --c-surface: #FFFFFF;
  --c-primary: #15803D;
  --c-primary-hover: #166534;
  --c-primary-light: #F0FDF4;
  --c-navy: #0F2B46;
  --c-navy-light: #1E3A5F;
  --c-text: #0F172A;
  --c-text-secondary: #475569;
  --c-text-muted: #475569;
  --c-border: #E2E8F0;
  --c-warning: #9A3412;
  --c-danger: #B91C1C;
  --touch-target: 44px;
  --radius-control: 10px;
  --radius-card: 16px;
  --space-control-x: 1rem;
  --space-control-y: .5rem;
  --motion-feedback: 200ms;
  --layer-feedback: 2000;
  --icon-sm: 16px;
  --icon-md: 20px;
  --icon-lg: 24px;
  --c-gradient-hero: linear-gradient(135deg, #0F2B46 0%, #1E3A5F 40%, #166534 100%);
  --bs-primary: #15803D;
  --bs-primary-rgb: 21, 128, 61;
  --bs-link-color: #166534;
  --bs-link-color-rgb: 22, 101, 52;
  --bs-link-hover-color: #14532D;
  --bs-link-hover-color-rgb: 20, 83, 45;
}

/* btn-success is a compatibility alias for old primary actions, not for badges. */
.btn-primary, .btn-success, .btn-primary-custom {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--c-primary);
  --bs-btn-border-color: var(--c-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--c-primary-hover);
  --bs-btn-hover-border-color: var(--c-primary-hover);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--c-primary-hover);
  --bs-btn-active-border-color: var(--c-primary-hover);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--c-primary);
  --bs-btn-disabled-border-color: var(--c-primary);
  --bs-btn-focus-shadow-rgb: 21, 128, 61;
  color: var(--bs-btn-color);
  background-color: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
}
.btn-secondary, .btn-outline-primary, .btn-outline-success, .btn-outline-custom {
  --bs-btn-color: var(--c-navy);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: #94A3B8;
  --bs-btn-hover-color: var(--c-primary-hover);
  --bs-btn-hover-bg: var(--c-primary-light);
  --bs-btn-hover-border-color: var(--c-primary);
  --bs-btn-active-color: var(--c-primary-hover);
  --bs-btn-active-bg: var(--c-primary-light);
  --bs-btn-active-border-color: var(--c-primary);
  --bs-btn-disabled-color: var(--c-text-secondary);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--c-border);
  --bs-btn-focus-shadow-rgb: 21, 128, 61;
  color: var(--bs-btn-color);
  background-color: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
}
.btn {
  border-radius: var(--radius-control);
  transition: color var(--motion-feedback), background-color var(--motion-feedback), border-color var(--motion-feedback), box-shadow var(--motion-feedback);
}
.btn-primary-custom, .btn-outline-custom {
  padding: .75rem 1.5rem;
  font-weight: 600;
  border: 1px solid var(--bs-btn-border-color);
}
.btn-primary-custom:hover, .btn-outline-custom:hover {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
}
.admin-main .btn-primary-custom { padding: var(--space-control-y) var(--space-control-x); }
.btn:disabled, .btn.disabled { cursor: not-allowed; }
.nav-pills { --bs-nav-pills-link-active-bg: var(--c-primary); }
.form-control, .form-select { border-radius: var(--radius-control); }
.text-warning, .risk-mid { color: var(--c-warning) !important; }
.risk-high { color: var(--c-danger); }
:where(a, button, input, select, textarea, summary):focus-visible,
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible {
  outline: 3px solid var(--c-primary);
  outline-offset: 2px;
}
.ui-feedback-stack { position: fixed; top: 1rem; right: 1rem; z-index: var(--layer-feedback); width: min(24rem, calc(100vw - 2rem)); }
.ui-icon-sm { width: var(--icon-sm); height: var(--icon-sm); }
.ui-icon-md { width: var(--icon-md); height: var(--icon-md); }
.ui-icon-lg { width: var(--icon-lg); height: var(--icon-lg); }

@media (max-width: 767.98px) {
  .btn, .form-control, .form-select, .btn-close, .nav-link, .page-link {
    min-height: var(--touch-target) !important;
  }
  .btn, .btn-close, .nav-link, .page-link { min-width: var(--touch-target); }
  .btn-close { background-position: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
