/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./src/styles/tokens.css ***!
  \*******************************************************************************************************************************************************************************************************************************************************************/
/* ==========================================================================
   Jabulani ERP — Design Tokens
   --------------------------------------------------------------------------
   Direction taken from the approved mockup: a dark navy command rail against a
   light working surface, with a single scarlet accent reserved for the active
   route and the primary action. Everything else stays quiet so dense tables
   remain readable across a full shift.
   ========================================================================== */

:root {
  /* --- Command rail (sidebar) ------------------------------------------- */
  --rail-bg: #151e2d;
  --rail-bg-hover: #1e293b;
  --rail-border: #24334a;
  --rail-text: #93a1b5;
  --rail-text-strong: #ffffff;
  --rail-section: #5b6a80;
  --rail-footer-bg: #101825;

  /* --- Accent: scarlet. Active route and primary action only. ----------- */
  --accent-600: #d81e2c;
  --accent-500: #e5303e;
  --accent-400: #ef5561;
  --accent-050: #fdeaec;

  /* --- Neutrals ---------------------------------------------------------- */
  --neutral-0: #ffffff;
  --neutral-25: #fafbfc;
  --neutral-50: #f6f7f9;
  --neutral-100: #eef1f4;
  --neutral-200: #e4e8ed;
  --neutral-300: #cfd6de;
  --neutral-400: #9aa5b4;
  --neutral-500: #6b7684;
  --neutral-600: #4d5866;
  --neutral-700: #343d4a;
  --neutral-800: #212936;
  --neutral-900: #131a24;

  /* --- Semantic ---------------------------------------------------------- */
  --success-bg: #dcf5e7;
  --success-fg: #14703f;
  --warning-bg: #fdf0d5;
  --warning-fg: #8a6a0b;
  --danger-bg: #fdeaec;
  --danger-fg: #b4232f;
  --info-bg: #e6eefc;
  --info-fg: #1e4fa8;
  --neutral-bg: #eef1f4;
  --neutral-fg: #56616f;

  /* --- Surfaces & text --------------------------------------------------- */
  --surface-page: var(--neutral-50);
  --surface-card: var(--neutral-0);
  --surface-muted: var(--neutral-100);
  --surface-hover: var(--neutral-25);
  --border-default: var(--neutral-200);
  --border-strong: var(--neutral-300);
  --text-primary: #17202e;
  --text-secondary: var(--neutral-500);
  --text-muted: var(--neutral-400);

  /* --- Typography --------------------------------------------------------
     One family, worked hard: tight tracking and heavy weights carry the
     numerals on stat cards; tabular figures keep table columns aligned. */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'SF Mono', Menlo, monospace;

  --text-2xs: 0.6875rem;
  --text-xs: 0.75rem;
  --text-sm: 0.8125rem;
  --text-base: 0.875rem;
  --text-md: 0.9375rem;
  --text-lg: 1.0625rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-stat: 1.75rem;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  --line-tight: 1.2;
  --line-normal: 1.5;

  /* --- Spacing (4px base) ------------------------------------------------ */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 2rem;
  --space-8: 2.5rem;

  /* --- Radius & elevation ------------------------------------------------ */
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  --shadow-xs: 0 1px 2px rgba(19, 26, 36, 0.05);
  --shadow-sm: 0 1px 3px rgba(19, 26, 36, 0.07), 0 1px 2px rgba(19, 26, 36, 0.04);
  --shadow-md: 0 4px 12px rgba(19, 26, 36, 0.09);
  --shadow-lg: 0 12px 32px rgba(19, 26, 36, 0.16);

  /* --- Layout ------------------------------------------------------------ */
  --rail-width: 15rem;

  --transition-fast: 120ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
  }
}

/*!********************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./src/styles/globals.css ***!
  \********************************************************************************************************************************************************************************************************************************************************************/
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  background: var(--surface-page);
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--line-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
}

/* Visible keyboard focus everywhere — accessibility floor. */
:focus-visible {
  outline: 2px solid var(--accent-500);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

code,
.mono {
  font-family: var(--font-mono);
}

