/* Vigil — shared base styles loaded by all pages */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:       #0F2040;
  --navy-dim:   rgba(15,32,64,0.07);
  --navy-glow:  rgba(15,32,64,0.25);
  --amber:      #F59E0B;
  --amber-dim:  rgba(245,158,11,0.12);
  --green:      #059669;
  --green-dim:  rgba(5,150,105,0.10);
  --red:        #DC2626;
  --red-dim:    rgba(220,38,38,0.10);
  --blue:       #0891B2;
  --blue-dim:   rgba(8,145,178,0.10);
  --purple:     #7C3AED;
  --purple-dim: rgba(124,58,237,0.10);
  --border:     rgba(15,32,64,0.09);
  --border2:    rgba(15,32,64,0.15);
  --muted:      #5A6B8A;
  --text:       #0F2040;
  --surface:    #FFFFFF;
  --display-font: 'Plus Jakarta Sans', sans-serif;
}

body { font-family: 'DM Sans', sans-serif; color: var(--text); }
input, textarea, select, button { font-family: inherit; }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-thumb { background: rgba(15,32,64,0.18); border-radius: 3px; }

@keyframes spin    { to { transform: rotate(360deg); } }
@keyframes fadeUp  { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes pulse   { 0%,100% { opacity:1; } 50% { opacity:0.4; } }
@keyframes slideIn { from { transform:translateX(100%); opacity:0; } to { transform:none; opacity:1; } }
