@charset "UTF-8";
/* ============================================================
   VULCI — branding GLPI 11  →  files/_themes/vulci.scss
   Carregado em TODA página anônima (custom theme, incondicional).
   Spec: docs/superpowers/specs/2026-05-16-glpi-login-vulci-branding-design.md
   ============================================================ */
/* ---- Fontes vendorizadas (servidas em /pics/vulci/fonts) ---- */
@font-face {
  font-family: "Josefin Sans";
  font-weight: 200;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/josefin-sans-200.woff2") format("woff2");
}
@font-face {
  font-family: "Josefin Sans";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/josefin-sans-300.woff2") format("woff2");
}
@font-face {
  font-family: "Josefin Sans";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/josefin-sans-400.woff2") format("woff2");
}
@font-face {
  font-family: "DM Mono";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/dm-mono-300.woff2") format("woff2");
}
@font-face {
  font-family: "DM Mono";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/dm-mono-400.woff2") format("woff2");
}
@font-face {
  font-family: "DM Mono";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("/pics/vulci/fonts/dm-mono-500.woff2") format("woff2");
}
@font-face {
  font-family: "Instrument Serif";
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url("/pics/vulci/fonts/instrument-serif-italic.woff2") format("woff2");
}
/* ---- Paleta p/ app logado (ativada só se tema Vulci selecionado) ---- */
:root[data-glpi-theme=vulci] {
  --glpi-palette-color-1:#16120E;
  --glpi-palette-color-2:#F7F5F0;
  --glpi-palette-color-3:#B49450;
  --glpi-palette-color-4:#C8AA6A;
  --tblr-primary:#B49450;
  --tblr-primary-rgb:180,148,80;
  --tblr-primary-fg:#16120E;
  --tblr-link-color:#9A7F44;
  --tblr-link-color-rgb:154,127,68;
  --tblr-body-bg:#F7F5F0;
  --tblr-bg-surface:#FFFFFF;
  --tblr-body-color:#16120E;
  --tblr-muted:rgba(22,18,14,.55);
  --tblr-border-color:rgba(22,18,14,.14);
  --tblr-dark:#3D2E1E;
  --tblr-light:#EDE0CC;
  --tblr-badge-bg:rgba(180,148,80,.12);
  --tblr-badge-color:#9A7F44;
  --tblr-success:#2D8A56;
  --tblr-warning:#B49450;
  --tblr-danger:#C0392B;
  --glpi-mainmenu-bg:#FFFFFF;
  --glpi-mainmenu-fg:rgba(22,18,14,.66);
  --glpi-mainmenu-fg-muted:rgba(22,18,14,.45);
  --glpi-mainmenu-active-bg:rgba(180,148,80,.07);
  --glpi-search-bg:#F7F5F0;
  --glpi-search-fg:#16120E;
  --glpi-search-border-color:rgba(22,18,14,.14);
  --glpi-tabs-bg:#F7F5F0;
  --glpi-tabs-fg:#9A7F44;
  --glpi-tabs-border-color:rgba(22,18,14,.14);
  --glpi-tabs-active-bg:#FFFFFF;
  --glpi-tabs-active-fg:#16120E;
  --glpi-tabs-active-border-color:#B49450;
  --glpi-hover-bg:rgba(180,148,80,.06);
  --glpi-form-header-fg:#9A7F44;
  --glpi-form-header-border-color:#B49450;
  --glpi-badge-bg:rgba(180,148,80,.12);
  --glpi-badge-fg:#9A7F44;
  --glpi-fg-secondary:#16120E;
  --glpi-helpdesk-header:#16120E;
  --glpi-helpdesk-tiles-section-bg:#F7F5F0;
  --glpi-helpdesk-tabs-section-bg:#FFFFFF;
  --glpi-logo:url("/pics/vulci/vulci-mark.svg");
  --glpi-logo-reduced:url("/pics/vulci/vulci-mark.svg");
}

/* _vulci-chrome.scss — estrutural comum aos temas Vulci (composto pelo build).
   NÃO contém valores de cor (vêm de vulci-tokens.tsv via :root). */
:root[data-glpi-theme^=vulci] {
  --tblr-border-radius: 0;
  --tblr-font-sans-serif: "Josefin Sans", system-ui, sans-serif;
}

:root[data-glpi-theme^=vulci] body,
:root[data-glpi-theme^=vulci] .form-control,
:root[data-glpi-theme^=vulci] table {
  font-family: "DM Mono", ui-monospace, SFMono-Regular, monospace;
}

:root[data-glpi-theme^=vulci] h1,
:root[data-glpi-theme^=vulci] h2,
:root[data-glpi-theme^=vulci] h3,
:root[data-glpi-theme^=vulci] .navbar-brand,
:root[data-glpi-theme^=vulci] .h1,
:root[data-glpi-theme^=vulci] .h2 {
  font-family: "Josefin Sans", system-ui, sans-serif;
  font-weight: 300;
  letter-spacing: 0.04em;
}

:root[data-glpi-theme^=vulci] .card,
:root[data-glpi-theme^=vulci] .btn,
:root[data-glpi-theme^=vulci] .form-control,
:root[data-glpi-theme^=vulci] .badge,
:root[data-glpi-theme^=vulci] .dropdown-menu,
:root[data-glpi-theme^=vulci] .nav-tabs .nav-link {
  border-radius: 0 !important;
}

:root[data-glpi-theme^=vulci] .card {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
}

/* barra dourada no item de menu ativo (sidebar/nav) */
:root[data-glpi-theme^=vulci] .navbar-nav .nav-item.active > .nav-link,
:root[data-glpi-theme^=vulci] .navbar-nav .nav-link.active {
  box-shadow: inset 3px 0 0 0 #B49450;
}

/* logo do chrome = arco (vulci-mark): GLPI não define background-size no logo
   expandido (.page .glpi-logo 100x55), então o SVG 16x22 sairia minúsculo.
   Escala o arco para a altura do slot, alinhado à esquerda. */
:root[data-glpi-theme^=vulci] .page .glpi-logo {
  background-size: contain;
  background-position: left center;
}

/* ---- Branding compartilhado: TODAS as telas anônimas ---- */
body.welcome-anonymous {
  --v-gold:#B49450;
  --v-gold-light:#C8AA6A;
  --v-gold-muted:#9A7F44;
  --v-earth:#16120E;
  --v-earth-soft:#3D2E1E;
  --v-limestone:#EDE0CC;
  --v-warm:#F7F5F0;
  --v-border:rgba(22,18,14,.14);
  background: var(--v-warm);
  font-family: "DM Mono", ui-monospace, SFMono-Regular, monospace;
}

body.welcome-anonymous .glpi-logo {
  background: url("/pics/vulci/vulci-logo-dark.svg") center/contain no-repeat;
  width: 188px;
  height: 60px;
}

body.welcome-anonymous .main-content-card {
  border: 1px solid var(--v-border);
  border-radius: 0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  background: #fff;
}

body.welcome-anonymous h1,
body.welcome-anonymous h2 {
  font-family: "Josefin Sans", sans-serif;
  font-weight: 300;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v-earth);
}

body.welcome-anonymous .form-label {
  font-family: "DM Mono", ui-monospace, SFMono-Regular, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(22, 18, 14, 0.6);
}

body.welcome-anonymous .form-control {
  border-radius: 0;
  border: 1px solid rgba(22, 18, 14, 0.18);
  font-family: "DM Mono", ui-monospace, SFMono-Regular, monospace;
  background: #fff;
  color: var(--v-earth);
}

body.welcome-anonymous .form-control:focus {
  border-color: var(--v-gold);
  box-shadow: 0 0 0 1px var(--v-gold);
}

body.welcome-anonymous .btn-primary {
  border-radius: 0;
  background: var(--v-gold);
  border-color: var(--v-gold);
  color: #16120E;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

body.welcome-anonymous .btn-primary:hover,
body.welcome-anonymous .btn-primary:focus {
  background: var(--v-gold-light);
  border-color: var(--v-gold-light);
  color: #16120E;
}

body.welcome-anonymous .btn-outline-secondary {
  border-radius: 0;
}

body.welcome-anonymous a {
  color: var(--v-gold-muted);
}

body.welcome-anonymous a:hover {
  color: var(--v-gold);
}

body.welcome-anonymous .alert-danger,
body.welcome-anonymous .alert-important {
  background: rgba(192, 57, 43, 0.07) !important;
  border: 1px solid rgba(192, 57, 43, 0.3) !important;
  color: #C0392B !important;
  border-radius: 0 !important;
}

/* ---- Pórtico: SOMENTE a tela de login (body.vulci-login) ---- */
body.vulci-login {
  margin: 0 !important;
  padding: 0 !important;
}

body.vulci-login .page-anonymous,
body.vulci-login .page-anonymous > .flex-fill {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 100vh;
}

body.vulci-login .container-tight {
  max-width: none !important;
  width: 100%;
  padding: 0 !important;
  margin: 0 !important;
}

/* Cadeia DOM verificada no GLPI 11.0.6 (layout page_card_notlogged). Sensível a upgrade: se o GLPI inserir wrappers, revisar este seletor. */
body.vulci-login > .page-anonymous > .flex-fill > .container-tight > .text-center {
  display: none;
}

body.vulci-login .main-content-card {
  border: 0;
  box-shadow: none;
  background: transparent;
}

body.vulci-login .main-content-card > .card-header {
  display: none;
}

body.vulci-login .main-content-card > .card-body {
  padding: 0;
}

.vulci-portico {
  display: flex;
  min-height: 100vh;
  width: 100%;
  position: relative;
}

.vulci-portico__panel {
  flex: 0 0 53%;
  background: var(--v-earth);
  color: var(--v-limestone);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 5vw, 64px);
}

.vulci-portico__arch {
  position: absolute;
  right: -150px;
  top: 50%;
  transform: translateY(-50%);
  width: 560px;
  height: 680px;
  border: 1px solid rgba(180, 148, 90, 0.07);
  border-bottom: none;
  border-radius: 280px 280px 0 0;
  pointer-events: none;
}

.vulci-portico__arch::before {
  content: "";
  position: absolute;
  inset: 56px 56px 0;
  border: 1px solid rgba(180, 148, 90, 0.05);
  border-bottom: none;
  border-radius: 224px 224px 0 0;
}

.vulci-portico__arch::after {
  content: "";
  position: absolute;
  inset: 112px 112px 0;
  border: 1px solid rgba(180, 148, 90, 0.03);
  border-bottom: none;
  border-radius: 168px 168px 0 0;
}

.vulci-portico__seam {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(180, 148, 90, 0.18), transparent);
}

.vulci-portico__brand {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative;
  z-index: 1;
}

.vulci-portico__brand svg {
  display: block;
}

.vulci-portico__wm {
  font-family: "Josefin Sans", sans-serif;
  font-weight: 200;
  letter-spacing: 0.34em;
  font-size: clamp(26px, 3vw, 34px);
  color: var(--v-limestone);
}

.vulci-portico__phrase {
  font-family: "Instrument Serif", Georgia, serif;
  font-style: italic;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.55;
  color: var(--v-limestone);
  position: relative;
  z-index: 1;
}

.vulci-portico__rule {
  width: 38px;
  height: 1px;
  background: rgba(180, 148, 90, 0.3);
  margin-bottom: 18px;
}

.vulci-portico__bte {
  font-family: "DM Mono", ui-monospace, SFMono-Regular, monospace;
  font-size: 11px;
  letter-spacing: 0.42em;
  text-transform: uppercase;
  color: var(--v-gold-muted);
  position: relative;
  z-index: 1;
}

.vulci-portico__form {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--v-warm);
  padding: 40px;
}

.vulci-portico__form-inner {
  width: min(330px, 80vw);
}

.vulci-portico__form-inner .card-header,
.vulci-portico__form-inner h2 {
  border: 0;
  background: none;
  padding: 0 0 24px;
  text-align: center;
}

.vulci-portico__copy {
  text-align: center;
  font-size: 11px;
  color: rgba(22, 18, 14, 0.32);
  letter-spacing: 0.08em;
  margin-top: 22px;
  line-height: 1.7;
}

@media (max-width: 768px) {
  .vulci-portico {
    flex-direction: column;
  }
  .vulci-portico__panel {
    flex: none;
    min-height: 230px;
    padding: 32px;
  }
  .vulci-portico__arch {
    width: 320px;
    height: 380px;
    right: -120px;
  }
  .vulci-portico__phrase {
    font-size: 20px;
  }
  .vulci-portico__form {
    padding: 30px 20px;
  }
}