/* ============================================================================
   Console administrativo · identidade da marca sobre o keycloak.v2 (PatternFly v5)
   Idêntico nos temas prodevstech, intedata e andrade-dev: os tokens da marca
   vêm de tokens.css (cópia do login) e cada alias resolve o prefixo presente
   (--pt-*, --id-* ou --ad-*). Shell inspirado em assets/shell.css do DS.
   ============================================================================ */

:root {
  --brand-primary: var(--pt-primary, var(--id-primary, var(--ad-primary)));
  --brand-primary-600: var(--pt-primary-600, var(--id-primary-600, var(--ad-primary-600)));
  --brand-primary-50: var(--pt-primary-50, var(--id-primary-50, var(--ad-primary-50)));
  --brand-on-primary: var(--pt-on-primary, var(--id-on-primary, var(--ad-on-primary)));
  /* realce do rail: Andrade usa o laranja secundário, como no shell do DS */
  --brand-accent: var(--pt-primary-400, var(--id-primary-400, var(--ad-secondary)));
  --brand-background: var(--pt-background, var(--id-background, var(--ad-background)));
  --brand-surface: var(--pt-surface, var(--id-surface, var(--ad-surface)));
  --brand-surface-2: var(--pt-surface-2, var(--id-surface-2, var(--ad-surface-2)));
  --brand-border: var(--pt-border, var(--id-border, var(--ad-border)));
  --brand-border-strong: var(--pt-border-strong, var(--id-border-strong, var(--ad-border-strong)));
  --brand-text: var(--pt-text-primary, var(--id-text-primary, var(--ad-text-primary)));
  --brand-text-secondary: var(--pt-text-secondary, var(--id-text-secondary, var(--ad-text-secondary)));
  --brand-text-disabled: var(--pt-text-disabled, var(--id-text-disabled, var(--ad-text-disabled)));
  --brand-action-hover: var(--pt-action-hover, var(--id-action-hover, var(--ad-action-hover)));
  --brand-action-selected: var(--pt-action-selected, var(--id-action-selected, var(--ad-action-selected)));
  --brand-ring: var(--pt-ring, var(--id-ring, var(--ad-ring)));
  --brand-font: var(--pt-font-sans, var(--id-font-sans, var(--ad-font-sans)));
  --brand-font-mono: var(--pt-font-mono, var(--id-font-mono, var(--ad-font-mono)));
  --brand-radius-sm: var(--pt-radius-sm, var(--id-radius-sm, var(--ad-radius-sm)));
  --brand-radius-md: var(--pt-radius-md, var(--id-radius-md, var(--ad-radius-md)));
  --brand-radius-card: var(--pt-radius-card, var(--id-radius-card, var(--ad-radius-card)));
  --brand-elevation-low: var(--pt-elevation-low, var(--id-elevation-low, var(--ad-elevation-low)));
  --brand-elevation-high: var(--pt-elevation-high, var(--id-elevation-high, var(--ad-elevation-high)));

  /* rail navy do shell (igual nas três marcas, claro e escuro) */
  --brand-rail: #0C1E2E;
  --brand-rail-text: #9DB4C6;
  --brand-rail-text-strong: #EAF3FA;
  --brand-rail-section: #4F6B81;
  --brand-rail-hover: rgba(255, 255, 255, 0.06);
  --brand-rail-border: rgba(255, 255, 255, 0.07);
}

/* ---------- PatternFly globals → tokens da marca ---------- */
:root,
:root.pf-v5-theme-dark {
  --pf-v5-global--FontFamily--text: var(--brand-font);
  --pf-v5-global--FontFamily--heading: var(--brand-font);
  --pf-v5-global--FontFamily--sans-serif: var(--brand-font);
  --pf-v5-global--FontFamily--monospace: var(--brand-font-mono);

  --pf-v5-global--primary-color--100: var(--brand-primary);
  --pf-v5-global--primary-color--200: var(--brand-primary-600);
  --pf-v5-global--primary-color--300: var(--brand-primary);
  --pf-v5-global--primary-color--400: var(--brand-primary-600);
  --pf-v5-global--primary-color--light-100: var(--brand-primary-50);
  --pf-v5-global--primary-color--dark-100: var(--brand-primary);
  --pf-v5-global--link--Color--dark: var(--brand-primary);
  --pf-v5-global--link--Color--dark--hover: var(--brand-primary-600);
  --pf-v5-global--link--Color: var(--brand-primary);
  --pf-v5-global--link--Color--hover: var(--brand-primary-600);
  --pf-v5-global--active-color--100: var(--brand-primary);
  --pf-v5-global--active-color--400: var(--brand-primary);

  --pf-v5-global--BackgroundColor--100: var(--brand-surface);
  --pf-v5-global--BackgroundColor--200: var(--brand-background);
  --pf-v5-global--BackgroundColor--light-300: var(--brand-surface-2);
  --pf-v5-global--Color--100: var(--brand-text);
  --pf-v5-global--Color--200: var(--brand-text-secondary);
  --pf-v5-global--BorderColor--100: var(--brand-border);
  --pf-v5-global--BorderColor--300: var(--brand-border);

  --pf-v5-global--BorderRadius--sm: var(--brand-radius-sm);
  --pf-v5-global--BoxShadow--sm: var(--brand-elevation-low);
  --pf-v5-global--BoxShadow--lg: var(--brand-elevation-high);
}

body {
  font-family: var(--brand-font);
  color: var(--brand-text);
  background: var(--brand-background);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---------- Loading ---------- */
html:root .keycloak__loading-container {
  font-family: var(--brand-font);
  color: var(--brand-text);
  background-color: var(--brand-background);
}

html:root .keycloak__loading-container::before {
  content: "";
  width: 212px;
  height: 52px;
  margin-bottom: 24px;
  background: url("../img/logo-light.png") center / contain no-repeat;
}

html.pf-v5-theme-dark:root .keycloak__loading-container::before {
  background-image: url("../img/logo-dark.png");
}

/* ---------- Masthead (topo do rail) ---------- */
html:root .pf-v5-c-masthead {
  --pf-v5-c-masthead--BackgroundColor: var(--brand-rail);
  border-bottom: 1px solid var(--brand-rail-border);
}

html:root .pf-v5-c-masthead .pf-v5-c-toolbar {
  --pf-v5-c-toolbar--BackgroundColor: transparent;
  background-color: transparent;
}

html:root .pf-v5-c-masthead .pf-v5-c-menu-toggle:not(.pf-m-plain) {
  --pf-v5-c-menu-toggle--BackgroundColor: transparent;
  --pf-v5-c-menu-toggle--Color: var(--brand-rail-text-strong);
  --pf-v5-c-menu-toggle--before--BorderColor: rgba(255, 255, 255, 0.16);
  --pf-v5-c-menu-toggle--hover--before--BorderBottomColor: var(--brand-accent);
  border-radius: var(--brand-radius-md);
}

html:root .pf-v5-c-masthead .keycloak__pageheader_brand,
html:root .pf-v5-c-masthead__brand img {
  height: 30px;
  width: auto;
}

/* ---------- Sidebar / navegação (rail navy) ---------- */
html:root .pf-v5-c-page__sidebar,
html:root .pf-v5-c-page__sidebar.pf-m-light {
  --pf-v5-c-page__sidebar--BackgroundColor: var(--brand-rail);
  --pf-v5-c-page__sidebar--m-light--BackgroundColor: var(--brand-rail);
  --pf-v5-c-page__sidebar-body--BackgroundColor: var(--brand-rail);
  background-color: var(--brand-rail);
  border-right: 1px solid var(--brand-rail-border);
}

html:root .pf-v5-c-page__sidebar .pf-v5-c-nav,
html:root .pf-v5-c-page__sidebar .pf-v5-c-nav.pf-m-light {
  --pf-v5-c-nav__link--Color: var(--brand-rail-text);
  --pf-v5-c-nav__link--hover--Color: var(--brand-rail-text-strong);
  --pf-v5-c-nav__link--focus--Color: var(--brand-rail-text-strong);
  --pf-v5-c-nav__link--active--Color: #fff;
  --pf-v5-c-nav__link--m-current--Color: #fff;
  --pf-v5-c-nav__link--BackgroundColor: transparent;
  --pf-v5-c-nav__link--hover--BackgroundColor: var(--brand-rail-hover);
  --pf-v5-c-nav__link--focus--BackgroundColor: var(--brand-rail-hover);
  --pf-v5-c-nav__link--active--BackgroundColor: var(--brand-rail-hover);
  --pf-v5-c-nav__link--m-current--BackgroundColor: color-mix(in srgb, var(--brand-accent) 18%, transparent);
  --pf-v5-c-nav__link--before--BorderColor: transparent;
  --pf-v5-c-nav__link--after--BorderColor: var(--brand-accent);
  --pf-v5-c-nav__link--m-current--after--BorderColor: var(--brand-accent);
  --pf-v5-c-nav__link--hover--after--BorderColor: transparent;
  --pf-v5-c-nav__section-title--Color: var(--brand-rail-section);
  --pf-v5-c-nav__section-title--BorderBottomColor: var(--brand-rail-border);
  --pf-v5-c-nav__toggle--Color: var(--brand-rail-text);
  --pf-v5-c-nav__item--before--BorderColor: var(--brand-rail-border);
  --pf-v5-c-nav__list-link--Color: var(--brand-rail-text);
  background-color: var(--brand-rail);
}

html:root .pf-v5-c-page__sidebar .pf-v5-c-nav__link {
  border-radius: var(--brand-radius-md);
  font-weight: 500;
}

html:root .pf-v5-c-page__sidebar .pf-v5-c-nav__section-title {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* seletor de realm no topo do rail */
html:root .pf-v5-c-page__sidebar .pf-v5-c-menu-toggle {
  --pf-v5-c-menu-toggle--BackgroundColor: rgba(255, 255, 255, 0.05);
  --pf-v5-c-menu-toggle--Color: var(--brand-rail-text-strong);
  --pf-v5-c-menu-toggle--before--BorderColor: rgba(255, 255, 255, 0.09);
  border-radius: var(--brand-radius-md);
}

/* ---------- Área de conteúdo ---------- */
html:root .pf-v5-c-page,
html:root .pf-v5-c-page__main,
html:root .pf-v5-c-page__main-section {
  --pf-v5-c-page--BackgroundColor: var(--brand-background);
  --pf-v5-c-page__main-section--BackgroundColor: var(--brand-background);
  --pf-v5-c-page__main-section--m-light--BackgroundColor: var(--brand-surface);
}

html:root .pf-v5-c-card {
  --pf-v5-c-card--BackgroundColor: var(--brand-surface);
  border-radius: var(--brand-radius-card);
}

html:root .pf-v5-c-modal-box {
  --pf-v5-c-modal-box--BackgroundColor: var(--brand-surface);
  border-radius: var(--brand-radius-card);
}

/* ---------- Botões e campos ---------- */
html:root .pf-v5-c-button {
  --pf-v5-c-button--BorderRadius: var(--brand-radius-md);
  --pf-v5-c-button--FontWeight: 600;
  --pf-v5-c-button--m-primary--BackgroundColor: var(--brand-primary);
  --pf-v5-c-button--m-primary--hover--BackgroundColor: var(--brand-primary-600);
  --pf-v5-c-button--m-primary--focus--BackgroundColor: var(--brand-primary-600);
  --pf-v5-c-button--m-primary--active--BackgroundColor: var(--brand-primary-600);
  --pf-v5-c-button--m-primary--Color: var(--brand-on-primary);
  --pf-v5-c-button--m-primary--hover--Color: var(--brand-on-primary);
  --pf-v5-c-button--m-primary--focus--Color: var(--brand-on-primary);
  --pf-v5-c-button--m-primary--active--Color: var(--brand-on-primary);
}

html:root .pf-v5-c-form-control {
  --pf-v5-c-form-control--BackgroundColor: var(--brand-surface);
  --pf-v5-c-form-control--BorderRadius: var(--brand-radius-sm);
  --pf-v5-c-form-control--focus--after--BorderBottomColor: var(--brand-primary);
  --pf-v5-c-form-control--hover--after--BorderBottomColor: var(--brand-primary);
}

html:root .pf-v5-c-form-control:focus-within,
html:root .pf-v5-c-button:focus-visible {
  box-shadow: 0 0 0 3px var(--brand-ring);
}

html:root .pf-v5-c-page__main .pf-v5-c-menu-toggle:not(.pf-m-plain):not(.pf-m-primary) {
  --pf-v5-c-menu-toggle--BackgroundColor: var(--brand-surface);
}

html:root .pf-v5-c-menu {
  --pf-v5-c-menu--BackgroundColor: var(--brand-surface);
  --pf-v5-c-menu__item--hover--BackgroundColor: var(--brand-action-hover);
  border-radius: var(--brand-radius-md);
}

/* ---------- Tabelas ---------- */
html:root .pf-v5-c-table {
  --pf-v5-c-table--BackgroundColor: var(--brand-surface);
  --pf-v5-c-table--BorderColor: var(--brand-border);
  --pf-v5-c-table__tr--hover--BackgroundColor: var(--brand-action-hover);
  color: var(--brand-text);
}

html:root .pf-v5-c-table thead {
  background: var(--brand-surface-2);
}
