:root {
  --jinbo-blue: #002fa7;
  --jinbo-blue-dark: #0019cc;
  --jinbo-blue-bright: #002bff;
  --jinbo-link: #002fa7;
  --jinbo-accent-soft: #e8efff;
  --jinbo-surface-page: #f1f5f9;
  --jinbo-surface-card: #ffffff;
  --jinbo-surface-sidebar: #ffffff;
  --jinbo-surface-nav-hover: #e8efff;
  --jinbo-surface-nav-parent: #f8fafc;
  --jinbo-text-primary: #1e293b;
  --jinbo-text-secondary: #475569;
  --jinbo-text-muted: #64748b;
  --jinbo-border: #e2e8f0;
  --jinbo-shadow: rgba(15, 23, 42, 0.12);
  --jinbo-masthead-bg: var(--jinbo-blue);
  --jinbo-masthead-text: #ffffff;

  --pf-v5-global--BackgroundColor--100: var(--jinbo-surface-page);
  --pf-v5-global--BackgroundColor--150: var(--jinbo-surface-card);
  --pf-v5-global--BackgroundColor--200: var(--jinbo-surface-nav-parent);
  --pf-v5-global--Color--100: var(--jinbo-text-primary);
  --pf-v5-global--Color--200: var(--jinbo-text-secondary);
  --pf-v5-global--Color--300: var(--jinbo-text-muted);
  --pf-v5-global--primary-color--100: var(--jinbo-blue);
  --pf-v5-global--primary-color--200: var(--jinbo-blue-dark);
  --pf-v5-global--primary-color--light-100: var(--jinbo-blue-bright);
  --pf-v5-global--primary-color--dark-100: #001a66;
  --pf-v5-global--active-color--100: var(--jinbo-blue);
  --pf-v5-global--active-color--200: var(--jinbo-accent-soft);
  --pf-v5-global--link--Color: var(--jinbo-link);
  --pf-v5-global--link--Color--hover: var(--jinbo-blue-dark);
  --pf-v5-global--link--Color--dark: var(--jinbo-link);
  --pf-v5-global--link--Color--dark--hover: var(--jinbo-blue-dark);
  --pf-v5-global--BorderColor--100: var(--jinbo-border);
  --pf-v5-global--BorderColor--200: #cbd5e1;
  --pf-v5-global--info-color--100: var(--jinbo-blue);
}

@media (prefers-color-scheme: dark) {
  :root {
    --jinbo-link: #8cb2ff;
    --jinbo-accent-soft: rgba(140, 178, 255, 0.14);
    --jinbo-surface-page: #0f172a;
    --jinbo-surface-card: #1e293b;
    --jinbo-surface-sidebar: #1e293b;
    --jinbo-surface-nav-hover: rgba(140, 178, 255, 0.14);
    --jinbo-surface-nav-parent: #243044;
    --jinbo-text-primary: #f1f5f9;
    --jinbo-text-secondary: #cbd5e1;
    --jinbo-text-muted: #94a3b8;
    --jinbo-border: #334155;
    --jinbo-shadow: rgba(0, 0, 0, 0.35);
    --jinbo-masthead-bg: transparent;
    --jinbo-masthead-text: #f1f5f9;

    --pf-v5-global--BackgroundColor--100: var(--jinbo-surface-page);
    --pf-v5-global--BackgroundColor--150: var(--jinbo-surface-card);
    --pf-v5-global--BackgroundColor--200: var(--jinbo-surface-nav-parent);
    --pf-v5-global--Color--100: var(--jinbo-text-primary);
    --pf-v5-global--Color--200: var(--jinbo-text-secondary);
    --pf-v5-global--Color--300: var(--jinbo-text-muted);
    --pf-v5-global--active-color--200: var(--jinbo-accent-soft);
    --pf-v5-global--link--Color: var(--jinbo-link);
    --pf-v5-global--link--Color--hover: #b3ccff;
    --pf-v5-global--link--Color--dark: var(--jinbo-link);
    --pf-v5-global--link--Color--dark--hover: #b3ccff;
    --pf-v5-global--BorderColor--100: var(--jinbo-border);
    --pf-v5-global--BorderColor--200: #475569;
  }
}

.pf-v5-c-page {
  background-color: var(--jinbo-surface-page) !important;
}

.pf-v5-c-page__main-section,
.pf-v5-c-page__main {
  background-color: var(--jinbo-surface-page);
}

/* 顶栏 */
.pf-v5-c-masthead,
.pf-v5-c-masthead__main,
.pf-v5-c-masthead__content,
.pf-v5-c-masthead__brand,
.pf-v5-c-masthead .pf-v5-c-toolbar {
  --pf-v5-c-masthead--BackgroundColor: var(--jinbo-masthead-bg) !important;
  background-color: var(--jinbo-masthead-bg) !important;
  color: var(--jinbo-masthead-text);
}

.pf-v5-c-masthead {
  border-bottom: 1px solid var(--jinbo-border);
}

@media (prefers-color-scheme: dark) {
  .pf-v5-c-masthead {
    box-shadow: inset 0 -2px 0 var(--jinbo-blue);
  }
}

.pf-v5-c-masthead .pf-v5-c-button,
.pf-v5-c-masthead .pf-v5-c-menu-toggle,
.pf-v5-c-masthead .pf-v5-c-menu-toggle__text {
  color: var(--jinbo-masthead-text);
}

/* 侧边栏 */
.pf-v5-c-page__sidebar {
  --pf-v5-c-nav__link--Color: var(--jinbo-text-secondary);
  --pf-v5-c-nav__link--hover--Color: var(--jinbo-link);
  --pf-v5-c-nav__link--focus--Color: var(--jinbo-link);
  --pf-v5-c-nav__link--m-current--Color: var(--jinbo-link);
  --pf-v5-c-nav__link--hover--BackgroundColor: var(--jinbo-surface-nav-hover);
  --pf-v5-c-nav__link--focus--BackgroundColor: var(--jinbo-surface-nav-hover);
  --pf-v5-c-nav__link--m-current--BackgroundColor: var(--jinbo-surface-nav-hover);
  --pf-v5-c-nav--m-dark__link--Color: var(--jinbo-text-secondary);
  --pf-v5-c-nav--m-dark__link--hover--Color: var(--jinbo-link);
  --pf-v5-c-nav--m-dark__link--hover--BackgroundColor: var(--jinbo-surface-nav-hover);
  --pf-v5-c-nav--m-dark__link--m-current--Color: var(--jinbo-link);
  --pf-v5-c-nav--m-dark__link--m-current--BackgroundColor: var(--jinbo-surface-nav-hover);

  background-color: var(--jinbo-surface-sidebar) !important;
  border-right: 1px solid var(--jinbo-border) !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link,
.pf-v5-c-page__sidebar .pf-v5-c-nav__link-text,
.pf-v5-c-page__sidebar .pf-v5-c-nav__section-title {
  color: var(--jinbo-text-secondary) !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link:hover,
.pf-v5-c-page__sidebar .pf-v5-c-nav__link:hover .pf-v5-c-nav__link-text {
  color: var(--jinbo-link) !important;
  background-color: var(--jinbo-surface-nav-hover) !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link.pf-m-current,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-current > .pf-v5-c-nav__link {
  color: var(--jinbo-link) !important;
  background-color: var(--jinbo-surface-nav-hover) !important;
}

.pf-v5-c-masthead__brand {
  align-items: center;
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: transparent;
  border: none;
  padding: 0;
  margin: 0;
}

.pf-v5-c-masthead__brand::after {
  content: '安全管理终端';
  color: var(--jinbo-masthead-text);
  font-size: 26px;
  font-weight: 600;
  margin-left: 8px;
  margin-right: 8px;
}

.pf-v5-c-card,
.pf-v5-c-table {
  background-color: var(--jinbo-surface-card);
  color: var(--jinbo-text-primary);
}

.pf-v5-c-title,
.pf-v5-c-content {
  color: var(--jinbo-text-primary);
}

.pf-v5-c-tabs__link {
  color: var(--jinbo-text-secondary);
}

.pf-v5-c-tabs__item.pf-m-current .pf-v5-c-tabs__link {
  color: var(--jinbo-link);
  background-color: var(--jinbo-surface-card);
}

.pf-v5-c-menu-toggle::before,
.pf-v5-c-menu-toggle::after {
  border-color: var(--jinbo-border) !important;
}

.pf-v5-c-form-control > :is(input, select, textarea) {
  outline: none !important;
  box-shadow: none !important;
  border-color: inherit !important;
  background-color: var(--jinbo-surface-card);
  color: var(--jinbo-text-primary);
}

/* —— Admin Console 403 / ErrorRenderer：居中卡片式提示 —— */
.pf-v5-c-page__main-section:has(> .pf-v5-c-alert.pf-m-danger),
.pf-v5-c-page__main-section:has(> .pf-v5-c-alert.pf-m-danger:first-child) {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: min(60vh, 480px);
  padding-top: 12vh;
  padding-bottom: 3rem;
  background-color: var(--jinbo-surface-page) !important;
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline {
  box-sizing: border-box;
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding: 1.5rem 1.75rem;
  border: 1px solid #fecaca;
  border-top: 4px solid #dc2626;
  border-radius: 12px;
  background: var(--jinbo-surface-card);
  box-shadow: 0 8px 24px var(--jinbo-shadow);
  color: var(--jinbo-text-primary);
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__icon {
  color: #dc2626;
  font-size: 1.5rem;
  margin-top: 0.15rem;
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__title {
  margin: 0;
  color: var(--jinbo-text-primary);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.55;
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__action-group {
  margin-top: 1.1rem;
  gap: 0.75rem;
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__action-group .pf-v5-c-button,
.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline a.pf-v5-c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  background: var(--jinbo-blue);
  color: #fff !important;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border: none;
}

.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__action-group .pf-v5-c-button:hover,
.pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline a.pf-v5-c-button:hover {
  background: var(--jinbo-blue-dark);
  color: #fff !important;
  text-decoration: none;
}

@media (prefers-color-scheme: dark) {
  .pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline {
    border-color: #7f1d1d;
    border-top-color: #f87171;
  }

  .pf-v5-c-page__main-section > .pf-v5-c-alert.pf-m-danger.pf-m-inline .pf-v5-c-alert__icon {
    color: #f87171;
  }
}
