/* DBIM design tokens */

:root {
  /* Blue group */
  --dbim-blue-1: #162F6A;
  --dbim-blue-2: #214AAB;
  --dbim-blue-3: #5279D7;
  --dbim-blue-4: #A3BBF3;
  --dbim-blue-5: #D2DFFF;

  /* Functional palette */
  --dbim-linen: #EBEAEA;
  --dbim-white: #FFFFFF;
  --dbim-earthy-brown: #150202;
  --dbim-black: #000000;
  --dbim-success: #198754;
  --dbim-warning: #FFC107;
  --dbim-error: #DC3545;
  --dbim-info: #0D6EFD;
  --dbim-grey-1: #C6C6C6;
  --dbim-grey-2: #8E8E8E;
  --dbim-grey-3: #606060;

  /* Roles */
  --dbim-surface: var(--dbim-white);
  --dbim-surface-alt: var(--dbim-linen);
  --dbim-surface-selected: var(--dbim-blue-5);
  --dbim-text: var(--dbim-earthy-brown);
  --dbim-text-muted: var(--dbim-grey-3);
  --dbim-text-on-band: var(--dbim-white);
  --dbim-link: var(--dbim-blue-1);
  --dbim-link-hover: var(--dbim-blue-2);
  --dbim-band: var(--dbim-blue-1);
  --dbim-band-hover: var(--dbim-blue-2);
  --dbim-border: var(--dbim-linen);
  --dbim-border-strong: var(--dbim-grey-3);
  --dbim-focus: var(--dbim-blue-1);
  --dbim-focus-on-dark: var(--dbim-warning);
  --dbim-disabled-bg: var(--dbim-linen);
  --dbim-disabled-text: var(--dbim-grey-3);

  /* Typography */
  --dbim-font: "Noto Sans", "Noto Sans Devanagari", sans-serif;
  --dbim-font-hi: "Noto Sans Devanagari", "Noto Sans", sans-serif;
  --dbim-weight-regular: 400;
  --dbim-weight-semibold: 600;

  /* Type scale, desktop */
  --dbim-size-h1: 2.25rem;
  --dbim-size-h2: 1.5rem;
  --dbim-size-h3: 1.25rem;
  --dbim-size-p1: 1rem;
  --dbim-size-p2: 0.875rem;
  --dbim-size-small: 0.75rem;
  --dbim-leading-heading: 1.25;
  --dbim-leading-body: 1.5;
  --dbim-measure: 72ch;

  /* Spacing */
  --dbim-space-1: 0.25rem;
  --dbim-space-2: 0.5rem;
  --dbim-space-3: 0.75rem;
  --dbim-space-4: 1rem;
  --dbim-space-5: 1.5rem;
  --dbim-space-6: 2rem;
  --dbim-space-7: 3rem;
  --dbim-space-8: 4rem;

  /* Layout */
  --dbim-content-max: 82.5rem;
  --dbim-gutter: 1.5rem;
  --dbim-page-margin: 1rem;

  /* Shape */
  --dbim-radius-control: 3px;
  --dbim-radius-surface: 0;
  --dbim-rule: 1px solid var(--dbim-border);
  --dbim-rule-strong: 1px solid var(--dbim-border-strong);
  --dbim-shadow-overlay: 0 4px 12px rgba(21, 2, 2, 0.18);

  /* Interaction */
  --dbim-target-min: 2.75rem;
  --dbim-focus-width: 3px;
  --dbim-focus-offset: 2px;
  --dbim-transition: 150ms ease-out;

  /* Section roles */
  --dbim-heading-accent: var(--dbim-blue-1);
  --dbim-band-rule: rgba(255, 255, 255, 0.24);
  --dbim-band-text-soft: var(--dbim-blue-5);
  --dbim-table-head: var(--dbim-blue-5);
  --dbim-row-hover: var(--dbim-blue-5);
  --dbim-radius-panel: 3px;
  --dbim-section-pad: 3rem;
  --dbim-masthead-pad: 0.75rem;
  --dbim-titleband-min: 13.75rem;

  /* Stacking */
  --dbim-z-dropdown: 1000;
  --dbim-z-sticky: 1020;
  --dbim-z-banner: 1040;
  --dbim-z-dialog: 1050;
}

/* Type scale, mobile */
@media (max-width: 767.98px) {
  :root {
    --dbim-size-h1: 1.5rem;
    --dbim-size-h2: 1.25rem;
    --dbim-size-h3: 1rem;
    --dbim-size-p1: 0.875rem;
    --dbim-size-p2: 0.75rem;
    --dbim-size-small: 0.625rem;
    --dbim-gutter: 1rem;
    --dbim-section-pad: 2rem;
    --dbim-titleband-min: 10rem;
  }
}

/* Text size steps, set by dbim-site.js */
html[data-dbim-text="-1"] { font-size: 87.5% !important; }
html[data-dbim-text="1"]  { font-size: 112.5% !important; }
html[data-dbim-text="2"]  { font-size: 125% !important; }
html[data-dbim-text="3"]  { font-size: 150% !important; }
html[data-dbim-text="4"]  { font-size: 175% !important; }
html[data-dbim-text="5"]  { font-size: 200% !important; }

/* High contrast */
html[data-dbim-contrast="high"] {
  --dbim-surface: var(--dbim-black);
  --dbim-surface-alt: var(--dbim-black);
  --dbim-surface-selected: var(--dbim-black);
  --dbim-text: var(--dbim-white);
  --dbim-text-muted: var(--dbim-white);
  --dbim-text-on-band: var(--dbim-white);
  --dbim-link: var(--dbim-warning);
  --dbim-link-hover: var(--dbim-white);
  --dbim-band: var(--dbim-black);
  --dbim-band-hover: var(--dbim-black);
  --dbim-border: var(--dbim-white);
  --dbim-border-strong: var(--dbim-white);
  --dbim-focus: var(--dbim-warning);
  --dbim-focus-on-dark: var(--dbim-warning);
  --dbim-disabled-bg: var(--dbim-black);
  --dbim-disabled-text: var(--dbim-white);
  --dbim-heading-accent: var(--dbim-white);
  --dbim-band-rule: var(--dbim-white);
  --dbim-band-text-soft: var(--dbim-white);
  --dbim-table-head: var(--dbim-black);
  --dbim-row-hover: var(--dbim-black);
}

@media (prefers-reduced-motion: reduce) {
  :root { --dbim-transition: 0s; }
}
