:root {
  /* ===== PLUZZPAY BRAND COLORS (from logo: Royal Blue + White) ===== */
  --brand-blue: #1B3FA0;
  --brand-blue-dark: #152E7A;
  --brand-blue-light: #2550C8;
  --brand-blue-xlight: #EEF2FF;
  --brand-white: #FFFFFF;
  --brand-accent: #3B82F6;

  /* ===== STATUS COLORS ===== */
  --success: #16A34A;
  --success-light: #DCFCE7;
  --success-dark: #15803D;
  --warning: #D97706;
  --warning-light: #FEF3C7;
  --danger: #DC2626;
  --danger-light: #FEE2E2;
  --info: #0284C7;
  --info-light: #E0F2FE;

  /* ===== NEUTRAL PALETTE ===== */
  --gray-50: #F8FAFC;
  --gray-100: #F1F5F9;
  --gray-200: #E2E8F0;
  --gray-300: #CBD5E1;
  --gray-400: #94A3B8;
  --gray-500: #64748B;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1E293B;
  --gray-900: #0F172A;

  /* ===== SEMANTIC MAPPING ===== */
  --primary: var(--brand-blue);
  --primary-dark: var(--brand-blue-dark);
  --primary-light: var(--brand-blue-light);
  --primary-xlight: var(--brand-blue-xlight);

  /* ===== BACKGROUNDS ===== */
  --bg-body: var(--gray-50);
  --bg-card: #FFFFFF;
  --bg-sidebar: var(--brand-blue);
  --bg-header: #FFFFFF;

  /* ===== TEXT ===== */
  --text-primary: var(--gray-900);
  --text-secondary: var(--gray-600);
  --text-muted: var(--gray-400);
  --text-white: #FFFFFF;
  --text-link: var(--brand-blue);

  /* ===== BORDERS ===== */
  --border: var(--gray-200);
  --border-focus: var(--brand-blue);
  --border-radius-sm: 6px;
  --border-radius: 10px;
  --border-radius-lg: 14px;
  --border-radius-xl: 20px;
  --border-radius-pill: 100px;

  /* ===== SHADOWS ===== */
  --shadow-xs: 0 1px 3px rgba(15,23,42,0.06);
  --shadow-sm: 0 2px 8px rgba(15,23,42,0.08);
  --shadow-md: 0 4px 16px rgba(15,23,42,0.10);
  --shadow-lg: 0 8px 32px rgba(15,23,42,0.12);
  --shadow-primary: 0 4px 16px rgba(27,63,160,0.25);

  /* ===== TYPOGRAPHY ===== */
  --font: 'Inter', 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;

  /* ===== SPACING ===== */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;

  /* ===== LAYOUT ===== */
  --sidebar-width: 260px;
  --header-height: 64px;
  --container-max: 1280px;

  /* ===== TRANSITIONS ===== */
  --transition: 200ms cubic-bezier(0.4,0,0.2,1);
  --transition-slow: 350ms cubic-bezier(0.4,0,0.2,1);

  /* ===== Z-INDEX ===== */
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;

  /* ===== CARD GRADIENTS for dashboard ===== */
  --gradient-blue: linear-gradient(135deg, #1B3FA0 0%, #3B82F6 100%);
  --gradient-green: linear-gradient(135deg, #15803D 0%, #22C55E 100%);
  --gradient-orange: linear-gradient(135deg, #C2410C 0%, #F97316 100%);
  --gradient-purple: linear-gradient(135deg, #7E22CE 0%, #A855F7 100%);
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--font);
  color: var(--text-primary);
  background: var(--bg-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}
a { color: var(--text-link); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; }
input, button, select, textarea { font-family: inherit; }
button { cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
