@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 400 700;
  src: url("../fonts/space-grotesk-latin.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/ibm-plex-mono-600.woff2") format("woff2");
  font-display: swap;
}

body {
  --faray-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --faray-font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
  --faray-background: #f9fafb;
  --faray-surface: #ffffff;
  --faray-surface-subtle: #f3f4f6;
  --faray-text: #111827;
  --faray-text-secondary: #374151;
  --faray-muted: #4b5563;
  --faray-border: #e5e7eb;
  --faray-border-strong: #d1d5db;
  --faray-primary: #000000;
  --faray-primary-hover: #1f2937;
  --faray-primary-foreground: #ffffff;
  --faray-secondary: #f3f4f6;
  --faray-secondary-hover: #e5e7eb;
  --faray-danger: #dc2626;
  --faray-danger-soft: #fef2f2;
  --faray-warning: #b45309;
  --faray-warning-soft: #fffbeb;
  --faray-success: #15803d;
  --faray-success-soft: #f0fdf4;
  --faray-info: #2563eb;
  --faray-info-soft: #eff6ff;
  --faray-ring: rgba(0, 0, 0, 0.08);
  --faray-shadow-sm: 0 1px 2px rgba(17, 24, 39, 0.04);
  --faray-shadow-lg: 0 18px 32px -28px rgba(17, 24, 39, 0.28);
  --faray-radius: 0.5rem;
  color-scheme: light;
}

html.pf-v5-theme-dark body,
html.pf-v6-theme-dark body,
html.kc-dark-mode body {
  --faray-background: #050608;
  --faray-surface: #111318;
  --faray-surface-subtle: #1a1d24;
  --faray-text: #f9fafb;
  --faray-text-secondary: #d1d5db;
  --faray-muted: #9ca3af;
  --faray-border: #2b3038;
  --faray-border-strong: #3f4652;
  --faray-primary: #ffffff;
  --faray-primary-hover: #e5e7eb;
  --faray-primary-foreground: #050608;
  --faray-secondary: #1a1d24;
  --faray-secondary-hover: #242936;
  --faray-danger: #f87171;
  --faray-danger-soft: rgba(127, 29, 29, 0.24);
  --faray-warning: #fbbf24;
  --faray-warning-soft: rgba(120, 53, 15, 0.28);
  --faray-success: #4ade80;
  --faray-success-soft: rgba(20, 83, 45, 0.28);
  --faray-info: #93c5fd;
  --faray-info-soft: rgba(30, 64, 175, 0.28);
  --faray-ring: rgba(255, 255, 255, 0.14);
  --faray-shadow-sm: none;
  --faray-shadow-lg: 0 24px 42px -28px rgba(0, 0, 0, 0.85);
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  body {
    --faray-background: #050608;
    --faray-surface: #111318;
    --faray-surface-subtle: #1a1d24;
    --faray-text: #f9fafb;
    --faray-text-secondary: #d1d5db;
    --faray-muted: #9ca3af;
    --faray-border: #2b3038;
    --faray-border-strong: #3f4652;
    --faray-primary: #ffffff;
    --faray-primary-hover: #e5e7eb;
    --faray-primary-foreground: #050608;
    --faray-secondary: #1a1d24;
    --faray-secondary-hover: #242936;
    --faray-danger: #f87171;
    --faray-danger-soft: rgba(127, 29, 29, 0.24);
    --faray-warning: #fbbf24;
    --faray-warning-soft: rgba(120, 53, 15, 0.28);
    --faray-success: #4ade80;
    --faray-success-soft: rgba(20, 83, 45, 0.28);
    --faray-info: #93c5fd;
    --faray-info-soft: rgba(30, 64, 175, 0.28);
    --faray-ring: rgba(255, 255, 255, 0.14);
    --faray-shadow-sm: none;
    --faray-shadow-lg: 0 24px 42px -28px rgba(0, 0, 0, 0.85);
    color-scheme: dark;
  }
}

body {
  background: var(--faray-background);
  color: var(--faray-text);
  font-family: var(--faray-font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body .keycloak__loading-container {
  background: var(--faray-background) !important;
  color: var(--faray-text) !important;
}

body #loading-text {
  color: var(--faray-text);
}

body #app {
  min-height: 100vh;
  color: inherit;
}

body #app > svg[role="progressbar"],
body .pf-v5-c-page__main > svg[role="progressbar"] {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1000;
  translate: -50% -50%;
}

body :is(.pf-v5-c-page, .pf-v5-c-page__main, .pf-v5-c-page__main-section) {
  background: transparent;
}

body .pf-v5-c-page__main {
  padding: 0 0 1rem;
}

body :is(h1, h2, h3, h4, .pf-v5-c-title) {
  color: var(--faray-text);
  font-family: var(--faray-font-sans);
  letter-spacing: 0;
}

body h1,
body .pf-v5-c-title.pf-m-2xl,
body .pf-v5-c-title.pf-m-3xl {
  font-size: 1.875rem;
  font-weight: 700;
}

body :is(p, span, small, .pf-v5-c-content, .pf-v5-c-description-list__text) {
  color: var(--faray-muted);
}

body a {
  color: var(--faray-text-secondary);
  font-weight: 500;
  text-decoration: none;
}

body a:hover,
body a:focus-visible {
  color: var(--faray-text);
}

body .pf-v5-c-masthead,
body .pf-v5-c-toolbar,
body .pf-v5-c-page__main-breadcrumb,
body .pf-v5-c-page__main-tabs {
  background: var(--faray-surface);
  border-bottom: 1px solid var(--faray-border);
  box-shadow: none;
}

body .pf-v5-c-page__sidebar,
body .pf-v5-c-page__sidebar-body {
  --pf-v5-c-nav__section--BorderColor: var(--faray-border);
  --pf-v5-c-nav__section-title--BorderColor: var(--faray-border);
  background: var(--faray-surface);
  border-right: 1px solid var(--faray-border);
}

body .pf-v5-c-page__sidebar :is(.pf-v5-c-nav, .pf-v5-c-nav__section, .pf-v5-c-nav__section-title, .pf-v5-c-nav__list, .pf-v5-c-nav__item) {
  border-color: var(--faray-border) !important;
}

body :is(.pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-masthead__main, .pf-v5-c-masthead__content) {
  background: var(--faray-surface);
}

body .pf-v5-c-toolbar {
  --pf-v5-c-toolbar--BackgroundColor: var(--faray-surface);
  color: var(--faray-text);
}

body :is(.pf-v5-c-toolbar__content, .pf-v5-c-toolbar__group, .pf-v5-c-toolbar__item) {
  color: var(--faray-text);
}

body :is(.pf-v5-c-page__main-container, .pf-v5-c-page__drawer-main, .pf-v5-c-page__drawer-body) {
  background: transparent;
}

body img[src$="faray-sso-logo.png"] {
  width: auto;
  height: 2.35rem;
}

html.pf-v5-theme-dark body img[src$="faray-sso-logo.png"],
html.pf-v6-theme-dark body img[src$="faray-sso-logo.png"],
html.kc-dark-mode body img[src$="faray-sso-logo.png"] {
  filter: invert(1) grayscale(1) brightness(1.16);
}

@media (prefers-color-scheme: dark) {
  body img[src$="faray-sso-logo.png"] {
    filter: invert(1) grayscale(1) brightness(1.16);
  }
}

body .pf-v5-c-nav__link,
body .pf-v5-c-nav__link > span {
  color: var(--faray-text-secondary);
  font-weight: 500;
}

body .pf-v5-c-nav__link {
  margin: 0.125rem 0.5rem;
  border-radius: var(--faray-radius);
}

body .pf-v5-c-nav__link:hover,
body .pf-v5-c-nav__link:focus-visible {
  background: var(--faray-surface-subtle);
  color: var(--faray-text);
}

body .pf-v5-c-nav__link.pf-m-current,
body .pf-v5-c-nav__link[aria-current="page"] {
  background: var(--faray-surface-subtle);
  color: var(--faray-text);
  font-weight: 600;
  box-shadow: none;
}

body .pf-v5-c-nav__link.pf-m-current::before,
body .pf-v5-c-nav__link[aria-current="page"]::before {
  border-color: transparent !important;
  background: transparent !important;
}

body .pf-v5-c-nav__link.pf-m-current::after,
body .pf-v5-c-nav__link[aria-current="page"]::after {
  border-color: transparent !important;
  background: transparent !important;
}

body .pf-v5-c-nav__link.pf-m-current > span,
body .pf-v5-c-nav__link[aria-current="page"] > span {
  color: inherit;
}

body .pf-v5-c-jump-links__link {
  color: var(--faray-text-secondary);
}

body .pf-v5-c-jump-links__link::before {
  border-color: var(--faray-border-strong) !important;
  border-inline-start-color: var(--faray-border-strong) !important;
}

body .pf-v5-c-jump-links__item.pf-m-current .pf-v5-c-jump-links__link,
body .pf-v5-c-jump-links__link[aria-current="true"] {
  color: var(--faray-text);
  font-weight: 600;
}

body .pf-v5-c-jump-links__item.pf-m-current .pf-v5-c-jump-links__link::before,
body .pf-v5-c-jump-links__link[aria-current="true"]::before {
  border-color: var(--faray-primary) !important;
  border-inline-start-color: var(--faray-primary) !important;
}

body :is(.pf-v5-c-divider, .pf-v5-c-nav__section, .pf-v5-c-nav__list) {
  border-color: var(--faray-border) !important;
}

body .pf-v5-c-card,
body .pf-v5-c-empty-state,
body .pf-v5-c-drawer__panel {
  background: var(--faray-surface);
  border: 1px solid var(--faray-border);
  border-radius: var(--faray-radius);
  box-shadow: none;
}

body .pf-v5-c-modal-box,
body .pf-v5-c-popover__content,
body .pf-v5-c-menu,
body .pf-v5-c-dropdown__menu,
body .pf-v5-c-context-selector__menu {
  background: var(--faray-surface);
  border: 1px solid var(--faray-border);
  border-radius: var(--faray-radius);
  box-shadow: var(--faray-shadow-lg);
}

body .pf-v5-c-table,
body .pf-v5-c-table__tbody,
body .pf-v5-c-table__thead {
  background: transparent;
}

body .pf-v5-c-table thead th,
body .pf-v5-c-table__thead th {
  color: var(--faray-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body .pf-v5-c-table tbody tr,
body .pf-v5-c-table__tbody > tr {
  background: var(--faray-surface);
}

body .pf-v5-c-table tbody tr:hover,
body .pf-v5-c-table__tbody > tr:hover {
  background: var(--faray-surface-subtle);
}

body .pf-v5-c-table td,
body .pf-v5-c-table th {
  border-color: var(--faray-border);
  color: var(--faray-text);
}

body :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select, .pf-v5-c-form-control, .pf-v5-c-text-input-group__text-input, .pf-v5-c-menu-toggle, .pf-v5-c-context-selector__toggle) {
  min-height: 2.5rem;
  border: 1px solid var(--faray-border);
  border-radius: var(--faray-radius);
  background: var(--faray-surface);
  color: var(--faray-text);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}

body .pf-v5-c-form-control::before,
body .pf-v5-c-form-control::after {
  border-color: transparent !important;
  box-shadow: none !important;
}

body :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select, .pf-v5-c-form-control, .pf-v5-c-text-input-group__text-input, .pf-v5-c-menu-toggle, .pf-v5-c-context-selector__toggle)::placeholder {
  color: #9ca3af;
}

body :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select, .pf-v5-c-form-control, .pf-v5-c-text-input-group__text-input, .pf-v5-c-menu-toggle, .pf-v5-c-context-selector__toggle):focus,
body :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select, .pf-v5-c-form-control, .pf-v5-c-text-input-group__text-input, .pf-v5-c-menu-toggle, .pf-v5-c-context-selector__toggle):focus-visible {
  border-color: var(--faray-text);
  box-shadow: 0 0 0 3px var(--faray-ring);
  outline: none;
}

body :is(.pf-v5-c-menu-toggle, .pf-v5-c-context-selector__toggle) {
  --pf-v5-c-menu-toggle--Color: var(--faray-text-secondary);
  --pf-v5-c-menu-toggle--BackgroundColor: var(--faray-surface);
}

body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle {
  --pf-v5-c-menu-toggle--BorderColor: var(--faray-border);
  --pf-v5-c-menu-toggle--Color: var(--faray-text-secondary);
  --pf-v5-c-menu-toggle--BackgroundColor: var(--faray-surface);
  --pf-v5-c-menu-toggle--hover--BorderColor: var(--faray-border-strong);
  --pf-v5-c-menu-toggle--hover--Color: var(--faray-text);
  --pf-v5-c-menu-toggle--hover--BackgroundColor: var(--faray-surface-subtle);
  --pf-v5-c-menu-toggle--focus--BorderColor: var(--faray-text);
  --pf-v5-c-menu-toggle--focus--Color: var(--faray-text);
  --pf-v5-c-menu-toggle--focus--BackgroundColor: var(--faray-surface-subtle);
  --pf-v5-c-menu-toggle--active--BorderColor: var(--faray-text);
  --pf-v5-c-menu-toggle--m-expanded--BorderColor: var(--faray-text);
  border-color: var(--faray-border) !important;
  background: var(--faray-surface) !important;
  color: var(--faray-text-secondary) !important;
}

body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle:hover,
body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle:focus,
body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle:focus-visible,
body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle:active,
body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle.pf-m-expanded {
  border-color: var(--faray-text) !important;
  background: var(--faray-surface-subtle) !important;
  color: var(--faray-text) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px var(--faray-ring) !important;
}

body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle::before,
body :is(.pf-v5-c-masthead, .pf-v5-c-page__header, .pf-v5-c-page__header-tools, .pf-v5-c-toolbar) .pf-v5-c-menu-toggle::after {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body input[type="checkbox"],
body input[type="radio"] {
  accent-color: var(--faray-primary);
}

body .pf-v5-c-button {
  min-height: 2.5rem;
  border: 1px solid transparent;
  border-radius: var(--faray-radius);
  font-family: var(--faray-font-sans);
  font-size: 1rem;
  font-weight: 600;
  box-shadow: none;
}

body .pf-v5-c-button.pf-m-primary {
  background: var(--faray-primary);
  color: var(--faray-primary-foreground);
  border-color: var(--faray-primary);
}

body .pf-v5-c-button.pf-m-primary:hover,
body .pf-v5-c-button.pf-m-primary:focus-visible {
  background: var(--faray-primary-hover);
}

body :is(.pf-v5-c-button.pf-m-secondary, .pf-v5-c-button.pf-m-control) {
  background: var(--faray-secondary);
  color: var(--faray-text);
  border-color: var(--faray-border);
}

body :is(.pf-v5-c-button.pf-m-link, .pf-v5-c-button.pf-m-plain) {
  background: transparent;
  color: var(--faray-text-secondary);
  border-color: transparent;
}

body :is(.pf-v5-c-button.pf-m-secondary, .pf-v5-c-button.pf-m-control):hover {
  background: var(--faray-secondary-hover);
}

body :is(.pf-v5-c-button.pf-m-link, .pf-v5-c-button.pf-m-plain):hover {
  background: var(--faray-secondary);
  color: var(--faray-text);
}

body .pf-v5-c-tabs__link {
  min-height: 2.75rem;
  border: 0;
  background: transparent;
  color: var(--faray-muted);
  font-weight: 500;
  box-shadow: none;
}

body .pf-v5-c-tabs__link:hover,
body .pf-v5-c-tabs__link:focus-visible {
  color: var(--faray-text);
}

body .pf-v5-c-tabs__item.pf-m-current .pf-v5-c-tabs__link,
body .pf-v5-c-tabs__item[aria-current="page"] .pf-v5-c-tabs__link {
  color: var(--faray-text);
  font-weight: 600;
}

body .pf-v5-c-tabs__item,
body .pf-v5-c-tabs__item.pf-m-current {
  border: 0;
  background: transparent;
  box-shadow: none;
}

body .pf-v5-c-tabs__item.pf-m-current .pf-v5-c-tabs__link::after,
body .pf-v5-c-tabs__item[aria-current="page"] .pf-v5-c-tabs__link::after {
  border: 0 !important;
  background: var(--faray-primary) !important;
  height: 2px;
}

body .pf-v5-c-tabs__item.pf-m-current::before,
body .pf-v5-c-tabs__item.pf-m-current::after,
body .pf-v5-c-tabs__link::before {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body .pf-v5-c-alert {
  border-radius: var(--faray-radius);
  border: 1px solid var(--faray-border);
}

body .pf-v5-c-alert.pf-m-success {
  background: var(--faray-success-soft);
  border-color: #bbf7d0;
}

body .pf-v5-c-alert.pf-m-warning {
  background: var(--faray-warning-soft);
  border-color: #fde68a;
}

body .pf-v5-c-alert.pf-m-danger {
  background: var(--faray-danger-soft);
  border-color: #fecaca;
}

body .pf-v5-c-alert.pf-m-info {
  background: var(--faray-info-soft);
  border-color: #bfdbfe;
}

body .pf-v5-c-label,
body .pf-v5-c-chip,
body .pf-v5-c-badge {
  border-radius: 999px;
  background: var(--faray-secondary);
  color: var(--faray-text);
}

body .pf-v5-c-label.pf-m-blue,
body .pf-v5-c-label.pf-m-blue .pf-v5-c-label__content {
  background: var(--faray-secondary);
  color: var(--faray-text-secondary);
}

body .pf-v5-c-label.pf-m-blue .pf-v5-c-label__content::before {
  border-color: var(--faray-border) !important;
}

body :is(code, pre, .pf-v5-c-code-block, .pf-v5-c-code-block__content, .pf-v5-c-clipboard-copy__text) {
  font-family: var(--faray-font-mono);
}

body .pf-v5-c-code-block,
body pre,
body .pf-v5-c-clipboard-copy__text {
  border-radius: var(--faray-radius);
  background: #111827;
  color: #f9fafb;
  border: 1px solid #1f2937;
}

body .pf-v5-c-backdrop {
  background: rgba(17, 24, 39, 0.6);
}
