/* ============================================================
   NahrAI portál — UI v2 shell (M0–M1)
   Vše scopované pod [data-ui="v2"]. Barvy VÝHRADNĚ přes tokeny
   z tokens.css — žádné hexy (viz design_handoff CLAUDE.md).
   Rozměry dle README.md „Globální rozvržení (shell)";
   liché hodnoty z prototypu zaokrouhleny na škálu --sp-*.
   ============================================================ */

[data-ui="v2"] *,
[data-ui="v2"] *::before,
[data-ui="v2"] *::after { box-sizing: border-box; }

[data-ui="v2"] body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 500 14px/1.45 var(--font-sans);
  -webkit-font-smoothing: antialiased;
  --pagebar-h: 54px;
  --content-sticky-top: var(--header-h);
}
[data-ui="v2"] body.v2-pagebar-visible {
  --content-sticky-top: calc(var(--header-h) + var(--pagebar-h));
}

[data-ui="v2"] a { color: var(--accent-text); }
[data-ui="v2"] a:hover { color: var(--accent-hover); }

[data-ui="v2"] .icon {
  font-family: 'Material Symbols Rounded';
  font-weight: 400; font-style: normal; line-height: 1;
  letter-spacing: normal; text-transform: none; white-space: nowrap;
  display: inline-block; direction: ltr;
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  user-select: none;
  flex: 0 0 auto;
}

[data-ui="v2"] .sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Jednotný symbol NahrAI kreditu. U částek stojí vždy za číslem jako symbol
   měny; u nadpisů funguje jako rychlá vizuální orientace. */
[data-ui="v2"] .v2-credit-token {
  display: inline-block; width: 16px; height: 16px; flex: 0 0 auto;
  object-fit: contain; vertical-align: -.18em;
}
[data-ui="v2"] .v2-credit-token.tiny { width: 12px; height: 12px; }
[data-ui="v2"] .v2-credit-token.small { width: 14px; height: 14px; }
[data-ui="v2"] .v2-credit-token.header { width: 24px; height: 24px; }
[data-ui="v2"] .v2-credit-token.large { width: 24px; height: 24px; }
[data-ui="v2"] .v2-credit-amount {
  display: inline-flex; align-items: center; gap: 4px; max-width: 100%;
  line-height: inherit; white-space: nowrap; vertical-align: baseline;
  font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-credit-heading { display: inline-flex; align-items: center; gap: 6px; }

/* Jediná barva fokusu v celé aplikaci (token --focus); lokální výjimky
   níže používají tentýž token, aby fokus nešel zaměnit s akcentem. */
[data-ui="v2"] :focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
  border-radius: var(--r-xs);
}

/* ---------- Zaškrtávací pole (globální vzhled) ----------
   Vlastní vykreslení místo nativního: nezaškrtnutý rámeček --field-line má
   3:1 v obou motivech (nativní šedý rámeček ve tmavém režimu splýval
   s kartou), fajfka je kreslená z rámečků ::after v barvě --on-accent.
   Pravidlo je záměrně NAHOŘE souboru — pozdější lokální rozměry
   (.qcheck 19 px, doklady 17 px, .rv-field 16 px) i skrytý input .v2-switch
   ho při stejné specificitě přebijí. Fokus = globální kroužek výše. */
[data-ui="v2"] input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 16px; height: 16px; margin: 0; padding: 0; flex: 0 0 auto;
  display: inline-grid; place-content: center; vertical-align: middle;
  border: 1.5px solid var(--field-line); border-radius: 4px;
  background: var(--surface); color: var(--on-accent); cursor: pointer;
  transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
[data-ui="v2"] input[type="checkbox"]::after {
  content: ''; width: 4px; height: 8px; box-sizing: border-box;
  border: solid currentColor; border-width: 0 2px 2px 0;
  transform: translateY(-1px) rotate(45deg); opacity: 0;
}
[data-ui="v2"] input[type="checkbox"]:hover:not(:disabled):not(:checked) { border-color: var(--ink-2); }
[data-ui="v2"] input[type="checkbox"]:checked,
[data-ui="v2"] input[type="checkbox"]:indeterminate { background: var(--accent-fill); border-color: var(--accent-fill); }
[data-ui="v2"] input[type="checkbox"]:checked::after { opacity: 1; }
[data-ui="v2"] input[type="checkbox"]:indeterminate::after {
  width: 8px; height: 0; border-width: 0 0 2px 0; transform: none; opacity: 1;
}
[data-ui="v2"] input[type="checkbox"]:disabled { opacity: .5; cursor: not-allowed; }
[data-ui="v2"] input[type="checkbox"]:disabled:checked,
[data-ui="v2"] input[type="checkbox"]:disabled:indeterminate { background: var(--ink-3); border-color: var(--ink-3); }
/* Popisek se zaškrtávacím polem: text vedle pole, celý řádek klikací. */
[data-ui="v2"] label.chk { display: inline-flex; align-items: center; gap: var(--sp-2); cursor: pointer; }
[data-ui="v2"] label.chk:has(input:disabled) { color: var(--ink-3); cursor: not-allowed; }

/* ---------- Kostra ---------- */

[data-ui="v2"] .v2-shell { display: flex; align-items: stretch; min-height: 100vh; }

/* ---------- Ikonový rail ---------- */

/* Rail drží v rozvržení jen svoji šířku; vlastní panel je uvnitř polohovaný,
   takže rozbalení najetím myší překryje obsah a stránka nepodskočí.
   Připnutý rail roztáhne i tuhle vnější šířku, takže se obsah přizpůsobí. */
[data-ui="v2"] .v2-rail {
  width: var(--rail-w); min-width: var(--rail-w); flex: 0 0 auto;
  position: sticky; top: 0; height: 100vh; z-index: 30;
  overflow: visible;
  transition: width var(--dur) var(--ease), min-width var(--dur) var(--ease);
}
[data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail {
  width: var(--rail-w-expanded); min-width: var(--rail-w-expanded);
}
[data-ui="v2"] .v2-rail-inner {
  position: absolute; top: 0; left: 0; bottom: 0;
  width: var(--rail-w);
  background: var(--surface); border-right: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--sp-6) var(--sp-5);
  overflow: hidden;
  transition: width var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
[data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail-inner { width: var(--rail-w-expanded); }
/* nepřipnuté rozbalení: myší i klávesnicí, s vlastním stínem přes obsah */
[data-ui="v2"] .v2-shell[data-rail="collapsed"] .v2-rail:hover .v2-rail-inner,
[data-ui="v2"] .v2-shell[data-rail="collapsed"] .v2-rail:focus-within .v2-rail-inner {
  width: var(--rail-w-expanded); box-shadow: var(--shadow-lg); z-index: 40;
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-rail, [data-ui="v2"] .v2-rail-inner { transition: none; }
}

[data-ui="v2"] .v2-rail-logo {
  display: flex; align-items: center; gap: var(--sp-4);
  padding: 2px var(--sp-1) var(--sp-7);
}
[data-ui="v2"] .v2-rail-logo .mark {
  width: 36px; height: 36px; flex: 0 0 auto;
  border-radius: 11px; background: var(--accent);
  display: grid; place-items: center;
  color: var(--on-accent); font: 700 17px/1 var(--font-sans); letter-spacing: -.02em;
}
[data-ui="v2"] .v2-rail-logo .wordmark { display: none; min-width: 0; }
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover, .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-logo .wordmark { display: block; }
[data-ui="v2"] .v2-rail-logo .wordmark b { font: 700 16px/1.2 var(--font-sans); color: var(--ink); white-space: nowrap; }
[data-ui="v2"] .v2-rail-logo .wordmark b em { font-style: normal; color: var(--accent); }
[data-ui="v2"] .v2-rail-logo .wordmark small { display: block; font: 400 11px/1.3 var(--font-sans); color: var(--ink-3); white-space: nowrap; }

[data-ui="v2"] .v2-rail-primary {
  display: flex; align-items: center; gap: var(--sp-5); justify-content: center;
  padding: 11px var(--sp-5); margin-bottom: var(--sp-4);
  border: 0; border-radius: var(--r-lg); cursor: pointer;
  background: var(--accent-fill); color: var(--on-accent);
  font: 600 14px/1 var(--font-sans);
  box-shadow: 0 6px 16px -8px var(--accent);
}
[data-ui="v2"] .v2-rail-primary:hover { background: var(--accent-hover); }
[data-ui="v2"] .v2-rail-primary .icon { font-size: 22px; }
[data-ui="v2"] .v2-rail-primary .lbl { display: none; }
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover, .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-primary { justify-content: flex-start; }
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover, .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-primary .lbl { display: inline; white-space: nowrap; }
[data-ui="v2"] .v2-rail-item {
  position: relative;
  display: flex; align-items: center; gap: var(--sp-5); justify-content: center;
  width: 100%; padding: var(--sp-4) var(--sp-5);
  border: 0; border-radius: 11px; cursor: pointer;
  background: transparent; color: var(--ink-2);
  font: 500 14px/1.2 var(--font-sans); text-align: left; text-decoration: none;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover, .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-item { justify-content: flex-start; }
[data-ui="v2"] .v2-rail-item:hover { background: var(--bg-2); color: var(--ink); text-decoration: none; }
[data-ui="v2"] .v2-rail-item.on { background: var(--accent-soft); color: var(--accent-text); font-weight: 600; }
[data-ui="v2"] .v2-rail-item .icon { font-size: 22px; }
[data-ui="v2"] .v2-rail-item .lbl {
  display: none; flex: 1; min-width: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover, .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-item .lbl { display: block; }

[data-ui="v2"] .v2-rail-item .badge {
  position: absolute; top: 6px; right: 6px;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: var(--r-pill); background: var(--accent);
  color: var(--on-accent); font: 700 10px/16px var(--font-sans); text-align: center;
  background: var(--accent-fill);
}
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover,
 .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-rail-item .badge {
  position: static; min-width: 20px; height: auto; padding: 1px 6px;
  font: 700 11px/1.4 var(--font-sans);
}

[data-ui="v2"] .v2-rail-spacer { flex: 1; }
[data-ui="v2"] #v2-rail-items { flex: 0 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }
[data-ui="v2"] .v2-rail-item.pin .icon { transition: transform var(--dur) var(--ease); }
[data-ui="v2"] .v2-rail-item.pin:not(.on) .icon { transform: rotate(45deg); opacity: .75; }
[data-ui="v2"] .v2-rail-item.pin.on { color: var(--accent-text); }
[data-ui="v2"] .v2-draft-item { color: var(--ok); }
[data-ui="v2"] .v2-draft-item.on { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .v2-draft-item .lbl {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 650 12.5px/1.25 var(--font-sans);
}
[data-ui="v2"] .v2-draft-row {
  position: relative; min-width: 0;
  width: calc(100% - var(--sp-1)); margin-right: var(--sp-1);
  border-radius: 11px;
}
[data-ui="v2"] .v2-draft-child { min-height: 38px; padding-top: 7px; padding-bottom: 7px; }
[data-ui="v2"] .v2-draft-doc-icon { transition: opacity var(--dur-fast) var(--ease); }
[data-ui="v2"] .v2-draft-trash {
  position: absolute; z-index: 2; top: 50%; left: 50%;
  display: grid; place-items: center; width: 30px; height: 30px; padding: 0;
  border: 0; border-radius: var(--r-sm); background: var(--bad-soft); color: var(--bad);
  opacity: 0; pointer-events: none; cursor: pointer;
  transform: translate(-50%, -50%);
  transition: opacity var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-draft-trash .icon { font-size: 21px; }
[data-ui="v2"] .v2-draft-row:hover .v2-draft-trash,
[data-ui="v2"] .v2-draft-trash:focus-visible { opacity: 1; pointer-events: auto; }
[data-ui="v2"] .v2-draft-row:hover .v2-draft-doc-icon { opacity: 0; }
[data-ui="v2"] .v2-draft-trash:hover { background: color-mix(in srgb, var(--bad-soft) 78%, var(--bad) 22%); }
[data-ui="v2"] .v2-draft-trash:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] :is(.v2-shell[data-rail="pinned"], .v2-shell[data-rail="collapsed"] .v2-rail:hover,
 .v2-shell[data-rail="collapsed"] .v2-rail:focus-within) .v2-draft-trash {
  left: calc(var(--sp-5) - 4px); transform: translateY(-50%);
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-rail-item.pin .icon,
  [data-ui="v2"] .v2-draft-doc-icon,
  [data-ui="v2"] .v2-draft-trash { transition: none; }
}

/* ---------- Hlavička ---------- */

[data-ui="v2"] .v2-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
/* Sticky-footer: main vyplní zbytek výšky, patička sedí u spodní hrany
   i na krátkých obrazovkách — bez záporných marginů (ty vytvářely přesah
   obsahu za shell = šedý pruh a rozjetý scroll). */
[data-ui="v2"] .v2-main > main { flex: 1 1 auto; display: flex; flex-direction: column; }
/* Pojistka proti GLOBÁLNÍMU vodorovnému scrollu: co přeteče šířku obsahu, se
   ořízne tady, ne na <body>. Záměrně „clip", ne „hidden" — clip nevytváří
   scroll kontejner, takže lepivé prvky uvnitř (hlavičky tabulek, dock) dál
   fungují. Plovoucí panely (combo, náhled, tooltip) jsou v <body>, netýká se jich. */
[data-ui="v2"] .v2-main > main { overflow-x: clip; }

[data-ui="v2"] .v2-hdr {
  position: sticky; top: 0; z-index: 25;
  display: flex; align-items: center; gap: var(--sp-6);
  padding: var(--sp-5) var(--content-pad);
  background: var(--surface); border-bottom: 1px solid var(--line);
}

[data-ui="v2"] .v2-hdr .spacer { flex: 1; }
[data-ui="v2"] .v2-hdr-actions {
  display: flex; align-items: center; justify-content: flex-end;
  gap: 6px; min-width: 0; flex: 0 1 auto;
}
[data-ui="v2"] .v2-hdr-facts {
  display: flex; align-items: center; gap: 6px; min-width: 0; flex: 0 1 auto;
}
[data-ui="v2"] .v2-hdr-fact {
  display: inline-flex; align-items: center; gap: 7px; min-width: 0; height: 40px;
  padding: 4px 10px; border: 1px solid var(--line-2); border-radius: var(--r-pill);
  background: var(--surface-2); color: var(--ink-2); cursor: pointer;
  font-family: var(--font-sans); text-align: left; white-space: nowrap;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-hdr-fact:hover,
[data-ui="v2"] .v2-hdr-fact:focus-visible {
  border-color: var(--accent-line); background: var(--accent-soft); color: var(--ink);
}
[data-ui="v2"] .v2-hdr-fact > .icon { flex: 0 0 auto; font-size: 18px; color: var(--ink-3); }
[data-ui="v2"] .v2-hdr-fact > .v2-credit-token { flex: 0 0 auto; }
[data-ui="v2"] .v2-hdr-fact .fact-text { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-hdr-fact .fact-key {
  font: 600 9px/1.15 var(--font-sans); letter-spacing: .055em; text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .v2-hdr-fact .fact-text b {
  display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  font: 700 12px/1.25 var(--font-sans); color: var(--ink);
}
[data-ui="v2"] .v2-hdr-fact.credit {
  flex: 0 0 auto;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-hdr-fact.credit:hover,
[data-ui="v2"] .v2-hdr-fact.credit:focus-visible {
  transform: translateY(-1px); box-shadow: 0 5px 14px rgba(21,36,60,.14);
}
[data-ui="v2"] .v2-hdr-fact.credit:active { transform: translateY(0); box-shadow: none; }
[data-ui="v2"] .v2-hdr-fact.credit:focus-visible {
  outline: 2px solid var(--focus); outline-offset: 2px;
}
[data-ui="v2"] .v2-hdr-fact.credit.tone-warn { border-color: var(--warn); background: var(--warn-soft); }
[data-ui="v2"] .v2-hdr-fact.credit.tone-bad { border-color: var(--bad); background: var(--bad-soft); }
[data-ui="v2"] .v2-hdr-fact.credit.tone-mut { color: var(--ink-3); }
[data-ui="v2"] .v2-hdr-fact.mailbox { flex: 0 1 280px; max-width: 280px; }
[data-ui="v2"] .v2-hdr-fact.mailbox .fact-text { flex: 1 1 auto; }
[data-ui="v2"] .v2-hdr-fact.mailbox .copy { font-size: 15px; opacity: .72; }
[data-ui="v2"] .v2-hdr-fact.catalogs {
  position: relative; flex: 0 0 auto; min-width: 132px; overflow: hidden;
  padding: 4px 10px; border-radius: var(--r-pill);
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-hdr-fact.catalogs[aria-disabled="true"] { cursor: progress; opacity: 1; }
[data-ui="v2"] .v2-hdr-fact.catalogs:hover,
[data-ui="v2"] .v2-hdr-fact.catalogs:focus-visible {
  transform: translateY(-1px); box-shadow: 0 5px 14px rgba(21,36,60,.14);
}
[data-ui="v2"] .v2-hdr-fact.catalogs:active { transform: translateY(0); box-shadow: none; }
[data-ui="v2"] .v2-hdr-fact.catalogs:focus-visible {
  outline: 2px solid var(--focus); outline-offset: 2px;
}
[data-ui="v2"] .v2-hdr-fact.catalogs.is-ready > .icon { color: var(--ok); }
[data-ui="v2"] .v2-hdr-fact.catalogs.is-error {
  border-color: var(--bad); background: var(--bad-soft);
}
[data-ui="v2"] .v2-hdr-fact.catalogs.is-error > .icon { color: var(--bad); }
[data-ui="v2"] .catalog-progress {
  position: absolute; left: 10px; right: 10px; bottom: 3px; height: 2px;
  overflow: hidden; border-radius: var(--r-pill); background: var(--line);
}
[data-ui="v2"] .catalog-progress > span {
  display: block; width: 0; height: 100%; border-radius: inherit; background: var(--accent);
}
[data-ui="v2"] .v2-hdr-fact.catalogs.is-ready .catalog-progress > span {
  width: 100%; background: var(--ok);
}
[data-ui="v2"] .v2-hdr-fact.catalogs.is-error .catalog-progress > span {
  width: 100%; background: var(--bad);
}
[data-ui="v2"] .v2-hdr-fact.catalogs.is-loading .catalog-progress > span,
[data-ui="v2"] .v2-hdr-fact.catalogs.is-refreshing .catalog-progress > span {
  width: 42%; animation: v2-catalog-progress 1.2s var(--ease) infinite;
}
@keyframes v2-catalog-progress {
  0% { transform: translateX(-115%); }
  100% { transform: translateX(340%); }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-hdr-fact.catalogs.is-loading .catalog-progress > span,
  [data-ui="v2"] .v2-hdr-fact.catalogs.is-refreshing .catalog-progress > span {
    width: 100%; animation: none;
  }
  [data-ui="v2"] .v2-hdr-fact.catalogs:hover,
  [data-ui="v2"] .v2-hdr-fact.catalogs:focus-visible,
  [data-ui="v2"] .v2-hdr-fact.catalogs:active,
  [data-ui="v2"] .v2-hdr-fact.credit:hover,
  [data-ui="v2"] .v2-hdr-fact.credit:focus-visible,
  [data-ui="v2"] .v2-hdr-fact.credit:active { transform: none; }
}
[data-ui="v2"] .v2-hdr-popover-wrap {
  position: relative; display: inline-flex; flex: 0 0 auto; height: 40px;
}
[data-ui="v2"] .v2-hdr-popover-wrap::after {
  content: ""; position: absolute; z-index: 79; top: 100%; left: 0; right: 0;
  height: 10px; pointer-events: none;
}
[data-ui="v2"] .v2-hdr-popover {
  position: absolute; z-index: 80; top: calc(100% + 9px); right: 0;
  width: min(430px, calc(100vw - 24px));
  height: var(--v2-hdr-popover-height, min(820px, calc(100dvh - var(--header-h) - 18px)));
  max-height: calc(100dvh - var(--header-h) - 18px);
  padding: var(--sp-4); overflow: hidden;
  display: flex; flex-direction: column; box-sizing: border-box;
  border: 1px solid var(--line-2); border-radius: var(--r-xl);
  background: var(--surface); color: var(--ink); box-shadow: var(--shadow-lg);
  white-space: normal; pointer-events: none;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease),
    visibility 0s linear var(--dur-fast);
}
[data-ui="v2"] .v2-hdr-popover:focus-visible {
  outline: 2px solid var(--focus); outline-offset: 2px;
}
[data-ui="v2"] .v2-hdr-popover-wrap:hover .v2-hdr-popover,
[data-ui="v2"] .v2-hdr-popover-wrap:focus-within .v2-hdr-popover {
  opacity: 1; visibility: visible; transform: translateY(0);
  pointer-events: auto; transition-delay: 0s;
}
[data-ui="v2"] .v2-hdr-popover-wrap:hover::after,
[data-ui="v2"] .v2-hdr-popover-wrap:focus-within::after {
  pointer-events: auto;
}
[data-ui="v2"] .v2-hdr-popover-head {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  padding-bottom: var(--sp-3); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-hdr-popover-head > span:first-child {
  display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-hdr-popover-head b { font-size: 13px; }
[data-ui="v2"] .v2-hdr-popover-head small { color: var(--ink-2); font-size: 11.5px; line-height: 1.4; }
[data-ui="v2"] .v2-hdr-popover-scroll {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  overscroll-behavior: contain; scrollbar-gutter: stable;
}
[data-ui="v2"] .v2-catalog-time {
  display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3) 0;
  color: var(--ink-2); font-size: 11.5px;
}
[data-ui="v2"] .v2-catalog-time .icon { color: var(--info); font-size: 16px; }
[data-ui="v2"] .v2-catalog-results { margin: 0; padding: 0; list-style: none; }
[data-ui="v2"] .v2-catalog-results li {
  display: grid; grid-template-columns: 17px minmax(0, 1fr) auto;
  align-items: center; gap: var(--sp-2); min-height: 27px;
  padding: 4px 0; border-top: 1px solid var(--line);
  font-size: 11.5px; line-height: 1.3;
}
[data-ui="v2"] .v2-catalog-results li:first-child { border-top: 0; }
[data-ui="v2"] .v2-catalog-results li > .icon { font-size: 15px; color: var(--ink-3); }
[data-ui="v2"] .v2-catalog-results li.tone-ok > .icon { color: var(--ok); }
[data-ui="v2"] .v2-catalog-results li.tone-info > .icon { color: var(--info); }
[data-ui="v2"] .v2-catalog-results li.tone-bad > .icon { color: var(--bad); }
[data-ui="v2"] .v2-catalog-results li b { color: var(--ink-2); font-size: 11px; font-weight: 600; white-space: nowrap; }
[data-ui="v2"] .v2-hdr-popover > p {
  margin: var(--sp-3) 0 0; padding-top: var(--sp-3); border-top: 1px solid var(--line);
  color: var(--ink-3); font-size: 11px; line-height: 1.4;
}
[data-ui="v2"] .v2-credit-popover-caption {
  display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3) 0;
  color: var(--ink-2); font-size: 11.5px;
}
[data-ui="v2"] .v2-credit-popover-caption .icon { color: var(--info); font-size: 16px; }
[data-ui="v2"] .v2-credit-popover-balance {
  flex: 0 0 auto; padding: 4px 8px; border-radius: var(--r-pill);
  background: var(--ok-soft); color: var(--ok); font-size: 11px; font-weight: 700;
}
[data-ui="v2"] .v2-credit-popover-list .v2-cm-day { padding-inline: var(--sp-2); }
[data-ui="v2"] .v2-credit-popover-list .v2-cm-row { min-height: 30px; }
[data-ui="v2"] .v2-credit-popover-empty {
  margin: var(--sp-4) var(--sp-2); color: var(--ink-3); font-size: 12px; line-height: 1.45;
}
[data-ui="v2"] .v2-credit-popover-empty.tone-bad { color: var(--bad); }
[data-ui="v2"] .v2-btn.v2-credit-popover-topup {
  flex: 0 0 auto; width: 100%; min-height: 42px; justify-content: center;
  margin-top: var(--sp-3); font-weight: 700;
  box-shadow: 0 6px 16px color-mix(in srgb, var(--ok) 24%, transparent);
  transition: background var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease),
    transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-credit-popover-topup:hover,
[data-ui="v2"] .v2-credit-popover-topup:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--ok) 31%, transparent);
}
[data-ui="v2"] .v2-credit-popover-topup:active { transform: translateY(0); box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-hdr-popover { transition: none; transform: none; }
  [data-ui="v2"] .v2-btn.v2-credit-popover-topup { transition: none; transform: none; }
}
[data-ui="v2"] .v2-hdr-review-actions {
  display: flex; align-items: center; gap: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .v2-hdr-review-actions[hidden] { display: none; }
[data-ui="v2"] .v2-hdr-review-actions .v2-btn {
  height: 40px; min-width: 0; white-space: nowrap;
}
/* Produktová zpětná vazba přidává do sdílené hlavičky jednu stálou
   akci. Kontextové akce kontroly proto přecházejí na ikony o něco dřív,
   aby se na běžném 1 600px notebooku nikdy neořízl jejich text ani uživatel. */
@media (max-width: 1700px) {
  [data-ui="v2"] .v2-hdr-review-actions .lbl { display: none; }
  [data-ui="v2"] .v2-hdr-review-actions .v2-btn { width: 40px; padding-inline: 0; justify-content: center; }
}
@media (max-width: 1500px) {
  [data-ui="v2"] .v2-hdr-fact.mailbox .fact-key { display: none; }
  [data-ui="v2"] .v2-hdr-fact.mailbox { flex-basis: 210px; max-width: 210px; }
}
@media (max-width: 1600px) {
  /* Údaje, které uživatel potřebuje průběžně, mají přednost před globálním
     hledáním; hledání zůstává dostupné v agendě Doklady. */
  [data-ui="v2"] .v2-hdr .v2-gsearch { display: none; }
}
@media (max-width: 1200px) {
  [data-ui="v2"] .v2-user-btn .nm { display: none; }
}

[data-ui="v2"] .v2-preview-badge {
  padding: 3px 10px; border-radius: var(--r-pill);
  background: var(--info-soft); color: var(--info);
  font: 600 11.5px/1.4 var(--font-sans); letter-spacing: .04em;
  flex: 0 0 auto;
}

/* Přepínač firem */
[data-ui="v2"] .v2-co { position: relative; }
[data-ui="v2"] .v2-co-btn {
  display: flex; align-items: center; gap: var(--sp-5);
  min-width: 270px; padding: var(--sp-3) var(--sp-5);
  border: 1px solid var(--line-2); border-radius: var(--r-lg); cursor: pointer;
  background: var(--surface-2); color: var(--ink); text-align: left;
  font-family: var(--font-sans);
}
[data-ui="v2"] .v2-co-btn .icon { font-size: 20px; color: var(--ink-3); }
[data-ui="v2"] .v2-co-btn .co-text { flex: 1; min-width: 0; }
[data-ui="v2"] .v2-co-btn .co-eyebrow {
  display: block; font: 600 10px/1.3 var(--font-sans);
  letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .v2-co-btn .co-name {
  display: block; font: 600 14px/1.3 var(--font-sans);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-co-btn .co-pills { display: inline-flex; gap: 4px; flex: none; }
[data-ui="v2"] .v2-co-btn .co-pill .icon { font-size: 14px; }
[data-ui="v2"] .v2-co-btn .co-pill.queue { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .v2-co-btn .co-pill.review { background: var(--accent-soft); color: var(--accent-text); }
[data-ui="v2"] .v2-co-btn .co-pill.draft { background: var(--ok-soft); color: var(--ok); }
/* Souhrnná pilulka u NEAKTIVNÍHO spojení: kolik z toho čeká na vytěžení a
   kolik na kontrolu, se z dat serveru poznat nedá — tečkovaný okraj a tlumená
   barva říkají, že to není srovnatelné číslo jako u aktivního spojení. */
[data-ui="v2"] .co-pill.summary {
  background: var(--surface-2); color: var(--ink-2); border: 1px dashed var(--line-2);
}
[data-ui="v2"] .co-pill.mail { background: var(--info-soft, var(--surface-2)); color: var(--ink-2); }
/* tytéž pilulky i u položek v nabídce spojení */
[data-ui="v2"] .v2-co-item .co-pills { display: inline-flex; gap: 4px; flex: none; margin-left: auto; }
[data-ui="v2"] .v2-co-item .co-pill {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 7px; border-radius: var(--r-pill);
  font: 700 11.5px/1.5 var(--font-sans); font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-co-item .co-pill .icon { font-size: 14px; }
[data-ui="v2"] .v2-co-item .co-pill.queue { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .v2-co-item .co-pill.mail  { background: var(--info-soft); color: var(--info); }
[data-ui="v2"] .v2-co-item .co-pill.draft { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .v2-co-btn .co-pill {
  padding: 3px 8px; border-radius: var(--r-pill);
  background: var(--accent-soft); color: var(--accent-text);
  font: 600 12px/1.2 var(--font-sans);
}

[data-ui="v2"] .v2-co-menu {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 40;
  width: 380px; padding: var(--sp-3);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-xl); box-shadow: var(--shadow-pop);
}
[data-ui="v2"] .v2-co-search {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4); margin-bottom: var(--sp-1);
  border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-co-search .icon { font-size: 18px; color: var(--ink-3); }
[data-ui="v2"] .v2-co-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  font: 400 13px/1.4 var(--font-sans); color: var(--ink);
}
[data-ui="v2"] .v2-co-search input::placeholder { color: var(--ink-3); }
[data-ui="v2"] .v2-co-item {
  display: flex; align-items: center; gap: var(--sp-4); width: 100%;
  padding: var(--sp-3) var(--sp-4);
  border: 0; border-radius: var(--r-md); cursor: pointer;
  background: transparent; color: var(--ink); text-align: left;
  font-family: var(--font-sans);
}
[data-ui="v2"] .v2-co-item:hover { background: var(--bg-2); }
[data-ui="v2"] .v2-co-item.on { background: var(--accent-soft); }
[data-ui="v2"] .v2-co-item .mono30 {
  width: 30px; height: 30px; flex: 0 0 auto; border-radius: 9px;
  background: var(--bg-2); color: var(--ink-2);
  display: grid; place-items: center; font: 700 12px/1 var(--font-sans);
}
[data-ui="v2"] .v2-co-item .co-col { flex: 1; min-width: 0; }
[data-ui="v2"] .v2-co-item .co-nm { display: block; font: 600 13.5px/1.3 var(--font-sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
[data-ui="v2"] .v2-co-item .co-ico { display: block; font: 400 11.5px/1.4 var(--font-mono); color: var(--ink-3); }
[data-ui="v2"] .v2-co-item .co-sum { font: 400 11.5px/1.4 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-co-note {
  border-top: 1px solid var(--line); margin-top: var(--sp-2);
  padding: var(--sp-3) var(--sp-4) var(--sp-1);
  font: 400 11.5px/1.5 var(--font-sans); color: var(--ink-3);
}

/* Globální vstup do hledání ve zpracovaných dokladech. */
[data-ui="v2"] .v2-gsearch {
  display: flex; align-items: center; gap: 9px;
  flex: 1; max-width: 420px; padding: 9px var(--sp-5);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface-2); color: var(--ink-3);
  font: 400 13.5px/1.3 var(--font-sans); cursor: pointer; text-align: left;
}
[data-ui="v2"] button.v2-gsearch:hover { border-color: var(--accent-line); color: var(--ink-2); background: var(--surface); }
[data-ui="v2"] .v2-gsearch .icon { font-size: 19px; }
[data-ui="v2"] .v2-gsearch .q { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
[data-ui="v2"] .v2-gsearch kbd {
  padding: 2px 6px; border: 1px solid var(--line-2); border-radius: var(--r-xs);
  font: 400 11px/1.3 var(--font-mono); color: var(--ink-3);
}
/* Hledání přímo v záhlaví: pole + našeptávač */
[data-ui="v2"] .v2-gsearch.hdr-search { position: relative; cursor: text; }
[data-ui="v2"] .v2-gsearch.hdr-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  color: var(--ink); font: 400 13.5px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-gsearch.hdr-search input::placeholder { color: var(--ink-3); }
[data-ui="v2"] #v2-gs-panel {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 40;
  background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg); overflow: hidden;
}
[data-ui="v2"] #v2-gs-panel[hidden] { display: none; }
[data-ui="v2"] #v2-gs-list { max-height: 380px; overflow-y: auto; overscroll-behavior: contain; }
[data-ui="v2"] #v2-gs-list [role="option"] {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); cursor: pointer;
  border-bottom: 1px solid var(--line);
  font: 400 12.5px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] #v2-gs-list [role="option"]:last-child { border-bottom: 0; }
[data-ui="v2"] #v2-gs-list [role="option"]:hover { background: var(--surface-2); }
[data-ui="v2"] #v2-gs-list [role="option"].is-active { background: var(--accent-soft); }
[data-ui="v2"] #v2-gs-list .gs-main { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
[data-ui="v2"] #v2-gs-list .gs-main b { font: 600 13px/1.3 var(--font-sans); color: var(--ink); }
[data-ui="v2"] #v2-gs-list .gs-firm { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
[data-ui="v2"] .v2-gs-status {
  display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-5);
  font: 400 12.5px/1.4 var(--font-sans); color: var(--ink-3);
}

/* Stav napojení */
[data-ui="v2"] .v2-conn {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 7px var(--sp-5);
  border: 1px solid var(--line); border-radius: var(--r-pill);
  background: var(--surface-2);
}
[data-ui="v2"] .v2-conn .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--ok); animation: nahrai-pulse 2.4s ease-in-out infinite;
}
[data-ui="v2"] .v2-conn .t { font: 600 12.5px/1.3 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-conn .v { font: 400 11.5px/1.3 var(--font-mono); color: var(--ink-3); }

/* Ikonové tlačítko */
[data-ui="v2"] .v2-iconbtn {
  width: 38px; height: 38px; flex: 0 0 auto;
  display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 11px; cursor: pointer;
  background: var(--surface-2); color: var(--ink-2);
}
[data-ui="v2"] .v2-iconbtn:hover { background: var(--bg-2); color: var(--ink); }
[data-ui="v2"] .v2-iconbtn .icon { font-size: 20px; }

/* Uživatelské menu */
[data-ui="v2"] .v2-user { position: relative; }
[data-ui="v2"] .v2-user-btn {
  display: flex; align-items: center; gap: 9px;
  padding: 5px var(--sp-4) 5px 5px;
  border: 1px solid var(--line); border-radius: var(--r-pill); cursor: pointer;
  background: var(--surface-2); color: var(--ink); font-family: var(--font-sans);
}
[data-ui="v2"] .v2-user-btn .avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, var(--avatar-1), var(--avatar-2));
  display: grid; place-items: center;
  color: var(--on-accent); font: 700 11.5px/1 var(--font-sans);
}
[data-ui="v2"] .v2-user-btn .nm { font: 600 13.5px/1.3 var(--font-sans); white-space: nowrap; }
[data-ui="v2"] .v2-super-badge {
  font: 700 9.5px/1.4 var(--font-sans); letter-spacing: .04em; text-transform: uppercase;
  padding: 2px 7px; border-radius: var(--r-pill);
  background: var(--accent-fill); color: var(--on-accent); white-space: nowrap;
}
[data-ui="v2"] .v2-user-btn .icon { font-size: 18px; color: var(--ink-3); }

[data-ui="v2"] .v2-user-menu {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 40;
  min-width: 260px; padding: var(--sp-3);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-xl); box-shadow: var(--shadow-pop);
}
[data-ui="v2"] .v2-user-menu .who {
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
  border-bottom: 1px solid var(--line); margin-bottom: var(--sp-2);
}
[data-ui="v2"] .v2-user-menu .who b { display: block; font: 600 13.5px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-user-menu .who span { display: block; font: 400 11.5px/1.4 var(--font-mono); color: var(--ink-3); }
[data-ui="v2"] .v2-user-item {
  display: flex; align-items: center; gap: var(--sp-4); width: 100%;
  padding: var(--sp-3) var(--sp-4);
  border: 0; border-radius: var(--r-md); cursor: pointer;
  background: transparent; color: var(--ink); text-align: left;
  font: 500 13.5px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-user-item:hover { background: var(--bg-2); }
[data-ui="v2"] .v2-user-item .icon { font-size: 19px; color: var(--ink-2); }
[data-ui="v2"] .v2-user-item.v2-news-action {
  margin-bottom: var(--sp-2); font-weight: 600;
}
[data-ui="v2"] .v2-user-item.v2-news-action.optin {
  background: var(--ok-soft); color: var(--ok);
}
[data-ui="v2"] .v2-user-item.v2-news-action.optin .icon { color: var(--ok); }
[data-ui="v2"] .v2-user-item.v2-news-action.optin:hover {
  background: var(--ok-soft); box-shadow: inset 0 0 0 1px var(--ok);
}
[data-ui="v2"] .v2-user-item.v2-news-action.optout {
  background: var(--bad-soft); color: var(--bad);
}
[data-ui="v2"] .v2-user-item.v2-news-action.optout .icon { color: var(--bad); }
[data-ui="v2"] .v2-user-item.v2-news-action.optout:hover {
  background: var(--bad-soft); box-shadow: inset 0 0 0 1px var(--bad);
}

/* ---------- Kontextová nabídka (sdílená, openPopMenu) ----------
   Vykresluje se do <body> s position:fixed, aby ji neořízla karta ani
   lepivá hlavička. Vrstvy: hromadná lišta 60 < nabídka 70 < dialog 80. */
[data-ui="v2"] .v2-popmenu {
  position: fixed; z-index: 70; min-width: 200px; max-width: min(320px, calc(100vw - 16px));
  padding: var(--sp-2); background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-xl); box-shadow: var(--shadow-pop);
  max-height: min(70vh, 520px); overflow-y: auto;
}
[data-ui="v2"] .v2-popmenu-item {
  display: grid; grid-template-columns: 18px 1fr; align-items: center;
  gap: var(--sp-3) var(--sp-4); width: 100%; padding: var(--sp-3) var(--sp-4);
  border: 0; border-radius: var(--r-md); cursor: pointer;
  background: transparent; color: var(--ink); text-align: left;
  font: 500 13.5px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-popmenu-item .icon { font-size: 18px; color: var(--ink-2); }
[data-ui="v2"] .v2-popmenu-item .lbl { min-width: 0; }
[data-ui="v2"] .v2-popmenu-item .hint {
  grid-column: 2; font: 400 12px/1.35 var(--font-sans); color: var(--ink-3);
}
[data-ui="v2"] .v2-popmenu-item:hover:not(:disabled) { background: var(--surface-2); }
[data-ui="v2"] .v2-popmenu-item.danger { color: var(--bad); }
[data-ui="v2"] .v2-popmenu-item.danger .icon { color: var(--bad); }
[data-ui="v2"] .v2-popmenu-item:disabled { opacity: .5; cursor: not-allowed; }
[data-ui="v2"] .v2-popmenu-sep { height: 1px; margin: var(--sp-2) var(--sp-3); background: var(--line); }
[data-ui="v2"] .v2-popmenu-group {
  padding: var(--sp-3) var(--sp-4) var(--sp-2);
  font: 700 12px/1.2 var(--font-sans); letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .v2-popbtn .icon { font-size: 17px; }

/* ---------- Obsah ---------- */

[data-ui="v2"] .v2-content {
  padding: 22px var(--content-pad) 28px;
  display: flex; flex-direction: column; gap: 18px;
  max-width: var(--content-max); width: 100%;
  flex: 1 1 auto;   /* krátký obsah se natáhne a patička zůstane dole */
}
/* Patička aplikace — poslední prvek main; obsah nad ní roste (flex),
   takže na krátkých obrazovkách sedí dole. V kontrole skrytá. */
[data-ui="v2"] .v2-appfoot {
  /* ŽÁDNÝ záporný margin — obsahový box s rezervou by přečníval pod patičku
     a vytvářel šedý pruh za koncem shellu. Odstup řeší rezerva obsahu. */
  position: static;
  padding: var(--sp-3) var(--content-pad);
  max-width: none; width: 100%;
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-5);
  border-top: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 96%, transparent);
  box-shadow: none;
  font: 400 12px/1.5 var(--font-sans); color: var(--ink-3);
}
[data-ui="v2"] .v2-appfoot .brandlinks { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-5); }
[data-ui="v2"] .v2-appfoot .links { display: flex; gap: var(--sp-4); }
[data-ui="v2"] .v2-appfoot .actions { margin-left: auto; }
[data-ui="v2"] .v2-appfoot .actions:empty { display: none; }
[data-ui="v2"] .v2-appfoot .v2-pager { padding: 0; }
[data-ui="v2"] .v2-appfoot a { color: var(--ink-3); text-decoration: underline; }
[data-ui="v2"] .v2-appfoot a:hover { color: var(--accent); }
[data-ui="v2"] body.v2-review .v2-appfoot { display: none; }

/* PageHeader: mřížka ikona | titulky | akce. Titulky mají zaručené minimum
   (240 px, nebo celá šířka), akce se lámou do řádků dřív, než by se lámal
   nadpis po slovech; pod 900 px jdou akce pod titulek. Bez ikony (.no-ico,
   pozdrav na Přehledu) má mřížka jen dva sloupce. */
[data-ui="v2"] .v2-screen-head {
  display: grid; grid-template-columns: auto minmax(min(100%, 240px), 1fr) auto;
  align-items: start; column-gap: var(--sp-6); row-gap: var(--sp-4); min-width: 0;
}
[data-ui="v2"] .v2-screen-head.no-ico { grid-template-columns: minmax(min(100%, 240px), 1fr) auto; }
[data-ui="v2"] .v2-screen-head.no-act { grid-template-columns: auto minmax(0, 1fr); }
[data-ui="v2"] .v2-screen-head.no-ico.no-act { grid-template-columns: minmax(0, 1fr); }
[data-ui="v2"] .v2-screen-head .titles { min-width: 0; }
[data-ui="v2"] .v2-screen-head h1 { margin: 0; font: 700 24px/1.2 var(--font-sans); letter-spacing: -.02em; }
[data-ui="v2"] .v2-screen-head h1.hello { font-size: 26px; }
[data-ui="v2"] .v2-screen-head .sub { margin: 6px 0 0; font: 400 14px/1.5 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-screen-head .sub .mono { font-family: var(--font-mono); font-size: 13px; }
[data-ui="v2"] .v2-screen-head .actions {
  display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end;
  gap: var(--sp-3) var(--sp-4); min-width: 0; max-width: 100%;
}
@media (max-width: 900px) {
  [data-ui="v2"] .v2-screen-head { grid-template-columns: auto minmax(0, 1fr); }
  [data-ui="v2"] .v2-screen-head.no-ico { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-screen-head.no-act { grid-template-columns: auto minmax(0, 1fr); }
  [data-ui="v2"] .v2-screen-head .actions { grid-column: 1 / -1; justify-content: flex-start; }
  [data-ui="v2"] .v2-screen-head h1 { font-size: 22px; }
  [data-ui="v2"] .v2-screen-head h1.hello { font-size: 23px; }
}
[data-ui="v2"] .v2-screen-head .scr-ico {
  flex: 0 0 auto; width: 44px; height: 44px; margin-top: 2px;
  border-radius: var(--r-lg); background: var(--accent-soft); color: var(--accent);
  display: grid; place-items: center;
}
[data-ui="v2"] .v2-screen-head .scr-ico .icon { font-size: 24px; }

/* Kompaktní pracovní pruh datově hustých agend. Je fixed, takže při jeho
   zapnutí nedojde ke změně výšky dokumentu ani k poskočení scrollu. */
[data-ui="v2"] .v2-pagebar {
  position: fixed; left: var(--rail-w); right: 0; top: var(--header-h);
  height: var(--pagebar-h); z-index: 24;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  box-shadow: 0 10px 24px rgba(21,36,60,.08);
  backdrop-filter: blur(12px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(-8px);
  transition: opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility 0s linear var(--dur-fast);
}
[data-ui="v2"] body.v2-pagebar-visible .v2-pagebar {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
  transition-delay: 0s;
}
[data-ui="v2"] .v2-pagebar-inner {
  width: 100%; max-width: var(--content-max); height: 100%; padding: 6px var(--content-pad);
  display: flex; align-items: center; gap: var(--sp-5); min-width: 0;
}
[data-ui="v2"] .v2-pagebar-title {
  display: flex; align-items: center; gap: var(--sp-3); flex: 0 1 auto; min-width: 150px;
}
[data-ui="v2"] .v2-pagebar-title > .icon { color: var(--accent-text); font-size: 22px; }
[data-ui="v2"] .v2-pagebar-title .col { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-pagebar-title b {
  font: 700 14px/1.25 var(--font-sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-pagebar-title small {
  font: 500 11.5px/1.25 var(--font-sans); color: var(--ink-3); white-space: nowrap;
}
[data-ui="v2"] .v2-pagebar-tools {
  display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3); flex: 1 1 auto; min-width: 0;
}
[data-ui="v2"] .v2-pagebar-search {
  min-width: 150px; max-width: 360px; height: 38px; flex: 1 1 230px;
  display: flex; align-items: center; gap: var(--sp-3); padding: 0 var(--sp-4);
  border: 1px solid var(--line-2); border-radius: var(--r-lg); background: var(--surface-2);
}
[data-ui="v2"] .v2-pagebar-search > .icon { color: var(--ink-3); font-size: 18px; }
[data-ui="v2"] .v2-pagebar-search input {
  width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink);
  font: 500 13px/1.25 var(--font-sans);
}
[data-ui="v2"] .v2-pagebar-search:focus-within { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .v2-pagebar .v2-seg { flex: 0 0 auto; flex-wrap: nowrap; }
[data-ui="v2"] .v2-pagebar .v2-seg-btn { padding: 6px 9px; font-size: 12px; }
[data-ui="v2"] .v2-pagebar-btn { flex: 0 0 auto; min-height: 38px; padding: 7px var(--sp-4); }
[data-ui="v2"] .v2-pagebar-btn .v2-seg-badge { margin-left: -2px; }
@media (min-width: 1281px) {
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-pagebar { left: var(--rail-w-expanded); }
}
@media (max-width: 1280px) {
  [data-ui="v2"] .v2-pagebar-wide { display: none; }
  [data-ui="v2"] .v2-pagebar-title small { display: none; }
}
@media (max-width: 1020px) {
  [data-ui="v2"] .v2-pagebar-title { min-width: 0; }
  [data-ui="v2"] .v2-pagebar-title .col { display: none; }
  [data-ui="v2"] .v2-pagebar-tabs .v2-seg-btn { padding-inline: 8px; }
  [data-ui="v2"] .v2-pagebar-btn .lbl { display: none; }
}
@media (max-width: 760px) {
  [data-ui="v2"] body { --pagebar-h: 58px; }
  [data-ui="v2"] .v2-pagebar-inner { gap: var(--sp-3); padding-inline: var(--sp-4); }
  [data-ui="v2"] .v2-pagebar-title { display: none; }
  [data-ui="v2"] .v2-pagebar-search { flex-basis: 150px; }
  [data-ui="v2"] .v2-pagebar-tabs { max-width: 210px; overflow-x: auto; scrollbar-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-pagebar { transition: none; }
}

[data-ui="v2"] .v2-card {
  border: 1px solid var(--line); border-radius: var(--r-2xl);
  background: var(--surface); box-shadow: var(--shadow); overflow: hidden;
}
[data-ui="v2"] .v2-card .pad { padding: var(--sp-8); }

[data-ui="v2"] .v2-empty {
  display: flex; flex-direction: column; align-items: center; gap: var(--sp-4);
  padding: 44px var(--sp-9); text-align: center;
}
[data-ui="v2"] .v2-empty .icon { font-size: 26px; color: var(--ink-3); }
[data-ui="v2"] .v2-empty b { font: 600 15.5px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-empty p { margin: 0; max-width: 56ch; font: 400 13px/1.5 var(--font-sans); color: var(--ink-2); }

/* Tlačítka */
[data-ui="v2"] .v2-btn {
  display: inline-flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-7);
  border: 1px solid var(--line-2); border-radius: var(--r-lg); cursor: pointer;
  background: var(--surface); color: var(--ink);
  font: 600 13.5px/1.3 var(--font-sans); text-decoration: none;
  transition: background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-btn:hover { background: var(--surface-2); text-decoration: none; }
[data-ui="v2"] .v2-btn .icon { font-size: 18px; }
[data-ui="v2"] .v2-btn.primary {
  border-color: transparent;
  /* --accent-hover mísí #C63E39: bílý text na výplni splní AA (tokens.css A11Y) */
  background: var(--accent-hover); color: var(--on-accent);
  box-shadow: var(--shadow-accent);
}
[data-ui="v2"] .v2-btn.primary:hover { background: var(--accent); }
/* Destruktivni potvrzeni musi byt videt — trida se pouzivala, pravidlo chybelo. */
[data-ui="v2"] .v2-btn.danger { border-color: transparent; background: var(--bad); color: var(--on-accent); }
[data-ui="v2"] .v2-btn.danger:hover { background: var(--bad); opacity: .92; }
/* Vypnuté tlačítko musí být poznat (dřív se jen nezvedalo na hover). */
[data-ui="v2"] .v2-btn:disabled, [data-ui="v2"] .v2-btn:disabled:hover,
[data-ui="v2"] .v2-iconbtn:disabled, [data-ui="v2"] .v2-iconbtn:disabled:hover { opacity: .55; cursor: not-allowed; box-shadow: none; transform: none; }

/* KPI karty (M1: skutečná čísla jen tam, kde existují).
   fb6: na Přehledu žijí KPI v postranním sloupci (.v2-col-side) jako svislý
   sloupek; grid v plné šířce zůstává jen pro admin (Demo clickwrap, 4 dlaždice). */
[data-ui="v2"] .v2-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
[data-ui="v2"] .v2-col-side .v2-kpis { grid-template-columns: 1fr; gap: var(--sp-5); }
[data-ui="v2"] .v2-kpi {
  padding: var(--sp-6) var(--sp-7);
  border: 1px solid var(--line); border-radius: var(--r-xl);
  background: var(--surface); box-shadow: var(--shadow);
}
[data-ui="v2"] .v2-kpi.hot { border-color: var(--accent); box-shadow: 0 10px 24px -14px var(--accent); }
[data-ui="v2"] .v2-kpi .row { display: flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-kpi .dot { width: 7px; height: 7px; border-radius: 50%; }
[data-ui="v2"] .v2-kpi .dot.pulse { animation: nahrai-pulse 1.6s ease-in-out infinite; }
[data-ui="v2"] .v2-kpi .k { font: 700 11.5px/1.3 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
[data-ui="v2"] .v2-kpi .n { margin-top: var(--sp-2); font: 700 30px/1.1 var(--font-sans); letter-spacing: -.03em; }
[data-ui="v2"] .v2-kpi .d { margin-top: 2px; font: 400 12.5px/1.4 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-kpi[data-link]:hover { background: var(--surface-2); cursor: pointer; }

[data-ui="v2"] .v2-help-note { font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-2); }

/* ---------- Responzivita ---------- */

@media (max-width: 1280px) {
  /* Pod 1280 px je rail vždy sbalený (QA_CHECKLIST) — připnutí nezabírá místo.
     Rozbalení najetím myší zůstává, to rozvržení nemění (překrývá obsah). */
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail { width: var(--rail-w); min-width: var(--rail-w); }
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail-inner { width: var(--rail-w); }
  /* .v2-rail-inner navíc kvůli nadřazenosti — bez něj by pravidlo prohrálo
     se selektorem pro rozbalený stav a popisky by se ukázaly v 64px railu. */
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail:not(:hover):not(:focus-within) .v2-rail-inner .lbl,
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail:not(:hover):not(:focus-within) .v2-rail-inner .wordmark { display: none; }
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail:not(:hover):not(:focus-within) .v2-rail-inner .v2-rail-item { justify-content: center; }
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail:hover .v2-rail-inner,
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-rail:focus-within .v2-rail-inner {
    width: var(--rail-w-expanded); box-shadow: var(--shadow-lg); z-index: 40;
  }
  [data-ui="v2"] .v2-shell[data-rail="expanded"] .v2-rail-item .badge {
    position: absolute; top: 6px; right: 6px;
    min-width: 16px; height: 16px; padding: 0 4px; font: 700 10px/16px var(--font-sans);
  }
}

@media (max-width: 1100px) {
  [data-ui="v2"] .v2-conn .v { display: none; }
  [data-ui="v2"] .v2-hdr-fact.mailbox { flex-basis: 230px; max-width: 230px; }
}

@media (max-width: 900px) {
  [data-ui="v2"] .v2-hdr { gap: var(--sp-3); }
  [data-ui="v2"] .v2-hdr .v2-co { flex: 1 1 240px; min-width: 160px; max-width: 280px; }
  [data-ui="v2"] .v2-co-btn { min-width: 0; }
  [data-ui="v2"] .v2-hdr .v2-co-btn { width: 100%; }
  [data-ui="v2"] .v2-co-btn .co-eyebrow { display: none; }
  [data-ui="v2"] .v2-conn { display: none; }
  [data-ui="v2"] .v2-user-btn .nm { display: none; }
  [data-ui="v2"] .v2-hdr-fact.mailbox { flex-basis: 170px; max-width: 170px; }
  [data-ui="v2"] .v2-hdr-fact.mailbox .copy { display: none; }
  [data-ui="v2"] .v2-kpis { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  [data-ui="v2"] .v2-hdr-fact.catalogs {
    flex: 0 0 40px; width: 40px; min-width: 40px; padding-inline: 0; justify-content: center;
  }
  [data-ui="v2"] .v2-hdr-fact.catalogs .fact-text { display: none; }
  [data-ui="v2"] .v2-hdr-fact.catalogs .catalog-progress { left: 8px; right: 8px; }
  [data-ui="v2"] .v2-hdr-popover {
    position: fixed; top: calc(var(--header-h) + 6px); left: 12px; right: 12px;
    width: auto; max-height: calc(100dvh - var(--header-h) - 18px);
  }
  [data-ui="v2"] .v2-hdr-fact.credit {
    flex: 0 0 auto; max-width: 112px;
  }
  [data-ui="v2"] .v2-hdr-fact.mailbox {
    flex: 0 0 40px; width: 40px; padding-inline: 0; justify-content: center;
  }
  [data-ui="v2"] .v2-hdr-fact.mailbox .fact-text { display: none; }
}

/* KPI jako <button> (a11y) — reset nativniho vzhledu */
[data-ui="v2"] button.v2-kpi {
  appearance: none; -webkit-appearance: none;
  width: 100%; text-align: left; cursor: pointer;
  font-family: var(--font-sans); color: var(--ink);
  display: block;
}
[data-ui="v2"] .v2-kpi .row { display: flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-kpi .k, [data-ui="v2"] .v2-kpi .n, [data-ui="v2"] .v2-kpi .d { display: block; }

/* ============================================================
   M2 — Přehled: dropzóna, živá fronta, pravý sloupec, bulk lišta
   + admin v2. Vše scopované pod [data-ui="v2"].
   ============================================================ */

/* Dropzóna */
[data-ui="v2"] .v2-drop {
  display: flex; align-items: center; gap: var(--sp-7);
  padding: 18px var(--sp-8);
  border: 1.5px dashed var(--accent-line); border-radius: var(--r-2xl);
  background: var(--accent-soft);
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
[data-ui="v2"] .v2-drop .tile {
  width: 52px; height: 52px; flex: 0 0 auto;
  border-radius: var(--r-xl); background: var(--surface);
  display: grid; place-items: center;
}
[data-ui="v2"] .v2-drop .tile .icon { font-size: 26px; color: var(--accent); }
[data-ui="v2"] .v2-drop .col { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
[data-ui="v2"] .v2-drop .drop-title { font: 600 15.5px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-drop .chips { display: flex; align-items: center; gap: var(--sp-5); flex-wrap: wrap; }
[data-ui="v2"] .v2-drop .chip {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  padding: 3px 9px; border-radius: var(--r-pill);
  background: var(--surface); font: 500 12px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-drop .chip .icon.ok { font-size: 15px; color: var(--ok); }
[data-ui="v2"] .v2-drop .formats { font-size: 11.5px; color: var(--ink-3); }
[data-ui="v2"] body.v2-dragging .v2-drop {
  border-style: solid; border-color: var(--accent);
  background: var(--accent-line);
}
[data-ui="v2"] body.v2-dragging .v2-drop .drop-title::after { content: " — pusťte soubory"; color: var(--accent-text); }

/* --- Dropzona: skenovaci paprsek + AI jiskricky (jen transform/opacity) ---
   Pri pretahovani souboru (body.v2-dragging) se obe animace zrychli. */
[data-ui="v2"] .v2-drop { position: relative; overflow: hidden; }
[data-ui="v2"] .v2-drop > * { position: relative; z-index: 1; } /* obsah nad efekty */
[data-ui="v2"] .v2-drop::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: -30%; width: 30%;
  z-index: 0; pointer-events: none;
  background: linear-gradient(100deg, transparent 0%,
    color-mix(in srgb, var(--accent) 8%, transparent) 38%,
    color-mix(in srgb, var(--accent) 26%, transparent) 49%,
    color-mix(in srgb, var(--accent) 26%, transparent) 51%,
    color-mix(in srgb, var(--accent) 8%, transparent) 62%, transparent 100%);
  animation: v2-drop-scan 4.6s linear infinite; will-change: transform;
}
@keyframes v2-drop-scan { to { transform: translateX(434%); } } /* (100+30)/30 — cely vyjede vpravo ven */
[data-ui="v2"] .v2-drop::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle at 9% 26%, color-mix(in srgb, var(--accent) 55%, transparent) 0 1.5px, transparent 2.6px),
    radial-gradient(circle at 22% 74%, color-mix(in srgb, var(--accent) 45%, transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 38% 18%, color-mix(in srgb, var(--accent) 50%, transparent) 0 1.2px, transparent 2.2px),
    radial-gradient(circle at 54% 80%, color-mix(in srgb, var(--accent) 40%, transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 69% 28%, color-mix(in srgb, var(--accent) 55%, transparent) 0 1.4px, transparent 2.4px),
    radial-gradient(circle at 83% 68%, color-mix(in srgb, var(--accent) 45%, transparent) 0 1px, transparent 2px),
    radial-gradient(circle at 94% 38%, color-mix(in srgb, var(--accent) 50%, transparent) 0 1.2px, transparent 2.2px);
  animation: v2-drop-sparkle 3.4s ease-in-out infinite;
}
@keyframes v2-drop-sparkle { 0%, 100% { opacity: .2; } 30% { opacity: .65; } 55% { opacity: .35; } 80% { opacity: .6; } }
[data-ui="v2"] body.v2-dragging .v2-drop::before { animation-duration: 1.6s; }
[data-ui="v2"] body.v2-dragging .v2-drop::after { animation-duration: 1.3s; }
/* Globalni reduced-motion pravidlo v tokens.css na pseudo-elementy nedopada. */
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-drop::before, [data-ui="v2"] .v2-drop::after { content: none; animation: none; }
}

/* Dvousloupec fronty */
[data-ui="v2"] .v2-cols { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; }
[data-ui="v2"] .v2-col-main { flex: 1 1 640px; min-width: 520px; display: flex; flex-direction: column; gap: var(--sp-5); }
/* Boční sloupec nesmí růst na úkor hlavního — s `1 1 300px` si u širokých
   oken bral polovinu šířky a seznam zpráv se pak nevešel. */
[data-ui="v2"] .v2-col-side { flex: 0 1 340px; min-width: 300px; display: flex; flex-direction: column; gap: var(--sp-5); }
@media (max-width: 1180px) {
  [data-ui="v2"] .v2-col-side {
    flex: 1 1 100%; min-width: 0;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  }
  [data-ui="v2"] .v2-col-side > span { display: contents; }
  [data-ui="v2"] .v2-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* fb6: KPI sloupek se pod 1180 px rozprostře přes celou šířku, 3 vedle sebe */
  [data-ui="v2"] .v2-col-side .v2-kpis { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5); }
}
@media (max-width: 900px) {
  [data-ui="v2"] .v2-col-main { min-width: 0; }
}
@media (max-width: 620px) {
  [data-ui="v2"] .v2-col-side { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-col-side .v2-kpis { grid-template-columns: 1fr; }
  /* admin demo KPI (mimo postranní sloupec) — na mobilu jeden sloupec */
  [data-ui="v2"] .v2-kpis { grid-template-columns: 1fr; }
}

[data-ui="v2"] .v2-card-head {
  display: flex; align-items: center; gap: var(--sp-4); min-width: 0;
}
[data-ui="v2"] .v2-card-head .spacer { flex: 1; }
[data-ui="v2"] .v2-card-head.pad-head { padding: var(--sp-6) var(--sp-7); border-bottom: 1px solid var(--line); }
/* Hlavička karty bez rámu (např. graf na Licenci) musí zalomit ovládání pod
   titulek — jinak se přepínač ořízne, viz .v2-seg níže. */
[data-ui="v2"] .v2-card-head.plain { flex-wrap: wrap; row-gap: var(--sp-3); }
/* Segment se NIKDY nesmí smrštit pod svůj obsah. Druhá (pozdější) definice
   .v2-seg má overflow:hidden, takže by jako flex položka měla min-width 0 a
   krajní tlačítka by se uřízla (Sloupce/Spojnice na Licenci, PV/ZLP na
   Přehledu). Pravidlo je globální, protože příčina je globální. */
[data-ui="v2"] .v2-seg { flex: 0 0 auto; }
[data-ui="v2"] .pad-sect { padding: var(--sp-6) var(--sp-7); }
[data-ui="v2"] .pad-sect + .pad-sect { border-top: 1px solid var(--line); }
[data-ui="v2"] .pad-sect .t-th { display: block; margin-bottom: var(--sp-3); }

/* Stavové pilulky */
[data-ui="v2"] .v2-pill {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: var(--r-pill);
  font: 600 12px/1.4 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-pill .icon { font-size: 15px; }
[data-ui="v2"] .v2-pill.tone-ok     { background: var(--ok-soft);     color: var(--ok); }
[data-ui="v2"] .v2-pill.tone-warn   { background: var(--warn-soft);   color: var(--warn); }
[data-ui="v2"] .v2-pill.tone-info   { background: var(--info-soft);   color: var(--info); }
[data-ui="v2"] .v2-pill.tone-accent { background: var(--accent-soft); color: var(--accent-text); }
/* Chybový tón se používal v JS (odmítnutý soubor, odmítnutá pozvánka,
   neaktivní spojení), ale pravidlo chybělo → pilulka byla bez pozadí. */
[data-ui="v2"] .v2-pill.tone-bad    { background: var(--bad-soft);    color: var(--bad); }
[data-ui="v2"] .v2-pill.tone-mut    { background: var(--bg-2);        color: var(--ink-2); }

/* Neurčitý spinner (API nevrací průběh — žádný falešný pruh) */
[data-ui="v2"] .icon.spin { animation: v2-rotate 1.2s linear infinite; }
@keyframes v2-rotate { to { transform: rotate(360deg); } }

/* Řádky fronty */
[data-ui="v2"] .v2-qrow {
  display: grid;
  /* Druhý sloupec je miniatura dokladu s ribbonem typu — účetní z ní pozná
     účtenku od faktury i formát dřív, než si přečte název souboru. */
  grid-template-columns: 19px 40px 44px minmax(160px, 1fr) minmax(140px, 175px) 110px 220px 30px;
  gap: var(--sp-6); align-items: center;
  padding: 13px var(--sp-7);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  transition: background var(--dur) var(--ease);
}
[data-ui="v2"] .v2-qrow:last-child { border-bottom: 0; }
[data-ui="v2"] .v2-qrow.sel { background: var(--accent-soft); }
[data-ui="v2"] .v2-qrow.desk { background: var(--surface-2); }
[data-ui="v2"] .v2-qrow.blink { background: var(--info-soft); }
[data-ui="v2"] .v2-qrow .qcheck input {
  width: 19px; height: 19px; margin: 0;
  accent-color: var(--accent);
}
[data-ui="v2"] .v2-qrow .qid { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
[data-ui="v2"] .v2-qrow .qid b {
  font: 600 14px/1.3 var(--font-sans);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-qrow .qid small {
  font: 400 12px/1.4 var(--font-sans); color: var(--ink-3);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-qrow .qowner {
  min-width: 0; display: inline-flex; align-items: center; gap: 6px;
  color: var(--info); font: 600 12px/1.35 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-qrow .qowner > span:last-child {
  min-width: 0; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-qrow .qowner .icon { flex: 0 0 auto; font-size: 16px; }
[data-ui="v2"] .v2-qrow .qowner.empty { color: var(--ink-3); font-weight: 400; }
[data-ui="v2"] .v2-qrow .qstate { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; min-width: 0; }
[data-ui="v2"] .v2-qrow .qwork {
  display: flex; min-width: 0; align-items: center; justify-content: flex-start;
  flex-wrap: wrap; gap: 4px var(--sp-3);
}
[data-ui="v2"] .v2-qrow .qwork > .v2-btn { flex: 0 0 auto; }
/* 12 px minimum — poznámka u stavu nese i chybové texty (audit UI 2026-08) */
[data-ui="v2"] .v2-state-note { font: 400 12px/1.4 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .v2-state-note.warn { color: var(--warn); display: inline-flex; align-items: center; gap: 4px; }
[data-ui="v2"] .v2-state-note.warn .icon { font-size: 14px; }
[data-ui="v2"] .v2-state-note.bad { color: var(--bad); display: inline-flex; align-items: center; gap: 4px; }
[data-ui="v2"] .v2-state-note.bad .icon { font-size: 14px; }
/* Částka je hodnota, ne popisek → 14 px (audit UI 2026-08) */
[data-ui="v2"] .v2-qrow .qamt { text-align: right; font-size: 14px; font-weight: 600; white-space: nowrap; }
[data-ui="v2"] .v2-qrow .qact { display: flex; align-items: center; gap: var(--sp-3); justify-content: flex-end; }
@media (max-width: 1400px) {
  [data-ui="v2"] .v2-qrow { grid-template-columns: 19px 40px 44px minmax(145px, 1fr) minmax(115px, 145px) 95px 185px 30px; gap: var(--sp-4); }
  [data-ui="v2"] .v2-qrow .qowner-prefix { display: none; }
}

/* Menší varianty tlačítek */
[data-ui="v2"] .v2-btn.small { padding: var(--sp-2) var(--sp-5); font-size: 12.5px; }
[data-ui="v2"] .v2-btn.xsmall { padding: 4px var(--sp-4); font-size: 12px; }
[data-ui="v2"] .v2-btn.xsmall .icon { font-size: 15px; }
[data-ui="v2"] .v2-btn.info { border-color: transparent; background: var(--info); color: var(--on-accent); }
[data-ui="v2"] .v2-btn.info:hover { background: var(--info); opacity: .9; }
[data-ui="v2"] .v2-btn.outline-info { border-color: var(--info); background: var(--surface); color: var(--info); }
[data-ui="v2"] .v2-btn.outline-info:hover { background: var(--info-soft); color: var(--info); }
[data-ui="v2"] .v2-btn.outline-ok { border-color: var(--ok); background: var(--surface); color: var(--ok); }
[data-ui="v2"] .v2-btn.outline-ok:hover { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .v2-iconbtn.small { width: 30px; height: 30px; border-radius: var(--r-sm); }
[data-ui="v2"] .v2-iconbtn.small .icon { font-size: 17px; }
[data-ui="v2"] .v2-iconbtn.danger { color: var(--bad); border-color: transparent; background: var(--bad-soft); }
[data-ui="v2"] .v2-iconbtn.danger:hover { background: var(--bad); color: var(--on-accent); }
[data-ui="v2"] .v2-iconbtn.danger:disabled { color: var(--ink-3); border-color: var(--line); background: var(--surface-2); cursor: default; }

/* Plovoucí lišta hromadných akcí */
[data-ui="v2"] .v2-bulk {
  /* Stejne pravidlo jako lista neulozenych zmen: pres celou sirku obsahu,
     akce zarovnane doprava (margin-left:auto na prvnim tlacitku). */
  position: fixed; left: calc(var(--rail-w) + 20px); right: 20px; bottom: 66px; z-index: 60;
  display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5) var(--sp-4) 18px;
  border-radius: var(--r-2xl);
  background: var(--ink); color: var(--surface);
  box-shadow: 0 18px 40px -16px rgba(0,0,0,.6);
  animation: v2-bulk-in var(--dur) var(--ease);
}
[data-ui="v2"] .v2-bulk > button:first-of-type { margin-left: auto; }
@keyframes v2-bulk-in { from { transform: translateY(24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
[data-ui="v2"] .v2-bulk .cnt { font: 600 13.5px/1.3 var(--font-sans); white-space: nowrap; }
[data-ui="v2"] .v2-bulk .sep { width: 1px; height: 22px; background: rgba(255,255,255,.18); }
[data-ui="v2"] .v2-btn.dark {
  border-color: transparent; background: rgba(255,255,255,.12); color: var(--surface);
}
[data-ui="v2"] .v2-btn.dark:hover { background: rgba(255,255,255,.2); }
[data-ui="v2"] .v2-iconbtn.dark { border-color: transparent; background: transparent; color: var(--surface); }
[data-ui="v2"] .v2-iconbtn.dark:hover { background: rgba(255,255,255,.12); color: var(--surface); }
[data-ui="v2"] .v2-move-menu {
  position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 70;
  min-width: 220px; padding: var(--sp-3);
  background: var(--surface); color: var(--ink);
  border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-pop);
}

/* Pravý sloupec */
[data-ui="v2"] .v2-aside-card .pad { padding: var(--sp-6) var(--sp-7); display: flex; flex-direction: column; gap: var(--sp-4); }
[data-ui="v2"] .v2-aside-card.subtle { background: var(--surface-2); box-shadow: none; }
[data-ui="v2"] .v2-mail-addr { font-size: 13px; color: var(--ink-2); }
[data-ui="v2"] .v2-mail-alert {
  display: flex; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-xl); background: var(--info-soft);
}
[data-ui="v2"] .v2-mail-alert .icon { font-size: 20px; color: var(--info); }
[data-ui="v2"] .v2-mail-alert .col { min-width: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
[data-ui="v2"] .v2-mail-alert b { font: 600 13px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-alert p { margin: 0; font: 400 12px/1.45 var(--font-sans); color: var(--ink-2); overflow-wrap: anywhere; }
[data-ui="v2"] .v2-mail-alert p.sender { font-size: 13px; font-weight: 600; color: var(--ink); }
[data-ui="v2"] .v2-mail-alert .btns { display: flex; gap: var(--sp-3); }
[data-ui="v2"] .v2-credit-line { display: flex; align-items: baseline; gap: var(--sp-3); }
[data-ui="v2"] .v2-credit-line .big { font-size: 26px; font-weight: 600; }
/* Zustatek kreditu varuje barvou driv, nez dojdou - pod 10 doklady oranzove,
   pod 3 cervene. Bez toho by cislo zustalo v zakladni barve. */
[data-ui="v2"] .v2-credit-line .big.warn { color: var(--warn); }
[data-ui="v2"] .v2-credit-line .big.bad { color: var(--bad); }
[data-ui="v2"] .v2-credit-bar {
  height: 10px; border-radius: var(--r-pill); background: var(--bg-2); overflow: hidden;
}
[data-ui="v2"] .v2-credit-bar span { display: block; height: 100%; background: var(--accent); border-radius: var(--r-pill); }
[data-ui="v2"] .v2-credit-bar span.warn { background: var(--warn); }

/* Přehled kreditů neopakuje zůstatek ze záhlaví. V jedné nízké kartě ukáže
   cenu běžné práce a orientační efekt za posledních sedm dní. */
[data-ui="v2"] .v2-credit-insight {
  display: flex; flex-direction: column; gap: var(--sp-4);
  padding: var(--sp-6) var(--sp-7);
}
[data-ui="v2"] .v2-credit-insight.is-low { border-color: var(--warn); }
[data-ui="v2"] .v2-credit-insight-head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
}
[data-ui="v2"] .v2-credit-economy {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3);
  padding-bottom: var(--sp-4); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-credit-economy > div { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-credit-economy span,
[data-ui="v2"] .v2-credit-economy small {
  font: 500 10.5px/1.35 var(--font-sans); color: var(--ink-3);
}
[data-ui="v2"] .v2-credit-economy b {
  font: 700 16px/1.25 var(--font-sans); color: var(--ink); white-space: nowrap;
}
[data-ui="v2"] .v2-credit-week {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3);
}
[data-ui="v2"] .v2-credit-week > div { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-credit-week b { font: 700 15px/1.25 var(--font-sans); color: var(--ink); }
[data-ui="v2"] .v2-credit-week span { font: 500 9.5px/1.3 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .v2-credit-estimate { margin: 0; font: 400 10.5px/1.4 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .v2-credit-low {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  border-radius: var(--r-lg); background: var(--warn-soft); color: var(--ink);
}
[data-ui="v2"] .v2-credit-low > span { display: flex; flex-direction: column; }
[data-ui="v2"] .v2-credit-low small { font: 600 10px/1.25 var(--font-sans); color: var(--warn); }
[data-ui="v2"] .v2-credit-low b { font: 700 14px/1.25 var(--font-sans); }
[data-ui="v2"] .v2-credit-topup-pill { border-radius: var(--r-pill); white-space: nowrap; }

/* Nápovědní callout */
[data-ui="v2"] .v2-help-callout {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-7);
  border: 1px solid var(--accent-line); border-radius: var(--r-xl);
  background: var(--accent-soft);
  font: 400 13px/1.5 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-help-callout .icon { font-size: 19px; color: var(--accent-text); }

/* Admin */
[data-ui="v2"] .v2-admin-title { display: flex; align-items: center; gap: var(--sp-4); min-width: 0; }
[data-ui="v2"] .v2-admin-title .icon { font-size: 22px; color: var(--ink-3); }
[data-ui="v2"] .v2-admin-title .co-eyebrow {
  display: block; font: 600 10px/1.3 var(--font-sans);
  letter-spacing: .09em; text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .v2-admin-title .co-name { display: block; font: 600 14px/1.3 var(--font-sans); white-space: nowrap; }
[data-ui="v2"] .v2-tenant { overflow: visible; }
[data-ui="v2"] .v2-arow {
  display: flex; align-items: center; gap: var(--sp-6);
  padding: var(--sp-4) 0; border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
[data-ui="v2"] .v2-arow:last-child { border-bottom: 0; }
[data-ui="v2"] .v2-arow .acol { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
[data-ui="v2"] .v2-arow .acol.name { flex: 1 1 220px; }
[data-ui="v2"] .v2-arow .acol.name b { font: 600 13.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-arow .acol.endpoint { flex: 1 1 220px; font-size: 11.5px; color: var(--ink-3); overflow-wrap: anywhere; }
[data-ui="v2"] .v2-arow .acol.mailbox { flex: 1 1 240px; }
[data-ui="v2"] .v2-meter {
  display: block; width: 120px; height: 5px; border-radius: var(--r-pill);
  background: var(--bg-2); overflow: hidden; margin: 3px 0;
}
[data-ui="v2"] .v2-meter span { display: block; height: 100%; background: var(--ok); border-radius: var(--r-pill); }

@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .icon.spin { animation: none; }
}

/* Select aktivniho spojeni v hlavicce (multi-connection firmy) */
[data-ui="v2"] .v2-conn select {
  border: 0; background: transparent; outline: none; cursor: pointer;
  font: 600 12.5px/1.3 var(--font-sans); color: var(--ink);
  max-width: 180px;
}

/* ============================================================
   M3 — Kontrola dokladu. Scopováno pod [data-ui="v2"].
   ============================================================ */

[data-ui="v2"] .rv-head { display: flex; align-items: flex-start; gap: var(--sp-6); }
[data-ui="v2"] .rv-head .titles { flex: 1; min-width: 0; }
[data-ui="v2"] .rv-head h1 {
  margin: 0; font: 700 21px/1.25 var(--font-sans); letter-spacing: -.02em;
  display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
}
[data-ui="v2"] .rv-head .sub { margin: 4px 0 0; font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .rv-pager { display: flex; align-items: center; gap: var(--sp-3); flex: 0 0 auto; padding-top: 4px; }

[data-ui="v2"] body.v2-wide .v2-content,
[data-ui="v2"] .v2-content.wide { max-width: none; }

/* Dva sloupce s posuvným děličem. Šířka levého je v proměnné, kterou
   nastavuje tažení; obsah se tomu přizpůsobí. */
[data-ui="v2"] .rv-wrap {
  display: grid;
  grid-template-columns: var(--rv-split, 48%) 8px minmax(320px, 1fr);
  gap: 0; align-items: start;
}
[data-ui="v2"] .rv-splitter {
  align-self: stretch; position: sticky; top: var(--sticky-top);
  height: calc(100vh - var(--sticky-top) - 24px);
  cursor: col-resize; background: none; border: 0;
  display: flex; align-items: center; justify-content: center;
}
[data-ui="v2"] .rv-splitter::before {
  content: ''; width: 3px; height: 46px; border-radius: 999px;
  background: var(--line-2); transition: background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-splitter:hover::before,
[data-ui="v2"] .rv-splitter:focus-visible::before { background: var(--accent); height: 72px; }
[data-ui="v2"] .rv-splitter:focus-visible { outline: 2px solid var(--focus); outline-offset: -4px; border-radius: var(--r-sm); }
[data-ui="v2"] body.v2-splitting { cursor: col-resize; user-select: none; }
[data-ui="v2"] body.v2-splitting iframe { pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .rv-splitter::before { transition: none; }
}
[data-ui="v2"] .rv-tabs { display: none; gap: var(--sp-3); }
[data-ui="v2"] .rv-tabs .v2-btn.on { background: var(--accent-soft); color: var(--accent-text); border-color: var(--accent-line); }

[data-ui="v2"] .rv-left {
  min-width: 0;
  position: sticky; top: var(--sticky-top);
  display: flex; flex-direction: column; gap: var(--sp-2);
  /* plná výška okna pod hlavičkou — náhled má být co největší */
  height: calc(100vh - var(--sticky-top) - 24px);
}
[data-ui="v2"] .rv-right {
  min-width: 0; padding-left: var(--sp-2);
  display: flex; flex-direction: column; gap: var(--sp-5);
}
/* Náhled vpravo — osobní volba (review_preview_side). Mění se jen pořadí
   sloupců. Proměnná --rv-split zůstává ŠÍŘKOU NÁHLEDU, ať je vlevo nebo
   vpravo, aby přepnutí strany nezměnilo poměr, který si uživatel nastavil.
   Pod 1280 px se rozvržení mění na záložky (níž), takže se tam neuplatní. */
[data-ui="v2"] .rv-wrap.rv-mirror {
  grid-template-columns: minmax(320px, 1fr) 8px var(--rv-split, 48%);
}
/* Řádek se MUSÍ určit taky. Automatické skládání mřížky jde jen dopředu:
   po náhledu ve třetím sloupci (v pořadí HTML je první) je kurzor na konci
   řádku, takže dělič i data spadnou na další řádky. Bez `grid-row: 1` to
   vypadá jako prázdné místo nad daty. */
[data-ui="v2"] .rv-wrap.rv-mirror .rv-right {
  grid-column: 1; grid-row: 1; padding-left: 0; padding-right: var(--sp-2);
}
[data-ui="v2"] .rv-wrap.rv-mirror .rv-splitter { grid-column: 2; grid-row: 1; }
[data-ui="v2"] .rv-wrap.rv-mirror .rv-left { grid-column: 3; grid-row: 1; }

[data-ui="v2"] .rv-data-columns,
[data-ui="v2"] .rv-data-col { display: contents; }
[data-ui="v2"] .rv-review-top { display: contents; }

[data-ui="v2"] .rv-toolbar {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; row-gap: 4px;
  padding: 3px var(--sp-4);
  background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-md);
}
/* Pilulka režimu dokumentu jen jako ikona — celý text je v title a aria-label.
   Varovné případy (sken, fotka) mají navíc vlastní pruh #rv-photostrip. */
[data-ui="v2"] .v2-pill.icon-only { padding: 2px 5px; gap: 0; }
[data-ui="v2"] .rv-toolbar > .icon { font-size: 19px; color: var(--ink-3); }
[data-ui="v2"] .rv-toolbar .spacer { flex: 1; }
[data-ui="v2"] .rv-toolbar .rv-label-action { flex: 0 0 auto; white-space: nowrap; }
/* Jakmile by plná lišta vytvořila druhý řádek, skript ji podle skutečné
   šířky PDF panelu přepne na ikony. Popisky zůstávají v title/aria-label. */
[data-ui="v2"] .rv-toolbar.is-icon-only .rv-action-label { display: none; }
[data-ui="v2"] .rv-toolbar.is-icon-only .rv-label-action {
  min-width: 28px; padding-inline: 5px; justify-content: center; gap: 0;
}

[data-ui="v2"] .rv-strip {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4); font-size: 12px;
  border-radius: var(--r-md);
  font: 400 12.5px/1.5 var(--font-sans);
}
[data-ui="v2"] .rv-strip.warn { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .rv-strip .icon { font-size: 17px; flex: 0 0 auto; }

[data-ui="v2"] .rv-docbody {
  flex: 1 1 auto; min-height: 240px; overflow: auto;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--r-md);
  /* Menší odsazení = širší náhled. scrollbar-gutter drží místo svislého
     posuvníku rezervované UŽ PŘI MĚŘENÍ šířky, jinak posuvník naskočí až po
     vložení stránek a náhled o jeho šířku vodorovně přeteče. */
  padding: var(--sp-3); scrollbar-gutter: stable;
}
[data-ui="v2"] .rv-loading { padding: 40px; text-align: center; color: var(--ink-3); font: 400 13px/1.5 var(--font-sans); }
[data-ui="v2"] .rv-page {
  position: relative; margin: 0 auto var(--sp-3);
  background: var(--paper); border-radius: var(--r-xs);
  box-shadow: 0 2px 10px rgba(25,29,40,.18);
}
[data-ui="v2"] .rv-overlay { position: absolute; inset: 0; pointer-events: none; }
[data-ui="v2"] .rv-hl {
  position: absolute; border-radius: 3px;
  box-shadow: inset 0 0 0 100px var(--marker-fill), 0 0 0 1.5px var(--marker-ring);
  transition: box-shadow .15s;
}
[data-ui="v2"] .rv-imgwrap { display: flex; justify-content: center; padding: var(--sp-4); }
[data-ui="v2"] .rv-imgwrap img {
  max-width: 100%; height: auto; border-radius: 6px;
  box-shadow: var(--paper-shadow); background: var(--paper);
}
/* nouzový prohlížeč PDF a ISDOC vyplní celou dostupnou výšku */
[data-ui="v2"] .rv-isdoc { width: 100%; height: 100%; min-height: 420px; border: 0; background: var(--paper); border-radius: var(--r-xs); }
[data-ui="v2"] .rv-zoom { display: inline-flex; align-items: center; gap: 4px; }
[data-ui="v2"] .rv-zoom .lvl { min-width: 48px; text-align: center; font-size: 12px; color: var(--ink-2); }
[data-ui="v2"] .rv-zoom .v2-btn.on { background: var(--accent-soft); color: var(--accent-text); border-color: var(--accent-line); }

/* Hlavička dokladu — mřížka polí */
[data-ui="v2"] .rv-section-head {
  width: 100%; border: 0; color: var(--ink); background: transparent;
  text-align: left; cursor: pointer;
}
/* Hlavička sekce nese vedle názvu až dvě pilulky (stav sekce + vlastní stav
   karty). Na úzkém sloupci se raději zalomí, než aby přetekla z karty —
   přetečení by vyrobilo vodorovný posuv celé stránky. */
[data-ui="v2"] .rv-section-head { flex-wrap: wrap; }
[data-ui="v2"] .rv-section-head .t-eyebrow { min-width: 0; }
[data-ui="v2"] .rv-section-head:hover { background: var(--surface-2); }
[data-ui="v2"] .rv-section-head:focus-visible { outline: 2px solid var(--focus); outline-offset: -3px; }
[data-ui="v2"] .rv-section-icon { font-size: 20px; color: var(--accent-text); }
[data-ui="v2"] .rv-section-chevron { font-size: 20px; color: var(--ink-3); transition: transform var(--dur) var(--ease); }
[data-ui="v2"] .rv-section-head[aria-expanded="false"] .rv-section-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .rv-section-body[hidden] { display: none; }
/* Tělo sekce se při ručním otevření zavře přes skutečnou výšku obsahu.
   Overflow je omezený jen během pohybu; po doběhnutí se odstraní, takže
   nabídky, tooltipy a fokusové kroužky uvnitř karty nezůstávají oříznuté. */
[data-ui="v2"] .rv-section-body.rv-section-animating {
  overflow: hidden; will-change: height, opacity;
  transition: height 260ms var(--ease), opacity 180ms var(--ease);
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .rv-section-body.rv-section-animating { transition: none; }
}
[data-ui="v2"] .rv-section-headrow {
  display: flex; align-items: center; min-width: 0; border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .rv-section-headrow > .rv-section-head { flex: 1 1 auto; min-width: 0; border-bottom: 0; }
[data-ui="v2"] .rv-section-headrow > .rv-layout-edit { flex: 0 0 auto; margin-right: var(--sp-4); position: relative; }
[data-ui="v2"] .rv-layout-count {
  position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px; padding: 0 3px;
  display: grid; place-items: center; border-radius: 999px; background: var(--accent); color: var(--on-accent);
  font: 700 9px/1 var(--font-sans);
}

/* Firma — kompaktní porovnání OCR × ABRA. */
[data-ui="v2"] .rv-firm-body { padding: var(--sp-5) var(--sp-7) var(--sp-6); }
[data-ui="v2"] .rv-firm-status {
  display: flex; align-items: center; gap: var(--sp-3); min-height: 40px;
  margin-bottom: var(--sp-4); padding: 9px 12px; border: 1px solid var(--line);
  border-radius: var(--r-lg); background: var(--surface-2); color: var(--ink-2);
  font: 500 12.5px/1.45 var(--font-sans);
}
[data-ui="v2"] .rv-firm-status .icon { flex: 0 0 auto; font-size: 18px; }
[data-ui="v2"] .rv-firm-status.ok { border-color: var(--ok); background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .rv-firm-status.warn,
[data-ui="v2"] .rv-firm-status.wait { border-color: var(--warn); background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .rv-firm-status.bad { border-color: var(--bad); background: var(--bad-soft); color: var(--bad); }
[data-ui="v2"] .rv-firm-status select { margin-left: auto; min-width: 230px; max-width: 48%; }
[data-ui="v2"] .rv-firm-columns,
[data-ui="v2"] .rv-firm-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 66px minmax(0, 1fr);
  gap: var(--sp-3); align-items: center;
}
[data-ui="v2"] .rv-firm-columns {
  padding: 0 10px 7px; color: var(--ink-3);
  font: 700 12px/1.3 var(--font-sans); letter-spacing: .04em; text-transform: uppercase;
}
[data-ui="v2"] .rv-firm-columns > span:first-child,
[data-ui="v2"] .rv-firm-columns > span:last-child { padding-left: calc(68px + var(--sp-2)); }
[data-ui="v2"] .rv-firm-transfer-all {
  width: 30px; height: 28px; justify-self: center; display: grid; place-items: center;
  border: 2px solid var(--ink-2); border-radius: var(--r-md); cursor: pointer;
  background: var(--surface); box-shadow: 0 1px 2px rgba(20, 24, 34, .12);
}
[data-ui="v2"] .rv-firm-transfer-all:hover { border-color: var(--accent); background: var(--accent-soft); }
[data-ui="v2"] .rv-firm-transfer-all:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .rv-firm-transfer-all:has(input:disabled) { opacity: .45; cursor: not-allowed; }
[data-ui="v2"] .rv-firm-transfer-all input { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); cursor: inherit; }
[data-ui="v2"] .rv-firm-row {
  padding: 2px 8px; border-radius: var(--r-md); transition: background var(--dur-fast) var(--ease);
}
/* Rozdíl OCR × ABRA je INFORMACE, ne výhrada — jantar má na kontrole
   vyhrazenou nízkou jistotu vytěžení. Proužek vlevo drží řádek čitelný
   i tam, kde je podklad jen naznačený. */
[data-ui="v2"] .rv-firm-row.diff { background: var(--info-soft); box-shadow: inset 3px 0 0 0 var(--info); }
/* Režim „Ke kontrole": v mřížce firmy zůstanou jen rozdílné řádky.
   Vstupy zůstávají v DOM (collectFirmV2 z nich čte), jen se neukazují. */
[data-ui="v2"] .rv-firm-grid.only-diff .rv-firm-row:not(.diff) { display: none; }
[data-ui="v2"] .rv-firm-side { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: var(--sp-2); align-items: center; min-width: 0; }
[data-ui="v2"] .rv-firm-side > span { color: var(--ink-3); font: 600 12px/1.3 var(--font-sans); }
[data-ui="v2"] .rv-firm-input-wrap {
  position: relative; display: block; min-width: 0; color: inherit;
}
[data-ui="v2"] .rv-firm-side input {
  min-width: 0; width: 100%; height: 28px; padding: 3px 8px;
  border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink); font: 500 12.5px/1.35 var(--font-sans);
}
[data-ui="v2"] .rv-firm-input-wrap:has(.rv-registry-mark) input { padding-right: 32px; }
[data-ui="v2"] .rv-registry-mark {
  position: absolute; z-index: 1; top: 50%; right: 5px; translate: 0 -50%;
  width: 22px; height: 22px; display: grid; place-items: center;
  border-radius: var(--r-sm); background: var(--surface); cursor: help;
}
[data-ui="v2"] .rv-registry-mark .icon { font-size: 16px; }
[data-ui="v2"] .rv-registry-mark.tone-ok { color: var(--ok); background: var(--ok-soft); }
[data-ui="v2"] .rv-registry-mark.tone-info { color: var(--info); background: var(--info-soft); }
[data-ui="v2"] .rv-registry-mark.tone-warn { color: var(--warn); background: var(--warn-soft); }
[data-ui="v2"] .rv-registry-mark.tone-bad { color: var(--bad); background: var(--bad-soft); }
[data-ui="v2"] .rv-firm-side input:focus { border-color: var(--focus); outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .rv-firm-side.readonly input { background: var(--bg-2); color: var(--ink-2); }
[data-ui="v2"] .rv-firm-transfer { display: grid; place-items: center; cursor: pointer; color: var(--ink-3); }
[data-ui="v2"] .rv-firm-transfer input { width: 17px; height: 17px; accent-color: var(--accent); }
[data-ui="v2"] .rv-firm-transfer .icon { display: none; }
[data-ui="v2"] .rv-firm-margin {
  display: flex; align-items: flex-start; gap: var(--sp-3); width: fit-content;
  margin: var(--sp-4) 0 0; padding: 8px 11px;
  border: 1px solid var(--info); border-radius: var(--r-md);
  background: var(--info-soft); color: var(--ink); cursor: pointer;
}
[data-ui="v2"] .rv-firm-margin input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--accent); }
[data-ui="v2"] .rv-firm-margin > span { display: flex; flex-direction: column; gap: 1px; }
[data-ui="v2"] .rv-firm-margin b { font: 650 12.5px/1.35 var(--font-sans); }
[data-ui="v2"] .rv-firm-margin small { color: var(--ink-3); font: 500 11.5px/1.35 var(--font-sans); }
/* Tlacitka v liste zalamovala popisek na dva radky (57 px), zatimco ikonova
   zustavala na jednom (40 a 38 px) — odtud nestejna vyska. Nowrap to srovna;
   kdyz se lista nevejde, zalomi se cela, ne text uvnitr tlacitek. */
[data-ui="v2"] .rv-actions .v2-btn,
[data-ui="v2"] .rv-actions .v2-iconbtn { white-space: nowrap; min-height: 40px; }

/* Tlacitka na dlazdice Dodavatel se drive lamala nepravidelne. Mrizka je
   rozlozi rovnomerne po sirce dlazdice. */
[data-ui="v2"] .rv-firm-actions {
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: center; gap: var(--sp-3); margin-top: var(--sp-5);
}
[data-ui="v2"] .rv-firm-actions > .v2-btn { font-size: 12px; padding-inline: 6px; }
[data-ui="v2"] .rv-firm-actions > .v2-btn .icon { font-size: 15px; }
[data-ui="v2"] .rv-firm-actions > .v2-btn { width: 100%; white-space: nowrap; }
[data-ui="v2"] .rv-firm-actions .spacer { display: none; }
[data-ui="v2"] .rv-firm-search-short { display: none; }
[data-ui="v2"] .rv-user-hidden { display: none !important; }
[data-ui="v2"] .rv-firm-grid.rv-layout-compact .rv-firm-row { padding-block: 2px; min-height: 30px; }
[data-ui="v2"] .rv-firm-grid.rv-layout-compact .rv-firm-side input { height: 26px; }
[data-ui="v2"] .rv-firm-results { display: grid; gap: var(--sp-2); max-height: 52vh; overflow: auto; }
[data-ui="v2"] .rv-firm-result {
  display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: var(--r-lg); cursor: pointer;
  background: var(--surface); color: var(--ink); text-align: left;
}
[data-ui="v2"] .rv-firm-result:hover,
[data-ui="v2"] .rv-firm-result:focus-visible { border-color: var(--accent); background: var(--accent-soft); }
[data-ui="v2"] .rv-firm-result b { font: 600 13px/1.4 var(--font-sans); }
[data-ui="v2"] .rv-firm-result span { color: var(--ink-2); font: 400 12px/1.4 var(--font-sans); }

[data-ui="v2"] .rv-attachment-file {
  display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-5) var(--sp-7) 0;
}
[data-ui="v2"] .rv-attachment-file > .icon {
  width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto;
  border-radius: var(--r-lg); background: var(--accent-soft); color: var(--accent-text);
}
[data-ui="v2"] .rv-attachment-file > div { display: flex; flex: 1; min-width: 0; flex-direction: column; }
[data-ui="v2"] .rv-attachment-file b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
[data-ui="v2"] .rv-attachment-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: var(--sp-4); }

/* Dvanáct sloupců, každé pole si řekne o svou šířku (data-span). Dřív byly
   dva stejné sloupce po 412 px, takže datum mělo vstup 386 px — třikrát víc,
   než potřebuje, a hlavička kvůli tomu byla zbytečně vysoká. */
[data-ui="v2"] .rv-grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--sp-3);
  padding: var(--sp-5) var(--sp-7) var(--sp-6); align-items: start;
}
[data-ui="v2"] .rv-field[data-span="2"] { grid-column: span 2; }
[data-ui="v2"] .rv-field[data-span="3"] { grid-column: span 3; }
[data-ui="v2"] .rv-field[data-span="4"] { grid-column: span 4; }
[data-ui="v2"] .rv-field[data-span="5"] { grid-column: span 5; }
[data-ui="v2"] .rv-field[data-span="6"] { grid-column: span 6; }
[data-ui="v2"] .rv-field[data-span="8"] { grid-column: span 8; }
[data-ui="v2"] .rv-field[data-span="12"] { grid-column: 1 / -1; }
/* Užší pravý sloupec: šířky se slévají po dvojicích, pod tím jeden sloupec.
   Datum si i v nejužším stupni drží půlku řádku — pod ~180 px ho Chrome
   stejně neztenčí, jen by se ořízla ikona kalendáře. */
[data-ui="v2"] .rv-tier2 .rv-field[data-span="2"],
[data-ui="v2"] .rv-tier2 .rv-field[data-span="3"] { grid-column: span 4; }
[data-ui="v2"] .rv-tier2 .rv-field[data-span="4"] { grid-column: span 5; }
[data-ui="v2"] .rv-tier2 .rv-field[data-span="5"],
[data-ui="v2"] .rv-tier2 .rv-field[data-span="6"] { grid-column: span 6; }
[data-ui="v2"] .rv-tier2 .rv-field[data-span="8"] { grid-column: 1 / -1; }
/* V užším sloupci potřebuje typ obchodu celou šířku (specificita přebíjí span 6). */
[data-ui="v2"] .rv-tier2 .rv-field.rv-tradeblock[data-span] { grid-column: 1 / -1; }
[data-ui="v2"] .rv-tier3 .rv-field[data-span] { grid-column: 1 / -1; }
[data-ui="v2"] .rv-tier3 .rv-field.is-date[data-span] { grid-column: span 6; }
[data-ui="v2"] .rv-field {
  display: flex; flex-direction: column; gap: 2px;
  padding: 6px var(--sp-4) 7px;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface);
  cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-field.active { border-color: var(--accent); background: var(--surface-2); }
[data-ui="v2"] .rv-field.ok { border-color: var(--ok); }
/* DVA RŮZNÉ STAVY, dřív k nerozeznání (oba jantar + vykřičník):
   .warn = nízká jistota vytěžení („ověřte proti originálu") — jantar a značka
   AI; .rv-blk = blokující výhrada („bez toho to neuložíte") — červená a
   vykřičník. Pole může být obojí zároveň, proto je blokace v pořadí níž. */
[data-ui="v2"] .rv-field.warn {
  position: relative; border-color: var(--warn); background: var(--warn-soft);
}
[data-ui="v2"] .rv-field.warn::after {
  content: 'auto_awesome'; position: absolute; top: -7px; right: -7px;
  font-family: 'Material Symbols Rounded'; font-feature-settings: 'liga';
  font-size: 15px; line-height: 1; color: var(--warn);
  background: var(--surface); border-radius: 50%; pointer-events: none;
}
[data-ui="v2"] .rv-field.rv-blk {
  position: relative; border-color: var(--bad); background: var(--bad-soft);
}
[data-ui="v2"] .rv-field.rv-blk::after {
  content: 'error'; position: absolute; top: -7px; right: -7px;
  font-family: 'Material Symbols Rounded'; font-feature-settings: 'liga';
  font-size: 15px; line-height: 1; color: var(--bad);
  background: var(--surface); border-radius: 50%; pointer-events: none;
}
/* Shrnutí skrytých hodnot v režimu „Ke kontrole" — čára místo pole, aby
   bylo poznat, že to není další údaj k vyplnění. */
[data-ui="v2"] .rv-field.rv-hidden-summary {
  flex-direction: row; align-items: center; justify-content: space-between;
  gap: var(--sp-3); cursor: default;
  background: var(--surface-2); border-style: dashed;
}
[data-ui="v2"] .rv-label { font: 600 12px/1.3 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .rv-val { font: 600 14.5px/1.35 var(--font-sans); overflow-wrap: anywhere; }
[data-ui="v2"] .rv-sub { font-size: 12px; color: var(--ink-3); }
/* Zaškrtávátko NENÍ textové pole: pravidlo .rv-field input { width:100% }
   níže mu dávalo klikací plochu 386 px, což rozhazovalo celý řádek mřížky
   (pole h-vatdoc mělo 412x72 px kvůli 13px prvku). */
[data-ui="v2"] .rv-field input[type="checkbox"] {
  width: 16px; height: 16px; flex: 0 0 auto; margin: 0; accent-color: var(--accent);
}
[data-ui="v2"] .rv-field .chk,
[data-ui="v2"] .rv-drcbox .chk { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
/* Volby ano/ne mají ve formuláři jeden zřetelný znak: skutečný checkbox
   vlevo od textu. Větší 18px rámeček zůstává čitelný i v neaktivním stavu;
   pasivní badge a stavové pilulky se tímto pravidlem nemění. */
[data-ui="v2"] .rv-check-control input[type="checkbox"] {
  width: 18px; height: 18px; flex: 0 0 18px; border: 2px solid var(--ink-2);
}
/* Nezaškrtnutá volba musí být vidět ještě před najetím myší. Obecný
   --field-line je u bílých dlaždic záměrně jemný, pro akční volby by ale
   rámeček splýval s podkladem. */
[data-ui="v2"] .rv-check-control input[type="checkbox"]:not(:checked):not(:disabled) {
  border-color: var(--ink-2); background: var(--surface); opacity: 1;
}
[data-ui="v2"] .rv-check-control:hover input[type="checkbox"]:not(:disabled):not(:checked) {
  border-color: var(--accent);
}

[data-ui="v2"] .rv-field input {
  border: 0; background: transparent; outline: none; padding: 0;
  font: 600 14.5px/1.35 var(--font-sans); color: var(--ink); width: 100%;
}
[data-ui="v2"] .rv-note .v2-btn { margin-left: 2px; vertical-align: baseline; }
[data-ui="v2"] .rv-note {
  display: inline-flex; align-items: center; gap: 4px;
  font: 400 12px/1.4 var(--font-sans); color: var(--ink-3);
}
[data-ui="v2"] .rv-note .icon { font-size: 14px; }
[data-ui="v2"] .rv-note.warn { color: var(--warn); }
[data-ui="v2"] .rv-note.ok { color: var(--ok); }

/* Shrnutí AI / ověřovací režim */
[data-ui="v2"] .rv-summary .pad { display: flex; align-items: center; gap: var(--sp-5); padding: var(--sp-6) var(--sp-7); }
[data-ui="v2"] .rv-summary .icon { font-size: 22px; color: var(--accent-text); flex: 0 0 auto; }
[data-ui="v2"] .rv-summary .icon.ok { color: var(--ok); }
[data-ui="v2"] .rv-summary b { font: 600 14px/1.4 var(--font-sans); display: block; }
[data-ui="v2"] .rv-summary p { margin: 2px 0 0; font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .rv-summary div { flex: 1; min-width: 0; }
[data-ui="v2"] .rv-summary.done { border-color: var(--ok); background: var(--ok-soft); }

[data-ui="v2"] .rv-verify {
  border-color: var(--accent); border-radius: var(--r-xl);
  box-shadow: 0 10px 26px -16px var(--accent);
  padding: var(--sp-6) var(--sp-7);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
[data-ui="v2"] .rv-verify-head { display: flex; align-items: center; gap: var(--sp-4); }
[data-ui="v2"] .rv-verify-head .t-meta { flex: 1; }
[data-ui="v2"] .rv-verify-label { font: 600 12px/1.3 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .rv-verify-value { font-size: 24px; font-weight: 600; overflow-wrap: anywhere; }
[data-ui="v2"] .rv-verify-note { font: 400 12px/1.5 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .rv-verify-btns { display: flex; gap: var(--sp-3); margin-top: var(--sp-2); flex-wrap: wrap; }

/* Řádky a DPH */
[data-ui="v2"] .rv-rows { padding: 0 var(--sp-7); }
[data-ui="v2"] .rv-row {
  display: grid; grid-template-columns: 1fr 60px 96px 82px 104px;
  gap: var(--sp-4); align-items: baseline;
  padding: var(--sp-3) 0; border-bottom: 1px solid var(--line);
  font: 400 13.5px/1.4 var(--font-sans);
}
[data-ui="v2"] .rv-row .t-num { text-align: right; }
[data-ui="v2"] .rv-row .total { font-weight: 600; }
[data-ui="v2"] .rv-row .txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .rv-row.head {
  font: 700 11px/1.2 var(--font-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3);
  background: transparent;
}
[data-ui="v2"] .rv-row.head span:not(:first-child) { text-align: right; }
[data-ui="v2"] .rv-sums {
  display: flex; justify-content: flex-end; gap: var(--sp-8);
  padding: var(--sp-5) var(--sp-7);
  font: 400 13px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .rv-sums b { font-weight: 600; color: var(--ink); margin-left: 6px; }
[data-ui="v2"] .rv-sums .grand { font: 700 16px/1.3 var(--font-sans); color: var(--ink); }
[data-ui="v2"] .pad-note { padding: 0 var(--sp-7) var(--sp-6); margin: 0; }

/* Lišta akcí */
[data-ui="v2"] .rv-actions {
  position: sticky; top: var(--sticky-top); z-index: 20;
  display: grid; grid-template-columns: minmax(0, auto) minmax(80px, 1fr) minmax(0, auto);
  align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-2xl); box-shadow: var(--shadow-lg);
}
[data-ui="v2"] .rv-actions .spacer { display: block; min-width: 0; }
[data-ui="v2"] .rv-action-primary,
[data-ui="v2"] .rv-action-secondary,
[data-ui="v2"] .rv-detached-controls {
  display: flex; align-items: center; gap: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .rv-action-secondary { justify-self: end; }
[data-ui="v2"] .rv-detached-controls {
  justify-self: center; padding: 3px var(--sp-2) 3px var(--sp-3);
  border: 1px solid var(--ok); border-radius: var(--r-lg);
  background: var(--ok-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ok) 8%, transparent);
}
[data-ui="v2"] .rv-detached-status {
  display: inline-flex; align-items: center; gap: var(--sp-2); min-width: 0;
  color: var(--ok); font: 700 12px/1.35 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .rv-detached-status .icon { color: var(--ok); font-size: 18px; }
[data-ui="v2"] .rv-actions .rv-detached-controls .v2-iconbtn { min-height: 30px; }

/* Dělič mění šířku pravého panelu bez změny viewportu, takže běžné media
   query nestačí. Třídy nastavuje ResizeObserver přímo podle .rv-right. */
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-actions {
  grid-template-columns: minmax(0, 1fr) auto;
}
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-actions > .spacer { display: none; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-action-primary {
  width: 100%; justify-self: stretch; flex-wrap: wrap;
}
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-action-secondary {
  width: auto; justify-self: end; flex-wrap: nowrap;
}
/* V úzkém panelu se popisek údaje neopakuje před oběma hodnotami. Stává se
   společným prvním sloupcem a uvolní šířku oběma vstupům bez vyšších řádků. */
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-body { padding-inline: var(--sp-4); }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns,
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-row {
  grid-template-columns: 60px minmax(0, 1fr) 54px minmax(0, 1fr);
  gap: var(--sp-2);
}
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns { padding-inline: 6px; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns span:nth-child(1) { grid-column: 2; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns .rv-firm-transfer-all { grid-column: 3; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns span:nth-child(3) { grid-column: 4; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-columns > span { padding-left: 0; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-row { padding-inline: 6px; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-side { display: contents; }
[data-ui="v2"] .rv-right.rv-panel-narrow .rv-firm-side.readonly > span { display: none; }
[data-ui="v2"] .rv-right.rv-panel-tight .rv-firm-actions {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
/* Popisek reaguje na skutečnou šířku pravého pracovního panelu, ne na
   šířku monitoru. Při roztažení PDF tak tlačítko uvolní místo ostatním
   akcím, ale jeho plný význam zůstává v aria-labelu a tooltipu. */
[data-ui="v2"] .rv-right.rv-panel-tight .rv-firm-search-full { display: none; }
[data-ui="v2"] .rv-right.rv-panel-tight .rv-firm-search-short { display: inline; }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-actions { padding: var(--sp-3); }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-action-primary > #rv-saveabra,
[data-ui="v2"] .rv-right.rv-panel-compact .rv-action-primary > .rv-ctaextra { flex: 1 1 180px; }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-action-primary > .rv-savestatus { flex: 1 1 150px; }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-action-secondary > .v2-iconbtn { flex: 0 0 40px; }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-firm-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-ui="v2"] .rv-right.rv-panel-compact .rv-tradegrid,
[data-ui="v2"] .rv-right.rv-panel-compact .rv-rateline { align-items: stretch; }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-rateline { flex-wrap: wrap; }
[data-ui="v2"] .rv-savestatus { font: 400 12px/1.4 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .rv-savestatus.warn { color: var(--warn); }
/* ---- druhý řádek lišty: stav dokladu, mapa sekcí, rozsah dat ----
   Lišta je sticky, takže každý pixel navíc ubírá z náhledu dokladu:
   proto 12px text, nízké pilulky a zalomení až tam, kde se to nevejde. */
[data-ui="v2"] .rv-status {
  grid-column: 1 / -1;
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4);
  padding-top: var(--sp-2); border-top: 1px solid var(--line);
}
[data-ui="v2"] .rv-status-line {
  font: 600 12px/1.35 var(--font-sans); color: var(--ink-2);
  min-width: 0; overflow-wrap: anywhere;
}
[data-ui="v2"] .rv-secmap {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--sp-2); margin-left: auto;
}
[data-ui="v2"] .rv-secmap .v2-pill { padding: 2px 8px; font-size: 12px; cursor: pointer; }
[data-ui="v2"] .rv-secmap .v2-pill b { font-weight: 800; }
[data-ui="v2"] .rv-okgroup {
  display: inline-flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2);
  min-width: 0; max-width: 100%;
}
[data-ui="v2"] .rv-okgroup > summary {
  display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto;
  list-style: none; user-select: none;
}
[data-ui="v2"] .rv-okgroup > summary::-webkit-details-marker { display: none; }
[data-ui="v2"] .rv-okgroup-items {
  display: none; align-items: center; flex-wrap: wrap; gap: var(--sp-2); min-width: 0;
}
[data-ui="v2"] .rv-okgroup[open] .rv-okgroup-items { display: inline-flex; }
[data-ui="v2"] .rv-okgroup-chevron { font-size: 15px; transition: transform var(--dur-fast) var(--ease); }
[data-ui="v2"] .rv-okgroup[open] .rv-okgroup-chevron { transform: rotate(180deg); }
/* Aktivní sekce (podle scrollu) — obtažení vlastní barvou pilulky, ne
   modrý prstenec: ten patří fokusu a nesmí se s tímhle plést. */
[data-ui="v2"] .rv-secmap .v2-pill[aria-current="true"] { box-shadow: inset 0 0 0 1.5px currentColor; }
[data-ui="v2"] .rv-showseg { flex: 0 0 auto; }
[data-ui="v2"] .rv-showseg .v2-seg-btn { padding: 3px var(--sp-4); font-size: 12px; }
[data-ui="v2"] .rv-ctaextra:empty { display: none; }
[data-ui="v2"] .rv-secpill { display: inline-flex; min-width: 0; }
/* Pojistka pro tón „blokuje", než se globální .v2-pill.tone-bad doplní
   ke zbytku palety: na kontrole musí být blokace poznat i bez něj.
   Stejné hodnoty jako u ostatních tónů, takže nic nekoliduje. */
[data-ui="v2"] .rv-secmap .v2-pill.tone-bad,
[data-ui="v2"] .rv-secpill .v2-pill.tone-bad,
[data-ui="v2"] .rv-checkcount .v2-pill.tone-bad { background: var(--bad-soft); color: var(--bad); }
/* Krátké zvýraznění karty po skoku z mapy sekcí. */
[data-ui="v2"] .v2-card.rv-flash { box-shadow: 0 0 0 2px var(--info); }
[data-ui="v2"] .rv-saveerr {
  grid-column: 1 / -1; padding-top: var(--sp-3); border-top: 1px solid var(--bad);
  color: var(--bad); font: 600 12.5px/1.45 var(--font-sans);
}
[data-ui="v2"] .v2-save-success { display: flex; align-items: flex-start; gap: var(--sp-5); padding: var(--sp-6); }
[data-ui="v2"] .v2-save-success > .icon { color: var(--ok); font-size: 40px; }
[data-ui="v2"] .v2-save-success b { display: block; font-size: 17px; }
[data-ui="v2"] .v2-save-success p { margin: 5px 0 0; color: var(--ink-2); }
[data-ui="v2"] .v2-save-success.warn {
  margin: var(--sp-4); padding: var(--sp-5); border: 1px solid var(--warn);
  border-radius: var(--r-md); background: var(--warn-soft);
}
[data-ui="v2"] .v2-save-success.warn > .icon { color: var(--warn); }

/* ============================================================
   Kontrola dokladu jako app-shell: stránka nescrolluje, scrolluje
   VÝHRADNĚ pravý sloupec. Levý s náhledem tak drží na místě po celou
   dobu (sticky to nedokázalo — jeho dráha končila s výškou mřížky).
   Třídu v2-review sází renderReviewScreen až za chybové stavy.
   ============================================================ */
[data-ui="v2"] body.v2-review { overflow: hidden; }
[data-ui="v2"] body.v2-review #app { height: 100vh; height: 100dvh; }
[data-ui="v2"] body.v2-review .v2-shell { height: 100%; min-height: 0; }
[data-ui="v2"] body.v2-review .v2-main { min-height: 0; }
[data-ui="v2"] body.v2-review .v2-main > main { flex: 1 1 auto; min-height: 0; display: flex; }
[data-ui="v2"] body.v2-review .v2-content {
  flex: 1 1 auto; min-height: 0; overflow: hidden; overflow: clip;
  padding: var(--sp-5) 0 var(--sp-5) var(--sp-3); gap: var(--sp-4);
}
[data-ui="v2"] body.v2-review .rv-wrap { flex: 1 1 auto; min-height: 0; align-items: stretch; }
[data-ui="v2"] body.v2-review .rv-left { position: static; height: auto; min-height: 0; }
[data-ui="v2"] body.v2-review .rv-splitter { position: static; height: auto; }
/* Akční pruh se lepí na horní hranu SCROLLOVANÉHO sloupce — offset
   z doby, kdy scrolovala stránka, ho nechával viset 73 px pod hranou
   a obsah podtékal nad ním. Krycí podklad zakrývá i výseče kulatých rohů. */
[data-ui="v2"] body.v2-review .rv-right .rv-actions { top: 0; }
[data-ui="v2"] .rv-actions::before {
  content: '';
  position: absolute; z-index: -1;
  inset: calc(-1 * var(--sp-7)) 0 0 0;
  background: var(--bg);
}
[data-ui="v2"] body.v2-review .rv-right {
  min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  scrollbar-gutter: stable; padding-bottom: 90px;
}
/* Sloupec je sloupcový flex — bez tohoto by se karty místo scrollování
   SMRSKLY do dostupné výšky (hlavička 1178 px vykreslená na 340 px).
   Datové karty jsou od dvoumonitorového režimu zanořené v pomocných
   rv-data-columns / rv-data-col kontejnerech s display: contents, proto musí
   mít flex-shrink zakázaný přímo na sobě i v běžném režimu s náhledem. */
[data-ui="v2"] body.v2-review .rv-right > *,
[data-ui="v2"] body.v2-review .rv-data-col > * { flex: 0 0 auto; }
/* Kompaktnější záhlaví dokladu — výška jde do náhledu */
[data-ui="v2"] body.v2-review .rv-head h1 { font-size: 17px; }
[data-ui="v2"] body.v2-review .rv-head .sub { margin-top: 2px; font: 400 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] body.v2-review .rv-pager { padding-top: 0; }

/* Dvoumonitorový režim: náhled žije v pojmenovaném samostatném okně a
   hlavní viewport využije celou šířku pro dvě pracovní skupiny. */
[data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached { display: block; }
[data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-tabs,
[data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-left,
[data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-splitter { display: none; }
[data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-right {
  width: 100%; height: 100%; padding-left: 0; padding-bottom: 0;
  display: flex; gap: var(--sp-3); overflow: hidden;
}
[data-ui="v2"] body.v2-review-detached .rv-data-columns {
  display: grid; grid-template-columns: minmax(480px, .9fr) minmax(560px, 1.1fr);
  gap: var(--sp-5); align-items: stretch; flex: 1 1 auto; min-height: 0; overflow: hidden;
}
[data-ui="v2"] body.v2-review.v2-review-detached .rv-right > .rv-data-columns {
  flex: 1 1 0; min-height: 0;
}
[data-ui="v2"] body.v2-review-detached .rv-data-col {
  min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: var(--sp-5);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable;
  padding-bottom: var(--sp-5);
}
[data-ui="v2"] body.v2-review-detached .rv-actions::before { display: none; }
[data-ui="v2"] body.v2-review-detached .v2-content { gap: var(--sp-2); }
/* Na sirokem pracovnim monitoru sdili souhrn pochybnosti a akcni lista jeden
   radek v pomeru 1:2. Detail jednotliveho overovaneho pole zustava samostatne,
   aby se jeho hodnota a tri ovladaci tlacitka nemackaly do tretiny viewportu. */
@media (min-width: 1700px) {
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary {
    display: grid; grid-template-columns: minmax(320px, 1fr) minmax(0, 2fr);
    gap: var(--sp-3); align-items: stretch;
  }
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-summary,
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-summary .pad {
    height: 100%;
  }
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-summary .pad {
    gap: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  }
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-summary b { font-size: 12.5px; }
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-summary p { font-size: 11.5px; }
  [data-ui="v2"] body.v2-review-detached .rv-review-top.has-summary .rv-actions {
    position: static; min-width: 0;
  }
}
/* V uzsim levem sloupci jsou popisky OCR/ABRA nad vstupy a akce po trech.
   Porovnani zustava citelne, ale tlacitka uz nepretejkaji z karty. */
[data-ui="v2"] body.v2-review-detached .rv-firm-columns { display: none; }
[data-ui="v2"] body.v2-review-detached .rv-firm-row {
  grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr); padding-inline: 0;
}
[data-ui="v2"] body.v2-review-detached .rv-firm-side { grid-template-columns: 54px minmax(0, 1fr); gap: var(--sp-2); }
[data-ui="v2"] body.v2-review-detached .rv-firm-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Responzivita: pod 1280 px záložky Originál/Data místo dvou panelů.
   POZOR: totéž číslo drží JS v konstantě RV_BREAKPOINT (v2.js) — mění se
   obě místa najednou, jinak se rozejde vynucení panelu v ověřovacím režimu
   a pojistka proti scrollu okna. */
@media (max-width: 1280px) {
  [data-ui="v2"] .rv-wrap { display: block; --rv-tabs-h: 48px; }
  [data-ui="v2"] .rv-splitter { display: none; }
  /* Záložky se lepí pod hlavičku aplikace: bez toho se odscrollují a
     uživatel se z panelu „Data" nemá jak vrátit na originál. */
  [data-ui="v2"] .rv-tabs {
    display: flex; position: sticky; top: var(--sticky-top); z-index: 21;
    padding: var(--sp-2) 0; margin-bottom: var(--sp-2); background: var(--bg);
  }
  [data-ui="v2"] .rv-left { position: static; height: auto; max-height: none; min-width: 0; width: 100%; }
  [data-ui="v2"] .rv-right { min-width: 0; width: 100%; padding-left: 0; }
  [data-ui="v2"] .rv-wrap:not([data-tab]) .rv-right { display: none; }
  [data-ui="v2"] .rv-wrap[data-tab="data"] .rv-left { display: none; }
  [data-ui="v2"] .rv-wrap[data-tab="doc"] .rv-right { display: none; }
  [data-ui="v2"] .rv-docbody { max-height: 70vh; }
  /* Pod záložkami app-shell vypnout, jinak by pod nimi nešlo scrollovat. */
  [data-ui="v2"] body.v2-review { overflow: auto; }
  [data-ui="v2"] body.v2-review #app { height: auto; }
  [data-ui="v2"] body.v2-review .v2-shell { height: auto; min-height: 100vh; }
  [data-ui="v2"] body.v2-review .v2-main > main { display: block; }
  [data-ui="v2"] body.v2-review .v2-content { overflow: visible; display: flex; padding-bottom: 110px; }
  [data-ui="v2"] body.v2-review .rv-right { overflow-y: visible; padding-bottom: 0; }
  /* pod záložkami scrolluje stránka — pruh se lepí POD lepivé záložky */
  [data-ui="v2"] body.v2-review .rv-right .rv-actions {
    top: calc(var(--sticky-top) + var(--rv-tabs-h, 48px));
  }
  [data-ui="v2"] body.v2-review .rv-left { height: auto; }
  [data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-tabs { display: none; }
  [data-ui="v2"] body.v2-review-detached .rv-wrap.is-detached .rv-right { display: flex; overflow: visible; }
  [data-ui="v2"] body.v2-review.v2-review-detached .rv-right > .rv-data-columns { flex: 0 0 auto; }
  [data-ui="v2"] body.v2-review-detached .rv-data-columns { grid-template-columns: 1fr; min-height: auto; overflow: visible; }
  [data-ui="v2"] body.v2-review-detached .rv-data-col { min-height: auto; overflow: visible; padding-bottom: 0; }
}
@media (max-width: 900px) {
  [data-ui="v2"] .rv-actions { grid-template-columns: minmax(0, 1fr) auto; }
  [data-ui="v2"] .rv-actions > .spacer { display: none; }
  [data-ui="v2"] .rv-detached-controls { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  /* Stav i mapa sekcí se zalomí pod sebe — nic se neschovává, jen přeskládá. */
  [data-ui="v2"] .rv-status { flex-direction: column; align-items: flex-start; }
  [data-ui="v2"] .rv-secmap { margin-left: 0; }
}
@media (max-width: 700px) {
  [data-ui="v2"] .rv-grid { gap: var(--sp-2); }
}
@media (max-width: 980px) {
  [data-ui="v2"] .rv-firm-columns { display: none; }
  [data-ui="v2"] .rv-firm-row { grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr); padding-inline: 0; }
  [data-ui="v2"] .rv-firm-side { grid-template-columns: 1fr; gap: 2px; }
  [data-ui="v2"] .rv-firm-actions .spacer { display: none; }
  [data-ui="v2"] .rv-attachment-grid { grid-template-columns: 1fr; }
}
[data-ui="v2"] .rv-imgcanvas { max-width: 100%; border-radius: 6px; box-shadow: var(--paper-shadow); background: var(--paper); }
/* Kompaktní sekundární akce v hlavičce. */
[data-ui="v2"] .v2-backlink {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; flex: 0 0 auto;
  border: 1px solid var(--line-2); border-radius: var(--r-pill); cursor: pointer;
  background: var(--surface-2); color: var(--ink-2);
  font: 600 12px/1.3 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-backlink:hover { background: var(--bg-2); color: var(--ink); }
[data-ui="v2"] .v2-backlink .icon { font-size: 15px; }
[data-ui="v2"] .v2-feedback-head {
  position: relative; isolation: isolate; overflow: hidden; min-height: 40px; padding-inline: 14px;
  border-color: #df72a5; background: linear-gradient(115deg, #fff0f7 0%, #fff8fc 46%, #ecfff7 100%);
  color: #862553; font-weight: 750; box-shadow: 0 5px 18px rgba(196,54,121,.15);
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-feedback-head > * { position: relative; z-index: 1; }
[data-ui="v2"] .v2-feedback-head::before {
  content: ''; position: absolute; z-index: 0; top: -70%; bottom: -70%; left: -55%; width: 42%;
  transform: skewX(-22deg); pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.86), rgba(123,224,185,.38), transparent);
  animation: feedback-wave 5.2s cubic-bezier(.45,0,.2,1) infinite;
}
[data-ui="v2"] .v2-feedback-head:hover {
  transform: translateY(-1px); border-color: #cf4d8b;
  background: linear-gradient(115deg, #ffe5f1 0%, #fff5fa 45%, #dcfff0 100%);
  color: #742047; box-shadow: 0 7px 22px rgba(196,54,121,.24);
}
[data-ui="v2"] .v2-feedback-head .icon { color: #c63279; }
[data-ui="v2"] .v2-feedback-head .pf-draft-dot {
  display: none; width: 8px; height: 8px; margin-left: 1px; border: 2px solid #fff; border-radius: 50%;
  background: #15976d; box-shadow: 0 0 0 2px rgba(21,151,109,.22);
}
[data-ui="v2"] .v2-feedback-head.has-draft .pf-draft-dot { display: block; }
[data-ui="v2"] .v2-feedback-head.has-draft { box-shadow: 0 0 0 2px rgba(21,151,109,.16), 0 7px 22px rgba(196,54,121,.18); }
[data-ui="v2"][data-theme="dark"] .v2-feedback-head {
  border-color: #b85484; background: linear-gradient(115deg, #44213a, #342631 48%, #173b31); color: #ffd9ea;
}
[data-ui="v2"][data-theme="dark"] .v2-feedback-head:hover { background: linear-gradient(115deg, #532443, #3c2936 48%, #174838); color: #fff; }
@keyframes feedback-wave {
  0%, 58% { left: -55%; opacity: 0; }
  63% { opacity: .9; }
  84% { left: 118%; opacity: .72; }
  100% { left: 118%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-feedback-head::before { animation: none; left: 24%; opacity: .35; }
}
@media (max-width: 1450px) {
  [data-ui="v2"] .v2-backlink { font-size: 0; gap: 0; padding: 6px; }
  [data-ui="v2"] .v2-backlink .icon { font-size: 17px; }
}
[data-ui="v2"] .v2-co-sect { border-top: 1px solid var(--line); margin-top: var(--sp-2); padding: var(--sp-3) var(--sp-4) 2px; }

/* ============================================================
   Nápověda
   ============================================================ */
[data-ui="v2"] .v2-help .hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
[data-ui="v2"] .v2-help .help-shell { display: grid; gap: var(--sp-4); }
/* :not(.help-hero) je součást opravy: pravidlo sekcí (0,4,0) poráželo
   vlastní styl hero dlaždice (0,3,0) — hero dostávalo padding 0 a
   overflow hidden, proto vypadalo oříznuté. */
[data-ui="v2"] .v2-help .card.hp:not(.help-hero) {
  padding: 0; overflow: hidden; scroll-margin-top: calc(var(--sticky-top) + 14px);
  border-color: var(--line); transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
[data-ui="v2"] .v2-help .card.hp:not(.help-hero):hover { border-color: var(--line-2); box-shadow: var(--shadow); }
[data-ui="v2"] .v2-help .card.hp.is-open { border-color: var(--accent-line); box-shadow: var(--shadow); }
/* Hero není sticky: fixní navigaci nese levý sloupec témat. Sticky hero
   se překrývalo s aside a cíle skoků končily pod ním. */
[data-ui="v2"] .v2-help .help-hero {
  position: static;
  display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: var(--sp-6); align-items: center;
  padding: var(--sp-6); overflow: visible;
  background: linear-gradient(120deg, var(--surface) 0%, var(--info-soft) 54%, var(--accent-soft) 100%);
  border: 1px solid var(--accent-line); border-radius: var(--r-2xl); box-shadow: var(--shadow-lg);
}
[data-ui="v2"] .v2-help .help-hero-mark {
  width: 68px; height: 68px; display: grid; place-items: center;
  border: 1px solid var(--accent-line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-accent);
}
[data-ui="v2"] .v2-help .help-hero-mark img { width: 54px; height: 54px; }
[data-ui="v2"] .v2-help .help-hero-main { min-width: 0; }
[data-ui="v2"] .v2-help .sect { color: var(--ink); font: 700 17px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-help .help-hero .sect { color: var(--accent-text); font-size: 20px; }
[data-ui="v2"] .v2-help .muted { color: var(--ink-2); }
[data-ui="v2"] .v2-help .hp p,
[data-ui="v2"] .v2-help .hpul { font: 500 14.5px/1.65 var(--font-sans); }
[data-ui="v2"] .v2-help .hp p { margin: var(--sp-3) 0; }
[data-ui="v2"] .v2-help .hp h4 { margin: var(--sp-7) 0 var(--sp-2); font: 700 14.5px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-help .hpul { margin: var(--sp-3) 0; padding-left: 22px; }
[data-ui="v2"] .v2-help .hpul li { margin: var(--sp-2) 0; }
/* Odkazy mezi sekcemi jsou v help.html <a onclick="hpGo('…')"> bez href.
   Bez href je prohlížeč nevykreslí jako odkaz — vzhled, kurzor i focus dodáváme tady;
   ovladatelnost z klávesnice řeší initV2Help (role=link + tabindex + Enter/mezerník). */
[data-ui="v2"] .v2-help .hp a[data-help-target] {
  color: var(--accent-text); cursor: pointer; border-radius: var(--r-sm);
  text-decoration: underline; text-decoration-color: var(--accent-line); text-underline-offset: 2px;
}
[data-ui="v2"] .v2-help .hp a[data-help-target]:hover { text-decoration-color: var(--accent); }
[data-ui="v2"] .v2-help .hp a[data-help-target]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
[data-ui="v2"] .v2-help .help-hero-badges { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
/* Štítky hero: neprůhledný --surface místo alfa-bílé — v tmavém motivu dávala
   světlá pilulka s --ink-2 textem kontrast ~1,2:1 (audit P0). Hero gradient
   začíná od --surface, takže pilulka opticky nevyčnívá ani ve světlém motivu. */
[data-ui="v2"] .v2-help .help-hero-badges > span {
  display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px;
  border: 1px solid var(--line-2); border-radius: var(--r-pill); background: var(--surface);
  color: var(--ink-2); font-size: 11.5px; font-weight: 600;
}
[data-ui="v2"] .v2-help .help-hero-badges .icon { color: var(--accent-text); font-size: 15px; }
[data-ui="v2"] .v2-help .hpsearch { display: flex; align-items: center; gap: var(--sp-3); margin-top: var(--sp-3); }
[data-ui="v2"] .v2-help .hpsearch-field { position: relative; flex: 1; min-width: 220px; }
[data-ui="v2"] .v2-help .hpsearch-field::before {
  content: 'search'; position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  font-family: 'Material Symbols Rounded'; font-size: 19px; color: var(--ink-3); pointer-events: none;
}
[data-ui="v2"] .v2-help .hpsearch input {
  width: 100%; min-height: 44px; padding: 9px 13px 9px 42px;
  border: 1px solid var(--field-line); border-radius: var(--r-xl); background: var(--surface); color: var(--ink);
  box-shadow: var(--shadow); font: 500 14px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-help .hpsearch input:focus { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .v2-help .hpsearch-count { min-width: 138px; color: var(--ink-3); font-size: 12px; text-align: right; }
[data-ui="v2"] .v2-help .hpsearch-index {
  margin-top: var(--sp-3); padding: var(--sp-4); border: 1px solid var(--line);
  border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow);
}
[data-ui="v2"] .v2-help .hpsearch-index-head { display: flex; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-3); color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .v2-help .hp-hit-list { display: grid; gap: var(--sp-2); max-height: 160px; overflow: auto; }
[data-ui="v2"] .v2-help .hp-hit-link {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--sp-3); width: 100%; padding: 8px 10px;
  border: 1px solid transparent; border-radius: var(--r-md); cursor: pointer;
  background: var(--surface-2); color: var(--ink); text-align: left; font: 500 12px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-help .hp-hit-link:hover,
[data-ui="v2"] .v2-help .hp-hit-link.on { border-color: var(--accent); background: var(--accent-soft); }
[data-ui="v2"] .v2-help .hp-hit-link b { color: var(--accent-text); }
[data-ui="v2"] .v2-help .hp-hit-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-help-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--sp-5); align-items: start; }
[data-ui="v2"] .v2-help-aside {
  position: sticky; top: var(--sticky-top); min-width: 0; padding: var(--sp-4); overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow);
}
[data-ui="v2"] .v2-help-aside-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
[data-ui="v2"] .v2-help-aside-head > span:first-child { display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-help-aside-head small { color: var(--accent-text); font: 700 9.5px/1.2 var(--font-sans); letter-spacing: .1em; }
[data-ui="v2"] .v2-help-aside-head b { font-size: 14px; }
[data-ui="v2"] .v2-help-aside > p { margin: var(--sp-2) 0 var(--sp-3); color: var(--ink-3); font-size: 11.5px; }
[data-ui="v2"] .v2-help-topic-count { min-width: 28px; height: 28px; display: grid; place-items: center; border-radius: var(--r-pill); background: var(--accent-soft); color: var(--accent-text); font: 700 12px/1 var(--font-sans); }
[data-ui="v2"] .v2-help .hpnav {
  display: flex; flex-direction: column; gap: 2px; max-height: calc(100vh - var(--sticky-top) - 176px); overflow: auto;
  margin: 0; padding: 2px 3px 2px 0; scrollbar-width: thin;
}
[data-ui="v2"] .v2-help .hpnav .v2-btn {
  justify-content: flex-start; width: 100%; min-height: 34px; padding: 6px 8px;
  border: 0; border-left: 2px solid transparent; border-radius: var(--r-sm); background: transparent;
  color: var(--ink-2); box-shadow: none; text-align: left; font-size: 12.5px;
}
[data-ui="v2"] .v2-help .hpnav .v2-btn .icon { flex: 0 0 18px; color: var(--ink-3); font-size: 17px; }
[data-ui="v2"] .v2-help .hpnav .v2-btn > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-help .hpnav .v2-btn:hover,
[data-ui="v2"] .v2-help .hpnav .v2-btn.on { border-left-color: var(--accent); background: var(--surface-2); color: var(--ink); }
[data-ui="v2"] .v2-help .hpnav .v2-btn.on { font-weight: 700; }
[data-ui="v2"] .v2-help .hpnav .v2-btn.on .icon { color: var(--accent-text); }
[data-ui="v2"] .v2-help-alltools { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--line); }
[data-ui="v2"] .v2-help-alltools .v2-btn { justify-content: center; min-width: 0; padding-inline: 6px; font-size: 10.5px; }
[data-ui="v2"] .v2-help-main { display: flex; flex-direction: column; gap: var(--sp-3); min-width: 0; }
[data-ui="v2"] .v2-help .hp-collapse {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) 36px; align-items: center; gap: var(--sp-4);
  width: 100%; min-height: 74px; padding: 14px var(--sp-5); border: 0; cursor: pointer;
  background: transparent; color: var(--ink); text-align: left;
}
[data-ui="v2"] .v2-help .card.hp.is-open .hp-collapse { background: linear-gradient(90deg, var(--accent-soft), transparent 46%); }
[data-ui="v2"] .v2-help .hp-section-icon {
  width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line);
  border-radius: var(--r-lg); background: var(--surface-2); color: var(--accent-text); transition: transform var(--dur) var(--ease), background var(--dur) var(--ease);
}
[data-ui="v2"] .v2-help .hp-section-icon .icon { font-size: 21px; }
[data-ui="v2"] .v2-help .hp-collapse:hover .hp-section-icon { transform: translateY(-2px); background: var(--accent-soft); }
[data-ui="v2"] .v2-help .hp-section-title { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
[data-ui="v2"] .v2-help .hp-section-title .sect { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-help .hp-section-title small { color: var(--ink-3); font: 500 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-help .hp-collapse-chevron { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-2); border-radius: var(--r-md); color: var(--accent-text); background: var(--surface); transition: transform var(--dur) var(--ease), background var(--dur) var(--ease); }
[data-ui="v2"] .v2-help .hp-collapse[aria-expanded="false"] .hp-collapse-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .v2-help .hp-section-body { margin: 0; padding: 2px var(--sp-6) var(--sp-6); border-top: 1px solid var(--line); }
[data-ui="v2"] .v2-help .hp-section-body[hidden] { display: none; }
[data-ui="v2"] .v2-help .hpsteps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); margin: var(--sp-5) 0; }
[data-ui="v2"] .v2-help .hpsteps > div { display: flex; gap: var(--sp-4); padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface-2); transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease); }
[data-ui="v2"] .v2-help .hpsteps > div:hover { transform: translateY(-2px); border-color: var(--accent-line); }
[data-ui="v2"] .v2-help .hpn { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; border-radius: var(--r-md); background: var(--accent-fill); color: var(--on-accent); font-weight: 700; }
[data-ui="v2"] .v2-help .help-glossary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
[data-ui="v2"] .v2-help .glossrow { padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2); }
[data-ui="v2"] .v2-help .note { margin: var(--sp-5) 0; padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-ui="v2"] .v2-help .note.ok { background: var(--ok-soft); border-color: var(--ok); }
[data-ui="v2"] .v2-help .note.warn { background: var(--warn-soft); border-color: var(--warn); }
[data-ui="v2"] .v2-help .badge { display: inline-flex; padding: 2px 7px; border-radius: var(--r-pill); background: var(--bg-2); color: var(--ink-2); font-size: 11px; }
/* Tlumený štítek „jen pro správce". */
[data-ui="v2"] .v2-help .badge.b-mut { background: var(--bg-2); color: var(--ink-2); font-size: 12px; font-weight: 600; vertical-align: middle; }
/* Klávesové zkratky v textu nápovědy (sekce Kontrola dokladu). */
[data-ui="v2"] .v2-help .hp kbd {
  display: inline-block; padding: 1px 6px; border: 1px solid var(--line-2); border-bottom-width: 2px;
  border-radius: var(--r-sm); background: var(--surface-2); color: var(--ink); font: 600 12px/1.4 var(--font-mono);
}
[data-ui="v2"] .v2-help .hpcontact { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); margin-top: var(--sp-5); }
[data-ui="v2"] .v2-help .hpcontact > div { padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2); }
[data-ui="v2"] .v2-help .hpcontact span,
[data-ui="v2"] .v2-help .hpcontact b { display: block; }
[data-ui="v2"] .v2-help .hpcontact span { color: var(--ink-3); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
[data-ui="v2"] .v2-help mark.hpmark { padding: 0 .12em; border-radius: 3px; background: var(--warn-soft); color: var(--ink); box-shadow: 0 0 0 1px var(--warn); }
[data-ui="v2"] .v2-help mark.hpmark-active { background: var(--warn); color: var(--surface); box-shadow: 0 0 0 4px var(--warn-soft); }
[data-ui="v2"] .v2-help .hpflash { animation: v2-help-flash 1.4s ease-out; }
@keyframes v2-help-flash { 0%, 35% { box-shadow: 0 0 0 5px var(--accent-line), var(--shadow-lg); } 100% { box-shadow: var(--shadow); } }
@media (max-width: 1100px) {
  [data-ui="v2"] .v2-help-layout { grid-template-columns: 190px minmax(0, 1fr); }
  [data-ui="v2"] .v2-help .hpsteps { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  [data-ui="v2"] .v2-help .help-hero { grid-template-columns: 48px minmax(0, 1fr); }
  [data-ui="v2"] .v2-help .help-hero-mark { width: 48px; height: 48px; }
  [data-ui="v2"] .v2-help .help-hero-mark img { width: 40px; height: 40px; }
  [data-ui="v2"] .v2-help .hpsearch { flex-wrap: wrap; }
  [data-ui="v2"] .v2-help .hpsearch-count { width: 100%; text-align: left; }
  [data-ui="v2"] .v2-help-layout { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-help-aside { position: relative; top: auto; }
  [data-ui="v2"] .v2-help .hpnav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; }
  [data-ui="v2"] .v2-help-alltools { display: flex; }
  [data-ui="v2"] .v2-help .help-glossary,
  [data-ui="v2"] .v2-help .hpcontact { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  [data-ui="v2"] .v2-help .help-hero { padding: var(--sp-4); }
  [data-ui="v2"] .v2-help .help-hero-badges { display: none; }
  [data-ui="v2"] .v2-help .hpnav { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-help .hp-collapse { grid-template-columns: 38px minmax(0, 1fr) 32px; gap: var(--sp-3); padding-inline: var(--sp-4); }
  [data-ui="v2"] .v2-help .hp-section-icon { width: 38px; height: 38px; }
  [data-ui="v2"] .v2-help .hp-section-title small { display: none; }
  [data-ui="v2"] .v2-help .hp-section-body { padding-inline: var(--sp-4); }
}

/* ============================================================
   M4 — Zpracované doklady. Scopováno pod [data-ui="v2"].
   ============================================================ */

[data-ui="v2"] .v2-docs-filters {
  display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
}
[data-ui="v2"] .v2-gsearch.docs-search { max-width: 380px; flex: 1 1 260px; cursor: text; }
[data-ui="v2"] .v2-mail-toolbar .mail-search { max-width: 260px; flex-basis: 220px; }
[data-ui="v2"] .v2-mail-quick { flex: 0 1 auto; }
[data-ui="v2"] .v2-mail-quick .v2-seg-btn { padding-inline: var(--sp-4); white-space: nowrap; }
[data-ui="v2"] .v2-list-count {
  color: var(--ink-3); font: 500 12px/1.35 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-list-count.warn { color: var(--warn); white-space: normal; }
[data-ui="v2"] .v2-gsearch.docs-search input {
  flex: 1; min-width: 0; border: 0; background: transparent; outline: none;
  font: 400 13.5px/1.3 var(--font-sans); color: var(--ink);
}
[data-ui="v2"] .v2-gsearch.docs-search input::placeholder { color: var(--ink-3); }

[data-ui="v2"] .v2-seg {
  display: inline-flex; align-items: center; min-height: 34px; padding: 3px; gap: 2px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-seg-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 26px;
  padding: 4px var(--sp-5); border: 0; border-radius: var(--r-sm); cursor: pointer;
  background: transparent; color: var(--ink-2);
  font: 600 12.5px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-seg-btn:hover { color: var(--ink); }
/* Aktivni typ musi byt videt na prvni pohled — plna akcentni vypln.
   :hover je nutny, obecne .v2-seg-btn:hover by jinak dalo tmavy text na akcent. */
[data-ui="v2"] .v2-seg-btn.on { background: var(--accent-fill); color: var(--on-accent); font-weight: 700; box-shadow: var(--shadow); }
[data-ui="v2"] .v2-seg-btn.on:hover { color: var(--on-accent); }
[data-ui="v2"] .v2-seg-badge {
  display: inline-block; margin-left: 6px; padding: 0 6px;
  border-radius: var(--r-pill); background: var(--accent-fill); color: var(--on-accent);
  font: 700 10px/16px var(--font-sans);
}
[data-ui="v2"] .v2-btn.on { border-color: var(--accent-line); background: var(--accent-soft); color: var(--accent-text); }
[data-ui="v2"] .v2-docs-month {
  padding: 8px var(--sp-4); border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink); font: 500 12.5px/1.3 var(--font-sans);
}
/* Konec lišty filtrů: dočasná hláška + Reset. margin-left:auto drží Reset na
   stálém místě vpravo i ve chvíli, kdy tam žádná hláška není. */
[data-ui="v2"] .v2-docs-filters.docs-only .v2-docs-fend {
  margin-left: auto; display: flex; align-items: center; gap: var(--sp-4); min-width: 0;
}
[data-ui="v2"] .v2-docs-filters.docs-only .v2-list-count { white-space: normal; max-width: 40ch; }
/* .v2-btn je inline-flex, což by přebilo výchozí [hidden] { display:none } */
[data-ui="v2"] .v2-docs-filters.docs-only .v2-btn[hidden] { display: none; }
/* Výběr řazení je jen pro řádkové karty — nad 1024 px řadí záhlaví tabulky. */
[data-ui="v2"] .v2-docs-filters.docs-only .v2-docs-sortbox { display: none; }
[data-ui="v2"] .v2-docs-filters.docs-only .v2-docs-sortbox .v2-input {
  padding: 7px var(--sp-4); font-size: 12.5px;
}

/* Tabulka: JEDNA scroll plocha — svisle roluje stránka, tabulka nemá vlastní
   scrollport. Díky tomu se lepivá hlavička zastaví pod hlavičkou aplikace. */
[data-ui="v2"] .v2-docs-scroll { overflow: visible; }
/* Karta dokladů má „clip", ne „hidden": clip zaobluje rohy stejně, ale
   nevytváří scroll kontejner, takže lepivá hlavička uvnitř dál funguje. */
[data-ui="v2"] .v2-card.v2-docs-card { overflow: clip; }
[data-ui="v2"] .v2-docs { min-width: 0; }
/* Stopy: výběr · Doklad (identita: typ + číslo/stav + soubor) · dodavatel ·
   vytvořil · vytvořeno · zdroj · akce. Poměry jsou pružné: doklad už si
   nebere skoro dvojnásobek prostoru, zatímco celé jméno autora má vlastní
   čitelnou stopu. Akce mají jednu společnou pevnou stopu, aby řádek se třemi
   tlačítky neposouval ostatní sloupce proti řádkům s jedinou akcí. */
[data-ui="v2"] .v2-docs-head,
[data-ui="v2"] .v2-docs-filterrow,
[data-ui="v2"] .v2-docs-row {
  display: grid;
  grid-template-columns:
    36px minmax(170px, 1fr) minmax(190px, 1.25fr)
    minmax(145px, .85fr) minmax(132px, .78fr) minmax(118px, .72fr) 184px;
  gap: var(--sp-4); align-items: center;
  padding: 9px var(--sp-7);
  box-sizing: border-box; min-width: 0;
}
[data-ui="v2"] .v2-docs[data-density="comfortable"] .v2-docs-row { padding: var(--sp-6) var(--sp-7); }
/* Kompaktni rezim ma byt OPRAVDU kompaktni (~30 px na radek): druha linka
   identity (soubor) se schova, soubor zustava v title bunky. */
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row { padding-top: 4px; padding-bottom: 4px; font-size: 13px; line-height: 1.3; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row .v2-link { font-size: 13px; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row .col-doc .l2 { display: none; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row .v2-btn.xsmall { padding-top: 2px; padding-bottom: 2px; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row .v2-btn.xsmall .icon { font-size: 15px; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-row .v2-chip { padding-top: 1px; padding-bottom: 1px; }
[data-ui="v2"] .v2-docs[data-density="compact"] .v2-docs-head { padding-top: 6px; padding-bottom: 6px; }
[data-ui="v2"] .v2-docs-head {
  background: var(--surface-2); border-bottom: 1px solid var(--line);
  /* lepivá vůči STRÁNCE, ne vůči kartě — zastaví se těsně pod hlavičkou */
  position: sticky; top: var(--content-sticky-top); z-index: 2;
}
[data-ui="v2"] .v2-docs-th {
  /* 12 px verzálky (audit UI 2026-08: účetní popisky nejmíň 12 px) */
  font: 700 12px/1.2 var(--font-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-2);
  display: flex; align-items: center; gap: 4px; min-width: 0;
}
[data-ui="v2"] .v2-docs-th.col-action { justify-content: flex-end; }
[data-ui="v2"] .v2-docs-th[data-sort] { cursor: pointer; user-select: none; }
[data-ui="v2"] .v2-docs-th[data-sort]:hover { color: var(--ink); }
[data-ui="v2"] .v2-docs-th .sortmark { opacity: .35; font-size: 11px; }
[data-ui="v2"] .v2-docs-th .sortmark.on { opacity: 1; color: var(--accent-text); }
[data-ui="v2"] .v2-docs-filterrow {
  background: var(--surface-2); border-bottom: 1px solid var(--line); padding-top: 0; padding-bottom: var(--sp-3);
  align-items: start;
}
/* Buňka „Doklad" nese dva filtry pod sebou (číslo dokladu + soubor). */
[data-ui="v2"] .v2-docs-fc { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
[data-ui="v2"] .v2-docs-fc input {
  width: 100%; padding: 4px var(--sp-3);
  border: 1px solid var(--field-line); border-radius: var(--r-xs);
  background: var(--surface); color: var(--ink);
  font: 400 12px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-docs-row {
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  /* hodnoty v řádku nejmíň 14 px (kompaktní 13 px) — audit UI 2026-08 */
  font: 400 14px/1.4 var(--font-sans);
  transition: background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-docs-row:last-child { border-bottom: 0; }
[data-ui="v2"] .v2-docs-row:hover { background: var(--surface-2); }
[data-ui="v2"] .v2-docs-row.sel { background: var(--accent-soft); }
/* Řádek předaný z hledání v záhlaví — bliknout a nechat doznít. */
[data-ui="v2"] .v2-docs-row.focus { animation: v2-docsfocus 2s var(--ease); }
@keyframes v2-docsfocus { 0%, 60% { background: var(--info-soft); } 100% { background: transparent; } }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-docs-row.focus { animation: none; background: var(--info-soft); }
}
[data-ui="v2"] .v2-docs-row > div { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-docs-row input[type="checkbox"],
[data-ui="v2"] .v2-docs-head input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-chip {
  /* 12 px (dřív 11) — minimum pro účetně relevantní popisky, audit UI 2026-08 */
  display: inline-block; padding: 2px 7px; border-radius: var(--r-xs);
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
}
[data-ui="v2"] .v2-chip.tone-accent { background: var(--accent-soft); color: var(--accent-text); }
[data-ui="v2"] .v2-chip.tone-info   { background: var(--info-soft);   color: var(--info); }
[data-ui="v2"] .v2-chip.tone-warn   { background: var(--warn-soft);   color: var(--warn); }
[data-ui="v2"] .v2-chip.tone-ok     { background: var(--ok-soft);     color: var(--ok); }
[data-ui="v2"] .v2-chip.tone-bad    { background: var(--bad-soft);    color: var(--bad); }
[data-ui="v2"] .v2-chip.tone-mut    { background: var(--bg-2);        color: var(--ink-2); }
[data-ui="v2"] .v2-link {
  border: 0; background: transparent; padding: 0; cursor: pointer;
  font-family: var(--font-mono); font-size: 12.5px; font-weight: 600;
  color: var(--accent-text); text-align: left; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] .v2-link:hover { text-decoration: underline; }
[data-ui="v2"] .v2-link[disabled] { color: var(--ink); cursor: default; text-decoration: none; }
[data-ui="v2"] .v2-docs-row .col-user { font-size: 13px; }
/* Datum je hodnota — dědí velikost řádku (14 px / kompaktní 13 px). */
[data-ui="v2"] .v2-docs-row .col-created { font-variant-numeric: tabular-nums; color: var(--ink-2); }
[data-ui="v2"] .v2-link { font-variant-numeric: tabular-nums; }
/* Číslo dokladu je hodnota, ne popisek — 14 px (kompaktní 13 px). */
[data-ui="v2"] .v2-docs-row .v2-link { font-size: 14px; }
/* Sloučená identita dokladu: linka 1 = typ + číslo (nebo stav u čekajících),
   linka 2 = soubor · uživatel (uživatel jen tam, kde nemá vlastní sloupec). */
[data-ui="v2"] .v2-docs-row .col-doc {
  display: flex; flex-direction: column; gap: 2px;
  min-width: 0; overflow: hidden; white-space: normal;
}
[data-ui="v2"] .v2-docs-row .col-doc .l1 {
  display: flex; align-items: center; gap: var(--sp-3); min-width: 0; overflow: hidden;
}
[data-ui="v2"] .v2-docs-row .col-doc .l1 > .v2-chip,
[data-ui="v2"] .v2-docs-row .col-doc .l1 > .v2-pill { flex: 0 0 auto; }
[data-ui="v2"] .v2-docs-row .col-doc .l2 {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px;
}
[data-ui="v2"] .v2-docs-draft-owner {
  display: inline-flex; align-items: center; gap: 3px; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font: 500 12px/1.35 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-docs-row .col-action {
  display: flex; gap: 4px; align-items: center; justify-content: flex-end; overflow: visible;
}
[data-ui="v2"] .v2-docs-row .col-action .v2-btn.xsmall {
  min-height: 30px; border-radius: var(--r-sm);
}
[data-ui="v2"] .v2-docs-skeleton { padding: var(--sp-5) var(--sp-7); }
[data-ui="v2"] .v2-docs-skeleton .sk-row {
  height: 18px; margin: var(--sp-4) 0; border-radius: var(--r-xs);
  background: linear-gradient(90deg, var(--bg-2), var(--surface-2), var(--bg-2));
  background-size: 200% 100%; animation: v2-sk 1.2s linear infinite;
}
@keyframes v2-sk { from { background-position: 200% 0; } to { background-position: -200% 0; } }

[data-ui="v2"] .v2-pager {
  display: flex; align-items: center; justify-content: center; gap: var(--sp-5);
  padding: var(--sp-4) 0; flex-wrap: wrap;
}
/* Počet výsledků má stálé místo v patičce vedle stránkování (dřív se pral
   s dočasnými hláškami uprostřed lišty filtrů). */
[data-ui="v2"] .v2-pager-count { color: var(--ink-3); font: 500 12px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-pager-nav { display: flex; align-items: center; gap: var(--sp-5); }

/* --- Doklady: pásma šířky ------------------------------------------------
   >1280   plná tabulka (7 stop)
   1024–1279 prioritizované sloupce — zdroj a uživatel do druhé linky, u data
             zůstane jen den
   ≤1023   řádkové karty; řazení přebírá výběr v liště filtrů
   ------------------------------------------------------------------------ */
@media (min-width: 1280px) {
  /* nad 1280 má „Vytvořil" vlastní sloupec — v druhé lince by byl dvakrát */
  [data-ui="v2"] .v2-docs-row .col-doc .l2 .u { display: none; }
}
@media (max-width: 1279px) {
  [data-ui="v2"] .v2-docs-head,
  [data-ui="v2"] .v2-docs-filterrow,
  [data-ui="v2"] .v2-docs-row {
    grid-template-columns:
      36px minmax(170px, 1fr) minmax(180px, 1.2fr) minmax(112px, .72fr) 184px;
  }
  [data-ui="v2"] .v2-docs .col-user,
  [data-ui="v2"] .v2-docs .col-source { display: none; }
  [data-ui="v2"] .v2-docs-row .col-created .tm { display: none; }
}
@media (max-width: 1023px) {
  [data-ui="v2"] .v2-docs-filters.docs-only .v2-docs-sortbox { display: inline-flex; align-items: center; }
  [data-ui="v2"] .v2-docs-row {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    grid-template-areas:
      'chk doc created'
      '.   firm action';
    align-items: start; row-gap: var(--sp-3);
  }
  [data-ui="v2"] .v2-docs-row .col-check   { grid-area: chk; }
  [data-ui="v2"] .v2-docs-row .col-doc     { grid-area: doc; }
  [data-ui="v2"] .v2-docs-row .col-created { grid-area: created; text-align: right; }
  [data-ui="v2"] .v2-docs-row .col-firm    { grid-area: firm; }
  [data-ui="v2"] .v2-docs-row .col-action  { grid-area: action; }
  /* Názvy sloupců zmizely — zůstane pojmenovaný hromadný výběr. Na kartovém
     breakpointu už hlavička není sticky, takže nevytváří prázdný 36px pruh. */
  [data-ui="v2"] .v2-docs-head {
    display: flex; align-items: center; gap: var(--sp-4);
    position: static; top: auto; z-index: auto;
  }
  [data-ui="v2"] .v2-docs-head .v2-docs-th:not(.col-check) { display: none; }
  [data-ui="v2"] .v2-docs-head .col-check { display: flex; align-items: center; gap: var(--sp-3); width: auto; }
  [data-ui="v2"] .v2-docs-head .col-check::after {
    content: "Označit zobrazené"; font: 600 12.5px/1.3 var(--font-sans); color: var(--ink-2);
  }
  [data-ui="v2"] .v2-docs-filterrow {
    grid-template-columns: 1fr; grid-template-areas: none; row-gap: var(--sp-3);
  }
  [data-ui="v2"] .v2-docs-filterrow .v2-docs-fc:empty { display: none; }
}
@media (max-width: 767px) {
  /* Jeden sloupec: akce dostanou vlastní pás, ať se tlačítka neořezávají. */
  [data-ui="v2"] .v2-docs-row {
    grid-template-columns: 24px minmax(0, 1fr);
    grid-template-areas:
      'chk doc'
      '.   created'
      '.   firm'
      '.   action';
  }
  [data-ui="v2"] .v2-docs-row .col-created { text-align: left; }
  [data-ui="v2"] .v2-docs-row .col-action { justify-content: flex-start; flex-wrap: wrap; }
}

/* Modal náhledu uloženého dokladu */
[data-ui="v2"] .v2-modal {
  position: fixed; inset: 0; z-index: 80;
  display: flex; align-items: center; justify-content: center;
  background: var(--scrim); padding: var(--sp-8);
}
[data-ui="v2"] .v2-modal-card {
  width: min(1500px, 96vw); height: min(90vh, 1000px);
  display: flex; flex-direction: column;
  background: var(--surface); border-radius: var(--r-2xl);
  box-shadow: var(--shadow-pop); overflow: hidden;
}
[data-ui="v2"] .v2-modal-head {
  display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-5) var(--sp-7);
  border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-modal-head b { font: 600 14px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-modal-head .spacer { flex: 1; }
[data-ui="v2"] .v2-modal-body { flex: 1; display: flex; min-height: 0; }
[data-ui="v2"] .v2-docprev-doc {
  flex: 1; min-width: 0; overflow: auto; padding: var(--sp-7);
  background: var(--bg-2); text-align: center;
}
[data-ui="v2"] .v2-docprev-page {
  display: block; margin: 0 auto var(--sp-5); border-radius: 6px;
  box-shadow: var(--paper-shadow); background: var(--paper); max-width: 100%;
}
[data-ui="v2"] .v2-docprev-frame { width: 100%; height: 100%; border: 0; background: var(--paper); }
[data-ui="v2"] .v2-docprev-imgwrap img { max-width: 100%; border-radius: 6px; box-shadow: 0 2px 10px rgba(25,29,40,.18); }
[data-ui="v2"] .v2-docprev-side {
  width: 330px; flex: 0 0 auto; overflow: auto;
  padding: var(--sp-7); border-left: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-docprev-side .t-eyebrow.mt { margin-top: var(--sp-5); }
[data-ui="v2"] .v2-pvrow {
  display: flex; gap: var(--sp-4); align-items: baseline;
  padding: 3px 0; font: 400 12.5px/1.45 var(--font-sans);
}
[data-ui="v2"] .v2-pvrow .k { flex: 0 0 118px; color: var(--ink-3); }
[data-ui="v2"] .v2-pvrow .v { flex: 1; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
[data-ui="v2"] .v2-pvvat { margin-top: var(--sp-2); font: 400 12px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-pvvat .hd, [data-ui="v2"] .v2-pvvat .rw {
  /* minmax(0,…) je součást opravy zarovnání: holé 1fr má minimum min-content,
     takže dlouhá částka sloupec rozšíří a znovu ho rozejde se záhlavím */
  display: grid; grid-template-columns: 54px minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--sp-3); padding: 3px 0; align-items: baseline;
}
[data-ui="v2"] .v2-pvvat .hd { color: var(--ink-3); font-weight: 700; border-bottom: 1px solid var(--line); }
[data-ui="v2"] .v2-pvvat .hd > span:not(:first-child),
[data-ui="v2"] .v2-pvvat .rw > span:not(:first-child) { text-align: right; }
[data-ui="v2"] .v2-pvtotal {
  margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line);
  display: flex; justify-content: space-between; align-items: baseline;
  font: 400 13px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-pvtotal b { font: 700 16px/1.3 var(--font-sans); color: var(--ink); }
[data-ui="v2"] body.v2-modal-open { overflow: hidden; }

@media (max-width: 1100px) {
  [data-ui="v2"] .v2-modal-body { flex-direction: column; }
  [data-ui="v2"] .v2-docprev-side { width: auto; border-left: 0; border-top: 1px solid var(--line); max-height: 40%; }
}

/* ============================================================
   M5 — E-mailová násypka. Scopováno pod [data-ui="v2"].
   ============================================================ */

[data-ui="v2"] .v2-select {
  padding: 8px var(--sp-4); border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink);
  font: 500 12.5px/1.3 var(--font-sans); max-width: 200px;
}

/* Řádek zprávy */
[data-ui="v2"] .v2-mail-list-card { overflow: clip; }
[data-ui="v2"] .v2-mailrow-wrap { border-bottom: 1px solid var(--line); }
[data-ui="v2"] .v2-mailrow-wrap:last-child { border-bottom: 0; }
[data-ui="v2"] .v2-mailrow-wrap.sel { background: var(--accent-soft); }
[data-ui="v2"] .v2-mailrow-wrap.focus { animation: v2-mailfocus 2s var(--ease); }
@keyframes v2-mailfocus { 0%, 60% { background: var(--info-soft); } 100% { background: transparent; } }
/* Radek, zahlavi i filtry sdili JEDNY stopy — proto sedi sloupec pod
   sloupcem. Posledni stopa ma strop 360px (auto by kazdy radek pocital
   jinak a zahlavi by se s radky rozjelo). Poradi: vyber / stav-dlazdice /
   odesilatel / predmet / prilohy / prijato / stav+akce. */
[data-ui="v2"] .v2-mailrow,
[data-ui="v2"] .v2-mail-head,
[data-ui="v2"] .v2-mail-filterrow {
  display: grid;
  grid-template-columns: 24px 40px minmax(150px, 220px) minmax(180px, 1fr) 118px 118px minmax(280px, 360px);
  gap: var(--sp-3); align-items: center;
  padding: 12px var(--sp-5);
}
[data-ui="v2"] .v2-mail-head {
  padding-top: var(--sp-4); padding-bottom: var(--sp-4);
  background: var(--surface-2); border-bottom: 1px solid var(--line);
  position: sticky; top: var(--content-sticky-top); z-index: 3;
}
/* Záhlaví tabulky je účetní popisek → minimum 12 px (audit UI 2026-08). */
[data-ui="v2"] .v2-mail-head .th {
  font: 700 12px/1.2 var(--font-sans); letter-spacing: .05em;
  text-transform: uppercase; color: var(--ink-2);
}
[data-ui="v2"] .v2-mail-head .col-end {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-4); min-width: 0;
}
[data-ui="v2"] .v2-mail-head .head-tools {
  display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .v2-mail-head .head-tools .v2-list-count {
  flex: 0 1 auto;
}
[data-ui="v2"] .v2-mail-head input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-mail-filterrow {
  padding-top: 0; padding-bottom: var(--sp-3);
  background: var(--surface-2); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-mail-filterrow input {
  width: 100%; padding: 4px var(--sp-3);
  border: 1px solid var(--field-line); border-radius: var(--r-xs);
  background: var(--surface); color: var(--ink);
  font: 400 12px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mailrow .col-end {
  /* Stav vlevo pod titulkem "STAV A AKCE", akce doprava. Driv bylo vse
     zarovnane doprava, pod titulkem zela dira a sloupec vypadal posunuty
     vuci zahlavi (opakovana stiznost zadavatele). Stopy mrizky jsou u
     zahlavi i radku stejne (merene) — rozdil delalo tohle zarovnani. */
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-3) var(--sp-4); flex-wrap: wrap; min-width: 0;
}
[data-ui="v2"] .v2-mailrow > span { min-width: 0; }
[data-ui="v2"] .v2-mailrow input[type="checkbox"] { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-mail-tile {
  width: 30px; height: 30px; border-radius: var(--r-md);
  display: grid; place-items: center;
}
[data-ui="v2"] .v2-mail-tile .icon { font-size: 18px; }
[data-ui="v2"] .v2-mail-tile.tone-ok   { background: var(--ok-soft);   color: var(--ok); }
[data-ui="v2"] .v2-mail-tile.tone-warn { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .v2-mail-tile.tone-info { background: var(--info-soft); color: var(--info); }
[data-ui="v2"] .v2-mail-tile.tone-mut  { background: var(--bg-2);      color: var(--ink-2); }
/* Stav „Nepodařilo se zpracovat" je chyba, ne varování (audit 18. 8. 2026). */
[data-ui="v2"] .v2-mail-tile.tone-bad  { background: var(--bad-soft);  color: var(--bad); }
[data-ui="v2"] .v2-mailrow .col-from,
[data-ui="v2"] .v2-mailrow .col-subj { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
[data-ui="v2"] .v2-mailrow .col-atts { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
[data-ui="v2"] .v2-mailrow .col-from b,
[data-ui="v2"] .v2-mailrow .col-subj b {
  font: 600 13.5px/1.35 var(--font-sans);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Druhý řádek buňky nese adresu a důvod zastavení — 12 px minimum. */
[data-ui="v2"] .v2-mailrow .col-from small,
[data-ui="v2"] .v2-mailrow .col-subj small {
  font: 400 12px/1.4 var(--font-sans); color: var(--ink-3);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-mailrow .col-subj small.reason { color: var(--warn); }
[data-ui="v2"] .v2-mailrow .col-when { font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-ui="v2"] .v2-mailrow .col-state { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
[data-ui="v2"] .v2-mailrow .col-state small { flex-basis: 100%; }
[data-ui="v2"] .v2-mailrow .col-act {
  display: flex; align-items: center; gap: var(--sp-3);
  justify-content: flex-end; flex-wrap: wrap;
}
[data-ui="v2"] .v2-mailrow .col-act .v2-btn { white-space: nowrap; }
[data-ui="v2"] .v2-mail-forward-wrap { display: inline-flex; }
[data-ui="v2"] .v2-mail-forward-wrap:has(.v2-btn:disabled) { cursor: not-allowed; }
[data-ui="v2"] .v2-btn.ok { border-color: transparent; background: var(--ok); color: var(--on-ok); }
[data-ui="v2"] .v2-btn.ok:hover { background: var(--ok); opacity: .9; }

/* Podřádek příloh */
[data-ui="v2"] .v2-mail-atts {
  margin: 0 var(--sp-7) var(--sp-5) 62px;
  max-width: 65%;
  padding: var(--sp-4) var(--sp-5);
  border: 1px solid var(--line); border-left: 3px solid var(--ink-3);
  border-radius: var(--r-md); background: var(--surface-2);
  display: flex; flex-direction: column; gap: var(--sp-3);
}
[data-ui="v2"] .v2-mail-atts.tone-ok   { border-left-color: var(--ok); }
[data-ui="v2"] .v2-mail-atts.tone-warn { border-left-color: var(--warn); }
[data-ui="v2"] .v2-mail-atts.tone-info { border-left-color: var(--info); }
[data-ui="v2"] .v2-mail-atts.tone-mut  { border-left-color: var(--line-2); }
[data-ui="v2"] .v2-mail-atts.tone-bad  { border-left-color: var(--bad); }
/* Dlaždice příloh — pás zúžen na 65 %, jedna až dvě vedle sebe. */
[data-ui="v2"] .v2-mail-attgrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--sp-3);
}
[data-ui="v2"] .v2-mail-att {
  display: flex; flex-direction: column; gap: var(--sp-2);
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface); padding: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .v2-mail-att.picked {
  border-color: color-mix(in srgb, var(--ok) 58%, var(--line)); background: var(--ok-soft);
  box-shadow: inset 3px 0 0 var(--ok);
}
[data-ui="v2"] .v2-mail-att.off { opacity: .72; }
[data-ui="v2"] .v2-mail-att .head { display: flex; gap: var(--sp-3); align-items: flex-start; min-width: 0; }
[data-ui="v2"] .v2-mail-att .v2-pill.prio { align-self: flex-start; }
[data-ui="v2"] .v2-mail-att .pick { display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-mail-att .pick .why { line-height: 1.35; }
/* Panel „Nastavení násypky" — sbalitelná karta (ovCard). Dřív byla vždy
   rozbalená a sbalit šla jen nápověda uvnitř; dvojí zanoření zaniklo, takže
   otevřený panel ukazuje všechno, co k nastavení patří. */
[data-ui="v2"] .v2-rules .ov-card-pad {
  /* .ov-card-pad zarovnává na obsah — přepínač i chipbox musí přes celou šířku */
  align-items: stretch; padding-top: var(--sp-2);
}
[data-ui="v2"] .v2-rules .v2-switch { padding-block: var(--sp-3); }
/* Popisek pravidla je účetně relevantní drobný text → 12 px. */
[data-ui="v2"] .v2-rules .v2-switch .txt small { font-size: 12px; }
[data-ui="v2"] .v2-rules .ov-card-head .v2-pill { font-size: 11.5px; }
/* Stav automatického ukládání sedí nahoře v panelu, hned nad přepínači.
   Chybová hláška ze serveru („K této schránce nemáte přístup.") musí jít
   zalomit — sdílený .v2-autosave je jinak nowrap. */
[data-ui="v2"] .v2-mailset-state { display: flex; align-items: flex-start; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .v2-mailset-state .v2-autosave { white-space: normal; align-items: flex-start; }
[data-ui="v2"] .v2-mailset-state .v2-autosave .dot { margin-top: 4px; }

[data-ui="v2"] .v2-mail-hint {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  border: 1px solid var(--info); background: var(--info-soft);
  border-radius: var(--r-md); padding: var(--sp-3); font-size: 12.5px; line-height: 1.5;
}
[data-ui="v2"] .v2-mail-hint .icon { color: var(--info); font-size: 18px; flex: none; }
[data-ui="v2"] .v2-mail-att .ico .icon { font-size: 18px; color: var(--ink-3); }
/* Miniatura přílohy s ribbonem typu — tytéž dveře jako Zobrazit, hover = náhled. */
[data-ui="v2"] .v2-mail-att .attthumb {
  position: relative; width: 40px; height: 54px; flex: 0 0 auto;
  padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-xs);
  background: var(--bg-2); display: grid; place-items: center; cursor: pointer;
}
[data-ui="v2"] .v2-mail-att .attthumb:hover { border-color: var(--accent); }
[data-ui="v2"] .v2-mail-att .attthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
[data-ui="v2"] .v2-mail-att .attthumb .icon { font-size: 20px; color: var(--ink-3); }
[data-ui="v2"] .v2-mail-att .attthumb .rib {
  position: absolute; left: 0; right: 0; bottom: 0;
  font: 700 8px/1.4 var(--font-sans); letter-spacing: .05em; text-align: center;
  padding: 1px 0 2px; pointer-events: none;
}
[data-ui="v2"] .v2-mail-att .attthumb-ph { position: relative; width: 40px; height: 54px; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-xs); background: var(--bg-2); display: grid; place-items: center; }
[data-ui="v2"] .v2-mail-att .attthumb-ph .rib {
  position: absolute; left: 0; right: 0; bottom: 0;
  font: 700 8px/1.4 var(--font-sans); letter-spacing: .05em; text-align: center;
  padding: 1px 0 2px; pointer-events: none;
}
[data-ui="v2"] .v2-mail-att .attthumb .rib.pdf, [data-ui="v2"] .v2-mail-att .attthumb-ph .rib.pdf { background: var(--accent-fill); color: var(--on-accent); }
[data-ui="v2"] .v2-mail-att .attthumb .rib.isdoc, [data-ui="v2"] .v2-mail-att .attthumb-ph .rib.isdoc { background: var(--info); color: var(--on-ok); }
[data-ui="v2"] .v2-mail-att .attthumb .rib.img, [data-ui="v2"] .v2-mail-att .attthumb-ph .rib.img { background: var(--ok); color: var(--on-ok); }
[data-ui="v2"] .v2-mail-att .nm { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
[data-ui="v2"] .v2-mail-att .nm b {
  font: 600 13px/1.35 var(--font-sans);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-ui="v2"] .v2-mail-att .acts { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
[data-ui="v2"] .v2-mail-att .acts .v2-btn { flex: 0 1 auto; }
[data-ui="v2"] .v2-mail-pick {
  display: inline-flex; align-items: center; gap: var(--sp-3);
  font: 500 12.5px/1.3 var(--font-sans); cursor: pointer; white-space: nowrap;
}
[data-ui="v2"] .v2-mail-pick input { width: 17px; height: 17px; margin: 0; accent-color: var(--ok); }
[data-ui="v2"] .v2-mail-attnote { padding-top: var(--sp-2); border-top: 1px solid var(--line); }

/* Tělo e-mailu má vlastní responsivní scrollport. Uživatel jej může svisle
   zvětšit; výchozí plocha je výrazně větší než původních pevných 200 px,
   ale dlouhá zpráva stále neroztáhne celý seznam. */
[data-ui="v2"] .v2-mail-body {
  margin: 0 var(--sp-5) var(--sp-4); max-width: none;
  padding: var(--sp-4) var(--sp-5); border: 1px solid var(--info);
  border-radius: var(--r-md); background: var(--info-soft);
}
[data-ui="v2"] .v2-mail-body-head {
  display: flex; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-3);
  color: var(--ink-2); font: 500 11.5px/1.35 var(--font-sans);
}
[data-ui="v2"] .v2-mail-body-head .icon { color: var(--info); font-size: 18px; }
[data-ui="v2"] .v2-mail-body-head b { color: var(--ink); font-weight: 650; }
[data-ui="v2"] .v2-mail-body-head span:last-child { margin-left: auto; }
[data-ui="v2"] .v2-mail-body-text {
  box-sizing: border-box; width: 100%; height: clamp(280px, 44vh, 500px);
  min-height: 220px; max-height: 72vh; margin: 0; padding: var(--sp-4); resize: vertical;
  overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere;
  border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface);
  color: var(--ink); font: 400 12.5px/1.55 var(--font-mono);
}
[data-ui="v2"] .v2-mail-body-text:focus-visible { outline: 2px solid var(--info); outline-offset: 2px; }
[data-ui="v2"] .v2-mail-body-html {
  box-sizing: border-box; width: 100%; height: clamp(280px, 44vh, 500px);
  min-height: 220px; max-height: 72vh; padding: var(--sp-4); resize: vertical;
  overflow: auto; overflow-wrap: anywhere;
  border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface);
  color: var(--ink); font: 400 13px/1.55 var(--font-sans);
}
[data-ui="v2"] .v2-mail-body-html:focus-visible { outline: 2px solid var(--info); outline-offset: 2px; }
[data-ui="v2"] .v2-mail-body-html > :first-child { margin-top: 0; }
[data-ui="v2"] .v2-mail-body-html > :last-child { margin-bottom: 0; }
[data-ui="v2"] .v2-mail-body-html table {
  width: 100%; max-width: 100%; margin: var(--sp-3) 0;
  border-collapse: collapse; table-layout: auto;
}
[data-ui="v2"] .v2-mail-body-html caption {
  padding: var(--sp-2); color: var(--ink-2); font-weight: 650; text-align: left;
}
[data-ui="v2"] .v2-mail-body-html th,
[data-ui="v2"] .v2-mail-body-html td {
  min-width: 70px; padding: 7px 9px; border: 1px solid var(--line-2);
  vertical-align: top; text-align: left; overflow-wrap: anywhere;
}
[data-ui="v2"] .v2-mail-body-html th { background: var(--surface-2); font-weight: 650; }
/* „HTML“ je čtecí režim: bezpečně očištěný obsah zůstává strukturovaný, ale
   layoutové tabulky typické pro podpisy a Outlook nedostanou těžkou mřížku.
   „Bezpečné HTML“ ponechává výše uvedenou zřetelnou tabulkovou strukturu. */
[data-ui="v2"] .v2-mail-body-html.is-readable table {
  width: auto; max-width: 100%; margin: var(--sp-2) 0; table-layout: auto;
}
[data-ui="v2"] .v2-mail-body-html.is-readable th,
[data-ui="v2"] .v2-mail-body-html.is-readable td {
  min-width: 0; padding: 3px 9px 3px 0; border: 0; background: transparent;
}
[data-ui="v2"] .v2-mail-body-html.is-readable tr + tr {
  border-top: 1px solid color-mix(in srgb, var(--line) 62%, transparent);
}
[data-ui="v2"] .v2-mail-body-html blockquote {
  margin-inline: 0; padding-left: var(--sp-4); border-left: 3px solid var(--line-2); color: var(--ink-2);
}
[data-ui="v2"] .v2-mail-body-html pre {
  overflow: auto; padding: var(--sp-3); border-radius: var(--r-sm); background: var(--surface-2);
  white-space: pre-wrap; font-family: var(--font-mono);
}
[data-ui="v2"] .v2-mail-body-html a { color: var(--accent-text); text-decoration: underline; }
[data-ui="v2"] .v2-mail-body-empty {
  padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-sm);
  background: var(--surface); color: var(--ink-3); font: 400 12.5px/1.5 var(--font-sans);
}

/* Pravý sloupec: metriky + pravidla */
[data-ui="v2"] .v2-mail-stats { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
[data-ui="v2"] .v2-mail-stat {
  padding: var(--sp-5) var(--sp-6);
  border: 1px solid var(--line); border-radius: var(--r-xl);
  background: var(--surface); box-shadow: var(--shadow);
  display: flex; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-mail-stat .k { font: 600 11px/1.3 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .v2-mail-stat .n { font: 700 22px/1.2 var(--font-sans); letter-spacing: -.02em; }
[data-ui="v2"] .v2-mail-stat .n.small { font-size: 16px; }
[data-ui="v2"] .v2-mail-stat[data-tone="warn"] { border-color: var(--warn); }
[data-ui="v2"] .v2-mail-stat[data-tone="warn"] .n { color: var(--warn); }

/* Přepínač (pravidla schránky) */
[data-ui="v2"] .v2-switch {
  display: flex; align-items: center; gap: var(--sp-5);
  padding: var(--sp-4) 0; cursor: pointer;
  border-top: 1px solid var(--line);
}
[data-ui="v2"] .v2-switch.off { cursor: not-allowed; opacity: .65; }
[data-ui="v2"] .v2-switch .txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
[data-ui="v2"] .v2-switch .txt b { font: 600 13px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-switch .txt small { font: 400 11.5px/1.4 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
[data-ui="v2"] .v2-switch .track {
  flex: 0 0 auto; width: 44px; height: 25px; border-radius: var(--r-pill);
  /* --line-2, ne --bg-2: ve tmavém motivu byl vypnutý track na kartě neviditelný */
  background: var(--line-2); position: relative; transition: background var(--dur) var(--ease);
}
[data-ui="v2"] .v2-switch .track::after {
  content: ''; position: absolute; top: 3px; left: 3px;
  width: 19px; height: 19px; border-radius: 50%;
  background: var(--surface); box-shadow: var(--shadow);
  transition: transform var(--dur) var(--ease);
}
[data-ui="v2"] .v2-switch input:checked + .track { background: var(--accent); }
[data-ui="v2"] .v2-switch input:checked + .track::after { transform: translateX(19px); }
[data-ui="v2"] .v2-switch input:focus-visible + .track { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Blokovaní odesílatelé */
[data-ui="v2"] .v2-blocked-toggle {
  width: 100%; border: 0; background: transparent; cursor: pointer; text-align: left;
  font-family: var(--font-sans); color: var(--ink);
}
[data-ui="v2"] .v2-blocked-toggle .icon { font-size: 18px; color: var(--ink-3); }
[data-ui="v2"] .v2-blocked-row {
  display: grid; grid-template-columns: minmax(180px, 1.6fr) 70px 130px 130px auto;
  gap: var(--sp-4); align-items: center;
  padding: var(--sp-3) 0; border-bottom: 1px solid var(--line);
  font: 400 12.5px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-blocked-row:last-child { border-bottom: 0; }
[data-ui="v2"] .v2-blocked-row > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-blocked-row.head {
  font: 700 12px/1.2 var(--font-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-2);
}
[data-ui="v2"] .v2-mail-blocked-err { color: var(--warn); font: 400 12.5px/1.5 var(--font-sans); }
[data-ui="v2"] .v2-help-note.warn { color: var(--warn); }

/* Stav ani tlačítko příloh se NIKDY neskrývají — stav je jediný textový
   nositel informace a bez tlačítka příloh by šlo schvalovat naslepo.
   Místo toho se pod 1280 px řádek zalomí do dvou pásem. */
@media (max-width: 1600px) {
  [data-ui="v2"] .v2-mailrow,
  [data-ui="v2"] .v2-mail-head,
  [data-ui="v2"] .v2-mail-filterrow {
    grid-template-columns: 24px 40px minmax(140px, 190px) minmax(150px, 1fr) 112px 108px minmax(250px, 300px);
  }
  [data-ui="v2"] .v2-mailrow .col-from small { display: none; }
}
@media (max-width: 1520px) {
  /* stav a akce dostanou vlastní pás pod řádkem — nikdy se nemačkají */
  [data-ui="v2"] .v2-mailrow,
  [data-ui="v2"] .v2-mail-head,
  [data-ui="v2"] .v2-mail-filterrow {
    grid-template-columns: 24px 40px minmax(140px, 1fr) minmax(150px, 1fr) 112px 108px;
  }
  [data-ui="v2"] .v2-mailrow .col-end { grid-column: 3 / -1; justify-content: space-between; }
  [data-ui="v2"] .v2-mail-head .col-end { grid-column: 3 / -1; }
  [data-ui="v2"] .v2-mailrow { row-gap: 6px; }
}
@media (max-width: 1280px) {
  [data-ui="v2"] .v2-mailrow {
    grid-template-columns: 20px 32px minmax(140px, 1fr) 132px;
    grid-template-areas:
      'chk tile from when'
      '.   .    subj subj'
      '.   .    atts end';
    row-gap: 6px;
    padding-block: 10px;
  }
  [data-ui="v2"] .v2-mailrow .col-check { grid-area: chk; }
  [data-ui="v2"] .v2-mailrow .col-tile  { grid-area: tile; }
  [data-ui="v2"] .v2-mailrow .col-from  { grid-area: from; }
  [data-ui="v2"] .v2-mailrow .col-when  { grid-area: when; }
  [data-ui="v2"] .v2-mailrow .col-subj  { grid-area: subj; }
  [data-ui="v2"] .v2-mailrow .col-atts  { grid-area: atts; }
  /* Dlaždice už nese obecný stav; u detailních stavů proto v posledním pásu
     stačí konkrétní fáze (např. čeká na kontrolu) a akce. */
  [data-ui="v2"] .v2-mailrow .col-end   { grid-area: end; justify-content: flex-end; flex-wrap: nowrap; }
  [data-ui="v2"] .v2-mailrow .col-state.has-detail > .v2-pill { display: none; }
  [data-ui="v2"] .v2-mailrow .col-state small { flex-basis: auto; white-space: nowrap; }
  /* zahlavi se na uzkem okne smrskne na vyber + akce (nazvy nemaji sloupce) */
  [data-ui="v2"] .v2-mail-head { display: flex; align-items: center; gap: var(--sp-4); }
  [data-ui="v2"] .v2-mail-head .th, [data-ui="v2"] .v2-mail-head .col-tile { display: none; }
  [data-ui="v2"] .v2-mail-head .col-end { flex: 1; justify-content: flex-end; }
  [data-ui="v2"] .v2-mail-filterrow { display: grid; grid-template-columns: 1fr; row-gap: var(--sp-3); }
  [data-ui="v2"] .v2-mail-filterrow > span:empty { display: none; }
}
@media (max-width: 900px) {
  [data-ui="v2"] .v2-mail-stats { grid-template-columns: 1fr 1fr; }
  [data-ui="v2"] .v2-mail-atts { margin-left: var(--sp-7); max-width: none; }
}


/* ============================================================
   M6 — společný dialog, Pravidla na míru, Licence a využití
   ============================================================ */

/* Atribut hidden musí přebít autorské display — jinak přepínač grafu
   ani podmíněná pole kalkulačky nic neskryjí. */
[data-ui="v2"] [hidden] { display: none !important; }

/* Dialogy dědily height: min(90vh, 1000px) ze základního modálu — proto
   bylo i malé potvrzení přes celou výšku obrazovky. */
[data-ui="v2"] .v2-dlg .v2-modal-card { max-width: 620px; width: min(94vw, 620px); height: auto; max-height: min(90vh, 1000px); }
[data-ui="v2"] .v2-dlg.wide .v2-modal-card { max-width: 760px; width: min(94vw, 760px); }
[data-ui="v2"] .v2-dlg.small .v2-modal-card { max-width: 500px; width: min(94vw, 500px); }
[data-ui="v2"] .v2-dlg .v2-docprev-body { min-height: min(60vh, 560px); }
[data-ui="v2"] .v2-dlg .v2-modal-head .col { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
[data-ui="v2"] .v2-dlg-body { display: block; padding: var(--sp-5); overflow: auto; max-height: min(68vh, 620px); }
[data-ui="v2"] .v2-dlg-foot {
  display: flex; justify-content: flex-end; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--line); flex-wrap: wrap;
}
[data-ui="v2"] .v2-dlg-text { font-size: 14px; line-height: 1.55; margin: 0 0 var(--sp-3); }

/* Převzetí rozpracovaného dokladu je třícestné rozhodnutí. Dvě varianty
   proto nejsou schované za další confirm, ale jsou vidět vedle sebe jako
   popsané obdélníkové volby; na úzké obrazovce se složí pod sebe. */
[data-ui="v2"] .v2-draft-takeover-options {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3); margin: 0 0 var(--sp-4);
}
[data-ui="v2"] .v2-draft-takeover-option {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start;
  gap: var(--sp-3); min-width: 0; padding: var(--sp-4); text-align: left;
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink); cursor: pointer;
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-draft-takeover-option > .icon {
  display: grid; place-items: center; width: 34px; height: 34px;
  border-radius: var(--r-sm); font-size: 20px;
}
[data-ui="v2"] .v2-draft-takeover-option > span:last-child {
  display: flex; flex-direction: column; gap: 4px; min-width: 0;
}
[data-ui="v2"] .v2-draft-takeover-option b { font: 700 14px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-draft-takeover-option small {
  color: var(--ink-2); font: 500 12.5px/1.45 var(--font-sans);
}
[data-ui="v2"] .v2-draft-takeover-option.is-clean > .icon { background: var(--info-soft); color: var(--info); }
[data-ui="v2"] .v2-draft-takeover-option.is-preserve > .icon { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .v2-draft-takeover-option.is-clean:hover { border-color: var(--info); background: var(--info-soft); }
[data-ui="v2"] .v2-draft-takeover-option.is-preserve:hover { border-color: var(--ok); background: var(--ok-soft); }
[data-ui="v2"] .v2-draft-takeover-option:hover { transform: translateY(-1px); box-shadow: var(--shadow); }
[data-ui="v2"] .v2-draft-takeover-option:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 580px) {
  [data-ui="v2"] .v2-draft-takeover-options { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-draft-takeover-option { transition: none; }
  [data-ui="v2"] .v2-draft-takeover-option:hover { transform: none; }
}

/* Editor osobního rozvržení kontroly. */
[data-ui="v2"] .rv-layout-density {
  display: flex; align-items: center; gap: var(--sp-4); justify-content: space-between;
  padding: var(--sp-4); margin-bottom: var(--sp-4); border: 1px solid var(--line);
  border-radius: var(--r-lg); background: var(--surface-2);
}
[data-ui="v2"] .rv-layout-density > span { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .rv-layout-tree { display: grid; gap: var(--sp-4); }
[data-ui="v2"] .rv-layout-group {
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); overflow: hidden;
}
[data-ui="v2"] .rv-layout-grouphead,
[data-ui="v2"] .rv-layout-item { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
[data-ui="v2"] .rv-layout-grouphead { padding: 7px var(--sp-3); background: var(--surface-2); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .rv-layout-items { display: grid; padding: 3px; min-height: 34px; }
[data-ui="v2"] .rv-layout-item { padding: 5px var(--sp-2); border-radius: var(--r-md); }
[data-ui="v2"] .rv-layout-item + .rv-layout-item { border-top: 1px solid var(--line); }
[data-ui="v2"] .rv-layout-group[draggable="true"],
[data-ui="v2"] .rv-layout-item[draggable="true"] { cursor: grab; }
[data-ui="v2"] .rv-layout-group:active,
[data-ui="v2"] .rv-layout-item:active { cursor: grabbing; }
[data-ui="v2"] .rv-drag-handle {
  width: 18px; height: 22px; flex: 0 0 18px; opacity: .72;
  border-radius: var(--r-sm); cursor: grab;
  background-image: radial-gradient(circle, currentColor 1.35px, transparent 1.55px);
  background-size: 6px 6px; background-position: 0 2px;
  color: var(--ink-3);
}
[data-ui="v2"] .rv-layout-group:active .rv-drag-handle,
[data-ui="v2"] .rv-layout-item:active .rv-drag-handle { cursor: grabbing; }
[data-ui="v2"] .rv-layout-density .v2-seg-btn {
  display: inline-flex; align-items: center; gap: var(--sp-2); white-space: nowrap;
}
[data-ui="v2"] .rv-density-glyph { width: 14px; height: 14px; flex: 0 0 14px; color: currentColor; }
[data-ui="v2"] .rv-density-glyph.grid {
  border: 1.5px solid currentColor; border-radius: 2px;
  background:
    linear-gradient(currentColor, currentColor) 50% 0 / 1px 100% no-repeat,
    linear-gradient(currentColor, currentColor) 0 50% / 100% 1px no-repeat;
}
[data-ui="v2"] .rv-density-glyph.compact {
  background: repeating-linear-gradient(to bottom, currentColor 0 2px, transparent 2px 5px);
}
[data-ui="v2"] .rv-layout-item .chk { min-width: 0; }
[data-ui="v2"] .rv-layout-item .chk span { overflow-wrap: anywhere; }

/* Řádky dokladu nejsou seznam polí, ale skutečná tabulka. Jejich osobní
   editor proto ukazuje vodorovné karty sloupců ve stejném pořadí zleva doprava. */
[data-ui="v2"] .v2-dlg:has(#rv-layout-editor.is-columns) .v2-modal-card {
  max-width: 1080px; width: min(96vw, 1080px);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-instruction {
  margin: 0 0 var(--sp-3); padding-inline: 2px;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-columns-group { overflow: hidden; }
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-columns-group .rv-layout-grouphead {
  gap: var(--sp-2); padding-block: var(--sp-3);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-columns-group .rv-layout-grouphead > .icon {
  color: var(--info); font-size: 19px;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-columns-group .rv-layout-grouphead small {
  margin-left: auto;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-columns {
  display: flex; align-items: stretch; gap: var(--sp-3);
  min-height: 176px; padding: var(--sp-4);
  overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin;
  background:
    linear-gradient(var(--surface-2), var(--surface-2)) 0 44px / 100% 1px no-repeat,
    var(--bg-2);
  scroll-snap-type: x proximity;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column {
  position: relative; flex: 0 0 136px; align-self: stretch;
  display: flex; flex-direction: column; align-items: stretch; gap: var(--sp-2);
  min-width: 0; min-height: 146px; padding: var(--sp-3);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface); box-shadow: var(--shadow-sm);
  scroll-snap-align: start; transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column:hover {
  border-color: var(--line-2); box-shadow: var(--shadow);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column.is-hidden {
  opacity: .62; border-style: dashed; background: var(--surface-2);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column.is-drop-before {
  box-shadow: -4px 0 0 var(--accent), var(--shadow);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column.is-drop-after {
  box-shadow: 4px 0 0 var(--accent), var(--shadow);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column-top {
  display: flex; align-items: center; justify-content: space-between; min-height: 18px;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-index {
  min-width: 20px; height: 20px; padding-inline: 5px;
  display: grid; place-items: center; border-radius: var(--r-pill);
  background: var(--info-soft); color: var(--info); font: 700 11px/1 var(--font-sans);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column .rv-drag-handle {
  width: 38px; height: 12px; flex: 0 0 12px; background-position: 1px 0;
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-name {
  min-height: 34px; display: flex; align-items: center;
  font: 700 13px/1.3 var(--font-sans); color: var(--ink);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-preview {
  display: grid; gap: 5px; padding: 7px; border: 1px solid var(--line);
  border-radius: var(--r-sm); background: var(--surface-2);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-preview span {
  height: 7px; border-radius: var(--r-pill); background: var(--line-2);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-preview span:last-child { width: 72%; }
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-visible {
  margin-top: auto; font-size: 11.5px; color: var(--ink-2);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-actions {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
  padding-top: var(--sp-2); border-top: 1px solid var(--line);
}
[data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-col-actions .v2-iconbtn { flex: 1 1 0; }
[data-ui="v2"] .rv-layout-param-actions {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--line);
}
[data-ui="v2"] .rv-layout-common {
  min-width: 0; margin: var(--sp-4) 0 0; padding: var(--sp-4);
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2);
}
[data-ui="v2"] .rv-layout-common legend {
  padding: 0 var(--sp-2); color: var(--ink); font: 700 13.5px/1.3 var(--font-sans);
}
[data-ui="v2"] .rv-layout-common > p { margin: 0 0 var(--sp-3); }
[data-ui="v2"] .rv-layout-common-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); gap: var(--sp-2);
}
[data-ui="v2"] .rv-layout-common-option {
  min-width: 0; padding: var(--sp-3); border: 1px solid var(--line);
  border-radius: var(--r-md); background: var(--surface); cursor: pointer;
}
[data-ui="v2"] .rv-layout-common-option:hover { border-color: var(--accent); }
[data-ui="v2"] .rv-layout-common-option[hidden] { display: none; }
[data-ui="v2"] .rv-layout-common-note { display: block; margin-top: var(--sp-3); }
@media (max-width: 620px) {
  [data-ui="v2"] .rv-layout-density { align-items: stretch; flex-direction: column; }
  [data-ui="v2"] .rv-layout-density .v2-seg { align-self: flex-start; }
  [data-ui="v2"] .rv-layout-item .v2-pill { display: none; }
  [data-ui="v2"] #rv-layout-editor.is-columns .rv-layout-column { flex-basis: 124px; }
  [data-ui="v2"] .rv-layout-common-grid { grid-template-columns: 1fr; }
}

[data-ui="v2"] .v2-form { display: flex; flex-direction: column; gap: var(--sp-4); }
[data-ui="v2"] .v2-form .fld,
[data-ui="v2"] .v2-calc-form .fld { display: flex; flex-direction: column; gap: 5px; }
[data-ui="v2"] .v2-form .fld > span,
[data-ui="v2"] .v2-calc-form .fld > span { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
[data-ui="v2"] .v2-form .fld i { color: var(--accent); font-style: normal; }
/* Potvrzeni zavazneho ukonu ("Zavazne objednavam"). Varovny ton je tady
   na miste: po odeslani uz se s tim nic delat neda. */
[data-ui="v2"] .v2-check-row {
  display: flex; gap: var(--sp-3); align-items: flex-start; cursor: pointer;
  background: var(--warn-soft); border: 1px solid var(--warn);
  border-radius: var(--r-lg); padding: var(--sp-4) var(--sp-5);
}
[data-ui="v2"] .v2-check-row input { margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--accent); cursor: pointer; }
[data-ui="v2"] .v2-check-row > span { font: 400 13.5px/1.45 var(--font-sans); color: var(--ink); }

/* Dokup kreditů: celá nabídka je vidět bez rozbalovacího seznamu. Každá
   karta je nativní radio volba, takže funguje myš, dotyk, tabulátor i šipky.
   Rohy dodržují obdélníkový jazyk ostatních ovládacích prvků portálu. */
[data-ui="v2"] .v2-credit-tier-picker { min-width: 0; margin: 0; padding: 0; border: 0; }
[data-ui="v2"] .v2-credit-tier-picker > legend {
  width: 100%; margin: 0 0 var(--sp-3); padding: 0;
  font: 700 13px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-credit-tier-picker > legend small { font-weight: 500; color: var(--ink-3); }
[data-ui="v2"] .v2-credit-tier-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--sp-3);
}
[data-ui="v2"] .v2-credit-tier-option {
  position: relative; min-width: 0; cursor: pointer; --credit-tier-color: var(--info); --credit-tier-soft: var(--info-soft);
}
[data-ui="v2"] .v2-credit-tier-option.tone-2 { --credit-tier-color: var(--accent-text); --credit-tier-soft: var(--accent-soft); }
[data-ui="v2"] .v2-credit-tier-option.tone-3 { --credit-tier-color: var(--warn); --credit-tier-soft: var(--warn-soft); }
[data-ui="v2"] .v2-credit-tier-option.tone-4 { --credit-tier-color: var(--ok); --credit-tier-soft: var(--ok-soft); }
[data-ui="v2"] .v2-credit-tier-option > input {
  position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; pointer-events: none;
}
[data-ui="v2"] .v2-credit-tier-option > .face {
  display: flex; flex-direction: column; min-height: 178px; height: 100%; gap: 5px;
  padding: var(--sp-4); border: 1px solid color-mix(in srgb, var(--credit-tier-color) 42%, var(--line));
  border-radius: var(--r-md);
  background: linear-gradient(150deg, var(--credit-tier-soft), var(--surface) 76%);
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-credit-tier-option:hover > .face { transform: translateY(-2px); border-color: var(--credit-tier-color); }
[data-ui="v2"] .v2-credit-tier-option > input:focus-visible + .face {
  outline: 2px solid var(--focus); outline-offset: 2px;
}
[data-ui="v2"] .v2-credit-tier-option > input:checked + .face {
  border-color: var(--credit-tier-color);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--credit-tier-color) 28%, transparent), var(--shadow);
}
[data-ui="v2"] .v2-credit-tier-head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
  color: var(--credit-tier-color); font: 700 12px/1.35 var(--font-sans);
}
[data-ui="v2"] .v2-credit-tier-mark {
  display: inline-grid; place-items: center; width: 20px; height: 20px; flex: 0 0 20px;
  border: 1px solid color-mix(in srgb, var(--credit-tier-color) 55%, var(--line));
  border-radius: 50%; background: var(--surface); color: transparent;
}
[data-ui="v2"] .v2-credit-tier-mark .icon { font-size: 15px; font-weight: 700; }
[data-ui="v2"] .v2-credit-tier-option > input:checked + .face .v2-credit-tier-mark {
  border-color: var(--credit-tier-color); background: var(--credit-tier-color); color: var(--surface);
}
[data-ui="v2"] .v2-credit-tier-option strong {
  margin-top: var(--sp-2); color: var(--ink); font: 750 20px/1.15 var(--font-sans);
}
[data-ui="v2"] .v2-credit-tier-price { color: var(--ink); font: 700 16px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-credit-tier-unit { color: var(--ink-3); font: 500 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-credit-tier-saving {
  margin-top: auto; padding-top: var(--sp-2); border-top: 1px solid color-mix(in srgb, var(--credit-tier-color) 25%, var(--line));
  color: var(--credit-tier-color); font: 700 11.5px/1.35 var(--font-sans);
}
[data-ui="v2"] .v2-credit-approval-note {
  display: flex; align-items: flex-start; gap: var(--sp-3); margin: 0;
  padding: var(--sp-4); border: 1px solid var(--info); border-radius: var(--r-md);
  background: var(--info-soft); color: var(--ink-2); font: 500 13px/1.45 var(--font-sans);
}
[data-ui="v2"] .v2-credit-approval-note .icon { margin-top: 1px; color: var(--info); font-size: 19px; }
@media (max-width: 680px) {
  [data-ui="v2"] .v2-credit-tier-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  [data-ui="v2"] .v2-credit-tier-grid { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-credit-tier-option > .face { min-height: 150px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-credit-tier-option > .face { transition: none; }
  [data-ui="v2"] .v2-credit-tier-option:hover > .face { transform: none; }
}
/* Poznámkový / chybový box. Používá se 36x napříč obrazovkami a základní
   pravidlo pro něj chybělo — boxy se vykreslovaly jako holý text. */
[data-ui="v2"] .v2-note {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface-2); color: var(--ink-2);
  padding: var(--sp-4); font-size: 13px; line-height: 1.55;
  display: flex; flex-direction: column; gap: var(--sp-2);
}
[data-ui="v2"] .v2-note p { margin: 0; }
[data-ui="v2"] .v2-note b { color: var(--ink); }
[data-ui="v2"] .v2-note.bad  { border-color: var(--bad);  background: var(--bad-soft);  color: var(--ink); }
[data-ui="v2"] .v2-note.warn { border-color: var(--warn); background: var(--warn-soft); color: var(--ink); }
[data-ui="v2"] .v2-note.ok   { border-color: var(--ok);   background: var(--ok-soft);   color: var(--ink); }

/* Průběžná zpětná vazba k jednomu dokladu. Opakovaná úprava používá stejný
   záznam i původní přílohu; uživatel proto potřebuje vidět revize, ne další
   formulář pro opětovné odeslání souboru. */
[data-ui="v2"] .v2-fb-intro ul { margin: var(--sp-2) 0 var(--sp-2) 20px; padding: 0; }
[data-ui="v2"] .v2-fb-history {
  margin: var(--sp-4) 0; border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface-2); overflow: hidden;
}
[data-ui="v2"] .v2-fb-history-head {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line); background: var(--surface);
}
[data-ui="v2"] .v2-fb-history-head > div { display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-fb-history-head small { color: var(--ink-3); }
[data-ui="v2"] .v2-fb-revision { background: var(--surface); }
[data-ui="v2"] .v2-fb-revision + .v2-fb-revision { border-top: 1px solid var(--line); }
[data-ui="v2"] .v2-fb-revision summary {
  display: flex; align-items: center; gap: var(--sp-3); padding: 9px var(--sp-4);
  color: var(--ink-2); cursor: pointer; list-style: none; font-size: 12.5px;
}
[data-ui="v2"] .v2-fb-revision summary::-webkit-details-marker { display: none; }
[data-ui="v2"] .v2-fb-revision summary > span { white-space: nowrap; }
[data-ui="v2"] .v2-fb-revision summary > b {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink);
}
[data-ui="v2"] .v2-fb-revision summary::after {
  content: "expand_more"; margin-left: auto; color: var(--ink-3);
  font: 20px/1 "Material Symbols Rounded"; transition: transform var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-fb-revision[open] summary::after { transform: rotate(180deg); }
[data-ui="v2"] .v2-fb-revision-text {
  padding: 0 var(--sp-4) var(--sp-4); white-space: pre-wrap; overflow-wrap: anywhere;
  color: var(--ink); font-size: 13.5px; line-height: 1.5;
}
[data-ui="v2"] .v2-fb-empty {
  display: flex; align-items: center; justify-content: center; gap: var(--sp-2);
  min-height: 58px; padding: var(--sp-4); color: var(--ink-3); font-size: 13px; text-align: center;
}
[data-ui="v2"] .v2-fb-empty .icon { font-size: 18px; }
@media (max-width: 620px) {
  [data-ui="v2"] .v2-fb-history-head { align-items: flex-start; flex-direction: column; }
}

/* Kostra načítání (M6). Bez pravidla zůstala karta prázdná. */
[data-ui="v2"] .v2-skel-list { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-5); }
[data-ui="v2"] .v2-skel-row {
  height: 40px; border-radius: var(--r-md);
  background: linear-gradient(90deg, var(--bg-2) 25%, var(--surface-2) 37%, var(--bg-2) 63%);
  background-size: 400% 100%;
  animation: v2-shimmer 1.4s ease-in-out infinite;
}
@keyframes v2-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-skel-row { animation: none; background: var(--bg-2); }
}

[data-ui="v2"] .v2-input {
  width: 100%; box-sizing: border-box;
  padding: 8px var(--sp-4);
  border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink);
  font: 400 13.5px/1.4 var(--font-sans);
}
[data-ui="v2"] select.v2-input { cursor: pointer; }
[data-ui="v2"] .v2-input::placeholder { color: var(--ink-3); opacity: 1; }
[data-ui="v2"] .v2-input:disabled { background: var(--surface-2); color: var(--ink-3); cursor: default; }
[data-ui="v2"] .v2-input:hover:not(:disabled) { border-color: var(--ink-3); }
[data-ui="v2"] textarea.v2-input { resize: vertical; min-height: 76px; line-height: 1.5; }
[data-ui="v2"] .v2-linkbtn {
  background: none; border: 0; padding: 0; color: var(--accent-text);
  font: inherit; text-decoration: underline; cursor: pointer;
}
[data-ui="v2"] .v2-linkbtn:hover { color: var(--ink); }

[data-ui="v2"] .v2-toast {
  position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%);
  z-index: 90; max-width: min(92vw, 520px);
  background: var(--ink); color: var(--surface);
  padding: 11px var(--sp-4); border-radius: var(--r-lg);
  font-size: 13px; box-shadow: var(--shadow); transition: opacity .35s;
}
[data-ui="v2"] .v2-toast.out { opacity: 0; }

/* ---------- Stav automatického ukládání (sdílený, autosaveStateHtml) ----------
   Uživatel musí kdykoli vidět, jestli je jeho změna uložená. Barva je jen
   doplněk — stav vždy nese i text. */
[data-ui="v2"] .v2-autosave {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font: 500 12px/1.35 var(--font-sans); color: var(--ink-2); white-space: nowrap;
}
[data-ui="v2"] .v2-autosave .dot {
  flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: var(--ink-3);
}
[data-ui="v2"] .v2-autosave.is-saving .dot { background: var(--warn); animation: nahrai-pulse 1.4s ease-in-out infinite; }
[data-ui="v2"] .v2-autosave.is-saved .dot { background: var(--ok); }
[data-ui="v2"] .v2-autosave.is-error .dot { background: var(--bad); }
[data-ui="v2"] .v2-autosave.is-error { color: var(--bad); }
[data-ui="v2"] .v2-autosave .v2-linkbtn { font: inherit; }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-autosave.is-saving .dot { animation: none; }
}

/* ---------- Pravidla na míru ---------- */

/* Informace o placené úpravě NENÍ chyba. Původní --accent-soft je vizuálně
   k nerozeznání od --bad-soft, takže pruh vypadal jako varování — proto
   informativní modrá paleta. */
[data-ui="v2"] .v2-paidbar {
  display: flex; gap: var(--sp-4); align-items: flex-start;
  border: 1px solid var(--info); background: var(--info-soft);
  border-radius: var(--r-lg); padding: var(--sp-4); margin-bottom: var(--sp-4);
}
[data-ui="v2"] .v2-paidbar .tile {
  flex: none; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center; background: var(--surface); color: var(--info);
}
[data-ui="v2"] .v2-paidbar .col { display: flex; flex-direction: column; gap: 3px; }

[data-ui="v2"] .v2-explainer {
  display: flex; gap: var(--sp-4); align-items: flex-start;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-4); margin-bottom: var(--sp-4); background: var(--surface-2);
}
[data-ui="v2"] .v2-explainer .tile {
  flex: none; width: 34px; height: 34px; border-radius: var(--r-sm);
  display: grid; place-items: center; background: var(--surface); color: var(--ink-2);
  border: 1px solid var(--line);
}
[data-ui="v2"] .v2-explainer .col { display: flex; flex-direction: column; gap: 5px; }

[data-ui="v2"] .v2-modreq-list,
[data-ui="v2"] .v2-mods-list { display: flex; flex-direction: column; gap: var(--sp-2); }
[data-ui="v2"] .v2-modreq-cardhead {
  display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(36px, 1fr);
  align-items: center; gap: var(--sp-4); min-width: 0;
  padding: 6px var(--sp-7); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-modreq-cardhead.is-collapsed { border-bottom: 0; }
[data-ui="v2"] .v2-modreq-cardtitle { grid-column: 1; min-width: 0; }
[data-ui="v2"] .v2-modreq-cardtoggle {
  grid-column: 3; justify-self: end; width: 36px; height: 36px;
  display: grid; place-items: center; padding: 0; border: 0; border-radius: var(--r-md);
  background: transparent; color: var(--ink-3); cursor: pointer;
}
[data-ui="v2"] .v2-modreq-cardtoggle:hover { background: var(--surface-2); }
[data-ui="v2"] .v2-modreq-cardtoggle:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .v2-modreq-cardtoggle[aria-expanded="false"] .rv-section-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .v2-modreq-filter {
  grid-column: 2; justify-self: center;
}
[data-ui="v2"] .v2-status-filter {
  display: inline-flex; align-items: center; gap: 2px; min-width: 0;
  min-inline-size: 0;
  min-height: 34px; margin: 0; padding: 3px; border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface-2);
}
[data-ui="v2"] .v2-status-filter-opt { position: relative; display: block; margin: 0; cursor: pointer; }
[data-ui="v2"] .v2-status-filter-opt input {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
[data-ui="v2"] .v2-status-filter-opt .face {
  min-height: 26px; display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 9px; border-radius: var(--r-sm); color: var(--ink-2);
  font: 600 12px/1.25 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-status-filter-opt.tone-ok .face { color: var(--ok); }
[data-ui="v2"] .v2-status-filter-opt.tone-warn .face { color: var(--warn); }
[data-ui="v2"] .v2-status-filter-opt.tone-bad .face { color: var(--bad); }
[data-ui="v2"] .v2-status-filter-opt.tone-mut:hover .face { color: var(--ink); background: var(--surface); }
[data-ui="v2"] .v2-status-filter-opt.tone-ok:hover .face,
[data-ui="v2"] .v2-status-filter-opt.tone-ok input:checked + .face { background: var(--ok-soft); }
[data-ui="v2"] .v2-status-filter-opt.tone-warn:hover .face,
[data-ui="v2"] .v2-status-filter-opt.tone-warn input:checked + .face { background: var(--warn-soft); }
[data-ui="v2"] .v2-status-filter-opt.tone-bad:hover .face,
[data-ui="v2"] .v2-status-filter-opt.tone-bad input:checked + .face { background: var(--bad-soft); }
[data-ui="v2"] .v2-status-filter-opt input:checked + .face {
  box-shadow: inset 0 0 0 1px currentColor, var(--shadow-xs);
}
[data-ui="v2"] .v2-status-filter-opt.tone-mut input:checked + .face { color: var(--ink); background: var(--surface); }
[data-ui="v2"] .v2-status-filter-opt input:focus-visible + .face { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .v2-status-filter-opt input:disabled + .face { opacity: .55; cursor: default; }
[data-ui="v2"] .v2-status-filter-opt .count {
  min-width: 18px; height: 18px; display: inline-grid; place-items: center;
  padding: 0 5px; border-radius: var(--r-pill); background: color-mix(in srgb, currentColor 11%, transparent);
  font: 700 11px/1 var(--font-sans); font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-status-filter.is-compact .face {
  min-height: 26px; padding: 3px 8px; font-size: 11.5px;
}
[data-ui="v2"] .v2-status-filter.is-compact .count { min-width: 17px; height: 17px; font-size: 10.5px; }
[data-ui="v2"] .v2-pagebar-status-filter {
  flex: 0 1 auto; max-width: 100%; overflow-x: auto; scrollbar-width: none;
}
[data-ui="v2"] .v2-modreq,
[data-ui="v2"] .v2-modrule { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
/* Rozbalení není akce ani chyba — neutrální, silnější linka stačí. */
[data-ui="v2"] .v2-modreq.is-open,
[data-ui="v2"] .v2-modrule.is-open { border-color: var(--line-2); }
/* Vypnuté pravidlo se dřív lišilo jen textem pilulky. */
[data-ui="v2"] .v2-modrule.is-off { opacity: .7; }

[data-ui="v2"] .v2-modreq-head,
[data-ui="v2"] .v2-modrule-head {
  display: grid; align-items: center; gap: var(--sp-3);
  width: 100%; padding: var(--sp-3) var(--sp-4);
  background: none; border: 0; text-align: left; font: inherit; color: inherit; cursor: pointer;
}
[data-ui="v2"] .v2-modreq-head { grid-template-columns: minmax(0, 1fr) auto 22px; }
/* 6 deti: dlazdicka ikony, poradi, nazev+popis, logika, stav, chevron.
   Chybejici stopa pro dlazdicku posouvala vse o sloupec doprava. */
[data-ui="v2"] .v2-modrule-head { grid-template-columns: 34px 28px minmax(0, 1fr) 150px 96px 22px; }
[data-ui="v2"] .v2-modreq-head:hover,
[data-ui="v2"] .v2-modrule-head:hover { background: var(--surface-2); }
[data-ui="v2"] .v2-modreq-head .col,
[data-ui="v2"] .v2-modrule-head .col { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
[data-ui="v2"] .v2-modrule-head .col small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Pořadí je jen orientace v seznamu — akcentní barva ho dělala důležitějším
   než název pravidla. */
[data-ui="v2"] .v2-modrule-head .ord {
  font-family: var(--font-mono); font-size: 12.5px; font-weight: 600;
  color: var(--ink-3); font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-modreq-head .chev,
[data-ui="v2"] .v2-modrule-head .chev { color: var(--ink-3); transition: transform .16s; }
[data-ui="v2"] .is-open > .v2-modreq-head .chev,
[data-ui="v2"] .is-open > .v2-modrule-head .chev { transform: rotate(180deg); }

[data-ui="v2"] .v2-modreq-body,
[data-ui="v2"] .v2-modrule-body {
  padding: 0 var(--sp-4) var(--sp-4); border-top: 1px solid var(--line);
  padding-top: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-4);
}
[data-ui="v2"] .v2-modrule-body { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); }
[data-ui="v2"] .v2-modrule-body ul { margin: 5px 0 0; padding-left: 18px; font-size: 13.5px; line-height: 1.65; }
[data-ui="v2"] .v2-modrule-body code {
  font-family: var(--font-mono); font-size: 12px;
  background: var(--surface-2); padding: 1px 5px; border-radius: 4px;
}
/* Technický zápis (mfp.*) jen na vyžádání — účetní ho číst nemusí. */
[data-ui="v2"] .v2-modrule-tech { grid-column: 1 / -1; }
[data-ui="v2"] .v2-modrule-tech > summary {
  cursor: pointer; font: 600 12px/1.4 var(--font-sans); color: var(--ink-3);
  list-style: none; display: inline-flex; align-items: center; gap: var(--sp-2);
}
[data-ui="v2"] .v2-modrule-tech > summary::-webkit-details-marker { display: none; }
[data-ui="v2"] .v2-modrule-tech > summary::before { content: '▸'; color: var(--ink-3); }
[data-ui="v2"] .v2-modrule-tech[open] > summary::before { content: '▾'; }
[data-ui="v2"] .v2-modrule-tech > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r-xs); }
[data-ui="v2"] .v2-modrule-tech code { display: block; margin-top: var(--sp-2); overflow-x: auto; }
[data-ui="v2"] .blk { display: flex; flex-direction: column; gap: 4px; }
[data-ui="v2"] .pre { white-space: pre-wrap; margin: 0; font-size: 13.5px; line-height: 1.6; }
[data-ui="v2"] .row.gap { display: flex; gap: var(--sp-3); align-items: center; }
[data-ui="v2"] .row.gap.wrap { flex-wrap: wrap; }

[data-ui="v2"] .v2-quote {
  border: 1px solid var(--ok); background: var(--ok-soft);
  border-radius: var(--r-lg); padding: var(--sp-4);
  display: flex; flex-direction: column; gap: var(--sp-2);
}
[data-ui="v2"] .v2-msgs {
  display: flex; flex-direction: column; gap: var(--sp-2);
  max-height: 320px; overflow: auto; padding-right: 4px;
}
[data-ui="v2"] .v2-msg {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-3); background: var(--surface);
}
[data-ui="v2"] .v2-msg.from-customer { margin-right: 48px; }
[data-ui="v2"] .v2-msg.from-logicode { margin-left: 48px; background: var(--info-soft); border-color: var(--info); }
[data-ui="v2"] .v2-comment { display: flex; gap: var(--sp-3); }
[data-ui="v2"] .v2-comment .v2-input { flex: 1 1 auto; min-width: 0; }

/* Mezi kartami Poptávky/Pravidla nebyla ŽÁDNÁ mezera — stejný rytmus
   jako sloupce na Přehledu. */
[data-ui="v2"] #v2-mods-body { display: flex; flex-direction: column; gap: var(--sp-5); }
/* .v2-mods-reqfoot zrušen — poptávku otevírá jediné CTA v záhlaví obrazovky
   a v prázdném stavu karty. */
[data-ui="v2"] .v2-mods-tools {
  display: flex; gap: var(--sp-3); align-items: center; margin-bottom: var(--sp-4); flex-wrap: wrap;
}
[data-ui="v2"] .v2-mods-tools .v2-search { flex: 1 1 300px; }
/* Base pravidlo .v2-search chybělo — lupa padala NAD pole (block flow).
   Platí i pro Správu firmy, kde byl týž rozsyp. */
[data-ui="v2"] .v2-search { position: relative; display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
[data-ui="v2"] .v2-search > .icon { flex: none; font-size: 19px; color: var(--ink-3); }
[data-ui="v2"] .v2-search .v2-input { flex: 1 1 auto; min-width: 0; padding-right: 36px; }
[data-ui="v2"] .v2-search-clear {
  position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
  width: 26px; height: 26px; padding: 0; border: 0; border-radius: var(--r-sm);
  display: grid; place-items: center; background: none; color: var(--ink-3); cursor: pointer;
}
[data-ui="v2"] .v2-search-clear:hover { background: var(--surface-2); color: var(--ink); }
[data-ui="v2"] .v2-search-clear .icon { font-size: 17px; }
/* nativní křížek WebKitu by se s naším zdvojil */
[data-ui="v2"] .v2-search input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
[data-ui="v2"] .v2-card-foot {
  border-top: 1px solid var(--line); padding: var(--sp-3) var(--sp-5);
  font-size: 12.5px; color: var(--ink-3);
}

/* Zbytek k rozdělení — pruh přímo pod řádky dokladu.

   Účetní ho potřebuje ve chvíli, kdy částky píše, ne v rekapitulaci o kus
   níž. Tři stavy: zbývá rozdělit (neutrální), rozděleno celé (zelená)
   a rozděleno víc, než je na dokladu (oranžová). Červená by tu byla moc
   ostrá — rozdělený doklad se ještě dopisuje, není to chyba k opravě. */
[data-ui="v2"] .rv-remain {
  margin-top: var(--sp-2); padding: 6px var(--sp-3);
  border-radius: var(--r-md); background: var(--surface-2);
  font-size: 13px; color: var(--ink-2);
}
[data-ui="v2"] .rv-remain[hidden] { display: none; }
[data-ui="v2"] .rv-remain b { color: var(--ink); font-variant-numeric: tabular-nums; }
[data-ui="v2"] .rv-remain.ok { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .rv-remain.ok b { color: var(--ok); }
[data-ui="v2"] .rv-remain.warn { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .rv-remain.warn b { color: var(--warn); }
[data-ui="v2"] .rv-remain .t-meta { color: inherit; opacity: .78; }

/* ---------- Licence a využití ---------- */

/* Obrazovka je rozdělená na tři obsahové sekce (Současný stav / Trend /
   Ekonomika) — dřív se karty mísily podle technického rozvržení. */
[data-ui="v2"] .v2-lic-sect {
  display: flex; flex-direction: column; gap: var(--sp-3); margin-bottom: var(--sp-6);
}
[data-ui="v2"] .v2-lic-sect:last-child { margin-bottom: 0; }
[data-ui="v2"] .v2-lic-sect-h { margin: 0; }

/* Horní tři sekce sdílejí na desktopu jeden gridový řádek s výpisem pohybů.
   Pravá karta se proto zarovná od stejné hrany a přesně doroste do součtu
   výšek Současného stavu, Kreditů NahrAI a Trendu. Ekonomika je až pod nimi. */
[data-ui="v2"] .v2-lic-dashboard {
  display: grid; grid-template-columns: minmax(0, 3fr) minmax(330px, 1fr);
  gap: var(--sp-4); align-items: stretch;
}
[data-ui="v2"] .v2-lic-dashboard.without-movements { grid-template-columns: minmax(0, 1fr); }
[data-ui="v2"] .v2-lic-main,
[data-ui="v2"] .v2-lic-movements-column,
[data-ui="v2"] .v2-lic-lower { min-width: 0; }
[data-ui="v2"] .v2-lic-main { display: flex; flex-direction: column; }
[data-ui="v2"] .v2-lic-main > .v2-lic-sect:last-child { margin-bottom: 0; }
[data-ui="v2"] .v2-lic-movements-column {
  position: static; align-self: stretch; display: flex; flex-direction: column;
  gap: var(--sp-3); min-height: 0;
}
/* Neviditelný řádek má stejnou typografii jako nadpis Současný stav. Karta
   tak začíná přesně u horní hrany sousedních dlaždic, ne o nadpis výš. */
[data-ui="v2"] .v2-lic-movements-aligner {
  visibility: hidden; flex: none; user-select: none;
}
[data-ui="v2"] .v2-lic-movements-column > .v2-cm {
  width: 100%; flex: 1 1 auto; min-height: 0;
}
[data-ui="v2"] .v2-lic-lower { grid-column: 1 / -1; }

[data-ui="v2"] .v2-lic-tiles {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
  gap: var(--sp-4);
}
[data-ui="v2"] .v2-lic-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-2xl);
  padding: var(--sp-4); display: flex; flex-direction: column; gap: 6px;
}
[data-ui="v2"] .v2-lic-card .t-eyebrow.amber { color: var(--warn); }
[data-ui="v2"] .v2-lic-card .row { display: flex; justify-content: space-between; gap: var(--sp-3); font-size: 13px; }
[data-ui="v2"] .v2-lic-card .row .k { color: var(--ink-3); flex: none; }
[data-ui="v2"] .v2-lic-card .row .v { font-weight: 600; text-align: right; min-width: 0; }
[data-ui="v2"] .v2-lic-card .row .v.ok { color: var(--ok); }
[data-ui="v2"] .v2-lic-card .row .v.warn { color: var(--warn); }
[data-ui="v2"] .v2-lic-card .row .v.bad { color: var(--bad); }
[data-ui="v2"] .v2-lic-card .big {
  font-size: 30px; font-weight: 700; line-height: 1.1; margin-top: 2px;
  font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-lic-card .big.ok { color: var(--ok); }
/* Zustatek kreditu varuje barvou driv, nez dojdou - pod 10 doklady oranzove,
   pod 3 cervene. Bez techto dvou pravidel by velke cislo zustalo cerne
   a upozorneni by zaniklo. */
[data-ui="v2"] .v2-lic-card .big.warn { color: var(--warn); }
[data-ui="v2"] .v2-lic-card .big.bad { color: var(--bad); }
[data-ui="v2"] .v2-lic-card .biglabel { margin-bottom: 4px; }
[data-ui="v2"] .v2-lic-card .center { text-align: center; font-style: italic; margin: var(--sp-4) 0; }
/* Pohyby kreditů — samostatný svislý výpis v pravém sloupci.

   Čte se jako bankovní výpis: čas, typ pohybu a změna. Čísla jsou proto
   tabulková (font-variant-numeric) a interní ID dokladu se nezobrazuje.

   Odpisy jsou neutrální, ne červené: utrácení kreditů je běžný provoz.
   Zeleně se odlišují jen připsání, aby bylo vidět, kde peněženka narostla. */
[data-ui="v2"] .v2-cm { gap: var(--sp-3); }
[data-ui="v2"] .v2-cm-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: var(--sp-2); flex-wrap: wrap;
}
[data-ui="v2"] .v2-cm-filters {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2);
}
[data-ui="v2"] .v2-cm-filters label {
  display: flex; flex-direction: column; gap: 4px;
  color: var(--ink-3); font-size: 11px; font-weight: 600;
}
[data-ui="v2"] .v2-cm-filters .v2-input {
  width: 100%; min-width: 0; min-height: 34px; padding: 5px 7px; font-size: 12px;
}
[data-ui="v2"] .v2-cm-row {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) max-content;
  gap: var(--sp-2); align-items: baseline;
}

/* Jedna stránka deníku vyplní volné místo, ale sama se neposouvá. Další
   položky zpřístupňuje výhradně stránkování pod seznamem. */
[data-ui="v2"] .v2-cm-page { position: relative; flex: 1 1 auto; min-height: 0; }
[data-ui="v2"] .v2-cm-measure {
  position: absolute; top: 0; left: 0; width: 100%; visibility: hidden;
  pointer-events: none; z-index: -1;
}
[data-ui="v2"] .v2-cm-list { list-style: none; margin: 0; padding: 0; }
[data-ui="v2"] .v2-cm-day {
  font-size: 12px; font-weight: 600; color: var(--ink-3);
  padding: var(--sp-3) var(--sp-2) 4px;
}
[data-ui="v2"] .v2-cm-list > .v2-cm-day:first-child { padding-top: var(--sp-2); }
[data-ui="v2"] .v2-cm-row {
  padding: 5px var(--sp-2); border-radius: var(--r-md); font-size: 13px;
}
[data-ui="v2"] .v2-cm-row:hover { background: var(--surface-2); }
[data-ui="v2"] .v2-cm-row .cas {
  color: var(--ink-3); font-variant-numeric: tabular-nums; font-size: 12px;
}
[data-ui="v2"] .v2-cm-row .popis {
  color: var(--ink); min-width: 0; line-height: 1.3; overflow-wrap: anywhere;
}
[data-ui="v2"] .v2-cm-row.topup .popis {
  white-space: nowrap; font-size: 12px; letter-spacing: -.012em;
}
[data-ui="v2"] .v2-cm-row .delta {
  text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; color: var(--ink);
}
[data-ui="v2"] .v2-cm-row .delta .v2-credit-amount { justify-content: flex-end; width: 100%; }
[data-ui="v2"] .v2-cm-row.grant .delta { color: var(--ok); }
[data-ui="v2"] .v2-cm-pager {
  display: flex; align-items: center; justify-content: center; gap: var(--sp-3);
  color: var(--ink-3); font-size: 12px;
}
[data-ui="v2"] .v2-cm-pager .v2-btn {
  width: 34px; min-width: 34px; height: 34px; padding: 0; justify-content: center;
}
[data-ui="v2"] .v2-cm-empty {
  margin: var(--sp-4) 0; color: var(--ink-3); font-size: 13px; text-align: center;
}

@media (max-width: 560px) {
  [data-ui="v2"] .v2-cm-row { grid-template-columns: 38px minmax(0, 1fr) max-content; }
  [data-ui="v2"] .v2-cm-row.topup .popis { white-space: normal; }
}

[data-ui="v2"] .v2-pill.tone-gold { background: var(--tier-gold-soft); color: var(--tier-gold); }
[data-ui="v2"] .v2-pill.tone-steel { background: var(--tier-steel-soft); color: var(--tier-steel); }

/* Současný stav: firma, plán a tento měsíc jsou tři rovnocenné sloupce. */
[data-ui="v2"] .v2-lic-overview {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-4); align-items: stretch;
}
[data-ui="v2"] .v2-lic-overview > * { min-width: 0; }
[data-ui="v2"] .v2-lic-usage {
  display: grid; grid-template-columns: minmax(130px, 2fr) minmax(220px, 3fr);
  gap: var(--sp-5); align-content: start;
}
[data-ui="v2"] .v2-lic-embed { min-width: 0; }
[data-ui="v2"] .v2-lic-embed > .t-eyebrow,
[data-ui="v2"] .v2-lic-embed > .t-th { display: block; margin-bottom: var(--sp-3); }
[data-ui="v2"] .v2-lic-usage .cycle {
  border-left: 1px solid var(--line); padding-left: var(--sp-5);
}
[data-ui="v2"] .v2-lic-usage .cycle .v2-prog-lg { flex-direction: column; gap: 3px; }
[data-ui="v2"] .v2-lic-usage .cycle > .t-meta { margin: var(--sp-3) 0 0; line-height: 1.35; }

/* Trend: graf má bezpečných zhruba 2/3 šířky; minulý měsíc a součet sdílejí
   jeden pravý panel a neopakují rám, padding ani celý další řádek. */
[data-ui="v2"] .v2-lic-trend-grid {
  display: grid; grid-template-columns: minmax(0, 2.15fr) minmax(300px, .85fr);
  gap: var(--sp-4); align-items: stretch;
}
[data-ui="v2"] .v2-lic-trend-grid.without-chart { grid-template-columns: minmax(300px, 420px); }
[data-ui="v2"] .v2-lic-trend-summary { gap: 0; }
[data-ui="v2"] .v2-lic-trend-summary .v2-lic-embed + .v2-lic-embed {
  border-top: 1px solid var(--line); margin-top: var(--sp-5); padding-top: var(--sp-5);
}
[data-ui="v2"] .v2-lic-trend-summary .big { font-size: 26px; }

/* Malá úspora času už neplýtvá polovinou řádku; širší ekonomika se méně
   zalamuje a je díky tomu i nižší. */
[data-ui="v2"] .v2-lic-grid.v2-lic-economy-grid {
  grid-template-columns: minmax(220px, .7fr) minmax(0, 2.3fr); align-items: start;
}

[data-ui="v2"] .v2-lic-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4);
  align-items: stretch;
}
/* Modifikátory sloupců nahrazují dřívější .without-chart — sekce si řekne,
   kolik jich potřebuje. Karty různých výšek se nenatahují (align-items:start). */
[data-ui="v2"] .v2-lic-grid.cols-1 { grid-template-columns: minmax(0, 1fr); }
[data-ui="v2"] .v2-lic-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
[data-ui="v2"] .v2-lic-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
[data-ui="v2"] .v2-lic-grid .lic-cell { margin: 0; display: flex; }
[data-ui="v2"] .v2-lic-grid .lic-cell > .pad-sect { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--sp-3); }
[data-ui="v2"] .col-fill { flex: 1 1 auto; }
[data-ui="v2"] .v2-btn.wide { width: 100%; justify-content: center; margin-top: auto; }
[data-ui="v2"] .v2-card-head.plain { padding: 0; border: 0; background: none; }
/* Titulek v hlavičce bez rámu nesmí mít spodní mezeru z .pad-sect .t-th
   (rozhodilo by svislé zarovnání s přepínačem) a musí umět zalomit. */
[data-ui="v2"] .v2-card-head.plain .t-th { margin-bottom: 0; flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .v2-card-head.plain .v2-seg { margin-left: auto; }

[data-ui="v2"] .v2-prog-sum { display: flex; justify-content: space-between; font-size: 13px; }
[data-ui="v2"] .v2-prog-sum b.warn { color: var(--warn); }
[data-ui="v2"] .v2-prog {
  display: flex; height: 10px; border-radius: 999px; overflow: hidden;
  background: var(--surface-2); border: 1px solid var(--line);
}
[data-ui="v2"] .v2-prog .seg.in { background: var(--ok); }
[data-ui="v2"] .v2-prog .seg.in.warn { background: var(--warn); }
[data-ui="v2"] .v2-prog .seg.over { background: var(--accent); }
[data-ui="v2"] .v2-prog-lg {
  display: flex; justify-content: space-between; gap: var(--sp-3);
  font-size: 12px; color: var(--ink-3); flex-wrap: wrap;
}
[data-ui="v2"] .v2-prog-lg .sw {
  display: inline-block; width: 9px; height: 9px; border-radius: 3px;
  margin-right: 5px; background: var(--ok);
}
[data-ui="v2"] .v2-prog-lg .sw.warn { background: var(--warn); }
[data-ui="v2"] .v2-prog-lg .sw.over { background: var(--accent); }
[data-ui="v2"] .v2-prog-lg .sw.err { background: var(--bad); }
[data-ui="v2"] .v2-prog-lg .overtext { color: var(--accent); }

[data-ui="v2"] .v2-licchart { display: flex; gap: 6px; align-items: flex-end; justify-content: space-between; }
[data-ui="v2"] .v2-licchart .col { display: flex; flex-direction: column; align-items: center; gap: 5px; flex: 1 1 0; }
/* box-sizing:border-box: 100px výšky minus 20px paddingu dávalo jen 80 px
   vnitřního prostoru, ale sloupec může mít 96 px a popisek nad ním dalších 18. */
[data-ui="v2"] .v2-licchart .bars { display: flex; gap: 3px; align-items: flex-end; height: 120px; padding-top: 20px; }
[data-ui="v2"] .v2-licchart .bar {
  position: relative; width: 15px; border-radius: 4px 4px 0 0; align-self: flex-end;
}
[data-ui="v2"] .v2-licchart .bar.ok { background: var(--ok); }
[data-ui="v2"] .v2-licchart .bar.err { background: var(--bad); }
[data-ui="v2"] .v2-licchart .bar i {
  position: absolute; top: -19px; left: 50%; transform: translateX(-50%);
  font-size: 12px; font-style: normal; color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .v2-licline canvas { display: block; width: 100%; }

[data-ui="v2"] .v2-seg {
  display: inline-flex; align-items: center; min-height: 34px; padding: 3px; gap: 2px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-seg label {
  display: inline-flex; align-items: center; justify-content: center; min-height: 26px;
  padding: 3px 11px; border-radius: var(--r-sm); font-size: 12px; cursor: pointer; color: var(--ink-3);
}
[data-ui="v2"] .v2-seg label.on { background: var(--surface); color: var(--ink); font-weight: 600; }
[data-ui="v2"] .v2-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
[data-ui="v2"] .v2-seg label:focus-within { outline: 2px solid var(--focus); outline-offset: -2px; }

/* Doklady používají stejnou geometrii jako všechny ostatní segmentové volby. */
[data-ui="v2"] .v2-docs-seg { border-radius: var(--r-md); }
[data-ui="v2"] .v2-docs-seg .v2-seg-btn { border-radius: var(--r-sm); }

[data-ui="v2"] .v2-lic-totals { display: flex; flex-direction: column; gap: 6px; }
[data-ui="v2"] .v2-lic-totals .row { display: flex; justify-content: space-between; font-size: 13px; }
[data-ui="v2"] .v2-lic-totals .row .k { color: var(--ink-3); }
[data-ui="v2"] .v2-lic-totals .row .v.ok { color: var(--ok); }
[data-ui="v2"] .v2-lic-totals .row .v.bad { color: var(--bad); }

[data-ui="v2"] .v2-verdict {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  border-radius: var(--r-lg); padding: var(--sp-3);
  background: var(--ok-soft); border: 1px solid var(--ok);
}
[data-ui="v2"] .v2-verdict .icon { color: var(--ok); }
[data-ui="v2"] .v2-verdict .col { display: flex; flex-direction: column; gap: 3px; }
[data-ui="v2"] .v2-verdict.optimize { background: var(--warn-soft); border-color: var(--warn); }
[data-ui="v2"] .v2-verdict.optimize .icon { color: var(--warn); }
[data-ui="v2"] .v2-verdict.neutral { background: var(--surface-2); border-color: var(--line); }
[data-ui="v2"] .v2-verdict.neutral .icon { color: var(--ink-3); }
[data-ui="v2"] .v2-verdict-quick { display: flex; gap: var(--sp-3); }
[data-ui="v2"] .v2-verdict-quick .q {
  flex: 1 1 0; border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-3); display: flex; flex-direction: column; gap: 2px;
}

/* ---------- kalkulačka ---------- */

/* Pouze rámování sdílené aplikace. Vlastní vzhled kalkulačky je na webu
   v globals.css, nikoli v kopii zde. Viz docs/SHARED_CALCULATOR.md. */
[data-ui="v2"] .v2-shared-calculator { margin-top: var(--sp-5); scroll-margin-top: 84px; min-width: 0; }
[data-ui="v2"] .v2-shared-calculator[hidden] { display: none; }
[data-ui="v2"] .v2-shared-calculator-head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
[data-ui="v2"] .v2-shared-calculator-head h2 { flex: 1 1 240px; margin: 0; font-size: 20px; }
[data-ui="v2"] .v2-shared-calculator > .t-meta { margin: 0 0 12px; }
/* Výška z webu je výška obsahu. Rámeček nesmí ubrat 2 px a vytvořit vnitřní scrollbar. */
[data-ui="v2"] .v2-shared-calculator-frame { display: block; width: 100%; height: 1200px; border: 0; box-shadow: 0 0 0 1px var(--line); border-radius: var(--r-lg); background: #fff; }

[data-ui="v2"] .v2-calc { margin-top: var(--sp-4); }
[data-ui="v2"] .v2-calc-form {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4);
}
[data-ui="v2"] .v2-calc-form fieldset {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); margin: 0;
}
[data-ui="v2"] .v2-calc-form legend { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); padding: 0 6px; }
[data-ui="v2"] .v2-calc-form .chk { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; font-size: 13px; }
[data-ui="v2"] .v2-calc-form .chk small { flex-basis: 100%; }
[data-ui="v2"] .v2-range { width: 100%; accent-color: var(--accent); }

[data-ui="v2"] .v2-calc-result {
  display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) minmax(200px, 260px);
  gap: var(--sp-4); margin-top: var(--sp-4);
}
[data-ui="v2"] .v2-calc-plan {
  background: var(--ink); color: var(--surface); border-radius: var(--r-lg);
  padding: var(--sp-4); display: flex; flex-direction: column; gap: 4px;
}
[data-ui="v2"] .v2-calc-plan h3 { margin: 0; font-size: 19px; }
[data-ui="v2"] .v2-calc-plan .t-eyebrow,
[data-ui="v2"] .v2-calc-plan .t-meta { color: color-mix(in srgb, var(--surface) 72%, transparent); }
[data-ui="v2"] .v2-calc-plan .price { font-size: 26px; font-weight: 700; margin-top: 4px; }
[data-ui="v2"] .v2-calc-plan .price small { font-size: 12px; font-weight: 400; opacity: .75; }
[data-ui="v2"] .v2-calc-metrics { display: flex; flex-direction: column; gap: 6px; }
[data-ui="v2"] .v2-calc-metrics .m { display: flex; justify-content: space-between; font-size: 13px; gap: var(--sp-3); }
[data-ui="v2"] .v2-calc-save {
  border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-4);
  display: flex; flex-direction: column; gap: 4px;
}
[data-ui="v2"] .v2-calc-save b { font-size: 17px; }
[data-ui="v2"] .v2-calc-save b.positive { color: var(--ok); }
[data-ui="v2"] .v2-calc-save b.balanced { color: var(--warn); }
[data-ui="v2"] .v2-calc-save b.careful { color: var(--ink-2); }
[data-ui="v2"] .v2-calc-acc {
  grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3);
}
[data-ui="v2"] .v2-calc-acc .flow { display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap; }
[data-ui="v2"] .v2-calc-acc .flow > span { display: flex; flex-direction: column; font-size: 12.5px; color: var(--ink-3); }
[data-ui="v2"] .v2-calc-acc .flow > span b { font-size: 17px; color: var(--ink); }
[data-ui="v2"] .v2-calc-acc .flow .ok b { color: var(--ok); }
[data-ui="v2"] .v2-calc-acc .flow .bad b { color: var(--bad); }
[data-ui="v2"] .v2-calc-acc .flow .op { font-size: 18px; color: var(--ink-3); }

/* ---------- tiskový výstup kalkulačky ---------- */

[data-ui="v2"] #v2-print-root { display: none; }
@media print {
  [data-ui="v2"] body.v2-printing > *:not(#v2-print-root) { display: none !important; }
  [data-ui="v2"] body.v2-printing #v2-print-root { display: block; color: #15243c; font-size: 11pt; }
  [data-ui="v2"] #v2-print-root .v2-print-head {
    display: flex; gap: 10px; align-items: baseline;
    border-bottom: 2px solid #C63E39; padding-bottom: 6px; margin-bottom: 14px;
  }
  [data-ui="v2"] #v2-print-root h1 { font-size: 15pt; margin: 0 0 14px; }
  [data-ui="v2"] #v2-print-root h2 { font-size: 11pt; margin: 14px 0 5px; color: #C63E39; }
  [data-ui="v2"] #v2-print-root table { width: 100%; border-collapse: collapse; }
  [data-ui="v2"] #v2-print-root th, [data-ui="v2"] #v2-print-root td {
    text-align: left; padding: 3px 0; border-bottom: 1px solid #d7dee8; font-weight: 400;
  }
  [data-ui="v2"] #v2-print-root th { color: #697386; width: 45%; }
  [data-ui="v2"] #v2-print-root .foot { font-size: 8pt; color: #697386; margin-top: 18px; }
  @page { size: A4; margin: 14mm; }
}

@media (max-width: 1500px) {
  [data-ui="v2"] .v2-lic-grid,
  [data-ui="v2"] .v2-lic-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-ui="v2"] .v2-lic-grid.v2-lic-economy-grid {
    grid-template-columns: minmax(220px, .7fr) minmax(0, 2.3fr);
  }
  [data-ui="v2"] .v2-calc-result { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  [data-ui="v2"] .v2-calc-save { grid-column: 1 / -1; }
}
@media (max-width: 1180px) {
  [data-ui="v2"] .v2-lic-dashboard { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-lic-lower { grid-column: auto; }
  [data-ui="v2"] .v2-lic-movements-aligner { display: none; }
  [data-ui="v2"] .v2-lic-movements-column > .v2-cm { flex: none; }
  [data-ui="v2"] .v2-cm-page { flex: 0 1 auto; }
  [data-ui="v2"] .v2-lic-trend-grid {
    grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr);
  }
}
@media (max-width: 1100px) {
  [data-ui="v2"] .v2-calc-form { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-modrule-head { grid-template-columns: 34px 28px minmax(0, 1fr) 96px 22px; }
  [data-ui="v2"] .v2-modrule-head .logic { display: none; }
}
@media (max-width: 900px) {
  [data-ui="v2"] .v2-modreq-cardhead {
    grid-template-columns: minmax(0, 1fr) 36px; gap: var(--sp-3);
    padding-block: var(--sp-3);
  }
  [data-ui="v2"] .v2-modreq-cardtitle { grid-column: 1; grid-row: 1; }
  [data-ui="v2"] .v2-modreq-cardtoggle { grid-column: 2; grid-row: 1; }
  [data-ui="v2"] .v2-modreq-filter {
    grid-column: 1 / -1; grid-row: 2; justify-self: start; max-width: 100%;
    overflow-x: auto; scrollbar-width: none;
  }
  [data-ui="v2"] .v2-lic-trend-grid { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-lic-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-ui="v2"] .v2-lic-overview > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  [data-ui="v2"] .v2-lic-trend-summary {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-6);
  }
  [data-ui="v2"] .v2-lic-trend-summary .v2-lic-embed + .v2-lic-embed {
    border-top: 0; border-left: 1px solid var(--line);
    margin-top: 0; padding-top: 0; padding-left: var(--sp-6);
  }
}
@media (max-width: 780px) {
  [data-ui="v2"] .v2-lic-grid,
  [data-ui="v2"] .v2-lic-grid.cols-2,
  [data-ui="v2"] .v2-lic-grid.cols-3,
  [data-ui="v2"] .v2-lic-grid.v2-lic-economy-grid,
  [data-ui="v2"] .v2-calc-result,
  [data-ui="v2"] .v2-modrule-body { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-lic-overview { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-lic-overview > :last-child:nth-child(odd) { grid-column: auto; }
  [data-ui="v2"] .v2-msg.from-customer { margin-right: 20px; }
  [data-ui="v2"] .v2-msg.from-logicode { margin-left: 20px; }
  [data-ui="v2"] .v2-comment { flex-direction: column; align-items: stretch; }
}
@media (max-width: 600px) {
  [data-ui="v2"] .v2-lic-usage,
  [data-ui="v2"] .v2-lic-trend-summary { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-lic-usage .cycle,
  [data-ui="v2"] .v2-lic-trend-summary .v2-lic-embed + .v2-lic-embed {
    border-left: 0; border-top: 1px solid var(--line);
    padding-left: 0; padding-top: var(--sp-5); margin-top: 0;
  }
}


/* ============================================================
   M6 — Parametry
   ============================================================ */

[data-ui="v2"] .v2-par-wrap {
  display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: var(--sp-5); align-items: start;
}
[data-ui="v2"] .v2-par-wrap.with-guide { grid-template-columns: 210px minmax(0, 1fr) 320px; }
[data-ui="v2"] .v2-par-nav {
  position: sticky; top: var(--sticky-top); display: flex; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-par-nav a {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: 7px var(--sp-3); border-radius: var(--r-sm); font-size: 13px;
  color: var(--ink-2); text-decoration: none; border-left: 2px solid transparent;
}
[data-ui="v2"] .v2-par-nav a .lbl { min-width: 0; }
[data-ui="v2"] .v2-par-nav a:hover { background: var(--surface-2); color: var(--ink); border-left-color: var(--accent); }
[data-ui="v2"] .v2-par-nav a.on,
[data-ui="v2"] .v2-par-nav a[aria-current="true"] {
  background: var(--surface-2); color: var(--ink); font-weight: 600; border-left-color: var(--accent);
}
[data-ui="v2"] .v2-par-nav a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
/* Počet chybějících povinných v sekci — vpravo, aby popisek zůstal čitelný. */
[data-ui="v2"] .v2-par-nav .v2-badge { margin-left: auto; }
[data-ui="v2"] .v2-param-view-filter { flex: 0 0 auto; }
[data-ui="v2"] .v2-param-view-filter .v2-seg-btn { padding-inline: var(--sp-4); white-space: nowrap; }
[data-ui="v2"] .v2-par-group:focus { outline: none; }
/* Pole, která mají vlastní outline potlačený, protože sedí uvnitř obalu
   s rámečkem — focus se proto musí projevit na tom obalu. */
[data-ui="v2"] .v2-gsearch:focus-within,
[data-ui="v2"] .v2-search:focus-within,
[data-ui="v2"] .v2-combo-search:focus-within {
  outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r-md);
}
[data-ui="v2"] .v2-par-group:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .v2-par-main { display: flex; flex-direction: column; gap: var(--sp-4); min-width: 0; }
/* Skok z navigace sekcí musí počítat s lepivou hlavičkou, jinak nadpis
   skupiny skončí schovaný za ní. */
[data-ui="v2"] .v2-par-group { scroll-margin-top: var(--sticky-top); margin: 0; }
[data-ui="v2"] .v2-par-help {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  margin-top: var(--sp-4); padding: var(--sp-3) var(--sp-4);
  border: 1px solid var(--info); border-radius: var(--r-md);
  background: var(--info-soft); color: var(--ink-2);
  font-size: 12.5px; line-height: 1.5;
}
[data-ui="v2"] .v2-par-help > .icon { flex: none; color: var(--info); font-size: 18px; }
[data-ui="v2"] .v2-par-help > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
[data-ui="v2"] .v2-par-help b { color: var(--ink); }
[data-ui="v2"] .v2-par-grouphead {
  display: flex; gap: var(--sp-4); align-items: baseline; flex-wrap: wrap; margin-bottom: 4px;
}
[data-ui="v2"] .v2-param-scope {
  display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px;
  border: 1px solid var(--line); border-radius: 999px; font-size: 11px;
  font-weight: 700; letter-spacing: .02em; color: var(--ink-2); background: var(--surface-2);
}
[data-ui="v2"] .v2-param-scope.company { color: var(--info); border-color: var(--info); background: var(--info-soft); }
[data-ui="v2"] .v2-param-scope.personal { color: var(--ink-3); }
[data-ui="v2"] .v2-param-desc-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 24px; align-items: start;
  gap: 4px; width: 100%; min-width: 0;
}
[data-ui="v2"] .v2-param-desc-text { display: block; min-width: 0; max-width: 100%; }
[data-ui="v2"] .v2-param-desc-text:not(.is-expanded) {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] .v2-param-desc-text.is-expanded { overflow: visible; white-space: normal; }
[data-ui="v2"] .v2-param-desc-toggle {
  width: 24px; height: 24px; display: grid; place-items: center; align-self: start;
  border-radius: var(--r-sm); color: var(--ink-3); cursor: pointer;
  transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-param-desc-toggle:hover { color: var(--ink); background: var(--surface-2); }
[data-ui="v2"] .v2-param-desc-toggle:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .v2-param-desc-toggle .icon { font-size: 18px; }
[data-ui="v2"] .v2-company-note {
  display: flex; align-items: center; gap: 7px; margin: 8px 0 var(--sp-3); padding: 8px 10px;
  border-radius: var(--r-sm); background: var(--info-soft); color: var(--ink-2); font-size: 12.5px;
}
[data-ui="v2"] .v2-company-note .icon { flex: none; font-size: 17px; color: var(--info); }
[data-ui="v2"] .v2-company-note.readonly { background: var(--surface-2); border: 1px solid var(--line); }
[data-ui="v2"] .v2-company-note.readonly .icon { color: var(--ink-3); }
[data-ui="v2"] .v2-param-subtitle {
  margin-top: var(--sp-4); color: var(--ink); font-size: 13px; font-weight: 700;
}
[data-ui="v2"] .v2-line-mode {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-3);
}
[data-ui="v2"] .v2-line-mode-option {
  display: grid; grid-template-columns: 18px 24px minmax(0, 1fr); gap: 9px; align-items: start;
  padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface); cursor: pointer;
}
[data-ui="v2"] .v2-line-mode-option:hover { border-color: var(--ink-3); }
[data-ui="v2"] .v2-line-mode-option.selected { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
[data-ui="v2"] .v2-line-mode-option > .icon { color: var(--accent); font-size: 21px; }
[data-ui="v2"] .v2-line-mode-option > span:last-child { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
[data-ui="v2"] .v2-line-mode-option small { color: var(--ink-3); font-size: 12px; line-height: 1.4; }
[data-ui="v2"] .v2-line-mode-option:has(input:disabled) { cursor: default; opacity: .72; background: var(--surface-2); }
[data-ui="v2"] .v2-param-mode-help {
  margin-top: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface-2); color: var(--ink-2); font-size: 12.5px;
}
[data-ui="v2"] .v2-param-mode-help summary {
  display: flex; align-items: center; gap: 7px; padding: 7px var(--sp-3);
  list-style: none; cursor: pointer; width: max-content; max-width: 100%; font-weight: 600;
}
[data-ui="v2"] .v2-param-mode-help summary::-webkit-details-marker { display: none; }
[data-ui="v2"] .v2-param-mode-help summary .icon { color: var(--info); font-size: 18px; }
[data-ui="v2"] .v2-param-mode-help[open] summary { color: var(--ink); }
[data-ui="v2"] .v2-param-mode-help > div {
  border-top: 1px solid var(--line); padding: var(--sp-3) var(--sp-4); line-height: 1.5;
}
[data-ui="v2"] .v2-param-mode-help p { margin: 0; }
[data-ui="v2"] .v2-param-mode-help p + p { margin-top: 6px; }
[data-ui="v2"] .v2-doc-type-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-3); margin-top: var(--sp-3);
}
[data-ui="v2"] .v2-doc-type-card {
  --doc-tone: var(--info); --doc-soft: var(--info-soft);
  position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr);
  gap: var(--sp-3); align-items: center; min-width: 0; min-height: 92px;
  padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink); cursor: pointer;
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease),
    background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-doc-type-card.tone-pvd { --doc-tone: var(--warn); --doc-soft: var(--warn-soft); }
[data-ui="v2"] .v2-doc-type-card.tone-fv { --doc-tone: var(--ok); --doc-soft: var(--ok-soft); }
[data-ui="v2"] .v2-doc-type-card.tone-zlp { --doc-tone: var(--accent-text); --doc-soft: var(--accent-soft); }
[data-ui="v2"] .v2-doc-type-card.tone-osv { --doc-tone: var(--info); --doc-soft: var(--info-soft); }
[data-ui="v2"] .v2-doc-type-card:hover { transform: translateY(-2px); border-color: var(--doc-tone); box-shadow: var(--shadow-sm); }
[data-ui="v2"] .v2-doc-type-card:has(input:checked) {
  border-color: var(--doc-tone); background: var(--doc-soft);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--doc-tone) 28%, transparent);
}
[data-ui="v2"] .v2-doc-type-card:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .v2-doc-type-card > input {
  position: absolute; top: 11px; right: 11px; width: 17px; height: 17px;
  margin: 0; accent-color: var(--doc-tone); cursor: pointer;
}
[data-ui="v2"] .v2-doc-type-card > input:focus-visible { outline: 0; }
[data-ui="v2"] .v2-doc-type-icon {
  display: grid; place-items: center; width: 42px; height: 42px;
  border-radius: var(--r-md); background: var(--doc-soft); color: var(--doc-tone);
}
[data-ui="v2"] .v2-doc-type-icon svg { width: 29px; height: 29px; }
[data-ui="v2"] .v2-doc-type-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-right: 17px; }
[data-ui="v2"] .v2-doc-type-copy b { font: 650 13.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-doc-type-copy small { color: var(--ink-3); font: 400 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-doc-type-code {
  position: absolute; right: 11px; bottom: 9px; color: var(--doc-tone);
  font: 750 9.5px/1 var(--font-sans); letter-spacing: .07em;
}
[data-ui="v2"] .v2-doc-type-card:has(input:disabled) { opacity: .62; cursor: default; }
[data-ui="v2"] .v2-doc-type-card:has(input:disabled):hover { transform: none; box-shadow: none; border-color: var(--line); }
@media (max-width: 720px) {
  [data-ui="v2"] .v2-line-mode { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  [data-ui="v2"] .v2-doc-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  [data-ui="v2"] .v2-doc-type-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-doc-type-card { transition: none; }
  [data-ui="v2"] .v2-doc-type-card:hover { transform: none; }
}
[data-ui="v2"] .v2-paramgrid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--sp-4); margin-top: var(--sp-3);
}

/* Uživatelé v ABRA: adresářové řádky místo generických polí parametrů.
   Na širokém panelu se skládají do dvou sloupců, při velkém počtu dostanou
   vlastní rozumně vysoký scroller a fulltext zůstává stále nad nimi. */
[data-ui="v2"] .v2-abra-users-head { align-items: center; }
[data-ui="v2"] .v2-abra-users-title { display: inline-flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-abra-users-title > .icon {
  display: grid; place-items: center; width: 34px; height: 34px;
  border-radius: var(--r-md); background: var(--info-soft); color: var(--info); font-size: 20px;
}
[data-ui="v2"] .v2-abra-user-count {
  margin-left: auto; min-height: 26px; display: inline-flex; align-items: center;
  padding: 3px 9px; border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface-2); color: var(--ink-2); font: 650 11.5px/1.2 var(--font-sans);
}
[data-ui="v2"] .v2-abra-users-intro {
  display: flex; align-items: flex-start; gap: var(--sp-3); margin: var(--sp-3) 0;
  padding: 10px var(--sp-4); border: 1px solid var(--info); border-radius: var(--r-md);
  background: var(--info-soft); color: var(--ink-2); font: 400 12.5px/1.5 var(--font-sans);
}
[data-ui="v2"] .v2-abra-users-intro > .icon { flex: none; margin-top: 1px; color: var(--info); font-size: 18px; }
[data-ui="v2"] .v2-abra-users-intro p { margin: 0; }
[data-ui="v2"] .v2-abra-users-toolbar {
  display: flex; align-items: center; gap: var(--sp-4); margin: var(--sp-4) 0 var(--sp-3);
}
[data-ui="v2"] .v2-abra-user-search { flex: 1 1 360px; max-width: 560px; }
[data-ui="v2"] .v2-abra-user-search-count {
  margin-left: auto; white-space: nowrap; color: var(--ink-3); font: 600 12px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-abra-user-list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr));
  gap: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .v2-abra-user-list.is-many {
  max-height: min(58vh, 560px); overflow-y: auto; overscroll-behavior: contain;
  padding-right: 4px; scrollbar-width: thin;
}
[data-ui="v2"] .v2-abra-user-row {
  display: grid; grid-template-columns: minmax(180px, .9fr) minmax(220px, 1.1fr);
  align-items: center; gap: var(--sp-4); min-width: 0; padding: var(--sp-3);
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface);
  transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-abra-users-card:not(.is-readonly) .v2-abra-user-row:hover {
  border-color: var(--accent-line); box-shadow: var(--shadow-sm);
}
[data-ui="v2"] .v2-abra-user-identity {
  display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: var(--sp-3); min-width: 0;
}
[data-ui="v2"] .v2-abra-user-avatar {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: var(--r-md);
  background: var(--accent-soft); color: var(--accent-text);
  font: 750 11px/1 var(--font-sans); letter-spacing: .03em;
}
[data-ui="v2"] .v2-abra-user-identity > span:last-child { min-width: 0; }
[data-ui="v2"] .v2-abra-user-identity b,
[data-ui="v2"] .v2-abra-user-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .v2-abra-user-identity b { color: var(--ink); font: 650 13px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-abra-user-identity small { margin-top: 2px; color: var(--ink-3); font: 400 11.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-abra-role {
  display: inline-flex; margin-left: 6px; padding: 1px 5px; border-radius: var(--r-xs);
  background: var(--info-soft); color: var(--info); font-weight: 700;
}
[data-ui="v2"] .v2-abra-user-map { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
[data-ui="v2"] .v2-abra-user-map > span { color: var(--ink-3); font: 600 11.5px/1.25 var(--font-sans); }
[data-ui="v2"] .v2-abra-user-map select { width: 100%; min-width: 0; }
[data-ui="v2"] .v2-abra-users-card.is-readonly .v2-abra-user-row { background: var(--surface-2); }
[data-ui="v2"] .v2-abra-users-card.is-readonly .v2-abra-user-map select:disabled {
  opacity: 1; cursor: not-allowed; color: var(--ink-2); background: var(--surface-2);
}
[data-ui="v2"] .v2-abra-users-footnote {
  display: flex; align-items: center; gap: 7px; margin: var(--sp-3) 0 0;
  color: var(--ink-3); font: 400 11.5px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-abra-users-footnote .icon { flex: none; color: var(--ok); font-size: 17px; }
@media (max-width: 680px) {
  [data-ui="v2"] .v2-abra-user-row { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-abra-users-toolbar { align-items: stretch; flex-direction: column; gap: var(--sp-2); }
  [data-ui="v2"] .v2-abra-user-search { flex-basis: auto; max-width: none; width: 100%; }
  [data-ui="v2"] .v2-abra-user-search-count { margin-left: 0; }
}
[data-ui="v2"] .v2-smart-lookup-grid { grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); }
[data-ui="v2"] .pcell { display: flex; flex-direction: column; gap: 5px; min-width: 0; border-radius: var(--r-sm); }
[data-ui="v2"] .pcell > label { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
[data-ui="v2"] .pcell.is-off > label,
[data-ui="v2"] .pcell.is-off .v2-combo-trigger { opacity: .55; }
[data-ui="v2"] .v2-smart-lookup-label { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
[data-ui="v2"] .v2-smart-mode {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; padding: 3px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-smart-mode-option { min-width: 0; cursor: pointer; }
[data-ui="v2"] .v2-smart-mode-option input {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
[data-ui="v2"] .v2-smart-mode-option span {
  display: grid; place-items: center; min-height: 38px; padding: 6px 7px; border: 1px solid transparent;
  border-radius: var(--r-sm); color: var(--ink-3); text-align: center;
  font: 600 11.5px/1.25 var(--font-sans); transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
[data-ui="v2"] .v2-smart-mode-option:hover span { color: var(--ink); transform: translateY(-1px); }
[data-ui="v2"] .v2-smart-mode-option input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .v2-smart-mode-option.tone-off input:checked + span {
  border-color: var(--line); background: var(--surface); color: var(--ink-2); box-shadow: var(--shadow-sm);
}
[data-ui="v2"] .v2-smart-mode-option.tone-suggest input:checked + span {
  border-color: var(--info); background: var(--info-soft); color: var(--info); box-shadow: var(--shadow-sm);
}
[data-ui="v2"] .v2-smart-mode-option.tone-apply input:checked + span {
  border-color: var(--ok); background: var(--ok-soft); color: var(--ok); box-shadow: var(--shadow-sm);
}
[data-ui="v2"] .pcell.is-off > .v2-smart-lookup-label,
[data-ui="v2"] .pcell.is-off > .v2-smart-mode,
[data-ui="v2"] .pcell.is-off > .t-meta { opacity: .55; }
[data-ui="v2"] .pcell.is-off .v2-smart-mode-option { cursor: default; }
[data-ui="v2"] .pcell.is-off .v2-smart-mode-option:hover span { transform: none; }
[data-ui="v2"] .v2-smart-unavailable { color: var(--ink-3); }
@media (max-width: 520px) {
  [data-ui="v2"] .v2-smart-lookup-grid { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-smart-mode-option span { padding-inline: 5px; font-size: 11px; }
}
/* Chybějící povinná hodnota musí být vidět v POLI, ne jen v pruhu na Přehledu.
   Barva je doplněk — pole nese i slovní značku „povinné" a větu pod ním. */
[data-ui="v2"] .pcell .req {
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
  color: var(--bad); margin-left: 4px;
}
[data-ui="v2"] .pcell.is-missing > label,
[data-ui="v2"] .pcell.is-missing > label.chk { color: var(--bad); }
[data-ui="v2"] .pcell.is-missing .v2-input,
[data-ui="v2"] .pcell.is-missing .v2-combo-trigger {
  border-color: var(--bad); box-shadow: 0 0 0 3px var(--bad-soft);
}
[data-ui="v2"] .pcell .t-meta.bad { color: var(--bad); }
[data-ui="v2"] .pcell.flash {
  outline: 2px solid var(--accent); outline-offset: 4px;
  animation: v2-flash 1.2s ease-in-out 2;
}
@keyframes v2-flash { 0%, 100% { outline-color: var(--accent); } 50% { outline-color: transparent; } }
@media (prefers-reduced-motion: reduce) { [data-ui="v2"] .pcell.flash { animation: none; } }
[data-ui="v2"] .chk.pswitch { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
[data-ui="v2"] .chk.pswitch.big { font-weight: 600; color: var(--ink); font-size: 13px; }
[data-ui="v2"] .v2-parflags { display: flex; flex-direction: column; gap: var(--sp-3); margin-top: var(--sp-3); }
[data-ui="v2"] .v2-parflags .chk { align-items: flex-start; font-size: 13.5px; line-height: 1.5; }
[data-ui="v2"] .v2-behavior-flag { width: 100%; padding: 3px 0; }
[data-ui="v2"] .v2-behavior-flag > input { margin-top: 3px; flex: 0 0 auto; }
[data-ui="v2"] .v2-behavior-flag > span {
  display: flex; min-width: 0; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-behavior-title { font: 650 13.5px/1.35 var(--font-sans); color: var(--ink); }
[data-ui="v2"] .v2-behavior-flag .t-meta {
  display: block; font-size: 12.5px; line-height: 1.45; color: var(--ink-3);
}
[data-ui="v2"] .v2-param-master {
  width: fit-content; margin-top: var(--sp-4); padding: 9px 12px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface);
}
[data-ui="v2"] .v2-param-dependent {
  margin-left: 12px; padding: 7px 0 7px 14px; border-left: 2px solid var(--info);
  transition: opacity .16s ease, border-color .16s ease;
}
[data-ui="v2"] .v2-param-dependent.is-off { opacity: .52; border-left-color: var(--line); cursor: default; }
[data-ui="v2"] .v2-param-dependent.is-off input { cursor: default; }
[data-ui="v2"] .v2-behavior-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: var(--sp-4);
}
[data-ui="v2"] .v2-behavior-col { min-width: 0; padding-right: var(--sp-5); }
[data-ui="v2"] .v2-behavior-col + .v2-behavior-col {
  padding-right: 0; padding-left: var(--sp-5); border-left: 1px solid var(--line);
}
[data-ui="v2"] .v2-behavior-col > .v2-param-subtitle { margin-top: 0; }
[data-ui="v2"] .v2-behavior-col > p { margin: 5px 0 0; }
[data-ui="v2"] .v2-date-rules { display: flex; flex-direction: column; gap: var(--sp-4); margin-top: var(--sp-4); }
[data-ui="v2"] .v2-date-rule { min-width: 0; margin: 0; padding: 0; border: 0; }
[data-ui="v2"] .v2-date-rule + .v2-date-rule { padding-top: var(--sp-4); border-top: 1px solid var(--line); }
[data-ui="v2"] .v2-date-rule legend {
  margin: 0 0 7px; padding: 0; color: var(--ink); font: 650 13.5px/1.35 var(--font-sans);
}
[data-ui="v2"] .v2-date-rule > .t-meta { margin: 7px 0 0; font-size: 12px; line-height: 1.4; }
[data-ui="v2"] .v2-date-mode {
  display: grid; gap: 3px; min-width: 0; padding: 3px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-date-mode.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
[data-ui="v2"] .v2-date-mode.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-ui="v2"] .v2-date-mode-option { --date-tone: var(--info); --date-soft: var(--info-soft); min-width: 0; cursor: pointer; }
[data-ui="v2"] .v2-date-mode-option.tone-auto { --date-tone: var(--ok); --date-soft: var(--ok-soft); }
[data-ui="v2"] .v2-date-mode-option.tone-duzp { --date-tone: var(--warn); --date-soft: var(--warn-soft); }
[data-ui="v2"] .v2-date-mode-option > input {
  position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;
}
[data-ui="v2"] .v2-date-mode-option > span {
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  gap: 1px; min-height: 42px; padding: 5px 7px; border: 1px solid transparent;
  border-radius: var(--r-sm); color: var(--ink-3); text-align: center;
  transition: transform var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
    border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-date-mode-option b { font: 650 11.5px/1.25 var(--font-sans); }
[data-ui="v2"] .v2-date-mode-option small { font: 500 10.5px/1.2 var(--font-sans); }
[data-ui="v2"] .v2-date-mode-option:hover > span { transform: translateY(-1px); color: var(--ink); }
[data-ui="v2"] .v2-date-mode-option > input:checked + span {
  border-color: var(--date-tone); background: var(--date-soft); color: var(--date-tone); box-shadow: var(--shadow-sm);
}
[data-ui="v2"] .v2-date-mode-option > input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 1px; }
[data-ui="v2"] .v2-date-mode-option:has(input:disabled) { cursor: default; opacity: .58; }
[data-ui="v2"] .v2-date-mode-option:has(input:disabled):hover > span { transform: none; }
@media (max-width: 900px) {
  [data-ui="v2"] .v2-behavior-grid { grid-template-columns: 1fr; gap: var(--sp-5); }
  [data-ui="v2"] .v2-behavior-col { padding-right: 0; }
  [data-ui="v2"] .v2-behavior-col + .v2-behavior-col {
    padding: var(--sp-5) 0 0; border-left: 0; border-top: 1px solid var(--line);
  }
}
@media (max-width: 520px) {
  [data-ui="v2"] .v2-date-mode-option b { font-size: 10.5px; }
  [data-ui="v2"] .v2-date-mode-option > span { padding-inline: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-date-mode-option > span { transition: none; }
  [data-ui="v2"] .v2-date-mode-option:hover > span { transform: none; }
}

[data-ui="v2"] .v2-combo { position: relative; }
[data-ui="v2"] .v2-combo-native { position: absolute; width: 1px; height: 1px; clip: rect(0 0 0 0); overflow: hidden; }
[data-ui="v2"] .v2-combo-trigger {
  width: 100%; text-align: left; cursor: pointer; background: var(--surface);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] .v2-combo-trigger::after {
  content: '▾'; float: right; color: var(--ink-3); margin-left: 6px;
}
[data-ui="v2"] .v2-combo-trigger:disabled { cursor: default; background: var(--surface-2); }
[data-ui="v2"] .v2-combo-panel {
  position: absolute; z-index: 20; top: calc(100% + 4px); left: 0; right: 0;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--shadow); overflow: hidden;
}
[data-ui="v2"] .v2-combo-panel.open-up { top: auto; bottom: calc(100% + 4px); }
[data-ui="v2"] .v2-combo-search {
  display: flex; align-items: center; gap: 6px; padding: var(--sp-2);
  border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .v2-combo-search .icon { color: var(--ink-3); font-size: 18px; }
[data-ui="v2"] .v2-combo-search input { flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .v2-combo-list { max-height: 260px; overflow: auto; }
[data-ui="v2"] .v2-combo-option {
  display: block; width: 100%; text-align: left; padding: 7px var(--sp-3);
  background: none; border: 0; font: inherit; color: inherit; cursor: pointer; font-size: 13px;
}
[data-ui="v2"] .v2-combo-option:hover,
[data-ui="v2"] .v2-combo-option:focus { background: var(--surface-2); }
[data-ui="v2"] .v2-combo-option[aria-selected="true"] { background: var(--accent-soft); font-weight: 600; }
[data-ui="v2"] .v2-combo-empty { padding: var(--sp-3); font-size: 13px; color: var(--ink-3); }

[data-ui="v2"] .v2-par-guide { position: sticky; top: var(--sticky-top); }
[data-ui="v2"] .v2-guide-list { display: flex; flex-direction: column; gap: var(--sp-2); }
[data-ui="v2"] .v2-guide-item {
  display: grid; grid-template-columns: 20px minmax(0, 1fr) 30px; gap: var(--sp-2);
  align-items: start; padding: var(--sp-2); border-radius: var(--r-sm);
}
[data-ui="v2"] .v2-guide-item .col { display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-guide-item.done .icon { color: var(--ok); }
[data-ui="v2"] .v2-guide-item.pending .icon { color: var(--warn); }
[data-ui="v2"] .v2-guide-item.optional .icon { color: var(--ink-3); }
[data-ui="v2"] .v2-badge {
  display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px;
  margin-left: 6px; border-radius: 999px; background: var(--warn); color: var(--on-ok);
  font-size: 12px; font-weight: 700;
}
[data-ui="v2"] .v2-badge.complete { background: var(--ok); }
/* Dokud se nespočítá, badge nesmí viset jako prázdné jantarové kolečko. */
[data-ui="v2"] .v2-badge:empty { display: none; }

[data-ui="v2"] .v2-savedock {
  /* Pres celou sirku obsahu a jantarove zvyraznena — puvodni uzkou
     nenapadnou bublinu s neulozenymi zmenami zadavatel prehlizel. */
  position: fixed; left: calc(var(--rail-w) + 20px); right: 20px; bottom: 14px;
  z-index: 60;
  display: flex; align-items: center; gap: var(--sp-3);
  background: var(--warn-soft); border: 1px solid var(--warn);
  border-left: 3px solid var(--warn);
  border-radius: var(--r-2xl); box-shadow: var(--shadow-lg); padding: var(--sp-3) var(--sp-4);
}
/* Připnutý rail je 216 px — lišta pod ním jinak překrývala navigaci.
   Pod 1280 px je rail vždy sbalený (viz Responzivita), proto min-width. */
@media (min-width: 1281px) {
  [data-ui="v2"] .v2-shell[data-rail="pinned"] .v2-savedock { left: calc(var(--rail-w-expanded) + 20px); }
}
[data-ui="v2"] .v2-savedock .spacer { flex: 1; }
[data-ui="v2"] .v2-savedock .v2-autosave { font-size: 13px; }
[data-ui="v2"] .v2-savedock .v2-autosave .dot { width: 8px; height: 8px; }
/* Neuložené změny (idle) tady nejsou klid — tečka drží jantarovou barvu lišty.
   Původní pravidlo volalo neexistující keyframes v2-pulse, takže nepulzovalo. */
[data-ui="v2"] .v2-savedock .v2-autosave.is-idle .dot {
  background: var(--warn); animation: nahrai-pulse 1.6s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-savedock .v2-autosave.is-idle .dot { animation: none; }
}
[data-ui="v2"] .v2-savedock .err { color: var(--bad); font-size: 12.5px; }
[data-ui="v2"] body.v2-dock-open main { padding-bottom: 96px; }

/* ============================================================
   M6 — Správa firmy
   ============================================================ */

[data-ui="v2"] .v2-team-card { margin-bottom: var(--sp-4); overflow: clip; }
[data-ui="v2"] .v2-team-card.is-collapsed .chev { transform: rotate(-90deg); }
[data-ui="v2"] .v2-team-card .chev { transition: transform .16s; }
/* Souhrn firmy — karta Firma je nově výchozí sbalená, fakta nese tahle lišta. */
[data-ui="v2"] .v2-team-summary {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-5);
  padding: var(--sp-3) var(--sp-5); margin-bottom: var(--sp-4);
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2);
  font: 400 13px/1.4 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-team-summary b { font: 700 14px/1.4 var(--font-sans); color: var(--ink); }
[data-ui="v2"] .v2-seg.v2-team-tabs { margin-bottom: var(--sp-4); max-width: 100%; flex-wrap: wrap; }
[data-ui="v2"] .v2-minis { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-4); }
[data-ui="v2"] .v2-minis .mini {
  border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3);
  display: flex; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-minis .mini b { font-size: 20px; }
[data-ui="v2"] .v2-minis .mini b.ok { color: var(--ok); }
[data-ui="v2"] .v2-minis .mini b.bad { color: var(--bad); }
[data-ui="v2"] .v2-team-tools { display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; margin-bottom: var(--sp-3); }
[data-ui="v2"] .v2-team-tools .v2-search { flex: 1 1 280px; }
/* Výběr řazení je jen pro řádkové karty — nad 1024 px řadí záhlaví tabulky. */
[data-ui="v2"] .v2-team-sortbox { display: none; }
[data-ui="v2"] .v2-team-sortbox .v2-input { padding: 7px var(--sp-4); font-size: 12.5px; }
[data-ui="v2"] .v2-split { display: inline-flex; }
[data-ui="v2"] .v2-split .v2-btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
[data-ui="v2"] .v2-split .v2-btn ~ .v2-btn { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; padding-inline: 8px; }

[data-ui="v2"] .v2-tablewrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-ui="v2"] .v2-team-tablewrap { overflow: clip; }
[data-ui="v2"] .v2-team-table { width: 100%; border-collapse: collapse; min-width: 1080px; font-size: 13px; }
[data-ui="v2"] .v2-team-table th, [data-ui="v2"] .v2-team-table td {
  text-align: left; padding: 9px var(--sp-3); border-bottom: 1px solid var(--line); vertical-align: middle;
}
[data-ui="v2"] .v2-team-table thead th {
  position: sticky; top: var(--content-sticky-top); background: var(--surface-2); z-index: 2;
  /* 12 px — účetní popisky nesmí být menší (audit UI 2026-08) */
  font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-2);
}
[data-ui="v2"] .v2-team-table tbody tr:hover { background: var(--surface-2); }
[data-ui="v2"] .v2-team-table tr.bad { background: var(--bad-soft); }
[data-ui="v2"] .v2-team-table td.empty { text-align: center; color: var(--ink-3); padding: var(--sp-5); }
[data-ui="v2"] .v2-team-table .t-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
[data-ui="v2"] .v2-team-table .sticky-r {
  position: sticky; right: 0; background: var(--surface); box-shadow: -6px 0 8px -8px rgba(0,0,0,.35);
}
[data-ui="v2"] .v2-team-table thead .sticky-r { background: var(--surface-2); z-index: 3; }
[data-ui="v2"] .v2-team-table tbody tr:hover .sticky-r { background: var(--surface-2); }
[data-ui="v2"] .v2-team-pager {
  display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3);
  margin-top: var(--sp-4); flex-wrap: wrap;
}
[data-ui="v2"] .v2-team-pager .t-meta { margin-right: auto; }
/* Flex patří dovnitř, ne na <td> — buňka musí zůstat table-cell, jinak se
   sticky-r a svislé zarovnání chovají nepředvídatelně. */
[data-ui="v2"] .v2-team-table td.actions > .actwrap {
  display: flex; gap: 4px; align-items: center; white-space: nowrap; justify-content: flex-end;
}
/* Spouštěč nabídky je sdílený .v2-btn.small — v řádku ho srovnáme na xsmall. */
[data-ui="v2"] .v2-team-table td.actions .v2-popbtn { padding: 4px var(--sp-4); font-size: 12px; }
[data-ui="v2"] .v2-team-table td.actions .v2-popbtn .icon { font-size: 15px; }

/* --- Tabulka uživatelů (kartový režim se NESMÍ chytit na náhled importu,
   proto všechno pod .v2-team-users) ---------------------------------- */
[data-ui="v2"] table.v2-team-users { min-width: 900px; }
[data-ui="v2"] .v2-team-users td.c-email b { font-size: 14px; }
/* Druhá linka (jméno · přihlášení) se ukáže, až tyhle sloupce zmizí. */
[data-ui="v2"] .v2-team-users td.c-email .sub { display: none; }
[data-ui="v2"] .v2-team-users td.c-role,
[data-ui="v2"] .v2-team-users td.c-stav { white-space: normal; }

[data-ui="v2"] .th-sort {
  background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer;
  display: inline-flex; align-items: center; gap: 3px; text-transform: inherit; letter-spacing: inherit;
}
[data-ui="v2"] .th-sort .icon { font-size: 15px; }
[data-ui="v2"] .chk.tiny { font-size: 12px; display: inline-flex; gap: 3px; margin-right: 8px; }
[data-ui="v2"] .v2-pill.as-btn { border: 0; font: inherit; cursor: pointer; }

[data-ui="v2"] .v2-connlist { display: flex; flex-direction: column; gap: var(--sp-2); }
[data-ui="v2"] .v2-connrow {
  display: grid; grid-template-columns: minmax(0, 1fr) 170px auto; gap: var(--sp-3);
  align-items: center; border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3);
}
[data-ui="v2"] .v2-connrow .name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
[data-ui="v2"] .v2-connrow .st { display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-connrow .act { display: flex; gap: var(--sp-2); }
[data-ui="v2"] .v2-connrow .steps { grid-column: 1 / -1; }
[data-ui="v2"] .v2-connrow .mbline { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-top: 3px; }
[data-ui="v2"] .v2-connrow .mbline .icon { font-size: 15px; color: var(--ink-3); }
[data-ui="v2"] .v2-teststeps { list-style: none; margin: var(--sp-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
[data-ui="v2"] .v2-teststeps li { display: flex; gap: var(--sp-2); align-items: flex-start; font-size: 13px; }
[data-ui="v2"] .v2-teststeps li .col { display: flex; flex-direction: column; }
[data-ui="v2"] .v2-teststeps li b { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
[data-ui="v2"] .v2-teststeps li.ok .icon { color: var(--ok); }
[data-ui="v2"] .v2-teststeps li.warn .icon { color: var(--warn); }
[data-ui="v2"] .v2-teststeps li.bad .icon { color: var(--bad); }

[data-ui="v2"] .v2-checklist {
  display: flex; flex-direction: column; gap: 4px; max-height: 320px; overflow: auto;
  border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3);
}
[data-ui="v2"] .v2-checklist .chk { align-items: flex-start; }
[data-ui="v2"] .v2-checklist .chk span { display: flex; flex-direction: column; }
[data-ui="v2"] .v2-secret {
  display: block; font-family: var(--font-mono); font-size: 12px; word-break: break-all;
  background: var(--surface-2); padding: var(--sp-2); border-radius: var(--r-sm); margin: var(--sp-2) 0;
}
[data-ui="v2"] .v2-form.two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
[data-ui="v2"] .v2-form.two .v2-note { grid-column: 1 / -1; }

/* --- Správa firmy: pásma šířky -------------------------------------------
   >1280   plná tabulka (8 sloupců)
   1024–1279 Jméno a Přihlášení jdou pod e-mail, tabulka se vejde bez posuvu
   ≤1023   řádkové karty; řadí výběr v nástrojích, ne záhlaví
   Hustota se řídí globální volbou (uiDensity) — jen v tabulkovém režimu.
   ------------------------------------------------------------------------ */
@media (min-width: 1024px) {
  [data-ui="v2"] .v2-tablewrap[data-density="compact"] .v2-team-users th,
  [data-ui="v2"] .v2-tablewrap[data-density="compact"] .v2-team-users td { padding: 5px var(--sp-3); }
  [data-ui="v2"] .v2-tablewrap[data-density="compact"] .v2-team-users .v2-btn.xsmall {
    padding-top: 2px; padding-bottom: 2px;
  }
}
@media (max-width: 1279px) {
  [data-ui="v2"] table.v2-team-users { min-width: 0; }
  [data-ui="v2"] .v2-team-users .h-name,
  [data-ui="v2"] .v2-team-users .h-login,
  [data-ui="v2"] .v2-team-users td.c-name,
  [data-ui="v2"] .v2-team-users td.c-login { display: none; }
  [data-ui="v2"] .v2-team-users td.c-email { overflow-wrap: anywhere; }
  [data-ui="v2"] .v2-team-users td.c-email .sub {
    display: block; margin-top: 2px; color: var(--ink-3); font: 400 12px/1.35 var(--font-sans);
  }
}
@media (max-width: 1023px) {
  [data-ui="v2"] .v2-team-sortbox { display: inline-flex; align-items: center; }
  /* Záhlaví zůstane jen pro odečítače — názvy sloupců nesou popisky ::before. */
  [data-ui="v2"] .v2-team-users thead {
    position: absolute; width: 1px; height: 1px; margin: -1px;
    padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  [data-ui="v2"] .v2-team-users,
  [data-ui="v2"] .v2-team-users tbody { display: block; }
  [data-ui="v2"] .v2-team-users tbody tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px var(--sp-4); padding: var(--sp-5) var(--sp-4);
    border-bottom: 1px solid var(--line); align-items: start;
  }
  [data-ui="v2"] .v2-team-users tbody tr:last-child { border-bottom: 0; }
  [data-ui="v2"] .v2-team-users tbody td { display: block; padding: 0; border: 0; }
  [data-ui="v2"] .v2-team-users td.c-email { grid-column: 1; font-size: 14px; }
  [data-ui="v2"] .v2-team-users td.c-role,
  [data-ui="v2"] .v2-team-users td.c-stav,
  [data-ui="v2"] .v2-team-users td.c-acc,
  [data-ui="v2"] .v2-team-users td.c-conn { grid-column: 1; font-size: 13px; }
  [data-ui="v2"] .v2-team-users td.c-role::before,
  [data-ui="v2"] .v2-team-users td.c-stav::before,
  [data-ui="v2"] .v2-team-users td.c-acc::before,
  [data-ui="v2"] .v2-team-users td.c-conn::before {
    content: attr(data-th) ": ";
    font: 600 12px/1.4 var(--font-sans); color: var(--ink-3);
  }
  /* Akce vpravo nahoře; sticky sloupec tu nedává smysl. */
  [data-ui="v2"] .v2-team-users td.c-act {
    grid-column: 2; grid-row: 1; justify-self: end;
    position: static; box-shadow: none; background: transparent;
  }
  [data-ui="v2"] .v2-team-users tbody tr:hover td.c-act { background: transparent; }
  [data-ui="v2"] .v2-team-users td.empty { grid-column: 1 / -1; text-align: left; padding: var(--sp-3) 0; }
}
@media (max-width: 767px) {
  /* Jeden sloupec: akce pod obsahem karty, aby se tlačítka neořezávala. */
  [data-ui="v2"] .v2-team-users tbody tr { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-team-users td.c-act {
    grid-column: 1; grid-row: auto; justify-self: start; margin-top: var(--sp-2);
  }
  [data-ui="v2"] .v2-team-users td.actions > .actwrap { justify-content: flex-start; flex-wrap: wrap; }
}

@media (max-width: 1400px) {
  [data-ui="v2"] .v2-par-wrap.with-guide { grid-template-columns: 210px minmax(0, 1fr); }
  [data-ui="v2"] .v2-par-guide { grid-column: 1 / -1; position: static; order: -1; }
}
@media (max-width: 980px) {
  [data-ui="v2"] .v2-par-wrap,
  [data-ui="v2"] .v2-par-wrap.with-guide { grid-template-columns: 1fr; }
  /* Na tabletu je navigace vodorovná lišta pod hlavičkou. Zůstává lepivá, aby
     šlo přeskočit sekci i uprostřed formuláře; z-index musí zůstat POD panelem
     vyhledávacího comba (z-index 20), jinak by se pod ní schoval. */
  [data-ui="v2"] .v2-par-nav {
    position: sticky; top: var(--sticky-top); z-index: 4;
    flex-direction: row; overflow-x: auto; gap: 0;
    background: var(--bg); padding-block: var(--sp-2);
    scroll-snap-type: x proximity; scrollbar-width: thin;
  }
  /* Okrajové „fadey": lepivé pseudoprvky uvnitř scrolleru. Ve výchozí poloze
     leží nad vlastní mezerou (nic nezakrývají), po odrolování překryjí obsah —
     uživatel tak vidí, že lišta pokračuje. */
  [data-ui="v2"] .v2-par-nav::before,
  [data-ui="v2"] .v2-par-nav::after {
    content: ''; position: sticky; z-index: 1; flex: 0 0 var(--sp-8);
    align-self: stretch; pointer-events: none;
  }
  [data-ui="v2"] .v2-par-nav::before { left: 0; background: linear-gradient(to right, var(--bg), transparent); }
  [data-ui="v2"] .v2-par-nav::after { right: 0; background: linear-gradient(to left, var(--bg), transparent); }
  [data-ui="v2"] .v2-par-nav a {
    white-space: nowrap; border-left: 0; border-bottom: 2px solid transparent;
    border-radius: var(--r-sm) var(--r-sm) 0 0; scroll-snap-align: start; flex: 0 0 auto;
  }
  [data-ui="v2"] .v2-par-nav a:hover { border-left-color: transparent; border-bottom-color: var(--accent); }
  /* Bez tohoto nebyl aktivní stav na tabletu vidět (podtržení zůstávalo průhledné). */
  [data-ui="v2"] .v2-par-nav a.on,
  [data-ui="v2"] .v2-par-nav a[aria-current="true"] {
    border-left-color: transparent; border-bottom-color: var(--accent);
  }
  [data-ui="v2"] .v2-par-nav .v2-badge { margin-left: 4px; }
  /* Lepivý průvodce + lepivá navigace + lišta uložení = na tabletu skoro žádné
     místo na formulář. Průvodce proto roluje s obsahem. */
  [data-ui="v2"] .v2-wiz { position: static; }
  [data-ui="v2"] .v2-connrow { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-form.two { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-savedock { left: 12px; right: 12px; flex-wrap: wrap; row-gap: var(--sp-3); }
  [data-ui="v2"] .v2-savedock .v2-autosave { flex: 1 1 100%; white-space: normal; }
  [data-ui="v2"] .v2-savedock .err { flex: 1 1 100%; }
  [data-ui="v2"] .v2-savedock .spacer { display: none; }
  [data-ui="v2"] .v2-savedock .v2-btn { flex: 1 1 auto; justify-content: center; }
}


/* ============================================================
   Kontrola — plná hlavička, editor řádků, rekapitulace DPH
   ============================================================ */

[data-ui="v2"] .rv-gtitle {
  grid-column: 1 / -1;
  font: 700 12px/1.3 var(--font-sans); text-transform: uppercase; letter-spacing: .04em;
  color: var(--ink-3); padding-top: var(--sp-3);
}
[data-ui="v2"] .rv-gtitle:first-child { padding-top: 0; }
[data-ui="v2"] .rv-field.wide { grid-column: 1 / -1; }
/* Bloky bez data-span (dekorativní poznámky) nesmí spadnout do jedné dvanáctiny. */
[data-ui="v2"] .rv-field:not([data-span]):not(.wide) { grid-column: span 6; }
[data-ui="v2"] .rv-field select,
[data-ui="v2"] .rv-field input[type="text"],
[data-ui="v2"] .rv-field input[type="date"] {
  width: 100%; box-sizing: border-box;
  border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink);
  font: 400 13px/1.4 var(--font-sans); padding: 6px 8px;
}
[data-ui="v2"] .rv-field input.num { text-align: right; font-variant-numeric: tabular-nums; }
[data-ui="v2"] .rv-field.as-check { justify-content: center; align-self: stretch; }
[data-ui="v2"] .rv-field.as-check .rv-chk {
  display: flex; align-items: center; width: 100%;
  gap: var(--sp-3); min-height: 32px; font: 600 12.5px/1.3 var(--font-sans);
}
[data-ui="v2"] .rv-field .rv-chk { font-size: 13px; font-weight: 600; }
[data-ui="v2"] .rv-field.is-off { opacity: .55; }

/* Osobní kompaktní seznam hlavičky: pořadí v DOM je zároveň pořadím Tab.
   Složené bloky zůstávají celé, běžná pole mají popisek vlevo a vstup vpravo. */
[data-ui="v2"] .rv-grid.rv-layout-compact {
  grid-template-columns: minmax(0, 1fr); gap: 3px; padding: var(--sp-3) var(--sp-4) var(--sp-4);
}
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-gtitle { grid-column: 1; padding: var(--sp-3) 4px 2px; }
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-span],
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field.wide {
  grid-column: 1 / -1; min-height: 34px; padding: 3px var(--sp-3);
}
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-field]:not(.as-check) {
  display: grid; grid-template-columns: minmax(130px, 190px) minmax(0, 1fr); align-items: center; gap: 3px var(--sp-3);
}
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-field]:not(.as-check) .rv-note { grid-column: 2; }
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field.as-check { justify-content: stretch; }
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field.rv-tradeblock,
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-block="rate"] { display: grid; grid-template-columns: minmax(130px, 190px) minmax(0, 1fr); }
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-tradegrid,
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateline,
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateequation,
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateinfo { grid-column: 2; }
@media (max-width: 700px) {
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-field]:not(.as-check),
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-field.rv-tradeblock,
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-field[data-block="rate"] { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-field .rv-note,
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-tradegrid,
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateline,
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateequation,
  [data-ui="v2"] .rv-grid.rv-layout-compact .rv-rateinfo { grid-column: 1; }
}

/* Platební příkaz má stejný vertikální rytmus jako běžné pole Měna. Checkbox
   je v samostatném levém sloupci; titul a podmíněný výběr účtu začínají na
   stejné svislé ose. Aktivace proto kartu jen vyplní, nezvětší ji do prázdna. */
[data-ui="v2"] .rv-grid .rv-field.rv-payment-card {
  display: grid; grid-template-columns: 18px minmax(0, 1fr); grid-template-rows: auto 32px;
  gap: 2px var(--sp-3); align-items: center; min-height: 65px;
  padding: 5px var(--sp-4); overflow: hidden;
  cursor: default; border-radius: var(--r-lg);
}
[data-ui="v2"] .rv-payment-card:not(.is-on) {
  width: max-content; max-width: 100%; justify-self: start;
}
[data-ui="v2"] .rv-payment-toggle {
  grid-column: 1 / -1; grid-row: 1; min-width: 0;
  display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: var(--sp-3); align-items: center;
  min-height: 18px; padding: 0; cursor: pointer;
}
[data-ui="v2"] .rv-payment-toggle-copy { flex: 1; min-width: 0; }
[data-ui="v2"] .rv-payment-toggle-copy b,
[data-ui="v2"] .rv-payment-toggle-copy small { display: block; }
[data-ui="v2"] .rv-payment-toggle-copy b { font: 650 13px/1.35 var(--font-sans); white-space: nowrap; }
[data-ui="v2"] .rv-payment-toggle input {
  width: 17px; height: 17px; flex: 0 0 auto; margin: 0;
  accent-color: var(--accent); cursor: pointer;
}
[data-ui="v2"] .rv-payment-card.is-on {
  width: 100%; justify-self: stretch; border-color: var(--line); background: var(--surface);
}
[data-ui="v2"] .rv-payment-expand {
  grid-column: 2; grid-row: 2; min-width: 0; width: 100%; max-width: 0; max-height: 0;
  opacity: 0; visibility: hidden; overflow: hidden; pointer-events: none;
  transition: max-height var(--dur) var(--ease), opacity var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-payment-card.is-on .rv-payment-expand {
  max-width: 100%; max-height: 32px; opacity: 1; visibility: visible; pointer-events: auto;
}
[data-ui="v2"] .rv-payment-account {
  display: block; min-width: 0; width: 100%; padding: 0;
  font: 600 12.5px/1.35 var(--font-sans); cursor: default;
}
[data-ui="v2"] .rv-payment-account .rv-smart-dim-field { min-width: 0; }
/* Blokující stav účtu se kreslí uvnitř pole před jeho šipkou. Původní
   vykřičník na vnějším rohu ořezával overflow složené dlaždice. */
[data-ui="v2"] .rv-payment-card.rv-blk::after { display: none; }
@media (max-width: 620px) {
  [data-ui="v2"] .rv-grid .rv-field.rv-payment-card { grid-template-columns: 18px minmax(0, 1fr); }
}
[data-ui="v2"] .rv-grid.rv-layout-compact .rv-field.rv-payment-card:not(.is-on) {
  grid-template-rows: auto 0; min-height: 34px; padding: 3px var(--sp-3);
}

[data-ui="v2"] .rv-tradegrid {
  display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap;
}
[data-ui="v2"] .rv-seg button {
  border: 0; background: none; padding: 5px 12px; cursor: pointer;
  font: 500 12.5px/1.3 var(--font-sans); color: var(--ink-3); border-radius: var(--r-sm);
}
[data-ui="v2"] .rv-seg button.on { background: var(--surface); color: var(--ink); font-weight: 600; box-shadow: var(--shadow); }
[data-ui="v2"] .rv-inline { display: inline-flex; align-items: center; gap: var(--sp-3); font-size: 12.5px; color: var(--ink-2); }
[data-ui="v2"] .rv-inline { min-width: 0; }
[data-ui="v2"] .rv-inline select { width: auto; min-width: 0; max-width: 132px; flex: 0 1 auto; text-overflow: ellipsis; }
/* Volba „Generovat DRC / PDP" je DŮSLEDEK typu obchodu, ne rovnocenné pole —
   dostane vlastní pruh pod segmentem, aby bylo vidět, k čemu se váže. */
[data-ui="v2"] .rv-tradegrid > .t-meta { flex: 1 1 120px; min-width: 0; }
[data-ui="v2"] .rv-tradegrid .rv-seg { flex: 0 0 auto; }
[data-ui="v2"] .rv-seg button { white-space: nowrap; }
[data-ui="v2"] .rv-drcbox {
  flex: 0 1 auto; display: inline-flex; align-items: center; gap: var(--sp-2);
  min-width: 0;
}
[data-ui="v2"] .rv-drcbox .chk {
  box-sizing: border-box; min-height: 32px; padding: 5px 10px;
  border: 1px solid var(--line-2); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink-2);
  font: 600 12.5px/1.3 var(--font-sans);
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-drcbox .chk:hover { border-color: var(--info); background: var(--info-soft); }
[data-ui="v2"] .rv-drcbox .chk:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--ink); }
[data-ui="v2"] .rv-drcbox select {
  box-sizing: border-box; width: auto; min-width: 88px; min-height: 32px; height: 32px;
}

[data-ui="v2"] .rv-rateblock {
  min-width: 0;
}
[data-ui="v2"] .rv-rateline {
  display: flex; gap: var(--sp-2); align-items: center; flex-wrap: nowrap; min-width: 0;
}
[data-ui="v2"] .rv-ratepart { display: grid; gap: 3px; flex: 1 1 112px; min-width: 78px; }
[data-ui="v2"] .rv-rateblock:not(.has-reference) .rv-ratepart { flex: 0 0 96px; }
[data-ui="v2"] .rv-ratepart.ref { flex-basis: 136px; }
[data-ui="v2"] .rv-ratepart > span {
  color: var(--ink-3); font: 600 10.5px/1.2 var(--font-sans); letter-spacing: .01em;
}
[data-ui="v2"] .rv-rateblock:not(.has-reference) .rv-ratepart-label { display: none; }
[data-ui="v2"] .rv-rateline input { width: 100%; min-width: 0; font-variant-numeric: tabular-nums; }
[data-ui="v2"] .rv-rateop,
[data-ui="v2"] .rv-ratecurrency {
  align-self: flex-end; min-height: 32px; display: inline-flex; align-items: center;
  color: var(--ink-3); font: 600 12px/1 var(--font-sans);
}
[data-ui="v2"] .rv-rateline .v2-btn {
  flex: 0 0 auto; min-height: 32px; padding: 6px 12px; border-radius: var(--r-md);
  white-space: nowrap;
}
[data-ui="v2"] .rv-rateequation {
  grid-column: 2;
  margin-top: 6px; color: var(--ink-2); font: 700 12px/1.35 var(--font-sans);
  font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .rv-rateinfo {
  grid-column: 2;
  margin-top: 4px; font-size: 12px; line-height: 1.4; border-radius: var(--r-sm);
  padding: 4px 8px;
}
[data-ui="v2"] .rv-rateinfo.ok { background: var(--ok-soft); color: var(--ok); }
[data-ui="v2"] .rv-rateinfo.warn { background: var(--warn-soft); color: var(--warn); }
@media (max-width: 760px) {
  [data-ui="v2"] .rv-rateequation,
  [data-ui="v2"] .rv-rateinfo { grid-column: 1; }
}

/* editor řádků — všechna tři místa (hlavička/řádky/patička) z jedné mřížky */
[data-ui="v2"] .rv-rtwrap { overflow-x: auto; border-top: 1px solid var(--line); }
[data-ui="v2"] .rv-rt { display: grid; min-width: 900px; align-items: center; }
[data-ui="v2"] .rv-rt.rv-layout-compact { min-width: 720px; }
[data-ui="v2"] .rv-rt.rv-layout-compact .th { padding-block: 5px; }
[data-ui="v2"] .rv-rt.rv-layout-compact .td { padding-block: 1px; }
[data-ui="v2"] .rv-rt.rv-layout-compact .td input,
[data-ui="v2"] .rv-rt.rv-layout-compact .td select { height: 26px; padding-block: 2px; }
[data-ui="v2"] .rv-common-dims {
  padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--line); background: var(--surface-2);
}
[data-ui="v2"] .rv-common-dims-head { display: flex; align-items: center; margin-bottom: var(--sp-3); }
[data-ui="v2"] .rv-common-dims-head > span { display: flex; flex-direction: column; }
[data-ui="v2"] .rv-common-dims-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--sp-3);
}
[data-ui="v2"] .rv-common-dim { display: flex; flex-direction: column; gap: 3px; min-width: 0; font: 600 12px/1.3 var(--font-sans); color: var(--ink-3); }
[data-ui="v2"] .rv-common-dim-label { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; min-height: 18px; }
[data-ui="v2"] .rv-common-dim-control { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
[data-ui="v2"] .rv-common-dim-control .rv-smart-dim-field { flex: 1 1 auto; }
[data-ui="v2"] .rv-smart-dim-field { position: relative; display: block; width: 100%; min-width: 0; }
[data-ui="v2"] .rv-smart-dim-field > select,
[data-ui="v2"] .rv-rt .td .rv-smart-dim-field > select,
[data-ui="v2"] .rv-common-dim-control .rv-smart-dim-field > select {
  width: 100%; padding-left: 29px;
}
/* Samostatný levý sloupek drží hodnotu mimo ikonu a je rezervovaný i bez
   dohledaného zdroje. Všechny dimenze proto začínají na stejné svislé ose. */
[data-ui="v2"] .rv-smart-dim-marker {
  position: absolute; z-index: 1; inset: 1px auto 1px 1px; width: 23px;
  display: flex; align-items: center; justify-content: center;
  border-right: 1px solid var(--line); border-radius: calc(var(--r-sm) - 1px) 0 0 calc(var(--r-sm) - 1px);
  background: var(--surface-2); color: transparent; pointer-events: none;
}
[data-ui="v2"] .rv-smart-dim-marker .icon { font-size: 12px; }
[data-ui="v2"] .rv-smart-dim-field.has-issue > select { padding-right: 52px; border-color: var(--bad); }
[data-ui="v2"] .rv-smart-dim-issue {
  position: absolute; z-index: 2; right: 28px; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 18px; height: 18px;
  border-radius: var(--r-xs); background: var(--bad-soft); color: var(--bad);
  cursor: help;
}
[data-ui="v2"] .rv-smart-dim-issue[hidden] { display: none; }
[data-ui="v2"] .rv-smart-dim-issue .icon { font-size: 15px; }
[data-ui="v2"] .rv-smart-dim-field.has-fill-source > select { border-color: var(--info); }
[data-ui="v2"] .rv-smart-dim-field.has-fill-source .rv-smart-dim-marker {
  background: var(--info-soft); color: var(--info); border-right-color: color-mix(in srgb, var(--info) 45%, var(--line));
  cursor: help; pointer-events: auto;
}
/* Ruční hromadné doplnění používá stejný pevný sloupek jako AI původ, ale
   jantarová ruka ho nezamění ani za modrou AI jiskru, ani za zelené ověření. */
[data-ui="v2"] .rv-smart-dim-field.fill-source-manual-bulk > select { border-color: var(--warn); }
[data-ui="v2"] .rv-smart-dim-field.fill-source-manual > select { border-color: var(--warn); }
[data-ui="v2"] .rv-smart-dim-field.fill-source-manual-bulk .rv-smart-dim-marker,
[data-ui="v2"] .rv-smart-dim-field.fill-source-manual .rv-smart-dim-marker {
  background: var(--warn-soft); color: var(--warn); border-right-color: color-mix(in srgb, var(--warn) 45%, var(--line));
}
[data-ui="v2"] .rv-smart-suggest {
  grid-column: 1 / -1; display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  padding: var(--sp-3) var(--sp-4); border-block: 1px solid var(--info);
  background: var(--info-soft); color: var(--ink-2);
}
[data-ui="v2"] .rv-smart-suggest-title { display: inline-flex; align-items: center; gap: 7px; min-width: 170px; }
[data-ui="v2"] .rv-smart-suggest-title > .icon { color: var(--info); font-size: 18px; }
[data-ui="v2"] .rv-smart-suggest-title > span { display: flex; flex-direction: column; font-size: 12px; }
[data-ui="v2"] .rv-smart-suggest-title small { color: var(--ink-3); font-weight: 400; }
[data-ui="v2"] .rv-smart-suggest-items { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; flex: 1 1 360px; }
[data-ui="v2"] .rv-smart-suggest-items .v2-btn { max-width: 100%; white-space: normal; text-align: left; }
[data-ui="v2"] .rv-smart-suggest-items .v2-btn > span:first-child { overflow-wrap: anywhere; }
[data-ui="v2"] .rv-rt .rrow { display: contents; }
[data-ui="v2"] .rv-rt .th {
  position: sticky; top: 0; z-index: 1;
  background: var(--surface-2); border-bottom: 1px solid var(--line);
  font: 700 12px/1.3 var(--font-sans); text-transform: uppercase; letter-spacing: .02em;
  color: var(--ink-3); padding: 8px 6px; white-space: nowrap;
}
[data-ui="v2"] .rv-rt .th.tr { text-align: right; }
[data-ui="v2"] .rv-rt .td { padding: 3px 3px; min-width: 0; }
[data-ui="v2"] .rv-rt .td input,
[data-ui="v2"] .rv-rt .td select {
  width: 100%; box-sizing: border-box; min-width: 0;
  border: 1px solid var(--field-line); border-radius: var(--r-sm);
  background: var(--surface); color: var(--ink);
  font: 400 12.5px/1.35 var(--font-sans); padding: 6px 7px;
}
[data-ui="v2"] .rv-rt .td input.num,
[data-ui="v2"] .rv-rt .td select.num { text-align: right; font-variant-numeric: tabular-nums; }
/* Dan v korunach se nezadava - je to rozdil celkem minus zaklad, stejne jako
   v ABRA Aiva. Vypada jako pole, ale je to jen hodnota, takze nesvadi ke psani. */
/* Rekapitulace v korunách patří přímo pod hlavní cizoměnovou tabulku. Jantar
   ji odliší jako lokální přepočet, aniž by působila jako varování. */
[data-ui="v2"] .rv-localrecap {
  margin-top: var(--sp-4); padding: var(--sp-4) var(--sp-5);
  border: 1px solid var(--warn); border-radius: var(--r-lg); background: var(--warn-soft);
}
[data-ui="v2"] .rv-localrecap .t-eyebrow { margin-bottom: var(--sp-2); color: var(--warn); }
[data-ui="v2"] .rv-localrecap .rv-vt { min-width: 0; opacity: 1; }
[data-ui="v2"] .rv-localrecap .t-meta { margin: var(--sp-2) 0 0; color: var(--ink-2); }
[data-ui="v2"] .rv-rt .td .rv-numro {
  display: block; width: 100%; box-sizing: border-box;
  border: 1px dashed var(--field-line); border-radius: var(--r-sm);
  background: transparent; color: var(--ink-2);
  font: 400 12.5px/1.35 var(--font-sans); padding: 6px 7px;
  text-align: right; font-variant-numeric: tabular-nums;
}
/* Bunka radku s blokujici vyhradou — badge drzet UVNITR bunky, tabulka
   ma overflow-x:auto a presah by vyrobil vodorovny scrollbar.
   Trida .rv-blk (drive .blk): stejna sematika i barva jako u pole hlavicky. */
[data-ui="v2"] .rv-rt .td.rv-blk { position: relative; }
[data-ui="v2"] .rv-rt .td.rv-blk > input, [data-ui="v2"] .rv-rt .td.rv-blk > select {
  border-color: var(--bad); background: var(--bad-soft);
}
[data-ui="v2"] .rv-rt .td.rv-blk::after {
  content: 'error'; position: absolute; top: 0; right: 1px;
  font-family: 'Material Symbols Rounded'; font-feature-settings: 'liga';
  font-size: 13px; line-height: 1; color: var(--bad); pointer-events: none;
}
[data-ui="v2"] .rv-rt .tf {
  background: var(--surface-2); border-top: 1px solid var(--line);
  padding: 6px 4px; min-width: 0;
  /* .rv-rt ma align-items:center — bunky s ruzne vysokym obsahem se
     centrovaly kazda jinak a jejich border-top tvoril rozlamanou caru.
     Roztazena bunka = jedna souvisla linka i souvisly podklad. */
  align-self: stretch; display: flex; align-items: center;
}
[data-ui="v2"] .rv-bulktools { display: inline-flex; gap: 3px; align-items: center; }
/* Ikona u „Všem" musí být drobná — buňky patičky editoru mají pevné stopy. */
[data-ui="v2"] .rv-bulktools .v2-btn.xsmall .icon { font-size: 13px; }
[data-ui="v2"] .rv-bulktools .v2-btn.xsmall { gap: 3px; }

/* rekapitulace */
[data-ui="v2"] .rv-recaphead { border-top: 1px solid var(--line); }
[data-ui="v2"] .rv-recap {
  display: flex; gap: var(--sp-9); align-items: flex-start; flex-wrap: wrap;
  padding: 0 var(--sp-7) var(--sp-6);
}
[data-ui="v2"] .rv-vatsum {
  display: flex; gap: var(--sp-9); align-items: flex-start; flex-wrap: wrap;
  flex: 1 1 auto; min-width: 0;
}
[data-ui="v2"] .rv-recap-main { flex: 1 1 410px; min-width: 410px; }
/* Číselné hodnoty rekapitulace na 14 px (účetní z nich čte částky) —
   min-width jde nahoru o stejný díl, aby se sloupce nezmáčkly. */
[data-ui="v2"] .rv-vt { min-width: 410px; }
[data-ui="v2"] .rv-vt .vrow > :nth-child(4) { padding-left: 50px; }
[data-ui="v2"] .rv-vt .vrow {
  display: grid; grid-template-columns: 84px 1fr 1fr 1fr; gap: var(--sp-3);
  padding: 4px 0; font-size: 14px;
}
[data-ui="v2"] .rv-vt .vrow b, [data-ui="v2"] .rv-vt .vrow .tr { text-align: right; }
[data-ui="v2"] .rv-vt .vhead {
  font: 700 12px/1.3 var(--font-sans); text-transform: uppercase;
  letter-spacing: .02em; color: var(--ink-3); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .rv-vt .vsum { border-top: 1px solid var(--line); font-weight: 700; }
[data-ui="v2"] .rv-vlines { width: 330px; flex: 0 0 auto; margin-left: auto; }
[data-ui="v2"] .rv-vlines .row {
  display: flex; justify-content: space-between; gap: var(--sp-4);
  padding: 4px 0; font-size: 13px;
}
[data-ui="v2"] .rv-vlines .row.rv-recap-control-row { align-items: center; }
[data-ui="v2"] .rv-recap-headbar { flex-wrap: nowrap; transition: background var(--dur-fast) var(--ease); }
[data-ui="v2"] .rv-recap-headbar:hover { background: var(--surface-2); }
[data-ui="v2"] .rv-recap-headmain {
  flex: 1 1 auto; min-width: 0; padding: 0; border: 0; background: transparent;
  color: var(--ink); text-align: left; cursor: pointer;
}
[data-ui="v2"] .rv-recap-headmain:focus-visible,
[data-ui="v2"] .rv-recap-collapse:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .rv-recap-vatdoc {
  display: inline-flex; align-items: center; gap: var(--sp-2); flex: 0 0 auto;
  box-sizing: border-box; min-height: 32px; padding: 4px 9px; border: 1px solid var(--line-2);
  border-radius: var(--r-md); background: var(--surface); color: var(--ink);
  font: 650 12px/1.3 var(--font-sans); cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-recap-vatdoc:hover { border-color: var(--info); background: var(--info-soft); }
[data-ui="v2"] .rv-recap-vatdoc input {
  width: 18px; height: 18px; flex: 0 0 18px; margin: 0;
  accent-color: var(--accent); cursor: pointer;
}
[data-ui="v2"] .rv-recap-vatdoc.rv-blk { border-color: var(--bad); background: var(--bad-soft); }
[data-ui="v2"] .rv-recap-collapse {
  flex: 0 0 auto; border-color: transparent; background: transparent; box-shadow: none;
}
[data-ui="v2"] .rv-recap-collapse[aria-expanded="false"] .rv-section-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .rv-rounding-row > label { cursor: pointer; }
[data-ui="v2"] .rv-rounding-control {
  display: inline-flex; align-items: center; width: 146px; min-width: 0;
  border: 1px solid var(--info); border-radius: var(--r-md);
  background: var(--info-soft); overflow: hidden;
  transition: box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-rounding-control:focus-within {
  border-color: var(--focus); box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus) 22%, transparent);
}
[data-ui="v2"] .rv-rounding-control input {
  min-width: 0; width: 100%; border: 0; outline: 0; background: transparent;
  color: var(--ink); padding: 5px 5px 5px 8px; text-align: right;
  font: 650 13px/1.35 var(--font-sans); font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .rv-rounding-control > span {
  padding-right: 8px; color: var(--ink-3); font: 700 10px/1 var(--font-sans);
}
[data-ui="v2"] .rv-vlines .row.grand { border-top: 1px solid var(--line); padding-top: 8px; }
[data-ui="v2"] .rv-vlines .row.grand b { font-size: 19px; font-weight: 800; color: var(--accent-text); }
[data-ui="v2"] .rv-recap-headbar .v2-pill { white-space: nowrap; }
@media (max-width: 620px) {
  [data-ui="v2"] .rv-recap-headbar { flex-wrap: wrap; row-gap: var(--sp-3); }
  [data-ui="v2"] .rv-recap-headmain { flex-basis: calc(100% - 40px); }
  [data-ui="v2"] .rv-recap-vatdoc { order: 3; margin-left: 30px; }
  [data-ui="v2"] .rv-recap-main { min-width: 100%; }
}

[data-ui="v2"] .rv-sumbar { display: flex; gap: var(--sp-3); flex-wrap: wrap; flex-basis: 100%; }
[data-ui="v2"] .rv-chip {
  display: inline-flex; align-items: center; gap: 6px;
  border-radius: 999px; padding: 4px 10px; font-size: 12px;
  background: var(--surface-2); border: 1px solid var(--line); color: var(--ink-2);
}
[data-ui="v2"] .rv-chip i { font-style: normal; font-weight: 700; }
[data-ui="v2"] .rv-chip.ok { background: var(--ok-soft); border-color: var(--ok); color: var(--ink); }
[data-ui="v2"] .rv-chip.ok i { color: var(--ok); }
[data-ui="v2"] .rv-chip.bad { background: var(--bad-soft); border-color: var(--bad); color: var(--ink); }
[data-ui="v2"] .rv-chip.bad i { color: var(--bad); }
[data-ui="v2"] .rv-chip.neutral i { color: var(--ink-3); }

@media (max-width: 1280px) {
  [data-ui="v2"] .rv-vlines { margin-left: 0; }
}

/* ============================================================
   Hledatelné číselníky — panel žije v document.body (portál), aby ho
   neořízl overflow tabulky řádků a aby přežil její překreslení.
   Nativní select zůstává ve stromu jako zdroj hodnoty.
   ============================================================ */

[data-ui="v2"] select[data-combo] { cursor: pointer; }

[data-ui="v2"] #v2-combo-panel {
  position: fixed; z-index: 120;
  display: flex; flex-direction: column; gap: 0;
  background: var(--surface); border: 1px solid var(--line-2);
  border-radius: var(--r-md); box-shadow: var(--shadow-lg, 0 12px 32px rgba(20,24,34,.28));
  overflow: hidden;
}
[data-ui="v2"] #v2-combo-panel[hidden] { display: none; }
[data-ui="v2"] #v2-combo-input {
  border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
  padding: 9px 11px; background: var(--surface); color: var(--ink);
  font: 400 13px/1.4 var(--font-sans); width: 100%; box-sizing: border-box;
}
[data-ui="v2"] #v2-combo-input:focus { outline: none; border-bottom-color: var(--accent); }
[data-ui="v2"] #v2-combo-list { max-height: 288px; overflow-y: auto; overscroll-behavior: contain; }
[data-ui="v2"] #v2-combo-list [role="option"] {
  display: flex; flex-direction: column; justify-content: center; gap: 1px;
  min-height: 34px; padding: 5px 11px; cursor: pointer;
  border-bottom: 1px solid var(--line);
}
[data-ui="v2"] #v2-combo-list [role="option"]:last-child { border-bottom: 0; }
[data-ui="v2"] #v2-combo-list [role="option"] b { font: 600 12.5px/1.3 var(--font-sans); color: var(--ink); }
[data-ui="v2"] #v2-combo-list [role="option"] span {
  font: 400 11.5px/1.3 var(--font-sans); color: var(--ink-3); white-space: normal;
}
[data-ui="v2"] #v2-combo-list [role="option"]:hover { background: var(--surface-2); }
[data-ui="v2"] #v2-combo-list [role="option"].is-active { background: var(--accent-soft); }
[data-ui="v2"] #v2-combo-list [role="option"].is-active b { color: var(--accent-text); }
[data-ui="v2"] #v2-combo-list [role="option"][aria-disabled="true"] { opacity: .5; cursor: default; }
[data-ui="v2"] .v2-combo-empty {
  padding: 12px; font: 400 12.5px/1.4 var(--font-sans); color: var(--ink-3); text-align: center;
}

/* Na dotykových zařízeních panel u spodního okraje, ať ho neschová klávesnice */
@media (max-width: 560px) {
  [data-ui="v2"] #v2-combo-list { max-height: 42vh; }
  [data-ui="v2"] #v2-combo-list [role="option"] { min-height: 40px; }
}


/* Nabídka nástrojů nad řádky. Kreslí se do <body> a polohuje podle tlačítka —
   v buňce mřížky řádků by ji uřízl vodorovný posuvník. Vzhled si bere ze
   stejných proměnných jako panel číselníku, aby to bylo jedno rozhraní. */
[data-ui="v2"] #rv-tools-menu {
  position: fixed; z-index: 120; min-width: 320px; max-width: 420px;
  background: var(--surface); border: 1px solid var(--line-2);
  border-radius: var(--r-md); box-shadow: var(--shadow-lg, 0 12px 32px rgba(20,24,34,.28));
  overflow: hidden; padding: 0;
}
[data-ui="v2"] #rv-tools-menu[hidden] { display: none; }
[data-ui="v2"] #rv-tools-menu [role="menuitem"] {
  display: flex; align-items: flex-start; gap: var(--sp-3); width: 100%;
  padding: 9px 11px; cursor: pointer; text-align: left;
  background: none; border: 0; border-bottom: 1px solid var(--line);
}
[data-ui="v2"] #rv-tools-menu [role="menuitem"]:last-child { border-bottom: 0; }
[data-ui="v2"] #rv-tools-menu [role="menuitem"]:hover,
[data-ui="v2"] #rv-tools-menu [role="menuitem"]:focus-visible {
  background: var(--surface-2); outline: none;
}
[data-ui="v2"] #rv-tools-menu [role="menuitem"] .icon { color: var(--ink-3); font-size: 18px; }
[data-ui="v2"] #rv-tools-menu [role="menuitem"] b {
  display: block; font: 600 12.5px/1.3 var(--font-sans); color: var(--ink);
}
[data-ui="v2"] #rv-tools-menu [role="menuitem"] small {
  display: block; margin-top: 1px;
  font: 400 11.5px/1.35 var(--font-sans); color: var(--ink-3); white-space: normal;
}

/* ---------- Miniatura dokladu ve frontě ---------- */

[data-ui="v2"] .qthumb {
  width: 40px; height: 54px; padding: 0; overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--r-xs);
  background: var(--bg-2); display: grid; place-items: center; cursor: pointer;
}
[data-ui="v2"] .qthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
[data-ui="v2"] .qthumb:hover { border-color: var(--accent); }
[data-ui="v2"] .qthumb.ph { cursor: default; }
[data-ui="v2"] .qthumb .ext {
  font: 700 9px/1 var(--font-sans); color: var(--ink-3);
  letter-spacing: .03em; text-transform: uppercase;
}
/* Ribbon typu souboru přes spodní hranu miniatury: PDF akcentní, ISDOC modrý. */
[data-ui="v2"] .qthumb { position: relative; }
[data-ui="v2"] .qthumb .rib {
  position: absolute; left: 0; right: 0; bottom: 0;
  font: 700 8px/1.4 var(--font-sans); letter-spacing: .05em; text-align: center;
  padding: 1px 0 2px; pointer-events: none;
}
[data-ui="v2"] .qthumb .rib.pdf { background: var(--accent-fill); color: var(--on-accent); }
[data-ui="v2"] .qthumb .rib.isdoc { background: var(--info); color: var(--on-ok); }
[data-ui="v2"] .qthumb .rib.img { background: var(--ok); color: var(--on-ok); }
[data-ui="v2"] .qthumb.isd .icon { font-size: 20px; color: var(--ink-3); }
[data-ui="v2"] .qstate { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
[data-ui="v2"] .v2-pill.qai { font-size: 10.5px; padding: 1px 7px; }

@media (max-width: 1100px) {
  [data-ui="v2"] .v2-qrow { grid-template-columns: 19px 40px 44px minmax(140px, 1fr) 95px 190px 30px; }
}

/* Zpráva o průběhu přímo v hromadné liště — výsledek exportu musí být vidět
   tam, odkud se spustil, ne v poznámce nad tabulkou. */
[data-ui="v2"] .v2-bulk .msg {
  font: 400 12px/1.3 var(--font-sans); color: var(--on-ok, #fff); opacity: .85;
  max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] .v2-bulk .msg:empty { display: none; }

/* Přehled klávesových zkratek */
[data-ui="v2"] .v2-keys {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: var(--sp-3) var(--sp-5); margin: 0; align-items: baseline;
}
[data-ui="v2"] .v2-keys dt { margin: 0; }
[data-ui="v2"] .v2-keys dd { margin: 0; font-size: 13px; color: var(--ink-2); }
[data-ui="v2"] .v2-keys kbd {
  display: inline-block; padding: 2px 7px; border: 1px solid var(--line-2);
  border-bottom-width: 2px; border-radius: var(--r-sm);
  background: var(--surface-2); color: var(--ink);
  font: 600 11.5px/1.5 var(--font-mono); white-space: nowrap;
}

/* Řádky v režimu PDP v rekapitulaci — sazba bez daně vypadá jinak jako chyba */
[data-ui="v2"] .rv-vt .vrow.pdp span:first-child { color: var(--accent-text); font-weight: 600; }
[data-ui="v2"] .rv-vt .vrow.note {
  font: 400 11.5px/1.4 var(--font-sans); color: var(--ink-3); padding-top: 2px;
}
/* Tlačítko „Vybrat jinou" ve stavu ověřené firmy */
[data-ui="v2"] .rv-firm-status .v2-btn { margin-left: auto; }


/* Nápověda: dřívější přepisy (skrytý .hpnav, zmenšené hero/hledání) SMAZÁNY —
   redesign „help3" přesunul .hpnav dovnitř postranního panelu jako navigaci
   témat a styluje si hero i hledání sám (sekce ~ř. 1200–1360). Pozdější
   přepisy v souboru ho tiše rozbíjely. Nepřidávat sem žádné .v2-help přepisy. */


/* ---------- Sbalitelné dlaždice Přehledu ---------- */
[data-ui="v2"] .v2-aside-card .ov-card-head { width: 100%; }
[data-ui="v2"] .ov-card-head[aria-expanded="false"] { border-bottom: 0; }
[data-ui="v2"] .ov-card-pad {
  padding: 0 var(--sp-7) var(--sp-6);
  display: flex; flex-direction: column; gap: var(--sp-4); align-items: flex-start;
}
[data-ui="v2"] .ov-card-head .t-num { font-size: 12.5px; color: var(--ink-2); }
[data-ui="v2"] .v2-aside-card.subtle .rv-section-head:hover { background: var(--bg-2); }

/* ---------- Náhled miniatury: tooltip na najetí ---------- */
[data-ui="v2"] #v2-thumbtip {
  position: fixed; z-index: 130; width: 264px; pointer-events: none;
  background: var(--surface); border: 1px solid var(--line-2);
  border-radius: var(--r-md); box-shadow: var(--shadow-pop);
  padding: 6px; display: flex; flex-direction: column; gap: 4px;
}
[data-ui="v2"] #v2-thumbtip img {
  width: 100%; max-height: 340px; object-fit: contain;
  background: var(--bg-2); border-radius: var(--r-xs);
}
[data-ui="v2"] #v2-thumbtip span {
  font: 400 11px/1.3 var(--font-sans); color: var(--ink-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* ISDOC: zmenšená tisková sazba místo bitmapové miniatury */
[data-ui="v2"] #v2-thumbtip .isdocwin {
  width: 100%; height: 340px; overflow: hidden;
  background: var(--paper); border-radius: var(--r-xs); pointer-events: none;
}
[data-ui="v2"] #v2-thumbtip .isdocwin iframe {
  width: 794px; height: 1123px;                 /* A4 při 96 dpi */
  transform: scale(.3174); transform-origin: 0 0; /* 252px okno / 794px */
  border: 0; background: var(--paper); display: block;
}

/* ---------- Náhled miniatury: panel zprava (klik) ---------- */
[data-ui="v2"] #v2-peek {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 92vw); z-index: 125;
  background: var(--surface); border-left: 1px solid var(--line-2); box-shadow: var(--shadow-pop);
  transform: translateX(105%); transition: transform .22s var(--ease);
  display: flex; flex-direction: column;
}
[data-ui="v2"] #v2-peek.open { transform: none; }
[data-ui="v2"] #v2-peek .head {
  display: flex; align-items: center; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] #v2-peek .head b {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] #v2-peek .body { flex: 1; overflow: auto; padding: var(--sp-4); background: var(--bg-2); }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] #v2-peek { transition: none; }
}

/* ---------- Dlaždička s ikonou u pravidla na míru ---------- */
[data-ui="v2"] .v2-modrule-head .tile {
  width: 30px; height: 30px; flex: 0 0 auto; border-radius: var(--r-sm);
  display: grid; place-items: center;
}
[data-ui="v2"] .v2-modrule-head .tile .icon { font-size: 17px; }
[data-ui="v2"] .v2-modrule-head .tile.tone-warn { background: var(--warn-soft); color: var(--warn); }
[data-ui="v2"] .v2-modrule-head .tile.tone-accent { background: var(--accent-soft); color: var(--accent-text); }
[data-ui="v2"] .v2-modrule-head .tile.tone-info { background: var(--info-soft); color: var(--info); }
[data-ui="v2"] .v2-modrule-head .tile.tone-mut { background: var(--surface-2); color: var(--ink-3); }


/* ============================================================
   fb6 — Přehled: kompaktní hustota živé fronty (#v2-qcard)
   ============================================================ */
[data-ui="v2"] [data-density="compact"] .v2-qrow {
  grid-template-columns: 19px 30px 44px minmax(145px, 1fr) minmax(125px, 160px) 95px 190px 30px;
  gap: var(--sp-4);
  padding: 6px var(--sp-6);
}
[data-ui="v2"] [data-density="compact"] .qthumb { width: 30px; height: 40px; }
[data-ui="v2"] [data-density="compact"] .v2-qrow .qid b { font-size: 13px; }
[data-ui="v2"] [data-density="compact"] .v2-qrow .qid small { font-size: 11px; }
[data-ui="v2"] [data-density="compact"] .v2-qrow .qamt { font-size: 13px; }
[data-ui="v2"] [data-density="compact"] .v2-pill { font-size: 11px; padding: 2px 7px; }
[data-ui="v2"] [data-density="compact"] .v2-pill .icon { font-size: 13px; }
[data-ui="v2"] [data-density="compact"] .v2-btn.small { padding: 2px var(--sp-4); font-size: 12px; }
@media (max-width: 1100px) {
  [data-ui="v2"] [data-density="compact"] .v2-qrow {
    grid-template-columns: 19px 30px 44px minmax(120px, 1fr) minmax(105px, 125px) 85px 160px 30px;
  }
}


/* ============================================================
   fb7 — Moje hlášení (konverzace nad OCR zpětnou vazbou)
   ============================================================ */
[data-ui="v2"] .v2-oq-tools {
  display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap;
}
[data-ui="v2"] .v2-oq-filter { flex: 0 1 auto; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
/* Nepřečtenost je JINÁ osa než stav případu — vlastní přepínač, ne čtvrtá
   stavová pilulka v téže radiogroup. */
[data-ui="v2"] .v2-oq-unread { margin-left: auto; }
[data-ui="v2"] .v2-oq-unread[aria-pressed="true"] {
  border-color: var(--accent); color: var(--accent-text); background: var(--accent-soft);
}
[data-ui="v2"] .v2-oq-unread .v2-badge { background: var(--accent); color: var(--on-accent); }
[data-ui="v2"] .v2-msg.from-system { align-self: center; text-align: center; background: none; border: 0; padding: 2px 0; }
[data-ui="v2"] .v2-modreq.oq-new { border-left: 3px solid var(--accent); }
[data-ui="v2"] .v2-modreq.oq-new .v2-modreq-head .col b { font-weight: 700; }
[data-ui="v2"] .oq-dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); margin-right: 6px; vertical-align: middle;
}

/* ---------- seznam + detail (od 1100 px) ---------- */
[data-ui="v2"] .v2-oq-wrap {
  display: grid; grid-template-columns: minmax(340px, 460px) minmax(0, 1fr);
  gap: var(--sp-5); align-items: start;
}
[data-ui="v2"] .v2-oq-list .v2-modreq-list { padding: var(--sp-2); }
[data-ui="v2"] .v2-oq-list .v2-modreq-head { grid-template-columns: minmax(0, 1fr) auto 22px; }
[data-ui="v2"] .v2-oq-list .v2-modreq.is-sel { border-color: var(--accent-line); background: var(--accent-soft); }
[data-ui="v2"] .v2-oq-list .v2-modreq-head[aria-current="true"] { background: transparent; }
[data-ui="v2"] .v2-oq-detail { position: sticky; top: var(--sticky-top); }
[data-ui="v2"] .v2-oq-dhead {
  display: flex; gap: var(--sp-4); align-items: flex-start;
  padding: var(--sp-6) var(--sp-7) var(--sp-4);
}
[data-ui="v2"] .v2-oq-dhead .col { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
[data-ui="v2"] .v2-oq-dhead .col b { font: 600 15px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-oq-detail .v2-modreq-body {
  border-top: 1px solid var(--line); padding: var(--sp-6) var(--sp-7) var(--sp-7);
}
/* V detailu má konverzace vlastní panel — strop 320 px z akordeonu tu nedává
   smysl. max() drží rozumné minimum i na nízkém okně (jinak by výpočet klesl
   pod nulu a panel by zmizel). */
[data-ui="v2"] .v2-oq-detail .v2-msgs { max-height: max(220px, calc(100vh - var(--sticky-top) - 280px)); }
[data-ui="v2"] .v2-oq-detail .v2-msg.from-customer { margin-right: 32px; }
[data-ui="v2"] .v2-oq-detail .v2-msg.from-logicode { margin-left: 32px; }
/* Pojistka pro změnu šířky bez překreslení (JS pod 1100 px kreslí akordeon). */
@media (max-width: 1099px) {
  [data-ui="v2"] .v2-oq-wrap { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-oq-detail { position: static; }
}
@media (max-width: 620px) {
  [data-ui="v2"] .v2-oq-unread { margin-left: 0; }
}


/* ============================================================
   Admin v2 — zápisové akce (Increment A)
   ============================================================ */
[data-ui="v2"] .v2-arow .acol.acts { flex: 0 0 auto; flex-direction: row; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
[data-ui="v2"] .v2-arow .acol.mailbox .mbacts { display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; margin-top: var(--sp-2); }
[data-ui="v2"] .v2-tenant .v2-card-head .v2-btn.xsmall { margin-left: var(--sp-3); }
[data-ui="v2"] .v2-teststeps { display: flex; flex-direction: column; gap: var(--sp-3); }
[data-ui="v2"] .v2-teststep { display: flex; gap: var(--sp-3); align-items: flex-start; }
[data-ui="v2"] .v2-teststep .icon { flex: none; font-size: 18px; margin-top: 1px; }
[data-ui="v2"] .v2-teststep.tone-ok .icon { color: var(--ok); }
[data-ui="v2"] .v2-teststep.tone-warn .icon { color: var(--warn); }
[data-ui="v2"] .v2-teststep.tone-bad .icon { color: var(--bad); }
[data-ui="v2"] .v2-teststep > span:last-child { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
[data-ui="v2"] .v2-addr { display: flex; align-items: center; gap: var(--sp-2); }
[data-ui="v2"] .v2-addr .v2-input { flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .v2-addr .suf { flex: none; color: var(--ink-3); font: 400 13px/1.3 var(--font-mono); }
[data-ui="v2"] .v2-readonly { padding: 8px var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2); color: var(--ink-2); }
[data-ui="v2"] .ari-connection-summary { display: grid; gap: var(--sp-1); }
[data-ui="v2"] .ari-connection-summary b { overflow-wrap: anywhere; }
[data-ui="v2"] .ari-connection-summary .t-meta { display: block; }

[data-ui="v2"] .v2-arow .acol.docs { flex: 1 1 240px; flex-direction: row; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }


/* ============================================================
   Admin — přehlednější rozložení firem (bloky spojení, mřížka uživatelů)
   ============================================================ */
[data-ui="v2"] .adm-sechead {
  width: 100%; border: 0; background: none; cursor: pointer; text-align: left;
  font: inherit; color: inherit; border-top: 1px solid var(--line);
}
[data-ui="v2"] .adm-sechead:hover { background: var(--surface-2); }
[data-ui="v2"] .adm-sechead[aria-expanded="false"] .rv-section-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .adm-sechead .rv-section-chevron { color: var(--ink-3); transition: transform var(--dur) var(--ease); }
[data-ui="v2"] .adm-sect { display: flex; flex-direction: column; gap: var(--sp-5); }

/* spojení jako samostatný blok — dřív 7 zmáčknutých sloupců v řádku */
[data-ui="v2"] .adm-conn {
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface); padding: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-4);
}
[data-ui="v2"] .adm-conn-head { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
[data-ui="v2"] .adm-conn-head .nm { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
[data-ui="v2"] .adm-conn-head .nm b { font: 600 14px/1.3 var(--font-sans); }
[data-ui="v2"] .adm-conn-head .spacer { flex: 1 1 auto; }
[data-ui="v2"] .adm-acts { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
[data-ui="v2"] .adm-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--sp-3) var(--sp-6); margin: 0;
}
[data-ui="v2"] .adm-meta dt { font: 600 10.5px/1.3 var(--font-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3); }
[data-ui="v2"] .adm-meta dd { margin: 2px 0 0; font-size: 12.5px; overflow-wrap: anywhere; }
[data-ui="v2"] .adm-mb {
  display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap;
  padding-top: var(--sp-4); border-top: 1px dashed var(--line);
}
[data-ui="v2"] .adm-mb .adm-acts { margin-left: auto; }
/* Tunel nese víc řádků než schránka (stav, adresa, diagnostika). */
[data-ui="v2"] .adm-tunel .adm-tunel-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
[data-ui="v2"] .adm-tunel .adm-tunel-head { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
[data-ui="v2"] .adm-tunel code { font-size: 12px; overflow-wrap: anywhere; }

/* --- Sekce Instalace tunelu --- */
[data-ui="v2"] .tun-doc { display: flex; flex-direction: column; gap: var(--sp-5); }
[data-ui="v2"] .tun-doc .v2-card > .t-eyebrow { display: block; margin-bottom: var(--sp-4); }
[data-ui="v2"] .tun-doc p { margin: 0 0 var(--sp-3); }
[data-ui="v2"] .tun-doc p:last-child { margin-bottom: 0; }

/* Kazdy krok nese stitek, KDE se dela - pulka postupu je v prohlizeci
   a pulka na cizim pocitaci, a prave v tom se da nejsnaz zamotat. */
[data-ui="v2"] .tun-krok { border-top: 1px solid var(--line); padding: var(--sp-5) 0; }
[data-ui="v2"] .tun-krok:first-of-type { border-top: 0; padding-top: 0; }
[data-ui="v2"] .tun-krok:last-of-type { padding-bottom: 0; }
[data-ui="v2"] .tun-krok-hd { display: flex; gap: var(--sp-4); align-items: flex-start; margin-bottom: var(--sp-3); }
[data-ui="v2"] .tun-krok-hd > div { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); min-width: 0; }
[data-ui="v2"] .tun-krok-hd b { font: 600 15.5px/1.35 var(--font-sans); }
[data-ui="v2"] .tun-cislo {
  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 8px;
  display: grid; place-items: center; background: var(--ink); color: var(--surface);
  font: 600 13px/1 var(--font-sans); font-variant-numeric: tabular-nums;
}
[data-ui="v2"] .tun-krok-telo { padding-left: 38px; }
[data-ui="v2"] .tun-cmd {
  margin: 0 0 var(--sp-3); padding: var(--sp-4) var(--sp-5); overflow-x: auto;
  background: var(--surface-2, var(--ground)); border: 1px solid var(--line);
  border-radius: var(--r-lg); font: 400 12.5px/1.6 var(--font-mono, monospace);
  color: var(--ink); white-space: pre;
}
[data-ui="v2"] .tun-problem { border-top: 1px solid var(--line); padding: var(--sp-4) 0; }
[data-ui="v2"] .tun-problem:first-of-type { border-top: 0; padding-top: 0; }
[data-ui="v2"] .tun-problem > b { display: block; margin-bottom: var(--sp-2); font-size: 15px; }

[data-ui="v2"] .tun-agent {
  display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-3);
}
[data-ui="v2"] .tun-agent-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 240px; }
[data-ui="v2"] .tun-agent-info b { font-size: 16px; }
[data-ui="v2"] .tun-sum { font-family: var(--font-mono, monospace); font-size: 11px; overflow-wrap: anywhere; }
[data-ui="v2"] .tun-agent .v2-btn { text-decoration: none; }
[data-ui="v2"] .tun-agent.tun-installer {
  border-color: var(--accent-line, var(--line-2));
  background: var(--accent-soft);
}
[data-ui="v2"] .tun-build-title {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3);
}
[data-ui="v2"] .tun-download {
  flex: 0 1 auto; max-width: 25rem; min-height: 40px;
  white-space: normal; text-align: center;
}
[data-ui="v2"] .tun-build-meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: var(--sp-3) var(--sp-6); margin: 0 0 var(--sp-4);
}
[data-ui="v2"] .tun-build-meta > div { min-width: 0; }
[data-ui="v2"] .tun-build-meta dt {
  font: 600 10.5px/1.3 var(--font-sans); letter-spacing: .04em;
  text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .tun-build-meta dd {
  margin: 2px 0 0; font-size: 12.5px; overflow-wrap: anywhere;
}
[data-ui="v2"] .tun-source {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: var(--sp-4);
  margin: 0 0 var(--sp-4); padding: var(--sp-4);
  border: 1px solid var(--line); border-radius: var(--r-lg);
}
[data-ui="v2"] .tun-source > div {
  display: flex; flex: 1 1 240px; min-width: 0; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .tun-source .v2-btn { text-decoration: none; }
[data-ui="v2"] .tun-raw {
  border-top: 1px solid var(--line); margin-top: var(--sp-4); padding-top: var(--sp-3);
}
[data-ui="v2"] .tun-raw > summary {
  cursor: pointer; color: var(--ink-2); font-size: 13px; font-weight: 600;
}
[data-ui="v2"] .tun-raw[open] > summary { margin-bottom: var(--sp-3); }
[data-ui="v2"] .tun-checklist { margin: 0 0 var(--sp-3); padding-left: 20px; }
[data-ui="v2"] .tun-checklist li { margin-bottom: var(--sp-2); }

@media (max-width: 640px) {
  [data-ui="v2"] .tun-krok-telo { padding-left: 0; }
  [data-ui="v2"] .tun-download { width: 100%; max-width: none; }
}

/* --- Prodejni prirucka --- */
[data-ui="v2"] .sk-doc { max-width: 62rem; }
[data-ui="v2"] .sk-hlavicka {
  display: flex; flex-direction: column; gap: 2px;
  padding-bottom: var(--sp-4); margin-bottom: var(--sp-5);
  border-bottom: 2px solid var(--accent);
}
[data-ui="v2"] .sk-hlavicka b { font: 700 20px/1.2 var(--font-sans); }
[data-ui="v2"] .sk-hlavicka span { font: 400 12.5px/1.4 var(--font-sans); color: var(--ink-2); }

[data-ui="v2"] .sk-sekce {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-2xl); padding: var(--sp-6) var(--sp-7);
  margin-bottom: var(--sp-5); box-shadow: var(--shadow);
}
[data-ui="v2"] .sk-sekce h2 {
  margin: 0 0 var(--sp-4); font: 600 19px/1.3 var(--font-sans);
  letter-spacing: -.01em; color: var(--ink);
}
[data-ui="v2"] .sk-sekce p { margin: 0 0 var(--sp-3); }
[data-ui="v2"] .sk-sekce ul { margin: 0 0 var(--sp-3); padding-left: 20px; }
[data-ui="v2"] .sk-sekce li { margin-bottom: 5px; }
[data-ui="v2"] .sk-sekce > *:last-child { margin-bottom: 0; }

/* Sekce jen pro obchodnika. Prirucka se tiska a nosi na schuzky - odmena
   obchodnika je jediny kus, ktery se zakaznikovi ukazat nesmi, takze nesmi
   splynout se zbytkem. Prouzek vlevo a popiska nad nadpisem to odlisi
   i ve chvili, kdy nekdo listuje vytistenymi listy. */
[data-ui="v2"] .sk-sekce.sk-jen-obchodnik {
  border-left: 4px solid var(--warn);
}
[data-ui="v2"] .sk-sekce.sk-jen-obchodnik h2::before {
  content: "Jen pro obchodníka";
  display: block; margin-bottom: 4px;
  font: 600 11px/1.2 var(--font-sans); letter-spacing: .06em;
  text-transform: uppercase; color: var(--warn);
}

[data-ui="v2"] .sk-tab { overflow-x: auto; margin: 0 0 var(--sp-4); }
[data-ui="v2"] .sk-tab table { width: 100%; border-collapse: collapse; font-size: 14px; }
[data-ui="v2"] .sk-tab.uzka table { max-width: 26rem; }
[data-ui="v2"] .sk-tab th {
  text-align: left; font: 600 11.5px/1.4 var(--font-sans);
  letter-spacing: .05em; text-transform: uppercase; color: var(--ink-2);
  padding: 0 var(--sp-4) var(--sp-2) 0; border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .sk-tab td {
  padding: var(--sp-3) var(--sp-4) var(--sp-3) 0;
  border-bottom: 1px solid var(--line); vertical-align: top;
}
[data-ui="v2"] .sk-tab tr:last-child td { border-bottom: 0; }
[data-ui="v2"] .sk-tab small { display: block; color: var(--ink-2); font-size: 12px; }

/* Poznamka je rada obchodnikovi, ne dalsi odstavec textu - musi jit
   prelouskat pri rychlem projizdeni ocima. */
[data-ui="v2"] .sk-pozn {
  border-left: 3px solid var(--line-2, var(--line));
  background: var(--surface-2, var(--ground));
  padding: var(--sp-4) var(--sp-5); border-radius: 0 var(--r-lg) var(--r-lg) 0;
  margin: 0 0 var(--sp-3); font-size: 14.5px; line-height: 1.55;
}
[data-ui="v2"] .sk-pozn.ok   { border-left-color: var(--ok);   background: var(--ok-soft); }
[data-ui="v2"] .sk-pozn.warn { border-left-color: var(--warn); background: var(--warn-soft); }

[data-ui="v2"] .sk-namitka {
  border-top: 1px solid var(--line); padding: var(--sp-5) 0;
}
[data-ui="v2"] .sk-namitka:first-of-type { border-top: 0; padding-top: 0; }
[data-ui="v2"] .sk-namitka:last-of-type { padding-bottom: 0; }
[data-ui="v2"] .sk-namitka > b {
  display: block; margin-bottom: var(--sp-3); font-size: 16px; color: var(--accent);
}
[data-ui="v2"] .sk-pata {
  font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-2);
  padding-top: var(--sp-4); border-top: 1px solid var(--line);
}

/* --- Tisk: z prirucky se ma stat dokument, ne snimek aplikace --- */
@media print {
  [data-ui="v2"] .v2-rail,
  [data-ui="v2"] .v2-hdr,
  [data-ui="v2"] .v2-pagebar,
  [data-ui="v2"] .v2-appfoot,
  [data-ui="v2"] .v2-screen-head .v2-btn,
  [data-ui="v2"] #sk-tisk,
  [data-ui="v2"] #ob-tisk { display: none !important; }

  html, body, [data-ui="v2"] .v2-shell, [data-ui="v2"] .v2-main,
  [data-ui="v2"] .v2-content { background: #fff !important; }
  [data-ui="v2"] .v2-shell { display: block !important; }
  [data-ui="v2"] .v2-main { margin: 0 !important; padding: 0 !important; }
  [data-ui="v2"] .v2-content { padding: 0 !important; max-width: none !important; }
  [data-ui="v2"] .sk-doc { max-width: none !important; }

  /* Na papire nemaji karty stiny ani ramy - jen delici cary. */
  [data-ui="v2"] .sk-sekce {
    border: 0 !important; box-shadow: none !important; border-radius: 0 !important;
    padding: 0 0 14pt !important; margin: 0 0 14pt !important;
    border-bottom: 1px solid #ccc !important;
    break-inside: avoid; page-break-inside: avoid;
  }
  [data-ui="v2"] .sk-sekce h2 { break-after: avoid; page-break-after: avoid; }
  [data-ui="v2"] .sk-pozn, [data-ui="v2"] .sk-tab, [data-ui="v2"] .sk-namitka {
    break-inside: avoid; page-break-inside: avoid;
  }
  [data-ui="v2"] .sk-pozn { background: #f5f5f5 !important; }
  [data-ui="v2"] .sk-pozn.ok { background: #eef7f1 !important; }
  [data-ui="v2"] .sk-pozn.warn { background: #fbf5e6 !important; }
  /* Na papire zustava prouzek i popiska - vytisteny list se od zbytku
     prirucky oddeli snadno a nedopatrenim neskonci pred zakaznikem. */
  [data-ui="v2"] .sk-sekce.sk-jen-obchodnik {
    border-left: 3pt solid #b8860b !important;
    padding-left: 8pt !important;
    break-before: page; page-break-before: always;
  }
  [data-ui="v2"] .sk-sekce.sk-jen-obchodnik h2::before { color: #b8860b !important; }
  @page { margin: 16mm 14mm; }
}
[data-ui="v2"] .adm-empty { padding: var(--sp-4) 0; }

/* uživatelé — mřížka se záhlavím sloupců */
[data-ui="v2"] .adm-urow {
  /* Bez grid-template-columns — drahy urcuje az pozdejsi (r7) pravidlo,
     aby existovala jen JEDNA sada breakpointu. */
  display: grid;
  gap: var(--sp-4); align-items: center; padding: var(--sp-4) 0; border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .adm-urow:last-child { border-bottom: 0; }
[data-ui="v2"] .adm-urow.head { padding: var(--sp-3) 0; border-bottom: 1px solid var(--line-2); }
[data-ui="v2"] .adm-urow.head .ucol {
  font: 700 10.5px/1.2 var(--font-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .adm-urow .ucol { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
[data-ui="v2"] .adm-urow .ucol.nm b { font: 600 13.5px/1.3 var(--font-sans); }
[data-ui="v2"] .adm-urow .ucol.acts { flex-direction: row; align-items: center; justify-content: flex-end; gap: var(--sp-3); }


/* ============================================================
   Firmy a spojení — seznam vlevo, detail vpravo (r7)
   ============================================================ */
[data-ui="v2"] .adm-split {
  display: grid; grid-template-columns: 320px minmax(0, 1fr);
  gap: var(--sp-5); align-items: start;
}
[data-ui="v2"] .adm-rail {
  position: sticky; top: var(--sp-5); max-height: calc(100vh - 132px);
  display: flex; flex-direction: column; min-height: 0;
  border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface);
}
[data-ui="v2"] .adm-rail-head {
  display: flex; flex-direction: column; gap: var(--sp-3);
  padding: var(--sp-4); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .adm-q { display: flex; align-items: center; gap: var(--sp-2); }
[data-ui="v2"] .adm-q .icon { color: var(--ink-3); }
[data-ui="v2"] .adm-q input { flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .adm-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .adm-chip { cursor: pointer; border: 1px solid var(--line); background: none; }
[data-ui="v2"] .adm-chip[aria-pressed="true"] {
  background: var(--accent-soft); color: var(--accent-text); border-color: var(--accent-line);
}
[data-ui="v2"] .adm-count { margin: 0; }
[data-ui="v2"] .adm-rail-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
[data-ui="v2"] .adm-frow {
  display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left;
  padding: var(--sp-3) var(--sp-4) var(--sp-3) calc(var(--sp-4) - 3px);
  border: 0; border-left: 3px solid transparent; border-bottom: 1px solid var(--line);
  background: none; font: inherit; color: inherit; cursor: pointer;
}
[data-ui="v2"] .adm-frow:hover, [data-ui="v2"] .adm-frow.is-active { background: var(--surface-2); }
[data-ui="v2"] .adm-frow[aria-selected="true"] { background: var(--accent-soft); }
[data-ui="v2"] .adm-frow[aria-selected="true"] .nm { color: var(--accent-text); }
[data-ui="v2"] .adm-frow.lvl-bad { border-left-color: var(--bad); }
[data-ui="v2"] .adm-frow.lvl-warn { border-left-color: var(--warn); }
[data-ui="v2"] .adm-frow .nm {
  font: 600 13.5px/1.35 var(--font-sans); display: flex; align-items: center; gap: var(--sp-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
[data-ui="v2"] .adm-frow .nm .icon { font-size: 16px; color: var(--ink-3); }
[data-ui="v2"] .adm-frow .sub { font-size: 11.5px; overflow-wrap: anywhere; }
[data-ui="v2"] .adm-frow .crumb::before { content: "\21B3\00A0"; color: var(--ink-3); }
[data-ui="v2"] .adm-frow .sig { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
[data-ui="v2"] .adm-group { border-bottom: 1px solid var(--line-2); }
[data-ui="v2"] .adm-ghead {
  margin: 0; padding: var(--sp-3) var(--sp-4) var(--sp-2);
  display: flex; align-items: center; gap: var(--sp-2); background: var(--surface-2);
}
[data-ui="v2"] .adm-more { margin: var(--sp-2) var(--sp-4) var(--sp-3); }

[data-ui="v2"] .adm-detail { min-width: 0; display: flex; flex-direction: column; gap: var(--sp-5); }
[data-ui="v2"] .adm-dhead {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  padding-bottom: var(--sp-2); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .adm-dhead h2 { margin: 0; }
[data-ui="v2"] .adm-dhead .spacer { flex: 1 1 auto; }
[data-ui="v2"] .adm-back { display: none; }

/* čekající pozvánky — vlastní blok, nemají čím naplnit sloupce členů */
[data-ui="v2"] .adm-inv {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-4) 0; border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .adm-inv:last-child { border-bottom: 0; }
[data-ui="v2"] .adm-inv .ico { color: var(--ink-3); margin-top: 2px; }
[data-ui="v2"] .adm-inv .who { display: flex; flex-direction: column; gap: 1px; flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .adm-inv .who b { font: 600 13.5px/1.35 var(--font-sans); overflow-wrap: anywhere; }
[data-ui="v2"] .adm-inv .adm-acts { margin-left: auto; }
[data-ui="v2"] .adm-urow.off { opacity: .62; }
[data-ui="v2"] .adm-urow .ucol.num { text-align: right; justify-content: flex-end; font-variant-numeric: tabular-nums; }
[data-ui="v2"] .adm-uset .v2-checklist { margin-top: var(--sp-2); }

/* zvýraznění cíle po prokliku z hledání */
[data-ui="v2"] .adm-flash { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: var(--r-md); }
@media (prefers-reduced-motion: no-preference) {
  [data-ui="v2"] .adm-flash { transition: outline-color var(--dur) var(--ease); }
}

/* mřížka členů má o dva sloupce víc než v r5 */
[data-ui="v2"] .adm-urow {
  grid-template-columns: minmax(190px, 1fr) 108px 150px 104px 84px 128px 168px;
}
@media (max-width: 1500px) {
  [data-ui="v2"] .adm-urow { grid-template-columns: minmax(170px, 1fr) 104px 148px 96px 128px 168px; }
  [data-ui="v2"] .adm-urow .ucol:nth-child(5) { display: none; }
}
@media (max-width: 1280px) {
  [data-ui="v2"] .adm-urow { grid-template-columns: minmax(160px, 1fr) 100px 146px 96px 168px; }
  [data-ui="v2"] .adm-urow .ucol:nth-child(6) { display: none; }
}
@media (max-width: 1080px) {
  [data-ui="v2"] .adm-split { grid-template-columns: 1fr; }
  [data-ui="v2"] .adm-rail { position: static; max-height: none; }
  [data-ui="v2"] .adm-split[data-pane="detail"] .adm-rail { display: none; }
  [data-ui="v2"] .adm-split[data-pane="list"] .adm-detail { display: none; }
  [data-ui="v2"] .adm-back { display: inline-flex; }
  [data-ui="v2"] .adm-urow { grid-template-columns: minmax(150px, 1fr) 96px 140px 156px; }
  [data-ui="v2"] .adm-urow .ucol:nth-child(4) { display: none; }
}


/* ============================================================
   7. dávka — pilulky v hlavičce hlášení
   ============================================================ */
/* Hlavička hlášení má tři dráhy — pilulky proto musí být v jedné buňce,
   jinak štítek „Nová odpověď" vytekl mimo dlaždici. */
[data-ui="v2"] .v2-modreq-head .oq-pills {
  display: flex; gap: var(--sp-2); flex-wrap: wrap; justify-content: flex-end; min-width: 0;
}

/* ============================================================
   Průvodce nastavením parametrů + jednorázový onboarding na Přehledu
   ============================================================ */
[data-ui="v2"] .v2-setup-onboarding {
  position: relative;
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: start; gap: var(--sp-5);
  padding: var(--sp-6);
  border: 1px solid var(--accent-line); border-radius: var(--r-xl);
  background:
    radial-gradient(circle at 0 0, color-mix(in srgb, var(--accent-soft) 84%, transparent), transparent 48%),
    var(--surface);
  box-shadow: var(--shadow-1);
}
[data-ui="v2"] .v2-setup-onboarding .visual {
  width: 48px; height: 48px; border-radius: var(--r-lg);
  display: grid; place-items: center;
  background: var(--accent-soft); color: var(--accent);
}
[data-ui="v2"] .v2-setup-onboarding .visual .icon { font-size: 25px; }
[data-ui="v2"] .v2-setup-onboarding .txt { min-width: 0; }
[data-ui="v2"] .v2-setup-onboarding .txt > b {
  display: block; margin-top: 3px; font: 650 17px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-setup-onboarding .txt > p {
  max-width: 760px; margin: 5px 0 var(--sp-4);
  font: 400 13.5px/1.5 var(--font-sans); color: var(--ink-2);
}
[data-ui="v2"] .v2-setup-onboarding .close { margin: -3px -3px 0 0; }
@media (max-width: 680px) {
  [data-ui="v2"] .v2-setup-onboarding {
    grid-template-columns: 38px minmax(0, 1fr) auto; gap: var(--sp-4); padding: var(--sp-5);
  }
  [data-ui="v2"] .v2-setup-onboarding .visual { width: 38px; height: 38px; }
  [data-ui="v2"] .v2-setup-onboarding .visual .icon { font-size: 21px; }
}

[data-ui="v2"] .v2-wiz {
  position: sticky; top: var(--sp-4); z-index: 5;
  display: flex; flex-direction: column; gap: var(--sp-3);
  padding: var(--sp-5); margin-bottom: var(--sp-5);
  border: 1px solid var(--accent-line); border-radius: var(--r-lg);
  background: var(--surface); box-shadow: var(--shadow-1);
}
[data-ui="v2"] .v2-wiz .head { display: flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-wiz .head .spacer { flex: 1 1 auto; }
[data-ui="v2"] .v2-wiz .body b { font: 600 15px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-wiz .body p { margin: 4px 0 0; font-size: 13.5px; color: var(--ink-2); }
[data-ui="v2"] .v2-wiz .acts { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
[data-ui="v2"] .v2-wiz .acts .primary { margin-left: auto; }
[data-ui="v2"] .v2-wiz-prog { height: 4px; border-radius: 2px; background: var(--line); overflow: hidden; }
[data-ui="v2"] .v2-wiz-prog span { display: block; height: 100%; background: var(--accent); transition: width var(--dur) var(--ease); }
[data-ui="v2"] .v2-wiz.done { border-color: var(--ok); flex-direction: row; align-items: center; }
[data-ui="v2"] .v2-wiz.done .ico { color: var(--ok); }
[data-ui="v2"] .v2-wiz.done .txt { flex: 1 1 auto; }


/* Seznam zmen v potvrzovacím dialogu (co přesně se s dokladem stane). */
[data-ui="v2"] .v2-dlg-list { margin: 4px 0 10px; padding-left: 18px; font-size: 13px; }
[data-ui="v2"] .v2-dlg-list li { margin: 2px 0; }

@media (max-width: 1250px) {
  [data-ui="v2"] .rv-firm-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  [data-ui="v2"] .rv-firm-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* ============================================================
   Přihlášení, 2FA a výběr firmy
   ============================================================ */
[data-ui="v2"] .v2-authpage { background: var(--bg); }
[data-ui="v2"] .v2-authwrap { max-width: 400px; margin: 9vh auto 0; padding: 0 var(--sp-5); }
[data-ui="v2"] .v2-authbrand {
  display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-5);
}
[data-ui="v2"] .v2-authbrand .mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 11px;
  background: var(--accent); color: var(--on-accent);
  font: 800 20px/1 var(--font-sans);
}
[data-ui="v2"] .v2-authbrand .wordmark b { font: 800 19px/1.2 var(--font-sans); letter-spacing: -.4px; }
[data-ui="v2"] .v2-authbrand .wordmark b em { font-style: normal; color: var(--accent); }
[data-ui="v2"] .v2-authbrand .wordmark small { display: block; font-size: 11.5px; color: var(--ink-3); }
[data-ui="v2"] .v2-authcard { padding: var(--sp-6); }
[data-ui="v2"] .au-h { margin: 0 0 var(--sp-3); font: 700 19px/1.3 var(--font-sans); }
[data-ui="v2"] .au-p { margin: 0 0 var(--sp-4); font-size: 13.5px; color: var(--ink-2); }
[data-ui="v2"] .au-lbl {
  display: block; margin: var(--sp-4) 0 4px;
  font: 600 11px/1.3 var(--font-sans); letter-spacing: .05em;
  text-transform: uppercase; color: var(--ink-3);
}
[data-ui="v2"] .v2-authcard .v2-input { width: 100%; }
[data-ui="v2"] .au-code { font: 600 22px/1.3 var(--font-mono, monospace); letter-spacing: .35em; text-align: center; }
[data-ui="v2"] .au-rem { margin-top: var(--sp-4); }
[data-ui="v2"] .au-trust-help { margin: 5px 0 0 27px; line-height: 1.45; }
[data-ui="v2"] .au-submit { width: 100%; justify-content: center; margin-top: var(--sp-5); }
[data-ui="v2"] .au-hint { margin: var(--sp-5) 0 0; }
[data-ui="v2"] .v2-authcard .v2-note.bad { margin-top: var(--sp-4); }
[data-ui="v2"] .au-qr {
  display: flex; align-items: center; justify-content: center;
  min-height: 260px; margin: var(--sp-4) 0;
  border: 1px solid var(--line); border-radius: var(--r-lg); background: #fff;
}
[data-ui="v2"] .au-secret { overflow-wrap: anywhere; }
[data-ui="v2"] .au-apps {
  margin: 0 0 var(--sp-4); padding: var(--sp-3) var(--sp-4);
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .au-apps p { margin: 0; font-size: 12px; line-height: 1.45; color: var(--ink-2); }
[data-ui="v2"] .au-app-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--sp-3); }
[data-ui="v2"] .au-app-links a {
  display: inline-flex; align-items: center; gap: 3px; min-height: 30px; padding: 4px 8px;
  border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface);
  color: var(--ink); font-size: 11px; font-weight: 650; text-decoration: none;
}
[data-ui="v2"] .au-app-links a:hover { border-color: var(--accent-line); color: var(--accent); }
[data-ui="v2"] .au-app-links .icon { font-size: 14px; }
[data-ui="v2"] .au-tenant {
  display: flex; align-items: center; gap: var(--sp-3); width: 100%;
  padding: var(--sp-4) var(--sp-5); margin-top: var(--sp-3); text-align: left;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface); font: inherit; color: inherit; cursor: pointer;
}
[data-ui="v2"] .au-tenant:hover { border-color: var(--accent-line); background: var(--accent-soft); }
[data-ui="v2"] .au-tenant .nm { font-weight: 600; flex: 1 1 auto; display: flex; flex-direction: column; }
[data-ui="v2"] .au-pth { margin: var(--sp-6) 0 var(--sp-2); }
[data-ui="v2"] .au-pend {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) 0; border-top: 1px solid var(--line);
}
[data-ui="v2"] .au-pend .nm { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; }
[data-ui="v2"] .v2-authfoot { text-align: center; margin-top: var(--sp-6); }
[data-ui="v2"] .au-linkbtn { text-decoration: none; }


/* Počítadlo nevyřešených výhrad vedle Uložit do ABRA Aiva. */
[data-ui="v2"] .rv-checkcount .v2-pill { cursor: pointer; }

/* Zdrojovy e-mail nahrazuje obsah leveho sloupce s dokladem. Kontrolovana
   data vpravo zustavaji na miste; nejde o modal ani prekryv. */
[data-ui="v2"] .rv-wrap { position: relative; }
[data-ui="v2"] .rv-email-panel {
  grid-column: 1; grid-row: 1; min-width: 0; min-height: 0; height: 100%;
  display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-md); overflow: hidden;
}
[data-ui="v2"] .rv-email-panel[hidden] { display: none; }
[data-ui="v2"] .rv-email-head {
  display: flex; align-items: center; gap: var(--sp-4); flex: 0 0 auto;
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line); background: var(--surface-2);
}
[data-ui="v2"] .rv-email-head > div { flex: 1; min-width: 0; }
[data-ui="v2"] .rv-email-head h2 { margin: 1px 0 0; font: 700 17px/1.25 var(--font-sans); }
[data-ui="v2"] .rv-email-head .v2-btn { flex: 0 0 auto; white-space: nowrap; }
[data-ui="v2"] .rv-email-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: var(--sp-5); }
[data-ui="v2"] .rv-email-loading { display: flex; align-items: center; gap: var(--sp-3); color: var(--ink-3); }
[data-ui="v2"] .rv-email-meta { margin: 0; display: grid; gap: 6px; }
[data-ui="v2"] .rv-email-meta > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--sp-3); }
[data-ui="v2"] .rv-email-meta dt { color: var(--ink-3); font-size: 11.5px; }
[data-ui="v2"] .rv-email-meta dd { margin: 0; min-width: 0; overflow-wrap: anywhere; font-size: 12.5px; }
[data-ui="v2"] .rv-email-body,
[data-ui="v2"] .rv-email-atts { margin-top: var(--sp-5); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
[data-ui="v2"] .rv-email-section-head { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-3); }
[data-ui="v2"] .rv-email-section-head > b { flex: 1; }
[data-ui="v2"] .rv-email-body pre {
  margin: 0; padding: var(--sp-4); white-space: pre-wrap; overflow-wrap: anywhere;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--bg);
  color: var(--ink); font: 400 12.5px/1.55 var(--font-mono, ui-monospace, monospace);
}
[data-ui="v2"] .rv-email-bodyhtml {
  max-height: 54vh; margin: 0; padding: var(--sp-4); overflow: auto; overflow-wrap: anywhere;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--bg);
  color: var(--ink); font: 400 12.5px/1.55 var(--font-sans);
}
[data-ui="v2"] .rv-email-bodyhtml > :first-child { margin-top: 0; }
[data-ui="v2"] .rv-email-bodyhtml > :last-child { margin-bottom: 0; }
[data-ui="v2"] .rv-email-bodyhtml table { width: 100%; border-collapse: collapse; }
[data-ui="v2"] .rv-email-bodyhtml th,
[data-ui="v2"] .rv-email-bodyhtml td {
  min-width: 64px; padding: 6px 8px; border: 1px solid var(--line-2); vertical-align: top; text-align: left;
}
[data-ui="v2"] .rv-email-bodyhtml th { background: var(--surface-2); font-weight: 650; }
[data-ui="v2"] .rv-email-bodyhtml.is-readable table { width: auto; max-width: 100%; margin: var(--sp-2) 0; }
[data-ui="v2"] .rv-email-bodyhtml.is-readable th,
[data-ui="v2"] .rv-email-bodyhtml.is-readable td {
  min-width: 0; padding: 3px 9px 3px 0; border: 0; background: transparent;
}
[data-ui="v2"] .rv-email-bodyhtml.is-readable tr + tr { border-top: 1px solid color-mix(in srgb, var(--line) 62%, transparent); }
[data-ui="v2"] .rv-email-bodyhtml pre { overflow: auto; white-space: pre-wrap; }
[data-ui="v2"] .rv-email-bodyhtml a { color: var(--accent-text); text-decoration: underline; }
[data-ui="v2"] .rv-email-bodyhtml:focus-visible { outline: 2px solid var(--info); outline-offset: 2px; }
[data-ui="v2"] .rv-email-att {
  display: flex; align-items: center; gap: var(--sp-3); padding: 9px 0; border-top: 1px dashed var(--line);
}
[data-ui="v2"] .rv-email-att:first-of-type { border-top: 0; }
[data-ui="v2"] .rv-email-att > .icon { color: var(--ink-3); }
[data-ui="v2"] .rv-email-att .nm { flex: 1; min-width: 0; display: flex; flex-direction: column; }
[data-ui="v2"] .rv-email-att .nm b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; }
[data-ui="v2"] .rv-email-att .nm small { color: var(--ink-3); }
[data-ui="v2"] .rv-email-preview { margin-top: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; background: var(--bg); }
[data-ui="v2"] .rv-email-preview-head { display: flex; align-items: center; gap: var(--sp-3); padding: 8px var(--sp-3); background: var(--surface-2); }
[data-ui="v2"] .rv-email-preview-head b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .rv-email-preview iframe { display: block; width: 100%; height: 54vh; min-height: 360px; border: 0; background: #fff; }
[data-ui="v2"] .rv-email-preview img { display: block; max-width: 100%; max-height: 54vh; margin: auto; object-fit: contain; }
[data-ui="v2"] #rv-email { white-space: nowrap; }

/* Upozorneni na fakturu vystavenou na jinou firmu nez aktivni ABRA spojeni. */
[data-ui="v2"] #rv-billing-warning:empty { display: none; }
[data-ui="v2"] .rv-billing-alert {
  display: flex; align-items: flex-start; gap: var(--sp-3); padding: 10px var(--sp-4);
  border: 1px solid var(--warn-line, #f0b429); border-radius: var(--r-md);
  background: var(--warn-soft); color: var(--ink);
}
[data-ui="v2"] .rv-billing-alert > .icon { color: var(--warn); font-size: 21px; }
[data-ui="v2"] .rv-billing-alert b { font-size: 12.5px; }
[data-ui="v2"] .rv-billing-alert p { margin: 2px 0 0; font-size: 11.5px; color: var(--ink-2); }
[data-ui="v2"] .rv-billing-alert.mismatch { box-shadow: inset 3px 0 0 var(--warn); }
[data-ui="v2"] .rv-billing-alert.unknown {
  background: var(--warn-soft); border-color: var(--warn);
  box-shadow: inset 3px 0 0 var(--warn), 0 0 0 1px var(--warn-soft);
}
[data-ui="v2"] .rv-billing-alert.unknown > .icon { color: var(--warn); }
[data-ui="v2"] .rv-billing-alert.soft { background: var(--surface-2); border-color: var(--line-2); }
[data-ui="v2"] .rv-billing-alert.soft > .icon { color: var(--ink-3); }

[data-ui="v2"] body.v2-review-detached .rv-email-panel { display: none; }

@media (max-width: 1280px) {
  [data-ui="v2"] .rv-email-panel { height: min(72vh, 720px); min-height: 440px; }
}
@media (max-width: 700px) {
  [data-ui="v2"] .rv-email-panel { height: calc(100vh - 150px); min-height: 360px; }
  [data-ui="v2"] .rv-email-content { padding: var(--sp-4); }
  [data-ui="v2"] .rv-email-att { align-items: flex-start; flex-wrap: wrap; }
  [data-ui="v2"] .rv-email-att .nm { flex-basis: calc(100% - 36px); }
}


/* Další přílohy na dlaždici Přílohy */
[data-ui="v2"] .rv-attachment-file.extra { border-top: 1px dashed var(--line); }
[data-ui="v2"] .rv-att-add {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  padding: var(--sp-3) 0;
}
[data-ui="v2"] .rv-att-dropwrap { padding: var(--sp-4) var(--sp-7) 0; }
[data-ui="v2"] .rv-att-dropzone {
  display: flex; width: 100%; align-items: center; gap: var(--sp-4); padding: 11px 14px;
  border: 1px dashed var(--field-line); border-radius: var(--r-lg);
  background: var(--surface-2); color: var(--ink); cursor: pointer; text-align: left;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-att-dropzone:hover,
[data-ui="v2"] .rv-att-dropzone:focus-visible {
  border-color: var(--accent); background: var(--accent-soft);
  box-shadow: 0 0 0 1px var(--accent-soft);
}
[data-ui="v2"] .rv-att-dropzone:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .rv-att-dropzone.att-dragover {
  border-style: solid; border-color: var(--accent); background: var(--accent-soft);
  box-shadow: 0 0 0 3px var(--accent-soft); transform: translateY(-1px);
}
[data-ui="v2"] .rv-att-dropicon {
  width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center;
  border-radius: var(--r-lg); background: var(--surface); color: var(--accent-text);
  box-shadow: inset 0 0 0 1px var(--line);
}
[data-ui="v2"] .rv-att-dropicon .icon { font-size: 20px; }
[data-ui="v2"] .rv-att-dropcopy { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
[data-ui="v2"] .rv-att-dropcopy b { font: 650 13px/1.35 var(--font-sans); }
[data-ui="v2"] .rv-att-dropcopy > span,
[data-ui="v2"] .rv-att-dropcopy small { color: var(--ink-2); font: 400 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .rv-att-dropcopy small { color: var(--ink-3); }

[data-ui="v2"] .rv-att-choice-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 1px; }
[data-ui="v2"] .rv-att-choice b { font: 650 13px/1.35 var(--font-sans); }
[data-ui="v2"] .rv-att-choice small { color: var(--ink-2); font: 400 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .rv-att-source-note { margin: var(--sp-4) var(--sp-7) 0; }
[data-ui="v2"] .rv-att-source-options {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--sp-3); padding: var(--sp-4) var(--sp-7) 0;
}
[data-ui="v2"] .rv-att-choice {
  display: flex; min-width: 0; min-height: 58px; align-items: center; gap: var(--sp-3); padding: 9px 12px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .rv-att-choice:hover { border-color: var(--info); background: var(--accent-soft); }
[data-ui="v2"] .rv-att-choice:focus-within { box-shadow: inset 0 0 0 2px var(--focus); }
[data-ui="v2"] .rv-att-choice:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); }
[data-ui="v2"] .rv-att-choice input { width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--accent); }
[data-ui="v2"] .rv-att-choice > .icon { width: 24px; flex: 0 0 24px; color: var(--accent-text); text-align: center; }
[data-ui="v2"] .rv-att-choice .v2-pill { flex: 0 0 auto; }
[data-ui="v2"] .rv-att-email-pdf { background: color-mix(in srgb, var(--accent-soft) 42%, var(--surface)); }
[data-ui="v2"] .rv-att-choice.disabled { cursor: not-allowed; opacity: .58; }
[data-ui="v2"] .rv-att-choice.disabled:hover { background: var(--surface); }
[data-ui="v2"] .rv-att-price {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  margin: var(--sp-3) var(--sp-7) 0;
  padding: 9px 12px; border-radius: var(--r-md); background: var(--info-soft); color: var(--ink-2);
  font: 500 12px/1.4 var(--font-sans);
}
[data-ui="v2"] .rv-att-price > b { color: var(--ink); font-weight: 750; }
[data-ui="v2"] .rv-att-price .v2-credit-amount { gap: 5px; }


/* Patička tabulky řádků: tlačítka měla různou výšku (zalamovaly si popisek)
   a „+ řádek" s „Dorovnat na doklad" se lepila na sebe. */
[data-ui="v2"] .rv-rt .tf { gap: var(--sp-3); }
[data-ui="v2"] .rv-rt .tf .v2-btn { white-space: nowrap; min-height: 30px; }


/* Záhlaví kontroly: metadata dokladu jako pilulky na jednom řádku. */
[data-ui="v2"] .rv-docmeta {
  display: flex; gap: var(--sp-2); align-items: center;
  flex-wrap: nowrap; overflow: hidden; min-width: 0; margin-top: 2px;
}
[data-ui="v2"] .rv-docmeta .v2-pill { flex: 0 1 auto; min-width: 0; max-width: 340px; }
[data-ui="v2"] .rv-docmeta .v2-pill .txt {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block;
}
[data-ui="v2"] .rv-ai { margin-right: var(--sp-3); }
[data-ui="v2"] .rv-head .rv-pager { display: flex; align-items: center; gap: var(--sp-2); }


/* Lišta akcí kontroly se nesmí lámat: dlouhé tlačítko zpětné vazby smí
   zkracovat popisek, pilulka výhrad je stručná (detail nese title). */
[data-ui="v2"] .rv-actions #rv-ocrfb { min-width: 0; flex: 0 1 auto; }
[data-ui="v2"] .rv-actions .rv-ocrfb-label {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  max-width: 190px; display: inline-block; vertical-align: bottom;
}


/* Zelené CTA s jemným pulzem (vystoupí a vrátí se) — Donastavit parametry. */
@keyframes v2-ctapulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 var(--ok-soft); }
  50% { transform: scale(1.05); box-shadow: 0 0 0 5px var(--ok-soft); }
}
[data-ui="v2"] .v2-cta-pulse { animation: v2-ctapulse 2.2s var(--ease) infinite; }
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-cta-pulse { animation: none; }
}

/* Přílohy mají stejnou skladbu záhlaví jako rekapitulace DPH: název a stav
   jsou samostatné tlačítko, hlavní checkbox je vždy vidět vedle nich a
   chevron zůstává posledním prvkem. */
[data-ui="v2"] .rv-att-headbar { flex-wrap: nowrap; gap: var(--sp-3); transition: background var(--dur-fast) var(--ease); }
[data-ui="v2"] .rv-att-headbar:hover { background: var(--surface-2); }
[data-ui="v2"] .rv-att-headmain {
  display: flex; align-items: center; gap: var(--sp-3); flex: 1 1 280px; min-width: 220px;
  padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer;
}
[data-ui="v2"] .rv-att-headmain:focus-visible,
[data-ui="v2"] .rv-att-collapse:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
[data-ui="v2"] .rv-att-headmain .spacer { flex: 1; }
[data-ui="v2"] .rv-attachment-primary-toggle { white-space: nowrap; }
[data-ui="v2"] .rv-att-collapse { flex: 0 0 auto; border-color: transparent; background: transparent; box-shadow: none; }
[data-ui="v2"] .rv-att-collapse[aria-expanded="false"] .rv-section-chevron { transform: rotate(-90deg); }
[data-ui="v2"] .rv-att-type-filters { flex: 0 1 auto; margin-left: auto; }
@media (max-width: 760px) {
  [data-ui="v2"] .rv-att-headbar { flex-wrap: wrap; }
  [data-ui="v2"] .rv-att-headmain { flex-basis: calc(100% - 40px); }
  [data-ui="v2"] .rv-att-type-filters { flex-basis: 100%; margin-left: 0; }
  [data-ui="v2"] .rv-attachment-primary-toggle { order: 3; }
}

/* Jednotná výška všech prvků záhlaví aplikace — 40 px (zadavatel 13. 8.). */
[data-ui="v2"] .v2-hdr .v2-co-btn { height: 40px; padding-top: 3px; padding-bottom: 3px; }
[data-ui="v2"] .v2-co-btn .co-eyebrow { font-size: 9.5px; line-height: 1.2; }
[data-ui="v2"] .v2-co-btn .co-name { font-size: 13.5px; line-height: 1.25; }
[data-ui="v2"] .v2-hdr .v2-gsearch { height: 40px; padding-top: 0; padding-bottom: 0; }
[data-ui="v2"] .v2-hdr .v2-backlink { height: 40px; padding-top: 0; padding-bottom: 0; }
[data-ui="v2"] .v2-hdr .v2-iconbtn { width: 40px; height: 40px; }
[data-ui="v2"] .v2-hdr .v2-user-btn { height: 40px; padding-top: 0; padding-bottom: 0; }

/* Pravé stavové a uživatelské prvky kopírují obdélníkový tvar hledání.
   Pravidlo je záměrně omezené na záhlaví; štítky a pilulky v obsahu se nemění. */
[data-ui="v2"] .v2-hdr .v2-hdr-fact,
[data-ui="v2"] .v2-hdr .v2-backlink,
[data-ui="v2"] .v2-hdr .v2-user-btn { border-radius: var(--r-lg); }
[data-ui="v2"] .v2-hdr .v2-hdr-fact.catalogs { border-radius: var(--r-lg); }


/* Karta Odesílatelé: tři oddíly (schválení / blokovaní / čekající). */
[data-ui="v2"] .v2-senders-sect { margin-top: var(--sp-6); }
[data-ui="v2"] .v2-senders-sect:first-child { margin-top: 0; }
[data-ui="v2"] .v2-senders-title {
  display: flex; align-items: center; gap: var(--sp-3);
  margin-bottom: var(--sp-3); font-size: 13px;
}
[data-ui="v2"] .v2-senders-title .icon { font-size: 18px; }
[data-ui="v2"] .v2-senders-title .icon.ok { color: var(--ok); }
[data-ui="v2"] .v2-senders-title .icon.warn { color: var(--warn); }
[data-ui="v2"] .v2-senders-title .icon.mut { color: var(--ink-3); }


/* Popelnice se na hover "otvira" - nakloni se jako pri vysypani. */
@keyframes v2-trash-open {
  0% { transform: rotate(0); }
  30% { transform: rotate(-14deg) translateY(-1.5px); }
  60% { transform: rotate(9deg); }
  100% { transform: rotate(0); }
}
[data-ui="v2"] .v2-iconbtn.danger:hover:not(:disabled) .icon {
  animation: v2-trash-open .55s var(--ease);
  transform-origin: 50% 90%;
}

/* Kazde funkcni tlacitko na hover malinko povyskoci (zadavatel 13. 8.).
   :active vraci dolu, at klik "sedne". Pri prefers-reduced-motion se
   nehybe nic - zustava jen zmena barvy pozadi z existujicich pravidel. */
[data-ui="v2"] .v2-btn,
[data-ui="v2"] .v2-iconbtn {
  transition: transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
    color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease),
    box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-btn:hover:not(:disabled),
[data-ui="v2"] .v2-iconbtn:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--shadow);
}
[data-ui="v2"] .v2-btn:active:not(:disabled),
[data-ui="v2"] .v2-iconbtn:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .v2-btn:hover:not(:disabled),
  [data-ui="v2"] .v2-iconbtn:hover:not(:disabled) { transform: none; box-shadow: none; }
  [data-ui="v2"] .v2-iconbtn.danger:hover:not(:disabled) .icon { animation: none; }
}


/* Agenda Doklady: radky cekajici na kontrolu (jeste bez cisla z ABRA). */
[data-ui="v2"] .v2-docs-row.pend { box-shadow: inset 3px 0 0 var(--accent); }
[data-ui="v2"] .v2-docs-row.pend .col-action {
  display: flex; gap: 4px; justify-content: flex-end; align-items: center;
  flex-wrap: nowrap; overflow: visible;
}


/* Živá fronta: sloupec typu + filtr v záhlaví dlaždice */
[data-ui="v2"] .v2-qrow .qtype { display: flex; justify-content: center; }
[data-ui="v2"] .v2-seg.qseg { margin-left: var(--sp-3); }
[data-ui="v2"] .v2-seg.qseg .v2-seg-btn { padding: 3px 9px; font-size: 12px; }
[data-ui="v2"] #v2-qdesk-slot .v2-pill.as-btn { cursor: pointer; border: 0; font: 600 12px/1.4 var(--font-sans); }
/* Stav „zapnuto" se kreslí jako výplň, ne outline — outline je vyhrazený fokusu. */
[data-ui="v2"] #v2-qdesk-slot .v2-pill.as-btn[aria-pressed="true"] {
  background: var(--accent-soft); color: var(--accent-text); box-shadow: inset 0 0 0 1px var(--accent-line);
}

/* --- Přehled: jednořádkové záhlaví -------------------------------------
   Pozdrav, náhodný marketingový text a jediná hlavní akce sdílejí jednu
   řádku. Stavová čísla se neopakují nad frontou, kde už mají svůj kontext. */
[data-ui="v2"] .v2-content:has(#v2-qcard) > .v2-screen-head { align-items: center; row-gap: var(--sp-2); }
[data-ui="v2"] .v2-content:has(#v2-qcard) > .v2-screen-head .titles {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--sp-2) var(--sp-6);
}
[data-ui="v2"] .v2-content:has(#v2-qcard) > .v2-screen-head .sub { margin: 0; }
[data-ui="v2"] .v2-screen-head .ov-motto { display: inline; color: var(--ink-3); }

/* --- Přehled: kompaktní dropzóna --------------------------------------- */
[data-ui="v2"] #v2-qcard { overflow: clip; }
[data-ui="v2"] #v2-qcard > .v2-card-head {
  position: sticky; top: var(--header-h); z-index: 4;
  background: color-mix(in srgb, var(--surface) 97%, transparent);
  box-shadow: 0 7px 18px rgba(21,36,60,.05);
  backdrop-filter: blur(10px);
}
/* Dva titulky, přepíná je třída .compact — s neprázdnou frontou stačí kratší
   pobídka a nahrávání se scvrkne na jeden řádek (~48 px místo ~140 px). */
[data-ui="v2"] .v2-drop .drop-title.short { display: none; }
[data-ui="v2"] .v2-drop.compact .drop-title.full { display: none; }
[data-ui="v2"] .v2-drop.compact .drop-title.short { display: block; }
[data-ui="v2"] .v2-drop.compact { padding: var(--sp-3) var(--sp-6); gap: var(--sp-5); border-radius: var(--r-xl); }
[data-ui="v2"] .v2-drop.compact .tile { width: 32px; height: 32px; border-radius: var(--r-md); }
[data-ui="v2"] .v2-drop.compact .tile .icon { font-size: 18px; }
[data-ui="v2"] .v2-drop.compact .drop-title { font-size: 13.5px; }
[data-ui="v2"] .v2-drop.compact .chips { display: none; }
[data-ui="v2"] .v2-drop.compact #v2-pick { padding: 4px var(--sp-4); font-size: 12px; }
[data-ui="v2"] .v2-drop.compact #v2-pick .icon { font-size: 15px; }
/* Při přetahování i kompaktní zóna řekne, co přijímá. */
[data-ui="v2"] body.v2-dragging .v2-drop.compact .chips { display: flex; }

/* --- Přehled: sloučené chyby fronty ------------------------------------ */
/* Když se dávka rozbije ze stejného důvodu, nese text jeden banner nad
   frontou; v řádku zůstane pilulka stavu s vysvětlením v title. */
[data-ui="v2"] .v2-qbanner {
  display: flex; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-7);
  border-bottom: 1px solid var(--line);
  background: var(--warn-soft); color: var(--ink);
}
[data-ui="v2"] .v2-qbanner.tone-bad { background: var(--bad-soft); }
[data-ui="v2"] .v2-qbanner .ico { font-size: 20px; color: var(--warn); flex: 0 0 auto; }
[data-ui="v2"] .v2-qbanner.tone-bad .ico { color: var(--bad); }
[data-ui="v2"] .v2-qbanner .txt { flex: 1 1 auto; min-width: 0; }
[data-ui="v2"] .v2-qbanner .txt b { font: 600 13px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-qbanner ul {
  margin: 2px 0 0; padding: 0; list-style: none;
  display: flex; flex-direction: column; gap: 2px;
}
[data-ui="v2"] .v2-qbanner li { font: 400 12.5px/1.45 var(--font-sans); color: var(--ink-2); }
[data-ui="v2"] .v2-qbanner li .cnt { font-weight: 600; color: var(--ink); }
[data-ui="v2"] .v2-qbanner .acts { display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }

/* --- Přehled: jednorázové nastavení a odsazení obsahu ------------------ */
/* Prázdný slot je pořád flex-child kontejneru — bez tohoto pravidla by ukrojil
   celou mezeru (18 px) nad dropzónou. */
[data-ui="v2"] #v2-setup-slot:empty { display: none; }

@media (max-width: 900px) {
  /* Cíl auditu: první řádek fronty co nejblíž k horní hraně při 768 px.
     :has() je progresivní vylepšení — kde není, zůstane původní odsazení. */
  [data-ui="v2"] .v2-content:has(#v2-qcard) { padding-top: var(--sp-7); gap: var(--sp-5); }
  /* Přehled má v záhlaví jedinou akci (Začít kontrolu) — nechává se vedle
     titulku i na tabletu, aby nezabírala další řádek nad frontou. */
  [data-ui="v2"] .v2-content:has(#v2-qcard) .v2-screen-head.no-ico { grid-template-columns: minmax(0, 1fr) auto; }
  [data-ui="v2"] .v2-content:has(#v2-qcard) .v2-screen-head .actions { grid-column: auto; justify-content: flex-end; }
  [data-ui="v2"] .v2-content:has(#v2-qcard) .v2-screen-head .actions:empty { display: none; }
  [data-ui="v2"] .v2-content:has(#v2-qcard) .v2-drop.compact { padding-block: var(--sp-2); }
  /* Hlavička živé fronty: filtr typů se NIKDY nesmí oříznout. Popisky
     tlačítek ustoupí ikonám (title a aria-label nesou plný text) a hlavička
     smí zalomit, místo aby srážela segment pod jeho obsah. */
  [data-ui="v2"] #v2-qcard > .v2-card-head {
    flex-wrap: wrap; row-gap: var(--sp-3); padding-block: var(--sp-4);
  }
  [data-ui="v2"] #v2-qcard > .v2-card-head #v2-qdensity { margin-left: auto; }
  [data-ui="v2"] #v2-qcard > .v2-card-head .v2-btn.xsmall .lbl { display: none; }
  [data-ui="v2"] #v2-qcard > .v2-card-head .v2-btn.xsmall { padding-inline: var(--sp-3); }
  /* Motto ustupuje čítačům */
  [data-ui="v2"] .v2-screen-head .ov-motto { display: none; }

  /* Řádek fronty jako dvouřádková karta: identita a akce nahoře, typ, stav
     a částka pod tím. Dřív mřížka přetékala o ~170 px a .v2-card{overflow:
     hidden} akce uřízl. */
  [data-ui="v2"] .v2-qrow {
    grid-template-columns: 19px 40px 44px minmax(0, 1fr) 90px 128px 30px;
    grid-template-areas:
      'chk thumb id    id    id   work act'
      'chk thumb type  owner amt  work act';
    gap: var(--sp-2) var(--sp-4);
    align-items: center;
  }
  [data-ui="v2"] [data-density="compact"] .v2-qrow {
    grid-template-columns: 19px 30px 44px minmax(0, 1fr) 90px 128px 30px;
    grid-template-areas:
      'chk thumb id    id    id   work act'
      'chk thumb type  owner amt  work act';
    gap: 4px var(--sp-4);
  }
  [data-ui="v2"] .v2-qrow .qcheck { grid-area: chk; }
  [data-ui="v2"] .v2-qrow .qthumb { grid-area: thumb; }
  [data-ui="v2"] .v2-qrow .qtype  { grid-area: type; justify-content: flex-start; }
  [data-ui="v2"] .v2-qrow .qid    { grid-area: id; }
  [data-ui="v2"] .v2-qrow .qowner { grid-area: owner; }
  [data-ui="v2"] .v2-qrow .qwork { grid-area: work; }
  [data-ui="v2"] .v2-qrow .qstate {
    flex-direction: row; flex-wrap: wrap;
    align-items: center; gap: 4px var(--sp-3);
  }
  [data-ui="v2"] .v2-qrow .qamt   { grid-area: amt; }
  [data-ui="v2"] .v2-qrow .qact   { grid-area: act; }
  /* Chyba fronty: akce pod text, ať se tlačítka nemačkají */
  [data-ui="v2"] .v2-qbanner { flex-wrap: wrap; }
  [data-ui="v2"] .v2-qbanner .acts { flex-basis: 100%; }
}
@media (max-width: 620px) {
  [data-ui="v2"] .v2-qrow { grid-template-columns: 19px 40px 44px minmax(0, 1fr) 76px 120px 30px; }
  [data-ui="v2"] [data-density="compact"] .v2-qrow { grid-template-columns: 19px 30px 44px minmax(0, 1fr) 76px 120px 30px; }
  /* Na telefonu dostanou ovládací tlačítka vlastní řádek zarovnaný doprava. */
  [data-ui="v2"] #v2-qcard > .v2-card-head .spacer { flex-basis: 100%; height: 0; }
}

/* --- Násypka: toolbar ve dvou úrovních --------------------------------- */
/* Sdílená .v2-docs-filters zůstává beze změny (používá ji i agenda Doklady) —
   mění se jen obal a pravidla scopovaná pod .v2-mail-toolbar. */
[data-ui="v2"] .v2-mail-toolbar { display: flex; flex-direction: column; gap: var(--sp-3); }
[data-ui="v2"] .v2-mail-toolbar .tb-primary .mail-search { max-width: 420px; flex: 1 1 260px; }
[data-ui="v2"] .v2-mail-toolbar .tb-secondary { row-gap: var(--sp-3); }
/* Popisky stavů („Bezpečně dokončeno · čeká na smazání dat") se do 200 px nevejdou. */
[data-ui="v2"] .v2-mail-toolbar #v2-mail-status { max-width: 260px; }
[data-ui="v2"] .v2-mail-range { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
[data-ui="v2"] .v2-mail-range .lbl { color: var(--ink-2); }
[data-ui="v2"] .v2-mail-range .sep { color: var(--ink-3); }
/* Vlastní třída místo .v2-docs-month z Dokladů — úprava tam nesmí rozhodit násypku. */
[data-ui="v2"] .v2-mail-date {
  padding: 8px var(--sp-4);
  border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink);
  font: 500 12.5px/1.3 var(--font-sans);
}
/* Reset má stálé místo vpravo — nepřeskakuje podle toho, kolik filtrů je. */
[data-ui="v2"] .v2-mail-toolbar .tb-reset { margin-left: auto; }

/* --- Násypka: dvoupanelové čtecí rozložení ---------------------------- */
[data-ui="v2"] .v2-content:has(.v2-mail-split) { max-width: none; }
[data-ui="v2"] .v2-mail-view-switch { flex-wrap: nowrap; }
[data-ui="v2"] .v2-mail-view-switch .v2-seg-btn {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
}
[data-ui="v2"] .v2-mail-view-switch .icon { font-size: 16px; }

[data-ui="v2"] .v2-mail-summary-strip {
  display: flex; align-items: stretch; gap: var(--sp-3); flex-wrap: wrap;
  min-height: 48px;
}
[data-ui="v2"] .v2-mail-summary-item {
  flex: 1 1 150px; min-width: 0; padding: 8px 12px;
  display: flex; align-items: center; gap: 9px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface);
}
[data-ui="v2"] .v2-mail-summary-item > .icon { color: var(--info); font-size: 20px; }
[data-ui="v2"] .v2-mail-summary-item.ok > .icon { color: var(--ok); }
[data-ui="v2"] .v2-mail-summary-item.warn { border-color: var(--warn); background: var(--warn-soft); }
[data-ui="v2"] .v2-mail-summary-item.warn > .icon { color: var(--warn); }
[data-ui="v2"] .v2-mail-summary-item > span:last-child { min-width: 0; display: flex; align-items: baseline; gap: 7px; }
[data-ui="v2"] .v2-mail-summary-item b { font: 700 16px/1.1 var(--font-sans); white-space: nowrap; }
[data-ui="v2"] .v2-mail-summary-item small {
  color: var(--ink-3); font: 550 11.5px/1.25 var(--font-sans); white-space: nowrap;
}
[data-ui="v2"] .v2-mail-settings-anchor { position: relative; flex: 0 0 auto; align-self: stretch; display: flex; }
[data-ui="v2"] .v2-mail-settings-open { flex: 1 1 auto; }
[data-ui="v2"] .v2-mail-settings-panel {
  --mail-settings-top: 160px; --mail-settings-right: 16px;
  position: fixed; z-index: 62; top: var(--mail-settings-top); right: var(--mail-settings-right); bottom: 12px;
  width: min(490px, calc(100vw - 24px)); min-height: 280px;
  display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface);
  box-shadow: var(--shadow-pop); animation: v2-mail-settings-in 180ms var(--ease) both;
}
[data-ui="v2"] .v2-mail-settings-panel[hidden] { display: none; }
@keyframes v2-mail-settings-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
[data-ui="v2"] .v2-mail-settings-panel > header {
  flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line); background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-settings-panel > header > div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-mail-settings-panel > header b { color: var(--ink); font: 700 16px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-settings-panel > header small { color: var(--ink-3); font: 400 11.5px/1.35 var(--font-sans); }
[data-ui="v2"] .v2-mail-settings-panel-scroll {
  flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: var(--sp-4);
}
[data-ui="v2"] .v2-mail-settings-panel-scroll > .v2-card { border: 0; border-radius: 0; }

[data-ui="v2"] .v2-mail-split {
  height: calc(100dvh - var(--header-h) - 212px); min-height: 600px;
  display: grid; grid-template-columns: minmax(360px, 41%) minmax(0, 1fr);
  gap: var(--sp-3); overflow: visible; border: 0; border-radius: 0;
  background: transparent; box-shadow: none;
}
[data-ui="v2"] .v2-mail-split-pane {
  min-width: 0; min-height: 0; overflow: hidden;
  border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow);
}
[data-ui="v2"] .v2-mail-inbox-pane {
  display: flex; flex-direction: column; background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-split-toolbar {
  flex: 0 0 auto; display: flex; flex-direction: column; gap: var(--sp-3);
  padding: var(--sp-4); border-bottom: 1px solid var(--line); background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-split-searchrow { display: flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-mail-split-searchrow .mail-search {
  flex: 1 1 auto; min-width: 0; max-width: none; min-height: 40px; padding: 0 var(--sp-4);
  border-color: var(--line-2); border-radius: var(--r-lg);
  background: color-mix(in srgb, var(--surface) 72%, var(--surface-2)); cursor: text;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-mail-split-searchrow .mail-search:hover { border-color: var(--accent-line); background: var(--surface); }
[data-ui="v2"] .v2-mail-split-searchrow .mail-search:focus-within { border-color: var(--accent-line); background: var(--surface); }
[data-ui="v2"] .v2-mail-split-searchrow .mail-search input {
  flex: 1 1 auto; width: 100%; min-width: 0; height: 38px; padding: 0;
  border: 0; border-radius: 0; outline: 0; background: transparent; color: var(--ink);
  font: 500 13px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mail-split-searchrow .mail-search input::placeholder { color: var(--ink-3); }
[data-ui="v2"] .v2-mail-split-toolbar .v2-mail-quick { align-self: flex-start; }
[data-ui="v2"] .v2-mail-split-filters {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2);
  padding-top: var(--sp-2); border-top: 1px solid var(--line);
}
[data-ui="v2"] .v2-mail-split-filters :is(.v2-select, .v2-mail-date, input[type="text"]) {
  box-sizing: border-box; width: 100%; min-width: 0; padding: 7px 9px;
  border: 1px solid var(--field-line); border-radius: var(--r-sm);
  background: var(--surface); color: var(--ink); font: 500 12px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mail-split-filters .v2-btn { justify-self: start; }
[data-ui="v2"] .v2-mail-split-pane-head {
  flex: 0 0 auto; min-height: 42px; padding: 8px var(--sp-4);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  border-bottom: 1px solid var(--line); background: var(--surface);
}
[data-ui="v2"] .v2-mail-split-pane-head > div { min-width: 0; display: flex; align-items: center; gap: var(--sp-3); }
[data-ui="v2"] .v2-mail-select-page {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  color: var(--ink-2); font: 500 11.5px/1.3 var(--font-sans); cursor: pointer;
}
[data-ui="v2"] .v2-mail-select-page input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-mail-split-list {
  flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-inbox-item {
  position: relative; display: grid; grid-template-columns: 31px minmax(0, 1fr);
  border-bottom: 1px solid var(--line); background: var(--surface-2);
  transition: background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
[data-ui="v2"] .v2-mail-inbox-item:hover { background: var(--surface); }
[data-ui="v2"] .v2-mail-inbox-item.active {
  background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent);
}
[data-ui="v2"] .v2-mail-inbox-item.sel:not(.active) { background: color-mix(in srgb, var(--accent-soft) 55%, var(--surface)); }
[data-ui="v2"] .v2-mail-inbox-check { padding: 11px 0 0 10px; cursor: pointer; }
[data-ui="v2"] .v2-mail-inbox-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-mail-inbox-open {
  min-width: 0; padding: 8px 12px 8px 6px; border: 0; background: transparent;
  color: var(--ink); text-align: left; cursor: pointer;
  display: flex; flex-direction: column; gap: 3px; font-family: var(--font-sans);
}
[data-ui="v2"] .v2-mail-inbox-open:focus-visible { outline: 2px solid var(--focus); outline-offset: -3px; border-radius: var(--r-sm); }
[data-ui="v2"] .v2-mail-inbox-top,
[data-ui="v2"] .v2-mail-inbox-bottom { display: flex; align-items: center; gap: var(--sp-3); min-width: 0; }
[data-ui="v2"] .v2-mail-inbox-main { min-width: 0; flex: 1 1 auto; display: flex; align-items: baseline; gap: 5px; }
[data-ui="v2"] .v2-mail-inbox-top b { flex: 0 1 42%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 650 13px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-inbox-top time { flex: none; color: var(--ink-3); font: 500 10.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-inbox-sep { flex: none; color: var(--ink-3); }
[data-ui="v2"] .v2-mail-inbox-subject { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); font: 600 12.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-inbox-preview {
  min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--ink-3); font: 400 11px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mail-inbox-preview.reason { color: var(--warn); }
[data-ui="v2"] .v2-mail-inbox-meta { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; }
[data-ui="v2"] .v2-mail-status-badge { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 7px; font-size: 10px; }
[data-ui="v2"] .v2-mail-status-badge .icon { font-size: 13px; }
[data-ui="v2"] .v2-mail-attcount { display: inline-flex; align-items: center; gap: 2px; color: var(--ink-3); font: 600 11.5px/1 var(--font-sans); }
[data-ui="v2"] .v2-mail-attcount .icon { font-size: 15px; }
[data-ui="v2"] .v2-mail-split-pager { flex: 0 0 auto; border-top: 1px solid var(--line); background: var(--surface-2); }
[data-ui="v2"] .v2-mail-split-pager .v2-pager { padding: 8px var(--sp-4); gap: var(--sp-2); }
[data-ui="v2"] .v2-mail-split-pager .v2-list-count { flex: 1 1 100%; }

[data-ui="v2"] .v2-mail-detail-pane { display: flex; flex-direction: column; overflow: hidden; container: mail-detail / inline-size; }
[data-ui="v2"] .v2-mail-detail-head {
  flex: 0 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-5);
  padding: var(--sp-5) var(--sp-6); border-bottom: 1px solid var(--line); background: var(--surface);
}
[data-ui="v2"] .v2-mail-detail-title { min-width: 0; flex: 1 1 auto; }
[data-ui="v2"] .v2-mail-detail-kicker {
  min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 5px var(--sp-3);
}
[data-ui="v2"] .v2-mail-att-filters {
  min-width: 0; min-height: 34px; display: inline-flex; align-items: center; flex-wrap: wrap; gap: 2px;
  padding: 3px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-att-filter {
  min-height: 26px; display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px;
  border: 0; border-radius: var(--r-sm); background: transparent;
  color: var(--ink-3); cursor: pointer; font: 600 10.5px/1.2 var(--font-sans);
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-mail-att-filter:hover { background: var(--surface); color: var(--ink); }
[data-ui="v2"] .v2-mail-att-filter.on { background: var(--surface); color: var(--accent-text); box-shadow: var(--shadow); }
[data-ui="v2"] .v2-mail-att-filter input { width: 14px; height: 14px; margin: 0; accent-color: var(--accent); }
[data-ui="v2"] .v2-mail-detail-title h2 {
  margin: 3px 0 5px; overflow-wrap: anywhere; color: var(--ink);
  font: 700 19px/1.25 var(--font-sans); letter-spacing: -.01em;
}
[data-ui="v2"] .v2-mail-detail-address { display: flex; align-items: baseline; gap: 6px 12px; flex-wrap: wrap; color: var(--ink-3); font: 400 11.5px/1.4 var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-address b { color: var(--ink-2); font-weight: 600; }
[data-ui="v2"] .v2-mail-detail-address time { margin-left: auto; }
[data-ui="v2"] .v2-mail-detail-status { flex: 0 0 auto; display: flex; align-items: flex-end; flex-direction: column; gap: 4px; }
[data-ui="v2"] .v2-mail-detail-status small { color: var(--ink-3); font: 500 11px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-tools {
  flex: 0 0 auto; min-width: min(44%, 420px); display: flex; flex-direction: column;
  align-items: flex-end; gap: var(--sp-2);
}
[data-ui="v2"] .v2-mail-detail-reason {
  flex: 0 0 auto; display: flex; align-items: flex-start; gap: var(--sp-2);
  padding: 8px var(--sp-6); border-bottom: 1px solid var(--warn);
  background: var(--warn-soft); color: var(--ink-2); font: 500 12px/1.4 var(--font-sans);
}
[data-ui="v2"] .v2-mail-detail-reason .icon { flex: none; color: var(--warn); font-size: 18px; }
[data-ui="v2"] .v2-mail-detail-actions {
  flex: 0 0 auto; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: var(--sp-2);
}
[data-ui="v2"] .v2-mail-detail-section-head {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); min-width: 0; min-height: 40px;
  padding: 5px var(--sp-5); border-bottom: 2px solid color-mix(in srgb, var(--info) 52%, var(--line));
  background: color-mix(in srgb, var(--info-soft) 68%, var(--surface-2));
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--info) 72%, var(--line));
}
[data-ui="v2"] .v2-mail-detail-section-toggle {
  min-width: 0; min-height: 30px; margin: 0; padding: 3px 7px 3px 3px;
  display: inline-flex; align-items: center; gap: 4px;
  border: 0; border-radius: var(--r-sm); background: transparent; color: var(--ink-2); cursor: pointer;
  font-family: var(--font-sans); transition: color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .v2-mail-detail-section-toggle:hover { color: var(--info); background: color-mix(in srgb, var(--surface) 72%, transparent); }
[data-ui="v2"] .v2-mail-detail-section-toggle .icon { font-size: 19px; }
[data-ui="v2"] .v2-mail-detail-section-toggle b { font: 700 12.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-section-head .hint {
  margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  color: var(--ink-3); font: 400 11px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mail-body-switch {
  min-height: 30px; padding: 2px; flex-wrap: nowrap; background: color-mix(in srgb, var(--surface) 78%, var(--info-soft));
}
[data-ui="v2"] .v2-mail-body-switch .v2-seg-btn {
  min-height: 24px; padding: 3px 9px; white-space: nowrap; font-size: 10.5px;
}
[data-ui="v2"] .v2-mail-body-switch.is-plaintext .v2-seg-btn.on { background: var(--ink-3); color: var(--surface); }
[data-ui="v2"] .v2-mail-body-switch.is-readable_html .v2-seg-btn.on { background: var(--info); color: white; }
[data-ui="v2"] .v2-mail-body-switch.is-html .v2-seg-btn.on { background: var(--ok); color: white; }
[data-ui="v2"] .v2-mail-body-switch .v2-seg-btn.on:hover { color: white; }
[data-ui="v2"] .v2-mail-detail-attachments {
  flex: 0 0 auto; min-height: 0; max-height: clamp(170px, 36dvh, 360px);
  display: flex; flex-direction: column; border-bottom: 1px solid var(--line); background: var(--surface);
}
[data-ui="v2"] .v2-mail-detail-attachments.is-collapsed { flex-basis: auto; max-height: none; }
[data-ui="v2"] .v2-mail-detail-attlist {
  min-height: 0; overflow: auto; overscroll-behavior: contain;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(640px, 100%), 1fr));
  column-gap: 1px; align-content: start; background: var(--line);
}
[data-ui="v2"] .v2-mail-detail-attlist[hidden],
[data-ui="v2"] .v2-mail-detail-body-scroll[hidden] { display: none; }
[data-ui="v2"] .v2-mail-detail-att {
  min-width: 0; padding: 7px var(--sp-4); display: grid;
  grid-template-columns: 40px minmax(150px, 1fr) minmax(100px, auto) auto;
  align-items: center; gap: var(--sp-2); border-bottom: 1px solid var(--line); background: var(--surface);
  transition: background var(--dur) var(--ease);
}
[data-ui="v2"] .v2-mail-detail-att:last-child { border-bottom-color: transparent; }
@container mail-detail (min-width: 940px) {
  [data-ui="v2"] .v2-mail-detail-att {
    grid-template-columns: 40px minmax(0, 1fr) auto auto;
    grid-template-areas: none;
  }
  [data-ui="v2"] .v2-mail-detail-att > :first-child,
  [data-ui="v2"] .v2-mail-detail-att-name,
  [data-ui="v2"] .v2-mail-detail-att-state,
  [data-ui="v2"] .v2-mail-detail-att-actions { grid-area: auto; }
}
[data-ui="v2"] .v2-mail-detail-att.picked {
  background: var(--ok-soft); box-shadow: inset 3px 0 0 var(--ok);
}
[data-ui="v2"] .v2-mail-detail-att.off { opacity: .7; }
[data-ui="v2"] .v2-mail-detail-att .attthumb,
[data-ui="v2"] .v2-mail-detail-att .attthumb-ph {
  position: relative; width: 34px; height: 42px; padding: 0; overflow: hidden;
  display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--r-xs); background: var(--surface-2);
}
[data-ui="v2"] .v2-mail-detail-att .attthumb { cursor: pointer; }
[data-ui="v2"] .v2-mail-detail-att .attthumb:hover { border-color: var(--accent); }
[data-ui="v2"] .v2-mail-detail-att .attthumb img { width: 100%; height: 100%; object-fit: cover; }
[data-ui="v2"] .v2-mail-detail-att .attthumb .icon,
[data-ui="v2"] .v2-mail-detail-att .attthumb-ph .icon { color: var(--ink-3); font-size: 18px; }
[data-ui="v2"] .v2-mail-detail-att .rib {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 1px 0;
  background: var(--accent-fill); color: var(--on-accent); text-align: center;
  font: 700 7px/1.3 var(--font-sans); letter-spacing: .04em;
}
[data-ui="v2"] .v2-mail-detail-att .rib.isdoc { background: var(--info); }
[data-ui="v2"] .v2-mail-detail-att .rib.img { background: var(--ok); }
[data-ui="v2"] .v2-mail-detail-att-name { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .v2-mail-detail-att-name b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 12.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-att-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); font: 400 10.5px/1.3 var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-att-state { justify-self: end; }
[data-ui="v2"] .v2-mail-detail-att-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; flex-wrap: nowrap; white-space: nowrap; }

[data-ui="v2"] .v2-mail-detail-body { flex: 1 1 auto; min-height: 210px; display: flex; flex-direction: column; background: var(--surface); }
[data-ui="v2"] .v2-mail-detail-body.is-collapsed { flex: 0 0 auto; min-height: 0; }
[data-ui="v2"] .v2-mail-detail-body-scroll { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: var(--sp-5); }
[data-ui="v2"] .v2-mail-detail-body-scroll .v2-mail-body-text,
[data-ui="v2"] .v2-mail-detail-body-scroll .v2-mail-body-html {
  width: 100%; height: auto; min-height: 100%; max-height: none; margin: 0; resize: none; overflow: visible;
  border: 0; border-radius: 0; background: transparent; padding: 0;
}
[data-ui="v2"] .v2-mail-detail-body-scroll .v2-mail-body-text { font-family: var(--font-sans); }
[data-ui="v2"] .v2-mail-detail-loading,
[data-ui="v2"] .v2-mail-detail-empty {
  min-height: 100%; display: grid; place-content: center; justify-items: center; gap: var(--sp-2);
  padding: var(--sp-7); color: var(--ink-3); text-align: center;
}
[data-ui="v2"] .v2-mail-detail-empty > .icon { color: var(--info); font-size: 38px; }
[data-ui="v2"] .v2-mail-detail-empty p { margin: 0; }

[data-ui="v2"] .v2-mail-settings-dialog .v2-aside-card { margin: 0; box-shadow: none; }
[data-ui="v2"] .v2-mail-settings-dialog .ov-card-body { max-height: none; }
[data-ui="v2"] .v2-mail-senders-dialog .v2-card { margin: 0; box-shadow: none; }

@media (max-width: 1100px) {
  [data-ui="v2"] .v2-mail-split { height: auto; min-height: 0; grid-template-columns: minmax(0, 1fr); overflow: visible; }
  [data-ui="v2"] .v2-mail-inbox-pane { min-height: 520px; max-height: 70vh; border-right: 0; border-bottom: 1px solid var(--line); }
  [data-ui="v2"] .v2-mail-detail-pane { min-height: 680px; }
}
@media (max-width: 760px) {
  [data-ui="v2"] .v2-mail-summary-item { flex-basis: calc(50% - var(--sp-3)); }
  [data-ui="v2"] .v2-mail-summary-item > span:last-child { flex-direction: column; gap: 1px; }
  [data-ui="v2"] .v2-mail-settings-anchor { width: 100%; }
  [data-ui="v2"] .v2-mail-settings-open { width: 100%; justify-content: center; }
  [data-ui="v2"] .v2-mail-split-filters { grid-template-columns: minmax(0, 1fr); }
  [data-ui="v2"] .v2-mail-detail-head { padding: var(--sp-4); flex-direction: column; }
  [data-ui="v2"] .v2-mail-detail-tools { min-width: 0; width: 100%; align-items: flex-start; }
  [data-ui="v2"] .v2-mail-detail-status { align-items: flex-start; }
  [data-ui="v2"] .v2-mail-detail-actions { justify-content: flex-start; }
  [data-ui="v2"] .v2-mail-detail-att {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    grid-template-areas: 'thumb name state' 'thumb actions actions';
  }
  [data-ui="v2"] .v2-mail-detail-att > :first-child { grid-area: thumb; }
  [data-ui="v2"] .v2-mail-detail-att-name { grid-area: name; }
  [data-ui="v2"] .v2-mail-detail-att-state { grid-area: state; }
  [data-ui="v2"] .v2-mail-detail-att-actions { grid-area: actions; justify-content: flex-start; }
  [data-ui="v2"] .v2-mail-detail-section-head .hint { white-space: normal; text-align: right; }
}

/* Patička stránkování zpráv: vlevo počet záznamů (stejné místo i formát jako
   u Dokladů), vpravo přechod mezi stránkami. */
[data-ui="v2"] .v2-pager.mail-pager { flex-wrap: wrap; justify-content: flex-end; }
[data-ui="v2"] .v2-pager.mail-pager .v2-list-count { margin-right: auto; white-space: normal; }

@media (max-width: 1180px) {
  [data-ui="v2"] .v2-mail-toolbar .tb-primary .mail-search { max-width: 100%; flex: 1 1 100%; }
  [data-ui="v2"] .v2-mail-body { max-width: none; }
}
@media (max-width: 760px) {
  [data-ui="v2"] .v2-appfoot { align-items: flex-start; }
  [data-ui="v2"] .v2-appfoot .actions { width: 100%; margin-left: 0; }
  [data-ui="v2"] .v2-appfoot .v2-pager { justify-content: space-between; }
  /* Rychlý filtr se posouvá vodorovně — a musí to být poznat: tenký posuvník
     a stín u pravého okraje, který zmizí, jakmile je seg na konci. */
  [data-ui="v2"] .v2-mail-quick {
    width: 100%; overflow-x: auto; scrollbar-width: thin;
    background-image:
      linear-gradient(to left, var(--surface-2), transparent 26px),
      linear-gradient(to left, color-mix(in srgb, var(--ink) 16%, transparent), transparent 18px);
    background-repeat: no-repeat, no-repeat;
    background-position: right center, right center;
    background-size: 26px 100%, 18px 100%;
    background-attachment: local, scroll;
  }
  [data-ui="v2"] .v2-mail-body { margin-inline: var(--sp-4); }
  [data-ui="v2"] .v2-mail-body-head { align-items: flex-start; flex-wrap: wrap; }
  [data-ui="v2"] .v2-mail-body-head span:last-child { flex-basis: 100%; margin-left: 26px; }
  [data-ui="v2"] .v2-mail-body-text,
  [data-ui="v2"] .v2-mail-body-html { height: clamp(240px, 46vh, 400px); min-height: 200px; max-height: 68vh; }
  [data-ui="v2"] .v2-bulk { bottom: 104px; }
}


[data-ui="v2"] .rv-right.rv-panel-narrow .rv-attachment-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
[data-ui="v2"] .rv-right.rv-panel-tight .rv-attachment-grid { grid-template-columns: minmax(0, 1fr); }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-attachment-file { padding-inline: var(--sp-4); }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-att-dropwrap,
[data-ui="v2"] .rv-right.rv-panel-compact .rv-att-source-options { padding-inline: var(--sp-4); }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-att-source-note,
[data-ui="v2"] .rv-right.rv-panel-compact .rv-att-price { margin-inline: var(--sp-4); }
[data-ui="v2"] .rv-right.rv-panel-tight .rv-att-source-options { grid-template-columns: minmax(0, 1fr); }
[data-ui="v2"] .rv-right.rv-panel-compact .rv-att-dropzone { padding: 10px 12px; }


/* Vstup filtrovanych retezcu v panelu Pravidla schranky */
[data-ui="v2"] .v2-mail-ftokens { display: flex; flex-direction: column; gap: 4px; margin-top: var(--sp-3); }
[data-ui="v2"] .v2-mail-ftokens input {
  width: 100%; padding: 7px 10px;
  border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); color: var(--ink);
  font: 400 12.5px/1.3 var(--font-sans);
}
[data-ui="v2"] .v2-mail-ftokens input:disabled { opacity: .55; cursor: not-allowed; }


/* Filtrovane retezce schranky jako pilulky s krizkem */
[data-ui="v2"] .v2-chipbox {
  display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
  padding: 5px 7px; border: 1px solid var(--field-line); border-radius: var(--r-md);
  background: var(--surface); cursor: text;
}
[data-ui="v2"] .v2-chipbox.off { opacity: .6; cursor: default; }
[data-ui="v2"] .v2-chipbox input {
  flex: 1; min-width: 110px; border: 0; background: none; outline: none;
  color: var(--ink); font: 400 12.5px/1.4 var(--font-sans); padding: 3px 2px;
}
[data-ui="v2"] .v2-chip.fchip { display: inline-flex; align-items: center; gap: 3px; }
[data-ui="v2"] .v2-chip.fchip .x {
  display: inline-grid; place-items: center; width: 16px; height: 16px;
  border: 0; border-radius: 50%; background: none; color: inherit;
  cursor: pointer; padding: 0;
}
[data-ui="v2"] .v2-chip.fchip .x:hover { background: var(--warn); color: var(--on-accent); }
[data-ui="v2"] .v2-chip.fchip .x .icon { font-size: 12px; }


/* Karta Pravidla schranky: oddily filtru + napoveda pod prepinaci */
[data-ui="v2"] .v2-fsect { margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px dashed var(--line); }
[data-ui="v2"] .v2-fsect .v2-chipbox { margin-top: 2px; }
[data-ui="v2"] .v2-rule-help { margin: 4px 0 2px; font-size: 12px; }

/* ============================================================
   Produktová zpětná vazba — neblokující pravý panel uživatele
   ============================================================ */
[data-ui="v2"] .pf-panel {
  position: fixed; z-index: 75; top: calc(var(--header-h) + var(--sp-3)); right: var(--sp-3); bottom: var(--sp-3);
  width: 25vw; min-width: 360px; max-width: min(900px, calc(100vw - 20px));
  display: flex; flex-direction: column; overflow: visible;
  container-type: inline-size;
  border: 1px solid var(--line); border-radius: var(--r-2xl); background: var(--surface);
  box-shadow: var(--shadow-pop); animation: pf-panel-in 240ms var(--ease) both;
}
[data-ui="v2"] .pf-panel.is-closing { pointer-events: none; animation: pf-panel-out 170ms var(--ease) both; }
@keyframes pf-panel-in { from { opacity: 0; transform: translateX(calc(100% + var(--sp-5))); } to { opacity: 1; transform: translateX(0); } }
@keyframes pf-panel-out { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(calc(100% + var(--sp-5))); } }
[data-ui="v2"] .pf-panel-resize {
  position: absolute; z-index: 2; top: var(--sp-7); bottom: var(--sp-7); left: -7px; width: 14px;
  border-radius: var(--r-pill); cursor: col-resize; touch-action: none;
}
[data-ui="v2"] .pf-panel-resize::after {
  content: ''; position: absolute; top: 43%; bottom: 43%; left: 6px; width: 3px;
  border-radius: var(--r-pill); background: var(--line-2);
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
[data-ui="v2"] .pf-panel-resize:hover::after,
[data-ui="v2"] .pf-panel-resize:focus-visible::after { background: var(--accent); transform: scaleY(1.25); }
[data-ui="v2"] body.pf-resizing { cursor: col-resize; user-select: none; }
[data-ui="v2"] .pf-panel-head {
  flex: 0 0 auto; display: flex; align-items: flex-start; gap: var(--sp-5);
  padding: var(--sp-7) var(--sp-8); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .pf-panel-head > div { min-width: 0; }
[data-ui="v2"] .pf-panel-head h2 { margin: 3px 0 0; font-size: 19px; line-height: 1.25; }
[data-ui="v2"] .pf-panel-head .v2-iconbtn { flex: 0 0 auto; margin-left: auto; }
[data-ui="v2"] .pf-panel-body {
  flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain;
  padding: var(--sp-7) var(--sp-8); scrollbar-width: thin;
}
[data-ui="v2"] .pf-panel-foot {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-3);
  padding: var(--sp-5) var(--sp-8); border-top: 1px solid var(--line); background: var(--surface);
  border-radius: 0 0 var(--r-2xl) var(--r-2xl);
}
[data-ui="v2"] .pf-form { display: flex; flex-direction: column; gap: var(--sp-6); }
[data-ui="v2"] .pf-welcome {
  position: relative; display: flex; align-items: flex-start; gap: var(--sp-4);
  padding: var(--sp-5); padding-right: calc(var(--sp-8) + 20px);
  border: 1px solid var(--accent-line); border-radius: var(--r-xl); background: var(--accent-soft);
}
[data-ui="v2"] .pf-welcome > .icon {
  flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center;
  border-radius: var(--r-md); background: var(--accent); color: var(--on-accent); font-size: 19px;
}
[data-ui="v2"] .pf-welcome p { margin: 3px 0 0; color: var(--ink-2); font-size: 13px; line-height: 1.5; }
[data-ui="v2"] .pf-welcome-close {
  position: absolute; top: var(--sp-2); right: var(--sp-2); color: var(--ink-2);
  background: color-mix(in srgb, var(--surface) 72%, transparent); border-color: transparent;
}
[data-ui="v2"] .pf-welcome-close:hover { color: var(--ink); background: var(--surface); border-color: var(--line); }
[data-ui="v2"] .pf-categories { min-width: 0; margin: 0; padding: 0; border: 0; }
[data-ui="v2"] .pf-categories legend,
[data-ui="v2"] .pf-message > span { display: block; margin-bottom: var(--sp-2); color: var(--ink); font-weight: 650; }
[data-ui="v2"] .pf-categories > div { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--sp-2); }
@container (min-width: 560px) {
  [data-ui="v2"] .pf-categories > div { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
[data-ui="v2"] .pf-categories button {
  --pf-color: var(--accent); --pf-soft: var(--accent-soft); --pf-text: var(--accent-text);
  min-width: 0; min-height: 72px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--sp-2); padding: var(--sp-3) var(--sp-2); border: 1px solid var(--line-2); border-radius: var(--r-lg);
  background: linear-gradient(150deg, var(--surface) 30%, var(--pf-soft)); color: var(--pf-text);
  font: 650 11.5px/1.2 var(--font-sans); text-align: center; cursor: pointer;
  transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
[data-ui="v2"] .pf-categories button.cat-idea { --pf-color: #d54d91; --pf-soft: #fff0f7; --pf-text: #842553; }
[data-ui="v2"] .pf-categories button.cat-missing { --pf-color: #db8b18; --pf-soft: #fff7e7; --pf-text: #7b4b08; }
[data-ui="v2"] .pf-categories button.cat-praise { --pf-color: #1b9b70; --pf-soft: #eafff6; --pf-text: #106849; }
[data-ui="v2"] .pf-categories button.cat-problem { --pf-color: #d44d50; --pf-soft: #fff0f0; --pf-text: #842f32; }
[data-ui="v2"] .pf-categories button.cat-other { --pf-color: #4f7fd2; --pf-soft: #eef5ff; --pf-text: #31568f; }
[data-ui="v2"][data-theme="dark"] .pf-categories button.cat-idea { --pf-soft: #432139; --pf-text: #ffc9e3; }
[data-ui="v2"][data-theme="dark"] .pf-categories button.cat-missing { --pf-soft: #41331d; --pf-text: #ffd28d; }
[data-ui="v2"][data-theme="dark"] .pf-categories button.cat-praise { --pf-soft: #183c31; --pf-text: #aef3d8; }
[data-ui="v2"][data-theme="dark"] .pf-categories button.cat-problem { --pf-soft: #442526; --pf-text: #ffc2c4; }
[data-ui="v2"][data-theme="dark"] .pf-categories button.cat-other { --pf-soft: #20334f; --pf-text: #c8dcff; }
[data-ui="v2"] .pf-categories button:hover { transform: translateY(-1px); border-color: var(--pf-color); box-shadow: 0 5px 14px color-mix(in srgb, var(--pf-color) 17%, transparent); }
[data-ui="v2"] .pf-categories button[aria-pressed="true"] {
  border-color: var(--pf-color); background: var(--pf-soft); color: var(--pf-text);
  box-shadow: inset 0 0 0 1px var(--pf-color), 0 5px 16px color-mix(in srgb, var(--pf-color) 18%, transparent);
}
[data-ui="v2"] .pf-categories button .icon { font-size: 22px; }
[data-ui="v2"] .pf-categories button[aria-pressed="true"] .icon { color: var(--pf-color); }
[data-ui="v2"] .pf-message { display: block; }
[data-ui="v2"] .pf-message > small { display: block; margin: -3px 0 var(--sp-3); color: var(--ink-3); line-height: 1.4; }
[data-ui="v2"] .pf-message textarea { width: 100%; min-height: 132px; resize: vertical; }
[data-ui="v2"] .pf-message-meta { display: flex; justify-content: space-between; gap: var(--sp-4); margin-top: var(--sp-2); color: var(--ink-3); }
[data-ui="v2"] .pf-message-meta small:last-child { margin-left: auto; white-space: nowrap; }
[data-ui="v2"] .pf-attachments {
  display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-4);
  border: 1px dashed var(--line-2); border-radius: var(--r-lg); background: var(--surface-2);
}
[data-ui="v2"] .pf-attachment-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); }
[data-ui="v2"] .pf-attachment-head > span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .pf-attachment-head small, [data-ui="v2"] .pf-file-help { color: var(--ink-3); line-height: 1.4; }
[data-ui="v2"] .pf-paste-help {
  display: flex; align-items: flex-start; gap: var(--sp-2); margin: 0; padding: var(--sp-3);
  border: 1px solid var(--info); border-radius: var(--r-md); background: var(--info-soft);
  color: var(--ink-2); font-size: 12px; line-height: 1.45;
}
[data-ui="v2"] .pf-paste-help .icon { margin-top: 1px; color: var(--info); font-size: 17px; }
[data-ui="v2"] .pf-paste-help kbd {
  display: inline-block; padding: 1px 5px; border: 1px solid var(--line-2); border-bottom-width: 2px;
  border-radius: var(--r-xs); background: var(--surface); color: var(--ink); font: 650 11px/1.35 var(--font-sans);
}
[data-ui="v2"] .pf-file-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .pf-file-empty { display: inline-flex; align-items: center; gap: var(--sp-2); color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .pf-file-empty .icon { font-size: 17px; }
[data-ui="v2"] .pf-file {
  min-width: 0; max-width: 100%; display: inline-grid; grid-template-columns: auto minmax(0,1fr) auto auto;
  align-items: center; gap: var(--sp-2); padding: 6px 7px 6px 9px; border: 1px solid var(--accent-line);
  border-radius: var(--r-md); background: var(--surface); color: var(--ink-2); font-size: 12px;
}
[data-ui="v2"] .pf-file > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .pf-file > .icon { color: var(--accent-text); font-size: 17px; }
[data-ui="v2"] .pf-file small { color: var(--ink-3); white-space: nowrap; }
[data-ui="v2"] .pf-file button { width: 24px; height: 24px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ink-3); cursor: pointer; }
[data-ui="v2"] .pf-file button:hover { background: var(--bad-soft); color: var(--bad); }
[data-ui="v2"] .pf-file button .icon { font-size: 15px; }
[data-ui="v2"] .pf-contact {
  display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: flex-start; gap: var(--sp-3);
  padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface-2); cursor: pointer;
}
[data-ui="v2"] .pf-contact input { margin: 2px 0 0; }
[data-ui="v2"] .pf-contact span { display: flex; flex-direction: column; gap: 2px; }
[data-ui="v2"] .pf-contact small { color: var(--ink-3); line-height: 1.4; }
[data-ui="v2"] .pf-privacy { display: flex; align-items: flex-start; gap: var(--sp-2); margin: -2px 0 0; color: var(--ink-3); font-size: 12px; line-height: 1.45; }
[data-ui="v2"] .pf-privacy .icon { flex: 0 0 auto; margin-top: 1px; font-size: 15px; }
[data-ui="v2"] .pf-success { min-height: 100%; display: grid; align-content: center; justify-items: center; padding: var(--sp-10) var(--sp-5); text-align: center; }
[data-ui="v2"] .pf-success-art { position: relative; width: 136px; height: 120px; display: grid; place-items: center; }
[data-ui="v2"] .pf-success-check {
  width: 84px; height: 84px; display: grid; place-items: center; border-radius: 50%;
  background: var(--ok-soft); color: var(--ok); box-shadow: 0 14px 30px -18px var(--ok);
  animation: pf-success-pop 520ms var(--ease) both;
}
[data-ui="v2"] .pf-success-svg { width: 54px; height: 54px; overflow: visible; }
[data-ui="v2"] .pf-success-svg circle { stroke: currentColor; stroke-width: 2.5; opacity: .26; }
[data-ui="v2"] .pf-success-svg path { stroke: currentColor; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
[data-ui="v2"] .pf-success-spark { position: absolute; color: var(--accent); font-size: 24px; animation: pf-success-spark 700ms var(--ease) both; }
[data-ui="v2"] .pf-success-spark.one { top: 3px; left: 12px; }
[data-ui="v2"] .pf-success-spark.two { top: 16px; right: 9px; color: var(--info); font-size: 15px; animation-delay: 90ms; }
[data-ui="v2"] .pf-success-spark.three { right: 20px; bottom: 5px; color: var(--ok); font-size: 19px; animation-delay: 160ms; }
@keyframes pf-success-pop { from { opacity: 0; transform: scale(.65) rotate(-10deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes pf-success-spark { from { opacity: 0; transform: scale(.2) rotate(-45deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
[data-ui="v2"] .pf-success h3 { margin: var(--sp-4) 0 var(--sp-2); font-size: 22px; }
[data-ui="v2"] .pf-success p { max-width: 440px; margin: 0 auto; color: var(--ink-2); line-height: 1.5; }
[data-ui="v2"] .pf-success .pf-add-done { color: var(--ok); }
[data-ui="v2"] .pf-sent-add { display: grid; justify-items: center; gap: var(--sp-3); margin-top: var(--sp-5); }
[data-ui="v2"] .pf-add-done { margin: var(--sp-5) 0 0; color: var(--ok); font-weight: 650; }
[data-ui="v2"] .pf-sent-detail { display: flex; flex-direction: column; gap: var(--sp-6); }
[data-ui="v2"] .pf-sent-detail-head {
  display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 4px var(--sp-4);
  padding-bottom: var(--sp-5); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .pf-sent-detail-head .t-eyebrow { grid-column: 1 / -1; }
[data-ui="v2"] .pf-sent-detail-head h3 { min-width: 0; margin: 0; font-size: 20px; }
[data-ui="v2"] .pf-sent-detail section { display: flex; flex-direction: column; gap: var(--sp-3); }
[data-ui="v2"] .pf-sent-message {
  margin: 0; padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface-2); color: var(--ink-2); line-height: 1.55; overflow-wrap: anywhere;
}
[data-ui="v2"] .pf-sent-files { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .pf-sent-file {
  min-width: 0; max-width: 100%; display: inline-grid; grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center; gap: var(--sp-2); padding: 7px 9px; border: 1px solid var(--line);
  border-radius: var(--r-md); background: var(--surface); color: var(--ink-2); font-size: 12px;
}
[data-ui="v2"] .pf-sent-file > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .pf-sent-file > .icon { color: var(--accent-text); font-size: 17px; }
[data-ui="v2"] .pf-sent-file small { color: var(--ink-3); white-space: nowrap; }
[data-ui="v2"] .pf-sent-contact { display: flex; align-items: center; gap: var(--sp-2); margin: 0; color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .pf-sent-contact-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); }

@media (max-width: 760px) {
  [data-ui="v2"] .pf-panel {
    top: calc(var(--header-h) + var(--sp-2)); right: var(--sp-2); bottom: var(--sp-2);
    width: calc(100vw - 12px) !important; min-width: 0; max-width: none;
  }
  [data-ui="v2"] .pf-panel-resize { display: none; }
  [data-ui="v2"] .pf-panel-head, [data-ui="v2"] .pf-panel-body { padding-left: var(--sp-6); padding-right: var(--sp-6); }
  [data-ui="v2"] .pf-panel-foot { padding-left: var(--sp-6); padding-right: var(--sp-6); }
  [data-ui="v2"] .pf-attachment-head { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .pf-panel, [data-ui="v2"] .pf-panel.is-closing,
  [data-ui="v2"] .pf-success-check, [data-ui="v2"] .pf-success-spark { animation: none; }
}

/* ============================================================
   Superadmin — agenda produktové zpětné vazby
   ============================================================ */
[data-ui="v2"] .af-toolbar {
  position: sticky; top: var(--content-sticky-top); z-index: 8; display: grid;
  grid-template-columns: minmax(260px,1fr) repeat(3, minmax(150px, .34fr));
  align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-2);
}
[data-ui="v2"] .af-toolbar > label { min-width: 0; }
[data-ui="v2"] .af-toolbar .v2-input { width: 100%; min-width: 0; min-height: 40px; }
/* Jeden skutečný vstup, nikoli nativní pole uvnitř druhého rámečku
   globálního hledání. Ikona neubírá místo textu ani neblokuje kliknutí. */
[data-ui="v2"] .af-search { position: relative; display: flex; align-items: center; }
[data-ui="v2"] .af-search > .icon { position: absolute; left: 12px; font-size: 19px; color: var(--ink-3); pointer-events: none; }
[data-ui="v2"] .af-search > input { padding-left: 38px; }
[data-ui="v2"] .af-preferences { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3); margin-bottom: var(--sp-5); color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .af-summary { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: var(--sp-4); margin-bottom: var(--sp-5); }
[data-ui="v2"] .af-summary-card {
  min-width: 0; display: flex; align-items: center; gap: var(--sp-4); padding: var(--sp-5);
  border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); color: var(--ink-2);
  box-shadow: var(--shadow-card); cursor: pointer; text-align: left; transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .af-summary-card:hover { transform: translateY(-1px); border-color: var(--line-2); background: var(--surface-2); }
[data-ui="v2"] .af-summary-card.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-text); box-shadow: inset 0 0 0 1px var(--accent); }
[data-ui="v2"] .af-summary-card > .icon { flex: 0 0 auto; font-size: 22px; }
[data-ui="v2"] .af-summary-card > span:last-child { min-width: 0; display: flex; flex-direction: column; }
[data-ui="v2"] .af-summary-card b { font-size: 22px; font-variant-numeric: tabular-nums; }
[data-ui="v2"] .af-summary-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .af-list { overflow: hidden; }
[data-ui="v2"] .af-list-head {
  min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-6); border-bottom: 1px solid var(--line); background: var(--surface-2); color: var(--ink-3); font-size: 12px;
}
[data-ui="v2"] .af-item { --af-category: var(--line-2); border-bottom: 1px solid var(--line); border-left: 4px solid var(--af-category); }
[data-ui="v2"] .af-item.cat-idea { --af-category: #d54d91; }
[data-ui="v2"] .af-item.cat-missing { --af-category: #db8b18; }
[data-ui="v2"] .af-item.cat-praise { --af-category: #1b9b70; }
[data-ui="v2"] .af-item.cat-problem { --af-category: #d44d50; }
[data-ui="v2"] .af-item.cat-other { --af-category: #4f7fd2; }
[data-ui="v2"] .af-item:last-child { border-bottom: 0; }
[data-ui="v2"] .af-item-head {
  width: 100%; min-height: 94px; display: grid; grid-template-columns: 24px minmax(0,1fr) 150px;
  align-items: center; gap: var(--sp-4); padding: var(--sp-5) var(--sp-6); border: 0; background: var(--surface); color: var(--ink);
  font: inherit; text-align: left; cursor: pointer; transition: background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .af-item-head:hover, [data-ui="v2"] .af-item.open > .af-item-head { background: var(--surface-2); }
[data-ui="v2"] .af-chevron { color: var(--ink-3); }
[data-ui="v2"] .af-main { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
[data-ui="v2"] .af-main > b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
[data-ui="v2"] .af-main > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); }
[data-ui="v2"] .af-badges { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .af-item-head time { color: var(--ink-3); font-size: 12px; text-align: right; white-space: nowrap; }
[data-ui="v2"] .af-detail { padding: 0 var(--sp-6) var(--sp-6) calc(var(--sp-6) + 40px); background: var(--surface-2); }
[data-ui="v2"] .af-message {
  max-width: 980px; padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface); color: var(--ink); line-height: 1.6; overflow-wrap: anywhere;
}
[data-ui="v2"] .af-context { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--sp-3); margin: var(--sp-4) 0; }
[data-ui="v2"] .af-context > div { min-width: 0; padding: var(--sp-3) var(--sp-4); border-left: 2px solid var(--line-2); }
[data-ui="v2"] .af-context dt { color: var(--ink-3); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
[data-ui="v2"] .af-context dd { margin: 3px 0 0; overflow-wrap: anywhere; }
[data-ui="v2"] .af-attachments { margin: var(--sp-4) 0; }
[data-ui="v2"] .af-attachments > b { display: inline-flex; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-2); color: var(--ink-2); }
[data-ui="v2"] .af-attachments > b .icon { font-size: 17px; color: var(--af-category); }
[data-ui="v2"] .af-attachments > div { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .af-attachment {
  max-width: min(100%, 420px); display: inline-grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: var(--sp-2);
  padding: 7px 10px; border: 1px solid var(--line-2); border-radius: var(--r-md); background: var(--surface); color: var(--ink-2); text-decoration: none;
}
[data-ui="v2"] .af-attachment:hover { border-color: var(--af-category); color: var(--ink); }
[data-ui="v2"] .af-attachment > span:nth-child(2) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .af-attachment .icon { color: var(--af-category); font-size: 17px; }
[data-ui="v2"] .af-attachment small { color: var(--ink-3); white-space: nowrap; }
[data-ui="v2"] .af-editor {
  display: grid; grid-template-columns: 190px minmax(260px,1fr) auto; align-items: end; gap: var(--sp-4);
  padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface);
}
[data-ui="v2"] .af-editor label { min-width: 0; display: flex; flex-direction: column; gap: var(--sp-2); color: var(--ink-2); font-size: 12px; font-weight: 650; }
[data-ui="v2"] .af-editor textarea { width: 100%; min-height: 68px; resize: vertical; font-weight: 400; }
[data-ui="v2"] .af-editor .v2-btn { margin-bottom: 1px; }
/* Odpovědět e-mailem nad Uložit, obojí v posledním sloupci mřížky. */
[data-ui="v2"] .af-actions { display: flex; flex-direction: column; align-items: stretch; gap: var(--sp-2); }
[data-ui="v2"] .af-actions .t-meta { text-align: center; }
[data-ui="v2"] .af-pagination { min-height: 48px; display: flex; justify-content: center; align-items: center; gap: var(--sp-4); margin-top: var(--sp-5); color: var(--ink-3); }

@media (max-width: 1180px) {
  [data-ui="v2"] .af-toolbar { grid-template-columns: repeat(3, minmax(0,1fr)); }
  [data-ui="v2"] .af-toolbar .af-search { grid-column: 1 / -1; }
  [data-ui="v2"] .af-summary { gap: var(--sp-2); }
  [data-ui="v2"] .af-summary-card { padding: var(--sp-4); gap: var(--sp-3); }
  [data-ui="v2"] .af-context { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  [data-ui="v2"] .af-toolbar { position: static; }
  [data-ui="v2"] .af-summary { grid-template-columns: repeat(3, minmax(0,1fr)); }
  [data-ui="v2"] .af-editor { grid-template-columns: 1fr auto; }
  [data-ui="v2"] .af-editor .af-note { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 640px) {
  [data-ui="v2"] .pf-categories > div { grid-template-columns: repeat(2, minmax(0,1fr)); }
  [data-ui="v2"] .pf-categories button:last-child { grid-column: 1 / -1; min-height: 54px; flex-direction: row; }
  [data-ui="v2"] .pf-message-meta { flex-direction: column; gap: 2px; }
  [data-ui="v2"] .pf-message-meta small:last-child { margin-left: 0; }
  [data-ui="v2"] .pf-attachment-head { align-items: stretch; flex-direction: column; }
  [data-ui="v2"] .pf-attachment-head .v2-btn { justify-content: center; }
  [data-ui="v2"] .af-toolbar { grid-template-columns: 1fr; }
  [data-ui="v2"] .af-toolbar .af-search { grid-column: auto; }
  [data-ui="v2"] .af-summary { display: flex; overflow-x: auto; padding-bottom: 3px; }
  [data-ui="v2"] .af-summary-card { flex: 0 0 132px; }
  [data-ui="v2"] .af-item-head { grid-template-columns: 20px minmax(0,1fr); padding-inline: var(--sp-4); }
  [data-ui="v2"] .af-item-head time { grid-column: 2; text-align: left; }
  [data-ui="v2"] .af-detail { padding: 0 var(--sp-4) var(--sp-5); }
  [data-ui="v2"] .af-context, [data-ui="v2"] .af-editor { grid-template-columns: 1fr; }
  [data-ui="v2"] .af-editor .af-note { grid-column: auto; grid-row: auto; }
}

/* ============================================================
   Superadmin — vývojové zprávy
   ============================================================ */
[data-ui="v2"] .nw-toolbar {
  display: flex; align-items: center; gap: var(--sp-5); padding: var(--sp-5) var(--sp-7);
  margin-bottom: var(--sp-5); position: sticky; top: var(--content-sticky-top); z-index: 8;
}
[data-ui="v2"] .nw-folders { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .nw-folder.on { background: var(--accent-soft); color: var(--accent-text); border-color: var(--accent-line); }
[data-ui="v2"] .nw-overview-controls { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,420px); align-items: center; gap: var(--sp-4); margin-bottom: var(--sp-4); }
[data-ui="v2"] .nw-type-stats { min-width: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2); }
[data-ui="v2"] .nw-type-chip {
  min-height: 38px; display: inline-flex; align-items: center; gap: var(--sp-3); padding: 7px 11px;
  border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); color: var(--ink-2);
  font: inherit; font-size: 12px; cursor: pointer; box-shadow: var(--shadow-card);
}
[data-ui="v2"] .nw-type-chip b { min-width: 24px; color: var(--ink); font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; }
[data-ui="v2"] .nw-type-chip:hover { border-color: var(--line-2); background: var(--surface-2); }
[data-ui="v2"] .nw-type-chip.on { border-color: var(--accent-line); background: var(--accent-soft); color: var(--accent-text); box-shadow: inset 0 0 0 1px var(--accent-line); }
[data-ui="v2"] .nw-delivery-search { width: 100%; }
[data-ui="v2"] .nw-delivery-card { overflow: hidden; }
[data-ui="v2"] .nw-delivery-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
[data-ui="v2"] .nw-delivery-table th { padding: 10px var(--sp-5); border-bottom: 1px solid var(--line); background: var(--surface-2); color: var(--ink-3); font-size: 11px; font-weight: 700; letter-spacing: .03em; text-align: left; text-transform: uppercase; }
[data-ui="v2"] .nw-delivery-table th:nth-child(1) { width: 174px; }
[data-ui="v2"] .nw-delivery-table th:nth-child(2) { width: 170px; }
[data-ui="v2"] .nw-delivery-table th:nth-child(4) { width: 84px; text-align: center; }
[data-ui="v2"] .nw-delivery-table th:nth-child(5) { width: 27%; }
[data-ui="v2"] .nw-delivery-table td { min-width: 0; padding: 11px var(--sp-5); border-bottom: 1px solid var(--line); vertical-align: middle; font-size: 13px; }
[data-ui="v2"] .nw-delivery-table tbody tr:last-child td { border-bottom: 0; }
[data-ui="v2"] .nw-delivery-row { cursor: pointer; transition: background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
[data-ui="v2"] .nw-delivery-row:hover { background: var(--surface-2); }
[data-ui="v2"] .nw-delivery-row:focus-visible { outline: 0; box-shadow: inset 3px 0 var(--accent), inset 0 0 0 2px var(--focus); }
[data-ui="v2"] .nw-delivery-time b { color: var(--ink-2); font-size: 12px; font-weight: 600; white-space: nowrap; }
[data-ui="v2"] .nw-delivery-subject { overflow: hidden; }
[data-ui="v2"] .nw-delivery-subject b, [data-ui="v2"] .nw-delivery-subject small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .nw-delivery-subject b { color: var(--ink); font-weight: 650; }
[data-ui="v2"] .nw-delivery-subject small { margin-top: 2px; color: var(--ink-3); }
[data-ui="v2"] .nw-delivery-attachments { text-align: center; color: var(--ink-3); font-variant-numeric: tabular-nums; }
[data-ui="v2"] td.nw-delivery-attachments { white-space: nowrap; }
[data-ui="v2"] td.nw-delivery-attachments .icon { margin-right: 3px; font-size: 17px; vertical-align: -3px; }
[data-ui="v2"] .nw-delivery-recipient { overflow: hidden; color: var(--ink-2); text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .nw-pagination { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: var(--sp-4); padding: var(--sp-3) var(--sp-5); border-top: 1px solid var(--line); color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .nw-list { overflow: hidden; }
[data-ui="v2"] .nw-row {
  min-height: 78px; display: grid; grid-template-columns: 36px minmax(240px,1fr) minmax(180px,.45fr) auto;
  align-items: center; gap: var(--sp-5); padding: var(--sp-5) var(--sp-7); border-bottom: 1px solid var(--line);
  cursor: pointer; transition: background var(--dur-fast) var(--ease);
}
[data-ui="v2"] .nw-row:hover { background: var(--surface-2); }
[data-ui="v2"] .nw-row:last-of-type { border-bottom: 0; }
[data-ui="v2"] .nw-row-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: var(--r-md); background: var(--bg-2); color: var(--ink-2); font-size: 19px; }
[data-ui="v2"] .nw-row-main, [data-ui="v2"] .nw-row-meta { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
[data-ui="v2"] .nw-row-main b, [data-ui="v2"] .nw-row-main small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .nw-row-meta { align-items: flex-start; }
[data-ui="v2"] .nw-row-actions { display: flex; align-items: center; gap: var(--sp-2); }
[data-ui="v2"] .nw-more { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: var(--sp-2); color: var(--ink-3); }

[data-ui="v2"] .nw-detail-wrap { position: fixed; inset: 0; z-index: 90; animation: nw-scrim-in var(--dur-fast) var(--ease) both; }
[data-ui="v2"] .nw-detail-scrim { position: absolute; inset: 0; border: 0; background: var(--scrim); cursor: default; }
[data-ui="v2"] .nw-detail {
  position: absolute; top: 0; right: 0; bottom: 0; max-width: calc(100vw - 24px); min-width: 420px;
  background: var(--surface); border-left: 1px solid var(--line); box-shadow: var(--shadow-pop);
  display: flex; flex-direction: column; animation: nw-detail-in 220ms var(--ease) both;
}
[data-ui="v2"] .nw-delivery-detail { width: clamp(440px, 34vw, 900px); }
@keyframes nw-scrim-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes nw-detail-in { from { transform: translateX(32px); } to { transform: translateX(0); } }
[data-ui="v2"] .nw-resize { position: absolute; top: 0; bottom: 0; left: -6px; width: 12px; cursor: col-resize; z-index: 2; }
[data-ui="v2"] .nw-resize::after { content: ''; position: absolute; top: 44%; bottom: 44%; left: 5px; width: 2px; border-radius: var(--r-pill); background: var(--line-2); }
[data-ui="v2"] body.nw-resizing { cursor: col-resize; user-select: none; }
[data-ui="v2"] .nw-detail-head { display: flex; align-items: flex-start; gap: var(--sp-5); padding: var(--sp-7) var(--sp-8); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .nw-detail-head > div { min-width: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
[data-ui="v2"] .nw-detail-head b { font-size: 18px; overflow-wrap: anywhere; }
[data-ui="v2"] .nw-detail-head .v2-iconbtn { margin-left: auto; }
[data-ui="v2"] .nw-detail-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-4); padding: var(--sp-5) var(--sp-8); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .nw-preview { flex: 1 1 auto; min-height: 260px; padding: var(--sp-6); background: var(--bg); }
[data-ui="v2"] .nw-preview iframe { width: 100%; height: 100%; min-height: 360px; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); }
[data-ui="v2"] .nw-delivery-preview { min-height: 0; overflow: hidden; }
[data-ui="v2"] .nw-delivery-preview iframe { min-height: 100%; }
[data-ui="v2"] .nw-delivery-detail-to { min-width: 0; overflow-wrap: anywhere; }
[data-ui="v2"] .nw-detail-meta .t-meta { display: inline-flex; align-items: center; gap: 5px; }
[data-ui="v2"] .nw-detail-meta .t-meta .icon { font-size: 16px; }
[data-ui="v2"] .nw-detail-foot { display: flex; justify-content: flex-end; gap: var(--sp-3); padding: var(--sp-5) var(--sp-8); border-top: 1px solid var(--line); }

[data-ui="v2"] .nw-attachments { padding: var(--sp-5) var(--sp-8); border-top: 1px solid var(--line); }
[data-ui="v2"] .nw-attachment-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); }
[data-ui="v2"] .nw-attachment { display: inline-flex; align-items: center; gap: var(--sp-2); max-width: 100%; padding: 6px 8px; border: 1px solid var(--line-2); border-radius: var(--r-md); background: var(--surface-2); }
[data-ui="v2"] .nw-attachment a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .nw-attachment small { color: var(--ink-3); white-space: nowrap; }

[data-ui="v2"] .nw-editor-panel {
  position: fixed; z-index: 76; top: calc(var(--header-h) + var(--sp-3)); right: var(--sp-3); bottom: var(--sp-3);
  width: 840px; min-width: 560px; max-width: calc(100vw - 20px);
  display: flex; flex-direction: column; overflow: visible; container-type: inline-size;
  border: 1px solid var(--line); border-radius: var(--r-2xl); background: var(--surface);
  box-shadow: var(--shadow-pop); animation: nw-editor-panel-in 240ms var(--ease) both;
}
[data-ui="v2"] .nw-editor-panel.is-closing { pointer-events: none; animation: nw-editor-panel-out 170ms var(--ease) both; }
@keyframes nw-editor-panel-in { from { opacity: 0; transform: translateX(calc(100% + var(--sp-5))); } to { opacity: 1; transform: translateX(0); } }
@keyframes nw-editor-panel-out { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(calc(100% + var(--sp-5))); } }
[data-ui="v2"] .nw-editor-resize {
  position: absolute; z-index: 2; top: var(--sp-7); bottom: var(--sp-7); left: -7px; width: 14px;
  border-radius: var(--r-pill); cursor: col-resize; touch-action: none;
}
[data-ui="v2"] .nw-editor-resize::after {
  content: ''; position: absolute; top: 43%; bottom: 43%; left: 6px; width: 3px;
  border-radius: var(--r-pill); background: var(--line-2);
  transition: background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
[data-ui="v2"] .nw-editor-resize:hover::after,
[data-ui="v2"] .nw-editor-resize:focus-visible::after { background: var(--accent); transform: scaleY(1.25); }
[data-ui="v2"] body.nw-editor-resizing { cursor: col-resize; user-select: none; }
[data-ui="v2"] .nw-editor-panel-head {
  flex: 0 0 auto; display: flex; align-items: flex-start; gap: var(--sp-5);
  padding: var(--sp-6) var(--sp-7); border-bottom: 1px solid var(--line);
}
[data-ui="v2"] .nw-editor-panel-head > div { min-width: 0; }
[data-ui="v2"] .nw-editor-panel-head h2 { margin: 3px 0 0; overflow: hidden; font-size: 19px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
[data-ui="v2"] .nw-editor-panel-head p { margin: 4px 0 0; color: var(--ink-3); font-size: 12px; }
[data-ui="v2"] .nw-editor-panel-head .v2-iconbtn { flex: 0 0 auto; margin-left: auto; }
[data-ui="v2"] .nw-editor-panel-body {
  flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain;
  padding: var(--sp-6) var(--sp-7); scrollbar-width: thin;
}
[data-ui="v2"] .nw-editor-panel-foot {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-7); border-top: 1px solid var(--line); border-radius: 0 0 var(--r-2xl) var(--r-2xl); background: var(--surface);
}
[data-ui="v2"] .nw-editor { display: flex; flex-direction: column; gap: var(--sp-5); }
[data-ui="v2"] .nw-editor-basics { display: grid; grid-template-columns: minmax(190px,.3fr) minmax(320px,1fr); gap: var(--sp-4); }
[data-ui="v2"] .nw-rec-section { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-3); padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface-2); }
[data-ui="v2"] .nw-rec-section > div:first-child { min-width: 260px; }
[data-ui="v2"] .nw-rec-section p { margin: 2px 0 0; }
[data-ui="v2"] .nw-rec-import { padding: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface-2); }
[data-ui="v2"] .nw-rec-import textarea { width: 100%; resize: vertical; min-height: 100px; }
[data-ui="v2"] .nw-rec-import-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); justify-content: flex-end; }
[data-ui="v2"] .nw-rec-import-result { max-height: 170px; overflow: auto; overflow-wrap: anywhere; font-size: 13px; }
[data-ui="v2"] .nw-rec-external { border: 1px solid var(--line); border-radius: var(--r-xl); padding: var(--sp-3) var(--sp-5); }
[data-ui="v2"] .nw-rec-external summary { cursor: pointer; font-weight: 600; }
[data-ui="v2"] .nw-rec-external-list { max-height: 210px; overflow: auto; }
[data-ui="v2"] .nw-rec-external-row { display: flex; align-items: center; gap: var(--sp-3); justify-content: space-between; padding: var(--sp-2) 0; border-top: 1px solid var(--line); }
[data-ui="v2"] .nw-rec-external-row > span { min-width: 0; overflow-wrap: anywhere; }
[data-ui="v2"] .nw-rec-external-row small { display: block; color: var(--ink-3); }
[data-ui="v2"] .nw-rec-picker { max-height: 320px; overflow: auto; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); }
[data-ui="v2"] .nw-rec-search { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3); background: var(--surface); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .nw-rec-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
[data-ui="v2"] .nw-rec-person { min-width: 0; display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: var(--sp-3); padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line); cursor: pointer; }
[data-ui="v2"] .nw-rec-person:nth-child(odd) { border-right: 1px solid var(--line); }
[data-ui="v2"] .nw-rec-person.off { opacity: .7; cursor: not-allowed; }
[data-ui="v2"] .nw-rec-person > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
[data-ui="v2"] .nw-rec-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); }
[data-ui="v2"] .nw-editbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); padding: var(--sp-3); border: 1px solid var(--field-line); border-bottom: 0; border-radius: var(--r-lg) var(--r-lg) 0 0; background: var(--surface-2); }
[data-ui="v2"] .nw-format-text { font: 600 14px/1 var(--font-sans); }
[data-ui="v2"] .nw-format-text i { font-weight: 500; }
[data-ui="v2"] .nw-editarea { min-height: clamp(300px, 42dvh, 620px); overflow: visible; padding: var(--sp-7); border: 1px solid var(--field-line); border-radius: 0 0 var(--r-lg) var(--r-lg); background: var(--surface); color: var(--ink); font-size: 15px; line-height: 1.6; }
[data-ui="v2"] .nw-editarea:empty::before { content: attr(data-placeholder); color: var(--ink-3); pointer-events: none; }
[data-ui="v2"] .nw-editarea img { max-width: 100%; height: auto; }
[data-ui="v2"] .nw-editor .nw-attachments { padding-inline: 0; }

[data-ui="v2"] .nw-subscribers { overflow: hidden; }
[data-ui="v2"] .nw-subfilters { display: flex; gap: var(--sp-4); padding: var(--sp-5) var(--sp-7); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .nw-subfilters .v2-gsearch { flex: 1; max-width: 560px; }
[data-ui="v2"] .nw-subfilters select { width: 210px; }
[data-ui="v2"] .nw-sub-row { display: grid; grid-template-columns: 34px minmax(240px,1fr) auto 160px; align-items: center; gap: var(--sp-4); padding: var(--sp-4) var(--sp-7); border-bottom: 1px solid var(--line); }
[data-ui="v2"] .nw-sub-row .avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--bg-2); color: var(--ink-2); font-weight: 700; }
[data-ui="v2"] .nw-subscribers > .v2-note { margin: var(--sp-5) var(--sp-7); }

@media (max-width: 820px) {
  [data-ui="v2"] .nw-toolbar { align-items: flex-start; flex-wrap: wrap; }
  [data-ui="v2"] .nw-overview-controls { grid-template-columns: 1fr; }
  [data-ui="v2"] .nw-delivery-table, [data-ui="v2"] .nw-delivery-table tbody, [data-ui="v2"] .nw-delivery-table tr, [data-ui="v2"] .nw-delivery-table td { display: block; width: 100%; }
  [data-ui="v2"] .nw-delivery-table thead { display: none; }
  [data-ui="v2"] .nw-delivery-table tr { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px var(--sp-3); padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line); }
  [data-ui="v2"] .nw-delivery-table td { padding: 0; border: 0; }
  [data-ui="v2"] .nw-delivery-table .nw-delivery-subject, [data-ui="v2"] .nw-delivery-table .nw-delivery-recipient { grid-column: 1 / -1; }
  [data-ui="v2"] .nw-delivery-table .nw-delivery-subject { grid-row: 2; }
  [data-ui="v2"] .nw-delivery-table .nw-delivery-attachments { grid-column: 2; grid-row: 1; justify-self: end; }
  [data-ui="v2"] .nw-delivery-table .nw-delivery-recipient { grid-row: 3; }
  [data-ui="v2"] .nw-delivery-table .nw-delivery-recipient::before { content: 'Komu: '; color: var(--ink-3); }
  [data-ui="v2"] .nw-row { grid-template-columns: 32px minmax(0,1fr) auto; }
  [data-ui="v2"] .nw-row-meta { grid-column: 2; }
  [data-ui="v2"] .nw-row-actions { grid-column: 3; grid-row: 1 / span 2; }
  [data-ui="v2"] .nw-detail { min-width: 0; width: calc(100vw - 12px) !important; }
  [data-ui="v2"] .nw-resize { display: none; }
  [data-ui="v2"] .nw-editor-panel { top: calc(var(--header-h) + 6px); right: 6px; bottom: 6px; min-width: 0; width: calc(100vw - 12px) !important; max-width: none; }
  [data-ui="v2"] .nw-editor-resize { display: none; }
  [data-ui="v2"] .nw-editor-panel-head, [data-ui="v2"] .nw-editor-panel-body { padding-left: var(--sp-5); padding-right: var(--sp-5); }
  [data-ui="v2"] .nw-editor-panel-foot { padding-left: var(--sp-5); padding-right: var(--sp-5); }
  [data-ui="v2"] .nw-rec-list { grid-template-columns: 1fr; }
  [data-ui="v2"] .nw-rec-person:nth-child(odd) { border-right: 0; }
  [data-ui="v2"] .nw-editor-basics { grid-template-columns: 1fr; }
  [data-ui="v2"] .nw-sub-row { grid-template-columns: 32px minmax(0,1fr) auto; }
  [data-ui="v2"] .nw-sub-row > small:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  [data-ui="v2"] .nw-detail-wrap, [data-ui="v2"] .nw-detail,
  [data-ui="v2"] .nw-editor-panel, [data-ui="v2"] .nw-editor-panel.is-closing { animation: none; }
}

@media (max-width: 560px) {
  [data-ui="v2"] .nw-toolbar { position: static; padding: var(--sp-4); }
  [data-ui="v2"] .nw-toolbar .v2-seg { width: 100%; }
  [data-ui="v2"] .nw-toolbar .v2-seg-btn { flex: 1 1 auto; }
  [data-ui="v2"] .nw-type-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  [data-ui="v2"] .nw-type-chip { justify-content: space-between; }
  [data-ui="v2"] .nw-type-chip:first-child { grid-column: 1 / -1; }
}

/* Moje hlaseni: priloha k doplneni + upozorneni "cekame na doklad".
   Bez dokladu nejde chyba nasimulovat, proto je vyzva vyrazna. */
.v2-note-warn {
  border-color: var(--warn-border, #f0c36d);
  background: var(--warn-bg, #fdf6e3);
  color: var(--warn-ink, #6b4e00);
}
.v2-attlist { margin: 4px 0 0; padding-left: 18px; }
.v2-attlist li { margin: 2px 0; }
.v2-oqfile { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.v2-oqfile-pick {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; color: var(--muted); cursor: pointer;
}
.v2-oqfile-pick input[type="file"] { max-width: 100%; font-size: 12px; }
.v2-oqfile-consent { font-size: 12px; line-height: 1.35; }
.v2-oqfile-consent[hidden] { display: none; }

/* Mozne duplicity - odlozene doklady pod zivou frontou. Zluty pruh je odlisi
   od bezne fronty, aniz by pusobily jako chyba (chyba nenastala). */
/* Prázdná kotva je flex položkou sloupce — bez :empty by za frontou
   zůstala mezera i ve chvíli, kdy žádná duplicita není. */
[data-ui="v2"] #v2-duplist:empty { display: none; }
/* Karta je rovnocenná živé frontě; že jde o něco k rozhodnutí, nese tón
   hlavičky, ne rámeček navíc. */
[data-ui="v2"] .v2-dupsect > .v2-card-head { background: var(--warn-soft); }
[data-ui="v2"] .v2-dupsect > .v2-card-head .t-eyebrow { color: var(--warn); }
[data-ui="v2"] .v2-dupsect .dupnote { padding: var(--sp-5) var(--sp-7); }
[data-ui="v2"] .v2-qrow.dup { display: grid; grid-template-columns: minmax(180px,1fr) minmax(220px,1.4fr) auto; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--line); }
[data-ui="v2"] .v2-qrow.dup .qdupinfo { min-width: 0; }
[data-ui="v2"] .v2-qrow.dup .qact { display: flex; gap: var(--sp-2); justify-content: flex-end; }
@media (max-width: 900px) {
  [data-ui="v2"] .v2-qrow.dup { grid-template-columns: 1fr; }
  [data-ui="v2"] .v2-qrow.dup .qact { justify-content: flex-start; }
}

/* Na úzkém displeji uvolní hlavička superadminu místo ovládacím prvkům. */
@media (max-width: 600px) {
  [data-ui="v2"] .v2-admin-title { display: none; }
}
