:root {
  --techniserv-primary: oklch(0.464 0.178 27.878);
  --techniserv-primary-hover: rgba(166, 20, 20, 0.9);
  --techniserv-primary-foreground: oklch(98.5% 0 0);

  --techniserv-header: var(--techniserv-primary);
  --techniserv-header-hover: var(--techniserv-primary-hover);

  --techniserv-surface: #ffffff;
  --techniserv-surface-muted: oklch(97% 0 0);
  --techniserv-sidebar-bg: var(--techniserv-surface-muted);
  --techniserv-sidebar-border: oklch(92.2% 0 0);
  --techniserv-sidebar-text: oklch(14.5% 0 0);
  --techniserv-sidebar-hover: oklch(94% 0 0);

  --techniserv-text: oklch(14.5% 0 0);
  --techniserv-text-muted: oklch(55.6% 0 0);
  --techniserv-border: oklch(92.2% 0 0);
  --techniserv-ring: oklch(70.8% 0 0);
  --techniserv-focus: rgba(161, 161, 161, 0.5);
  --techniserv-destructive: oklch(57.7% 0.245 27.325);
  --techniserv-destructive-soft: rgba(231, 0, 11, 0.08);

  --pf-v5-global--FontFamily--sans-serif: 'Geist', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --pf-v5-global--primary-color--100: var(--techniserv-primary);
  --pf-v5-global--primary-color--200: var(--techniserv-primary-hover);
  --pf-v5-global--link--Color: var(--techniserv-primary);
  --pf-v5-global--link--Color--hover: var(--techniserv-primary-hover);
  --pf-v5-global--active-color--100: var(--techniserv-primary);
  --pf-v5-global--active-color--200: var(--techniserv-primary-hover);
}

@supports (color: color-mix(in oklab, red, red)) {
  :root {
    --techniserv-primary-hover: color-mix(in oklab, var(--techniserv-primary) 90%, transparent);
    --techniserv-focus: color-mix(in oklab, var(--techniserv-ring) 50%, transparent);
    --techniserv-destructive-soft: color-mix(in oklab, var(--techniserv-destructive) 8%, transparent);
  }
}

/* Base */

.pf-v5-c-page {
  font-family: var(--pf-v5-global--FontFamily--sans-serif);
  background-color: var(--techniserv-surface);
  color: var(--techniserv-text);
}

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

/* Header */

.pf-v5-c-masthead {
  background-color: var(--techniserv-header) !important;
}

.pf-v5-c-masthead .pf-v5-c-toolbar {
  background-color: transparent !important;
}

/* Logo */

.pf-v5-c-masthead__brand,
.pf-v5-c-page__header-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
  min-width: auto;
}

.pf-v5-c-brand,
.pf-v5-c-masthead__brand img,
.pf-v5-c-page__header-brand img {
  content: url("../images/logo.png");
  height: 2rem !important;
  width: auto !important;
  max-height: 2rem !important;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.pf-v5-c-masthead__brand::after,
.pf-v5-c-page__header-brand::after {
  content: "KEYCLOAK";
  margin-left: 0.75rem;
  color: #ffffff;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

/* User dropdown button v headeru */

.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle {
  min-height: 2.625rem;
  padding: 0.5rem 0.875rem !important;
  border: 1px solid rgba(17, 24, 39, 0.16) !important;
  border-radius: 0.625rem !important;
  background-color: #ffffff !important;
  color: var(--techniserv-text) !important;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle::before,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle::after {
  display: none !important;
  content: none !important;
}

.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle:hover,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle:focus {
  background-color: #f9fafb !important;
  color: var(--techniserv-text) !important;
  border-color: rgba(17, 24, 39, 0.24) !important;
}

.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle:active,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle[aria-expanded="true"],
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle.pf-m-expanded {
  background-color: #f3f4f6 !important;
  color: var(--techniserv-text) !important;
  border-color: rgba(17, 24, 39, 0.28) !important;
}

.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle .pf-v5-c-menu-toggle__text,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle .pf-v5-c-menu-toggle__controls,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle .pf-v5-c-menu-toggle__toggle-icon,
.pf-v5-c-masthead button[data-testid="options-toggle"].pf-v5-c-menu-toggle svg {
  color: inherit !important;
  fill: currentColor !important;
}

/* Header dropdown menu */

.pf-v5-c-menu,
.pf-v5-c-dropdown__menu {
  min-width: 13rem;
  padding: 0.375rem !important;
  border: 1px solid var(--techniserv-border) !important;
  border-radius: 0.75rem !important;
  background-color: #ffffff !important;
  box-shadow:
          0 12px 24px rgba(0, 0, 0, 0.14),
          0 4px 8px rgba(0, 0, 0, 0.08) !important;
  overflow: hidden;
}

.pf-v5-c-menu__item,
.pf-v5-c-dropdown__menu-item {
  min-height: 2.5rem;
  padding: 0.625rem 0.75rem !important;
  border-radius: 0.5rem !important;
  color: var(--techniserv-text) !important;
  background-color: transparent !important;
  font-size: 0.925rem;
  font-weight: 600;
}

.pf-v5-c-menu__item-text,
.pf-v5-c-dropdown__menu-item span,
.pf-v5-c-menu__item svg,
.pf-v5-c-dropdown__menu-item svg {
  color: inherit !important;
  fill: currentColor !important;
}

.pf-v5-c-menu__item:hover,
.pf-v5-c-menu__item:focus,
.pf-v5-c-dropdown__menu-item:hover,
.pf-v5-c-dropdown__menu-item:focus {
  color: var(--techniserv-primary) !important;
  background-color: var(--techniserv-surface-muted) !important;
}

.pf-v5-c-menu__item:active,
.pf-v5-c-dropdown__menu-item:active,
.pf-v5-c-menu__item.pf-m-selected,
.pf-v5-c-dropdown__menu-item.pf-m-selected {
  color: var(--techniserv-primary-hover) !important;
  background-color: var(--techniserv-sidebar-hover) !important;
}

/* Sidebar */

.pf-v5-c-page__sidebar {
  background-color: var(--techniserv-sidebar-bg) !important;
  border-right: 1px solid var(--techniserv-sidebar-border);
}

.pf-v5-c-page__sidebar-body {
  padding: 0.75rem 0.5rem;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav {
  background: transparent !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__list {
  padding: 0;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link {
  width: -webkit-fill-available !important;
  min-height: 3rem;
  align-items: center;
  margin: 0.125rem 0.25rem;
  padding: 0.625rem 0.875rem;
  border-radius: 0.5rem;
  color: var(--techniserv-sidebar-text) !important;
  background-color: transparent !important;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link svg,
.pf-v5-c-page__sidebar .pf-v5-c-nav__toggle-icon,
.pf-v5-c-page__sidebar .pf-v5-svg {
  color: currentColor !important;
  fill: currentColor !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link:hover,
.pf-v5-c-page__sidebar .pf-v5-c-nav__link:focus {
  color: var(--techniserv-sidebar-text) !important;
  background-color: var(--techniserv-sidebar-hover) !important;
}

/* PatternFly sidebar indikátory vypínat jen v sidebaru, ne globálně */

.pf-v5-c-page__sidebar .pf-v5-c-nav__link::before,
.pf-v5-c-page__sidebar .pf-v5-c-nav__link::after,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item::before,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item::after {
  display: none !important;
  content: none !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Aktivní leaf položka */

.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:not(.pf-m-expanded) > .pf-v5-c-nav__link {
  color: #ffffff !important;
  background-color: var(--techniserv-primary) !important;
  font-weight: 700;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__link.pf-m-current:hover,
.pf-v5-c-page__sidebar .pf-v5-c-nav__link.pf-m-current:focus,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-current:not(.pf-m-expanded) > .pf-v5-c-nav__link:hover,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-current:not(.pf-m-expanded) > .pf-v5-c-nav__link:focus {
  color: #ffffff !important;
  background-color: var(--techniserv-primary-hover) !important;
}

/* Expandovaný parent s dětmi zůstane jen černý, aktivní je až konkrétní podstránka */

.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-expanded > .pf-v5-c-nav__link {
  color: var(--techniserv-sidebar-text) !important;
  background-color: transparent !important;
  font-weight: 600;
  border: none !important;
  box-shadow: none !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-expanded > .pf-v5-c-nav__link:hover,
.pf-v5-c-page__sidebar .pf-v5-c-nav__item.pf-m-expanded > .pf-v5-c-nav__link:focus {
  background-color: var(--techniserv-sidebar-hover) !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__subnav {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.pf-v5-c-page__sidebar .pf-v5-c-nav__subnav .pf-v5-c-nav__link {
  margin-left: 1rem;
  font-size: 0.9rem;
  font-weight: 500;
}

/* Typography */

.pf-v5-c-page__main h1,
.pf-v5-c-page__main h1.pf-v5-c-title {
  font-size: clamp(2rem, 2.2vw, 2.4rem) !important;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.03em;
  margin-bottom: 0.5rem;
}

.pf-v5-c-page__main h2,
.pf-v5-c-page__main h2.pf-v5-c-title {
  font-size: clamp(1.35rem, 1.6vw, 1.6rem) !important;
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 1.25rem;
}

.pf-v5-c-page__main p,
.pf-v5-c-content p {
  color: var(--techniserv-text-muted);
}

/* Main content spacing */

.pf-v5-c-page__main > .pf-v5-c-page__main-section:first-child {
  padding-bottom: 0.75rem !important;
}

.pf-v5-c-page__main > .pf-v5-c-page__main-section + .pf-v5-c-page__main-section {
  padding-top: 0.75rem !important;
}

.pf-v5-c-page__main-section > .pf-v5-c-page__main-section:first-child {
  padding-top: 0 !important;
}

.pf-v5-c-form {
  max-width: 40rem;
}

.pf-v5-c-form-control,
.pf-v5-c-text-input-group {
  min-height: 2.5rem;
  border: 1px solid var(--techniserv-border) !important;
  border-radius: 0.375rem !important;
  background-color: var(--techniserv-surface) !important;
  color: var(--techniserv-text) !important;
  box-shadow: none !important;
}

.pf-v5-c-form-control input,
.pf-v5-c-form-control textarea,
.pf-v5-c-form-control select,
.pf-v5-c-text-input-group input,
.pf-v5-c-text-input-group textarea,
.pf-v5-c-text-input-group__text-input,
.pf-v5-c-text-input-group__text,
.pf-v5-c-text-input-group__main {
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

.pf-v5-c-form-control input:focus,
.pf-v5-c-form-control textarea:focus,
.pf-v5-c-form-control select:focus,
.pf-v5-c-text-input-group input:focus,
.pf-v5-c-text-input-group textarea:focus,
.pf-v5-c-text-input-group__text-input:focus,
.pf-v5-c-text-input-group__text:focus,
.pf-v5-c-text-input-group__main:focus,
.pf-v5-c-text-input-group__text-input:focus-visible,
.pf-v5-c-text-input-group__text:focus-visible,
.pf-v5-c-text-input-group__main:focus-visible {
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

.pf-v5-c-form-control::before,
.pf-v5-c-form-control::after,
.pf-v5-c-text-input-group::before,
.pf-v5-c-text-input-group::after {
  display: none !important;
  content: none !important;
  border: none !important;
  box-shadow: none !important;
}

.pf-v5-c-form-control:focus,
.pf-v5-c-form-control:focus-within,
.pf-v5-c-text-input-group:focus-within {
  border-color: var(--techniserv-ring) !important;
  box-shadow: 0 0 0 3px var(--techniserv-focus) !important;
  outline: none !important;
}

.pf-v5-c-form-control.pf-m-error,
.pf-v5-c-text-input-group.pf-m-error {
  border-color: var(--techniserv-destructive) !important;
}

.pf-v5-c-data-list .pf-v5-u-pl-4xl .pf-v5-c-data-list__expandable-content-body {
  padding-top: 0 !important;
}

/* Links */

.pf-v5-c-page__main a:not(.pf-v5-c-button) {
  color: var(--techniserv-primary) !important;
}

.pf-v5-c-page__main a:not(.pf-v5-c-button):hover,
.pf-v5-c-page__main a:not(.pf-v5-c-button):focus,
.pf-v5-c-page__main a:not(.pf-v5-c-button):active {
  color: var(--techniserv-primary-hover) !important;
}

/* Buttons */

.pf-v5-c-button {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  cursor: pointer;
}

.pf-v5-c-button:disabled,
.pf-v5-c-button[aria-disabled="true"] {
  cursor: not-allowed;
}

.pf-v5-c-button.pf-m-primary {
  --pf-v5-c-button--m-primary--BackgroundColor: var(--techniserv-primary);
  --pf-v5-c-button--m-primary--hover--BackgroundColor: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-primary--active--BackgroundColor: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-primary--focus--BackgroundColor: var(--techniserv-primary-hover);

  background-color: var(--techniserv-primary) !important;
  border: 1px solid var(--techniserv-primary) !important;
  border-radius: 0.375rem !important;
  color: var(--techniserv-primary-foreground) !important;
  box-shadow: none !important;
}

.pf-v5-c-button.pf-m-primary:hover,
.pf-v5-c-button.pf-m-primary:focus,
.pf-v5-c-button.pf-m-primary:active {
  background-color: var(--techniserv-primary-hover) !important;
  border-color: var(--techniserv-primary-hover) !important;
  color: var(--techniserv-primary-foreground) !important;
}

.pf-v5-c-button.pf-m-secondary {
  --pf-v5-c-button--m-secondary--Color: var(--techniserv-primary);
  --pf-v5-c-button--m-secondary--hover--Color: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-secondary--active--Color: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-secondary--focus--Color: var(--techniserv-primary-hover);
  --pf-v5-c-button--after--BorderColor: var(--techniserv-primary);

  background-color: var(--techniserv-surface) !important;
  border: 1px solid var(--techniserv-primary) !important;
  border-radius: 0.375rem !important;
  color: var(--techniserv-primary) !important;
  box-shadow: none !important;
}

.pf-v5-c-button.pf-m-secondary::after {
  border-color: var(--techniserv-primary) !important;
}

.pf-v5-c-button.pf-m-secondary:hover,
.pf-v5-c-button.pf-m-secondary:focus,
.pf-v5-c-button.pf-m-secondary:active {
  color: var(--techniserv-primary-hover) !important;
  background-color: var(--techniserv-surface) !important;
  border-color: var(--techniserv-primary-hover) !important;
}

.pf-v5-c-button.pf-m-secondary:hover::after,
.pf-v5-c-button.pf-m-secondary:focus::after,
.pf-v5-c-button.pf-m-secondary:active::after {
  border-color: var(--techniserv-primary-hover) !important;
}

.pf-v5-c-button.pf-m-link,
a.pf-v5-c-button.pf-m-link,
button.pf-v5-c-button.pf-m-link {
  --pf-v5-c-button--m-link--Color: var(--techniserv-primary);
  --pf-v5-c-button--m-link--hover--Color: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-link--active--Color: var(--techniserv-primary-hover);
  --pf-v5-c-button--m-link--focus--Color: var(--techniserv-primary-hover);

  color: var(--techniserv-primary) !important;
}

.pf-v5-c-button.pf-m-link:hover,
.pf-v5-c-button.pf-m-link:focus,
.pf-v5-c-button.pf-m-link:active,
a.pf-v5-c-button.pf-m-link:hover,
a.pf-v5-c-button.pf-m-link:focus,
a.pf-v5-c-button.pf-m-link:active,
button.pf-v5-c-button.pf-m-link:hover,
button.pf-v5-c-button.pf-m-link:focus,
button.pf-v5-c-button.pf-m-link:active {
  color: var(--techniserv-primary-hover) !important;
}

.pf-v5-c-button.pf-m-link svg,
.pf-v5-c-button.pf-m-link .pf-v5-svg {
  color: inherit !important;
  fill: currentColor !important;
}

/* Jump to section schovat jen v případě, že má opravdu jednu položku */

@supports selector(:has(*)) {
  .pf-v5-l-grid__item:has(.pf-v5-c-jump-links__list > .pf-v5-c-jump-links__item:only-child) {
    display: none !important;
  }

  .pf-v5-l-grid:has(.pf-v5-c-jump-links__list > .pf-v5-c-jump-links__item:only-child)
  > .pf-v5-l-grid__item:not(:has(.pf-v5-c-jump-links)) {
    grid-column: 1 / -1 !important;
  }
}

/* Mobile account layout cleanup */

@media (max-width: 1000px) {
  /* Header v jednom řádku */

  .pf-v5-c-masthead {
    min-height: 4.25rem !important;
    padding: 0 1rem !important;
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.75rem;
  }

  .pf-v5-c-masthead__toggle {
    flex: 0 0 auto !important;
    order: 1;
  }

  .pf-v5-c-masthead__brand,
  .pf-v5-c-page__header-brand {
    order: 2;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .pf-v5-c-masthead__brand img,
  .pf-v5-c-page__header-brand img {
    height: 1.65rem !important;
    max-height: 1.65rem !important;
  }

  .pf-v5-c-masthead__brand::after,
  .pf-v5-c-page__header-brand::after {
    font-size: 1rem;
    margin-left: 0.6rem;
    line-height: 1;
  }

  .pf-v5-c-masthead__content {
    order: 3;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin-left: auto !important;
  }

  .pf-v5-c-masthead .pf-v5-c-toolbar,
  .pf-v5-c-masthead .pf-v5-c-toolbar__content,
  .pf-v5-c-masthead .pf-v5-c-toolbar__content-section {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    gap: 0.5rem;
  }

  .pf-v5-c-masthead .pf-v5-c-toolbar__item {
    margin: 0 !important;
  }

  .pf-v5-c-masthead .pf-v5-c-toolbar__item:empty {
    display: none !important;
  }

  .pf-v5-c-page__main .pf-v5-l-split__item {
    text-align: left !important;
  }

  .pf-v5-c-page__main .pf-v5-u-float-right {
    float: none !important;
    text-align: right !important;
  }

  /* Aktivita zařízení */

  .pf-v5-c-page__main-section > .pf-v5-l-split {
    align-items: center;
  }

  .pf-v5-c-page__main-section > .pf-v5-l-split .pf-v5-c-title {
    margin-bottom: 0 !important;
  }

  /* Přihlášení */

  .pf-v5-c-data-list__item-content {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
  }

  .pf-v5-c-data-list__item-action {
    order: 10 !important;
    margin-left: 0 !important;
    width: 100% !important;
  }

  .pf-v5-c-data-list__item-action .pf-v5-c-button {
    width: 100% !important;
    justify-content: center !important;
  }

  .pf-v5-c-data-list__item-action {
    padding-block-start: 0 !important;
  }
}
