/* pm/tokens.css — the four-panel workspace token layer.
 *
 * The :root / [data-pm-theme="light"] blocks, the resets and the pmblink keyframe are copied
 * VERBATIM from the design prototype. Do not "improve" a value here: the acceptance bar for this
 * surface is a mechanical diff against that prototype, so an edit to a token is a defect.
 *
 * The faces are VENDORED (D62: the workspace is a local companion app that must render correctly
 * with no network at all). The prototype linked Google Fonts; a CDN font is network egress and is
 * forbidden here, so the same three IBM Plex Mono weights and the Space Grotesk variable face are
 * declared against /vendor/. font-display:block matches the prototype's swap-free measurement —
 * xterm measures its cell from whatever face is resolved at construction, and a swap mid-load
 * leaves a terminal with a stale grid.
 */

@font-face {
  font-family: "Space Grotesk";
  src: url("/vendor/space-grotesk-var.woff2") format("woff2-variations");
  font-weight: 300 700;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/vendor/ibm-plex-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/vendor/ibm-plex-mono-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/vendor/ibm-plex-mono-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: block;
}

:root{
  --background:oklch(0.148 0.004 228.8);--foreground:oklch(0.987 0.002 197.1);
  --card:oklch(0.218 0.008 223.9);--secondary:oklch(0.274 0.006 286.033);
  --muted:oklch(0.275 0.011 216.9);--muted-foreground:oklch(0.723 0.014 214.4);
  --accent:oklch(0.275 0.011 216.9);--border:oklch(1 0 0 / 10%);--input:oklch(1 0 0 / 15%);
  --ring:oklch(0.56 0.021 213.5);--sidebar:oklch(0.218 0.008 223.9);
  --brand:oklch(0.623 0.214 259.815);--brand-wash:color-mix(in oklab, oklch(0.623 0.214 259.815) 12%, transparent);
  --success:oklch(0.76 0.17 152);--warning:oklch(0.82 0.15 82);--info:oklch(0.79 0.11 195);
  --purple:oklch(0.72 0.15 300);--destructive:oklch(0.704 0.191 22.216);
  --term-bg:oklch(0.148 0.004 228.8);
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
}
[data-pm-theme="light"]{
  --background:oklch(1 0 0);--foreground:oklch(0.148 0.004 228.8);
  --card:oklch(1 0 0);--secondary:oklch(0.967 0.001 286.375);
  --muted:oklch(0.963 0.002 197.1);--muted-foreground:oklch(0.56 0.021 213.5);
  --accent:oklch(0.963 0.002 197.1);--border:oklch(0.925 0.005 214.3);--input:oklch(0.925 0.005 214.3);
  --ring:oklch(0.723 0.014 214.4);--sidebar:oklch(0.987 0.002 197.1);
  --brand:oklch(0.488 0.243 264.376);--brand-wash:color-mix(in oklab, oklch(0.488 0.243 264.376) 7%, transparent);
  --success:oklch(0.52 0.14 152);--warning:oklch(0.55 0.12 72);--info:oklch(0.52 0.09 195);
  --purple:oklch(0.5 0.2 300);--destructive:oklch(0.577 0.245 27.325);
  --term-bg:oklch(0.148 0.004 228.8);
}
@keyframes pmblink{0%,49%{opacity:1}50%,100%{opacity:0}}
*{box-sizing:border-box}
body{margin:0;background:oklch(0.148 0.004 228.8);-webkit-font-smoothing:antialiased}
a{color:oklch(0.623 0.214 259.815)}a:hover{color:oklch(0.72 0.19 259.8)}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left;padding:0}
input,textarea{font:inherit;color:inherit;background:none;border:0;outline:none;padding:0;resize:none}
