/* ============================================================
   IBGPP SYS — Novo visual (aprovado em 14/11/2026)
   Camada por cima do style.css. Tudo vale só com a classe
   "tema-ibgpp" no <html>; sem ela o sys volta ao visual antigo.
   Não muda regra de acesso nem dado: só aparência e menu.
   ============================================================ */

html.tema-ibgpp {
  --ib-navy: #1A3C5E;
  --ib-orange: #E85D10;
  --ib-orange-d: #C24A08;
  --ib-orange-t: #B24405;
  --ib-pale: #FFF0E8;
  --ib-line: #E3E7ED;
  --ib-bg: #F6F7F9;
  --ib-tile: #EDF1F6;
  --ib-ink: #15273B;
  --ib-sec: #4D5B6C;
}

/* ---------- Base ---------- */
html.tema-ibgpp body,
html.tema-ibgpp .app-workspace,
html.tema-ibgpp .content-body { background-color: var(--ib-bg); }
html.tema-ibgpp body { color: var(--ib-ink); }

html.tema-ibgpp .top-nav { border-bottom: 1px solid var(--ib-line); }
html.tema-ibgpp .top-nav h2 {
  font-weight: 600;
  letter-spacing: -0.01em;
  padding-left: 14px;
  border-left: 4px solid var(--ib-orange);
  line-height: 1.15;
}

/* ---------- Painéis: linha fina no lugar de sombra ---------- */
html.tema-ibgpp .metric-card,
html.tema-ibgpp .chart-card,
html.tema-ibgpp .card,
html.tema-ibgpp .table-container,
html.tema-ibgpp .py-metric-card,
html.tema-ibgpp .detail-section,
html.tema-ibgpp .portal-hub-card {
  border: 1px solid var(--ib-line);
  border-radius: 18px;
  box-shadow: none;
}
html.tema-ibgpp .metric-card { border-left: 1px solid var(--ib-line); }
html.tema-ibgpp .metric-card:hover,
html.tema-ibgpp .py-metric-card:hover { transform: none; box-shadow: none; }
html.tema-ibgpp .portal-hub-card:hover {
  transform: none;
  box-shadow: 0 8px 28px rgba(26, 60, 94, .08);
  border-color: #C9D2DD;
}
html.tema-ibgpp .metric-card-info .value { color: var(--ib-navy); font-weight: 600; }
html.tema-ibgpp .metric-card-icon { border-radius: 13px; background-color: var(--ib-tile); color: var(--ib-navy); }
html.tema-ibgpp .metric-card.primary .metric-card-icon { background-color: var(--ib-pale); color: var(--ib-orange-d); }
html.tema-ibgpp .portal-hub-card h3 { font-family: var(--font-title); color: var(--ib-navy); font-weight: 600; }

/* ---------- Tabelas ---------- */
html.tema-ibgpp .custom-table th {
  background-color: #F3F5F8;
  color: var(--ib-sec);
  border-bottom: 1px solid var(--ib-line);
}
html.tema-ibgpp .custom-table td { border-bottom: 1px solid var(--ib-line); }
html.tema-ibgpp .custom-table tbody tr:hover { background-color: #F8F9FB; }

/* ---------- Botões e campos ---------- */
html.tema-ibgpp .btn { border-radius: 12px; }
html.tema-ibgpp .btn-primary { background-color: var(--ib-orange-d); box-shadow: none; }
html.tema-ibgpp .btn-primary:hover { background-color: var(--ib-orange-t); transform: none; }
html.tema-ibgpp .btn-secondary { background-color: var(--ib-tile); color: var(--ib-navy); }
html.tema-ibgpp .btn-secondary:hover { background-color: #E1E7EF; }
html.tema-ibgpp .form-control { border-radius: 10px; border-color: #CFD6DF; }
html.tema-ibgpp .form-control:focus { border-color: var(--ib-orange); }
html.tema-ibgpp .modal-content { border-radius: 18px; }

/* ---------- Menu lateral: claro ---------- */
html.tema-ibgpp .sidebar {
  background-color: #FFFFFF;
  color: var(--ib-ink);
  box-shadow: none;
  border-right: 1px solid var(--ib-line);
}
html.tema-ibgpp .sidebar-brand { border-bottom: 1px solid var(--ib-line); }
html.tema-ibgpp .sidebar-brand img { filter: none; }
html.tema-ibgpp .sidebar-close-btn { color: var(--ib-sec); }
html.tema-ibgpp .sidebar-close-btn:hover { color: var(--ib-navy); }
html.tema-ibgpp .sidebar-menu::-webkit-scrollbar-track { background: transparent; }
html.tema-ibgpp .sidebar-menu::-webkit-scrollbar-thumb { background: #D5DCE5; }

html.tema-ibgpp .sidebar-menu-item a,
html.tema-ibgpp .sidebar-submenu .sidebar-menu-item a,
html.tema-ibgpp .sidebar-group-header { color: #33455A; }
html.tema-ibgpp .sidebar-menu-item a i,
html.tema-ibgpp .sidebar-group-header .group-title i { color: var(--ib-navy) !important; }
html.tema-ibgpp .sidebar-group-header .chevron { color: #8C99A8; }

html.tema-ibgpp .sidebar-menu-item a:hover,
html.tema-ibgpp .sidebar-submenu .sidebar-menu-item a:hover,
html.tema-ibgpp .sidebar-group-header:hover,
html.tema-ibgpp .sidebar-menu-group.open .sidebar-group-header {
  color: var(--ib-navy);
  background-color: #F3F5F8;
}
html.tema-ibgpp .sidebar-menu-group.open .sidebar-group-header .chevron { color: var(--ib-navy); }

html.tema-ibgpp .sidebar-menu-item.active a,
html.tema-ibgpp .sidebar-submenu .sidebar-menu-item.active a {
  color: var(--ib-orange-t);
  background-color: var(--ib-pale);
  box-shadow: none;
  font-weight: 600;
}
html.tema-ibgpp .sidebar-menu-item.active a i { color: var(--ib-orange-d) !important; }

html.tema-ibgpp .sidebar-footer { background-color: #FFFFFF; border-top: 1px solid var(--ib-line); }
html.tema-ibgpp .user-avatar { background-color: #DFE7F1; color: var(--ib-navy); font-family: var(--font-title); font-weight: 600; }
html.tema-ibgpp .user-info .user-name { color: var(--ib-ink); }
html.tema-ibgpp .user-info .user-role { color: var(--ib-sec); }
html.tema-ibgpp .btn-logout { color: var(--ib-sec); }
html.tema-ibgpp .btn-logout:hover { color: var(--ib-orange-t); }

/* ---------- Telas do módulo (abas no topo do conteúdo) ---------- */
#ib-subnav { display: none; }
html.tema-ibgpp #ib-subnav.ib-on {
  display: flex;
  flex-shrink: 0;
  gap: 4px;
  padding: 14px 2rem 0;
  background-color: var(--ib-bg);
  overflow-x: auto;
  scrollbar-width: none;
}
html.tema-ibgpp #ib-subnav.ib-on::-webkit-scrollbar { display: none; }
html.tema-ibgpp #ib-subnav .ib-seg {
  display: inline-flex;
  gap: 2px;
  padding: 4px;
  border-radius: 14px;
  background-color: #E9EDF2;
}
html.tema-ibgpp #ib-subnav button {
  border: 0;
  background: transparent;
  color: #33455A;
  font: 600 14px var(--font-body);
  min-height: 40px;
  padding: 0 16px;
  border-radius: 10px;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
html.tema-ibgpp #ib-subnav button i { font-size: 13px; color: var(--ib-navy); }
html.tema-ibgpp #ib-subnav button:hover { color: var(--ib-navy); background-color: rgba(255, 255, 255, .6); }
html.tema-ibgpp #ib-subnav button[aria-current="page"] {
  background-color: #FFFFFF;
  color: var(--ib-orange-t);
  box-shadow: inset 0 0 0 1px var(--ib-line);
}
html.tema-ibgpp #ib-subnav button[aria-current="page"] i { color: var(--ib-orange-d); }
html.tema-ibgpp #ib-subnav button:focus-visible,
html.tema-ibgpp .sidebar-group-header:focus-visible,
html.tema-ibgpp .sidebar-menu-item a:focus-visible,
html.tema-ibgpp .btn-logout:focus-visible { outline: 2px solid var(--ib-orange-d); outline-offset: 2px; }

/* ============================================================
   COMPUTADOR: menu vira uma coluna de ícones; as telas de cada
   módulo abrem num painel ao lado do ícone.
   ============================================================ */
@media screen and (min-width: 769px) {
  html.tema-ibgpp .sidebar { width: 104px; }
  html.tema-ibgpp .sidebar-brand { padding: 18px 0 16px; }
  html.tema-ibgpp .sidebar-brand img {
    width: 54px;
    height: 40px;
    object-fit: cover;
    object-position: left center;
  }

  html.tema-ibgpp .sidebar-menu { padding: 10px 8px; gap: 2px; scrollbar-width: none; }
  html.tema-ibgpp .sidebar-menu::-webkit-scrollbar { display: none; }
  html.tema-ibgpp .sidebar-menu-group { margin-bottom: 0; }

  /* Ícone + nome embaixo */
  html.tema-ibgpp .sidebar-menu > .sidebar-menu-item > a,
  html.tema-ibgpp .sidebar-group-header {
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    padding: 6px 2px;
    border-radius: 14px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    text-align: center;
    min-height: 66px;
  }
  html.tema-ibgpp .sidebar-group-header .group-title { flex-direction: column; gap: 6px; }
  html.tema-ibgpp .sidebar-group-header .chevron,
  html.tema-ibgpp .sidebar-menu > .sidebar-menu-item > a .badge { display: none; }

  html.tema-ibgpp .sidebar-menu > .sidebar-menu-item > a > i,
  html.tema-ibgpp .sidebar-group-header .group-title i {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background-color: var(--ib-tile);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    flex: none;
  }
  html.tema-ibgpp .sidebar-menu-group.open .sidebar-group-header { background-color: transparent; }
  html.tema-ibgpp .sidebar-group-header:hover,
  html.tema-ibgpp .sidebar-menu-group.ib-fly .sidebar-group-header { background-color: #F3F5F8; }

  /* Módulo aberto: laranja */
  html.tema-ibgpp .sidebar-menu > .sidebar-menu-item.active > a,
  html.tema-ibgpp .sidebar-menu-group.ib-ativo .sidebar-group-header {
    background-color: var(--ib-pale);
    color: var(--ib-orange-t);
  }
  html.tema-ibgpp .sidebar-menu > .sidebar-menu-item.active > a > i,
  html.tema-ibgpp .sidebar-menu-group.ib-ativo .sidebar-group-header .group-title i {
    background-color: var(--ib-orange);
    color: #FFFFFF !important;
  }

  /* Painel com as telas do módulo */
  html.tema-ibgpp .sidebar-menu-group.open .sidebar-submenu { display: none; }
  html.tema-ibgpp .sidebar-menu-group.ib-fly .sidebar-submenu {
    display: flex;
    position: fixed;
    left: 112px;
    top: var(--ib-fly-top, 120px);
    width: 268px;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
    padding: 8px;
    gap: 2px;
    background-color: #FFFFFF;
    border: 1px solid var(--ib-line);
    border-radius: 16px;
    box-shadow: 0 12px 32px rgba(26, 60, 94, .14);
    z-index: 1000;
  }
  html.tema-ibgpp .sidebar-menu-group.ib-fly .sidebar-submenu::before {
    content: attr(data-ib-titulo);
    font: 600 12px var(--font-body);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ib-sec);
    padding: 8px 12px 6px;
  }
  html.tema-ibgpp .sidebar-submenu .sidebar-menu-item a {
    min-height: 44px;
    padding: 0 12px;
    font-size: 14px;
    border-radius: 10px;
  }
  html.tema-ibgpp .sidebar-submenu .sidebar-menu-item a i { width: 18px; text-align: center; }

  /* Rodapé: avatar e dois botões só com ícone */
  html.tema-ibgpp .sidebar-footer { padding: 10px 4px 10px; flex-direction: row; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px; }
  html.tema-ibgpp .sidebar-footer .user-profile-summary { width: 100%; justify-content: center; }
  html.tema-ibgpp .sidebar-footer .user-info { display: none; }
  html.tema-ibgpp .sidebar-footer .user-avatar { width: 40px; height: 40px; margin-bottom: 4px; }
  html.tema-ibgpp .sidebar-footer .btn-logout {
    width: 30px;
    height: 34px;
    padding: 0;
    justify-content: center;
    border-radius: 10px;
    font-size: 0;
    gap: 0;
  }
  html.tema-ibgpp .sidebar-footer .btn-logout i { font-size: 14px; }
  html.tema-ibgpp .sidebar-footer .btn-logout:hover { background-color: #F3F5F8; }
}

/* ============================================================
   CELULAR: o menu continua abrindo pela lateral, só que claro.
   ============================================================ */
@media screen and (max-width: 768px) {
  html.tema-ibgpp .sidebar { background: #FFFFFF !important; box-shadow: 6px 0 25px rgba(26, 60, 94, .18) !important; }
  html.tema-ibgpp .sidebar-overlay { background: rgba(26, 60, 94, .35) !important; }
  html.tema-ibgpp .sidebar-menu-item a,
  html.tema-ibgpp .sidebar-submenu .sidebar-menu-item a { min-height: 44px; }
  html.tema-ibgpp #ib-subnav.ib-on { padding: 10px 0.85rem 0; }
  html.tema-ibgpp .top-nav h2 { padding-left: 10px; border-left-width: 3px; }
}

@media (prefers-reduced-motion: reduce) {
  html.tema-ibgpp .view-section { animation: none; }
}
