/* pipeticket - vizuálna téma podľa realitnysystem.sk ("Smer A · Systém").
   Vlastné štýly nad Bootstrapom, rozmery v rem, žiadne inline štýly v šablónach. */
:root {
  /* plochy */
  --noc: #0E1420;
  /* prihlásenie, tmavé plochy */
  --noc-2: #151D2E;
  /* karty na tmavom */
  --papier: #FFFFFF;
  --hmla: #F4F6FA;
  /* svetlé pozadie aplikácie */
  /* linky */
  --linka: #E3E8F0;
  --linka-tma: #27314C;
  /* text */
  --text: #141B2B;
  --tlmene: #5B6780;
  --tlmene-tma: #98A5C0;
  /* akcenty */
  --signal: #2F5BFF;
  /* jediný akcent */
  --signal-svetly: #7E9CFF;
  --cakanie: #C98A00;
  /* jantárová - čaká na zákazníka, termín dnes, prítomnosť */
  --vyriesene: #2E8B57;
  /* zelená - vyriešený tiket (bodka stavu) */
  /* interná poznámka - teplá plocha a linka (odlíšená od komunikácie so zákazníkom) */
  --poznamka-plocha: #FFF9E6;
  --poznamka-linka: #F2E3B3;
  /* odpoveď zákazníkovi - chladná plocha s akcentom (odíde e-mailom, opak teplej poznámky) */
  --odpoved-plocha: #EEF2FF;
  --odpoved-linka: #D6E0FF;
  /* miery */
  --r: 0.875rem;
  /* 14px */
  --pt-hlavicka: 4.25rem;
  /* 68px */
  /* pôvodné rozmery aplikácie */
  --pt-sidebar-width: 15rem;
  /* prepis Bootstrap premenných na tému Smer A */
  --bs-primary: var(--signal);
  --bs-primary-rgb: 47, 91, 255;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, sans-serif;
  --bs-body-color: var(--text);
  --bs-secondary-color: var(--tlmene);
  --bs-border-color: var(--linka);
  --bs-border-radius: 0.625rem;
  --bs-border-radius-sm: 0.5rem;
  --bs-border-radius-lg: 0.75rem;
  --bs-link-color: var(--signal);
  --bs-link-color-rgb: 47, 91, 255;
  --bs-link-hover-color: #2449D8;
  --bs-link-hover-color-rgb: 36, 73, 216;
}
body {
  background: var(--hmla);
  color: var(--text);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.02em;
}
a {
  color: var(--bs-link-color);
}
/* focus ring v akcente - vychádza z --bs-primary-rgb, len doladené */
.form-control:focus,
.form-select:focus {
  border-color: var(--signal);
  box-shadow: 0 0 0 0.25rem rgba(47, 91, 255, 0.25);
}
.btn-primary {
  --bs-btn-bg: var(--signal);
  --bs-btn-border-color: var(--signal);
  --bs-btn-hover-bg: #2449D8;
  --bs-btn-hover-border-color: #2449D8;
  --bs-btn-active-bg: #2449D8;
  --bs-btn-active-border-color: #2449D8;
  --bs-btn-focus-shadow-rgb: 47, 91, 255;
}
/* ---- nadtitul - mono, uppercase (JetBrains Mono), napr. „Prihlásenie“ nad nadpisom ---- */
.pt-nadtitul {
  display: block;
  margin-bottom: 1.125rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--signal);
}
/* ---- hlavička aplikácie (podľa .hd zo zdroja) ---------------------- */
.pt-hd {
  position: sticky;
  top: 0;
  z-index: 60;
  height: var(--pt-hlavicka);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(0.75rem);
  backdrop-filter: blur(0.75rem);
  border-bottom: 1px solid var(--linka);
  color: var(--text);
}
.pt-hd .container-fluid {
  height: 100%;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.pt-hd-logo {
  display: flex;
  align-items: center;
  color: var(--text);
  text-decoration: none;
  flex: none;
}
.pt-hd-logo svg {
  height: 1.25rem;
  width: auto;
  display: block;
}
.pt-hd-nav {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-hd-nav a {
  text-decoration: none;
  font-size: 0.9375rem;
  color: var(--tlmene);
  padding: 0.25rem 0;
  border-bottom: 1px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}
.pt-hd-nav a:hover {
  color: var(--text);
  border-color: var(--signal);
}
.pt-hd-vpravo {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.875rem;
}
/* ---- zvonček v hlavičke (upozornenia + Moja posledná akcia) ------------ */
.pt-zvon {
  position: relative;
}
.pt-zvon-tlacidlo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  color: var(--tlmene);
  transition: color 0.15s, border-color 0.15s;
}
.pt-zvon-tlacidlo:hover,
.pt-zvon-tlacidlo[aria-expanded="true"] {
  color: var(--text);
  border-color: var(--linka);
}
.pt-zvon-tlacidlo svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* odznak počtu neprečítaných - pri 0 prázdny a skrytý */
.pt-zvon-odznak {
  position: absolute;
  top: -0.125rem;
  right: -0.25rem;
  min-width: 1.125rem;
  height: 1.125rem;
  padding: 0 0.3125rem;
  border-radius: 0.5625rem;
  background: var(--signal);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.125rem;
  text-align: center;
  box-shadow: 0 0 0 0.125rem var(--papier);
}
.pt-zvon-odznak:empty {
  display: none;
}
/* panel pod zvončekom - tieň, lebo je nad obsahom stránky */
.pt-zvon-panel {
  position: absolute;
  top: calc(100% + 1.25rem);
  /* kúsok pod spodnou linkou hlavičky */
  right: 0;
  z-index: 70;
  width: 24rem;
  max-height: min(36rem, calc(100vh - var(--pt-hlavicka) - 1.5rem));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.12), 0 0.125rem 0.375rem rgba(14, 20, 32, 0.06);
}
.pt-zvon-nadpis {
  margin: 0;
  font-size: 0.9375rem;
}
/* Moja posledná akcia - oddelená linkou nad upozorneniami */
.pt-zvon-posledna {
  padding: 0.875rem 1rem;
  border-bottom: 1px solid var(--linka);
  background: var(--hmla);
}
.pt-zvon-posledna .pt-zvon-nadpis {
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-zvon-akcia {
  margin: 0.25rem 0 0.625rem;
  font-size: 0.875rem;
}
.pt-zvon-tlacidla {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.pt-zvon-tlacidla .btn {
  background: var(--papier);
}
.pt-zvon-skratky {
  margin-left: auto;
  font-size: 0.75rem;
}
.pt-zvon-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.875rem 1rem 0.5rem;
}
/* „Označiť všetko ako prečítané" - tiché textové tlačidlo */
.pt-zvon-vsetky {
  padding: 0;
  border: 0;
  background: none;
  color: var(--signal);
  font-size: 0.8125rem;
}
.pt-zvon-vsetky:hover {
  text-decoration: underline;
}
.pt-zvon-zoznam {
  margin: 0;
  padding: 0 0 0.375rem;
  list-style: none;
}
.pt-zvon-polozka {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.625rem 1rem;
  color: var(--text);
  text-decoration: none;
}
.pt-zvon-polozka:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-zvon-polozka:focus-visible {
  outline-offset: -0.125rem;
}
.pt-zvon-ikona {
  flex: none;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.125rem;
  fill: none;
  stroke: var(--tlmene);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-zvon-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
  font-size: 0.875rem;
}
.pt-zvon-predmet,
.pt-zvon-meta {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--tlmene);
  font-size: 0.8125rem;
}
.pt-zvon-meta {
  font-size: 0.75rem;
}
/* neprečítané: tučnejší text a bodka --signal */
.pt-zvon-polozka.is-neprecitane .pt-zvon-hlavny {
  font-weight: 600;
}
.pt-zvon-polozka.is-neprecitane .pt-zvon-ikona {
  stroke: var(--text);
}
.pt-zvon-bodka {
  flex: none;
  width: 0.5rem;
  height: 0.5rem;
  margin-top: 0.375rem;
  border-radius: 50%;
  background: var(--signal);
}
.pt-zvon-prazdne {
  margin: 0;
  padding: 0.75rem 1rem 1.25rem;
  color: var(--tlmene);
  font-size: 0.875rem;
}
/* stránka upozornení (bez JS) - rovnaký obsah v karte */
.pt-zvon-stranka {
  max-width: 32rem;
  margin: 0 auto;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  overflow: hidden;
}
/* === Horná lišta (UX A) ===================================================
   Prepínač firmy (tlačidlo s iniciálou + menu), pracovná navigácia, koliesko Nastavení firmy, avatar
   s menu (layouts/app.blade.php, public/js/lista.js), spodná lišta sekcií na mobile a záložky stĺpcov
   nástenky na mobile (Profil → „Nástenka na mobile"). Pravidlá: docs/ui-pravidla.md → Horná lišta. */
/* ľavá časť lišty: logo · firma · Tikety Klienti - menšie medzery než zvyšok */
.pt-hd .container-fluid {
  gap: 1rem;
}
.pt-hd-nav-obal {
  margin-left: 0.5rem;
}
/* pracovná navigácia: aktívna sekcia ako jemná pilulka */
.pt-hd-nav {
  gap: 0.25rem;
}
.pt-hd-nav a {
  display: inline-flex;
  align-items: center;
  height: 2.25rem;
  padding: 0 0.75rem;
  border: 0;
  border-radius: 0.625rem;
  color: var(--tlmene);
  font-weight: 500;
}
.pt-hd-nav a:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-hd-nav a.is-aktivna {
  background: var(--hmla);
  color: var(--text);
  font-weight: 600;
}
.pt-hd-vpravo {
  gap: 0.5rem;
}
/* ---- menu v lište (spoločné pre firmu a avatar) ---- */
.pt-lista-menu {
  position: relative;
}
.pt-lista-sipka {
  flex: none;
  width: 0.75rem;
  height: 0.75rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: var(--tlmene);
  transition: transform 0.15s;
}
.pt-lista-menu.is-otvorene .pt-lista-sipka {
  transform: rotate(180deg);
}
.pt-lista-panel {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  z-index: 70;
  min-width: 15rem;
  max-width: min(22rem, calc(100vw - 1.5rem));
  max-height: calc(100vh - var(--pt-hlavicka) - 1rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: 0.375rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.12), 0 0.125rem 0.375rem rgba(14, 20, 32, 0.06);
}
.pt-lista-panel[hidden] {
  display: none;
}
.pt-lista-sekcia {
  margin: 0;
  padding: 0.625rem 0.75rem 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tlmene);
}
.pt-lista-skupina,
.pt-lista-odhlasit {
  margin-top: 0.375rem;
  padding-top: 0.375rem;
  border-top: 1px solid var(--linka);
}
.pt-lista-polozka {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.375rem 0.75rem;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--text);
  font-size: 0.9375rem;
  text-align: left;
  text-decoration: none;
}
.pt-lista-polozka:hover,
.pt-lista-polozka:focus {
  background: var(--hmla);
  color: var(--text);
}
.pt-lista-polozka:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: -0.125rem;
}
.pt-lista-polozka[aria-current="page"],
.pt-lista-polozka[aria-checked="true"] {
  font-weight: 600;
}
.pt-lista-polozka.is-cervena {
  color: var(--bs-danger);
}
.pt-lista-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pt-lista-fajka {
  flex: none;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: var(--signal);
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* ---- prepínač firmy ---- */
.pt-firma-tlacidlo {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  max-width: 16rem;
  height: 2.25rem;
  padding: 0 0.625rem 0 0.375rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  background: var(--papier);
  color: var(--text);
  font-size: 0.9375rem;
  font-weight: 600;
}
.pt-firma-tlacidlo:hover,
.pt-firma-tlacidlo[aria-expanded="true"] {
  border-color: color-mix(in srgb, var(--tlmene) 40%, var(--linka));
}
.pt-firma-tlacidlo.is-staticke {
  border-color: transparent;
  background: transparent;
}
.pt-firma-nazov {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pt-firma-inicial {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 0.375rem;
  background: var(--odpoved-plocha);
  color: var(--signal);
  font-size: 0.75rem;
  font-weight: 700;
}
/* ---- ikonové tlačidlo (koliesko) - rovnaký vzhľad ako zvonček ---- */
.pt-lista-ikona {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid transparent;
  border-radius: 50%;
  color: var(--tlmene);
  transition: color 0.15s, border-color 0.15s;
}
.pt-lista-ikona:hover,
.pt-lista-ikona[aria-current="page"] {
  color: var(--text);
  border-color: var(--linka);
}
.pt-lista-ikona svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* ---- avatar s menu ---- */
.pt-ja-tlacidlo {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  height: 2.25rem;
  padding: 0 0.375rem 0 0.125rem;
  border: 1px solid transparent;
  border-radius: 1.125rem;
  background: transparent;
  color: var(--text);
}
.pt-ja-tlacidlo:hover,
.pt-ja-tlacidlo[aria-expanded="true"] {
  border-color: var(--linka);
}
.pt-avatar.pt-ja-avatar {
  width: 2rem;
  height: 2rem;
  background: var(--text);
  border-color: var(--text);
  color: var(--papier);
  font-size: 0.75rem;
}
.pt-ja-panel {
  left: auto;
  right: 0;
}
.pt-ja-hlavicka {
  display: flex;
  flex-direction: column;
  padding: 0.5rem 0.75rem 0.625rem;
  margin-bottom: 0.375rem;
  border-bottom: 1px solid var(--linka);
}
.pt-ja-meno {
  font-weight: 600;
}
.pt-ja-email {
  font-size: 0.8125rem;
  color: var(--tlmene);
  overflow-wrap: anywhere;
}
/* ---- spodná lišta sekcií - len mobil ---- */
.pt-spodna-lista {
  display: none;
}
/* ---- záložky stĺpcov nástenky - len mobil a len pri nastavení „Stĺpce ako záložky" ---- */
.pt-zalozky-stlpcov {
  display: none;
}
@media (max-width: 991.98px) {
  :root {
    --pt-hlavicka: 3.5rem;
    --pt-spodna-lista: 3.75rem;
  }
  /* backdrop-filter by bol „containing block" pre position: fixed - spodný sheet menu by sa
       zmestil len do výšky lišty. Na mobile preto plné pozadie bez rozmazania. */
  .pt-hd {
    background: var(--papier);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  /* lišta na 1 riadok: [firma ▾] … zvonček · avatar. Logo, navigácia a koliesko sú inde. */
  .pt-hd .container-fluid {
    gap: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .pt-hd-logo,
  .pt-hd-nav-obal,
  .pt-lista-nastavenia {
    display: none;
  }
  .pt-lista-menu.pt-firma,
  .pt-hd > .container-fluid > .pt-firma-tlacidlo {
    min-width: 0;
    flex: 0 1 auto;
  }
  .pt-firma-tlacidlo {
    max-width: 100%;
    border-color: transparent;
    padding-left: 0.25rem;
  }
  .pt-hd-vpravo {
    flex: none;
    gap: 0.25rem;
  }
  /* menu ako spodný „sheet" cez celú šírku; stmavenie zvyšku tieňom (klik naň = klik mimo) */
  .pt-lista-menu {
    position: static;
  }
  .pt-lista-panel,
  .pt-ja-panel {
    position: fixed;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1085;
    min-width: 0;
    max-width: none;
    max-height: 80vh;
    padding: 0.75rem 0.75rem calc(0.75rem + env(safe-area-inset-bottom, 0rem));
    border-width: 1px 0 0;
    border-radius: 1rem 1rem 0 0;
    box-shadow: 0 0 0 100vmax rgba(14, 20, 32, 0.45);
  }
  .pt-lista-polozka {
    min-height: 2.75rem;
  }
  /* spodná lišta: Tikety · Klienti · Nastavenia; pod panelom tiketu (ten má z-index 50) */
  .pt-spodna-lista {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 40;
    display: flex;
    height: calc(var(--pt-spodna-lista) + env(safe-area-inset-bottom, 0rem));
    padding-bottom: env(safe-area-inset-bottom, 0rem);
    background: var(--papier);
    border-top: 1px solid var(--linka);
  }
  .pt-spodna-lista a {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.125rem;
    min-width: 0;
    color: var(--tlmene);
    font-size: 0.75rem;
    font-weight: 500;
    text-decoration: none;
  }
  .pt-spodna-lista a.is-aktivna {
    color: var(--signal);
    font-weight: 600;
  }
  .pt-spodna-lista svg {
    width: 1.375rem;
    height: 1.375rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  body:has(.pt-spodna-lista) {
    padding-bottom: calc(var(--pt-spodna-lista) + env(safe-area-inset-bottom, 0rem));
  }
  /* toasty a lišta hromadných akcií nad spodnou lištou (panel tiketu ju zakryje - tam nie) */
  body:has(.pt-spodna-lista):not(:has(.pt-panel)) .pt-toasty {
    bottom: calc(var(--pt-spodna-lista) + 1rem);
  }
  body:has(.pt-spodna-lista):not(:has(.pt-panel)) .pt-hromadna {
    bottom: calc(var(--pt-spodna-lista) + 0.75rem);
  }
  /* viditeľná lišta hromadných akcií - toasty nad ňu, nie cez ňu (výšku nastavuje bulk.js) */
  body:has(.pt-spodna-lista):has(.pt-hromadna:not([hidden])):not(:has(.pt-panel)) .pt-toasty {
    bottom: calc(var(--pt-spodna-lista) + 0.75rem + var(--pt-hromadna-vyska, 8rem) + 0.5rem);
  }
  /* nič nesmie pretekať vodorovne (V7) */
  body {
    overflow-x: clip;
  }
  /* záložky stĺpcov: posuvný rad s vyblednutým pravým okrajom, prilepený pod lištou */
  .pt-zalozky-stlpcov {
    position: sticky;
    top: var(--pt-hlavicka);
    z-index: 6;
    display: flex;
    gap: 0.25rem;
    margin: 0 0 0.75rem;
    overflow-x: auto;
    scrollbar-width: none;
    background: var(--hmla);
    border-bottom: 1px solid var(--linka);
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
  }
  .pt-zalozky-stlpcov::-webkit-scrollbar {
    display: none;
  }
  .pt-zalozka-stlpca {
    flex: none;
    min-height: 2.75rem;
    padding: 0 0.75rem;
    border: 0;
    border-bottom: 0.125rem solid transparent;
    background: transparent;
    color: var(--tlmene);
    font-size: 0.9375rem;
    font-weight: 500;
    white-space: nowrap;
  }
  .pt-zalozka-stlpca:last-child {
    margin-right: 2rem;
    /* posledná záložka nesmie ostať pod vyblednutím */
  }
  .pt-zalozka-stlpca[aria-selected="true"] {
    border-bottom-color: var(--signal);
    color: var(--text);
    font-weight: 600;
  }
  .pt-zalozka-stlpca-pocet {
    color: var(--tlmene);
    font-weight: 500;
  }
  /* jeden stĺpec naraz, karty pod sebou (nie vodorovný rad) */
  .pt-nastenka.is-zalozky .pt-stlpec:not(.is-zobrazeny) {
    display: none;
  }
  .pt-nastenka.is-zalozky .pt-stlpec {
    padding: 0.75rem;
  }
  /* názov a počet sú v záložke; hlavička stĺpca ostáva len v režime Vybrať („Označiť stĺpec") */
  .pt-nastenka.is-zalozky:not(.is-vyber) .pt-stlpec-hd {
    display: none;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-hd {
    top: calc(var(--pt-hlavicka) + 2.8125rem);
    margin: -0.75rem -0.75rem 0.5rem;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-pozn {
    margin: 0 0.25rem 0.5rem;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-karty {
    flex-direction: column;
    min-height: 6rem;
    padding: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-karty > .pt-karta-wrap {
    flex: none;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-karty > .pt-karta-wrap > .pt-karta {
    height: auto;
  }
  .pt-nastenka.is-zalozky .pt-stlpec-prazdny {
    inset: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .pt-lista-sipka {
    transition: none;
  }
}
/* ---- prihlasovacia obrazovka (podľa prihlasenie.html) -------------- */
.pt-login {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--noc);
  color: #EAF0FF;
}
.pt-login-hd {
  border-bottom: 1px solid var(--linka-tma);
  padding: 1.25rem 0;
}
.pt-login-hd .container {
  display: flex;
  align-items: center;
}
.pt-login-hd .pt-hd-logo {
  color: #fff;
}
.pt-login-main {
  flex: 1;
  display: flex;
  align-items: center;
  padding: clamp(2.5rem, 7vw, 5.375rem) 0;
}
.pt-login-mriezka {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.125rem, 5vw, 4rem);
  align-items: center;
  width: 100%;
}
@media (min-width: 861px) {
  .pt-login-mriezka {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.78fr);
  }
}
.pt-login-uvodnik {
  margin-top: 1rem;
  max-width: 52ch;
  color: var(--tlmene-tma);
}
.pt-login-card {
  background: var(--noc-2);
  border: 1px solid var(--linka-tma);
  border-radius: var(--r);
  padding: clamp(1.625rem, 3.4vw, 2.375rem);
  margin-top: 1.75rem;
}
.pt-login-card label {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.71875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tlmene-tma);
}
.pt-login-card .form-control {
  background: #10182A;
  border-color: var(--linka-tma);
  color: #fff;
}
.pt-login-card .form-control::placeholder {
  color: #6E7C9C;
}
.pt-login-card .form-control:focus {
  background: #10182A;
  color: #fff;
  border-color: var(--signal);
  box-shadow: 0 0 0 0.25rem rgba(47, 91, 255, 0.3);
}
.pt-login-card .form-check-label {
  color: var(--tlmene-tma);
}
.pt-login-card .invalid-feedback {
  color: #FFB4A8;
}
.pt-login-zabudnute {
  display: block;
  text-align: center;
  margin-top: 1rem;
  font-size: 0.875rem;
  color: var(--tlmene-tma);
}
.pt-login-zabudnute:hover {
  color: var(--signal);
}
.pt-pomoc dt {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: #7E8CAE;
  margin-bottom: 0.5rem;
}
.pt-pomoc dd {
  margin: 0 0 1.5rem;
  font-size: 1rem;
  line-height: 1.6;
  color: #D7E0F5;
}
.pt-pomoc dd:last-child {
  margin-bottom: 0;
}
.pt-pomoc a {
  color: #fff;
}
/* ---- audit ----------------------------------------------------------- */
.pt-audit-json {
  font-size: 0.75rem;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
}
/* ---- hlavička: aktívna položka ----------------------------------- */
.pt-hd-nav a.is-aktivna {
  color: var(--text);
  border-color: var(--signal);
}
/* ---- spoločné: fokus, tlmený text, mono ------------------------------ */
a:focus-visible,
.btn:focus-visible,
button:focus-visible,
.pt-karta:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  box-shadow: none;
}
.pt-tlmene {
  color: var(--tlmene);
}
.pt-mono {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
}
/* Alpine: skryť do inicializácie */
[x-cloak] {
  display: none !important;
}
/* ---- stavová bodka (len malá bodka, nikdy plocha) --------------------- */
.pt-bodka {
  display: inline-block;
  flex: none;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.5rem;
  border-radius: 50%;
  background: var(--tlmene);
  vertical-align: 0.0625rem;
}
/* --stav-farba-* nastavuje layout (Nastavenia firmy -> Farby stĺpcov, per firma); záloha =
   pôvodné pevné farby (stránky bez aktuálnej firmy, napr. admin, premennú vôbec nemajú). */
.pt-bodka.is-new {
  background: var(--stav-farba-new, var(--signal));
}
.pt-bodka.is-open {
  background: var(--stav-farba-open, var(--text));
}
.pt-bodka.is-waiting {
  background: var(--stav-farba-waiting, var(--cakanie));
}
.pt-bodka.is-solved {
  background: var(--stav-farba-solved, var(--vyriesene));
}
.pt-bodka.is-spam {
  background: var(--stav-farba-spam, var(--tlmene));
}
/* stav schránky (admin/mailboxes/index) - rovnaká bodka, iné významy */
.pt-bodka.is-ok {
  background: var(--vyriesene);
}
.pt-bodka.is-off {
  background: var(--tlmene);
}
.pt-bodka.is-error {
  background: var(--bs-danger);
}
/* ---- avatar riešiteľa --------------------------------------------------- */
.pt-avatar {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--hmla);
  border: 1px solid var(--linka);
  color: var(--text);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
}
.pt-avatar.is-nikto {
  background: transparent;
  border: 1px dashed color-mix(in srgb, var(--tlmene) 45%, var(--linka));
}
/* malý avatar - sledujúci na karte / v zozname / v paneli */
.pt-avatar.is-maly {
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.5625rem;
  letter-spacing: 0;
  color: var(--tlmene);
}
.pt-avatar.is-viac {
  background: var(--papier);
}
/* skupina sledujúcich: mierne sa prekrývajú, nenápadne */
.pt-sledujuci-avatary {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
.pt-sledujuci-avatary > .pt-avatar + .pt-avatar {
  margin-left: -0.3125rem;
  box-shadow: 0 0 0 0.0625rem var(--papier);
}
/* ---- termín ------------------------------------------------------------- */
.pt-termin {
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-termin.is-dnes {
  color: var(--cakanie);
  font-weight: 500;
}
.pt-termin.is-po-termine {
  color: var(--bs-danger);
  font-weight: 500;
}
/* ---- stránka tiketov: mriežka a hlavička -------------------------------- */
.pt-tikety {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}
/* S otvoreným panelom: nástenka vľavo sa zúži, panel vpravo. */
@media (min-width: 992px) {
  .pt-tikety.has-panel {
    grid-template-columns: minmax(0, 1fr) min(40rem, 45vw);
  }
  .pt-tikety.has-panel .pt-nastenka {
    /* širšie karty - menej zalomení; stĺpce navyše sa zalomia do ďalšieho riadku (bez posuvu) */
    grid-template-columns: repeat(auto-fit, minmax(16.5rem, 1fr));
  }
  /* zúžený zoznam: bez stĺpca Druh, riešiteľ len avatarom (meno ostane pre čítačku
       a v title avatara) - Termín a Aktivita sa zmestia bez vodorovného posunu */
  .pt-tikety.has-panel .pt-tabulka-druh {
    display: none;
  }
  .pt-tikety.has-panel .pt-riesitel-meno {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .pt-tikety.has-panel .pt-tabulka-predmet {
    min-width: 12rem;
  }
  .pt-tikety.has-panel .pt-tabulka th,
  .pt-tikety.has-panel .pt-tabulka td {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
.pt-tikety-obsah {
  min-width: 0;
}
.pt-tikety-hd {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1.5rem;
}
.pt-tikety-nadpis {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.2;
}
.pt-tikety-nadpis span {
  margin-left: 0.375rem;
  color: var(--tlmene);
  font-weight: 500;
}
/* prepínač Nástenka / Zoznam - tichý segment */
.pt-prepinac {
  display: inline-flex;
  padding: 0.1875rem;
  background: color-mix(in srgb, var(--linka) 70%, var(--hmla));
  border-radius: 0.625rem;
}
.pt-prepinac a {
  padding: 0.3125rem 0.875rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-prepinac a:hover {
  color: var(--text);
}
.pt-prepinac a.is-aktivne {
  background: var(--papier);
  color: var(--text);
  box-shadow: 0 0 0 1px var(--linka);
}
/* rýchle filtre - pills */
.pt-filtre {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.pt-filtre a {
  padding: 0.3125rem 0.875rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.875rem;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-filtre a:hover {
  color: var(--text);
  border-color: var(--linka);
}
.pt-filtre a.is-aktivne {
  background: var(--text);
  border-color: var(--text);
  color: #fff;
}
.pt-filtre-nic {
  margin: 0;
  font-size: 0.875rem;
  color: var(--tlmene);
}
.pt-filtre-nic a {
  margin-left: 0.375rem;
}
/* primárne „Nový tiket" - vždy vpravo */
.pt-tikety-novy {
  margin-left: auto;
}
/* ---- hromadné akcie (public/js/bulk.js), plávajúca lišta dole v strede ---- */
.pt-hromadna {
  position: fixed;
  left: 50%;
  bottom: 1.25rem;
  z-index: 1070;
  /* pod toastmi (.pt-toasty 1080), nad obsahom */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  width: max-content;
  max-width: calc(100% - 2rem);
  padding: 0.5rem 0.5rem 0.5rem 0.625rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  box-shadow: 0 0.75rem 2.5rem rgba(14, 20, 32, 0.16), 0 0.125rem 0.375rem rgba(14, 20, 32, 0.06);
  transform: translateX(-50%);
  animation: pt-hromadna-in 0.16s ease-out;
}
@keyframes pt-hromadna-in {
  from {
    opacity: 0;
    transform: translate(-50%, 0.5rem);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
/* `hidden` má v prehliadači nižšiu prioritu než trieda - bez tohto by lišta ostala flex aj skrytá. */
.pt-hromadna[hidden] {
  display: none;
}
/* mazanie po dávkach beží - lišta sa nedá znova klikať */
.pt-hromadna.is-uklada {
  opacity: 0.6;
  pointer-events: none;
  cursor: progress;
}
.pt-hromadna-vyber {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.pt-hromadna-zavriet {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.875rem;
  height: 1.875rem;
  padding: 0;
  border: 0;
  border-radius: 0.5rem;
  background: none;
  color: var(--tlmene);
}
.pt-hromadna-zavriet:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-hromadna-zavriet svg {
  width: 0.875rem;
  height: 0.875rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
}
.pt-hromadna-pocet {
  font-size: 0.875rem;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-hromadna-pocet strong {
  display: inline-block;
  min-width: 1.5rem;
  margin-right: 0.25rem;
  padding: 0.0625rem 0.4375rem;
  border-radius: 999px;
  background: var(--signal);
  color: #fff;
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-size: 0.8125rem;
  text-align: center;
}
.pt-hromadna-akcie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}
.pt-hromadna-btn {
  padding: 0.3125rem 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 0.5rem;
  background: var(--papier);
  color: var(--text);
  font-size: 0.8125rem;
  font-weight: 500;
  white-space: nowrap;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.pt-hromadna-btn:hover {
  border-color: var(--signal);
  color: var(--signal);
}
.pt-hromadna-btn.is-nebezpecne {
  border-color: var(--bs-danger);
  background: var(--bs-danger);
  color: #fff;
}
.pt-hromadna-btn.is-nebezpecne:hover {
  background: var(--bs-danger-text-emphasis);
  border-color: var(--bs-danger-text-emphasis);
  color: #fff;
}
.pt-hromadna-deli {
  width: 1px;
  height: 1.25rem;
  margin: 0 0.25rem;
  background: var(--linka);
}
.pt-hromadna-select.form-select {
  width: auto;
  min-width: 7rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
}
/* lišta je fixed - posledné riadky/karty nesmú ostať pod ňou */
body:has(.pt-hromadna:not([hidden])) .pt-tikety-obsah {
  padding-bottom: 5rem;
}
/* toasty nad lištou, nie cez ňu (výška z bulk.js; na mobile so spodnou lištou sekcií v bloku UX A) */
body:has(.pt-hromadna:not([hidden])) .pt-toasty {
  bottom: calc(1.25rem + var(--pt-hromadna-vyska, 3.5rem) + 0.5rem);
}
/* telefón: lišta cez celú šírku, akcie pod počtom */
@media (max-width: 575.98px) {
  .pt-hromadna {
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.75rem;
    width: auto;
    max-width: none;
    transform: none;
    animation: none;
  }
  .pt-hromadna-deli {
    display: none;
  }
}
/* nad zoznamom vo filtri Spam - „Vyprázdniť spam" */
.pt-spam-lista {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem 0.625rem 1rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-spam-lista p {
  margin: 0;
  font-size: 0.875rem;
}
.pt-spam-lista span {
  color: var(--tlmene);
}
/* ---- prázdna firma ------------------------------------------------------ */
.pt-prazdno {
  max-width: 34rem;
  margin: 4rem auto;
  padding: 2.5rem 2rem;
  text-align: center;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-prazdno h2 {
  font-size: 1.375rem;
  margin-bottom: 0.5rem;
}
.pt-prazdno p {
  margin: 0 0 1.5rem;
  color: var(--tlmene);
}
/* ---- nástenka ----------------------------------------------------------- */
.pt-nastenka {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1rem;
  align-items: start;
  /* Bez overflow - nástenka nesmie byť vlastný posuvný kontajner, inak by sa hlavička stĺpca
       (.pt-stlpec-hd, sticky) lepila k nej a nie k oknu. Stĺpce sa radšej zalomia (auto-fit). */
  padding-bottom: 1rem;
}
.pt-stlpec {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.875rem 0.75rem 0.75rem;
  /* Pastelový tón pozadia podľa farby KONKRÉTNEHO stĺpca (Nastavenia firmy -> Stĺpce nástenky) -
       --stlpec-tint nastavuje layout per data-column-id (resources/views/layouts/app.blade.php),
       nikdy inline style pri stĺpci. */
  background: var(--stlpec-tint, var(--hmla));
  border-radius: var(--r);
}
.pt-stlpec-hd {
  /* Pri rolovaní ostane názov stĺpca prilepený pod hlavičkou aplikácie. Pozadie stĺpca +
       záporné okraje, aby karty pod ním nepresvitali. */
  position: sticky;
  top: var(--pt-hlavicka);
  z-index: 5;
  display: flex;
  align-items: center;
  margin: -0.875rem -0.75rem 0.75rem;
  padding: 0.875rem 1rem 0.5rem;
  background: var(--stlpec-tint, var(--hmla));
  border-radius: var(--r) var(--r) 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pt-stlpec-pocet {
  margin-left: 0.5rem;
  color: var(--tlmene);
  font-weight: 500;
}
/* hromadný výber (public/js/bulk.js) - „Vybrať" na nástenke, „Označiť stĺpec" v hlavičke stĺpca */
.pt-vyber-tlacidlo {
  margin-left: auto;
}
.pt-vyber-tlacidlo.is-aktivne {
  background: var(--text);
  border-color: var(--text);
  color: #fff;
}
.pt-stlpec-vyber {
  margin-left: auto;
  padding: 0.125rem 0.5rem;
  border: 1px solid var(--linka);
  border-radius: 0.5rem;
  background: var(--papier);
  color: var(--tlmene);
  font-size: 0.75rem;
  font-weight: 500;
  white-space: nowrap;
}
.pt-stlpec-vyber:hover {
  color: var(--text);
  border-color: var(--signal);
}
/* stĺpec celý označený - tlačidlo hovorí „Odznačiť stĺpec" */
.pt-stlpec-vyber.is-aktivne {
  border-color: var(--signal);
  color: var(--signal);
}
.pt-stlpec-pozn {
  margin: -0.5rem 0.25rem 0.75rem;
  font-size: 0.75rem;
  color: var(--tlmene);
}
.pt-stlpec-telo {
  position: relative;
}
.pt-stlpec-karty {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-height: 6rem;
  /* prázdny stĺpec musí prijať pretiahnutú kartu */
}
/* „Žiadne tikety" - ukáže sa, len keď v stĺpci nie je karta (aj po presune v JS). */
.pt-stlpec-prazdny {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 1px dashed color-mix(in srgb, var(--tlmene) 35%, var(--linka));
  border-radius: 0.625rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
  pointer-events: none;
}
.pt-stlpec-telo:not(:has(.pt-karta)) .pt-stlpec-prazdny {
  display: flex;
}
/* počas ťahania sa prázdne stĺpce zvýraznia */
.is-tahanie .pt-stlpec-telo:not(:has(.pt-karta)) .pt-stlpec-prazdny {
  border-color: var(--signal);
  color: var(--signal);
}
/* drag & drop (public/js/board.js, SortableJS): SortableJS dáva tieto triedy WRAPPERU
   (`.pt-karta-wrap[data-bulk-card]`, ťahaný prvok), vizuál sa prejaví na vnorenej karte. */
.pt-karta-wrap.is-ghost .pt-karta {
  opacity: 0.45;
  border-style: dashed;
  border-color: var(--signal);
}
/* karta pod prstom (dotyk - náhradný režim Sortable, kópia karty ide za prstom) */
.pt-karta-wrap.is-tahana .pt-karta {
  border-color: var(--signal);
}
/* Sortable dáva kópii inline opacity 0.8 - cez ňu presvitá karta pod ňou a text sa prekrýva.
   !important je jediný spôsob, ako prebiť inline štýl knižnice. */
.pt-karta-wrap.sortable-fallback .pt-karta {
  opacity: 1 !important;
}
/* práve presunutá karta - linka --signal 0.6 s (potom sa vráti prechodom karty) */
.pt-karta-wrap.is-presunuta .pt-karta {
  border-color: var(--signal);
}
/* zmena stavu sa ukladá - karta sa zatiaľ nedá znova ťahať */
.pt-karta-wrap.is-uklada .pt-karta {
  opacity: 0.7;
  cursor: progress;
}
/* wrapper karty - nesie ťahanie (Sortable) a checkbox hromadného výberu ako sibling odkazu
   (nikdy vnorený - vnorené aktívne prvky sú neplatné HTML aj klikací konflikt). */
.pt-karta-wrap {
  position: relative;
}
/* ---- karta tiketu ------------------------------------------------------- */
.pt-karta {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.75rem 0.875rem 0.6875rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  color: var(--text);
  text-decoration: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
/* hromadný výber (public/js/bulk.js) - checkbox na karte, len v režime „Vybrať" */
.pt-karta-vyber {
  display: none;
  position: absolute;
  top: 0.625rem;
  left: 0.625rem;
  z-index: 2;
}
.pt-nastenka.is-vyber .pt-karta-vyber {
  display: flex;
}
.pt-nastenka.is-vyber .pt-karta {
  padding-left: 2.0625rem;
  cursor: pointer;
}
/* vybraná karta v režime „Vybrať" - rovnaký zvýraznený rámik ako otvorená v paneli (.is-vybrana) */
.pt-nastenka.is-vyber .pt-karta-wrap:has(:checked) .pt-karta {
  border-color: var(--signal);
  box-shadow: 0 0 0 0.1875rem rgba(47, 91, 255, 0.15);
}
.pt-karta:hover {
  border-color: var(--signal);
  color: var(--text);
}
.pt-karta.is-vybrana {
  border-color: var(--signal);
  box-shadow: 0 0 0 0.1875rem rgba(47, 91, 255, 0.15);
}
/* Priorita ASAP/Blokujúce - farebný ľavý okraj (App\Enums\TicketPriority::color); Bežná a Nízka
   bez značky. Nízka je navyše tlmená, ale len v zozname (.pt-tabulka), nie na karte. */
.pt-karta.is-priorita-asap {
  border-left: 0.1875rem solid #EE7A3B;
}
.pt-karta.is-priorita-blocking {
  border-left: 0.1875rem solid #E14568;
}
.pt-karta-hore,
.pt-karta-dole {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.pt-karta-cislo {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--tlmene);
  white-space: nowrap;
}
/* riadok pod predmetom: priorita (ASAP/Blokujúce) + štítky v jednom zalomiteľnom riadku */
.pt-karta-znacky {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  min-width: 0;
}
.pt-tabulka-predmet .pt-karta-znacky {
  margin-top: 0.25rem;
}
/* priorita ako tichá značka: farebná bodka + text (bez pilulky) - karta, zoznam */
.pt-priorita-znacka {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.375rem;
  white-space: nowrap;
}
.pt-priorita-znacka::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: currentColor;
}
.pt-priorita-znacka.is-asap {
  color: #AC4B18;
}
.pt-priorita-znacka.is-asap::before {
  background: #EE7A3B;
}
.pt-priorita-znacka.is-blocking {
  color: #AE2A4A;
}
.pt-priorita-znacka.is-blocking::before {
  background: #E14568;
}
/* obálka - z ktorej schránky tiket vznikol (len firmy s viac ako 1 schránkou) */
.pt-obalka {
  display: inline-flex;
  flex: none;
  color: var(--tlmene);
}
.pt-obalka svg {
  width: 0.875rem;
  height: 0.875rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
}
.pt-karta-cas {
  margin-left: auto;
  font-size: 0.75rem;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-karta-predmet {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  font-weight: 500;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
/* Spodný riadok: kto · termín · avatar. Termín sa nikdy neskracuje - keď sa vedľa mena
   nezmestí (úzka karta pri otvorenom paneli, mobil), zalomí sa na ďalší riadok. Meno sa skráti
   až keď je samo dlhšie než riadok. Avatar je vpravo hore mimo toku (neodchádza pri zalomení). */
.pt-karta-dole {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.125rem 0.5rem;
  min-height: 1.75rem;
  margin-top: 0.125rem;
  padding-right: 2.25rem;
  /* miesto pre avatar */
  font-size: 0.8125rem;
}
.pt-karta-dole > .pt-termin {
  margin-left: auto;
}
.pt-karta-dole > .pt-karta-ludia {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
/* sledujúci pred riešiteľom - viac miesta vpravo */
.pt-karta-dole.has-sledujuci {
  padding-right: 4.75rem;
}
.pt-karta-kto {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--tlmene);
}
/* ---- zoznam ------------------------------------------------------------- */
.pt-hladanie {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.pt-hladanie-pole {
  flex: 1 1 16rem;
  max-width: 24rem;
}
/* ---- panel „Filtre" (nástenka aj zoznam) -------------------------------- */
.pt-filtre-tlacidlo {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.pt-filtre-pocet {
  display: inline-grid;
  place-items: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--signal);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
}
.pt-filtre-panel {
  position: absolute;
  top: calc(100% + 0.375rem);
  right: 0;
  z-index: 30;
  width: min(40rem, calc(100vw - 2rem));
  padding: 1rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.12), 0 0.125rem 0.375rem rgba(14, 20, 32, 0.06);
}
.pt-filtre-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}
.pt-filtre-pole {
  display: flex;
  flex-direction: column;
  flex: 1 1 11rem;
  gap: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--tlmene);
}
.pt-filtre-pole legend {
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--tlmene);
}
.pt-filtre-aktivita {
  flex: 1 1 15rem;
  margin: 0;
  padding: 0;
  border: 0;
}
.pt-filtre-rozsah {
  display: flex;
  gap: 0.375rem;
  margin-top: 0.25rem;
}
.pt-filtre-pole--checkbox {
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 0.375rem;
}
.pt-filtre-pole--checkbox span {
  font-weight: 400;
  color: var(--text);
}
.pt-filtre-akcie {
  display: flex;
  flex: 1 1 100%;
  align-items: center;
  gap: 1rem;
  padding-top: 0.25rem;
  border-top: 1px solid var(--linka);
}
/* aktívne filtre panela „Filtre" - odstrániteľné čipy */
.pt-cipy {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin: -0.25rem 0 1rem;
}
.pt-cip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1875rem 0.5rem;
  border: 1px solid var(--linka);
  border-radius: 999px;
  background: var(--hmla);
  color: var(--text);
  font-size: 0.8125rem;
  text-decoration: none;
}
.pt-cip:hover {
  border-color: var(--tlmene);
}
.pt-cip-x {
  color: var(--tlmene);
  font-size: 0.875rem;
}
.pt-tabulka {
  overflow-x: auto;
  margin-bottom: 1rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-tabulka .table {
  --bs-table-bg: transparent;
  font-size: 0.875rem;
}
.pt-tabulka th {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-tabulka td {
  padding: 0.625rem 1rem;
}
.pt-tabulka tbody tr:last-child td {
  border-bottom: 0;
}
.pt-tabulka tr[data-ticket-row] {
  position: relative;
}
/* checkbox hromadného výberu - nad stretched-link riadku (ten má z-index: 1 z Bootstrapu),
   inak by klik na checkbox iba otvoril tiket. */
.pt-tabulka-vyber {
  position: relative;
  z-index: 2;
  width: 2rem;
}
.pt-tabulka tr[data-ticket-row]:hover,
.pt-tabulka tr.is-vybrany {
  --bs-table-bg: var(--hmla);
}
/* Nízka priorita - tlmená len v zozname (na karte nástenky bez značky, spec). */
.pt-tabulka tr.is-nizka-priorita {
  color: var(--tlmene);
}
.pt-tabulka tr.is-nizka-priorita .pt-tabulka-predmet a {
  color: var(--tlmene);
}
.pt-tabulka-predmet {
  min-width: 16rem;
}
.pt-tabulka-predmet a {
  color: var(--text);
  font-weight: 500;
  text-decoration: none;
}
.pt-tabulka tr[data-ticket-row]:hover .pt-tabulka-predmet a {
  color: var(--signal);
}
.pt-tabulka td.pt-tabulka-nic {
  --bs-table-color: var(--tlmene);
  padding: 2rem 1rem;
  text-align: center;
}
.pt-tabulka-nic a {
  margin-left: 0.375rem;
}
/* Telefón: riadok zoznamu (aj výsledky hľadania) ako karta - nie tabuľka s vodorovným rolovaním.
   [výber] číslo ····· aktivita / predmet na celý riadok / stav · riešiteľ · termín; Druh skrytý. */
@media (max-width: 575.98px) {
  .pt-tabulka thead {
    display: none;
  }
  .pt-tabulka tr[data-ticket-row] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--linka);
    background: var(--bs-table-bg);
  }
  .pt-tabulka tbody tr[data-ticket-row]:last-child {
    border-bottom: 0;
  }
  .pt-tabulka tr[data-ticket-row] > td {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .pt-tabulka tr[data-ticket-row] > td:nth-child(2) {
    order: 2;
    font-size: 0.8125rem;
    color: var(--tlmene);
  }
  .pt-tabulka tr[data-ticket-row] > td:nth-child(8) {
    order: 3;
    margin-left: auto;
    font-size: 0.8125rem;
  }
  .pt-tabulka tr[data-ticket-row] > .pt-tabulka-predmet {
    order: 4;
    flex: 1 1 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .pt-tabulka tr[data-ticket-row] > td:nth-child(n+5):nth-child(-n+7) {
    order: 5;
    font-size: 0.8125rem;
  }
  .pt-tabulka tr[data-ticket-row] > .pt-tabulka-druh {
    display: none;
  }
  .pt-tabulka-vyber {
    width: auto;
  }
}
.pt-riesitel {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  vertical-align: middle;
}
/* ---- formulár tiketu (založenie) ---------------------------------------- */
.pt-formular {
  max-width: 42rem;
  margin: 0 auto;
}
.pt-spat {
  display: inline-block;
  font-size: 0.875rem;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-spat:hover {
  color: var(--text);
}
.pt-formular-nadpis {
  margin: 0.5rem 0 1.25rem;
  font-size: 1.5rem;
  line-height: 1.2;
}
.pt-formular-karta {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.75rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-formular-karta .form-label {
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
}
.pt-pole {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
/* dve polia vedľa seba (zákazník, riešiteľ + termín), na mobile pod sebou */
.pt-pole-riadok {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 1rem;
  align-items: start;
}
.pt-pomoc {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-chyba {
  margin-top: 0.375rem;
  font-size: 0.875rem;
  color: var(--bs-danger);
}
/* náhľad HTML podpisu (profil, schránka) - živý, v sandboxovanom <iframe> (public/js/podpis.js) */
.pt-podpis-nahlad-nazov {
  margin: 0.75rem 0 0.375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
}
.pt-podpis-nahlad {
  display: block;
  width: 100%;
  height: 9rem;
  border: 1px solid var(--linka);
  border-radius: 0.5rem;
  background: var(--papier);
}
/* druh tiketu - dve dlaždice; radio je skryté len vizuálne (šípky medzi voľbami fungujú) */
.pt-druhy {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.pt-druh {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 0.625rem;
  row-gap: 0.125rem;
  align-items: center;
  padding: 0.875rem 1rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  background: var(--papier);
  cursor: pointer;
}
.pt-druh:hover {
  border-color: color-mix(in srgb, var(--signal) 45%, var(--linka));
}
.pt-druh-radio {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
/* vlastná bodka voľby - vyplní sa pri výbere */
.pt-druh-znak {
  width: 1rem;
  height: 1rem;
  border: 1px solid color-mix(in srgb, var(--tlmene) 50%, var(--linka));
  border-radius: 50%;
  background: var(--papier);
}
.pt-druh-nazov {
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pt-druh-popis {
  grid-column: 2;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
/* vybraná dlaždica: linka --signal 2px (1px okraj + 1px prstenec, bez posunu obsahu) */
.pt-druh:has(.pt-druh-radio:checked) {
  border-color: var(--signal);
  box-shadow: inset 0 0 0 1px var(--signal);
}
.pt-druh:has(.pt-druh-radio:checked) .pt-druh-znak {
  border-color: var(--signal);
  background: radial-gradient(circle, var(--signal) 0 0.25rem, var(--papier) 0.3125rem);
}
.pt-druh:has(.pt-druh-radio:focus-visible) {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
.pt-formular-akcie {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding-top: 0.25rem;
}
/* počet dní pri Doimporte (admin/mailboxes/index) - krátke číselné pole v riadku akcií */
.pt-import-dni {
  width: 4.5rem;
}
.pt-formular-zrusit {
  font-size: 0.9375rem;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-formular-zrusit:hover {
  color: var(--text);
}
/* ---- superadmin: firmy, schránky ---------------------------------------- */
/* Správa je rídka práca - obsah v stĺpci s čitateľnou šírkou, nie cez celý monitor. */
.pt-admin {
  max-width: 64rem;
  margin: 0 auto;
}
.pt-admin-uzke {
  max-width: 46rem;
}
.pt-admin-hd {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.5rem;
  margin: 0.5rem 0 1.5rem;
}
.pt-admin-nadpis {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.pt-admin-popis {
  max-width: 38rem;
  margin: 0.375rem 0 0;
  color: var(--tlmene);
}
.pt-admin-akcia {
  margin-left: auto;
}
.pt-admin-meno {
  font-weight: 500;
}
.pt-admin-pod {
  margin-top: 0.125rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-admin-odkaz {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--text);
}
.pt-admin-odkaz:hover,
.pt-admin-odkaz:hover .pt-tlmene {
  color: var(--signal);
}
/* prefix tiketov - rovnaký tvar, aký má v čísle tiketu */
.pt-prefix {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  background: var(--hmla);
  border: 1px solid var(--linka);
  border-radius: 0.375rem;
}
/* biela karta (formulár, sekcia) - rovnaká ako karta formulára tiketu */
.pt-admin-karta {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
  margin: 0 0 1.5rem;
  padding: 1.5rem 1.75rem 1.75rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-admin-karta .form-label {
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
}
/* legend by inak prebil flex (fieldset) - float ho vráti do toku ako bežný nadpis */
.pt-admin-karta-nadpis {
  float: left;
  width: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pt-admin-karta-nadpis + * {
  clear: left;
}
.pt-admin-karta-popis {
  margin: -0.75rem 0 0;
  font-size: 0.875rem;
  color: var(--tlmene);
}
/* ponuka „Použiť aj na existujúce tikety" po vytvorení pravidla
   (resources/views/rules/_retroactive-offer.blade.php) */
.pt-pravidlo-ponuka {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-bottom: 1.25rem;
  padding: 0.75rem 1rem;
  background: var(--odpoved-plocha);
  border: 1px solid var(--odpoved-linka);
  border-radius: var(--r);
}
/* ponuka otvorená tlačidlom pri pravidle v zozname - pod riadkom pravidla */
.pt-pravidlo-ponuka-riadok {
  margin: 0.75rem 0 0.25rem;
}
.pt-pravidlo-ponuka-text {
  margin: 0;
  font-size: 0.875rem;
}
.pt-pravidlo-ponuka-akcie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-left: auto;
  font-size: 0.875rem;
}
.pt-pravidlo-ponuka-akcie label {
  margin-right: 0.75rem;
  font-weight: 400;
}
.pt-admin-polia {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem 1rem;
  align-items: start;
}
.pt-admin-pole-cele {
  grid-column: 1 / -1;
}
/* nová firma: názov širší, adresa a prefix užšie */
.pt-admin-karta .pt-admin-polia:has(.pt-admin-pole-siroke) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.5fr) minmax(0, 1fr);
}
.pt-admin-prefix-pole {
  text-transform: uppercase;
}
/* heslo s okom - tlačidlo vnútri poľa vpravo, text pod ním nezasiahne */
.pt-heslo {
  position: relative;
}
.pt-heslo .form-control {
  padding-right: 2.75rem;
}
.pt-heslo .form-control.is-invalid {
  padding-right: 4.25rem;
  background-position: right 2.75rem center;
}
.pt-heslo-oko {
  position: absolute;
  top: 50%;
  right: 0.25rem;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  color: var(--tlmene);
  background: transparent;
  border: 0;
  border-radius: 0.375rem;
  transform: translateY(-50%);
}
.pt-heslo-oko:hover,
.pt-heslo-oko[aria-pressed="true"] {
  color: var(--signal);
}
.pt-heslo-oko svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* „Rovnaké prihlásenie ako pri prijímaní" - tiché textové tlačidlo */
.pt-admin-kopia {
  align-self: flex-start;
  margin-top: -0.5rem;
  padding: 0;
  font-size: 0.875rem;
  color: var(--signal);
  background: none;
  border: 0;
}
.pt-admin-kopia:hover {
  text-decoration: underline;
}
/* zistenie serverov podľa adresy - popis vľavo, tiché tlačidlo vpravo */
.pt-zistenie {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem 1rem;
  margin-top: -0.75rem;
}
.pt-zistenie .pt-admin-kopia {
  margin: 0;
}
.pt-zistenie-popis {
  margin: 0;
}
.pt-zistenie-popis.is-chyba {
  color: var(--bs-danger);
}
/* test pripojenia vo formulári schránky */
.pt-test {
  gap: 1rem;
}
.pt-test-hd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
}
.pt-test-popis {
  margin-top: 0.25rem;
}
.pt-test .pt-schranka-test {
  margin-top: 0;
}
.pt-test .pt-chyba {
  margin: 0;
}
.pt-test-pouzit {
  margin: 0 0 0 0.5rem;
}
/* server + port + šifrovanie v jednom riadku */
.pt-admin-server {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 6.5rem 10rem;
  gap: 1rem;
}
/* schránka - jedna karta na schránku (stav, údaje, test, akcie) */
.pt-schranka {
  margin-bottom: 1rem;
  padding: 1.25rem 1.5rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
}
.pt-schranka.is-vypnuta .pt-schranka-kto,
.pt-schranka.is-vypnuta .pt-schranka-udaje {
  opacity: 0.6;
}
.pt-schranka-hd {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 1.5rem;
}
.pt-schranka-kto {
  min-width: 0;
}
.pt-schranka-adresa {
  margin: 0;
  font-size: 1.125rem;
  overflow-wrap: anywhere;
}
.pt-schranka-stav {
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: 500;
}
.pt-schranka-stav[data-stav="error"] {
  color: var(--bs-danger);
}
.pt-schranka-stav[data-stav="off"] {
  color: var(--tlmene);
}
.pt-schranka-chyba {
  margin: 0.875rem 0 0;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
  color: var(--bs-danger-text-emphasis);
  background: var(--bs-danger-bg-subtle);
  border-radius: 0.5rem;
  overflow-wrap: anywhere;
}
.pt-schranka-udaje {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 2rem;
  margin: 1rem 0 0;
  font-size: 0.875rem;
}
.pt-schranka-udaje dt {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--tlmene);
}
.pt-schranka-udaje dd {
  margin: 0;
}
/* výsledok testu pripojenia - hneď pri schránke, ktorej sa týka */
.pt-schranka-test {
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  background: var(--hmla);
  border-radius: 0.5rem;
  font-size: 0.875rem;
}
.pt-schranka-test-nadpis {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
}
.pt-schranka-test ul {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-schranka-test li {
  overflow-wrap: anywhere;
}
.pt-schranka-test strong {
  margin-right: 0.375rem;
  font-weight: 500;
}
.pt-schranka-akcie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--linka);
}
.pt-schranka-import {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  color: var(--tlmene);
}
/* vypnutie je zriedkavé a nechceme ho omylom - tiché, úplne vpravo */
.pt-schranka-prepnut {
  margin-left: auto;
}
.pt-schranka-prepnut .btn {
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 575.98px) {
  .pt-admin-polia,
  .pt-admin-karta .pt-admin-polia:has(.pt-admin-pole-siroke) {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-admin-server {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pt-admin-server > :first-child {
    grid-column: 1 / -1;
  }
  .pt-admin-karta {
    padding: 1.25rem;
  }
  .pt-schranka {
    padding: 1rem 1.125rem;
  }
  .pt-schranka-prepnut {
    margin-left: 0;
  }
  .pt-admin .pt-druhy {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ---- výber dátumu (x-datum, public/js/datum.js) ------------------------- */
.pt-datum {
  position: relative;
}
.pt-datum-pole {
  position: relative;
}
/* pole = tlačidlo vo vzhľade .form-control: ikona, dátum, vpravo miesto pre ✕ */
.pt-datum-tlacidlo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-right: 2.25rem;
  text-align: left;
  cursor: pointer;
}
.pt-datum-tlacidlo:hover {
  border-color: color-mix(in srgb, var(--tlmene) 40%, var(--linka));
}
.pt-datum-tlacidlo:focus-visible,
.pt-datum-tlacidlo[aria-expanded="true"] {
  border-color: var(--signal);
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(47, 91, 255, 0.25);
}
.pt-datum-tlacidlo.is-invalid {
  border-color: var(--bs-danger);
}
.pt-datum-ikona {
  flex: none;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: var(--tlmene);
  stroke-width: 1.25;
  stroke-linecap: round;
}
.pt-datum-tlacidlo[aria-expanded="true"] .pt-datum-ikona {
  stroke: var(--signal);
}
.pt-datum-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.pt-datum-text.is-prazdne {
  color: var(--tlmene);
}
.pt-datum-zmazat {
  position: absolute;
  top: 50%;
  right: 0.375rem;
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--tlmene);
  transform: translateY(-50%);
}
.pt-datum-zmazat:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-datum-zmazat svg {
  width: 0.75rem;
  height: 0.75rem;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
}
.form-control-sm + .pt-datum-zmazat {
  width: 1.5rem;
  height: 1.5rem;
}
/* kalendár - jediný tieň (je nad formulárom) */
.pt-datum-popover {
  position: absolute;
  top: calc(100% + 0.375rem);
  left: 0;
  z-index: 30;
  width: 18rem;
  padding: 0.75rem 0.75rem 0.625rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.12), 0 0.125rem 0.375rem rgba(14, 20, 32, 0.06);
  animation: pt-datum-in 0.12s ease-out;
}
.pt-datum-popover.is-hore {
  top: auto;
  bottom: calc(100% + 0.375rem);
}
@keyframes pt-datum-in {
  from {
    opacity: 0;
    transform: translateY(-0.25rem);
  }
}
.pt-datum-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.375rem;
}
.pt-datum-mesiac {
  margin: 0;
  font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pt-datum-sipka {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: 0.5rem;
  background: transparent;
  color: var(--tlmene);
}
.pt-datum-sipka:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-datum-sipka svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-datum-mriezka {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.pt-datum-mriezka th {
  height: 1.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--tlmene);
  text-align: center;
}
.pt-datum-mriezka td {
  padding: 0.0625rem 0;
  text-align: center;
  cursor: pointer;
}
.pt-datum-mriezka td:focus {
  outline: 0;
}
/* deň = krúžok; stavy: dnes (linka), vybraný (plný), iný mesiac (tlmene) */
.pt-datum-den {
  display: inline-grid;
  place-items: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 50%;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  color: var(--text);
}
.pt-datum-mriezka td:hover .pt-datum-den {
  background: var(--hmla);
}
.pt-datum-mriezka td.is-iny-mesiac .pt-datum-den {
  color: color-mix(in srgb, var(--tlmene) 65%, var(--papier));
}
.pt-datum-mriezka td[aria-current="date"] .pt-datum-den {
  box-shadow: inset 0 0 0 1px var(--signal);
  color: var(--signal);
  font-weight: 600;
}
.pt-datum-mriezka td[aria-selected="true"] .pt-datum-den {
  background: var(--signal);
  box-shadow: none;
  color: #fff;
  font-weight: 600;
}
.pt-datum-mriezka td:focus-visible .pt-datum-den {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
.pt-datum-paticka {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.5rem;
  padding-top: 0.625rem;
  border-top: 1px solid var(--linka);
}
.pt-datum-rychle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.pt-datum-rychla {
  padding: 0.1875rem 0.625rem;
  border: 1px solid var(--linka);
  border-radius: 999px;
  background: var(--papier);
  font-size: 0.8125rem;
  color: var(--text);
}
.pt-datum-rychla:hover {
  border-color: color-mix(in srgb, var(--tlmene) 40%, var(--linka));
}
.pt-datum-rychla.is-aktivne {
  border-color: var(--signal);
  color: var(--signal);
}
.pt-datum-vymazat {
  margin-left: auto;
  padding: 0.1875rem 0.25rem;
  border: 0;
  border-radius: 0.375rem;
  background: transparent;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-datum-vymazat:hover {
  color: var(--bs-danger);
}
.pt-datum-vymazat:disabled {
  visibility: hidden;
}
/* ---- panel detailu tiketu ----------------------------------------------- */
/* Desktop: druhý stĺpec mriežky .pt-tikety.has-panel, lepí sa pod hlavičku a roluje sám.
   Záporné okraje ho natiahnu k hlavičke, spodku a pravému okraju okna (ruší padding <main>). */
.pt-panel {
  min-width: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--papier);
  border-left: 1px solid var(--linka);
  box-shadow: -0.5rem 0 2rem rgba(14, 20, 32, 0.06);
  /* jediný tieň - panel je nad nástenkou */
}
@media (min-width: 992px) {
  .pt-panel {
    position: sticky;
    top: var(--pt-hlavicka);
    height: calc(100vh - var(--pt-hlavicka));
    margin: -1.5rem calc(var(--bs-gutter-x, 1.5rem) * -0.5) -1.5rem 0;
    --panel-pt: 1.25rem;
    --panel-px: 1.75rem;
    padding: var(--panel-pt) var(--panel-px) 2rem;
  }
}
/* Číslo, ✕ a názov tiketu ostanú pri rolovaní panela/okna hore (sticky v posuvnom .pt-panel).
   Záporné okraje + rovnaký padding (--panel-pt/--panel-px podľa variantu) - pozadie prekryje
   celú šírku aj horný okraj panela, obsah pod nimi nepresvitá. */
.pt-panel-hd {
  position: sticky;
  top: calc(-1 * var(--panel-pt, 0rem));
  /* sticky sa ráta od obsahu (pod paddingom) - až k hornej hrane */
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: calc(2.25rem + var(--panel-pt, 0rem));
  margin: calc(-1 * var(--panel-pt, 0rem)) calc(-1 * var(--panel-px, 0rem)) 0;
  padding: var(--panel-pt, 0rem) var(--panel-px, 0rem) 0;
  background: var(--papier);
}
.pt-panel-ref {
  margin: 0;
  font-size: 0.875rem;
  color: var(--tlmene);
}
.pt-panel-ref > span + span {
  margin-left: 0.25rem;
}
.pt-panel-cislo {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  color: var(--text);
}
.pt-panel-zavriet {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-left: auto;
  margin-right: -0.5rem;
  border-radius: 0.5rem;
  color: var(--tlmene);
}
.pt-panel-zavriet:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-panel-zavriet svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
}
.pt-panel-nadpis {
  position: sticky;
  top: 2.25rem;
  /* hneď pod .pt-panel-hd (od obsahu panela, rovnako ako vyššie) */
  z-index: 6;
  margin: 0 calc(-1 * var(--panel-px, 0rem)) 0.75rem;
  padding: 0.375rem var(--panel-px, 0rem) 0.75rem;
  background: var(--papier);
  border-bottom: 1px solid var(--linka);
  font-size: 1.375rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
/* nadpis dostane fokus programovo pri otvorení - bez rámčeka */
.pt-panel-nadpis:focus {
  outline: none;
}
/* ovládanie: Stav + Riešiteľ + Priorita v jednom riadku, Klient + Projekt pod nimi v tých istých
   stĺpcoch (auto-fill drží rovnakú šírku aj pri menej poliach); na úzkom paneli 2 stĺpce */
.pt-panel-pole {
  min-width: 0;
}
.pt-panel-pole-nazov {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.75rem;
  color: var(--tlmene);
}
/* stavová bodka vnútri selectu stavu - hodnota je vidieť aj farbou ako na nástenke */
.pt-vyber-stav {
  position: relative;
}
.pt-vyber-stav .pt-bodka {
  position: absolute;
  top: 50%;
  left: 0.625rem;
  margin: -0.25rem 0 0;
  pointer-events: none;
}
.pt-vyber-stav .form-select {
  padding-left: 1.5rem;
}
/* bodka priority vo výbere v paneli - rovnaké farby ako značka na karte */
.pt-bodka.is-priorita-low {
  background: var(--tlmene-tma);
}
.pt-bodka.is-priorita-normal {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--tlmene-tma);
}
.pt-bodka.is-priorita-asap {
  background: #EE7A3B;
}
.pt-bodka.is-priorita-blocking {
  background: #E14568;
}
/* „Priradiť mne" - malé tiché tlačidlo v riadku nadpisu poľa Riešiteľ */
.pt-priradit-mne {
  flex: none;
  margin: 0 0 0.25rem;
  padding: 0;
  border: 0;
  background: none;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--signal);
}
.pt-priradit-mne:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}
.pt-textove-tlacidlo {
  padding: 0.125rem 0.25rem;
  margin: 0 -0.25rem;
  border: 0;
  border-radius: 0.375rem;
  background: none;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--signal);
}
.pt-textove-tlacidlo:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}
/* ---- štítky (pilulky) - pevná paleta 8 farieb, App\Enums\TagColor -------- */
/* Jemná pastelová pilulka bežným písmom (nález E: mono uppercase pôsobil ťažko). Farba sa
   nastavuje len premennými --stitok (sýta, TagColor::hex) a --stitok-text (čitateľný tmavší tón). */
.pt-stitok {
  --stitok: #62708A;
  --stitok-text: #434E63;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  max-width: 100%;
  padding: 0 0.5rem;
  border: 1px solid color-mix(in srgb, var(--stitok) 18%, var(--papier));
  border-radius: 1rem;
  background: color-mix(in srgb, var(--stitok) 10%, var(--papier));
  color: var(--stitok-text);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.375rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pt-stitok-blue {
  --stitok: #3B66F5;
  --stitok-text: #2947C7;
}
.pt-stitok-teal {
  --stitok: #12A18F;
  --stitok-text: #0C7A6C;
}
.pt-stitok-green {
  --stitok: #22A366;
  --stitok-text: #187C4C;
}
.pt-stitok-amber {
  --stitok: #E2A400;
  --stitok-text: #7F5C00;
}
.pt-stitok-orange {
  --stitok: #EE7A3B;
  --stitok-text: #AC4B18;
}
.pt-stitok-red {
  --stitok: #E14568;
  --stitok-text: #AE2A4A;
}
.pt-stitok-purple {
  --stitok: #8C5CF0;
  --stitok-text: #6238C4;
}
.pt-stitok-gray {
  --stitok: #62708A;
  --stitok-text: #434E63;
}
/* výber farby (Nastavenia firmy - nový/upravovaný štítok, farby stĺpcov) - sýte bodky z tej
   istej pevnej palety App\Enums\TagColor, nikdy inline style. */
.pt-farby-vyber {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}
.pt-farba-radio {
  display: inline-flex;
  cursor: pointer;
}
.pt-farba-bodka {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  border: 0.125rem solid var(--papier);
  box-shadow: 0 0 0 1px var(--linka);
}
.pt-farba-radio:has(input:checked) .pt-farba-bodka {
  box-shadow: 0 0 0 0.125rem var(--text);
}
.pt-farba-radio:has(input:focus-visible) .pt-farba-bodka {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
.pt-farba-blue {
  background: #3B66F5;
}
.pt-farba-teal {
  background: #12A18F;
}
.pt-farba-green {
  background: #22A366;
}
.pt-farba-amber {
  background: #E2A400;
}
.pt-farba-orange {
  background: #EE7A3B;
}
.pt-farba-red {
  background: #E14568;
}
.pt-farba-purple {
  background: #8C5CF0;
}
.pt-farba-gray {
  background: #62708A;
}
/* „+N" - ďalšie štítky nad limit (karta, zoznam) */
.pt-stitok-viac {
  --stitok: #98A5C0;
  --stitok-text: var(--tlmene);
  color: var(--tlmene);
  cursor: default;
}
/* chipy na karte nástenky a v zozname */
.pt-stitky-chipy {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.pt-karta-znacky .pt-stitky-chipy {
  min-width: 0;
}
/* riadok štítkov v paneli tiketu */
.pt-panel-stitky {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin: 0.125rem 0 0.75rem;
  font-size: 0.8125rem;
}
.pt-panel-stitky .pt-panel-pole-nazov {
  margin: 0 0.25rem 0 0;
}
/* riadok „Sledujú" v paneli - rovnaký rytmus ako štítky */
.pt-panel-sledujuci {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
}
.pt-panel-sledujuci .pt-panel-pole-nazov {
  margin: 0 0.25rem 0 0;
}
.pt-panel-sledujuci .pt-priradit-mne {
  margin: 0 0 0 auto;
}
.pt-sledujuci-zoznam {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-sledujuci-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.0625rem 0.375rem 0.0625rem 0.125rem;
  border: 1px solid var(--linka);
  border-radius: 1rem;
  background: var(--papier);
}
.pt-sledujuci-chip form {
  display: inline;
}
.pt-panel-stitky .pt-stitky-chipy {
  align-items: center;
}
.pt-stitok-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin: 0 -0.1875rem 0 0.0625rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: inherit;
  opacity: 0.7;
  font-size: 0.875rem;
  line-height: 1;
}
.pt-stitok-x:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.08);
}
/* „+" otvára výber - native <details>, funguje aj bez JS */
.pt-stitok-pridat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  border: 1px dashed color-mix(in srgb, var(--tlmene) 45%, var(--linka));
  border-radius: 50%;
  color: var(--tlmene);
  font-size: 0.9375rem;
  line-height: 1;
  cursor: pointer;
  list-style: none;
}
.pt-stitok-pridat::-webkit-details-marker {
  display: none;
}
.pt-stitok-pridat:hover {
  border-color: var(--signal);
  color: var(--signal);
}
.pt-stitky-vyber {
  position: relative;
}
.pt-stitky-vyber-obsah {
  position: absolute;
  z-index: 5;
  top: calc(100% + 0.25rem);
  left: 0;
  width: 14rem;
  padding: 0.5rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  box-shadow: 0 0.5rem 1.5rem rgba(20, 27, 43, 0.12);
}
.pt-stitky-navrhy {
  max-height: 10rem;
  margin: 0.375rem 0 0;
  padding: 0;
  overflow-y: auto;
  list-style: none;
}
.pt-stitky-navrh {
  display: block;
  width: 100%;
  padding: 0.25rem 0.125rem;
  border: 0;
  background: none;
  text-align: left;
}
.pt-stitky-navrh:hover {
  background: var(--hmla);
  border-radius: 0.375rem;
}
.pt-stitky-noscript-form {
  display: flex;
  gap: 0.375rem;
  margin-top: 0.375rem;
}
/* Klient v paneli - rovnaký disclosure ako štítky (.pt-stitky-vyber), ale vzhľad ako select. */
.pt-panel-klient-vyber {
  display: block;
}
.pt-klient-summary {
  position: relative;
  display: block;
  min-height: 1.9375rem;
  padding: 0.25rem 2.25rem 0.25rem 0.5rem;
  border: 1px solid var(--bs-border-color, var(--linka));
  border-radius: var(--bs-border-radius-sm);
  background: var(--papier);
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pt-klient-summary::after {
  /* šípka ako pri .form-select - výber klienta vyzerá rovnako ako Stav/Riešiteľ */
  content: "";
  position: absolute;
  top: 50%;
  right: 0.75rem;
  width: 0.4375rem;
  height: 0.4375rem;
  margin-top: -0.3125rem;
  border-right: 0.09375rem solid var(--text);
  border-bottom: 0.09375rem solid var(--text);
  transform: rotate(45deg);
}
.pt-klient-summary::-webkit-details-marker {
  display: none;
}
.pt-panel-klient-vyber[open] .pt-klient-summary,
.pt-klient-summary:hover {
  border-color: var(--signal);
}
.pt-panel-klient .pt-stitky-vyber-obsah {
  width: 16rem;
}
.pt-panel-termin {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  color: var(--tlmene);
}
.pt-panel-termin .pt-termin.is-dnes,
.pt-panel-termin .pt-termin.is-po-termine {
  font-weight: 600;
}
.pt-panel-prazdne {
  margin: 0;
  padding: 1.5rem 0;
  font-size: 0.875rem;
  color: var(--tlmene);
}
/* záložky - aktívna podčiarknutá --signal, žiadne „kartičky" */
.pt-detail-zalozky {
  gap: 1.5rem;
  border-bottom: 1px solid var(--linka);
}
.pt-detail-zalozky .nav-link {
  margin-bottom: -1px;
  padding: 0.5rem 0;
  border: 0;
  border-bottom: 0.125rem solid transparent;
  border-radius: 0;
  background: none;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--tlmene);
}
.pt-detail-zalozky .nav-link:hover {
  color: var(--text);
}
.pt-detail-zalozky .nav-link.active {
  border-bottom-color: var(--signal);
  color: var(--text);
}
/* fokus z klávesnice (UX 2) - prebíja box-shadow z Bootstrapu .nav-link:focus-visible */
.pt-detail-zalozky .nav-link:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  box-shadow: none;
}
/* po kliknutí myšou nič - ani predvolený krúžok prehliadača (Bootstrap po prepnutí záložky
   volá focus() programovo a niektoré prehliadače vtedy kreslia tmavý obdĺžnik) */
.pt-detail-zalozky .nav-link:focus:not(:focus-visible),
.pt-detail-zalozky-obsah > .tab-pane:focus:not(:focus-visible) {
  outline: 0;
  box-shadow: none;
}
.pt-detail-zalozky-obsah {
  padding-top: 1rem;
}
.pt-detail-zalozky-obsah > .tab-pane:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
/* vlákno - správy od najnovšej (pod písaním poznámky) */
.pt-sprava {
  margin-bottom: 0.75rem;
  padding: 0.75rem 0.875rem 0.875rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
}
.pt-sprava-note {
  background: var(--poznamka-plocha);
  border-color: var(--poznamka-linka);
}
/* práve pridaná poznámka - krátko zvýraznená linkou --signal (2 s, potom zmizne) */
.pt-sprava.is-nova {
  animation: pt-sprava-nova 2s ease-out both;
}
@keyframes pt-sprava-nova {
  0%,
  60% {
    border-color: var(--signal);
    box-shadow: 0 0 0 0.1875rem rgba(47, 91, 255, 0.15);
  }
  100% {
    border-color: var(--poznamka-linka);
    box-shadow: 0 0 0 0 rgba(47, 91, 255, 0);
  }
}
.pt-sprava-hd {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 0.375rem;
  margin-bottom: 0.375rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-sprava-hd strong {
  font-weight: 600;
  color: var(--text);
}
.pt-sprava-meta {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0 0.625rem;
  margin-left: auto;
}
/* menu ⋯ pri správe (resources/views/tickets/_message-menu.blade.php) - nenápadné, rozbalí sa doľava */
.pt-sprava-menu {
  position: relative;
  align-self: center;
}
.pt-sprava-menu-tlacidlo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.25rem;
  border-radius: 0.375rem;
  color: var(--tlmene);
  cursor: pointer;
  list-style: none;
}
.pt-sprava-menu-tlacidlo::-webkit-details-marker {
  display: none;
}
.pt-sprava-menu-tlacidlo svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}
.pt-sprava-menu-tlacidlo:hover,
.pt-sprava-menu[open] .pt-sprava-menu-tlacidlo {
  background: var(--hmla);
  color: var(--signal);
}
.pt-sprava-menu-tlacidlo:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.0625rem;
}
.pt-sprava-menu-obsah {
  position: absolute;
  z-index: 6;
  top: calc(100% + 0.25rem);
  right: 0;
  min-width: 13rem;
  padding: 0.375rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  box-shadow: 0 0.5rem 1.5rem rgba(20, 27, 43, 0.12);
  text-align: left;
  white-space: nowrap;
}
.pt-sprava-menu-nadpis {
  margin: 0.125rem 0.5rem 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tlmene);
}
.pt-sprava-menu-polozka {
  display: block;
  width: 100%;
  padding: 0.375rem 0.5rem;
  border: 0;
  border-radius: 0.375rem;
  background: none;
  color: var(--text);
  font-size: 0.875rem;
  text-align: left;
}
.pt-sprava-menu-polozka:hover,
.pt-sprava-menu-polozka:focus-visible {
  background: var(--odpoved-plocha);
  color: var(--signal);
  outline: 0;
}
.pt-sprava-cas {
  white-space: nowrap;
}
.pt-sprava-telo {
  font-size: 0.9375rem;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
/* podpis pod odoslanou odpoveďou (snímka z čias odoslania, čitateľný text) - tlmený, oddelený od textu */
.pt-sprava-podpis {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px dashed var(--linka);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--tlmene);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
/* mail vo vlákne (incoming/reply) - svetlejšie pozadie ako poznámka/interná plocha, odlíšené od nej */
.pt-sprava--mail {
  background: var(--hmla);
}
/* odoslaný mail mimo pipeticketu (napr. Thunderbird) - akcent vľavo, zarovnanie ostáva rovnaké */
.pt-sprava--odoslana {
  border-left: 0.1875rem solid var(--signal);
}
.pt-sprava-hd--mail {
  align-items: center;
  gap: 0.5rem;
}
.pt-sprava-od {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0 0.375rem;
}
/* „komu: …" pod hlavičkou prijatého mailu - malé, tlmené */
.pt-sprava-komu {
  margin: -0.25rem 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
/* citácia zbalená pod vlastným textom mailu - len tlmený odkaz, rozbalený text s ľavým okrajom */
.pt-citacia {
  margin-top: 0.5rem;
}
.pt-citacia summary {
  width: fit-content;
  font-size: 0.8125rem;
  color: var(--tlmene);
  cursor: pointer;
  list-style: none;
}
.pt-citacia summary::-webkit-details-marker {
  display: none;
}
.pt-citacia summary:hover {
  color: var(--signal);
}
.pt-citacia pre {
  margin: 0.5rem 0 0;
  padding: 0.125rem 0 0.125rem 0.75rem;
  border-left: 0.1875rem solid var(--linka);
  font-family: inherit;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--tlmene);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
/* „… podpis" - zbalený podpis (odoslaný aj odhadnutý z prijatého mailu) vyzerá ako rozbalená citácia */
.pt-podpis-zbaleny .pt-sprava-podpis {
  padding: 0.125rem 0 0.125rem 0.75rem;
  border-top: 0;
  border-left: 0.1875rem solid var(--linka);
}
.pt-citacia summary:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  border-radius: 0.25rem;
}
/* „Zobraziť originál" - tlačidlo + iframe v sandboxe; obsah sa načíta až pri prvom otvorení */
.pt-original-blok {
  margin-top: 0.5rem;
}
/* „Zobraziť originál" / „Načítať obrázky" - rovnako tiché ako „zobraziť citáciu" */
.pt-original-nastroje {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: 0.8125rem;
}
.pt-original {
  display: block;
  width: 100%;
  height: 32rem;
  margin-top: 0.5rem;
  border: 1px solid var(--linka);
  border-radius: 0.5rem;
}
/* prílohy vynechané pri príjme (nepovolený typ / príliš veľká) - tlmený riadok, nič sa nedá stiahnuť */
.pt-vynechane {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
/* „· upravené" pri čase - presný čas úpravy v title; ako tlačidlo rozbalí Históriu úprav */
.pt-sprava-upravene {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: inherit;
  text-decoration: underline dotted;
  text-underline-offset: 0.1875rem;
  cursor: help;
}
button.pt-sprava-upravene {
  cursor: pointer;
}
button.pt-sprava-upravene:hover,
button.pt-sprava-upravene[aria-expanded="true"] {
  color: var(--signal);
}
button.pt-sprava-upravene:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  border-radius: 0.125rem;
}
/* História úprav pod textom poznámky - verzie od najnovšej, rozdiel po slovách */
.pt-historia {
  margin-top: 0.75rem;
  padding-top: 0.625rem;
  border-top: 1px solid var(--poznamka-linka);
}
.pt-historia-nadpis {
  margin: 0 0 0.5rem;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--text);
}
.pt-historia-zoznam {
  display: grid;
  gap: 0.625rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-historia-hd {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.375rem;
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  color: var(--tlmene);
}
.pt-historia-hd strong {
  font-weight: 600;
  color: var(--text);
}
.pt-historia-text {
  padding: 0.375rem 0.625rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--poznamka-linka);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
/* rozdiel: zmazané prečiarknuté červenkasto, pridané zelenkasto bez podčiarknutia */
.pt-historia-text del {
  padding: 0 0.0625rem;
  border-radius: 0.1875rem;
  background: #FBE7E5;
  color: #A63A32;
  text-decoration: line-through;
  text-decoration-color: rgba(166, 58, 50, 0.55);
}
/* staršie verzie (napr. opakované Späť / Znova) zbalené */
.pt-historia-starsie summary {
  width: fit-content;
  font-size: 0.8125rem;
  color: var(--tlmene);
  cursor: pointer;
}
.pt-historia-starsie summary:hover {
  color: var(--text);
}
.pt-historia-starsie[open] summary {
  margin-bottom: 0.625rem;
}
/* zmazané a vložené vedľa seba sa nedotýkajú */
.pt-historia-text del + ins {
  margin-left: 0.125rem;
}
.pt-historia-text ins {
  padding: 0 0.0625rem;
  border-radius: 0.1875rem;
  background: #E1F3E8;
  color: #1F6B45;
  text-decoration: none;
}
/* Upraviť / Zmazať pri vlastnej poznámke a inline potvrdenie zmazania - tiché textové tlačidlá */
.pt-sprava-nastroje,
.pt-sprava-potvrdenie {
  display: inline-flex;
  align-items: baseline;
  gap: 0.625rem;
}
.pt-sprava-potvrdenie > span {
  font-weight: 600;
  color: var(--text);
}
.pt-sprava-nastroj {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-weight: 500;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-sprava-nastroj:hover {
  color: var(--signal);
  text-decoration: underline;
}
.pt-sprava-nastroj.is-nebezpecne {
  color: var(--bs-danger);
  font-weight: 600;
}
.pt-sprava-nastroj:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  border-radius: 0.125rem;
}
/* úprava na mieste - rovnaké pole ako písanie poznámky */
.pt-sprava-uprava {
  margin-top: 0.125rem;
}
/* ---- @Meno v internej poznámke (public/js/zmienky.js, App\Support\Mentions) ---- */
.pt-zmienky-obal {
  position: relative;
}
.pt-zmienky {
  position: absolute;
  z-index: 6;
  top: calc(100% + 0.25rem);
  left: 0;
  min-width: 14rem;
  max-width: 100%;
  max-height: 14rem;
  margin: 0;
  padding: 0.25rem;
  overflow-y: auto;
  list-style: none;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  box-shadow: 0 0.5rem 1.5rem rgba(20, 27, 43, 0.12);
  font-size: 0.875rem;
}
.pt-zmienky-polozka {
  padding: 0.3125rem 0.5rem;
  border-radius: 0.375rem;
  cursor: pointer;
}
.pt-zmienky-polozka:hover,
.pt-zmienky-polozka.is-aktivna {
  background: var(--hmla);
  color: var(--signal);
}
/* spomenutie vo vlákne - jemná pilulka */
.pt-zmienka {
  padding: 0 0.3125rem;
  border-radius: 0.375rem;
  background: color-mix(in srgb, var(--signal) 10%, transparent);
  color: var(--signal);
  font-weight: 500;
  white-space: nowrap;
}
/* zmazaná poznámka - len tlmený riadok kurzívou (kto, kedy), bez textu */
.pt-sprava-zmazana {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.375rem;
  margin: 0 0 0.75rem;
  padding: 0.5rem 0.875rem;
  border: 1px dashed var(--linka);
  border-radius: 0.625rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: var(--tlmene);
}
/* písanie internej poznámky - hore nad vláknom; teplé pozadie ako poznámka: je jasné, že je interná */
.pt-poznamka {
  margin-bottom: 1rem;
  padding: 0.75rem 0.875rem 0.875rem;
  background: var(--poznamka-plocha);
  border: 1px solid var(--poznamka-linka);
  border-radius: 0.625rem;
}
.pt-poznamka-nazov {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
}
/* 3 riadky, rastie s textom do 12 riadkov (field-sizing; inde ostane rows="3" + ručné zväčšenie).
   .pt-poznamka textarea.… - prebije min-height z Bootstrapu (textarea.form-control) aj pri field-sizing.
   .pt-odpoved (odpoveď zákazníkovi) má rovnaké rozmery, len chladnú linku - prebité nižšie. */
.pt-poznamka textarea.pt-poznamka-pole,
.pt-sprava-uprava textarea.pt-poznamka-pole,
.pt-odpoved textarea.pt-poznamka-pole {
  field-sizing: content;
  min-height: 5.375rem;
  /* 3 riadky × 1.5rem + padding + linka */
  max-height: 18.875rem;
  /* 12 riadkov */
  resize: vertical;
  border-color: var(--poznamka-linka);
  font-size: 0.9375rem;
  line-height: 1.5;
}
/* chyba - červená linka musí prebiť teplú/chladnú linku poľa */
.pt-poznamka textarea.pt-poznamka-pole.is-invalid,
.pt-sprava-uprava textarea.pt-poznamka-pole.is-invalid,
.pt-odpoved textarea.pt-poznamka-pole.is-invalid {
  border-color: var(--bs-form-invalid-border-color);
}
.pt-poznamka-akcie {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.625rem;
}
.pt-poznamka-skratka {
  font-size: 0.75rem;
  color: var(--tlmene);
}
/* dotykové zariadenie klávesovú skratku nemá */
@media (hover: none) {
  .pt-poznamka-skratka,
  .pt-zvon-skratky {
    display: none;
  }
}
/* prepínač písania - Poznámka / Odpovedať zákazníkovi (segmentový prepínač, role=tablist) */
.pt-pisanie-prepinac {
  display: inline-flex;
  gap: 0.125rem;
  padding: 0.1875rem;
  margin-bottom: 0.75rem;
  background: var(--hmla);
  border-radius: 0.625rem;
}
.pt-pisanie-tab {
  padding: 0.375rem 0.75rem;
  border: 0;
  border-radius: 0.5rem;
  background: none;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tlmene);
}
.pt-pisanie-tab:hover {
  color: var(--text);
}
.pt-pisanie-tab.is-aktivny {
  background: var(--papier);
  color: var(--text);
  box-shadow: 0 0.0625rem 0.125rem rgba(20, 27, 43, 0.08);
}
.pt-pisanie-tab:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
@media (max-width: 575.98px) {
  .pt-pisanie-prepinac {
    display: flex;
    flex: 1 1 auto;
  }
  .pt-pisanie-tab {
    flex: 1 1 0;
    text-align: center;
  }
}
/* písanie odpovede zákazníkovi - chladná plocha s akcentom (opak teplej internej poznámky) */
.pt-odpoved {
  margin-bottom: 1rem;
  padding: 0.75rem 0.875rem 0.875rem;
  background: var(--odpoved-plocha);
  border: 1px solid var(--odpoved-linka);
  border-radius: 0.625rem;
}
.pt-odpoved-nazov {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
}
.pt-odpoved-riadok {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.625rem;
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
}
.pt-odpoved-riadok label {
  flex: 0 0 auto;
  color: var(--tlmene);
}
.pt-odpoved-riadok .form-control {
  flex: 1 1 12rem;
  min-width: 0;
}
.pt-odpoved-predmet {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-odpoved-podpis {
  margin: 0.375rem 0 0;
  font-size: 0.8125rem;
  color: var(--tlmene);
  white-space: pre-line;
}
/* vyššie pole ako pri poznámke (Komu/Kópia/Predmet nad ním zaberajú miesto) + chladná linka
   namiesto teplej (prebíja border-color zo zdieľaného pravidla vyššie). */
.pt-odpoved textarea.pt-poznamka-pole {
  min-height: 6.5rem;
  border-color: var(--odpoved-linka);
}
.pt-odpoved-stavy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 1rem;
  margin: 0.625rem 0 0;
  padding: 0;
  border: 0;
  font-size: 0.8125rem;
}
.pt-odpoved-stavy label {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  font-weight: 400;
  color: var(--text);
}
/* Vytvoriť pravidlo (panel tiketu) - riadok radio-tlačidiel, rovnaký vzor ako .pt-odpoved-stavy. */
.pt-radio-riadok {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  font-size: 0.8125rem;
}
.pt-radio-riadok label {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-weight: 400;
  color: var(--text);
}
/* Akcie pravidla (resources/views/rules/_actions.blade.php) - zaškrtávacie políčko + select na
   riadok, aj viac akcií naraz; nezaškrtnutá akcia má select stlmený. */
.pt-pravidlo-akcie {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.pt-pravidlo-akcie > .form-label {
  margin-bottom: 0;
}
.pt-pravidlo-akcia {
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  align-items: center;
  gap: 0.25rem 0.75rem;
}
.pt-pravidlo-akcia-volba {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--text);
  cursor: pointer;
}
.pt-pravidlo-akcia-volba .form-check-input {
  flex-shrink: 0;
  margin: 0;
}
.pt-pravidlo-akcia.is-vypnuta .form-select {
  color: var(--tlmene);
  background-color: var(--hmla);
}
.pt-pravidlo-akcia-popis {
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-pravidlo-akcia > .pt-chyba {
  grid-column: 2;
  margin-top: 0;
}
@media (max-width: 575.98px) {
  .pt-pravidlo-akcia {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-pravidlo-akcia > .pt-chyba {
    grid-column: 1;
  }
}
.pt-odpoved-akcie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.625rem;
}
.pt-odpoved-vyvoj {
  margin: 0.375rem 0 0;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
/* pás po odoslaní - odpočet do skutočného odoslania, „Zrušiť" ho zastaví */
.pt-odpoved-pas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 0.625rem;
  padding: 0.5rem 0.75rem;
  background: var(--papier);
  border: 1px solid var(--odpoved-linka);
  border-radius: 0.5rem;
  font-size: 0.875rem;
}
/* štítky stavu odoslania mailu vo vlákne (queued/sending/blocked/failed/cancelled) */
.pt-stav-mailu {
  padding: 0.0625rem 0.5rem;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
}
.pt-stav-mailu.is-odosiela {
  background: rgba(201, 138, 0, 0.12);
  color: var(--cakanie);
}
.pt-stav-mailu.is-blocked,
.pt-stav-mailu.is-cancelled {
  background: rgba(91, 103, 128, 0.12);
  color: var(--tlmene);
}
.pt-stav-mailu.is-failed {
  background: rgba(214, 63, 52, 0.12);
  color: var(--bs-danger);
}
.pt-stav-mailu.is-tlmene {
  padding: 0;
  background: none;
  font-weight: 500;
  color: var(--tlmene);
}
.pt-stav-mailu-akcia {
  margin: 0;
}
/* úprava tiketu - tichá súčasť hlavičky panela (pod stavom a termínom, nad záložkami) */
.pt-upravit {
  margin: 0 0 0.5rem;
}
/* posledná zbalená sekcia pred záložkami - väčší odstup od Vlákna */
.pt-upravit + :not(.pt-upravit):not(.pt-pravidlo-ponuka) {
  margin-top: 1.25rem;
}
.pt-upravit summary {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--tlmene);
  cursor: pointer;
  list-style: none;
}
.pt-upravit summary::-webkit-details-marker {
  display: none;
}
/* šípka - otočí sa pri otvorení */
.pt-upravit summary::before {
  content: "";
  width: 0.375rem;
  height: 0.375rem;
  margin: 0 0.125rem 0 0.0625rem;
  border-right: 0.09375rem solid currentColor;
  border-bottom: 0.09375rem solid currentColor;
  transform: rotate(-45deg);
  transition: transform 0.15s ease;
}
.pt-upravit[open] summary::before {
  transform: rotate(45deg);
}
.pt-upravit summary:hover,
.pt-upravit[open] summary {
  color: var(--text);
}
.pt-upravit summary:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
/* „Zlúčiť s…" v paneli (public/js/zlucenie.js) - výsledky hľadania ako tiché riadky */
.pt-zlucit-popis {
  margin: 0;
  color: var(--tlmene);
  font-size: 0.8125rem;
}
.pt-zlucit-vysledky {
  max-height: 14rem;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  list-style: none;
  border: 1px solid var(--linka);
  border-radius: 0.5rem;
}
.pt-zlucit-vysledok {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.5rem;
  width: 100%;
  padding: 0.375rem 0.625rem;
  border: 0;
  border-bottom: 1px solid var(--linka);
  background: none;
  color: var(--text);
  font-size: 0.8125rem;
  text-align: left;
}
.pt-zlucit-vysledky li:last-child .pt-zlucit-vysledok {
  border-bottom: 0;
}
.pt-zlucit-vysledok:hover,
.pt-zlucit-vysledok:focus-visible {
  background: var(--odpoved-plocha);
  outline: 0;
}
.pt-zlucit-vysledok:disabled {
  opacity: 0.6;
  cursor: progress;
}
.pt-zlucit-cislo {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--tlmene);
}
.pt-zlucit-predmet {
  flex: 1 1 10rem;
  min-width: 0;
  font-weight: 500;
}
/* otvorený formulár - odsadený s linkou vľavo, bez ďalšej krabice */
.pt-upravit-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem 1rem;
  margin: 0.75rem 0 0 0.3125rem;
  padding: 0.125rem 0 0.25rem 1rem;
  border-left: 0.125rem solid var(--linka);
}
.pt-upravit-form .form-label {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 500;
}
.pt-upravit-cele {
  grid-column: 1 / -1;
}
/* zákazník */
.pt-zakaznik {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: 0.625rem 1rem;
  margin: 0;
  font-size: 0.9375rem;
}
.pt-zakaznik dt {
  font-weight: 400;
  color: var(--tlmene);
}
.pt-zakaznik dd {
  margin: 0;
  overflow-wrap: anywhere;
}
/* záložka Zákazník - Kontakt a Klient ako oddelené bloky */
.pt-zakaznik-blok {
  margin-bottom: 1.5rem;
}
.pt-zakaznik-blok:last-child {
  margin-bottom: 0;
}
.pt-zakaznik-nadpis {
  margin: 0 0 0.625rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--tlmene);
}
.pt-zakaznik-poznamka {
  margin: 1rem 0 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--tlmene);
}
.pt-zakaznik-tikety {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.875rem;
}
.pt-zakaznik-tikety li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--linka);
}
.pt-zakaznik-tikety li:last-child {
  border-bottom: 0;
}
/* karta klienta v paneli - údaje na prečítanie, úprava je na jeho vlastnej stránke */
.pt-klient-karta {
  padding: 0.875rem 1rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  font-size: 0.875rem;
}
.pt-klient-karta-nazov {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.375rem;
  font-size: 1rem;
}
.pt-klient-zoznam {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-klient-zoznam li {
  padding: 0.1875rem 0;
}
/* časová os - najnovšie hore */
.pt-os {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-os li {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: 0.125rem 1rem;
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--linka);
  font-size: 0.875rem;
}
.pt-os li:first-child {
  padding-top: 0;
}
.pt-os li:last-child {
  border-bottom: 0;
}
.pt-os-cas {
  grid-row: span 2;
  padding-top: 0.0625rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-os-kto {
  font-weight: 500;
}
.pt-os-co {
  color: var(--tlmene);
  overflow-wrap: anywhere;
}
/* úprava poznámky v časovej osi - rozdiel zbalený pod popisom */
.pt-os-rozdiel summary {
  width: fit-content;
  color: var(--tlmene);
  cursor: pointer;
}
.pt-os-rozdiel summary:hover {
  color: var(--text);
}
.pt-os-rozdiel summary:focus-visible {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
  border-radius: 0.125rem;
}
.pt-os-rozdiel .pt-historia-text {
  margin-top: 0.375rem;
  background: var(--papier);
  border-color: var(--linka);
}
/* ---- toasty ------------------------------------------------------------- */
.pt-toasty {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1080;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  pointer-events: none;
}
.pt-toast {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  max-width: 26rem;
  padding: 0.75rem 0.75rem 0.75rem 1rem;
  background: var(--noc);
  color: #fff;
  border-radius: 0.625rem;
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.22);
  font-size: 0.9375rem;
  pointer-events: auto;
  animation: pt-toast-in 0.18s ease-out;
}
.pt-toast.is-chyba {
  background: var(--bs-danger);
}
/* potvrdzovacie okno (window.ptPotvrdit v app.js - natívny <dialog>, napr. pred zlúčením tiketov) */
.pt-potvrdenie {
  width: min(28rem, calc(100vw - 2rem));
  padding: 0;
  border: 1px solid var(--linka);
  border-radius: 0.75rem;
  background: var(--papier);
  color: var(--text);
  box-shadow: 0 1rem 2.5rem rgba(14, 20, 32, 0.25);
}
.pt-potvrdenie::backdrop {
  background: rgba(14, 20, 32, 0.35);
}
.pt-potvrdenie-obsah {
  padding: 1.25rem 1.25rem 1rem;
}
.pt-potvrdenie-text {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.5;
}
/* voľby v okne (cieľ hromadného zlúčenia) - prepínače pod sebou */
.pt-potvrdenie-volby {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  max-height: 14rem;
  margin: 0 0 1rem;
  overflow-y: auto;
}
.pt-potvrdenie-volby legend {
  margin-bottom: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tlmene);
}
.pt-potvrdenie-volby label {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.875rem;
}
.pt-potvrdenie-akcie {
  display: flex;
  gap: 0.5rem;
}
/* tlačidlo „Späť" v toaste hromadnej akcie (public/js/bulk.js, window.ptToast tretí parameter) */
.pt-toast-akcia {
  flex: none;
  padding: 0.25rem 0.5rem;
  border: 0;
  border-radius: 0.375rem;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.125rem;
}
.pt-toast-akcia:hover {
  background: rgba(255, 255, 255, 0.2);
}
.pt-toast-akcia:focus-visible {
  outline: 0.125rem solid var(--signal-svetly);
  outline-offset: 0.125rem;
}
/* odkaz v texte toastu - kam tikety z pohľadu zmizli („… nájdeš ich v záložke Moje", App\Support\TicketViewExit) */
.pt-toast-odkaz {
  color: #fff;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.125rem;
}
.pt-toast-odkaz:hover {
  color: var(--signal-svetly);
}
.pt-toast-odkaz:focus-visible {
  border-radius: 0.125rem;
  outline: 0.125rem solid var(--signal-svetly);
  outline-offset: 0.125rem;
}
.pt-toast-zavriet:focus-visible {
  outline: 0.125rem solid var(--signal-svetly);
  outline-offset: 0.125rem;
}
.pt-toast-zavriet {
  flex: none;
  margin-left: auto;
  /* na mobile je toast na celú šírku - krížik vpravo */
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 0;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--tlmene-tma);
  font-size: 1.25rem;
  line-height: 1;
}
.pt-toast.is-chyba .pt-toast-zavriet {
  color: rgba(255, 255, 255, 0.8);
}
.pt-toast-zavriet:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}
@keyframes pt-toast-in {
  from {
    opacity: 0;
    transform: translateY(0.5rem);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* ---- mobil -------------------------------------------------------------- */
@media (max-width: 991.98px) {
  /* Stĺpce pod sebou (všetky naraz s názvom a počtom), karty v stĺpci ako riadok do strany -
       prstom sa posúvajú, ďalšia karta vykukuje. Ťahanie do iného stĺpca = hore/dole. */
  .pt-nastenka {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    /* desktop má start - tu má každý stĺpec plnú šírku */
    gap: 0.75rem;
  }
  .pt-stlpec {
    padding: 0.75rem 0 0.75rem;
  }
  .pt-stlpec-hd {
    margin: -0.75rem 0 0.5rem;
    padding: 0.75rem 1rem 0.5rem;
  }
  .pt-stlpec-pozn {
    margin: -0.25rem 1rem 0.5rem;
  }
  .pt-stlpec-karty {
    flex-direction: row;
    gap: 0.5rem;
    min-height: 5.5rem;
    padding: 0 0.75rem 0.25rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 0.75rem;
    scrollbar-width: none;
  }
  .pt-stlpec-karty::-webkit-scrollbar {
    display: none;
  }
  .pt-stlpec-karty > .pt-karta-wrap {
    flex: 0 0 min(80vw, 20rem);
    scroll-snap-align: start;
  }
  .pt-stlpec-karty > .pt-karta-wrap > .pt-karta {
    height: 100%;
  }
  .pt-stlpec-prazdny {
    inset: 0 0.75rem;
  }
  /* Počas ťahania karty snap vypneme - inak vráti každý krok automatického posunu
       pri okraji (SortableJS) späť a karta sa nedostane ďalej v riadku. */
  .is-tahanie .pt-stlpec-karty {
    scroll-snap-type: none;
  }
  /* filtre v jednom riadku, posúvajú sa do strany */
  .pt-filtre {
    flex-wrap: nowrap;
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .pt-filtre a {
    flex: none;
  }
  /* „Nový tiket" v riadku s nadpisom, nie osamote pod filtrami */
  .pt-tikety-hd > * {
    order: 2;
  }
  .pt-tikety-nadpis {
    order: 0;
    /* nadpis + tlačidlo zaplnia riadok, prepínač a filtre idú pod ne;
           9rem = šírka tlačidla „Nový tiket" (~5.5rem) + medzera 1.25rem + rezerva */
    flex: 1 1 calc(100% - 9rem);
    min-width: 0;
  }
  .pt-tikety-novy {
    order: 1;
  }
  /* panel cez celú obrazovku pod hlavičkou, ✕ vľavo hore a veľké */
  .pt-panel {
    position: fixed;
    top: var(--pt-hlavicka);
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 50;
    --panel-pt: 0.5rem;
    --panel-px: 1rem;
    padding: var(--panel-pt) var(--panel-px) 2rem;
    border-left: 0;
    box-shadow: none;
  }
  body:has(.pt-panel) {
    overflow: hidden;
    /* nástenka pod panelom sa nescrolluje spolu s ním */
  }
  .pt-panel-zavriet {
    order: -1;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0 0 0 -0.625rem;
  }
  .pt-panel-zavriet svg {
    width: 1.25rem;
    height: 1.25rem;
  }
  .pt-toasty {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    align-items: stretch;
  }
  .pt-toast {
    max-width: none;
  }
}
/* hlavička správy na telefóne: meno hore, pod ním čas vľavo a nástroje vpravo */
@media (max-width: 575.98px) {
  .pt-sprava-meta {
    flex-basis: 100%;
    justify-content: space-between;
    margin-left: 0;
  }
}
/* formulár tiketu na úzkom displeji: dlaždice a dvojice polí pod sebou */
@media (max-width: 575.98px) {
  .pt-formular-karta {
    padding: 1.25rem 1rem;
  }
  .pt-druhy,
  .pt-pole-riadok {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* výber dátumu na úzkom displeji: kalendár na šírku poľa, väčšie dni na dotyk;
   úprava tiketu v paneli pod sebou, aby pole (a s ním kalendár) malo celú šírku */
@media (max-width: 575.98px) {
  .pt-upravit-form {
    grid-template-columns: minmax(0, 1fr);
  }
  .pt-datum-popover {
    right: 0;
    width: auto;
    min-width: 19rem;
  }
  .pt-datum-den {
    width: 2.5rem;
    height: 2.5rem;
  }
}
/* hlavička na úzkom displeji - lišta na 1 riadok rieši sekcia „Horná lišta (UX A)", tu len zvonček */
@media (max-width: 575.98px) {
  /* zvonček: panel na celú šírku pod hlavičkou (poloha voči .pt-hd - sticky) */
  .pt-zvon {
    position: static;
  }
  .pt-zvon-panel {
    top: 100%;
    left: 0;
    right: 0;
    width: auto;
    max-height: calc(100vh - var(--pt-hlavicka));
    border-width: 0 0 1px;
    border-radius: 0;
  }
}
/* ---- prílohy (tickets/_dropzone, _attachments, _file-icon) --------------- */
/* ikona druhu súboru - čiarová, vo farbe textu okolia */
.pt-ikona-suboru {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-ikona-suboru .is-plne {
  fill: currentColor;
  stroke: none;
}
/* zóna: prerušovaná linka; pri ťahaní súboru nad formulárom (is-ciel) linka --signal,
   priamo nad zónou (is-nad) navyše jemný nádych akcentu */
.pt-prilohy-zona {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-height: 6rem;
  margin: 0;
  padding: 1rem;
  border: 1px dashed color-mix(in srgb, var(--tlmene) 45%, var(--linka));
  border-radius: var(--bs-border-radius);
  background: var(--papier);
  color: var(--tlmene);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s, background-color 0.15s;
}
.pt-prilohy-zona:hover,
.pt-prilohy-zona.is-ciel {
  border-color: var(--signal);
}
.pt-prilohy-zona.is-nad {
  background: color-mix(in srgb, var(--signal) 6%, var(--papier));
}
/* fokus klávesnice je na skrytom inpute - ukáže sa na celej zóne */
.pt-prilohy-zona:has(.pt-prilohy-input:focus-visible) {
  outline: 0.125rem solid var(--signal);
  outline-offset: 0.125rem;
}
.pt-prilohy-zona:has(.pt-prilohy-input.is-invalid) {
  border-color: var(--bs-form-invalid-border-color);
}
/* skutočný input - len vizuálne skrytý (výber cez klik na zónu, fokus a čítačka ho vidia) */
.pt-prilohy-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.pt-prilohy-sponka {
  width: 1.375rem;
  height: 1.375rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-prilohy-zona.is-ciel .pt-prilohy-sponka {
  color: var(--signal);
}
.pt-prilohy-text {
  font-size: 0.875rem;
  color: var(--text);
}
.pt-prilohy-vybrat {
  font-weight: 500;
  color: var(--signal);
}
.pt-prilohy-zona:hover .pt-prilohy-vybrat {
  text-decoration: underline;
}
.pt-prilohy-pomoc {
  font-size: 0.75rem;
}
/* v paneli: v kľude len tichý riadok (nesúperí s poľom poznámky), zarovnaný s poľom aj
   s riadkom „Pridať poznámku"; pri ťahaní súboru nad formulárom sa z neho stane zvýraznená
   prerušovaná plocha - cez outline, aby sa nič neposúvalo */
.pt-prilohy.is-kompaktne {
  margin-top: 0.375rem;
}
.pt-prilohy.is-kompaktne .pt-prilohy-zona {
  flex-direction: row;
  justify-content: flex-start;
  gap: 0.4375rem;
  min-height: 2rem;
  padding: 0.25rem 0;
  border: 0;
  background: transparent;
  color: var(--tlmene);
  text-align: left;
  outline: 1px dashed transparent;
  outline-offset: 0.375rem;
  transition: outline-color 0.15s, background-color 0.15s;
}
.pt-prilohy.is-kompaktne .pt-prilohy-zona:hover {
  color: var(--text);
}
.pt-prilohy.is-kompaktne .pt-prilohy-zona.is-ciel {
  outline-color: var(--signal);
  background: color-mix(in srgb, var(--signal) 5%, transparent);
  color: var(--text);
}
/* po vložení zo schránky mimo poľa - riadok krátko blikne linkou (1.2 s, trieda z JS) */
.pt-prilohy-zona.is-pridane,
.pt-prilohy.is-kompaktne .pt-prilohy-zona.is-pridane {
  border-color: var(--signal);
  outline-color: var(--signal);
  background: color-mix(in srgb, var(--signal) 7%, transparent);
  color: var(--text);
}
.pt-prilohy.is-kompaktne .pt-prilohy-zona.is-nad {
  background: color-mix(in srgb, var(--signal) 9%, transparent);
}
.pt-prilohy.is-kompaktne .pt-prilohy-sponka {
  width: 1rem;
  height: 1rem;
}
.pt-prilohy.is-kompaktne .pt-prilohy-text {
  font-size: 0.8125rem;
  color: inherit;
}
/* skratka vloženia - rovnaký tichý tvar ako „Ctrl+Enter" pri tlačidle */
.pt-prilohy-skratka {
  white-space: nowrap;
}
/* „?" s limitmi - pre myš title, pre čítačku aria-describedby na inpute */
.pt-prilohy-info {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1;
  opacity: 0.7;
  cursor: help;
}
.pt-prilohy-chyby {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* vybrané súbory: náhľad / ikona, meno, veľkosť, Odobrať */
.pt-prilohy-zoznam {
  display: grid;
  gap: 0.375rem;
  margin: 0.5rem 0 0;
  padding: 0;
  list-style: none;
}
.pt-prilohy-polozka {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-width: 0;
  padding: 0.3125rem 0.625rem 0.3125rem 0.3125rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--bs-border-radius);
  font-size: 0.875rem;
}
.pt-prilohy-nahlad {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  overflow: hidden;
  border-radius: var(--bs-border-radius-sm);
  background: var(--hmla);
  color: var(--tlmene);
}
.pt-prilohy-nahlad img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pt-prilohy-nahlad > span {
  display: inline-flex;
}
.pt-prilohy-meno {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pt-prilohy-velkost {
  flex: none;
  font-size: 0.8125rem;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-prilohy-odobrat {
  flex: none;
  margin: 0;
  font-size: 0.8125rem;
}
/* vo vlákne: fotky ako mriežka štvorcov, pod nimi dokumenty ako riadky */
.pt-prilohy-vlakno {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.625rem;
}
.pt-sprava-hd + .pt-prilohy-vlakno {
  margin-top: 0.125rem;
}
.pt-nahlady {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-nahlad {
  display: block;
  width: 5.5rem;
  height: 5.5rem;
  overflow: hidden;
  border: 1px solid var(--linka);
  border-radius: var(--bs-border-radius-sm);
  background: var(--hmla);
  transition: border-color 0.15s;
}
.pt-nahlad:hover {
  border-color: var(--signal);
}
.pt-nahlad img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pt-dokumenty {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pt-dokument {
  display: flex;
  align-items: center;
  gap: 0.25rem 0.75rem;
  min-width: 0;
}
.pt-dokument-odkaz {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 0.5rem;
  max-width: 100%;
  padding: 0.125rem 0;
  color: var(--text);
  font-size: 0.875rem;
  text-decoration: none;
}
.pt-dokument-odkaz .pt-ikona-suboru {
  color: var(--tlmene);
}
.pt-dokument-meno {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pt-dokument-odkaz:hover {
  color: var(--signal);
}
.pt-dokument-odkaz:hover .pt-dokument-meno {
  text-decoration: underline;
}
/* akcie riadku: „Náhľad" (text) a stiahnutie (ikona) - tiché, vpravo od mena */
.pt-dokument-akcia {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--signal);
  text-decoration: none;
}
.pt-dokument-odkaz + .pt-dokument-akcia {
  margin-left: auto;
}
.pt-dokument-akcia:hover {
  text-decoration: underline;
}
.pt-dokument-akcia.is-ikona {
  width: 1.75rem;
  border-radius: var(--bs-border-radius-sm);
  color: var(--tlmene);
}
.pt-dokument-akcia.is-ikona:hover {
  background: color-mix(in srgb, var(--tlmene) 12%, transparent);
  color: var(--text);
}
.pt-dokument-akcia svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-dokument-velkost {
  flex: none;
  font-size: 0.8125rem;
  color: var(--tlmene);
  white-space: nowrap;
}
/* sponka s počtom - karta na nástenke a záložka Vlákno */
.pt-karta-prilohy,
.pt-zalozka-prilohy {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 0.125rem;
  color: var(--tlmene);
  white-space: nowrap;
}
.pt-karta-prilohy svg,
.pt-zalozka-prilohy svg {
  width: 0.875rem;
  height: 0.875rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-karta-prilohy {
  font-size: 0.75rem;
}
/* na karte vpravo pred termínom (termín sa k nej prilepí) */
.pt-karta-dole > .pt-karta-prilohy {
  margin-left: auto;
}
.pt-karta-dole > .pt-karta-prilohy + .pt-termin {
  margin-left: 0;
}
.pt-zalozka-prilohy {
  margin-left: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 400;
}
/* dotykové zariadenie: len výber súborov - text o ťahaní a Ctrl+V by mätol */
.pt-prilohy-text.is-dotyk {
  display: none;
}
@media (hover: none) {
  .pt-prilohy-text {
    display: none;
  }
  .pt-prilohy-text.is-dotyk {
    display: inline;
  }
  .pt-prilohy-info {
    display: none;
  }
}
/* úzky panel / telefón: sponka hore pri prvom riadku textu, ak sa zalomí */
@media (max-width: 575.98px) {
  .pt-prilohy.is-kompaktne .pt-prilohy-zona {
    align-items: flex-start;
  }
  .pt-prilohy.is-kompaktne .pt-prilohy-sponka,
  .pt-prilohy.is-kompaktne .pt-prilohy-info {
    margin-top: 0.125rem;
  }
}
/* ---- prehliadač fotiek (tickets/_lightbox, public/js/lightbox.js) --------- */
/* otvorený prehliadač - stránka pod ním neroluje */
html.pt-bez-scrollu,
html.pt-bez-scrollu body {
  overflow: hidden;
}
.pt-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1090;
  /* nad toastami */
  display: flex;
  flex-direction: column;
  background: color-mix(in srgb, var(--noc) 92%, transparent);
  backdrop-filter: blur(0.25rem);
  /* stránka pod prekrytím neruší */
  color: var(--papier);
  animation: pt-lightbox-fade 0.15s ease-out;
}
@keyframes pt-lightbox-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.pt-lightbox-hd {
  display: flex;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.75rem 1rem 0.75rem 1.25rem;
}
.pt-lightbox-info {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  min-width: 0;
  margin: 0;
}
.pt-lightbox-meno {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.pt-lightbox-velkost,
.pt-lightbox-pocitadlo {
  flex: none;
  color: var(--tlmene-tma);
  font-size: 0.875rem;
  white-space: nowrap;
}
.pt-lightbox-pocitadlo {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
}
.pt-lightbox-akcie {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
}
/* tlačidlá prehliadača - svetlé na tmavom, aspoň 2.75rem na dotyk */
.pt-lightbox-tlacidlo,
.pt-lightbox-sipka {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0 0.75rem;
  border: 0;
  border-radius: var(--bs-border-radius);
  background: transparent;
  color: var(--papier);
  font-size: 0.875rem;
  text-decoration: none;
  white-space: nowrap;
}
.pt-lightbox-tlacidlo:hover,
.pt-lightbox-sipka:hover {
  background: color-mix(in srgb, var(--papier) 12%, transparent);
  color: var(--papier);
}
.pt-lightbox-tlacidlo.is-zavriet {
  padding: 0;
}
.pt-lightbox a:focus-visible,
.pt-lightbox button:focus-visible {
  outline: 0.125rem solid var(--signal-svetly);
  outline-offset: 0.125rem;
}
.pt-lightbox svg {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* plocha s fotkou - klik mimo fotky zavrie; potiahnutie prstom listuje (pinch zoom ostane) */
.pt-lightbox-plocha {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 0 1rem 1.5rem;
  touch-action: pinch-zoom;
}
.pt-lightbox-obrazok {
  display: block;
  max-width: 92vw;
  max-height: min(86vh, calc(100vh - 6rem));
  /* pod hlavičkou prehliadača */
  object-fit: contain;
  border-radius: 0.25rem;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity 0.15s;
}
.pt-lightbox-obrazok.is-nacitava {
  opacity: 0;
}
.pt-lightbox-stav {
  position: absolute;
  margin: 0;
  color: var(--tlmene-tma);
  font-size: 0.9375rem;
  pointer-events: none;
}
.pt-lightbox-sipka {
  position: absolute;
  top: 50%;
  z-index: 1;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--noc) 55%, transparent);
  transform: translateY(-50%);
}
.pt-lightbox-sipka svg {
  width: 1.5rem;
  height: 1.5rem;
}
.pt-lightbox-sipka.is-predosla {
  left: 1rem;
}
.pt-lightbox-sipka.is-dalsia {
  right: 1rem;
}
/* náhľady dokumentov v prehliadači - biela „strana" na tmavom pozadí */
.pt-nahlad-ramec {
  display: block;
  width: min(92vw, 62rem);
  height: min(86vh, calc(100vh - 6rem));
  border: 0;
  border-radius: 0.25rem;
  background: var(--papier);
}
.pt-nahlad-ramec.is-dokument {
  background: var(--linka);
}
.pt-nahlad-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: min(92vw, 70rem);
  /* šírka podľa obsahu (úzka tabuľka = úzky rámik) */
  max-height: min(86vh, calc(100vh - 6rem));
  color: var(--text);
}
.pt-nahlad-harky {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.pt-nahlad-harok {
  min-height: 2rem;
  padding: 0 0.75rem;
  border: 1px solid color-mix(in srgb, var(--papier) 30%, transparent);
  border-radius: var(--bs-border-radius-sm);
  background: transparent;
  color: var(--papier);
  font-size: 0.8125rem;
}
.pt-nahlad-harok[aria-pressed="true"] {
  border-color: var(--papier);
  background: var(--papier);
  color: var(--text);
  font-weight: 500;
}
.pt-nahlad-tabulka,
.pt-nahlad-text {
  flex: 1 1 auto;
  min-height: 0;
  margin: 0;
  overflow: auto;
  border-radius: 0.25rem;
  background: var(--papier);
  overscroll-behavior: contain;
}
.pt-nahlad-tabulka table {
  border-collapse: collapse;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
}
.pt-nahlad-tabulka th,
.pt-nahlad-tabulka td {
  padding: 0.25rem 0.625rem;
  border: 1px solid var(--linka);
  white-space: nowrap;
  max-width: 24rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* hlavička stĺpcov a čísla riadkov ostanú pri rolovaní na mieste */
.pt-nahlad-tabulka thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--hmla);
  color: var(--tlmene);
  font-weight: 500;
  text-align: center;
}
.pt-nahlad-tabulka tbody th {
  position: sticky;
  left: 0;
  background: var(--hmla);
  color: var(--tlmene);
  font-weight: 400;
  text-align: right;
}
.pt-nahlad-text {
  min-width: min(92vw, 40rem);
  padding: 1rem 1.25rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.pt-nahlad-tabulka:focus-visible,
.pt-nahlad-text:focus-visible {
  outline: 0.125rem solid var(--signal-svetly);
  outline-offset: 0.125rem;
}
.pt-nahlad-poznamka {
  margin: 0;
  color: var(--tlmene-tma);
  font-size: 0.8125rem;
}
/* bez náhľadu: veľká ikona druhu, veta a Stiahnuť */
.pt-nahlad-nedostupny {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  color: var(--tlmene-tma);
  text-align: center;
}
.pt-nahlad-nedostupny .pt-ikona-suboru {
  width: 4rem;
  height: 4rem;
  stroke-width: 1;
}
.pt-nahlad-nedostupny-text {
  margin: 0;
  color: var(--papier);
  font-size: 1rem;
}
/* telefón: akcie len ikonami (text ostáva čítačke), počítadlo pod menom */
@media (max-width: 575.98px) {
  .pt-lightbox-hd {
    flex-wrap: wrap;
    padding: 0.5rem 0.5rem 0.5rem 1rem;
  }
  .pt-lightbox-info {
    flex: 1 1 0;
    flex-direction: column;
    gap: 0;
  }
  .pt-lightbox-pocitadlo {
    order: 3;
    flex-basis: 100%;
  }
  .pt-lightbox-tlacidlo {
    padding: 0;
  }
  .pt-lightbox-popis {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }
  .pt-lightbox-plocha {
    padding: 0 0 1rem;
  }
  .pt-lightbox-obrazok {
    max-width: 100vw;
  }
  /* dokumenty na celú šírku, pod nimi voľno pre šípky (neprekrývajú obsah) */
  .pt-nahlad-ramec,
  .pt-nahlad-list {
    width: 100vw;
    max-width: none;
    height: calc(100dvh - 13rem);
    max-height: none;
  }
  .pt-nahlad-list {
    height: auto;
    max-height: calc(100dvh - 13rem);
    padding: 0 0.5rem;
  }
  .pt-nahlad-text {
    min-width: 0;
  }
  .pt-lightbox-plocha.is-dokument {
    align-items: flex-start;
  }
  .pt-lightbox-sipka {
    top: auto;
    bottom: 1.25rem;
    transform: none;
  }
  .pt-lightbox-sipka.is-predosla {
    left: 0.75rem;
  }
  .pt-lightbox-sipka.is-dalsia {
    right: 0.75rem;
  }
}
/* ---- súbežnosť v paneli (public/js/presence.js) --------------------------- */
/* Kto ďalší má tiket otvorený / píše - statická jantárová bodka, bez pulzovania. */
.pt-pritomnost {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  color: var(--text);
}
.pt-pritomnost-bodka {
  flex: none;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--cakanie);
  /* bodka na strednú výšku prvého riadku textu */
  transform: translateY(-0.0625rem);
}
/* ---- menej pohybu ------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .pt-karta,
  .pt-hd-nav a,
  .pt-zvon-tlacidlo,
  .pt-upravit summary::before,
  .pt-prilohy-zona,
  .pt-prilohy.is-kompaktne .pt-prilohy-zona,
  .pt-nahlad {
    transition: none;
  }
  .pt-toast,
  .pt-datum-popover,
  .pt-lightbox {
    animation: none;
  }
  .pt-lightbox-obrazok {
    transition: none;
  }
  /* nová poznámka: zvýraznenie bez prechodu - 2 s zapnuté, potom naraz preč */
  .pt-sprava.is-nova {
    animation-timing-function: steps(1, end);
  }
}
/* ---- klienti (detail: fakturačné profily, projekty, kontakty) ----------- */
/* jeden riadok zoznamu v .pt-admin-karta - text alebo rozbalený editačný formulár na jeho mieste */
.pt-admin-riadok {
  padding: 0.875rem 0;
  border-bottom: 1px solid var(--linka);
}
.pt-admin-riadok:first-child {
  padding-top: 0;
}
.pt-admin-riadok:last-of-type {
  border-bottom: 0;
}
.pt-admin-riadok .pt-admin-polia {
  margin-top: 0.75rem;
}
/* Vlastné polia klientov (Nastavenia) - riadok s názvom/typom vľavo, akcie vpravo. */
.pt-pole-riadok {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem 0.875rem;
}
.pt-pole-nazov {
  flex: 1 1 12rem;
  min-width: 8rem;
}
.pt-pole-akcie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
}
.pt-pole-akcie form {
  display: inline-flex;
}
/* Stĺpce nástenky (Nastavenia firmy) - riadok s ťahadlom poradia (public/js/stlpce.js). */
.pt-tahadlo {
  cursor: grab;
  padding: 0 0.25rem;
  color: var(--tlmene);
  font-size: 1rem;
  line-height: 1;
  touch-action: none;
}
.pt-stlpec-riadok.is-ghost {
  opacity: 0.4;
}
.pt-stlpec-nazov {
  font-weight: 500;
}
.pt-stlpec-zmazat-form {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.pt-stlpec-zmazat-form .form-select {
  width: auto;
  max-width: 14rem;
}
/* návrhy podpisu z odoslaných mailov (x-podpis-navrhy) */
.pt-podpis-navrhy {
  margin-top: 0.75rem;
}
.pt-podpis-navrh {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  background: var(--hmla);
}
.pt-podpis-navrh-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
  font-size: 0.8125rem;
}
.pt-podpis-navrh .pt-podpis-nahlad {
  background: var(--papier);
}
/* chybové stránky (resources/views/errors) - karta prázdneho stavu s logom a kódom chyby */
.pt-chyba-stranka {
  margin-top: 12vh;
}
.pt-chyba-logo {
  justify-content: center;
  margin-bottom: 1.5rem;
}
.pt-chyba-kod {
  margin: 0 0 0.25rem;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: var(--tlmene);
}
/* ---- Nastavenia firmy: sekcie, rýchla navigácia, zoznamy (E) ------------ */
/* lepkavá navigácia sekcií pod hlavičkou aplikácie; na mobile vodorovne posuvná */
.pt-sekcie-nav {
  position: sticky;
  top: var(--pt-hlavicka);
  z-index: 20;
  display: flex;
  gap: 0.25rem;
  margin: -0.5rem -0.25rem 1.5rem;
  padding: 0.5rem 0.25rem;
  overflow-x: auto;
  background: color-mix(in srgb, var(--hmla) 92%, transparent);
  -webkit-backdrop-filter: blur(0.5rem);
  backdrop-filter: blur(0.5rem);
  scrollbar-width: none;
}
.pt-sekcie-nav a {
  flex: none;
  padding: 0.3125rem 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 999px;
  background: var(--papier);
  font-size: 0.875rem;
  color: var(--tlmene);
  text-decoration: none;
  white-space: nowrap;
}
.pt-sekcie-nav a:hover {
  color: var(--text);
  border-color: var(--signal);
}
/* kotva sekcie neskončí pod lepkavou hlavičkou + navigáciou */
.pt-sekcia {
  scroll-margin-top: calc(var(--pt-hlavicka) + 3.5rem);
  margin-bottom: 2.5rem;
}
.pt-sekcia-nadpis {
  margin: 0 0 0.375rem;
  font-size: 1.25rem;
  line-height: 1.3;
}
.pt-sekcia-popis {
  max-width: 40rem;
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: var(--tlmene);
}
.pt-sekcia-nadpis + .pt-admin-karta,
.pt-sekcia-nadpis + .pt-prazdno {
  margin-top: 0.75rem;
}
.pt-admin .pt-prazdno {
  max-width: none;
  margin: 0 0 1.5rem;
  padding: 1.5rem;
}
.pt-admin .pt-prazdno h2 {
  font-size: 1.0625rem;
}
.pt-admin .pt-prazdno p {
  margin: 0;
}
/* karta so zoznamom riadkov - riadky nesú vlastné odsadenie, bez medzery flexu karty */
.pt-admin-karta.pt-admin-zoznam {
  gap: 0;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.pt-admin-zoznam > .pt-admin-riadok:first-child {
  padding-top: 0.875rem;
}
/* „Upraviť" / „Zmazať" / „Nie" v riadkoch - tiché tlačidlá, nie podčiarknuté odkazy */
.pt-pole-akcie .btn-link {
  padding: 0.25rem 0.625rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--tlmene);
  text-decoration: none;
}
.pt-pole-akcie .btn-link:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-pole-akcie .btn-link.pt-formular-zrusit:hover {
  color: var(--bs-danger);
}
/* skupina stĺpca - len keď sa líši od názvu, jemná značka */
.pt-skupina {
  padding: 0 0.5rem;
  border: 1px solid var(--linka);
  border-radius: 999px;
  font-size: 0.75rem;
  line-height: 1.375rem;
  color: var(--tlmene);
}
/* odkaz ako karta (Vlastné polia klientov) */
.pt-admin-karta.pt-odkaz-karta {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  color: var(--text);
  text-decoration: none;
  transition: border-color 0.15s;
}
.pt-odkaz-karta > span:first-child {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.pt-odkaz-karta .pt-admin-karta-nadpis {
  float: none;
}
.pt-odkaz-karta .pt-tlmene {
  font-size: 0.875rem;
}
.pt-odkaz-karta-sipka {
  font-size: 1.25rem;
  color: var(--tlmene);
}
.pt-admin-karta.pt-odkaz-karta:hover {
  border-color: var(--signal);
}
.pt-admin-karta.pt-odkaz-karta:hover .pt-odkaz-karta-sipka {
  color: var(--signal);
}
@media (max-width: 575.98px) {
  .pt-admin-karta {
    padding: 1.25rem 1rem 1.25rem;
  }
  .pt-admin-polia {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* hľadanie na mobile: pole na celý riadok, tlačidlá Hľadať · Filtre · Vybrať spolu pod ním */
@media (max-width: 575.98px) {
  .pt-hladanie-pole {
    flex: 1 1 100%;
    max-width: none;
  }
}
/* názov firmy za nadpisom stránky (Klienti hladamchatu) - tlmený ako pri Tiketoch */
.pt-admin-nadpis span {
  margin-left: 0.375rem;
  color: var(--tlmene);
  font-weight: 500;
}
/* rýchle filtre nad hľadaním (Klienti) - vzduch medzi riadkami */
.pt-filtre + .pt-hladanie {
  margin-top: 0.75rem;
}
/* Audit - filtre v jednom zalomiteľnom riadku, JSON drobným písmom */
.pt-audit-filtre > .form-select,
.pt-audit-filtre > .form-control {
  flex: 1 1 9rem;
  width: auto;
}
.pt-audit td {
  font-size: 0.875rem;
}
.pt-audit .pt-audit-json {
  max-width: 26rem;
  font-size: 0.75rem;
}
/* ---- nový klient: voliteľná firma s dohľadaním v registri (clients/_firma.blade.php) ---- */
.pt-firma {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}
.pt-firma legend {
  float: none;
  width: auto;
  margin-bottom: 0.5rem;
}
.pt-firma-polia {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem 1rem;
}
.pt-firma-cele {
  grid-column: 1 / -1;
  margin: 0;
}
/* IČO + tlačidlo Dohľadať v jednom riadku */
.pt-firma-ico {
  display: flex;
  gap: 0.375rem;
}
.pt-firma-ico .btn {
  flex: none;
}
@media (max-width: 575.98px) {
  .pt-firma-polia {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ---- nástenka: „Stĺpce" - osobný výber viditeľných stĺpcov (_filtre.blade.php) ---- */
.pt-stlpce-vyber {
  position: relative;
  margin-left: auto;
}
.pt-stlpce-vyber + .pt-vyber-tlacidlo {
  margin-left: 0;
}
.pt-stlpce-vyber .btn.is-aktivne {
  border-color: var(--signal);
  color: var(--signal);
}
.pt-stlpce-vyber-riadok {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.5rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  cursor: pointer;
}
.pt-stlpce-vyber-riadok:hover {
  background: var(--hmla);
}
.pt-stlpce-vyber-riadok .form-check-input {
  margin: 0;
}
.pt-stlpce-vyber-pozn {
  margin: 0.375rem 0.5rem 0;
  font-size: 0.75rem;
  color: var(--tlmene);
}
/* ---- detail tiketu ako okno v strede (App\Enums\TicketOpenMode::Modal, .pt-tikety.has-okno) ----
   Nástenka ostáva cez celú šírku a stmavne, panel je okno. Na mobile platí panel cez celú obrazovku. */
.pt-okno-pozadie {
  display: none;
}
@media (min-width: 992px) {
  .pt-tikety.has-okno .pt-okno-pozadie {
    position: fixed;
    inset: 0;
    z-index: 1040;
    display: block;
    background: rgba(14, 20, 32, 0.42);
    cursor: default;
    animation: pt-okno-pozadie-in 0.15s ease-out;
  }
  .pt-tikety.has-okno .pt-panel {
    position: fixed;
    top: 2.5rem;
    bottom: 2.5rem;
    left: 50%;
    z-index: 1050;
    width: min(56rem, calc(100vw - 4rem));
    height: auto;
    margin: 0;
    --panel-pt: 1.5rem;
    --panel-px: 2rem;
    padding: var(--panel-pt) var(--panel-px) 2rem;
    border: 1px solid var(--linka);
    border-radius: var(--r);
    box-shadow: 0 1.5rem 4rem rgba(14, 20, 32, 0.28);
    transform: translateX(-50%);
    animation: pt-okno-in 0.16s ease-out;
  }
  body:has(.pt-tikety.has-okno) {
    overflow: hidden;
    /* nástenka pod oknom sa neroluje */
  }
}
@keyframes pt-okno-pozadie-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes pt-okno-in {
  from {
    opacity: 0;
    transform: translate(-50%, 0.75rem);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
/* Nastavenia firmy -> Zobrazenie: dve voľby s malým náhľadom rozloženia */
.pt-rezim-volby {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.pt-rezim-volba {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  font-size: 0.875rem;
  cursor: pointer;
}
.pt-rezim-volba:has(:checked) {
  border-color: var(--signal);
  box-shadow: 0 0 0 0.1875rem rgba(47, 91, 255, 0.15);
}
.pt-rezim-volba .form-check-input {
  margin: 0;
}
.pt-rezim-nahlad {
  position: relative;
  display: block;
  width: 8rem;
  height: 5rem;
  border-radius: 0.375rem;
  background: var(--hmla);
  border: 1px solid var(--linka);
  overflow: hidden;
}
.pt-rezim-nahlad span {
  position: absolute;
  display: block;
  background: var(--papier);
  border: 1px solid var(--linka);
}
/* panel: úzky pruh vpravo */
.pt-rezim-nahlad.is-panel span:first-child {
  top: 0;
  right: 0;
  bottom: 0;
  width: 40%;
  border-width: 0 0 0 1px;
}
/* okno: stmavené pozadie a karta v strede */
.pt-rezim-nahlad.is-modal span:first-child {
  inset: 0;
  border: 0;
  background: rgba(14, 20, 32, 0.25);
}
.pt-rezim-nahlad.is-panel span:last-child {
  display: none;
}
.pt-rezim-nahlad.is-modal span:last-child {
  top: 0.625rem;
  bottom: 0.625rem;
  left: 20%;
  right: 20%;
  border-radius: 0.25rem;
}
/* ---- posledný riešený tiket (public/js/pozicia.js) - po zatvorení panela / zmene je jasne vidieť,
   na ktorom tikete človek práve robil. Karta: rámik v akcente + štítok „Naposledy" (preložený text
   z data-posledny nástenky skopíruje JS do data-posledny-text karty). ---- */
.pt-karta-wrap.is-posledny .pt-karta {
  border-color: var(--signal);
  background: var(--odpoved-plocha);
  box-shadow: 0 0 0 0.1875rem rgba(47, 91, 255, 0.22);
}
.pt-karta-wrap.is-posledny::before {
  content: attr(data-posledny-text);
  position: absolute;
  top: -0.5rem;
  left: 0.75rem;
  z-index: 3;
  padding: 0 0.4375rem;
  border-radius: 999px;
  background: var(--signal);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.125rem;
}
.pt-tabulka tr.is-posledny td {
  background: var(--odpoved-plocha);
}
.pt-tabulka tr.is-posledny td:first-child {
  box-shadow: inset 0.1875rem 0 0 var(--signal);
}
/* === Hľadanie a filtre (UX B) ===
   Stránka Tikety: záložky s počtami + koše, riadok zúženia (hľadanie, Filtre pod tlačidlom, čipy,
   Zobrazenie / ⋯, Označiť), výsledky hľadania, checkbox stĺpca (S2), sekundárne tlačidlá (S5).
   Šablóny: resources/views/tickets/index.blade.php, _filtre.blade.php; JS: public/js/hladanie.js. */
/* S5 - sekundárne tlačidlá: biele, tmavý text (kontrast AA), linka */
.btn-outline-secondary {
  --bs-btn-color: var(--text);
  --bs-btn-bg: var(--papier);
  --bs-btn-border-color: var(--linka);
  --bs-btn-hover-color: var(--text);
  --bs-btn-hover-bg: var(--hmla);
  --bs-btn-hover-border-color: #C5CDDB;
  --bs-btn-active-color: var(--text);
  --bs-btn-active-bg: var(--hmla);
  --bs-btn-active-border-color: #C5CDDB;
  --bs-btn-disabled-color: var(--tlmene);
  --bs-btn-disabled-bg: var(--papier);
  --bs-btn-disabled-border-color: var(--linka);
}
/* viditeľnosť podľa šírky (mobil do 991 px) */
@media (min-width: 992px) {
  .pt-len-mobil {
    display: none !important;
  }
}
@media (max-width: 991.98px) {
  .pt-len-pc {
    display: none !important;
  }
}
/* „+ Nový tiket" - ikona + text, na mobile len ikona */
.pt-tikety-novy {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.pt-tikety-novy-ikona {
  width: 0.875rem;
  height: 0.875rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}
.pt-tikety-hd {
  margin-bottom: 1rem;
}
/* záložky „komu patrí" - jedna os, podčiarknutie; koše vpravo */
.pt-zalozky {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--linka);
}
.pt-zalozky-rad {
  display: flex;
  gap: 1.5rem;
  min-width: 0;
}
.pt-zalozka {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: -1px;
  padding: 0.375rem 0 0.625rem;
  border-bottom: 0.125rem solid transparent;
  color: var(--tlmene);
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}
.pt-zalozka:hover {
  color: var(--text);
}
.pt-zalozka.is-aktivne {
  border-bottom-color: var(--text);
  color: var(--text);
  font-weight: 600;
}
.pt-zalozka-pocet {
  min-width: 1.5rem;
  padding: 0 0.375rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--linka) 70%, var(--hmla));
  color: var(--tlmene);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.25rem;
  text-align: center;
}
.pt-zalozka.is-aktivne .pt-zalozka-pocet {
  color: var(--text);
}
.pt-kose {
  display: flex;
  gap: 1rem;
  margin-left: auto;
}
.pt-kos {
  margin-bottom: -1px;
  padding: 0.375rem 0 0.625rem;
  border-bottom: 0.125rem solid transparent;
  color: var(--tlmene);
  font-size: 0.875rem;
  text-decoration: none;
}
.pt-kos:hover {
  color: var(--text);
}
.pt-kos.is-aktivne {
  border-bottom-color: var(--text);
  color: var(--text);
  font-weight: 600;
}
.pt-filtre-nic {
  margin: -0.5rem 0 1rem;
}
/* riadok zúženia */
.pt-zuzenie {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.pt-zuzenie .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  min-height: 2.25rem;
}
.pt-zuzenie-vpravo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
}
.pt-zuzenie-vpravo .pt-vyber-tlacidlo {
  margin-left: 0;
}
/* pole hľadania: lupa, ✕, skratka „/" */
.pt-zuzenie .pt-hladanie {
  position: relative;
  display: block;
  flex: 0 1 26rem;
  min-width: 12rem;
  margin: 0;
}
.pt-zuzenie .pt-hladanie-pole {
  max-width: none;
  height: 2.25rem;
  padding: 0 2.5rem 0 2.25rem;
  font-size: 0.875rem;
}
.pt-hladanie-pole::-webkit-search-cancel-button {
  appearance: none;
}
.pt-hladanie-lupa {
  position: absolute;
  top: 50%;
  left: 0.75rem;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: var(--tlmene);
  stroke-width: 1.5;
  stroke-linecap: round;
  transform: translateY(-50%);
  pointer-events: none;
}
.pt-hladanie-skratka {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  min-width: 1.25rem;
  padding: 0 0.3125rem;
  border: 1px solid var(--linka);
  border-radius: 0.3125rem;
  background: var(--hmla);
  color: var(--tlmene);
  font-family: inherit;
  font-size: 0.75rem;
  line-height: 1.125rem;
  text-align: center;
  transform: translateY(-50%);
  pointer-events: none;
}
.pt-hladanie:focus-within .pt-hladanie-skratka,
.pt-hladanie.is-vyplnene .pt-hladanie-skratka {
  display: none;
}
.pt-hladanie-vycistit {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  display: inline-grid;
  place-items: center;
  width: 1.375rem;
  height: 1.375rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--tlmene);
  color: var(--papier);
  transform: translateY(-50%);
  cursor: pointer;
}
/* väčšia plocha na klik/dotyk, než je viditeľný krúžok */
.pt-hladanie-vycistit::before {
  content: "";
  position: absolute;
  inset: -0.375rem;
}
.pt-hladanie-vycistit:hover {
  background: var(--text);
}
.pt-hladanie-vycistit svg {
  width: 0.75rem;
  height: 0.75rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
}
/* ✕ je v DOM za skratkou - skratku skryje aj pri aktívnom hľadaní s prázdnym poľom */
.pt-hladanie:has(.pt-hladanie-vycistit:not([hidden])) .pt-hladanie-skratka {
  display: none;
}
/* rozbaľovače (Filtre, Zobrazenie / ⋯) */
.pt-rozbal {
  position: relative;
}
.pt-filtre-ikona,
.pt-zobrazenie-sipka,
.pt-zobrazenie-viac {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pt-zobrazenie-viac {
  fill: currentColor;
  stroke: none;
}
.pt-filtre-ikona,
.pt-zobrazenie-viac {
  display: none;
}
.pt-rozbal.is-otvorene > .btn {
  border-color: var(--signal);
}
/* panel Filtre pod svojím tlačidlom (zarovnaný vľavo), nie na opačnom konci obrazovky */
.pt-filtre-obal .pt-filtre-panel {
  top: calc(100% + 0.375rem);
  right: auto;
  left: 0;
  z-index: 60;
}
.pt-filtre-hned-pozn {
  font-size: 0.8125rem;
  color: var(--tlmene);
}
.pt-filtre-rozsah[hidden] {
  display: none;
}
.pt-filtre-pole--checkbox .form-check-input {
  margin: 0;
}
/* čipy v tom istom riadku za tlačidlom Filtre */
.pt-zuzenie .pt-cipy {
  align-items: center;
  margin: 0;
}
.pt-cipy-vycistit {
  margin-left: 0.25rem;
}
/* Zobrazenie ▾ / ⋯ */
.pt-zobrazenie-tlacidlo.is-aktivne {
  border-color: var(--signal);
}
.pt-zobrazenie-menu {
  position: absolute;
  top: calc(100% + 0.375rem);
  right: 0;
  z-index: 60;
  width: 16rem;
  max-width: calc(100vw - 2rem);
  padding: 0.375rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  box-shadow: 0 0.75rem 2rem rgba(14, 20, 32, 0.14);
}
.pt-zobrazenie-sekcia {
  padding: 0.25rem 0;
}
.pt-zobrazenie-sekcia + .pt-zobrazenie-sekcia {
  border-top: 1px solid var(--linka);
}
.pt-zobrazenie-nadpis {
  margin: 0.25rem 0.5rem 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--tlmene);
}
.pt-zobrazenie-polozka {
  display: block;
  width: 100%;
  padding: 0.5rem;
  border: 0;
  border-radius: 0.5rem;
  background: none;
  color: var(--text);
  font-size: 0.875rem;
  text-align: left;
  text-decoration: none;
}
.pt-zobrazenie-polozka:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-zobrazenie-polozka.is-aktivne {
  font-weight: 600;
}
/* výsledky hľadania */
.pt-hladanie-vysledok {
  margin: -0.25rem 0 0.75rem;
  font-size: 0.875rem;
  color: var(--tlmene);
}
.pt-hladanie-vysledok a {
  margin-left: 0.25rem;
}
.pt-hladanie-nic {
  max-width: 34rem;
  margin: 2.5rem auto;
  padding: 2rem;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: var(--r);
  text-align: center;
  color: var(--tlmene);
}
.pt-hladanie-nic p {
  margin-bottom: 0.5rem;
}
.pt-hladanie-nic-nadpis {
  color: var(--text);
  font-size: 1.125rem;
  font-weight: 600;
}
.pt-hladanie-nic-akcie {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.25rem;
  margin: 1rem 0 0;
}
/* S2 - checkbox stĺpca pri počte (režim Označiť) namiesto tlačidla „Označiť stĺpec" */
.pt-stlpec-hd input.pt-stlpec-vyber {
  flex: none;
  width: 1rem;
  height: 1rem;
  margin: 0 0 0 0.5rem;
  padding: 0;
  border: 1px solid #B6BFCE;
  border-radius: 0.25rem;
  background-image: var(--bs-form-check-bg-image);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.pt-stlpec-hd input.pt-stlpec-vyber + .pt-stlpec-pocet {
  margin-left: 0.375rem;
}
/* mobil: [hľadanie][Filtre][⋯] v jednom riadku, pod ním posuvné záložky */
@media (max-width: 991.98px) {
  .pt-tikety-obsah {
    display: flex;
    flex-direction: column;
  }
  .pt-tikety-obsah > * {
    order: 3;
  }
  .pt-tikety-obsah > .pt-tikety-hd {
    order: 0;
  }
  .pt-tikety-obsah > .pt-zuzenie {
    order: 1;
  }
  .pt-tikety-obsah > .pt-zalozky {
    order: 2;
  }
  .pt-tikety-obsah > .pt-filtre-nic {
    order: 2;
    margin: -0.5rem 0 1rem;
  }
  .pt-tikety-novy {
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
  }
  .pt-tikety-novy-ikona {
    width: 1.125rem;
    height: 1.125rem;
  }
  .pt-tikety-novy-text,
  .pt-filtre-tlacidlo-text,
  .pt-zobrazenie-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .pt-zuzenie {
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
  }
  .pt-zuzenie .pt-hladanie {
    order: 0;
    flex: 1 1 0;
    min-width: 0;
  }
  .pt-zuzenie .pt-hladanie-pole {
    height: 2.5rem;
    font-size: 1rem;
    /* iOS pri menšom písme zoomuje */
  }
  .pt-hladanie-skratka {
    display: none;
  }
  /* Panel Filtre cez celú šírku riadku - obal nie je kotvou */
  .pt-filtre-obal {
    position: static;
    order: 1;
  }
  .pt-filtre-obal .pt-filtre-panel {
    right: 0;
    width: auto;
  }
  .pt-zuzenie-vpravo {
    order: 2;
    margin-left: 0;
  }
  .pt-zuzenie .pt-cipy {
    order: 3;
    flex: 1 1 100%;
  }
  .pt-zuzenie .btn {
    min-width: 2.5rem;
    min-height: 2.5rem;
    justify-content: center;
  }
  .pt-filtre-ikona,
  .pt-zobrazenie-viac {
    display: block;
  }
  .pt-zobrazenie-sipka {
    display: none;
  }
  .pt-filtre-tlacidlo {
    position: relative;
  }
  .pt-filtre-tlacidlo .pt-filtre-pocet {
    position: absolute;
    top: -0.375rem;
    right: -0.375rem;
  }
  .pt-zobrazenie-polozka {
    padding: 0.625rem 0.5rem;
  }
  /* záložky vodorovne posuvné s vyblednutým pravým okrajom; koše sú v ⋯ */
  .pt-zalozky {
    margin-bottom: 0.75rem;
  }
  .pt-zalozky-rad {
    flex: 1 1 auto;
    gap: 1.25rem;
    padding-right: 2rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
  }
  .pt-zalozky-rad::-webkit-scrollbar {
    display: none;
  }
  .pt-kose {
    display: none;
  }
}
/* Písanie do hľadania hneď skryje karty/riadky, ktoré nesedia (public/js/hladanie.js); Enter hľadá na serveri. */
.pt-karta-wrap.is-mimo-hladania,
.pt-tabulka tr[data-ticket-row].is-mimo-hladania {
  display: none;
}
/* hláška pod hľadaním: nič na stránke / ukazujem podobné (public/js/hladanie.js) */
.pt-hladanie-tip {
  order: 10;
  flex: 1 1 100%;
  margin: 0;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
/* === Detail tiketu (UX C) ===
   Hlavička s rýchlymi akciami (Prevziať, ✓ Vyriešiť, menu ⋯), vlastnosti ako pilulky, zbalené písanie,
   spodná akčná lišta na mobile a prehľad klávesových skratiek (public/js/skratky.js). Platí pre panel
   vpravo, okno v strede aj mobil cez celú obrazovku. */
/* hlavička: číslo · druh | Prevziať · Vyriešiť · ⋯ | ✕ - nad lepivým nadpisom, aby menu ⋯ neprekryl */
.pt-panel-hd {
  z-index: 8;
}
.pt-panel-ref {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.pt-detail-hd-akcie {
  display: flex;
  flex: none;
  align-items: center;
  gap: 0.375rem;
  margin-left: auto;
}
.pt-detail-hd-akcie form {
  margin: 0;
}
.pt-detail-hd-akcie + .pt-panel-zavriet {
  margin-left: 0;
}
.pt-detail-tlacidlo {
  min-height: 2.25rem;
  color: var(--text);
  white-space: nowrap;
}
.pt-panel-zavriet-spat {
  display: none;
}
/* menu ⋯ - zriedkavé akcie */
.pt-detail-menu {
  position: relative;
}
.pt-detail-menu-tlacidlo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 0;
  border-radius: 0.5rem;
  background: none;
  color: var(--tlmene);
}
.pt-detail-menu-tlacidlo:hover,
.pt-detail-menu-tlacidlo[aria-expanded="true"] {
  background: var(--hmla);
  color: var(--text);
}
.pt-detail-menu-tlacidlo svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}
.pt-detail-menu-zoznam {
  position: absolute;
  top: calc(100% + 0.25rem);
  right: 0;
  z-index: 20;
  min-width: 12rem;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  background: var(--papier);
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  box-shadow: 0 0.5rem 1.5rem rgba(20, 27, 43, 0.12);
}
.pt-detail-menu-zoznam button {
  display: block;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 0;
  border-radius: 0.375rem;
  background: none;
  font-size: 0.875rem;
  text-align: left;
  color: var(--text);
  white-space: nowrap;
}
.pt-detail-menu-zoznam button:hover,
.pt-detail-menu-zoznam button:focus-visible {
  background: var(--hmla);
}
/* sekcie z menu ⋯ (Upraviť tiket, Zlúčiť s…, Vytvoriť pravidlo) - zatvorené nie sú vidno */
.pt-panel details[data-sekcia-menu]:not([open]) {
  display: none;
}
.pt-panel details[data-sekcia-menu][open] {
  margin-bottom: 1rem;
  padding: 0.5rem 0.75rem 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
}
/* vlastnosti ako pilulky v jednom riadku */
.pt-detail-vlastnosti {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.625rem;
}
.pt-pilulka {
  min-width: 0;
  max-width: 100%;
  margin: 0;
}
.pt-panel .pt-pilulka-select {
  width: auto;
  max-width: 16rem;
  min-height: 2rem;
  padding: 0.25rem 1.75rem 0.25rem 0.75rem;
  border-radius: 1rem;
  background-position: right 0.5rem center;
  font-size: 0.8125rem;
  font-weight: 500;
  field-sizing: content;
}
.pt-panel .pt-vyber-stav .pt-pilulka-select {
  padding-left: 1.5rem;
}
.pt-detail-vlastnosti .pt-panel-klient-vyber {
  display: block;
}
.pt-detail-vlastnosti .pt-klient-summary {
  max-width: 14rem;
  min-height: 2rem;
  padding: 0.25rem 1.75rem 0.25rem 0.75rem;
  border-radius: 1rem;
  font-size: 0.8125rem;
}
.pt-detail-vlastnosti .pt-klient-summary::after {
  right: 0.6875rem;
}
.pt-detail-vlastnosti .pt-panel-stitky {
  margin: 0;
}
.pt-stitok-pridat.pt-pilulka-pridat {
  width: auto;
  height: 2rem;
  padding: 0 0.75rem;
  border-radius: 1rem;
  font-size: 0.8125rem;
  white-space: nowrap;
}
.pt-detail-vlastnosti .pt-chyba {
  flex-basis: 100%;
}
/* písanie zbalené na 1 riadok, kým ho človek neotvorí */
.pt-pisanie {
  margin-bottom: 1rem;
}
.pt-pisanie-zbalene {
  display: flex;
  gap: 0.5rem;
}
.pt-pisanie-riadok {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--linka);
  border-radius: 0.625rem;
  background: var(--papier);
  font-size: 0.875rem;
  text-align: left;
  color: var(--tlmene);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: text;
}
.pt-pisanie-riadok:hover {
  border-color: var(--signal);
  color: var(--text);
}
.pt-pisanie-druhy {
  flex: none;
  min-height: 2.5rem;
  color: var(--text);
}
.pt-pisanie-riadok.is-koncept,
.pt-pisanie-druhy.is-koncept {
  border-color: var(--signal);
  color: var(--text);
}
/* prepínač Odpoveď/Poznámka + ✕ (zavrieť bez odoslania, text ostane ako koncept) */
.pt-pisanie-hlavicka {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.pt-pisanie-hlavicka .pt-pisanie-prepinac {
  margin-bottom: 0;
}
.pt-pisanie-zavriet {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-left: auto;
  padding: 0;
  border: 0;
  border-radius: 0.5rem;
  background: none;
  color: var(--tlmene);
}
.pt-pisanie-zavriet:hover {
  background: var(--hmla);
  color: var(--text);
}
.pt-pisanie-zavriet svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
}
/* spodná akčná lišta - len mobil */
.pt-detail-spodok {
  display: none;
}
/* prehľad klávesových skratiek (okno aplikácie) */
.pt-skratky-nadpis {
  margin: 0 0 0.75rem;
  font-size: 1.0625rem;
  font-weight: 600;
}
.pt-skratky-zoznam {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 0.5rem 1rem;
  margin: 0 0 1rem;
  font-size: 0.875rem;
}
.pt-skratky-zoznam dt {
  display: flex;
  gap: 0.25rem;
  font-weight: 400;
}
.pt-skratky-zoznam dd {
  margin: 0;
}
.pt-skratky-zoznam kbd {
  display: inline-block;
  min-width: 1.5rem;
  padding: 0.0625rem 0.375rem;
  border: 1px solid var(--linka);
  border-bottom-width: 0.125rem;
  border-radius: 0.375rem;
  background: var(--hmla);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  text-align: center;
  color: var(--text);
}
.pt-skratky-pozn {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  color: var(--tlmene);
}
@media (max-width: 991.98px) {
  /* hlavička „← HCH-n · ⋯" - šípka späť vľavo, Vyriešiť je v spodnej lište */
  .pt-panel-zavriet-x {
    display: none;
  }
  .pt-panel-zavriet-spat {
    display: block;
  }
  .pt-detail-stav-tlacidlo {
    display: none;
  }
  .pt-detail-tlacidlo,
  .pt-detail-menu-tlacidlo {
    min-height: 2.75rem;
  }
  .pt-detail-menu-tlacidlo {
    width: 2.75rem;
    height: 2.75rem;
  }
  .pt-detail-menu-zoznam button {
    min-height: 2.75rem;
  }
  /* nadpis sa lepí pod vyššiu hlavičku (dotykové ciele 2,75 rem) */
  .pt-panel-nadpis {
    top: 2.75rem;
  }
  /* dotykové ciele aspoň 2,75 rem */
  .pt-panel .pt-pilulka-select,
  .pt-detail-vlastnosti .pt-klient-summary,
  .pt-stitok-pridat.pt-pilulka-pridat,
  .pt-pisanie-riadok,
  .pt-pisanie-druhy {
    min-height: 2.75rem;
  }
  .pt-stitok-pridat.pt-pilulka-pridat {
    height: 2.75rem;
  }
  .pt-detail-vlastnosti .pt-klient-summary {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }
  /* Sticky lišta sa ráta od obsahu panela (bez spodného paddingu) - panel ho preto nemá, inak by
       lišta visela 2 rem nad spodkom obrazovky. Pri otvorenom písaní je lišta skrytá a padding sa vráti. */
  .pt-panel {
    padding-bottom: 0;
  }
  .pt-panel:has(.pt-pisanie.is-otvorene) {
    padding-bottom: 2rem;
  }
  .pt-panel:has(.pt-pisanie.is-otvorene) .pt-detail-spodok {
    display: none;
  }
  /* akcie sú v spodnej lište - zbalený riadok písania by ich len opakoval */
  .pt-pisanie-zbalene {
    display: none;
  }
  .pt-pisanie:not(.is-otvorene) {
    margin-bottom: 0;
  }
  /* Prevziať je v spodnej lište (namiesto Poznámky) - v hlavičke nie dvakrát */
  .pt-detail-prevziat-hd {
    display: none;
  }
  .pt-detail-spodok {
    position: sticky;
    bottom: 0;
    z-index: 7;
    display: flex;
    gap: 0.5rem;
    margin: 1rem calc(-1 * var(--panel-px, 1rem)) 0;
    padding: 0.5rem var(--panel-px, 1rem) calc(0.5rem + env(safe-area-inset-bottom));
    background: var(--papier);
    border-top: 1px solid var(--linka);
  }
  .pt-detail-spodok-tlacidlo {
    flex: 1 1 0;
    min-width: 0;
    min-height: 2.75rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    white-space: nowrap;
  }
  .pt-detail-spodok .btn-outline-secondary {
    color: var(--text);
  }
  /* toasty nad spodnou lištou detailu (3,75 rem + rezerva); pri písaní je lišta skrytá */
  body:has(.pt-detail-spodok) .pt-toasty {
    bottom: calc(4.75rem + env(safe-area-inset-bottom));
  }
  body:has(.pt-pisanie.is-otvorene) .pt-toasty {
    bottom: 1rem;
  }
}
