/* =============================================================================
   GSCC Design Tokens — single source of truth
   Load first in every layout. Maps to Bootstrap (--bs-*) and legacy aliases
   (--color-*, --gscc-swal-*, --svn-*) so existing themes keep working.
   Brand: Jharkhand DHTE forest green + gold accent (gov operations palette).
   ============================================================================= */

:root {
  /* ----- Color: brand ----- */
  --gscc-color-primary: #0B5D3B;
  --gscc-color-primary-dark: #084C32;
  --gscc-color-primary-light: #0E7A4A;
  --gscc-color-primary-soft: #EAF5EF;
  --gscc-color-primary-muted: #C5DDD0;

  --gscc-color-secondary: #1B3A2F;
  --gscc-color-secondary-soft: #E8EEEA;

  --gscc-color-accent: #D89B2B;
  --gscc-color-accent-dark: #B77908;
  --gscc-color-accent-soft: #F8EFDA;

  /* Public CTA (Registration / highlight) — navy, not competing purple */
  --gscc-color-cta: #1E4D8C;
  --gscc-color-cta-dark: #163A6B;
  --gscc-color-cta-soft: #E8F0F8;

  /* Legacy public orange used sparingly for “active / what’s new” */
  --gscc-color-highlight: #C45A1A;
  --gscc-color-highlight-soft: #FCEEE6;

  /* ----- Color: surfaces ----- */
  --gscc-color-bg: #F4F6F7;
  --gscc-color-bg-subtle: #F8FAFB;
  --gscc-color-surface: #FFFFFF;
  --gscc-color-surface-raised: #FFFFFF;
  --gscc-color-border: #DCE3E7;
  --gscc-color-border-subtle: #E5E7EB;
  --gscc-color-border-strong: #C5CDD3;
  --gscc-color-divider: #E5E7EB;

  /* ----- Color: text ----- */
  --gscc-color-text: #17212B;
  --gscc-color-text-secondary: #3D4A57;
  --gscc-color-muted: #667085;
  --gscc-color-text-inverse: #FFFFFF;
  --gscc-color-link: #0B5D3B;
  --gscc-color-link-hover: #084C32;

  /* ----- Color: semantic ----- */
  --gscc-color-success: #16845B;
  --gscc-color-success-soft: #E6F4EE;
  --gscc-color-warning: #B77908;
  --gscc-color-warning-soft: #FBF3E0;
  --gscc-color-danger: #C93636;
  --gscc-color-danger-soft: #FBEAEA;
  --gscc-color-info: #2563A6;
  --gscc-color-info-soft: #E8F0F8;

  /* ----- Typography ----- */
  --gscc-font-sans: "Noto Sans", "Noto Sans Devanagari", "Segoe UI", system-ui, -apple-system, sans-serif;
  --gscc-font-mono: ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace;
  --gscc-font: var(--gscc-font-sans);

  --gscc-fs-xs: 0.6875rem;   /* 11px */
  --gscc-fs-sm: 0.75rem;     /* 12px */
  --gscc-fs-md: 0.8125rem;   /* 13px */
  --gscc-fs-base: 0.875rem;  /* 14px */
  --gscc-fs-lg: 1rem;        /* 16px */
  --gscc-fs-xl: 1.125rem;    /* 18px */
  --gscc-fs-2xl: 1.375rem;   /* 22px */
  --gscc-fs-3xl: 1.75rem;    /* 28px */
  --gscc-fs-4xl: 2.25rem;    /* 36px */

  --gscc-fw-regular: 400;
  --gscc-fw-medium: 500;
  --gscc-fw-semibold: 600;
  --gscc-fw-bold: 700;

  --gscc-lh-tight: 1.25;
  --gscc-lh-snug: 1.35;
  --gscc-lh-normal: 1.5;
  --gscc-lh-relaxed: 1.65;

  --gscc-ls-tight: -0.02em;
  --gscc-ls-normal: 0;
  --gscc-ls-wide: 0.04em;
  --gscc-ls-label: 0.06em;

  /* ----- Spacing (4px base) ----- */
  --gscc-space-0: 0;
  --gscc-space-1: 0.25rem;   /* 4 */
  --gscc-space-2: 0.5rem;    /* 8 */
  --gscc-space-3: 0.75rem;   /* 12 */
  --gscc-space-4: 1rem;      /* 16 */
  --gscc-space-5: 1.25rem;   /* 20 */
  --gscc-space-6: 1.5rem;    /* 24 */
  --gscc-space-8: 2rem;      /* 32 */
  --gscc-space-10: 2.5rem;   /* 40 */
  --gscc-space-12: 3rem;     /* 48 */
  --gscc-space-16: 4rem;     /* 64 */

  --gscc-gutter: var(--gscc-space-4);
  --gscc-section-gap: var(--gscc-space-8);
  --gscc-container-max: 1200px;
  --gscc-container-wide: 1400px;
  --gscc-content-max: 960px;

  /* ----- Radii ----- */
  --gscc-radius-sm: 4px;
  --gscc-radius-md: 6px;
  --gscc-radius-lg: 10px;
  --gscc-radius-xl: 14px;
  --gscc-radius-pill: 999px;

  /* ----- Elevation / shadow ----- */
  --gscc-shadow-xs: 0 1px 0 rgba(23, 33, 43, 0.06);
  --gscc-shadow-sm: 0 1px 2px rgba(23, 33, 43, 0.06), 0 1px 3px rgba(23, 33, 43, 0.04);
  --gscc-shadow-md: 0 4px 12px rgba(23, 33, 43, 0.08);
  --gscc-shadow-lg: 0 10px 28px rgba(23, 33, 43, 0.12);
  --gscc-shadow-focus: 0 0 0 3px rgba(11, 93, 59, 0.18);
  --gscc-shadow-focus-danger: 0 0 0 3px rgba(201, 54, 54, 0.2);

  /* ----- Controls ----- */
  --gscc-control-h-sm: 32px;
  --gscc-control-h: 36px;
  --gscc-control-h-lg: 44px;
  --gscc-control-px: 12px;
  --gscc-control-gap: 8px;
  --gscc-btn-px: 14px;
  --gscc-btn-py: 7px;

  /* ----- Icons ----- */
  --gscc-icon-xs: 14px;
  --gscc-icon-sm: 16px;
  --gscc-icon-md: 20px;
  --gscc-icon-lg: 24px;

  /* ----- Layout chrome ----- */
  --gscc-header-h: 56px;
  --gscc-sidebar-w: 252px;
  --gscc-sidebar-collapsed-w: 80px;
  --gscc-z-skip: 10000;
  --gscc-z-modal: 1055;
  --gscc-z-toast: 1080;

  /* ----- Motion ----- */
  --gscc-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --gscc-duration-fast: 120ms;
  --gscc-duration: 180ms;

  /* =========================================================================
     Legacy aliases — keep admin theme, sweetalert, list-tables, svn dashboards
     ========================================================================= */
  --color-primary: var(--gscc-color-primary);
  --color-primary-dark: var(--gscc-color-primary-dark);
  --color-primary-soft: var(--gscc-color-primary-soft);
  --color-accent: var(--gscc-color-accent);
  --color-accent-soft: var(--gscc-color-accent-soft);
  --color-bg: var(--gscc-color-bg);
  --color-surface: var(--gscc-color-surface);
  --color-border: var(--gscc-color-border);
  --color-border-subtle: var(--gscc-color-border-subtle);
  --color-text: var(--gscc-color-text);
  --color-muted: var(--gscc-color-muted);
  --color-success: var(--gscc-color-success);
  --color-success-soft: var(--gscc-color-success-soft);
  --color-warning: var(--gscc-color-warning);
  --color-warning-soft: var(--gscc-color-warning-soft);
  --color-danger: var(--gscc-color-danger);
  --color-danger-soft: var(--gscc-color-danger-soft);
  --color-info: var(--gscc-color-info);
  --color-info-soft: var(--gscc-color-info-soft);
  --color-header: var(--gscc-color-secondary);

  --space-1: var(--gscc-space-1);
  --space-2: var(--gscc-space-2);
  --space-3: var(--gscc-space-3);
  --space-4: var(--gscc-space-4);
  --space-5: var(--gscc-space-5);
  --space-6: var(--gscc-space-6);

  --radius-sm: var(--gscc-radius-sm);
  --radius-md: var(--gscc-radius-md);
  --radius-lg: var(--gscc-radius-lg);

  --font: var(--gscc-font);
  --header-h: var(--gscc-header-h);
  --sidebar-w: var(--gscc-sidebar-w);
  --sidebar-collapsed-w: var(--gscc-sidebar-collapsed-w);

  /* SweetAlert bridge */
  --gscc-swal-primary: var(--gscc-color-primary);
  --gscc-swal-primary-dark: var(--gscc-color-primary-dark);
  --gscc-swal-primary-soft: var(--gscc-color-primary-soft);
  --gscc-swal-accent: var(--gscc-color-accent);
  --gscc-swal-accent-soft: var(--gscc-color-accent-soft);
  --gscc-swal-text: var(--gscc-color-text);
  --gscc-swal-muted: var(--gscc-color-muted);
  --gscc-swal-border: var(--gscc-color-border);
  --gscc-swal-surface: var(--gscc-color-surface);
  --gscc-swal-success: var(--gscc-color-success);
  --gscc-swal-success-soft: var(--gscc-color-success-soft);
  --gscc-swal-danger: var(--gscc-color-danger);
  --gscc-swal-danger-soft: var(--gscc-color-danger-soft);
  --gscc-swal-warning: var(--gscc-color-warning);
  --gscc-swal-font: var(--gscc-font);

  /* Subvention dashboard bridge */
  --svn-g1: var(--gscc-color-primary);
  --svn-g2: var(--gscc-color-primary-light);
  --svn-g3: var(--gscc-color-success);
  --svn-g-light: var(--gscc-color-success-soft);
  --svn-g-muted: var(--gscc-color-primary-muted);
  --svn-ink: var(--gscc-color-text);
  --svn-ink2: var(--gscc-color-secondary);
  --svn-muted: var(--gscc-color-muted);
  --svn-surface: var(--gscc-color-bg-subtle);
  --svn-card: var(--gscc-color-surface);
  --svn-border: var(--gscc-color-border);
  --svn-radius: var(--gscc-radius-xl);
  --svn-radius-sm: var(--gscc-radius-md);
  --svn-font: var(--gscc-font);
  --svn-mono: var(--gscc-font-mono);

  /* Bootstrap 5 theme hooks */
  --bs-primary: var(--gscc-color-primary);
  --bs-primary-rgb: 11, 93, 59;
  --bs-secondary: var(--gscc-color-secondary);
  --bs-success: var(--gscc-color-success);
  --bs-info: var(--gscc-color-info);
  --bs-warning: var(--gscc-color-warning);
  --bs-danger: var(--gscc-color-danger);
  --bs-body-color: var(--gscc-color-text);
  --bs-body-bg: var(--gscc-color-bg);
  --bs-border-color: var(--gscc-color-border);
  --bs-link-color: var(--gscc-color-link);
  --bs-link-hover-color: var(--gscc-color-link-hover);
  --bs-font-sans-serif: var(--gscc-font);
  --bs-body-font-family: var(--gscc-font);
  --bs-border-radius: var(--gscc-radius-md);
  --bs-border-radius-sm: var(--gscc-radius-sm);
  --bs-border-radius-lg: var(--gscc-radius-lg);
}

@media (min-width: 768px) {
  :root {
    --gscc-gutter: var(--gscc-space-6);
    --gscc-section-gap: var(--gscc-space-10);
  }
}

@media (min-width: 1200px) {
  :root {
    --gscc-gutter: var(--gscc-space-8);
  }
}

/* =============================================================================
   Theme: Light (default) — also :root above
   Applied via html[data-gscc-theme="light|dark|high-contrast"]
   Preference "system" resolves to light or dark before paint (see gscc-theme boot).
   ============================================================================= */

html {
  color-scheme: light;
}

html[data-gscc-theme="light"] {
  color-scheme: light;
}

/* ----- Dark (gov charcoal + brand green) ----- */
html[data-gscc-theme="dark"] {
  color-scheme: dark;

  --gscc-color-primary: #3FA873;
  --gscc-color-primary-dark: #2F8A5C;
  --gscc-color-primary-light: #56C08A;
  --gscc-color-primary-soft: #1A2E24;
  --gscc-color-primary-muted: #2A4A3A;

  --gscc-color-secondary: #9FCBB3;
  --gscc-color-secondary-soft: #1E2A24;

  --gscc-color-accent: #E0B34A;
  --gscc-color-accent-dark: #C9962A;
  --gscc-color-accent-soft: #2E2818;

  --gscc-color-cta: #6BA3E0;
  --gscc-color-cta-dark: #4F88C7;
  --gscc-color-cta-soft: #1A2838;

  --gscc-color-highlight: #E08A55;
  --gscc-color-highlight-soft: #2E2018;

  --gscc-color-bg: #0F1412;
  --gscc-color-bg-subtle: #151B18;
  --gscc-color-surface: #1A221E;
  --gscc-color-surface-raised: #222B26;
  --gscc-color-border: #2F3C35;
  --gscc-color-border-subtle: #26322C;
  --gscc-color-border-strong: #3D4F45;
  --gscc-color-divider: #2F3C35;

  --gscc-color-text: #E8EEEA;
  --gscc-color-text-secondary: #C5D0CA;
  --gscc-color-muted: #9AABA2;
  --gscc-color-text-inverse: #0F1412;
  --gscc-color-link: #6BCF97;
  --gscc-color-link-hover: #8FDBB0;

  --gscc-color-success: #3FBA7E;
  --gscc-color-success-soft: #143528;
  --gscc-color-warning: #E0B34A;
  --gscc-color-warning-soft: #2E2818;
  --gscc-color-danger: #E57373;
  --gscc-color-danger-soft: #3A1E1E;
  --gscc-color-info: #64B5F6;
  --gscc-color-info-soft: #1A2A38;

  --gscc-shadow-xs: 0 1px 0 rgba(0, 0, 0, 0.35);
  --gscc-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 1px 3px rgba(0, 0, 0, 0.25);
  --gscc-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.45);
  --gscc-shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.55);
  --gscc-shadow-focus: 0 0 0 3px rgba(63, 168, 115, 0.35);

  --bs-primary-rgb: 63, 168, 115;
  --bs-body-color: var(--gscc-color-text);
  --bs-body-bg: var(--gscc-color-bg);
  --bs-border-color: var(--gscc-color-border);
}

/* ----- High contrast (WCAG / GIGW-oriented) ----- */
html[data-gscc-theme="high-contrast"] {
  color-scheme: light;

  --gscc-color-primary: #003D26;
  --gscc-color-primary-dark: #002618;
  --gscc-color-primary-light: #005C38;
  --gscc-color-primary-soft: #FFFFFF;
  --gscc-color-primary-muted: #000000;

  --gscc-color-secondary: #000000;
  --gscc-color-secondary-soft: #FFFFFF;

  --gscc-color-accent: #7A4E00;
  --gscc-color-accent-dark: #5C3A00;
  --gscc-color-accent-soft: #FFF8E6;

  --gscc-color-cta: #003366;
  --gscc-color-cta-dark: #001A33;
  --gscc-color-cta-soft: #E6F0FF;

  --gscc-color-highlight: #8B2500;
  --gscc-color-highlight-soft: #FFE8E0;

  --gscc-color-bg: #FFFFFF;
  --gscc-color-bg-subtle: #FFFFFF;
  --gscc-color-surface: #FFFFFF;
  --gscc-color-surface-raised: #FFFFFF;
  --gscc-color-border: #000000;
  --gscc-color-border-subtle: #000000;
  --gscc-color-border-strong: #000000;
  --gscc-color-divider: #000000;

  --gscc-color-text: #000000;
  --gscc-color-text-secondary: #000000;
  --gscc-color-muted: #1A1A1A;
  --gscc-color-text-inverse: #FFFFFF;
  --gscc-color-link: #0000EE;
  --gscc-color-link-hover: #0000AA;

  --gscc-color-success: #006600;
  --gscc-color-success-soft: #E6FFE6;
  --gscc-color-warning: #7A4E00;
  --gscc-color-warning-soft: #FFF3D6;
  --gscc-color-danger: #990000;
  --gscc-color-danger-soft: #FFE6E6;
  --gscc-color-info: #003399;
  --gscc-color-info-soft: #E6EEFF;

  --gscc-shadow-xs: none;
  --gscc-shadow-sm: none;
  --gscc-shadow-md: none;
  --gscc-shadow-lg: none;
  --gscc-shadow-focus: 0 0 0 3px #000000;

  --bs-primary-rgb: 0, 61, 38;
  --bs-body-color: #000000;
  --bs-body-bg: #FFFFFF;
  --bs-border-color: #000000;
}
