/* QualyTI — identidade visual persistente para GLPI 11 */
:root {
  --qualyti-orange: #f0440b;
  --qualyti-orange-dark: #c93608;
  --qualyti-graphite: #34363c;
  --qualyti-near-black: #15171b;
  --tblr-primary: #f0440b;
  --tblr-primary-rgb: 240, 68, 11;
  --tblr-link-color: #d63b09;
  --tblr-link-hover-color: #a92d06;
}

/* Tela pública de autenticação */
body.welcome-anonymous {
  min-height: 100vh;
  background-color: var(--qualyti-near-black) !important;
  background-image: url('/branding/login-background.webp') !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-attachment: fixed !important;
}

body.welcome-anonymous #page.page-anonymous {
  min-height: 100vh;
  background: linear-gradient(90deg, rgba(15, 16, 19, 0.12) 0%, rgba(15, 16, 19, 0.04) 55%, rgba(15, 16, 19, 0.18) 100%);
}

body.welcome-anonymous #page > .flex-fill {
  align-items: flex-start;
  justify-content: center;
  margin: 0 !important;
  padding: 3rem 2rem 3rem clamp(2rem, 7vw, 8rem) !important;
}

body.welcome-anonymous .container-tight {
  width: min(34rem, calc(100vw - 4rem));
  max-width: 34rem !important;
  margin: 0 !important;
  padding: 0 !important;
  filter: drop-shadow(0 22px 46px rgba(0, 0, 0, 0.38));
}

body.welcome-anonymous .container-tight > .text-center {
  margin: 0 !important;
  padding: 1.15rem 1.5rem 0.8rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.98);
  border-top: 5px solid var(--qualyti-orange);
  border-radius: 18px 18px 0 0;
}

body.welcome-anonymous .glpi-logo {
  display: inline-block !important;
  content: none !important;
  width: min(100%, 330px) !important;
  height: 104px !important;
  margin: 0 !important;
  background: transparent url('/branding/logo-horizontal.png') center center / contain no-repeat !important;
}

.glpi-logo::before,
.glpi-logo::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

body.welcome-anonymous .main-content-card {
  margin: 0 !important;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.98);
  border: 0 !important;
  border-radius: 0 0 18px 18px !important;
  box-shadow: none !important;
}

body.welcome-anonymous .main-content-card > .card-header:empty {
  display: none;
}

body.welcome-anonymous .main-content-card .card-body {
  padding: 1.35rem 2.25rem 2.25rem;
}

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

body.welcome-anonymous .main-content-card h2 {
  color: var(--qualyti-graphite);
  font-weight: 750;
  letter-spacing: -0.02em;
}

body.welcome-anonymous .form-control,
body.welcome-anonymous .form-select,
body.welcome-anonymous .select2-selection {
  min-height: 46px;
  border-color: #d9dadd !important;
  border-radius: 9px !important;
}

body.welcome-anonymous .form-control:focus,
body.welcome-anonymous .form-select:focus,
body.welcome-anonymous .select2-container--focus .select2-selection {
  border-color: var(--qualyti-orange) !important;
  box-shadow: 0 0 0 0.22rem rgba(240, 68, 11, 0.17) !important;
}

body.welcome-anonymous .btn-primary {
  min-height: 46px;
  color: #fff !important;
  font-weight: 700;
  letter-spacing: 0.01em;
  background: var(--qualyti-orange) !important;
  border-color: var(--qualyti-orange) !important;
  border-radius: 9px !important;
}

body.welcome-anonymous .btn-primary:hover,
body.welcome-anonymous .btn-primary:focus {
  background: var(--qualyti-orange-dark) !important;
  border-color: var(--qualyti-orange-dark) !important;
}

body.welcome-anonymous .form-check-input:checked {
  background-color: var(--qualyti-orange) !important;
  border-color: var(--qualyti-orange) !important;
}

body.welcome-anonymous .copyright {
  color: rgba(255, 255, 255, 0.84) !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

/* Interface autenticada: paleta e marca sem alterar o núcleo */
body:not(.welcome-anonymous) .btn-primary {
  background-color: var(--qualyti-orange);
  border-color: var(--qualyti-orange);
}

body:not(.welcome-anonymous) .btn-primary:hover,
body:not(.welcome-anonymous) .btn-primary:focus {
  background-color: var(--qualyti-orange-dark);
  border-color: var(--qualyti-orange-dark);
}

body:not(.welcome-anonymous) .form-control:focus,
body:not(.welcome-anonymous) .form-select:focus {
  border-color: var(--qualyti-orange);
  box-shadow: 0 0 0 0.2rem rgba(240, 68, 11, 0.16);
}

body:not(.welcome-anonymous) .form-check-input:checked {
  background-color: var(--qualyti-orange);
  border-color: var(--qualyti-orange);
}

body:not(.welcome-anonymous) .navbar-vertical .nav-link.active,
body:not(.welcome-anonymous) .navbar-vertical .nav-link:hover {
  color: var(--qualyti-orange) !important;
}

body:not(.welcome-anonymous) .navbar-brand .glpi-logo {
  content: none !important;
  width: 150px !important;
  height: 56px !important;
  background: transparent url('/branding/logo-horizontal.png') center center / contain no-repeat !important;
}

/*
 * Interface autenticada clara e serena.
 * Azul-petroleo comunica confianca; o laranja QualyTI fica reservado a acoes.
 * Estas regras nao alteram a tela publica de login.
 */
body:not(.welcome-anonymous) {
  --qualyti-calm: #2f6f68;
  --qualyti-calm-dark: #245851;
  --qualyti-calm-soft: #eaf4f2;
  --qualyti-calm-pale: #f3f8f7;
  --qualyti-page: #f5f7fa;
  --qualyti-surface: #ffffff;
  --qualyti-border: #dce4e8;
  --qualyti-text: #28343d;
  --qualyti-muted: #6b7885;
  --tblr-primary: #2f6f68;
  --tblr-primary-rgb: 47, 111, 104;
  --tblr-link-color: #2f6f68;
  --tblr-link-hover-color: #245851;
  color: var(--qualyti-text);
  background: var(--qualyti-page) !important;
}

body:not(.welcome-anonymous) .page,
body:not(.welcome-anonymous) .page-wrapper,
body:not(.welcome-anonymous) .page-body,
body:not(.welcome-anonymous) main {
  background-color: var(--qualyti-page) !important;
}

/* Cabecalho e identidade */
body:not(.welcome-anonymous) .navbar-brand .glpi-logo {
  content: none !important;
  width: 150px !important;
  height: 52px !important;
  background: transparent url('/branding/logo-horizontal.png') center center / contain no-repeat !important;
}

/* No menu recolhido, troca a marca horizontal pelo simbolo compacto */
@media (min-width: 992px) {
  body:not(.welcome-anonymous).navbar-collapsed .sidebar .navbar-brand .glpi-logo {
    content: none !important;
    display: block !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 auto !important;
    background: transparent url('/branding/logo-compacto.png') center center / contain no-repeat !important;
  }
}

body:not(.welcome-anonymous) .navbar-horizontal,
body:not(.welcome-anonymous) .navbar-light,
body:not(.welcome-anonymous) header.navbar,
body:not(.welcome-anonymous) .navbar-header {
  background-color: rgba(255, 255, 255, 0.98) !important;
  border-color: var(--qualyti-border) !important;
  box-shadow: 0 2px 10px rgba(31, 55, 67, 0.05);
}

body:not(.welcome-anonymous) .page-header h1,
body:not(.welcome-anonymous) .page-header .page-title,
body:not(.welcome-anonymous) h1,
body:not(.welcome-anonymous) h2 {
  color: #244b50;
}

body:not(.welcome-anonymous) .breadcrumb-item a,
body:not(.welcome-anonymous) a:not(.btn):not(.nav-link) {
  color: var(--qualyti-calm);
}

body:not(.welcome-anonymous) .breadcrumb-item a:hover,
body:not(.welcome-anonymous) a:not(.btn):not(.nav-link):hover {
  color: var(--qualyti-calm-dark);
}

/* Menu principal: base clara, destaque suave e indicador QualyTI */
body:not(.welcome-anonymous) #navbar-menu,
body:not(.welcome-anonymous) #navbarMainMenu,
body:not(.welcome-anonymous) .navbar-vertical {
  background-color: var(--qualyti-surface) !important;
  border-color: var(--qualyti-border) !important;
}

body:not(.welcome-anonymous) #navbar-menu .nav-link,
body:not(.welcome-anonymous) #navbarMainMenu .nav-link,
body:not(.welcome-anonymous) .navbar-vertical .nav-link {
  color: #53646f !important;
  border-radius: 8px;
  transition: color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

body:not(.welcome-anonymous) #navbar-menu .nav-link:hover,
body:not(.welcome-anonymous) #navbarMainMenu .nav-link:hover,
body:not(.welcome-anonymous) .navbar-vertical .nav-link:hover {
  color: var(--qualyti-calm-dark) !important;
  background-color: var(--qualyti-calm-pale) !important;
}

body:not(.welcome-anonymous) #navbar-menu .nav-link.active,
body:not(.welcome-anonymous) #navbar-menu .nav-item.active > .nav-link,
body:not(.welcome-anonymous) #navbarMainMenu .nav-link.active,
body:not(.welcome-anonymous) #navbarMainMenu .nav-item.active > .nav-link,
body:not(.welcome-anonymous) .navbar-vertical .nav-link.active {
  color: var(--qualyti-calm-dark) !important;
  font-weight: 650;
  background-color: var(--qualyti-calm-soft) !important;
  box-shadow: inset 3px 0 0 var(--qualyti-orange);
}

/* Controles auxiliares do menu lateral */
body:not(.welcome-anonymous) .sidebar .trigger-fuzzy,
body:not(.welcome-anonymous) .sidebar .reduce-menu {
  color: #50646d !important;
  opacity: 1 !important;
  background-color: transparent !important;
}

body:not(.welcome-anonymous) .sidebar .trigger-fuzzy i,
body:not(.welcome-anonymous) .sidebar .reduce-menu::before {
  color: var(--qualyti-calm) !important;
  opacity: 1 !important;
}

body:not(.welcome-anonymous) .sidebar .trigger-fuzzy:hover,
body:not(.welcome-anonymous) .sidebar .trigger-fuzzy:focus-visible,
body:not(.welcome-anonymous) .sidebar .reduce-menu:hover,
body:not(.welcome-anonymous) .sidebar .reduce-menu:focus-visible {
  color: var(--qualyti-calm-dark) !important;
  background-color: var(--qualyti-calm-pale) !important;
}

/* Submenu vertical: contraste alto para textos e icones */
body:not(.welcome-anonymous) .sidebar #navbar-menu .nav-link.active + .dropdown-menu,
body:not(.welcome-anonymous) .sidebar #navbar-menu .nav-link.show + .dropdown-menu {
  color: var(--qualyti-text) !important;
  background-color: #f1f6f5 !important;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item {
  color: #465b65 !important;
  background-color: transparent !important;
  border-left-color: #b8cecb !important;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item i {
  color: #66827f !important;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item:hover {
  color: var(--qualyti-calm-dark) !important;
  background-color: #e4f0ee !important;
  border-left-color: var(--qualyti-calm) !important;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item:hover i {
  color: var(--qualyti-calm) !important;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item.active {
  color: #173f3b !important;
  background-color: #dcebe8 !important;
  border-left-color: var(--qualyti-orange) !important;
  font-weight: 650;
}

body:not(.welcome-anonymous) .sidebar #navbar-menu .dropdown-menu .dropdown-item.active i {
  color: var(--qualyti-calm-dark) !important;
}

/* Superficies, paineis e widgets */
body:not(.welcome-anonymous) .card,
body:not(.welcome-anonymous) .dashboard-widget,
body:not(.welcome-anonymous) .tab_cadre_fixe,
body:not(.welcome-anonymous) .tab_cadre_navigation {
  background-color: var(--qualyti-surface);
  border-color: var(--qualyti-border) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(35, 58, 69, 0.045);
}

body:not(.welcome-anonymous) .card-header,
body:not(.welcome-anonymous) .dashboard-widget .widget-header {
  color: #294e53;
  background-color: #fbfcfd !important;
  border-bottom-color: var(--qualyti-border) !important;
  font-weight: 650;
}

/* Tabelas legiveis, com contraste baixo e hierarquia clara */
body:not(.welcome-anonymous) .table {
  --tblr-table-striped-bg: #f8fafb;
  --tblr-table-hover-bg: #edf6f4;
  color: var(--qualyti-text);
}

body:not(.welcome-anonymous) .table thead th {
  color: #40545e;
  background-color: #f1f5f6 !important;
  border-bottom-color: #cfdadd !important;
  font-weight: 650;
}

body:not(.welcome-anonymous) .table tbody tr:hover > * {
  background-color: #edf6f4 !important;
}

/* Formularios: foco azul-petroleo, confortavel em uso prolongado */
body:not(.welcome-anonymous) .form-control,
body:not(.welcome-anonymous) .form-select,
body:not(.welcome-anonymous) .select2-selection {
  border-color: #d4dee2 !important;
  border-radius: 8px !important;
}

body:not(.welcome-anonymous) .form-control:focus,
body:not(.welcome-anonymous) .form-select:focus,
body:not(.welcome-anonymous) .select2-container--focus .select2-selection {
  border-color: var(--qualyti-calm) !important;
  box-shadow: 0 0 0 0.2rem rgba(47, 111, 104, 0.15) !important;
}

body:not(.welcome-anonymous) .form-check-input:checked {
  background-color: var(--qualyti-calm) !important;
  border-color: var(--qualyti-calm) !important;
}

/* Botao principal sereno; laranja sinaliza criar/adicionar e chamadas de atencao */
body:not(.welcome-anonymous) .btn-primary {
  color: #fff !important;
  background-color: var(--qualyti-calm) !important;
  border-color: var(--qualyti-calm) !important;
  border-radius: 8px;
  font-weight: 600;
}

body:not(.welcome-anonymous) .btn-primary:hover,
body:not(.welcome-anonymous) .btn-primary:focus {
  background-color: var(--qualyti-calm-dark) !important;
  border-color: var(--qualyti-calm-dark) !important;
}

body:not(.welcome-anonymous) .btn-warning,
body:not(.welcome-anonymous) .btn-outline-warning {
  color: #fff !important;
  background-color: var(--qualyti-orange) !important;
  border-color: var(--qualyti-orange) !important;
  border-radius: 8px;
  font-weight: 650;
}

body:not(.welcome-anonymous) .btn-warning:hover,
body:not(.welcome-anonymous) .btn-outline-warning:hover {
  background-color: var(--qualyti-orange-dark) !important;
  border-color: var(--qualyti-orange-dark) !important;
}

body:not(.welcome-anonymous) .btn-outline-secondary {
  color: #51646d;
  border-color: #b9c7cc;
  border-radius: 8px;
}

/* Abas e paginacao */
body:not(.welcome-anonymous) .nav-tabs .nav-link {
  color: #5d6d77;
  border-radius: 8px 8px 0 0;
}

body:not(.welcome-anonymous) .nav-tabs .nav-link:hover {
  color: var(--qualyti-calm-dark);
  background-color: var(--qualyti-calm-pale);
}

body:not(.welcome-anonymous) .nav-tabs .nav-link.active {
  color: var(--qualyti-calm-dark);
  font-weight: 650;
  border-bottom-color: var(--qualyti-orange) !important;
}

body:not(.welcome-anonymous) .page-item.active .page-link {
  color: #fff;
  background-color: var(--qualyti-calm);
  border-color: var(--qualyti-calm);
}

body:not(.welcome-anonymous) .page-link {
  color: var(--qualyti-calm);
}

/* Mensagens suaves, sem alterar as cores semanticas de erro e criticidade */
body:not(.welcome-anonymous) .alert-info {
  color: #24545a;
  background-color: #eaf4f5;
  border-color: #b9d8d8;
}

body:not(.welcome-anonymous) .alert-success {
  color: #275b45;
  background-color: #edf7f1;
  border-color: #bdddc9;
}

body:not(.welcome-anonymous) ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

body:not(.welcome-anonymous) ::-webkit-scrollbar-track {
  background: #eef2f4;
}

body:not(.welcome-anonymous) ::-webkit-scrollbar-thumb {
  background: #a8bfbd;
  border: 2px solid #eef2f4;
  border-radius: 999px;
}

body:not(.welcome-anonymous) ::-webkit-scrollbar-thumb:hover {
  background: var(--qualyti-calm);
}

@media (max-width: 767.98px) {
  body.welcome-anonymous {
    background-position: 62% center !important;
  }

  body.welcome-anonymous #page > .flex-fill {
    align-items: center;
    padding: 1.25rem !important;
  }

  body.welcome-anonymous .container-tight {
    width: min(100%, 32rem);
  }

  body.welcome-anonymous .main-content-card .card-body {
    padding: 1.1rem 1.35rem 1.65rem;
  }

  body.welcome-anonymous .glpi-logo {
    height: 88px !important;
  }
}
