/*
 * Jen proměnné nad Bootstrapem (PLAN.md §1.2): žádné vlastní komponenty ani rozvržení.
 * Hotový bootstrap.min.css má barvy komponent zapečené v jejich vlastních proměnných,
 * proto se značková barva propisuje i do --bs-btn-* a dalších. Barvu závodu (E0.4)
 * stačí změnit v --f-znacka; odstíny se dopočítají přes color-mix().
 */
:root {
  --f-znacka: #1f4e79;
  --f-znacka-tmava: color-mix(in srgb, var(--f-znacka) 82%, #000);
  --f-znacka-tmavsi: color-mix(in srgb, var(--f-znacka) 70%, #000);
  --f-znacka-svetla: color-mix(in srgb, var(--f-znacka) 12%, #fff);

  --bs-primary: var(--f-znacka);
  --bs-link-color: var(--f-znacka);
  --bs-link-hover-color: var(--f-znacka-tmava);
  --bs-primary-bg-subtle: var(--f-znacka-svetla);
  --bs-primary-text-emphasis: var(--f-znacka-tmavsi);
  --bs-primary-border-subtle: color-mix(in srgb, var(--f-znacka) 35%, #fff);
  --bs-focus-ring-color: color-mix(in srgb, var(--f-znacka) 25%, transparent);
}

.btn-primary {
  --bs-btn-bg: var(--f-znacka);
  --bs-btn-border-color: var(--f-znacka);
  --bs-btn-hover-bg: var(--f-znacka-tmava);
  --bs-btn-hover-border-color: var(--f-znacka-tmava);
  --bs-btn-active-bg: var(--f-znacka-tmavsi);
  --bs-btn-active-border-color: var(--f-znacka-tmavsi);
  --bs-btn-disabled-bg: var(--f-znacka);
  --bs-btn-disabled-border-color: var(--f-znacka);
  --bs-btn-focus-shadow-rgb: 31, 78, 121;
}

.btn-outline-primary {
  --bs-btn-color: var(--f-znacka);
  --bs-btn-border-color: var(--f-znacka);
  --bs-btn-hover-bg: var(--f-znacka);
  --bs-btn-hover-border-color: var(--f-znacka);
  --bs-btn-active-bg: var(--f-znacka-tmava);
  --bs-btn-active-border-color: var(--f-znacka-tmava);
  --bs-btn-disabled-color: var(--f-znacka);
  --bs-btn-disabled-border-color: var(--f-znacka);
}

.nav-pills {
  --bs-nav-pills-link-active-bg: var(--f-znacka);
}

.pagination {
  --bs-pagination-color: var(--f-znacka);
  --bs-pagination-hover-color: var(--f-znacka-tmava);
  --bs-pagination-focus-color: var(--f-znacka-tmava);
  --bs-pagination-active-bg: var(--f-znacka);
  --bs-pagination-active-border-color: var(--f-znacka);
}

.dropdown-menu {
  --bs-dropdown-link-active-bg: var(--f-znacka);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: color-mix(in srgb, var(--f-znacka) 50%, #fff);
  box-shadow: 0 0 0 0.25rem var(--bs-focus-ring-color);
}

.form-check-input:checked {
  background-color: var(--f-znacka);
  border-color: var(--f-znacka);
}

/* text-bg-primary a bg-primary používají --bs-primary-rgb; ta se z hexu dopočítat nedá. */
.text-bg-primary,
.bg-primary {
  background-color: var(--f-znacka) !important;
}
.border-primary {
  border-color: var(--f-znacka) !important;
}
.text-primary {
  color: var(--f-znacka) !important;
}

/* SPC: pomocný diagram (R / S / MR) nižší než hlavní. */
.spc-pomocny { --bs-aspect-ratio: 25%; }
/* Tom Select: nabídka je připnutá k <body>, musí být nad sticky lištou (1020) i offcanvasem (1045) */
.ts-dropdown{z-index:1080}
/* Náhled e-mailu (Správa → E-maily): rám s uloženým HTML, přepínač šířky telefon / počítač */
.nahled-emailu{width:100%;height:70vh;border:0;background:#fff}
.nahled-emailu--telefon{max-width:375px}
/* Horní lišta: vyhledávání do šířky, menu „Přidat“ s rolováním na malých výškách */
.lista-hledani{max-width:44rem}
.lista-hledani .dropdown-menu{max-height:70vh;overflow-y:auto}

/* Tmavý režim (data-bs-theme="dark"): odstíny značky dopočítat proti tmavému pozadí */
[data-bs-theme="dark"] {
  --f-znacka-svetla: color-mix(in srgb, var(--f-znacka) 30%, #212529);
  --bs-link-color: color-mix(in srgb, var(--f-znacka) 45%, #fff);
  --bs-link-hover-color: color-mix(in srgb, var(--f-znacka) 30%, #fff);
  --bs-primary-bg-subtle: var(--f-znacka-svetla);
  --bs-primary-text-emphasis: color-mix(in srgb, var(--f-znacka) 40%, #fff);
  --bs-primary-border-subtle: color-mix(in srgb, var(--f-znacka) 60%, #212529);
}
/* Tabulka s filtry: hledání do šířky, řádek filtrů pod hlavičkou */
.seznam-hledani{max-width:28rem}
.seznam-filtry th{min-width:8rem;vertical-align:top}
.seznam-popis{max-width:18rem}
/* Náhledy fotek (přílohy, reklamace za 14 dní): čtverec, ořez na střed */
.nahled-fotky{aspect-ratio:1/1;object-fit:cover;width:100%}
.udalost-datum{width:3rem}
.nahled-reklamace{width:4.5rem;height:4.5rem}
.sparkline{width:9rem;height:3.5rem}
/* Řádek po termínu: červený proužek vlevo místo barvy celého řádku */
tr.radek-po-terminu > td:first-child{box-shadow:inset 4px 0 0 var(--bs-danger)}

/* ── Žádný vodorovný posuvník (pravidlo produktu) ─────────────────────
   Tabulky se vejdou do šířky: text se zalomí, filtry se smí zúžit, méně důležité sloupce
   (Sloupec.priorita 2 / 3) se ukážou až na širokém monitoru, na mobilu jsou řádky kartičky. */
.table{width:100%}
.table th,.table td{overflow-wrap:break-word}
.seznam-pevna th,.seznam-pevna td{overflow-wrap:anywhere}
.seznam-pevna .text-nowrap{white-space:normal!important}
.table .form-control,.table .form-select,.table .ts-wrapper,.table input{min-width:0;max-width:100%}
.seznam-filtry th{min-width:0}
@media (max-width:1199.98px){.table .text-nowrap{white-space:normal!important}}
.table .ts-control>input{min-width:2rem!important}
.sloupec-p2,.sloupec-p3{display:none}
@media (min-width:992px){.sloupec-p2{display:table-cell}}
@media (min-width:1600px){.sloupec-p3{display:table-cell}}
@media (max-width:767.98px){
  table.tabulka-karty,table.tabulka-karty thead,table.tabulka-karty tbody,table.tabulka-karty tr,
  table.tabulka-karty th,table.tabulka-karty td{display:block;width:100%}
  table.tabulka-karty thead tr:first-child{display:none}
  table.tabulka-karty tbody tr{border-bottom:1px solid var(--bs-border-color);padding:.5rem 0}
  table.tabulka-karty td,table.tabulka-karty .seznam-filtry th{border:0;padding:.15rem .75rem;text-align:left!important}
  table.tabulka-karty td[data-label]::before,table.tabulka-karty th[data-label]::before{
    content:attr(data-label);display:block;font-size:.75rem;font-weight:400;color:var(--bs-secondary-color)}
  table.tabulka-karty td:empty{display:none}
}
/* Tabulky s filtry: pevné rozvržení (šířku dělí sloupce, obsah se zalomí), textové sloupce širší */
.seznam-pevna{table-layout:fixed}
.seznam-pevna .sloupec-siroky{width:24%}
.seznam-pevna .seznam-popis{max-width:100%}
@media (max-width:767.98px){
  .seznam-pevna{table-layout:auto}
  table.tabulka-karty .seznam-filtry{display:none}
  table.tabulka-karty.filtry-otevrene .seznam-filtry{display:block}
}
/* Časová osa záznamu */
.osa-ikona{width:2rem;height:2rem;font-size:.9rem}
.osa-polozka{position:relative}
.osa-polozka:not(:last-child)::before{content:"";position:absolute;left:1rem;top:2.1rem;bottom:.2rem;border-left:2px solid var(--bs-border-color)}
/* Krokovač průběhu workflow */
.prubeh-krok{font-size:.8rem;padding:.2rem .6rem;border-radius:2rem;border:1px solid var(--bs-border-color);
  color:var(--bs-secondary-color);background:var(--bs-body-bg)}
.prubeh-hotovo{color:var(--bs-success-text-emphasis);background:var(--bs-success-bg-subtle);border-color:var(--bs-success-border-subtle)}
.prubeh-aktualni{font-weight:600;color:#fff;background:var(--f-znacka);border-color:var(--f-znacka)}
.prubeh-aktualni.prubeh-success{background:var(--bs-success);border-color:var(--bs-success)}
.prubeh-aktualni.prubeh-dark{background:var(--bs-dark);border-color:var(--bs-dark)}
.prubeh-aktualni.prubeh-danger{background:var(--bs-danger);border-color:var(--bs-danger)}
/* Klíčové údaje v detailu: popisek vlevo, hodnota vpravo, kompaktně. */
.detail-udaje{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:.45rem .75rem;font-size:.9rem}
.detail-udaje dt{font-weight:400;color:var(--bs-secondary-color);margin:0}
.detail-udaje dd{margin:0;overflow-wrap:anywhere}
.detail-hlavicka h1{overflow-wrap:anywhere}
/* Pruh čísel v hlavičce detailu (souvislosti), oddělený jen linkou. */
.detail-cisla{border-top:1px solid var(--bs-border-color-translucent);margin:1rem -1rem -1rem}
.detail-cisla>a{display:block;padding:.6rem 1rem;color:inherit;text-decoration:none;border-left:1px solid var(--bs-border-color-translucent)}
.detail-cisla>a:first-child{border-left:0}
.detail-cisla>a:hover{background:var(--bs-tertiary-bg)}
.detail-cisla span{display:block;font-size:.8rem;color:var(--bs-secondary-color)}
.detail-cisla strong{font-size:1.15rem;font-weight:600}
.detail-cisla small{font-size:.8rem;font-weight:400;color:var(--bs-secondary-color)}
@media (max-width:767.98px){.detail-cisla>a:nth-child(3){border-left:0}.detail-cisla>a:nth-child(n+3){border-top:1px solid var(--bs-border-color-translucent)}}
/* Počty u ikon v liště: uvnitř lišty, ne nalepené na horní okraj. */
.lista-ikona{margin-right:.55rem}
.lista-odznak{top:.15rem;left:55%;right:auto;font-size:.62rem;padding:.25em .4em;line-height:1;border:2px solid var(--bs-body-bg)}
/* Přehled „Můj den“: pruh klíčových čísel, fronta úkolů, stav oblastí. */
.pruh-ukazatelu>a{display:block;padding:.85rem 1rem;color:inherit;text-decoration:none;border-left:1px solid var(--bs-border-color-translucent);min-width:0}
.pruh-ukazatelu>a:first-child{border-left:0}
.pruh-ukazatelu>a:hover{background:var(--bs-tertiary-bg)}
.pruh-ukazatelu .ukazatel-nazev{display:block;font-size:.8rem;color:var(--bs-secondary-color)}
.pruh-ukazatelu strong{display:block;font-size:1.5rem;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.pruh-ukazatelu .ukazatel-popis{display:block;font-size:.78rem;color:var(--bs-secondary-color)}
@media (max-width:767.98px){.pruh-ukazatelu>a:nth-child(odd){border-left:0}.pruh-ukazatelu>a:nth-child(n+3){border-top:1px solid var(--bs-border-color-translucent)}}
.fronta .list-group-item:hover{background:var(--bs-tertiary-bg)}
.stav-tecka{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}
.graf-maly{position:relative;height:220px}
.min-w-0{min-width:0}
/* Tabulky: zaškrtávací sloupec, řazení v záhlaví, řádek „Hromadné akce + Použít“ a hledání nad tabulkou. */
.sloupec-vyber{width:2.25rem;padding-right:0!important}
.tabulka-nastroje{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem}
.tabulka-nastroje .tabulka-hledani{width:14rem;max-width:100%}
.tlacitko-razeni{all:unset;cursor:pointer;font-weight:inherit;display:inline;overflow-wrap:anywhere}
.tlacitko-razeni .bi{font-size:.7em;opacity:.35}
.tlacitko-razeni:hover .bi,[aria-sort] .tlacitko-razeni .bi{opacity:1}
.tlacitko-razeni:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}
@media (max-width:767.98px){.tabulka-karty td.sloupec-vyber{display:block;width:auto}.tabulka-karty td.sloupec-vyber::before{content:none}}
/* Okno „+ Přidat“: typy záznamů ve sloupcích podle oblasti, hledání nahoře. */
.pridat-sloupce{columns:4 13rem;column-gap:1.5rem}
.pridat-sloupce section{break-inside:avoid;margin-bottom:1rem}
.pridat-skupina{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);margin:0 0 .35rem .5rem}
.pridat-mrizka{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.25rem}
.pridat-polozka{display:flex;gap:.6rem;align-items:center;padding:.45rem .5rem;border-radius:var(--bs-border-radius);color:var(--bs-body-color);text-decoration:none}
.pridat-polozka .bi{font-size:1.1rem;color:var(--bs-secondary-color)}
.pridat-polozka:hover,.pridat-polozka:focus-visible,.pridat-polozka.aktivni{background:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.pridat-polozka:hover .bi,.pridat-polozka.aktivni .bi{color:inherit}
/* Seznam jako Kanban / Graf (komponenty/seznam_kanban.html, seznam_graf.html). Sloupce kanbanu se zalamují
   do mřížky (žádný vodorovný posuvník), karty rolují uvnitř sloupce; kontingenční tabulka má pevné rozvržení. */
.kanban{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:.75rem;align-items:start}
.kanban-sloupec{min-width:0}
.kanban-karty{max-height:70vh;overflow-y:auto;background:var(--bs-tertiary-bg)}
.kanban-karta{min-width:0}
.kanban-cislo{overflow-wrap:anywhere}
.kanban-titulek{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.graf-seznam{position:relative;height:320px}
.pivot{table-layout:fixed}
.pivot th,.pivot td{overflow-wrap:anywhere}
.pivot .pivot-osa{width:28%}
/* Kontingenční tabulka zůstane i na mobilu tabulkou (nejvýš 6 sloupců + celkem), ne kartičkami. */
@media (max-width:767.98px){
  table.pivot.tabulka-karty{display:table;font-size:.8rem}
  table.pivot.tabulka-karty thead{display:table-header-group}
  table.pivot.tabulka-karty tbody{display:table-row-group}
  table.pivot.tabulka-karty tfoot{display:table-footer-group}
  table.pivot.tabulka-karty tr,table.pivot.tabulka-karty thead tr:first-child{display:table-row;padding:0;border-bottom:0}
  table.pivot.tabulka-karty th,table.pivot.tabulka-karty td{display:table-cell;width:auto;padding:.25rem .3rem;border-bottom:1px solid var(--bs-border-color)}
  table.pivot.tabulka-karty td.text-end,table.pivot.tabulka-karty th.text-end{text-align:right!important}
  table.pivot.tabulka-karty td[data-label]::before,table.pivot.tabulka-karty th[data-label]::before{content:none}
}
/* ── Návodky (moduly/navodky) a editor formátovaného textu (static/js/editor.js) ──────────────── */
/* Barvy textu z editoru (allowlist jadro/bezpecne_html.py) – čitelné i v tmavém režimu */
.text-cervena{color:#c62828}
.text-zelena{color:#2e7d32}
.text-oranzova{color:#e65100}
[data-bs-theme="dark"] .text-cervena{color:#ff6b6b}
[data-bs-theme="dark"] .text-zelena{color:#69db7c}
[data-bs-theme="dark"] .text-oranzova{color:#ffa94d}
.editor-plocha{min-height:6rem;max-height:60vh;overflow-y:auto;overflow-wrap:anywhere}
.editor-plocha:empty::before{content:attr(data-placeholder);color:var(--bs-secondary-color)}
.editor-plocha>:last-child,.navodka-text>:last-child{margin-bottom:0}
.editor-plocha h3,.navodka-text h3{font-size:1.1rem}
.editor-plocha h4,.navodka-text h4{font-size:1rem}
.navodka-text{overflow-wrap:anywhere}
.navodka-text ul,.navodka-text ol,.editor-plocha ul,.editor-plocha ol{padding-left:1.4rem}
/* Krok: číslo v kroužku, fotky do šířky, pár SPRÁVNĚ / ŠPATNĚ s barevným rámečkem */
.krok-cislo{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;
  border-radius:50%;background:var(--f-znacka);color:#fff;font-weight:600}
.krok-cislo-odebrany{background:var(--bs-danger)}
.krok-bezpecnost{border-left:4px solid var(--bs-warning)}
.krok-kontrola{border-left:4px solid var(--bs-info)}
.krok-bod{background:var(--bs-warning-bg-subtle);border-radius:var(--bs-border-radius);padding:.35rem .6rem}
.krok-foto{display:block;width:100%;max-width:100%;height:auto}
.krok-par{border:3px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden}
.krok-par figcaption{font-weight:600;padding:.2rem .5rem}
.krok-spravne{border-color:var(--bs-success)}
.krok-spravne figcaption{background:var(--bs-success);color:#fff}
.krok-spatne{border-color:var(--bs-danger)}
.krok-spatne figcaption{background:var(--bs-danger);color:#fff}
img.krok-spravne,img.krok-spatne{border:3px solid}
.nahled-kroku{width:5rem;height:5rem;object-fit:cover;max-width:100%}
.krok-par .nahled-kroku{display:block}
.navodka-oopp .oopp,.oopp-volba{display:inline-flex;gap:.35rem;align-items:center}
.navodka-oopp .oopp{padding:.25rem .6rem;border-radius:2rem;background:var(--bs-primary-bg-subtle);
  color:var(--bs-primary-text-emphasis);font-size:.875rem}
/* Zvláštní znaky: CC kritický (červená), SC významný (oranžová) */
.znak-cc{background:#c62828;color:#fff}
.znak-sc{background:#e65100;color:#fff}
/* Porovnání verzí: rozdíl po slovech, řádky zachované */
.rozdil{white-space:pre-line;overflow-wrap:anywhere}
.rozdil ins.rozdil-ins{background:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis);text-decoration:none;
  border-bottom:2px solid var(--bs-success)}
.rozdil del.rozdil-del{background:var(--bs-danger-bg-subtle);color:var(--bs-danger-text-emphasis)}
.rozdil del.rozdil-del+ins.rozdil-ins{margin-left:.2em}
.rozdil-pridan{border-left:4px solid var(--bs-success)}
.rozdil-odebran{border-left:4px solid var(--bs-danger);opacity:.85}
.rozdil-zmenen{border-left:4px solid var(--bs-warning)}
.rozdil-foto{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);padding:.25rem}
.rozdil-foto-stara{border-color:var(--bs-danger-border-subtle)}
.rozdil-foto-nova{border-color:var(--bs-success-border-subtle)}
.active-revize{background:var(--bs-tertiary-bg)}
/* Kresba do fotky kroku (static/js/kresleni.js): fotka + SVG vrstva přes ni, souřadnice relativní k fotce */
.kresleni-lista .btn-group.flex-wrap{max-width:100%}
.kresleni-lista .btn{white-space:nowrap}
.kresleni-vzorek{display:inline-block;width:1.1rem;height:1.1rem;border-radius:50%;vertical-align:-.2rem;
  border:1px solid rgba(0,0,0,.35)}
.kresleni-cervena{background:#dc2626}
.kresleni-zelena{background:#16a34a}
.kresleni-zluta{background:#facc15}
.kresleni-modra{background:#2563eb}
.kresleni-bila{background:#fff}
.kresleni-lista .btn[aria-pressed="true"]{background:var(--bs-secondary-bg);border-color:var(--bs-emphasis-color);
  box-shadow:inset 0 0 0 1px var(--bs-emphasis-color);color:var(--bs-emphasis-color)}
.kresleni-text{min-width:min(100%,14rem)}
.kresleni-obal{display:flex;justify-content:center;min-width:0}
.kresleni-plocha{position:relative;max-width:100%;line-height:0;user-select:none;-webkit-user-select:none}
.kresleni-foto{display:block;max-width:100%;height:auto;max-height:calc(100dvh - 13rem);min-height:4rem;
  pointer-events:none;-webkit-touch-callout:none}
.kresleni-svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;overflow:hidden}
.kresleni-svg [data-index]{cursor:move}
.kresleni-svg .kresleni-vybrany{fill:none;stroke:#0d6efd;stroke-dasharray:6 4;pointer-events:none}
@media (max-width:575.98px){.kresleni-foto{max-height:none}.kresleni-lista .btn{padding:.3rem .5rem}}
/* Logo zákazníka: SVG se škáluje do výšky lišty; tmavá varianta jen v tmavém režimu. */
img.logo { width: auto; max-width: 11rem; object-fit: contain; }
.logo-tmave { display: none; }
[data-bs-theme="dark"] .logo-tmave { display: inline; }
[data-bs-theme="dark"] .logo-svetle { display: none; }
