/* Maikoz brand pack — sourced from "MAIKOZ Brand Book // 2026".
   Canonical palette:
     Graphite     #0D0F1A   foundation / dark bg
     Soft White   #EAEAEA   primary text on dark
     MAIKOZ Teal  #00E5C2   primary highlight (THE main brand signal)
     MAIKOZ Lime  #B6FF2E   energy accent — DARK BACKGROUNDS ONLY
     Cool Grey    #9BA3AF   secondary text / dividers
     Steel Blue   #5B9BD5   data viz only — NOT a core brand accent

   Brand book hard rule: "Lime must not be placed on light grey or white." So
   the light-mode pack uses Steel Blue + Graphite where the dark pack would use
   Lime, and the brand-* chart palette swaps in a non-lime amber for light.

   The brand is dark-foundation by design — canonical look is
   data-theme="dark" + data-theme-pack="maikoz". Light mode is a compromise:
   Teal is darkened to #007E6A for 4.5:1 readability on white.

   Layered on top of colors.css / colors-dark.css; only overrides brand-coloured
   tokens (primary + derivatives, secondary, accent, focus border, brand
   palette, font families). Surfaces / text / borders inherit from the base
   theme. Vision overrides (colors-vision.css) load AFTER and still win for
   protanopia / deuteranopia / tritanopia users. */


/* ────────── Brand fonts (Oswald display + Inter body, OFL 1.1) ──────────
   Oswald (5 weights × 4 subsets = 20 woff2s) self-hosted under
   /fonts/oswald/ — packaged by FontSource from googlefonts/OswaldFont upstream.
   Subsets: latin, latin-ext, cyrillic, cyrillic-ext. Oswald upstream has
   no Greek glyphs — Greek text falls through to Inter / system fallback.

   Inter (4 weights × 1 file = 4 woff2s) self-hosted under /fonts/inter/ —
   shipped by rsms/inter (designer-authoritative). Each Inter weight is a
   single file containing full unicode coverage, so no subset split needed.

   @font-face is global regardless of where declared — browser only fetches
   the woff2 when a selector that references the family AND a glyph in the
   declared unicode-range becomes active, so non-Maikoz packs incur zero
   network cost. font-display: swap so fallback (Serotiva chain) renders
   first and Oswald/Inter swap in when loaded. */

/* Oswald — 300 (light) */
@font-face {
  font-family: "Oswald"; font-weight: 300; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-light-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 300; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-light-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 300; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-light-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 300; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-light-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}

/* Oswald — 400 (regular) */
@font-face {
  font-family: "Oswald"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-regular-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-regular-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-regular-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-regular-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}

/* Oswald — 500 (medium) */
@font-face {
  font-family: "Oswald"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-medium-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-medium-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-medium-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-medium-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}

/* Oswald — 600 (semibold) */
@font-face {
  font-family: "Oswald"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-semibold-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-semibold-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-semibold-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-semibold-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}

/* Oswald — 700 (bold) */
@font-face {
  font-family: "Oswald"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-bold-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-bold-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-bold-cyrillic.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Oswald"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/fonts/oswald/oswald-bold-cyrillic-ext.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}

/* Inter — single file per weight covers full unicode (rsms/inter v4.1).
   Metric overrides match Serotiva's box so swapping packs doesn't shift
   text baselines (same numbers as the Serotiva-fallback face in fonts.css —
   which IS local Inter, so the values are pre-validated for this exact swap). */
@font-face {
  font-family: "Inter"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("/fonts/inter/inter-regular.woff2") format("woff2");
  size-adjust: 98%; ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Inter"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("/fonts/inter/inter-medium.woff2") format("woff2");
  size-adjust: 98%; ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Inter"; font-weight: 600; font-style: normal; font-display: swap;
  src: url("/fonts/inter/inter-semibold.woff2") format("woff2");
  size-adjust: 98%; ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}
@font-face {
  font-family: "Inter"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("/fonts/inter/inter-bold.woff2") format("woff2");
  size-adjust: 98%; ascent-override: 77%; descent-override: 22%; line-gap-override: 0%;
}


[data-theme-pack="maikoz"] {
  /* Primary: darkened MAIKOZ Teal for white-bg readability. Canonical #00E5C2
     fails 4.5:1 on white, so light mode pulls toward #007E6A. */
  --color-primary: #007E6A;
  --color-primary-hover: #00604F;
  --color-primary-foreground: #FFFFFF;
  --color-primary-muted: #D4F5EE;

  /* Secondary: Graphite — brand foundation colour, used for headers, dark
     surfaces, secondary buttons. */
  --color-secondary: #0D0F1A;
  --color-secondary-hover: #1A1D2E;
  --color-secondary-foreground: #EAEAEA;

  /* Accent: Steel Blue. Lime is forbidden on light bg per brand book —
     reserved for dark mode. */
  --color-accent: #5B9BD5;

  --color-border-focus: #007E6A;

  /* Data viz palette (light-mode safe — no lime on white).
     Pink / purple are non-canonical chart-only extensions for series
     distinction; brand book gives 6 colours which is too few for charts. */
  --color-brand-blue: #5B9BD5;       /* Steel Blue — chart primary */
  --color-brand-turquoise: #00B89C;  /* mid teal */
  --color-brand-green: #00B89C;      /* teal slot — MAIKOZ has no separate green */
  --color-brand-yellow: #F2C14E;     /* amber substitute (lime can't sit on white) */
  --color-brand-pink: #F4A6B8;       /* extension — not in brand book */
  --color-brand-purple: #6E5BC4;     /* extension — not in brand book */
  --color-brand-gainsboro: #9BA3AF;  /* Cool Grey */
  --color-brand-group-blue: #5B9BD5;

  /* Brand book typography: Oswald (display) + Inter (body). Serotiva chain
     stays in fallback so legacy + non-Maikoz packs are unaffected, and so
     pages render on the fallback while the woff2s load. Greek glyphs in
     headlines fall through to Inter — Oswald upstream has no Greek subset. */
  --font-family-display: "Oswald", "Serotiva", "Serotiva fallback", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-family-sans: "Inter", "Serotiva", "Serotiva fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

[data-theme-pack="maikoz"][data-theme="dark"] {
  /* Canonical brand mode. MAIKOZ Teal as the main signal. */
  --color-primary: #00E5C2;
  --color-primary-hover: #2FF0D2;
  --color-primary-foreground: #0D0F1A;  /* Graphite — text on Teal */
  --color-primary-muted: #003D34;

  /* Secondary: Soft White — high-legibility on dark Graphite surfaces. */
  --color-secondary: #EAEAEA;
  --color-secondary-hover: #FFFFFF;
  --color-secondary-foreground: #0D0F1A;

  /* Accent: MAIKOZ Lime — energy signal. Use sparingly per brand book. */
  --color-accent: #B6FF2E;

  --color-border-focus: #00E5C2;

  /* Data viz palette — dark-mode allows lime as a chart highlight. */
  --color-brand-blue: #5B9BD5;       /* Steel Blue */
  --color-brand-turquoise: #00E5C2;  /* MAIKOZ Teal */
  --color-brand-green: #B6FF2E;      /* MAIKOZ Lime — green slot */
  --color-brand-yellow: #B6FF2E;     /* lime — single energy accent on dark */
  --color-brand-pink: #F4A6B8;       /* extension */
  --color-brand-purple: #6E5BC4;     /* extension */
  --color-brand-gainsboro: #9BA3AF;  /* Cool Grey */
  --color-brand-group-blue: #5B9BD5;
}
