img[src="assets/logo.svg"] {
  content: url('/assets/vtclog-logo-blue.4cf45aa76faac1e0.svg');
}
.dark img[src="assets/logo.svg"],
.high-contrast-dark img[src="assets/logo.svg"] {
  content: url('/assets/vtclog-logo-white.f384b6d916b6e41e.svg');
}

@font-face {
  font-family: 'VTCLOG Roboto';
  src: url('/assets/vtclog-roboto.d7598e12c5dbef09.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

/* The upstream chat already consumes this shared font role. Bridge the shell
   to that role as well, leaving monospace/code and explicit user themes alone. */
html:root {
  --theme-font-family: 'VTCLOG Roboto', Roboto, Lato, system-ui, sans-serif;
}
body {
  font-family: var(--theme-font-family);
}

/* Supported endpoint icons and Markdown footer carry the original brand assets
   into messages, model selection and every started conversation. The source
   vectors retain their original proportions and colors. */
img[src*="/assets/vtclog-symbol."] {
  object-fit: contain !important;
}
html img[src*="/assets/vtclog-logo-blue."] {
  width: 112px;
  height: auto;
  max-height: 22px;
  object-fit: contain;
}
.dark img[src*="/assets/vtclog-symbol."],
.high-contrast-dark img[src*="/assets/vtclog-symbol."] {
  content: url('/assets/vtclog-symbol-sky.939284566583b40c.svg');
}
.dark img[src*="/assets/vtclog-logo-blue."],
.high-contrast-dark img[src*="/assets/vtclog-logo-blue."] {
  content: url('/assets/vtclog-logo-white.f384b6d916b6e41e.svg');
}

/* Official identity colors use the release's semantic roles. High-contrast
   preferences and explicit contrast themes keep their upstream palette. */
@media (forced-colors: none) and (prefers-contrast: no-preference) {
  html:root:not(.dark):not(.high-contrast):not(.high-contrast-light):not(.high-contrast-dark),
  html.light:not(.high-contrast):not(.high-contrast-light):not(.high-contrast-dark) {
    --presentation: 248 250 253;
    --text-primary: 26 54 96;
    --text-secondary: 61 85 117;
    --text-secondary-alt: 76 99 129;
    --text-tertiary: 76 99 129;
    --text-muted: 76 99 129;
    --header-primary: 248 250 253;
    --header-hover: 228 237 248;
    --header-button-hover: 228 237 248;
    --surface-primary: 248 250 253;
    --surface-primary-alt: 239 244 251;
    --surface-primary-contrast: 228 237 248;
    --surface-secondary: 239 244 251;
    --surface-secondary-alt: 228 237 248;
    --surface-tertiary: 228 237 248;
    --surface-tertiary-alt: 255 255 255;
    --surface-dialog: 255 255 255;
    --surface-chat: 239 244 251;
    --surface-active: 214 229 247;
    --surface-active-alt: 228 237 248;
    --surface-hover: 228 237 248;
    --surface-hover-alt: 214 229 247;
    --surface-composer-hover: 228 237 248;
    --border-light: 205 219 237;
    --border-medium: 176 197 223;
    --border-medium-alt: 176 197 223;
    --border-heavy: 112 142 181;
    --border-xheavy: 80 112 155;
    --surface-submit: 32 77 139;
    --surface-submit-hover: 26 54 96;
    --accent-primary: 32 77 139;
    --accent-primary-hover: 26 54 96;
    --link: 32 77 139;
    --link-hover: 26 54 96;
    --ring-primary: 32 77 139;
  }

  html.dark:not(.high-contrast):not(.high-contrast-light):not(.high-contrast-dark) {
    --presentation: 16 31 53;
    --text-primary: 248 250 253;
    --text-secondary: 211 225 242;
    --text-secondary-alt: 182 203 230;
    --text-tertiary: 182 203 230;
    --text-muted: 182 203 230;
    --header-primary: 16 31 53;
    --header-hover: 32 62 101;
    --header-button-hover: 32 62 101;
    --surface-primary: 16 31 53;
    --surface-primary-alt: 20 39 66;
    --surface-primary-contrast: 20 39 66;
    --surface-secondary: 20 39 66;
    --surface-secondary-alt: 26 54 96;
    --surface-tertiary: 26 54 96;
    --surface-tertiary-alt: 26 54 96;
    --surface-dialog: 20 39 66;
    --surface-chat: 26 54 96;
    --surface-active: 40 79 124;
    --surface-active-alt: 32 62 101;
    --surface-hover: 32 62 101;
    --surface-hover-alt: 40 79 124;
    --surface-composer-hover: 32 62 101;
    --border-light: 45 72 111;
    --border-medium: 70 103 148;
    --border-medium-alt: 70 103 148;
    --border-heavy: 100 140 190;
    --border-xheavy: 122 205 242;
    --surface-submit: 32 77 139;
    --surface-submit-hover: 26 54 96;
    --accent-primary: 122 205 242;
    --accent-primary-hover: 248 250 253;
    --link: 122 205 242;
    --link-hover: 248 250 253;
    --ring-primary: 122 205 242;
  }
}
