:root {
  --ave-navy: #001747;
  --ave-ocean: #1476ae;
  --ave-crimson: #c51f32;
  --ave-gold: #f9c735;
  --ave-success: #22c55e;
  --ave-warning: #f59e0b;
  --ave-error: #ef4444;
  --ave-info: #1476ae;
  --ave-n100: #ffffff;
  --ave-n200: #f2f4f7;
  --ave-n300: #e4e7eb;
  --ave-n400: #c7ccd3;
  --ave-n500: #9aa3af;
  --ave-n600: #646d78;
  --ave-n700: #2b3137;
  --ave-overlay-scrim: #2b313799;
  --ave-space-1: 4px;
  --ave-space-2: 8px;
  --ave-space-3: 12px;
  --ave-space-4: 16px;
  --ave-space-6: 24px;
  --ave-space-8: 32px;
  --ave-space-12: 48px;
  --ave-radius-sm: 8px;
  --ave-radius-md: 12px;
  --ave-radius-lg: 16px;
  --ave-radius-xl: 24px;
  --ave-radius-full: 9999px;
  --ave-border: 1px solid #e2e8f0;
  --ave-focus: 0 0 0 3px rgb(20 118 174 / 35%);
  --ave-shadow-1: 0 2px 8px rgb(0 23 71 / 8%);
  --ave-shadow-2: 0 4px 16px rgb(0 23 71 / 10%);
  --ave-shadow-3: 0 12px 32px rgb(0 23 71 / 16%);
  --ave-font: Inter, Arial, sans-serif;
  --ave-side-panel-width: 240px;
  --ave-breakpoint-wide: 1440px;
}

.ave-scope,
.ave-scope *,
.ave-scope *::before,
.ave-scope *::after { box-sizing: border-box; }
.ave-scope { color: var(--ave-n700); font: 400 16px/1.5 var(--ave-font); }
.ave-scope :focus-visible { outline: none; box-shadow: var(--ave-focus); }

.ave-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ave-space-2);
  min-height: 44px;
  padding: 16px 24px;
  border: 1px solid transparent;
  border-radius: var(--ave-radius-md);
  font: 600 16px/1.25 var(--ave-font);
  cursor: pointer;
  text-decoration: none !important;
}
.ave-button--primary { color: white; background: var(--ave-ocean); }
.ave-button--primary:hover { box-shadow: var(--ave-shadow-1); }
.ave-button--primary:active { background: var(--ave-navy); }
.ave-button--secondary { color: var(--ave-ocean); background: white; border-color: var(--ave-ocean); }
.ave-button--secondary:hover { background: var(--ave-n200); }
.ave-button--secondary:active { color: var(--ave-navy); border-color: var(--ave-navy); }
.ave-button--tertiary { min-height: 44px; padding-inline: var(--ave-space-2); color: var(--ave-ocean); background: transparent; }
.ave-button--tertiary:hover { text-decoration: none; }
.ave-button--destructive { color: white; background: var(--ave-crimson); }
.ave-button--destructive:hover { box-shadow: var(--ave-shadow-1); }
.ave-button--destructive:active { background: var(--ave-navy); }
.ave-button--icon { width: 44px; padding: 0; }
.ave-button:disabled { cursor: not-allowed; opacity: .45; }
.ave-button[aria-busy="true"] { cursor: wait; }

.ave-field {
  min-height: 44px;
  width: 100%;
  padding: 12px 16px;
  color: var(--ave-n700);
  background: white;
  border: var(--ave-border);
  border-radius: var(--ave-radius-md);
  font: inherit;
}
.ave-field[aria-invalid="true"] { border-color: var(--ave-error); }
.ave-field:hover:not(:disabled) { border-color: var(--ave-n500); }
.ave-field:focus { border-color: var(--ave-ocean); }
.ave-field:disabled { color: var(--ave-n600); background: var(--ave-n200); cursor: not-allowed; }
.ave-card { padding: 24px; background: white; border: var(--ave-border); border-radius: var(--ave-radius-md); }
.ave-card--elevated { border-color: transparent; box-shadow: var(--ave-shadow-2); }
.ave-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 4px 12px; border-radius: 9999px; }

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