/* Montserrat auto-hébergée : pas d'appel à Google Fonts (RGPD). */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/montserrat-v26-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;
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("/assets/fonts/montserrat-v26-latin-regular.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;
}

:root {
  --omnia-accent: #de047b;
  --omnia-accent-hover: #c50369;
  --omnia-gradient: linear-gradient(135deg, #ba217d, #e30289);
  --omnia-font: "Montserrat", ui-sans-serif, system-ui, sans-serif;
  --omnia-accent-ring: rgba(222, 4, 123, 0.2);
}

html,
body {
  font-family: var(--omnia-font) !important;
}

/* Plusieurs sélecteurs par cible (testid, classe Tailwind, sous-chaîne de
   classe) : si l'upstream renomme l'un, les autres tiennent. */
button[data-testid="send-button"],
button.bg-green-500,
button[class*="submit"] {
  background-color: var(--omnia-accent) !important;
  color: #fff !important;
  transition: background-color 0.15s ease;
}

button[data-testid="send-button"]:hover,
button.bg-green-500:hover,
button[class*="submit"]:hover {
  background-color: var(--omnia-accent-hover) !important;
}

[role="switch"][aria-checked="true"] {
  background-color: var(--omnia-accent) !important;
}

button[data-testid="openid"],
a[data-testid="openid"],
button[class*="social"],
a[class*="social"] {
  background: var(--omnia-gradient) !important;
  color: #fff !important;
  border: none !important;
  font-weight: 600;
  transition: filter 0.15s ease;
}

button[data-testid="openid"]:hover,
a[data-testid="openid"]:hover,
button[class*="social"]:hover,
a[class*="social"]:hover {
  filter: brightness(1.08);
}

input:focus {
  border-color: var(--omnia-accent) !important;
  box-shadow: 0 0 0 2px var(--omnia-accent-ring) !important;
  outline: none !important;
}

.prose a,
.markdown a,
[class*="message"] a {
  color: var(--omnia-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.prose a:hover,
.markdown a:hover,
[class*="message"] a:hover {
  color: var(--omnia-accent-hover);
}

::selection {
  background-color: var(--omnia-accent-ring);
  color: inherit;
}

/* Logo OmniaChat au-dessus de l'historique : le <nav> est le frère adjacent du
   div qui porte close-sidebar-button, seul point d'accroche stable. */
div:has(> button#close-sidebar-button) + nav {
  display: flex !important;
  flex-direction: column !important;
}

div:has(> button#close-sidebar-button) + nav::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 80%;
  height: 80px;
  margin: 12px auto;
  background: url("/assets/omniachat.svg") no-repeat center / contain;
}

/* Mode sombre : le gris du mot « Omnia » disparaît sur fond noir. `html.dark`
   suit le sélecteur de thème de l'app, `prefers-color-scheme` suivrait l'OS.
   Les deux <img> sont ceux de la page de connexion et de l'endpoint Omnia. */
html.dark div:has(> button#close-sidebar-button) + nav::before {
  background-image: url("/assets/omniachat-dark.svg");
}

html.dark img[src$="assets/logo.svg"] {
  content: url("/assets/logo-dark.svg");
}

html.dark img[src="/assets/icon.svg"] {
  content: url("/assets/icon-dark.svg");
}

div:has(> button#close-sidebar-button) + nav > div {
  flex: 1;
  min-height: 0;
}

div[data-testid="convo-icon"] {
  display: none !important;
}
