/* Marca JCB Cloud sobre o GLPI 11.
 *
 * Aplicado pelo campo `custom_css_code` da ENTIDADE RAIZ — mecanismo nativo do
 * GLPI (Entity.php), injetado em toda página pela função Twig `custom_css()`,
 * inclusive na tela de login (sem sessão, o GLPI cai na entidade 0). Nenhum
 * arquivo do GLPI é modificado: trocar de versão não pede nada daqui de volta.
 *
 * Aplicar com `./scripts/marca-jcb.sh` — não editar pelo navegador, senão a
 * próxima execução do script desfaz a edição.
 *
 * ─── Por que o logo sai por variável ──────────────────────────────────────
 * O GLPI não desenha o logo num <img>: é um <span class="glpi-logo"> pintado
 * por `--glpi-logo-*`. Trocar as variáveis troca a marca nos três lugares de
 * uma vez — login, cabeçalho e menu recolhido — e continua valendo quando o
 * GLPI mudar o HTML dessas telas.
 *
 * O SVG vai embutido em data: URI de propósito: não depende de arquivo servido
 * por caminho nenhum, então não quebra se o GLPI mudar de subcaminho nem exige
 * exceção de CSP.
 */

:root {
  /* ---- Marca ----
     `light`  = versão clara, para fundo escuro (cabeçalho, menu);
     `dark`   = versão escura, para fundo claro (login no tema claro);
     `reduced`= só o símbolo, para o menu recolhido em 40px. */
  --glpi-logo-light:         url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%20110%22%3E%3Csvg%20x=%224%22%20y=%2228%22%20width=%2256%22%20height=%2256%22%20viewBox=%220%200%2070%2070%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E%3Ctext%20x=%2268%22%20y=%2257%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2225%22%20font-weight=%22600%22%20letter-spacing=%22-.4%22%20fill=%22%23f4f6fa%22%3EJCB%20Cloud%3C/text%3E%3Ctext%20x=%2269%22%20y=%2277%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2212%22%20font-weight=%22500%22%20letter-spacing=%222.8%22%20fill=%22%239fb0c9%22%3ECHAMADOS%3C/text%3E%3C/svg%3E");
  --glpi-logo-dark:          url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%20110%22%3E%3Csvg%20x=%224%22%20y=%2228%22%20width=%2256%22%20height=%2256%22%20viewBox=%220%200%2070%2070%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E%3Ctext%20x=%2268%22%20y=%2257%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2225%22%20font-weight=%22600%22%20letter-spacing=%22-.4%22%20fill=%22%230f172a%22%3EJCB%20Cloud%3C/text%3E%3Ctext%20x=%2269%22%20y=%2277%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2212%22%20font-weight=%22500%22%20letter-spacing=%222.8%22%20fill=%22%2355637a%22%3ECHAMADOS%3C/text%3E%3C/svg%3E");
  --glpi-logo-light-reduced: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-1%20-1%2072%2072%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E");
  --glpi-logo-dark-reduced:  url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-1%20-1%2072%2072%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E");
  --glpi-logo-light-login:   url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%20110%22%3E%3Csvg%20x=%2272%22%20y=%222%22%20width=%2256%22%20height=%2256%22%20viewBox=%220%200%2070%2070%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E%3Ctext%20x=%22100%22%20y=%2282%22%20text-anchor=%22middle%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2224%22%20font-weight=%22600%22%20letter-spacing=%22-.4%22%20fill=%22%23f4f6fa%22%3EJCB%20Cloud%3C/text%3E%3Ctext%20x=%22100%22%20y=%22100%22%20text-anchor=%22middle%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2211.5%22%20font-weight=%22500%22%20letter-spacing=%223%22%20fill=%22%239fb0c9%22%3ECHAMADOS%3C/text%3E%3C/svg%3E");
  --glpi-logo-dark-login:    url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20200%20110%22%3E%3Csvg%20x=%2272%22%20y=%222%22%20width=%2256%22%20height=%2256%22%20viewBox=%220%200%2070%2070%22%3E%3Cdefs%3E%3ClinearGradient%20id=%22g%22%20x1=%220%25%22%20y1=%220%25%22%20x2=%22100%25%22%20y2=%22100%25%22%3E%3Cstop%20offset=%220%25%22%20stop-color=%22%2300FFCC%22/%3E%3Cstop%20offset=%2250%25%22%20stop-color=%22%2300E5D9%22/%3E%3Cstop%20offset=%22100%25%22%20stop-color=%22%2300A3FF%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg%20fill=%22url(%23g)%22%3E%3Cpath%20d=%22M23%202h21c2.5%200%204%202%203%204.5L37%2029c-1%202.5-3.5%204-6%204H10c-2.5%200-4-2-3-4.5L17%206c1-2.5%203.5-4%206-4Z%22/%3E%3Cpath%20d=%22M52%2015h13c1.5%200%202.5%201%202%202.5L62%2029c-.5%201.5-2%202.5-3.5%202.5H45c-1.5%200-2.5-1-2-2.5L48%2017.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M12%2037h13c1.5%200%202.5%201%202%202.5L22%2051c-.5%201.5-2%202.5-3.5%202.5H5c-1.5%200-2.5-1-2-2.5L8%2039.5c.5-1.5%202-2.5%204-2.5Z%22/%3E%3Cpath%20d=%22M33%2035h25c2.5%200%204%202%203%204.5L51%2062c-1%202.5-3.5%204-6%204H25c-7.5%200-9-1.5-8-4l10-22.5c1-2.5%203.5-4%206-4Z%22/%3E%3C/g%3E%3C/svg%3E%3Ctext%20x=%22100%22%20y=%2282%22%20text-anchor=%22middle%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2224%22%20font-weight=%22600%22%20letter-spacing=%22-.4%22%20fill=%22%230f172a%22%3EJCB%20Cloud%3C/text%3E%3Ctext%20x=%22100%22%20y=%22100%22%20text-anchor=%22middle%22%20font-family=%22'IBM%20Plex%20Sans','Segoe%20UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif%22%20font-size=%2211.5%22%20font-weight=%22500%22%20letter-spacing=%223%22%20fill=%22%2355637a%22%3ECHAMADOS%3C/text%3E%3C/svg%3E");

  /* ---- Cor primária ----
     Ciano da JCB, mas o passo 700 (#0e7490), não o 500 da identidade. O 500
     tem 2,4:1 com texto branco: bonito num logo, ilegível num botão. O 700 dá
     5,4:1 e mantém a família da marca. O 500 fica onde é traço fino e não
     carrega texto: foco, seleção, sublinhado. */
  --tblr-primary: #0e7490;
  --tblr-primary-fg: #ffffff;
  --tblr-link-color-rgb: 14, 116, 144;
  --glpi-form-header-fg: #0e7490;
  --glpi-badge-fg: #0e7490;

  /* ---- Menu lateral ----
     O azul-ardósia da linha JCB (mesmo `ink` dos outros painéis). Contraste de
     16,5:1 com o texto do menu. */
  --glpi-mainmenu-bg: #0f172a;
  --glpi-mainmenu-fg: #f4f6fa;
  --glpi-mainmenu-fg-muted: #9fb0c9;
  --glpi-mainmenu-active-bg: #1e3a4a;
  --tblr-navbar-color: #0f172a;
}

/* O logo do cabeçalho vinha de PNG de 100px, com tamanho natural. SVG não tem
   tamanho natural, então sem `background-size` ele estica para a caixa e
   distorce. */
.page .glpi-logo {
  background-size: contain !important;
  background-position: left center !important;
}

/* Realce de foco e seleção no ciano da marca: é traço, não fundo de texto, e
   é onde o 500 pode aparecer sem custo de legibilidade. */
:focus-visible {
  outline-color: #06b6d4;
}

::selection {
  background: rgba(6, 182, 212, .28);
}

/* Barra superior da marca. Dois pixels que amarram o cabeçalho ao resto da
   linha JCB, sem mexer em layout nenhum. */
body.page .navbar-expand-md:first-of-type,
body .page-wrapper > .navbar:first-of-type {
  border-top: 2px solid #06b6d4;
}

/* ─── Login JCB ───

   Card único sobre o fluxo nativo do GLPI. Não usa grade, elementos absolutos
   nem textos gerados, para permanecer estável entre resoluções e atualizações. */
body.welcome-anonymous {
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 10%, rgba(6, 182, 212, .14), transparent 26rem),
    radial-gradient(circle at 90% 90%, rgba(14, 116, 144, .10), transparent 28rem),
    #f4f7fb;
}

.page-anonymous {
  position: relative;
  min-height: 100vh;
}

.page-anonymous::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .32;
  background-image: radial-gradient(rgba(15, 23, 42, .16) .7px, transparent .7px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, #000, transparent 78%);
}

.page-anonymous > .flex-fill {
  margin-top: 0 !important;
  padding: 2rem 1rem !important;
}

.page-anonymous .container-tight {
  position: relative;
  width: 100%;
  max-width: 30rem !important;
  padding: 0 !important;
}

.page-anonymous .container-tight > .text-center {
  position: static;
  width: 100%;
  margin: 0 auto 1.25rem;
  text-align: center !important;
}

.page-anonymous .glpi-logo {
  width: 12rem !important;
  height: 6.6rem !important;
  margin: 0 !important;
  background-image: var(--glpi-logo-dark-login) !important;
  background-size: contain !important;
  background-position: center !important;
}

.page-anonymous .main-content-card {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, .08);
  border-top: 4px solid #0891b2;
  border-radius: 1rem;
  background: #fff;
  box-shadow:
    0 24px 60px rgba(15, 23, 42, .13),
    0 2px 8px rgba(15, 23, 42, .06);
}

.page-anonymous .main-content-card > .card-header {
  display: none;
}

.page-anonymous .main-content-card > .card-body {
  display: block;
  padding: 2rem 2.25rem 2.1rem;
  background: #fff;
}

.page-anonymous .main-content-card form,
.page-anonymous .main-content-card form > .row,
.page-anonymous .main-content-card form .col-md-5 {
  width: 100%;
}

.page-anonymous .main-content-card form .col-md-5 {
  flex: 0 0 100%;
  max-width: 100%;
}

.page-anonymous .rich_text_container {
  margin-bottom: .7rem;
  text-align: left !important;
}

.page-anonymous .rich_text_container p {
  margin: 0;
  color: #0e7490 !important;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.page-anonymous .main-content-card form .card-header {
  justify-content: flex-start;
  min-height: auto;
  margin-bottom: 1.5rem !important;
  padding: 0 0 1.25rem;
  border: 0;
  border-bottom: 1px solid #e7edf3;
  background: transparent;
}

.page-anonymous .main-content-card form[action*="/front/login.php"] h2 {
  margin: 0 !important;
  color: #0f172a;
  font-size: 1.45rem;
  font-weight: 650;
  letter-spacing: -.025em;
}

.page-anonymous .main-content-card form[action*="/front/login.php"] h2::after {
  content: none;
}

/* Recuperação de senha usa container nativo menor (40rem) e não comporta
   as duas colunas. Mantém a mesma identidade numa composição compacta. */
.page-anonymous .main-content-card:has(form[action*="lostpassword"]) {
  display: block;
  min-height: 0;
  padding-top: 0;
  background: #fff;
}

.page-anonymous .main-content-card:has(form[action*="lostpassword"]) > .card-header {
  display: none;
}

.page-anonymous .main-content-card:has(form[action*="lostpassword"]) > .card-body {
  padding: 2.5rem clamp(1.5rem, 6vw, 4rem);
}

.page-anonymous .container-tight:has(form[action*="lostpassword"]) .glpi-logo {
  width: 12rem !important;
  background-position: center !important;
}

.page-anonymous form[action*="lostpassword"] h2 {
  color: #0f172a;
  font-size: 1.55rem;
  font-weight: 650;
  letter-spacing: -.025em;
}

.page-anonymous form[action*="lostpassword"] .form-footer .btn {
  width: 100%;
}

.page-anonymous .form-label,
.page-anonymous .form-check-label {
  color: #334155;
  font-size: .82rem;
  font-weight: 600;
}

.page-anonymous .form-control,
.page-anonymous .form-select,
.page-anonymous .select2-selection {
  min-height: 3rem;
  border: 1px solid #d6e0e8 !important;
  border-radius: .7rem !important;
  background-color: #f8fafc !important;
  box-shadow: none !important;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.page-anonymous .form-control:hover,
.page-anonymous .form-select:hover,
.page-anonymous .select2-selection:hover {
  border-color: #a8bdca !important;
  background-color: #fff !important;
}

.page-anonymous .form-control:focus,
.page-anonymous .form-select:focus,
.page-anonymous .select2-container--focus .select2-selection {
  border-color: #0891b2 !important;
  background-color: #fff !important;
  box-shadow: 0 0 0 3px rgba(6, 182, 212, .14) !important;
}

.page-anonymous .btn-primary {
  min-height: 3rem;
  margin-top: .5rem;
  border: 0;
  border-radius: .7rem;
  background: linear-gradient(135deg, #0e7490, #075f78) !important;
  box-shadow: 0 8px 18px rgba(14, 116, 144, .2);
  font-weight: 650;
  letter-spacing: .01em;
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

.page-anonymous .btn-primary:hover {
  filter: brightness(1.07);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(14, 116, 144, .28);
}

.page-anonymous .forgot_password a {
  color: #0e7490;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}

.page-anonymous .forgot_password a:hover {
  text-decoration: underline;
}

.page-anonymous .container-tight > .text-muted.mt-3 {
  margin-top: 1rem !important;
  color: #64748b !important;
}

@media (max-width: 767.98px) {
  .page-anonymous > .flex-fill {
    justify-content: flex-start !important;
    padding: 1rem !important;
  }

  .page-anonymous .glpi-logo {
    width: 10.5rem !important;
    height: 5.8rem !important;
    background-position: center !important;
  }

  .page-anonymous .main-content-card {
    display: block;
    min-height: 0;
    border-radius: 1rem;
    background: #fff;
  }

  .page-anonymous .main-content-card > .card-header {
    display: none;
  }

  .page-anonymous .main-content-card > .card-body {
    padding: 1.6rem 1.25rem 1.5rem;
  }
}

[data-glpi-theme-dark="1"] body.welcome-anonymous,
body.welcome-anonymous[data-glpi-theme-dark="1"] {
  background: #070d18;
}

[data-glpi-theme-dark="1"] .page-anonymous .main-content-card > .card-body {
  background: #111c2b;
}

[data-glpi-theme-dark="1"] .page-anonymous .main-content-card form h2,
[data-glpi-theme-dark="1"] .page-anonymous .form-label,
[data-glpi-theme-dark="1"] .page-anonymous .form-check-label {
  color: #e8eef6;
}

[data-glpi-theme-dark="1"] .page-anonymous .main-content-card form .card-header {
  border-bottom-color: #26364a;
}

[data-glpi-theme-dark="1"] .page-anonymous .form-control,
[data-glpi-theme-dark="1"] .page-anonymous .form-select,
[data-glpi-theme-dark="1"] .page-anonymous .select2-selection {
  border-color: #304156 !important;
  background-color: #0c1624 !important;
}

/* Rodapé de direitos autorais.
   `Html::getCopyrightMessage()` monta a linha "GLPI Copyright (C) 2015-2026
   Teclib' and contributors" em PHP e o template imprime com |raw — não há
   configuração, hook nem tradução que troque o texto. Só que a âncora carrega
   a classe `copyright`, que é estável: `font-size: 0` colapsa o texto original
   sem removê-lo do documento (a atribuição do projeto continua no HTML e o
   link segue funcionando, que é o que a licença GPL pede) e o `::after` imprime
   a razão social da JCB no lugar. Vale na tela de login e no rodapé interno,
   que usam a mesma classe. */
a.copyright {
  font-size: 0 !important;
  text-decoration: none !important;
}

a.copyright::after {
  content: "JCB Cloud Serviços em Tecnologia · CNPJ 58.428.826/0001-36";
  font-size: 0.75rem;
  color: var(--tblr-secondary, #6c757d);
}

/* Banner do portal do cliente (/Helpdesk).
   `--glpi-helpdesk-header` é derivada do menu por
   `hsl(from var(--glpi-mainmenu-bg) h s 80)`: como o menu JCB é o azul-ardósia
   #0f172a, o banner saía num lilás acinzentado que não é da marca. Fixar a
   variável resolve sem tocar no SCSS — o GLPI recompila o CSS dele e esta
   linha continua valendo.

   Fica CLARO de propósito: o título e o campo de busca do banner são escritos
   em tom escuro pelo tema, e escurecer o fundo tornaria os dois ilegíveis. */
:root {
  --glpi-helpdesk-header: #cfeaf1;
}

/* No tema escuro o texto do banner é claro, então o fundo é que precisa ser
   escuro — o mesmo ciano, com a luminosidade invertida. */
[data-glpi-theme-dark="1"] {
  --glpi-helpdesk-header: #0d3b47;
}
