/* © 2026 Emergence Engineering. All rights reserved.
   This file is PCBJam's brand. It is not covered by the GPL or MIT licences of PCBJam's
   open-source repositories, and a page that loads it gets no licence to it. "PCBJam" and the
   PCBJam logo are trademarks of Emergence Engineering. */

/* The brand for the web app and the editor: the mood board's colours, type and radii under the
   token names @pcbjam/ui's components read (ui-components 0001, section 4.4). Colours are HSL
   triplets without hsl(), as the preset wraps them; the hex each one came from is beside it.

   The app links this file after its own CSS, and the package's theme.css defines the same names
   as neutral defaults. `:root:root` and `:root:root.dark` outrank theme.css's `:root` and `.dark`
   whatever order the two load in (Vite injects its CSS after this link in development). A `.dark`
   island inside a light page (the editor's always-dark screens) gets the dark values too. */

/* IBM Plex Sans (SIL Open Font License 1.1, fonts/OFL.txt), the files unmodified from
   @fontsource/ibm-plex-sans 5.3.0: Latin and Latin Extended (ő, ű), the weights the apps use.
   The URLs resolve against this file, so they work from the app origin and from the editor. */
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-400-normal.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-500-normal.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-600-normal.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-700-normal.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+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-ext-400-normal.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;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-ext-500-normal.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;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-ext-600-normal.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;
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/ibm-plex-sans-latin-ext-700-normal.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;
}

:root:root {
  --background: 48 17.2% 94.3%; /* #f3f2ee, page (warm paper) */
  --foreground: 221.5 26.5% 9.6%; /* #12161f, ink */
  --card: 60 33.3% 98.8%; /* #fdfdfb, cards and fields */
  --card-foreground: 221.5 26.5% 9.6%; /* #12161f */
  --primary: 221.5 26.5% 9.6%; /* #12161f, ink: the primary button */
  --primary-foreground: 60 33.3% 98.8%; /* #fdfdfb */
  --secondary: 42.9 15.6% 91.2%; /* #eceae5, secondary fill */
  --secondary-foreground: 221.5 26.5% 9.6%; /* #12161f */
  --muted: 42.9 15.6% 91.2%; /* #eceae5, muted fill */
  --muted-foreground: 216 9.8% 40%; /* #5c6470, secondary text */
  --accent: 42.9 15.6% 91.2%; /* #eceae5, hover and selected fill */
  --accent-foreground: 221.5 26.5% 9.6%; /* #12161f */
  --destructive: 0 58.7% 49.4%; /* #c83434, F.Cu red */
  --destructive-foreground: 0 0% 100%; /* #ffffff */
  --border: 42 12.8% 84.7%; /* #dddad3, hairlines */
  --input: 40 9.5% 75.3%; /* #c6c2ba, field and outline borders, a step stronger */
  --ring: 214.8 50.2% 53.5%; /* #4d7fc4, focus: B.Cu blue */
  --success: 154.8 90.9% 21.6%; /* #05693f, live green (the board's #067647 one step deeper: 4.8:1 on its tint over the page) */
  --warning: 28.5 76.9% 30.6%; /* #8a4b12, In2.Cu copper */
  --danger: 0 58.6% 39.8%; /* #a12a2a, F.Cu red, dark enough for text */
  --info: 216.6 58.9% 41%; /* #2b5ba6, B.Cu blue */
  --preview: 276.6 54.1% 42.7%; /* #7a32a8, F.Mask violet */
  --radius: 0.5rem; /* 8px cards; md 6px, sm 4px */
  --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

:root:root.dark,
:root:root .dark {
  --background: 240 27.8% 14.1%; /* #1a1a2e */
  --foreground: 240 22.2% 96.5%; /* #f4f4f8 */
  --card: 240 23.6% 17.5%; /* #222237 */
  --card-foreground: 240 22.2% 96.5%; /* #f4f4f8 */
  --primary: 240 22.2% 96.5%; /* #f4f4f8 */
  --primary-foreground: 240 27.8% 14.1%; /* #1a1a2e */
  --secondary: 240 15.9% 21%; /* #2d2d3e */
  --secondary-foreground: 240 22.2% 96.5%; /* #f4f4f8 */
  --muted: 240 15.9% 21%; /* #2d2d3e */
  --muted-foreground: 240 12.3% 68.2%; /* #a4a4b8 */
  --accent: 240 15.9% 21%; /* #2d2d3e */
  --accent-foreground: 240 22.2% 96.5%; /* #f4f4f8 */
  --destructive: 0 58.7% 49.4%; /* #c83434 */
  --destructive-foreground: 0 0% 100%; /* #ffffff */
  --border: 240 20.3% 25.1%; /* #33334d */
  --input: 240 17.8% 35.3%; /* #4a4a6a */
  --ring: 216.4 57.8% 63.7%; /* #6d97d8 */
  --success: 149.8 66% 51.6%; /* #32d583 */
  --warning: 30 82.2% 71.4%; /* #f2b67a */
  --danger: 0 77.3% 74.1%; /* #f08a8a */
  --info: 217.2 63.5% 73.1%; /* #8fb0e6 */
  --preview: 274.2 83.7% 83.1%; /* #d9b0f8 */
}
