/* Fonts are served from /static/new_ui/fonts (no request to Google). Data font: JetBrains Mono (variable, all weights).
   Interface font: Archivo. Order matters little: unicode-range makes the browser fetch only the subsets a page uses. */
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap; src: url("../fonts/jetbrainsmono-var-latin.b636a65da4f0.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: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap; src: url("../fonts/jetbrainsmono-var-latin-ext.bd4781a31b42.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100 800; font-display: swap; src: url("../fonts/jetbrainsmono-var-cyrillic.3576e677eb07.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/archivo-400-latin.9246d621d7f0.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: 'Archivo'; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/archivo-400-latin-ext.77c73f42ed88.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/archivo-500-latin.562c73adab45.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: 'Archivo'; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/archivo-500-latin-ext.687d6bfb93fc.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/archivo-600-latin.7ab89eedd1b0.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: 'Archivo'; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/archivo-600-latin-ext.e6bddacfff06.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/archivo-700-latin.8574a5d7eebc.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: 'Archivo'; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/archivo-700-latin-ext.1b7b7ecf2082.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background: var(--bg); color: var(--text);
  font-family: 'Archivo', system-ui, sans-serif;
  /* On pages that also load the legacy Bootstrap/custom.css stack (via
     {{ block.super }}, for jQuery-dependent features this reskin hasn't
     replaced), Bootstrap's `body { line-height: 1.5 }` otherwise survives
     untouched — this file's own `body` rule loads after it but never
     touched that property, so nothing overrode it. Every new_ui component
     that doesn't declare its own line-height (most of them, since the
     mockup this was ported from never had a competing stylesheet to guard
     against) inherited that 1.5, rendering noticeably taller/bulkier than
     the reference despite identical padding/font-size. */
  line-height: normal;
}
.mono { font-family: 'JetBrains Mono', monospace; }
.dim { color: var(--text-5); }
button { font-family: inherit; cursor: pointer; }
a { color: var(--accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- themed scrollbars ---------- */
* {
  scrollbar-width: thin; /* Firefox */
  scrollbar-color: var(--accent) transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background-color: var(--accent);
  border-radius: 8px;
}
*::-webkit-scrollbar-thumb:hover {
  background-color: var(--accent-tint);
}
*::-webkit-scrollbar-corner {
  background: transparent;
}

/* ---------- brand logo ----------
   The mark/wordmark/lockup are inlined SVG (templates/new_ui/logo/) so their
   fills can read the --logo-* tokens in variables.css. Sizing is by height
   only: each include carries a viewBox cropped to the artwork, so width:auto
   lands on the true aspect ratio and no call site has to know it. */
.ld-logo { display: block; height: 1em; width: auto; flex-shrink: 0; overflow: visible; }
