/* Pošta (V2). Všechny selektory jsou pod .mail2, aby styl Pošty
   nemohl změnit ostatní stránky. */
/* Atribut `hidden` skrývá přes `display:none` z PROHLÍŽEČE, jenže
   jakékoli AUTORSKÉ `display` na témže prvku ho přebije. Nabídka složky
   (`display:flex`) proto byla vidět od načtení stránky a `hidden = true`
   nedělalo nic — a test to nechytil, protože kontroloval vlastnost
   `hidden`, ne skutečnou viditelnost. Tohle pravidlo tu past zavírá
   pro celou Poštu V2 včetně prvků, které teprve přibudou. */
.mail2 [hidden] { display: none !important; }

.mail2 {
  /* Velikosti písma jdou přes TOKENY appky (theme.css), ne natvrdo —
     jinak prvky bez vlastní velikosti dědí --fs-telo (15 px) a proti
     původní Poště (--fs-vedlejsi, 13 px) působí zbytečně velké. */
  font-size: var(--fs-vedlejsi);
  --m2-nav: 272px;   /* sloupec schránek širší (21. 9. 2026) */
  --m2-list: minmax(330px, 410px);
  /* TVAR A VELIKOST TLAČÍTEK JE TADY, na jednom místě. Pošta měla
     pilulky (r=15px) vedle hranatých (r=5px) a tři různé výšky
     (32/34/36 px) — vedle sebe to nedrželo linku. Nové tlačítko
     v Poště si nic vlastního nevymýšlí, jen sáhne po těchhle
     tokenech (hlídá frontend/test/test_posta_v2_ui.py). */
  /* ── HUSTOTA: jedna stupnice pro celou Poštu (22. 9. 2026) ──
     Dřív si každý prvek určoval výšku sám (tlačítko 24, pole v dialogu
     38, výběr 40, položky nabídek různě) a vedle sebe to působilo
     nafouknutě. Čísla nejsou vymyšlená, vycházejí z toho, co dělají
     poštovní klienti: Outlook pro Windows má řádek seznamu ~22 px
     (Compact), ~34 px (Single) a 30 px v „medium" hustotě nového
     Outlooku; Gmail a spol. mají Compact 32 px a Comfortable 48 px.
     Bereme tedy střed: řádek 28 px, ovládací prvky 26 px, pole 28 px.
     PLATÍ JEN PRO DESKTOP — telefonní vrstva níž má vlastní, větší
     terče a do těchhle tokenů nesahá. */
  /* JEDNOTNÝ KOMPAKTNÍ VZHLED (6.3.0, zadání majitele §6–7): tlačítko
     a pole Pošty = TÝŽ recept jako zbytek appky (theme.css): tlačítko
     24 px (--btn-h, 6.5.0; dřív 19), pole 25 px (--pole-h), zaoblení 4, písmo 13 px.
     Ikonové tlačítko (jen ikona) je DOLOŽENÁ VÝJIMKA 22 px: ikona 16 px
     + 2 px okraje + obrys — v 19 px by se ikona lišty nevešla. Řádek
     seznamu, položka nabídky a záhlaví dialogu NEJSOU ovládací prvky —
     beze změny. Telefon má vlastní terče (vrstva níž vrací dřívější
     hodnoty tokenů — telefonní Pošta se 6.3.0 nemění). */
  --m2-ovladac: var(--btn-h);   /* tlačítko, chip filtru (24 px od 6.5.0; 19 v 6.3) */
  --m2-pole: var(--pole-h);     /* vstupní pole (dialogy i lišta; 25 px, dřív 28) */
  --m2-ikona-btn: 22px;         /* čtverec ikonového tlačítka (výjimka) */
  --m2-radek: 28px;      /* řádek seznamu v tabulkovém režimu */
  --m2-polozka: 26px;    /* položka nabídky, složky, volby v dialogu */
  --m2-zahlavi: 38px;    /* záhlaví dialogu */
  --m2-mezera: 6px;      /* jednotná mezera mezi prvky */
  --m2-btn-h: var(--btn-h);     /* zpětně kompatibilní jméno */
  --m2-btn-r: var(--btn-r);     /* zaoblení každého tlačítka */
  --m2-btn-pad: 8px;     /* vnitřní odsazení zleva a zprava */
  --m2-btn-fs: var(--btn-fs);   /* písmo tlačítka (12 px) */
  --m2-line: var(--okno-obrys, #B0BFD0);
  --m2-soft: var(--okno-zahlavi, #E7ECF3); /* 6.5.0: pole je bílé, měkký podklad = záhlaví okna */
  --m2-blue: var(--pg-blue, #2f5ca8);
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--text-primary, #182035);
  background: var(--bg-primary, #fff);
  font-family: Mulish, system-ui, sans-serif;
}
/* Telefon: Pošta drží DOSAVADNÍ rozměry (6.3.0 je kompaktnost pro
   počítač; terče ≥ 44 px a stávající telefonní rozvržení hlídají testy
   Pošty) — tokeny rozměrů se tu vracejí na hodnoty před 6.3.0. Totéž
   pro dotyk obecně `(pointer: coarse)` (tablet 1024×768): zbytek appky
   dává dotyku větší terče (components.css), Pošta nesmí zůstat na 19 px
   — jen TOKENY, telefonní ROZVRŽENÍ se tabletu netýká (recenze úkolu 3). */
@media (max-width:480px), (max-height:480px) and (max-width:1000px), (pointer: coarse) {
  .mail2 { --m2-ovladac: 24px; --m2-pole: 28px; --m2-ikona-btn: 24px;
    --m2-btn-h: 24px; --m2-btn-r: 5px; --m2-btn-pad: 9px; --m2-btn-fs: var(--fs-vedlejsi); }
}
.mail2 * { box-sizing: border-box; }
.mail2 button, .mail2 input { font: inherit; }
.mail2-topbar {
  min-height: 50px;
  display: grid;
  grid-template-columns: var(--m2-nav) minmax(200px, 420px) 1fr;
  align-items: center;
  gap: 14px;
  padding: 6px 14px;
  border-bottom: 1px solid var(--m2-line);
  background: var(--bg-primary, #fff);
  flex: 0 0 auto;
}
.mail2-compose { justify-self: start; min-width: 140px; height: 34px; border-radius: 8px; }
.mail2-search {
  height: var(--m2-pole);   /* pole hledání = výška pole (6.3.0, dřív 34) */
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 11px;
  /* Recept pole (6.3.3, rozhodnutí majitele): klid --pole-bg + obrys
     --pole-obrys, při psaní bílá --pole-bg-aktivni + obrys a halo pole.
     Dřív obrys průhledný a ve fokusu zůstala šedomodrá výplň. */
  border: 1px solid var(--pole-obrys);
  border-radius: var(--pole-r);
  background: var(--pole-bg);
  color: var(--text-secondary, #647087);
  transition: background-color .12s, border-color .12s, box-shadow .12s;
}
.mail2-search:focus-within { background: var(--pole-bg-aktivni);
  border-color: var(--pole-obrys-aktivni); box-shadow: var(--pole-stin-aktivni); }
.mail2-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: inherit; background: transparent; }
/* Appka má záměrný globální prstenec `:focus-visible { outline … !important }`
   (theme.css) kvůli ovládání klávesnicí. Pole hledání ale visuálně tvoří
   OBAL, takže by se prstenec vykreslil UVNITŘ něj a vypadalo to jako pole
   v poli. Indikátor proto nese obal (`:focus-within`) — nezmizel, jen je
   jeden. */
.mail2-search input:focus-visible { outline: 0 !important; }
.mail2-search kbd { padding: 2px 6px; border: 1px solid var(--m2-line); border-radius: 4px; font-size:var(--fs-popisek); background: transparent; }
.mail2-top-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.mail2-icon-btn {
  min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid transparent; border-radius: 6px; color: var(--text-secondary, #5f697b);
  background: transparent; text-decoration: none; cursor: pointer;
}
/* Glyf dědil 13px z .mail2 a vedle zbytku appky vypadal jako drobek.
   Velikost je proto vlastní, ne zděděná — tlačítko má 36px, obrázek
   v něm musí odpovídat. */
/* Selektor musí být specifičtější než `.mail2 button { font: inherit }`
   o pár řádků výš (0,1,1) — holé `.mail2-icon-btn` prohrálo a glyf
   zůstal na 13px. */
.mail2 .mail2-icon-btn { font-size: 19px; line-height: 1; }
.mail2-icon-btn.is-on { color: var(--pg-blue-text, var(--m2-blue)); background: var(--m2-soft); }
.mail2-icon-btn:hover { color: var(--text-primary); background: var(--bg-hover, #e8edf5); }

.mail2-layout {
  min-height: 0; flex: 1;
  display: grid;
  grid-template-columns: var(--m2-nav) var(--m2-list) 5px minmax(320px, 1fr);
}
.mail2-nav, .mail2-list-pane, .mail2-reader { min-height: 0; overflow: auto; }
.mail2-nav { position: relative; padding: 8px 9px; border-right: 1px solid var(--m2-line); background: var(--m2-soft); }
/* Úchyt na pravé hraně sloupce schránek: tažením se mění --m2-nav
   (přání 21. 9. 2026), hodnotu drží prohlížeč. Stejný vzor jako předěl
   seznamu a zprávy. */
.mail2-nav-splitter { position: absolute; top: 0; bottom: 0; right: 0; width: 7px; z-index: 5;
  cursor: col-resize; touch-action: none; background: transparent; }
.mail2-nav-splitter:hover, .mail2-nav-splitter:focus-visible,
.mail2.is-resizing-nav .mail2-nav-splitter { background: var(--m2-blue); }
.mail2.is-resizing-nav { cursor: col-resize; user-select: none; }
.mail2-quick { padding-bottom: 7px; border-bottom: 1px solid var(--m2-line); }
.mail2-nav-item {
  width: 100%; min-height: 22px; display: grid; grid-template-columns: 19px minmax(0,1fr) auto;
  align-items: center; gap: 5px; padding: 1px 8px; border: 0; border-radius: 6px;
  color: var(--text-primary); background: transparent; text-align: left; cursor: pointer;
}
.mail2-nav-item:hover { background: var(--bg-hover, #e2e8f1); }
.mail2-nav-item.is-active { color: var(--pg-blue-text, var(--m2-blue)); background: color-mix(in srgb, var(--m2-blue) 12%, transparent); font-weight: 700; }
.mail2-nav-icon { text-align: center; opacity: .78; }
/* Název složky na JEDEN řádek s výpustkou — zalomený název rozhodil
   ikonu i výšku řádku (hlášení 21. 9. 2026). */
.mail2-nav-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Sponka v tabulce i na kartě: SVG v barvě textu, na střed řádku. */
.mail2-sponka { width: 13px; height: 13px; vertical-align: -2px; opacity: .8; }
.mail2-td .mail2-sponka { display: inline-block; vertical-align: middle; }
.mail2-count { min-width: 24px; text-align: right; font-size:var(--fs-vedlejsi); }
.mail2-nav-title { display: flex; align-items: center; justify-content: space-between; padding: 12px 9px 5px; text-transform: uppercase; letter-spacing: .07em; font-size:var(--fs-drobne); font-weight: 800; color: var(--text-secondary); }
.mail2-nav-title button { border: 0; background: transparent; color: inherit; cursor: pointer; }
.mail2-account { margin: 0 0 2px; }
.mail2-account-head {
  width: 100%; display: grid;
  /* Šipka, název, a pak JEN stavové značky (hlavní ★, ztlumeno 🔕) —
     dva pevné sloupce po 30 px braly názvu místo (přání 21. 9. 2026);
     nastavení schránky je pod pravým tlačítkem. */
  grid-template-columns: 22px minmax(0,1fr); gap: 3px;
  align-items: center; padding: 0 4px; border-radius: 6px;
  color: var(--text-primary);
}
.mail2-account-head:hover { background: var(--bg-hover, #e2e8f1); }
.mail2-account-head button {
  min-width: 0; min-height: 24px; border: 0; border-radius: 5px;
  background: transparent; color: inherit; cursor: pointer;
}
.mail2-account-head button:focus-visible { outline: 2px solid var(--m2-blue); outline-offset: -2px; }
.mail2-account-select {
  display: grid; grid-template-columns: 10px minmax(0,1fr) auto;
  align-items: center; gap: 6px; text-align: left; font-weight: 700;
}
.mail2-account-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--account-color, var(--m2-blue)); }
/* `overflow:hidden` ořezává podle VÝŠKY ŘÁDKU, ne podle písmen —
   při těsné výšce zmizel dolní tah u „g" a „p". Řádek proto
   musí být vyšší než samotné písmo. */
.mail2-account-name { overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; line-height: 1.5; }
.mail2-folders { padding-left: 17px; }
.mail2-folder { font-weight: 500; font-size:var(--fs-vedlejsi); }
.mail2-hidden-folders { margin: 2px 4px 2px 8px; color: var(--text-secondary); }
.mail2-hidden-folders summary { cursor: pointer; font-size: var(--fs-drobne); padding: 3px 4px; }
.mail2-hidden-folder { display: grid; grid-template-columns: minmax(0,1fr) 30px;
  align-items: center; gap: 4px; padding-left: 13px; font-size: var(--fs-drobne); }
.mail2-hidden-folder span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail2-hidden-folder button { border: 0; background: transparent; color: inherit;
  min-height: 28px; cursor: pointer; border-radius: 4px; }
.mail2-skeleton { height: 32px; margin: 5px; border-radius: 5px; background: linear-gradient(90deg,var(--bg-hover,#e4e8ee),var(--bg-primary,#fff),var(--bg-hover,#e4e8ee)); background-size: 200% 100%; animation: mail2-shine 1.3s infinite; }

.mail2-list-pane { position: relative; border-right: 1px solid var(--m2-line); background: var(--bg-primary, #fff); }
.mail2-list-head { position: sticky; top: 0; z-index: 4; padding: 9px 12px 7px; border-bottom: 1px solid var(--m2-line); background: var(--bg-primary,#fff); }
.mail2-list-head > div:first-child { display: flex; align-items: baseline; gap: 8px; }
.mail2-list-head h1 { margin: 0; font: 700 var(--fs-karta) Raleway, sans-serif; }
.mail2-muted { color: var(--text-secondary); font-size:var(--fs-vedlejsi); }
.mail2-list-tools { display: flex; align-items: center; gap: 3px; margin-top: 7px; }
.mail2-filter { padding: 5px 9px; border: 1px solid transparent; border-radius: 15px; background: transparent; color: var(--text-secondary); cursor: pointer; font-size:var(--fs-vedlejsi); }
.mail2-filter:hover, .mail2-filter.is-active { border-color: var(--m2-line); color: var(--pg-blue-text, var(--m2-blue)); background: var(--m2-soft); }
.mail2-mobile-nav, .mail2-mobile-back { display: none; }
/* Telefonní vrstva (Apple Mail vzor, 21. 9. 2026): tlačítko výběru a
   plovoucí lišta ≡/Hledat/✎ existují jen na telefonu — viz media
   query níž. Skryté tady, ať na desktopu nezabírají řádek navíc. */
.mail2-mobil-vybrat, .mail2-mobil-bar { display: none; }
/* Obrazovka „Schránky" (bod 3 zadání) existuje jen na telefonu — viz
   media query níž. Skrytá tady, ať na desktopu/tabletu nezdvojí
   nadpis a rychlé řádky Příchozí/Přílohy nad `.mail2-quick`. */
.mail2-schranky-hlavicka, .mail2-schranky-karta { display: none; }
/* Lišta výběru je uvnitř řádku filtrů, zarovnaná doprava — žádný
   vlastní řádek (21. 9. 2026). */
.mail2-bulk { margin-left: auto; align-items: center; gap: 5px; }
.mail2-bulk:not([hidden]) { display: flex; }
/* Úzký seznam: filtry a řazení se do řádku nevejdou — zalomí se pod
   sebe, nevyjedou ven. Na telefonu tu zalamovat nic není (filtry
   i řazení skryté, lišta výběru je fixed). */
.mail2 .mail2-list-head .mail2-list-tools { flex-wrap: wrap; row-gap: 4px; }
/* Řazení u karet (5.120.0) — ikona ⇅ vpravo v řádku filtrů, volby
   v nabídce. `:not([hidden])`, jinak by display přebil atribut hidden
   (tabulka, zvláštní pohledy, telefon). Třída navíc kvůli společnému
   bloku tlačítek na konci souboru. */
.mail2 .mail2-list-tools .mail2-razeni-btn:not([hidden]) {
  display: inline-flex; align-items: center; justify-content: center;
  /* výška chipů filtrů vedle (19 px) — řádek filtrů drží jednu linku;
     glyf ⇅ je text 13 px, do 19 px se vejde (6.3.0) */
  margin-left: auto; width: var(--m2-btn-h, 28px); height: var(--m2-btn-h, 28px);
  min-height: var(--m2-btn-h, 28px); padding: 0;
  border: 1px solid transparent; border-radius: var(--m2-btn-r); background: transparent;
  color: var(--text-secondary); font-size: var(--fs-vedlejsi); cursor: pointer;
}
.mail2 .mail2-list-tools .mail2-razeni-btn:hover,
.mail2 .mail2-list-tools .mail2-razeni-btn[aria-expanded="true"] {
  border-color: var(--m2-line); color: var(--pg-blue-text, var(--m2-blue)); background: var(--m2-soft);
}
.mail2 .mail2-razeni-menu [aria-checked="true"] { font-weight: 700; }
.mail2-bulk span { margin-right: 4px; font-size:var(--fs-vedlejsi); font-weight: 700; white-space: nowrap; }
.mail2-bulk button, .mail2-reader-actions button {
  min-height: 32px; padding: 5px 9px; border: 1px solid var(--m2-line); border-radius: 5px;
  background: var(--bg-primary,#fff); color: var(--text-primary); cursor: pointer;
}
.mail2-bulk button:hover, .mail2-reader-actions button:hover { border-color: var(--m2-blue); color: var(--pg-blue-text, var(--m2-blue)); }
/* Upřesnit hledání (5.105.0) — nabídka operátorů a štítky filtrů.
   Selektory s .mail2 navíc: společný blok tlačítek na konci souboru má
   jinak stejnou specificitu a vyhrál by pořadím (CLAUDE.md). */
.mail2 .mail2-hl-napoveda {
  position: fixed; z-index: 60; display: flex; flex-direction: column; gap: 1px;
  padding: 8px; background: var(--bg-card, #fff); border: 1px solid var(--m2-line);
  border-radius: 8px; box-shadow: 0 12px 32px rgba(30,39,73,.16);
  max-height: 70vh; overflow-y: auto;
}
.mail2 .mail2-hl-napoveda[hidden] { display: none; }
.mail2 .mail2-hl-nadpis { font-size: var(--fs-popisek); font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--text-secondary); padding: 4px 10px; }
.mail2 .mail2-hl-napoveda button[data-op] {
  display: grid; grid-template-columns: 150px 1fr; gap: 10px; align-items: baseline;
  width: 100%; padding: 6px 10px; border: 0; border-radius: 5px; background: transparent;
  color: var(--text-secondary); text-align: left; cursor: pointer; font: inherit;
}
.mail2 .mail2-hl-napoveda button[data-op]:hover,
.mail2 .mail2-hl-napoveda button[data-op]:focus-visible { background: var(--m2-soft); }
.mail2 .mail2-hl-napoveda code { font-family: Consolas, monospace; font-weight: 700; color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-hl-pata { border-top: 1px solid var(--m2-line); margin-top: 4px; padding: 8px 10px 2px;
  font-size: var(--fs-popisek); color: var(--text-secondary); }
.mail2 .mail2-hl-filtry { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 14px;
  border-bottom: 1px solid var(--m2-line); }
.mail2 .mail2-hl-filtry[hidden] { display: none; }
.mail2 .mail2-hl-stitek { display: inline-flex; align-items: center; gap: 4px; height: 24px;
  padding: 0 2px 0 10px; border-radius: 12px; font-weight: 700; font-size: var(--fs-popisek);
  background: color-mix(in srgb, var(--m2-blue) 14%, transparent); color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-hl-stitek.is-text { background: var(--m2-soft); color: var(--text-primary); }
.mail2 .mail2-hl-filtry .mail2-hl-stitek button { border: 0; background: transparent; color: inherit;
  font-size: 15px; line-height: 1; cursor: pointer; padding: 0 6px; min-width: 0; height: auto; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-hl-napoveda button[data-op] { grid-template-columns: 1fr; gap: 2px; }
}
.mail2-status { min-height: 0; padding: 0 14px; color: var(--text-secondary); font-size:var(--fs-vedlejsi); }
.mail2-status:not(:empty) { padding-block: 9px; border-bottom: 1px solid var(--m2-line); }
.mail2-message {
  position: relative; display: grid; grid-template-columns: 26px minmax(0,1fr) auto; column-gap: 8px;
  /* POJMENOVANÉ oblasti (21. 9. 2026): bez nich automatické umístění
     po skrytí zaškrtávátka na telefonu posunulo jméno do 26px sloupce
     zaškrtávátka, čas do sloupce jména a předmět doprava (rozbitá
     karta na iPhonu). Teď má každý prvek své místo bez ohledu na to,
     které jsou vidět. */
  grid-template-areas:
    "check from    date"
    "check subject klip"
    "check preview preview"
    "check badges  badges";
  padding: 11px 12px; border: 0; border-bottom: 1px solid var(--m2-line);
  background: var(--bg-primary,#fff); color: var(--text-primary); text-align: left; cursor: pointer;
}
/* Čtverečky výběru jsou od 5.92.2 JEN na telefonu v režimu Vybrat
   (přání 22. 9. 2026) — na počítači se vybírá Ctrl/Shift klikem
   a akce jsou pod pravým tlačítkem. */
.mail2-message-check { grid-area: check; display: none; }
.mail2-message-from { grid-area: from; }
.mail2-message-date { grid-area: date; align-self: baseline; }
.mail2-message-subject { grid-area: subject; }
.mail2-message-klip { grid-area: klip; justify-self: end; align-self: center; }
.mail2-message-preview { grid-area: preview; }
.mail2-message-badges { grid-area: badges; }
/* hover karty = blok „Hover řádku zprávy (6.3.3)“ na konci souboru */
.mail2-message.is-active { background: color-mix(in srgb, var(--m2-blue) 10%, var(--bg-primary,#fff)); box-shadow: inset 3px 0 var(--m2-blue); }
/* Přečtená × nepřečtená musí být poznat NA PRVNÍ POHLED (hlášení z
   iPhonu 21. 9. 2026 — lišily se jen váhou předmětu): nepřečtená má
   modrý proužek vlevo, jemně modré pozadí a tučné jméno i předmět;
   přečtená má jméno v běžné váze a předmět tlumeně. */
.mail2-message .mail2-message-from { font-weight: 500; }
.mail2-message .mail2-message-subject { color: var(--text-secondary); }
.mail2-message.is-unread { background: color-mix(in srgb, var(--m2-blue) 5%, var(--bg-primary,#fff));
  box-shadow: inset 3px 0 var(--m2-blue); }
.mail2-message.is-unread .mail2-message-from, .mail2-message.is-unread .mail2-message-subject { font-weight: 800; color: var(--text-primary); }
.mail2-message.is-unread .mail2-message-date { color: var(--pg-blue-text, var(--m2-blue)); font-weight: 700; }
.mail2-message-check { align-self: start; margin-top: 3px; }
/* V tabulce je zaškrtávátko na STŘED buňky i řádku — pravidlo pro karty
   (nahoře, odsazené) ho posouvalo (hlášení 21. 9. 2026). */
.mail2-tr .mail2-message-check { grid-area: auto; grid-row: auto; align-self: center; justify-self: center; margin: 0; }
/* Řádek tabulky má JEDINÝ mřížkový řádek. V 5.85.6 zaškrtávátko dědilo
   `grid-row: 1 / span 3` z karet, Electron rozdělil 24 px na tři pruhy
   a text buněk (řádkování 24 px) se ořízl — vidět byly jen háčky. */
.mail2-tr { grid-template-rows: minmax(0, 1fr); grid-auto-rows: 0; }
.mail2-message-from, .mail2-message-subject, .mail2-message-preview { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail2-message-from { font-size:var(--fs-vedlejsi); font-weight: 650; }
.mail2-message-date { font-size:var(--fs-popisek); color: var(--text-secondary); white-space: nowrap; }
.mail2-message-klip { display: inline-flex; align-items: center; color: var(--text-secondary); }
/* ── Tažení karty zprávy (vzor Apple Mail, 22. 9. 2026) ──
   Pod kartou leží PILULKY: vlevo Další / Značka / Zahodit, vpravo
   Nepřečtené. Karta se po nich posouvá s prstem, dá se nechat
   otevřená a na pilulku ťuknout. Do 5.92.4 se místo toho odkrýval
   barevný pruh s popiskem a karta se po 132 px zasekla. */
.mail2-swipe { position: relative; overflow: hidden; }
.mail2-message { touch-action: pan-y; }
.mail2-message.je-swipe-zpet { transition: transform .2s cubic-bezier(.25,.8,.35,1); }
/* Pilulky jsou SVISLE NA STŘEDU řádku (přání 22. 9. 2026). */
.mail2-swipe-strana {
  position: absolute; top: 0; bottom: 0; display: none;
  align-items: center; gap: 6px; padding: 0 6px;
}
.mail2-swipe-strana.je-vlevo-strana { right: 0; justify-content: flex-end; }
.mail2-swipe-strana.je-vpravo-strana { left: 0; justify-content: flex-start; }
/* Odkrývá se JEN ta strana, na kterou se táhne — jinak by na druhé
   straně prosvítaly pilulky, které tam nepatří. */
.mail2-swipe.je-vlevo .je-vlevo-strana,
.mail2-swipe.je-vpravo .je-vpravo-strana { display: flex; }
.mail2-swipe-akce {
  width: 66px; height: 58px; flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; border: 0; border-radius: 999px;
  color: #fff; font: inherit; font-size: var(--fs-drobne); font-weight: 600;
  cursor: pointer;
}
.mail2-swipe-ikona { font-size: 19px; line-height: 1; }
.mail2-swipe-popis { line-height: 1; }
/* Barvy podle Apple Mail: šedá Další, oranžová značka (naše
   hvězdička), červené zahození, modré přečtení. Jsou PEVNÉ v obou
   motivech — bílý text na nich musí držet vždycky. */
.mail2-swipe-akce.je-dalsi { background: #8e8e93; }
.mail2-swipe-akce.je-znacka { background: #ff9500; }
.mail2-swipe-akce.je-zahodit { background: #ff3b30; }
.mail2-swipe-akce.je-precteno { background: #0a84ff; }
.mail2-swipe-akce:active { filter: brightness(.9); }
/* Plné přetažení (akce se provede po puštění) — pilulka zesvětlá,
   ať je poznat, že se to chystá. */
.mail2-swipe .mail2-message.je-swipe-prah ~ .mail2-swipe-strana .mail2-swipe-akce,
.mail2-swipe.je-vlevo .mail2-message.je-swipe-prah ~ .je-vlevo-strana .mail2-swipe-akce {
  filter: brightness(1.12);
}
.mail2-list-pane { overflow-x: hidden; }
/* Prázdný řádek štítků nezabírá místo (příloha už je vedle času). */
.mail2-message-badges:empty { display: none; }
.mail2-message-subject { margin-top: 4px; font-size:var(--fs-vedlejsi); }
.mail2-message-preview { grid-column: 2 / 4; margin-top: 3px; color: var(--text-secondary); font-size:var(--fs-vedlejsi); }
.mail2-message-badges { grid-column: 2 / 4; display: flex; gap: 5px; margin-top: 5px; color: var(--text-secondary); font-size:var(--fs-popisek); }
.mail2-star { color: #d58a00; }
.mail2-list-loading { padding: 12px; }
.mail2-list-loading span { display: block; height: 64px; margin-bottom: 8px; border-radius: 7px; background: var(--m2-soft); animation: mail2-pulse 1.1s infinite alternate; }

.mail2-reader { background: var(--bg-primary,#fff); }
.mail2-empty { height: 100%; display: grid; place-content: center; padding: 32px; text-align: center; color: var(--text-secondary); }
.mail2-empty h2 { margin: 10px 0 4px; color: var(--nadpis); font: 700 20px Raleway,sans-serif; }
.mail2-empty p { margin: 0; }
.mail2-empty-icon { margin: auto; font-size:38px; opacity: .45; }
.mail2-detail { min-height: 100%; }
.mail2-reader-actions { position: sticky; top: 0; z-index: 5; display: flex; gap: 6px; padding: 10px 18px; border-bottom: 1px solid var(--m2-line); background: var(--bg-primary,#fff); }
.mail2-reader-actions .is-danger { margin-left: auto; color: #b52727; }
/* Hlavička zprávy KOMPAKTNĚ (přání 21. 9. 2026): předmět 17 px, avatar
   28 px, odsazení na polovinu — hlavička brala třetinu čtecího panelu. */
.mail2-message-head { padding: 12px 18px 10px; border-bottom: 1px solid var(--m2-line); }
.mail2-message-head h2 { margin: 0 0 8px; overflow-wrap: anywhere; font: 700 17px/1.25 Raleway,sans-serif; }
.mail2-sender-row { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 8px; font-size:var(--fs-vedlejsi); }
.mail2-avatar { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--m2-blue) 17%, var(--m2-soft)); color: var(--pg-blue-text, var(--m2-blue)); font-weight: 800; font-size: var(--fs-popisek); }
/* Tlačítka nad zprávou BAREVNĚ podle role — jednobarevná obrysová
   tlačítka byla k nerozeznání od textu (přání 21. 9. 2026):
   Odpovědět = plná modrá (hlavní akce), Odpovědět všem / Přeposlat =
   modrý nádech, Připomenout / Zakázka / Přesunout = šedý podklad,
   Smazat = červený nádech, Zpět / hvězdička / ••• = bez rámečku. */
.mail2 .mail2-reader-actions button[data-action="reply"] {
  background: var(--m2-blue); border-color: var(--m2-blue); color: #fff; font-weight: 700; }
.mail2 .mail2-reader-actions button[data-action="reply"]:hover { filter: brightness(1.1); color: #fff; }
.mail2 .mail2-reader-actions button[data-action="reply-all"],
.mail2 .mail2-reader-actions button[data-action="forward"] {
  background: color-mix(in srgb, var(--m2-blue) 10%, var(--bg-primary,#fff));
  border-color: color-mix(in srgb, var(--m2-blue) 35%, var(--m2-line)); color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-reader-actions button[data-action="remind"],
.mail2 .mail2-reader-actions button[data-action="job"],
.mail2 .mail2-reader-actions button[data-action="move"] {
  background: var(--m2-soft); border-color: var(--m2-line); color: var(--text-primary); }
.mail2 .mail2-reader-actions button.is-danger {
  background: color-mix(in srgb, #b52727 8%, var(--bg-primary,#fff));
  border-color: color-mix(in srgb, #b52727 40%, var(--m2-line)); }
.mail2 .mail2-reader-actions .mail2-mobile-back,
.mail2 .mail2-reader-actions button[data-action="star"],
.mail2 .mail2-reader-actions .mail2-more { border-color: transparent; background: transparent; }
.mail2-sender-row time { color: var(--text-secondary); font-size:var(--fs-vedlejsi); }
/* „podrobnosti ▾" sedí VEDLE jména, ne pod ním — řádek odesílatele má
   výšku avataru (28 px), ne dvou řádků textu (21. 9. 2026). */
.mail2-recipient-toggle { display: inline; padding: 0 0 0 6px; border: 0; background: transparent; color: var(--text-secondary); cursor: pointer; font-size:var(--fs-popisek); }
.mail2-recipients { margin-top: 7px; color: var(--text-secondary); white-space: pre-line; }
.mail2-context { margin-top: 14px; padding: 9px 11px; border-radius: 6px; background: var(--panel-modra); border: 1px solid var(--okno-obrys); font-size:var(--fs-vedlejsi); }
/* Řádek příloh nižší (21. 9. 2026): tlačítko přílohy má výšku tokenu
   --m2-btn-h jako všechno ostatní, mezera nad řádkem na polovinu. */
.mail2-attachments { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
/* Chip přílohy: sponka | jméno (krátí se) | velikost | šipka. Všechno
   na JEDNOM řádku — `min-width:0` na jménu je nutné, jinak flex položku
   pod obsah nesrazí a dlouhý název chip roztáhne nebo zalomí
   (hlášení 22. 9. 2026). */
.mail2-attachment { display: inline-flex; align-items: center; gap: 5px;
  max-width: 100%; min-width: 0;
  height: var(--m2-btn-h); padding: 0 var(--m2-btn-pad);
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  color: var(--pg-blue-text, var(--m2-blue)); text-decoration: none;
  font-size:var(--fs-vedlejsi); line-height: 1; white-space: nowrap; }
.mail2-attachment > .mail2-ikona { flex: 0 0 auto; }
.mail2-attachment .mail2-attachment-nazev { flex: 0 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail2-attachment .mail2-attachment-velikost { flex: 0 0 auto;
  color: var(--text-secondary); font-size: var(--fs-popisek); }
.mail2-body { padding: 24px 28px 50px; line-height: 1.58; overflow-wrap: anywhere; }
/* Pozadí rámu: ve světlém motivu bílé (e-maily s tím počítají),
   v tmavém průhledné — pozadí čtecího panelu prosvítá a zpráva
   nesvítí doprostřed tmavé appky (hlášení 21. 9. 2026). */
.mail2-body iframe { width: 100%; height: min(72vh, 900px); border: 0; background: #fff; display: block; }
[data-theme="dark"] .mail2-body iframe { background: transparent; }
/* Výšku rámu dosadí JS po načtení podle obsahu (viz renderDetail);
   hodnota výš je jen do té doby. Roluje pak celý čtecí panel — jedno okno. */
/* Skripty v rámu jsou ZAKÁZANÉ; výšku podle obsahu čte RODIČ přes
   allow-same-origin po `load` — zpráva tak neroluje uvnitř rámu. */
.mail2-body-text { white-space: pre-wrap; }
/* Odkazy ze zprávy pod tělem (5.120.0, `seznamOdkazu`) — sbalené, ať
   neodsouvají přílohy a kontext. Klik jde přes bránu odkazů. Třída
   navíc (`.mail2 .mail2-body …`) kvůli obecným pravidlům odkazů. */
.mail2 .mail2-body .mail2-odkazy { margin-top: 12px; font-size: var(--fs-vedlejsi); }
.mail2 .mail2-body .mail2-odkazy > summary { cursor: pointer; color: var(--text-secondary); padding: 6px 2px; }
.mail2 .mail2-body .mail2-odkazy-seznam { display: flex; flex-direction: column; gap: 2px; padding: 4px 0 2px; }
.mail2 .mail2-body .mail2-odkaz { display: flex; gap: 8px; align-items: baseline; padding: 6px 8px;
  border-radius: 6px; color: var(--text-primary); text-decoration: none; overflow-wrap: anywhere; }
.mail2 .mail2-body .mail2-odkaz:hover { background: var(--bg-hover, #edf1f6); text-decoration: underline; }
.mail2 .mail2-body .mail2-odkaz small { color: var(--text-muted); margin-left: auto; white-space: nowrap; }
.mail2-toast { position: fixed; z-index: 1000; left: 50%; bottom: 24px;
  transform: translate(-50%,20px); padding: 10px 15px; border-radius: 7px;
  color: #fff; background: #1e2749; opacity: 0; pointer-events: none;
  transition: .2s; max-width: min(560px, 86vw); text-align: center }
/* Barvy jsou TYTÉŽ, jaké má appka u hlášek jinde (.toast-ok /
   .toast-err / .toast-warn v theme.css) — nevymýšlí se nové. Jsou
   PEVNÉ, ne tokeny: token jako --pg-red se v tmavém motivu překlápí
   na světle růžovou a text na něm by zmizel (past z CLAUDE.md
   „překlápěcí token pod pevnou barvou"). Barva písma patří ke
   každému pozadí, proto se přepisuje i ona. */
.mail2-toast[data-druh="ok"]    { background: #27500A; color: #C0DD97 }
.mail2-toast[data-druh="chyba"] { background: #791F1F; color: #F7C1C1 }
.mail2-toast[data-druh="pozor"] { background: #633806; color: #FAC775 }
.mail2-toast.is-visible { transform: translate(-50%,0); opacity: 1; }

@keyframes mail2-pulse { to { opacity: .5; } }
@keyframes mail2-shine { to { background-position: -200% 0; } }

@media (max-width: 1040px), (max-height:480px) and (max-width:1000px) {
  .mail2 { --m2-nav: 205px; --m2-list: minmax(300px, 360px); }
  .mail2-topbar { grid-template-columns: var(--m2-nav) minmax(230px,1fr) auto; }
  .mail2-reader-actions button:nth-of-type(2), .mail2-reader-actions .mail2-more { display:none; }
}
@media (max-width: 760px), (max-height:480px) and (max-width:1000px) {
  .mail2-topbar { grid-template-columns: auto minmax(0,1fr) auto; gap: 8px; }
  .mail2-compose { min-width: 42px; width: 42px; font-size: 0; }
  .mail2-compose span { font-size:20px; }
  .mail2-search kbd { display:none; }
  #mail2Layout { display:none; }
  .mail2-layout { grid-template-columns: minmax(0,1fr); }
  /* Na telefonu je rozvržení jednosloupcové, předěl nemá co dělit. */
  .mail2-splitter, .mail2-nav-splitter { display: none; }
  .mail2-nav { position: fixed; z-index: 100; inset: 0 auto 0 0; width: min(84vw,300px); transform: translateX(-102%); transition: transform .2s; box-shadow: 12px 0 30px rgba(0,0,0,.22); }
  .mail2.is-nav-open .mail2-nav { transform: none; }
  .mail2-nav-overlay { position: fixed; z-index: 90; inset: 0; background: rgba(0,0,0,.34); }
  .mail2.is-nav-open .mail2-nav-overlay { display:block; }
  .mail2-mobile-nav { display:inline-flex; border:0; background:transparent; cursor:pointer; }
  /* Myš míří přesně, prst ne — v zásuvce na telefonu
     proto řádky zůstávají dost vysoké na ťuknutí. */
  .mail2-nav-item, .mail2-account-head { min-height: 34px; padding-block: 5px; }
  /* Na telefon se tabulka se sloupci nevejde — karty zůstávají. */
  .mail2-rezim { display:none; }
  .mail2-th-row { display:none; }
  .mail2-tr { grid-template-columns: 22px minmax(0,1fr); }
  .mail2-tr .mail2-td:nth-child(n+3) { display:none; }
  .mail2-list-pane { border:0; }
  .mail2-reader { display:none; position:absolute; z-index:20; inset:var(--topbar-total,58px) 0 0; }
  .mail2.is-reading .mail2-list-pane { display:none; }
  .mail2.is-reading .mail2-reader { display:block; }
  /* Stejná síla selektoru jako u schování výš — jinak by telefon
     zůstal bez tlačítka Zpět a ze zprávy nebylo kudy ven. */
  .mail2 .mail2-reader .mail2-reader-actions .mail2-mobile-back { display:inline-flex; }
  .mail2-message-head { padding-inline:14px; }
  .mail2-body { padding-inline:14px; }
  /* Na telefonu NIC nepřetéká do šířky (hlášení 21. 9. 2026: stránka
     se dala posouvat do stran a čtení bylo „okno v okně"): lišta akcí
     se zalamuje, čtecí panel má šířku displeje a vodorovně neroluje. */
  .mail2-reader { overflow-x: hidden; width: 100%; max-width: 100vw; }
  .mail2-reader-actions { flex-wrap: wrap; row-gap: 4px; }
  .mail2-reader-actions .is-danger { margin-left: 0; }
  .mail2-body, .mail2-message-head, .mail2-context { max-width: 100%; overflow-wrap: anywhere; }
  .mail2-body iframe { max-width: 100%; }
}
/* ── Telefonní vrstva podle Apple Mail (21. 9. 2026) ──────────────────
   Přesně tenhle výraz je i v matchMedia v posta-v2.js (jeTelefonu) —
   musí zůstat SHODNÝ, jinak by JS a CSS „viděly“ telefon jinak. Vše
   tady je JEN pro telefon, desktop se nesmí posunout o pixel. */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Horní řádek filtrů (Vše/Nepřečtené/Přílohy) nahrazuje spodní
     lišta a panel Filtry — vedle sebe by na telefonu nedávaly smysl. */
  /* `.mail2 .mail2-filter` (jedno tlačítko pro celou Poštu, dál v
     souboru) nastavuje display: inline-flex se stejnou specificitou —
     tady o třídu navíc, ať přebije i mimo pořadí v souboru. */
  .mail2 .mail2-list-tools .mail2-filter { display: none; }

  .mail2-list-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
  .mail2-mobil-vybrat {
    display: inline-block; margin-left: auto; padding: 5px 11px;
    border: 1px solid var(--m2-line); border-radius: 15px; background: transparent;
    color: var(--pg-blue-text, var(--m2-blue)); font-weight: 700; font-size: var(--fs-vedlejsi); cursor: pointer;
  }

  /* Zaškrtávátko karty je v klidu SKRYTÉ, ukáže se až v režimu výběru
     (bod 4 zadání) — proto žádná plocha, ne jen `visibility:hidden`. */
  .mail2-message-check { display: none; }
  .mail2.is-vyber .mail2-message-check { display: block; }

  /* Náhled těla ve 2–3 řádcích místo jednoho zaříznutého (Apple Mail). */
  .mail2-message-preview {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    white-space: normal; overflow: hidden;
  }

  /* Šipka „›“ u času, šedě — karta se dá otevřít celá, šipka to jen říká. */
  .mail2-message-date::after { content: '›'; margin-left: 6px; color: var(--text-secondary); font-weight: 700; }

  /* Spodní plovoucí lišta ≡ filtry / Hledat / ✎ (21. 9. 2026): psaní
     i hledání patří DOLŮ pod palec, horní lišta je na telefonu bez nich.
     `position:fixed` prvek visí PŘÍMO pod `.mail2` (žádný animovaný
     rodič mezi nimi) — past „transform na rodiči rozbije
     position:fixed potomků" z CLAUDE.md. */
  .mail2-mobil-bar {
    display: flex; position: fixed; z-index: 55; left: 0; right: 0;
    bottom: calc(var(--safe-bottom, env(safe-area-inset-bottom,0px)) + 10px);
    align-items: center; justify-content: center; gap: 10px; padding-inline: 16px;
    pointer-events: none;
  }
  .mail2-mobil-bar > * { pointer-events: auto; }
  .mail2.is-reading .mail2-mobil-bar, .mail2.is-vyber .mail2-mobil-bar { display: none; }
  /* Ikonová tlačítka horní lišty musí jít trefit prstem (5.93.0):
     ikona sama je 18 px, terč ale 44 px. */
  .mail2 .mail2-topbar .mail2-ikonove { min-width: 44px; min-height: 44px; }
  .mail2-mobil-kulate {
    width: 46px; height: 46px; padding: 0; border: 1px solid var(--m2-line); border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    background: var(--bg-primary,#fff); color: var(--text-primary); font-size: 20px;
    box-shadow: 0 4px 14px rgba(0,0,0,.18); cursor: pointer;
  }
  /* Psaní zprávy je hlavní akce — značka musí být pořádně vidět. */
  .mail2-mobil-kulate.is-velka { width: 58px; height: 58px; font-size: 30px;
    color: #fff; background: var(--m2-blue); border-color: var(--m2-blue); }
  .mail2-mobil-kulate.is-pilulka {
    width: auto; padding-inline: 14px; border-radius: 23px; color: var(--pg-blue-text, var(--m2-blue)); border-color: var(--m2-blue);
  }
  .mail2-mobil-filtry-text { font-size: var(--fs-popisek); font-weight: 700; white-space: nowrap; }
  .mail2-mobil-hledat {
    flex: 1 1 auto; max-width: 220px; min-height: 46px; padding-inline: 16px; border-radius: 23px;
    border: 1px solid var(--m2-line); background: var(--bg-primary,#fff); color: var(--text-secondary);
    box-shadow: 0 4px 14px rgba(0,0,0,.18); font-size: var(--fs-vedlejsi); cursor: pointer;
  }
  /* Horní lišta na telefonu: BEZ Nové zprávy a BEZ hledání (obojí je
     dole). Hledání se odkryje, až když se ťukne na „Hledat" dole
     (`.mail2.is-hledani`), a schová se, jakmile je pole prázdné. */
  /* `.mail2 .mail2-compose` ze společného bloku tlačítek (na konci
     souboru) nastavuje display:inline-flex se STEJNOU specificitou a je
     dál v pořadí — proto tady o třídu navíc, ať skrytí vyhraje. */
  .mail2 .mail2-topbar .mail2-compose { display: none; }
  .mail2 .mail2-topbar .mail2-search { display: none; }
  .mail2.is-hledani .mail2-topbar .mail2-search { display: flex; }
  .mail2.is-hledani .mail2-topbar .mail2-top-actions { display: none; }
  /* Šipka zpět u nadpisu seznamu musí být terč pro prst, ne pro myš. */
  /* Terč pro prst má mít aspoň 44 px (doporučení Applu) — 40 px bylo
     pořád málo (hlášení 21. 9. 2026). Platí pro obě cesty zpět:
     do Schránek (‹ u nadpisu) i ze zprávy na seznam (← Zpět). */
  /* `.mail2 button { font: inherit }` (blok tlačítek Pošty) má vyšší
     specificitu než holá třída a glyf „‹" držel na velikosti textu —
     proto `.mail2` navíc (hlášení 21. 9. 2026: šipka pořád malá,
     ačkoli šipky účtů už velké byly). */
  /* `.mail2-ikonove` (jedna sada ikon, 5.93.0) má stejnou specificitu
     a stojí v souboru NÍŽ — bez třídy navíc by mu přebilo terč na
     24 px. Proto `.mail2-mobile-nav.mail2-ikonove`. */
  .mail2 .mail2-mobile-nav,
  .mail2 .mail2-mobile-nav.mail2-ikonove { min-width: 44px; min-height: 44px; font-size: 34px;
    line-height: 1; font-weight: 300; color: var(--pg-blue-text, var(--m2-blue));
    align-items: center; justify-content: center; margin-left: -8px; }
  /* Lišta nad zprávou: „← Zpět" i ostatní akce STEJNĚ VYSOKÉ (přání
     21. 9. 2026 — Zpět čnělo). Na telefonu jsou všechna o něco vyšší
     než na PC (34 px), ať se do nich dá trefit prstem. */
  /* Společný blok tlačítek Pošty (`.mail2 .mail2-reader-actions button`
     na konci souboru) má stejnou specificitu a vyhrál by pořadím —
     proto `.mail2-reader` navíc. */
  .mail2 .mail2-reader .mail2-reader-actions button,
  .mail2 .mail2-reader .mail2-reader-actions .mail2-mobile-back {
    height: 44px; min-height: 44px; }
  /* Ikonová tlačítka jsou čtvercová — na telefonu 44×44, aby se do
     nich dalo trefit prstem (5.93.0, ikony místo textů). */
  .mail2 .mail2-reader .mail2-reader-actions .mail2-ikonove {
    width: 44px; min-width: 44px; }
  .mail2 .mail2-reader-actions .mail2-mobile-back {
    min-width: 64px; font-size: var(--fs-vedlejsi); font-weight: 700;
    padding-inline: 10px; }
  /* Šipky rozbalení účtu na obrazovce Schránky byly sotva viditelné
     (hlášení se screenshotem 21. 9. 2026) — plocha 40 px, výrazný glyf. */
  /* `.mail2 .mail2-account-arrow { font-size: var(--fs-telo) }` dál
     v souboru má stejnou specificitu a vyhrálo by pořadím — proto
     `.mail2-nav` navíc. */
  .mail2 .mail2-nav .mail2-account-arrow { min-width: 40px; min-height: 40px; font-size: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    justify-self: center; align-self: center;
    color: var(--text-secondary); }
  /* Šipka a barevná tečka účtu se na telefonu slévaly („›●") — mezera
     mezi sloupci řádku (přání 22. 9. 2026). Šipka sedí na STŘEDU svého
     pole vodorovně i svisle (justify-self/align-self výš). */
  /* Sloupec pro šipku musí být tak široký jako ona (40 px) — jinak
     z 22px sloupce přetéká a dotkne se tečky účtu (měřeno: mezera 1 px). */
  .mail2 .mail2-nav .mail2-account-head {
    grid-template-columns: 40px minmax(0,1fr) auto auto; gap: 8px; }
  .mail2 .mail2-nav .mail2-account-select { gap: 10px; }
  .mail2-schranky-sipka { font-size: 22px; min-width: 24px; text-align: right; }

  /* V režimu výběru lišta hromadných akcí nahrazuje ≡/Hledat/✎ dole —
     obě naráz by se na malém displeji překrývaly. */
  .mail2-bulk {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 56; margin: 0;
    justify-content: center; flex-wrap: wrap; gap: 8px;
    padding: 8px 10px calc(8px + var(--safe-bottom, env(safe-area-inset-bottom,0px)));
    background: var(--bg-primary,#fff); border-top: 1px solid var(--m2-line);
  }

  /* Spodní panel filtrů (bottom sheet), ne okno uprostřed jako ostatní
     dialogy Pošty — přilepený ke spodní hraně, Apple Mail vzor. */
  .mail2-filtry-sheet { margin: auto 0 0; width: 100%; max-width: 100%; max-height: 80vh; border-radius: 14px 14px 0 0; }
  .mail2-filtry-sheet form { padding-bottom: var(--safe-bottom, env(safe-area-inset-bottom,0px)); }
  .mail2-filtry-obsah { overflow: auto; padding: 2px 0 8px; }
  .mail2-filtry-sekce { padding: 2px 14px; }
  .mail2-filtry-sekce + .mail2-filtry-sekce { border-top: 1px solid var(--m2-line); }
  .mail2-filtry-sekce h3 { margin: 6px 0 2px; font-size: var(--fs-drobne); color: var(--text-secondary); text-transform: uppercase; letter-spacing: .03em; }
  /* Řádek filtru: zaškrtávátko a popisek NA JEDNOM ŘÁDKU. Obecné
     pravidlo dialogů Pošty (`.mail2-dialog label { display:grid }`, níž
     v souboru) má vyšší specificitu a dělalo z řádku dva — popisek pod
     zaškrtávátkem a to roztažené přes celou šířku, takže byl panel
     třikrát vyšší, než měl být (hlášení z iPhonu 21. 9. 2026). Proto
     `.mail2-dialog` i tady. */
  .mail2-dialog .mail2-filtry-radek {
    display: flex; align-items: center; gap: 10px; padding: 6px 2px; margin: 0;
    font-size: var(--fs-vedlejsi); font-weight: 500; color: var(--text-primary); cursor: pointer;
  }
  .mail2-dialog .mail2-filtry-radek input {
    flex: 0 0 auto; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0;
    accent-color: var(--m2-blue);
  }
  .mail2-filtry-sheet header { padding: 9px 14px; }
  /* Řazení v panelu Filtry (5.120.0): 16 px, jinak iOS při ťuknutí
     zazoomuje (past z CLAUDE.md). */
  .mail2-dialog .mail2-filtry-sekce .mail2-razeni-mobil {
    width: 100%; height: 38px; margin: 2px 0 8px; padding: 0 8px; font-size: 16px;
    border: 1px solid var(--m2-line); border-radius: 8px;
    background: var(--bg-primary, #fff); color: var(--text-primary);
  }
  .mail2-filtry-sheet header h2 { font-size: 16px; }

  /* ── Obrazovka „Schránky" (bod 3 zadání, Apple Mail vzor) ──────────
     `.mail2-nav` je mimo telefon vysouvací panel (blok 760px výš,
     `position:fixed; width:min(84vw,300px)`) — tady se přepisuje na
     CELOU šířku, ať vypadá jako vlastní obrazovka, ne úzká zásuvka.
     Ukazování/skrývání zůstává na stávajícím `.is-nav-open` přepínači
     (transform na `.mail2-nav` samotném, ne na animovaném rodiči —
     past „transform na rodiči rozbije position:fixed potomků" z
     CLAUDE.md se netýká, protože fixed prvky visí přímo pod `.mail2`). */
  .mail2-nav { width: 100%; max-width: none; padding: 0; overflow-y: auto; }
  .mail2-nav-splitter { display: none; }

  .mail2-schranky-hlavicka {
    display: flex; align-items: center; justify-content: space-between;
    padding: calc(var(--safe-top, env(safe-area-inset-top,0px)) + 14px) 16px 6px;
  }
  .mail2-schranky-hlavicka h1 { margin: 0; font: 800 28px Raleway, sans-serif; }
  .mail2-schranky-upravit {
    border: 0; background: transparent; color: var(--pg-blue-text, var(--m2-blue));
    font-weight: 700; font-size: var(--fs-vedlejsi); cursor: pointer; padding: 6px 4px;
  }
  .mail2-schranky-karta {
    display: block; margin: 8px 12px 16px; border-radius: 10px; overflow: hidden;
    background: var(--bg-primary,#fff); border: 1px solid var(--m2-line);
  }
  .mail2-schranky-radek {
    display: flex; align-items: center; gap: 8px; width: 100%;
    padding: 11px 14px; border: 0; border-bottom: 1px solid var(--m2-line);
    background: transparent; color: var(--text-primary); font-size: var(--fs-vedlejsi);
    text-align: left; cursor: pointer;
  }
  .mail2-schranky-radek:last-child { border-bottom: 0; }
  .mail2-schranky-radek span:first-child { flex: 1 1 auto; font-weight: 600; }
  .mail2-schranky-sipka { color: var(--text-secondary); }

  /* Nahrazeno kartou „Schránky" výš — dřívější rychlé odkazy a titulek
     panelu by zabíraly plochu dvakrát (K vyřízení/Koncepty/K odeslání/
     Připomínky zůstávají dosažitelné jinudy — spodní lišta a Filtry). */
  .mail2-quick, .mail2-nav-title { display: none; }
  #mail2Accounts { padding: 0 12px 14px; }
  .mail2-account { margin-bottom: 10px; border-radius: 10px; overflow: hidden;
    border: 1px solid var(--m2-line); background: var(--bg-primary,#fff); }
  .mail2-account-head { padding-inline: 12px; }

  /* Pořadí (▴▾) a správa (⋯) složky se mimo režim Upravit ukazují jen
     na hover/focus (pravidlo výš v souboru) — na dotykovém displeji bez
     hoveru by tak byly neviditelné napořád. „Upravit" je zviditelní. */
  .mail2-nav.je-uprava .mail2-folder-move,
  .mail2-nav.je-uprava .mail2-folder-menu { opacity: 1; background: var(--m2-soft); }
  /* Šipky pořadí musí jít trefit prstem (21. 9. 2026 byly 12px drobky),
     tři tečky na telefonu nejsou — nabídku otevře DLOUHÝ STISK názvu. */
  .mail2 .mail2-nav .mail2-folder-move {
    min-width: 36px; min-height: 36px; font-size: 20px; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 8px; }
  .mail2-folder-row button.mail2-folder-move:nth-of-type(2) { right: 44px; }
  .mail2-folder-row button.mail2-folder-move:nth-of-type(3) { right: 4px; }
  .mail2 .mail2-nav .mail2-folder-menu { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .mail2 *, .mail2 *::before, .mail2 *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

.mail2-dialog {
  /* Okno Pošty = recept okna (6.3.0): bílé tělo, obrys 1 px, zaoblení 9,
     stín okna; šířka podle obsahu (--okno-sirka, výchozí 440 jako
     ostatní okna appky; dřív 540). */
  width: min(var(--okno-sirka, 440px), calc(100vw - 28px)); max-height: min(720px, calc(100vh - 40px));
  /* Roluje JEN obsah uvnitř (seznam, tělo náhledu), nikdy dialog sám —
     jinak jsou dva posuvníky a záhlaví se ✕ odjede nahoru z dohledu
     (náhled dlouhého textu, 21. 9. 2026). */
  overflow: hidden;
  padding: 0; border: 1px solid var(--okno-obrys); border-radius: var(--okno-r);
  color: var(--text-primary); background: var(--okno-bg);
  box-shadow: var(--okno-stin);
  /* Doprostřed okna. Modální <dialog> se centruje výchozím
     `margin: auto`, jenže globální reset v theme.css (`*, *::before,
     *::after { margin: 0 }`) ho přebije a okno spadne do levého
     horního rohu (hlášení 21. 9. 2026). */
  /* Ukotvený NAHOŘE, ne doprostřed (22. 9. 2026): dialog s hledáním
     roste, jak přibývají nalezené zakázky, a při centrování se okno
     roztahovalo na obě strany — obsah pod kurzorem uskakoval. Odshora
     roste jen dolů. Vodorovně zůstává na střed. */
  margin: 10vh auto auto;
}
/* Doložená výjimka z 440 (recenze úkolu 3): Uložit do zakázky, Přesunout
   a Zakázka nesou DLOUHÁ jména příloh, složek a zakázek — v 440 px se víc
   zkracovala. Drží dosavadních 540 px. */
#mail2SaveDialog, #mail2MoveDialog, #mail2JobDialog { --okno-sirka: 540px; }
.mail2-dialog::backdrop { background: rgba(20,28,48,.48); }
.mail2-dialog form { display: flex; flex-direction: column; max-height: inherit; margin: 0; }
.mail2-dialog header, .mail2-dialog footer { display:flex; align-items:center; gap:var(--btn-mezera); padding:6px 10px; border-bottom:1px solid var(--okno-obrys); }
/* Záhlaví je ÚCHYT (kurzor ✥, tažení app2.js). 6.3.0: TÝŽ pruh jako
   záhlaví každého okna appky — podklad --okno-zahlavi, spodní linka,
   oranžový akcent vlevo, tmavý nadpis 15 px (dřív tmavomodrý pruh se
   světlým textem). Podklad i text jsou překlápěcí PÁR (--okno-zahlavi ×
   --nadpis), takže v Grafitu zůstává kontrast. */
.mail2-dialog header {
  min-height: var(--m2-zahlavi);
  padding: 7px 8px 7px 10px; border-left: 3px solid var(--okno-akcent);
  border-radius: calc(var(--okno-r) - 1px) calc(var(--okno-r) - 1px) 0 0;
  background: var(--okno-zahlavi); color: var(--nadpis); cursor: move; user-select: none;
}
.mail2-dialog header h2 { flex:1; margin:0; font:700 15px/1.3 var(--font-heading);
  color: inherit; }
.mail2-dialog header button { width:var(--m2-ikona-btn); height:var(--m2-ikona-btn); border:0; border-radius:var(--m2-btn-r); background:transparent; color:var(--text-muted); cursor:pointer; font-size:15px; line-height:1; }
.mail2-dialog header button:hover { background: var(--bg-hover); color: var(--nadpis); }
.mail2-dialog > form > p { margin:0; padding:8px 14px 2px; color:var(--text-secondary); font-size:var(--fs-popisek); }
/* Patička = spodní lišta okna (podklad záhlaví, 6/10, mezera 6). */
.mail2-dialog footer { justify-content:flex-end; padding:var(--paticka-pad); border-top:1px solid var(--okno-obrys); border-bottom:0; background: var(--okno-zahlavi); }
/* Popisek = recept (12 px / 500, --popisek), řádky po 9 px. */
.mail2-dialog label { display:grid; gap:3px; padding:4.5px var(--okno-pad-x); color:var(--popisek); font:500 var(--popisek-fs)/1.3 var(--font-body); }
/* Víc e-mailů a telefonů v „Přidat do adresáře" (5.101.0) — vypadá jako label výš. */
.mail2-dialog .mail2-addr-hodnoty { display:grid; gap:3px; padding:5px 14px; }
/* Dialog adresáře je kompaktní (5.101.1): užší než ostatní dialogy Pošty
   a pole ve dvou sloupcích, ať se nevleče přes celou výšku obrazovky. */
/* (6.3.0: šířka = výchozí 440 okna; dřív vlastních 460) */
.mail2-dialog .mail2-addr-mrizka { display:grid; grid-template-columns:1fr 1fr; overflow-y:auto; padding:4px 0; }
.mail2-dialog .mail2-addr-mrizka > label,
.mail2-dialog .mail2-addr-mrizka > .mail2-addr-hodnoty { padding:3px 10px; min-width:0; }
.mail2-dialog .mail2-addr-mrizka > .cele { grid-column: 1 / -1; }
.mail2-dialog .mail2-addr-mrizka .pg-hodnoty-radek { grid-template-columns: minmax(0,1fr) 96px var(--m2-pole); }
.mail2-dialog .mail2-addr-hodnoty > span { color:var(--text-secondary); font-size:var(--fs-popisek); font-weight:700; }
/* Nabídka existujících kontaktů pod jménem (5.111.0, pgNabidkaKontaktu).
   Po výběru kontaktu se pole NOVÉHO kontaktu schovají — ukládá se jen
   adresa ke zvolenému kontaktu. Selektory s id: společný blok tlačítek
   na konci souboru by třídu bez něj přebil pořadím (CLAUDE.md). */
.mail2-dialog .mail2-addr-mrizka > .mail2-addr-nabidka { margin:0 10px; }
#mail2AddressForm.mail2-addr-ke-kontaktu .mail2-addr-mrizka { display:none; }
#mail2AddressDialog #mail2AddressInfo b { color:var(--text-primary); }
#mail2AddressDialog button.mail2-addr-zpet { display:inline; min-height:0; padding:0; margin:0 0 0 4px;
  border:0; background:none; color:var(--pg-blue-text, var(--pg-blue)); font:inherit; cursor:pointer; text-decoration:underline; }
/* Pole okna = recept pole (6.3.0): 25 px, obrys --pole-obrys, klidová
   modrošedá výplň, při psaní bílá s modrým obrysem a podsvícením
   (fokus je v theme.css vyňatý z globálního prstence). */
.mail2-dialog input { width:100%; min-height:var(--m2-pole); padding:var(--pole-pad); border:1px solid var(--pole-obrys); border-radius:var(--pole-r); color:var(--text-primary); background:var(--pole-bg); font:400 var(--pole-fs)/1.3 var(--font-body); }
.mail2-dialog :is(input:not([type=checkbox], [type=radio], [type=color], [type=file], [type=range], [type=hidden]), select, textarea)::placeholder { color: var(--placeholder); opacity: 1; }
.mail2-dialog :is(input:not([type=checkbox], [type=radio], [type=color], [type=file], [type=range], [type=hidden]), select, textarea):focus { outline:none; background:var(--pole-bg-aktivni);
  border-color:var(--pole-obrys-aktivni); box-shadow:var(--pole-stin-aktivni); }
/* Uložit do zakázky (5.115.1): volba „i samotný e-mail" na JEDNOM řádku
   a průběh po položkách. Třída navíc kvůli specificitě — obecné
   `.mail2-dialog label {display:grid}` a `.mail2-dialog input {width:100%}`
   by zaškrtávátko roztáhly přes celou šířku. */
.mail2-dialog .mail2-ulozit-volba { display:flex; align-items:center; gap:8px; font-weight:500; color:var(--text-primary); cursor:pointer; }
.mail2-dialog .mail2-ulozit-volba input { flex:0 0 auto; width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:var(--m2-blue); }
.mail2-dialog .mail2-ulozit-volba:has(input:disabled) { cursor:default; color:var(--text-secondary); }
.mail2-dialog .mail2-ulozit-prubeh { padding:6px 14px 4px; }
.mail2-dialog .mail2-ulozit-prubeh progress { display:block; width:100%; height:8px; accent-color:var(--m2-blue); }
.mail2-dialog .mail2-ulozit-prubeh p { margin:5px 0 0; color:var(--text-primary); font-size:var(--fs-popisek); font-variant-numeric:tabular-nums; }
.mail2-dialog .mail2-ulozit-prubeh ul { max-height:120px; overflow:auto; margin:4px 0 0; padding-left:18px; color:var(--text-secondary); font-size:var(--fs-popisek); overflow-wrap:anywhere; }
.mail2-dialog textarea { width:100%; min-height:var(--textarea-h); padding:6px 8px; border:1px solid var(--pole-obrys); border-radius:var(--pole-r); color:var(--text-primary); background:var(--pole-bg); font:400 var(--pole-fs)/1.3 var(--font-body); resize:vertical; }
/* Seznam v dialogu má PEVNOU výšku (22. 9. 2026): dialog je uprostřed
   okna, takže každý přibývající řádek ho dřív roztahoval na obě strany
   a okno „skákalo" nahoru i dolů. S pevnou výškou se mění jen obsah
   seznamu, rám stojí. */
.mail2-dialog-list { height:240px; overflow:auto; padding:var(--m2-mezera); }
.mail2-dialog-option {
  width:100%; display:grid; grid-template-columns:12px minmax(0,1fr) auto; align-items:center; gap:9px;
  min-height:var(--m2-polozka);
  padding:3px 8px; border:0; border-radius:6px; color:var(--text-primary); background:transparent; text-align:left; cursor:pointer;
}
.mail2-dialog-option:hover, .mail2-dialog-option:focus-visible { outline:0; background:var(--bg-hover,#edf1f6); }
.mail2-dialog-option small { color:var(--text-secondary); }
/* Skrytá složka v nabídce přesunu (5.120.0) — šedě, pod viditelnými */
.mail2 .mail2-dialog-option.je-skryta { color:var(--text-muted); }
.mail2 .mail2-dialog-option.je-skryta small { font-style:italic; }
/* Volba se dvěma řádky (číslo + upřesnění) — text ve sloupci, ať se
   stav vpravo nerozjede. */
.mail2-dialog-option > span:nth-child(2) { display:flex; flex-direction:column; gap:1px; min-width:0 }
.mail2-dialog-upresneni { font-size:var(--fs-drobne); color:var(--text-muted);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.mail2-preset-row { display:flex; flex-wrap:wrap; gap:7px; padding:14px 16px 4px; }
.mail2-preset-row button { padding:7px 9px; border:1px solid var(--m2-line); border-radius:6px; background:var(--m2-soft); color:var(--text-primary); cursor:pointer; }
.mail2-preset-row button:hover { border-color:var(--m2-blue); color:var(--pg-blue-text, var(--m2-blue)); }

.mail2-invite { margin:18px 26px 0; padding:16px; border:1px solid var(--m2-line); border-left:4px solid var(--m2-blue); border-radius:7px; background:var(--m2-soft); }
.mail2-invite h3 { margin:0 0 8px; font:700 17px Raleway,sans-serif; }
.mail2-invite-grid { display:grid; grid-template-columns:auto 1fr; gap:5px 12px; color:var(--text-secondary); font-size:var(--fs-vedlejsi); }
.mail2-invite-grid strong { color:var(--text-primary); }
.mail2-invite-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:13px; }
.mail2-invite-actions button, .mail2-invite-actions a { min-height:32px; display:inline-flex; align-items:center; padding:5px 10px; border:1px solid var(--m2-line); border-radius:5px; color:var(--text-primary); background:var(--bg-primary,#fff); text-decoration:none; cursor:pointer; }
.mail2-invite-actions button:hover, .mail2-invite-actions a:hover { border-color:var(--m2-blue); color:var(--pg-blue-text, var(--m2-blue)); }
.mail2-invite-state { margin-top:10px; color:var(--pg-blue-text, var(--m2-blue)); font-size:var(--fs-vedlejsi); font-weight:700; }
/* Zrušená / nahrazená schůzka (5.120.0): jen informace, bez odpovědí.
   Pozadí štítku průhledné — `--pg-red` se mezi motivy překlápí, takže
   smí být jen barvou textu a rámečku (past „překlápěcí token pod pevnou
   barvou“). Třída navíc kvůli společnému bloku tlačítek na konci. */
.mail2 .mail2-invite.je-zrusena { border-left-color:var(--text-muted,#888); }
.mail2 .mail2-invite.je-zrusena h3 { text-decoration:line-through; color:var(--text-secondary); }
.mail2 .mail2-invite .mail2-invite-zruseno { display:inline-block; margin:0 0 9px; padding:2px 9px;
  border:1px solid currentColor; border-radius:11px; background:transparent;
  color:var(--pg-red,#c0392b); font-size:var(--fs-vedlejsi); font-weight:700; }

.mail2-context-action { margin-left:10px; padding:4px 8px; border:1px solid var(--m2-line); border-radius:5px; color:var(--pg-blue-text, var(--m2-blue)); background:var(--bg-primary,#fff); cursor:pointer; font-size:var(--fs-vedlejsi); }
.mail2-context-action:hover { border-color:var(--m2-blue); }


.mail2-reader-actions { position:relative }
.mail2-more-menu {
  position:absolute; right:8px; top:calc(100% - 4px); z-index:30;
  min-width:210px; padding:6px; border:1px solid var(--border-subtle);
  border-radius:10px; background:var(--bg-card); box-shadow:0 12px 32px rgba(15,23,42,.18);
}
.mail2-more-menu button {
  display:block; width:100%; padding:9px 11px; border:0; border-radius:7px;
  background:transparent; color:var(--text-primary); text-align:left; cursor:pointer;
}
.mail2-more-menu button:hover { background:var(--bg-hover) }
/* Nabídka „•••" leží UVNITŘ lišty nad zprávou, takže na její položky
   dopadal společný blok tlačítek Pošty (`.mail2 .mail2-reader-actions
   button`) — ten má vyšší specificitu a udělal z nich vycentrované
   ikonové terče roztažené na celou šířku (hlášení 22. 9. 2026).
   Tady se to vrací na normální položky nabídky; šířka je podle
   nejdelšího textu, ne podle lišty. */
.mail2 .mail2-reader-actions .mail2-more-menu {
  width: max-content; max-width: min(340px, 92vw);
}
.mail2 .mail2-reader-actions .mail2-more-menu button {
  display: block; width: 100%;
  height: auto; min-height: 0;
  padding: 5px 10px; border: 0; border-radius: 6px;
  background: transparent; color: var(--text-primary);
  text-align: left; justify-content: flex-start;
  font-size: var(--fs-vedlejsi); line-height: 1.35; white-space: nowrap;
}
.mail2 .mail2-reader-actions .mail2-more-menu button:hover {
  background: var(--bg-hover, #e2e8f1);
}
/* Položky jen pro telefon (5.101.5) — na PC jsou tytéž akce v liště. */
.mail2 .mail2-reader-actions .mail2-more-menu button.mail2-jen-telefon { display: none; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Telefon (přání 24. 9. 2026): lišta nad zprávou jen Zpět, Odpovědět,
     Přeposlat, Připomenout, Smazat, ••• — zbytek v nabídce •••.
     `>` = jen tlačítka LIŠTY, ne položky nabídky uvnitř ní; položky
     nabídky mají specificitu NAD blokem `.mail2 .mail2-reader-actions
     .mail2-more-menu button` výš (proto jsou až za ním). */
  .mail2 .mail2-reader .mail2-reader-actions > button[data-action="reply-all"],
  .mail2 .mail2-reader .mail2-reader-actions > button[data-action="star"],
  .mail2 .mail2-reader .mail2-reader-actions > button[data-action="job"],
  .mail2 .mail2-reader .mail2-reader-actions > button[data-action="move"] { display: none; }
  .mail2 .mail2-reader .mail2-reader-actions .mail2-more-menu button.mail2-jen-telefon { display: block; }
}
.mail2-attachment-item { display:inline-flex; align-items:center; gap:6px }
.mail2-attachment-item button { border:0; background:transparent; color:var(--accent); cursor:pointer; font:inherit }
.mail2-print { display:none }
/* TISK ZPRÁVY (5.114.2). Hostitel stojí v TOKU dokumentu (static) —
   dřív měl `position:fixed; inset:0` a Chromium (prohlížeč i Electron
   `printToPDF`) fixní prvek nestránkuje: dlouhá zpráva vyjela na JEDNU
   stránku a zbytek se usekl. Tělo už NENÍ v rámu (rám je na papíře
   nedělitelný, řádky se na hranici stránek půlily) — skládá ho
   `teloProTisk` přes whitelist bez `style` a tříd, vzhled je jen tady.
   Selektory s `.mail2` navíc: společná pravidla Pošty mají stejnou
   specificitu a vyhrávají pořadím (CLAUDE.md). Výšku a přetečení
   předků (html, body, .app, .app-obsah) ruší pro tisk theme.css;
   `.mail2` sama je obrazovková mřížka na výšku okna, proto i tady. */
@media print {
  html, body { height:auto !important; overflow:visible !important }
  .app-obsah .mail2, .mail2.mail2 {
    display:block !important; height:auto !important; min-height:0 !important;
    max-height:none !important; overflow:visible !important;
  }
  .mail2 > * { display:none !important }
  .mail2 .mail2-print {
    display:block !important; position:static; inset:auto; z-index:auto;
    width:auto; height:auto; overflow:visible; padding:0;
    background:white; color:black; font:11pt/1.5 system-ui,sans-serif;
  }
  .mail2 .mail2-print h1 { font-size:17pt; margin:0 0 6mm; break-after:avoid }
  .mail2 .mail2-print dl {
    display:grid; grid-template-columns:max-content 1fr; gap:1.5mm 5mm;
    margin:0 0 6mm; padding-bottom:4mm; border-bottom:1px solid #999;
    break-inside:avoid;
  }
  .mail2 .mail2-print dt { font-weight:600 }
  .mail2 .mail2-print dd { margin:0; overflow-wrap:anywhere }
  .mail2 .mail2-print pre { white-space:pre-wrap; font:inherit; margin:0 }
  .mail2 .mail2-print .mail2-print-telo {
    overflow-wrap:anywhere; word-break:break-word; color:black;
  }
  .mail2 .mail2-print .mail2-print-telo * {
    color:inherit !important; background:transparent !important;
    max-width:100%;
  }
  .mail2 .mail2-print .mail2-print-telo img {
    height:auto; break-inside:avoid; vertical-align:middle;
  }
  .mail2 .mail2-print .mail2-print-telo table { border-collapse:collapse; width:auto }
  .mail2 .mail2-print .mail2-print-telo td,
  .mail2 .mail2-print .mail2-print-telo th { padding:1px 4px; vertical-align:top; text-align:left }
  .mail2 .mail2-print .mail2-print-telo tr { break-inside:avoid }
  .mail2 .mail2-print .mail2-print-telo blockquote {
    margin:2mm 0 2mm 2mm; padding-left:3mm; border-left:2px solid #999;
  }
  .mail2 .mail2-print .mail2-print-telo ul,
  .mail2 .mail2-print .mail2-print-telo ol { margin:0 0 2.5mm; padding-left:7mm }
  .mail2 .mail2-print .mail2-print-telo ul { list-style:disc }
  .mail2 .mail2-print .mail2-print-telo ol { list-style:decimal }
  .mail2 .mail2-print .mail2-print-telo li { display:list-item }
  .mail2 .mail2-print .mail2-print-telo a { text-decoration:underline }
  .mail2 .mail2-print .mail2-print-telo .mail2-print-adresa { font-size:9pt; color:#444 !important }
  .mail2 .mail2-print .mail2-print-telo p { margin:0 0 2.5mm; orphans:2; widows:2 }
}

.mail2-count.is-warning { color:#b42318; font-weight:800 }
/* Řádek Konceptů / K odeslání / Připomínek: text ve sloupci, koš
   VEDLE něj a svisle na střed. Dřív byl koš posledním prvkem sloupce
   s `margin-left:auto`, takže visel dole vpravo a byl sotva vidět
   (hlášení 22. 9. 2026). */
.mail2-special-row { display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:center; gap:2px var(--m2-mezera); cursor:pointer }
.mail2-special-row > *:not(.mail2-special-smazat) { grid-column:1 }
.mail2-special-row > span, .mail2-special-row > small { color:var(--text-muted) }
.mail2-special-row.has-error { border-left:3px solid #b42318 }
.mail2-special-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px }
.mail2-special-actions button { padding:5px 9px; border:1px solid var(--m2-line); border-radius:6px; background:var(--bg-primary,#fff); color:var(--text-primary); cursor:pointer }
.mail2-special-actions button.is-danger { color:#b42318 }
.mail2-dialog select { width:100%; min-height:var(--m2-pole); padding:var(--pole-pad); border:1px solid var(--pole-obrys); border-radius:var(--pole-r); background:var(--pole-bg); color:var(--text-primary); font:400 var(--pole-fs)/1.3 var(--font-body) }

/* Sbalení seznamu schránek (tlačítko − v záhlaví Schránky). */
.mail2.is-accounts-collapsed .mail2-accounts { display:none }

/* ── Náhled přílohy ──────────────────────────────────────────────
   Obrázek i PDF se ukážou rovnou v appce; stahovat je kvůli podívání
   se nikdo nemusí. */
.mail2-nahled-dialog { width: min(920px, 94vw); }
.mail2-nahled-telo { flex: 1; min-height: 0; overflow: auto; text-align: center;
  background: var(--m2-soft); border-radius: 8px; }
.mail2-nahled-telo img { max-width: 100%; height: auto; }
.mail2-nahled-telo iframe { width: 100%; height: 70vh; border: 0; background: #fff; }
.mail2-nahled-telo pre { margin: 0; padding: 12px; text-align: left;
  white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--fs-vedlejsi); }
.mail2-special-smazat { grid-column:2; grid-row:1 / -1; align-self:center;
  width:32px; height:32px; display:inline-flex; align-items:center;
  justify-content:center; font-size:18px; line-height:1;
  border: 0; background: transparent;
  cursor: pointer; color: var(--text-secondary); border-radius: var(--m2-btn-r); }
.mail2-special-smazat:hover { background: var(--m2-soft); color: #b42318; }

/* Nadpis skupiny v seznamu („Dnes", „Včera"…). Platí jen při řazení
   podle data — jinak by skupiny lhaly, proto je skládá JS. */
.mail2-skupina { position: sticky; top: 0; z-index: 2;
  padding: 3px 12px; background: var(--m2-soft);
  border-bottom: 1px solid var(--m2-line);
  font-size: var(--fs-drobne); font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--text-secondary); }
.mail2-badge-slozka { padding: 0 5px; border: 1px solid var(--m2-line);
  border-radius: 4px; }

/* Hlavička, podle které se dá řadit. Šipka ukazuje směr. */
.mail2-th.je-radici { cursor: pointer; }
.mail2-th.je-radici:hover { color: var(--pg-blue-text, var(--m2-blue)); }
.mail2-th.je-aktivni { color: var(--pg-blue-text, var(--m2-blue)); }
.mail2-th-sipka { margin-left: 3px; font-size: 9px; }

/* Kolize v kalendáři u pozvánky — varování, ne ozdoba. */
.mail2-kolize { margin-top: 8px; padding: 7px 9px; border-radius: 6px;
  background: #633806; color: #FAC775; font-size: var(--fs-vedlejsi); }
.mail2-kolize ul { margin: 4px 0 0; padding-left: 18px; }

/* Galerie: šipky leží NAD obrázkem u okrajů, ať se nepřetahuje ruka
   přes celé okno. Skryté (`hidden`) jsou, když je obrázek jediný. */
.mail2-nahled-ram { position: relative; display: flex; flex-direction: column;
  flex: 1; min-height: 0; }
.mail2-nahled-sip { position: absolute; top: 50%; left: 6px; z-index: 2;
  transform: translateY(-50%); width: 34px; height: 46px;
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: color-mix(in srgb, var(--bg-primary, #fff) 88%, transparent);
  color: var(--text-primary); font-size: 22px; line-height: 1; cursor: pointer; }
.mail2-nahled-sip.is-vpravo { left: auto; right: 6px; }
.mail2-nahled-sip:hover { background: var(--bg-primary, #fff); }
.mail2-nahled-sip[hidden] { display: none !important; }
.mail2-nahled-pocet { margin-right: auto; color: var(--text-secondary);
  font-size: var(--fs-vedlejsi); }

/* ── Co se dá označit myší ───────────────────────────────────────
   Ovládání appky se označovat NEMÁ: tažení přes seznam (třeba když
   člověk mine řádek) jinak modře vysvítí popisky filtrů, hlavičky
   sloupců i datumy, a vypadá to jako porucha. Tak se chovají i Outlook
   a eM Client — označit jde OBSAH, ne rámec kolem něj.

   Vědomě se označovat DÁ:
     • tělo zprávy (je v <iframe>, tohle pravidlo se ho netýká),
     • adresa odesílatele a příjemců a předmět v hlavičce zprávy —
       odtud se běžně kopíruje,
     • pole k psaní (rychlá odpověď, hledání). */
.mail2 { user-select: none; -webkit-user-select: none; }
.mail2-message-head, .mail2-body, .mail2-body-text,
.mail2-recipients, .mail2-nahled-telo,
.mail2 input, .mail2 textarea, .mail2 select {
  user-select: text; -webkit-user-select: text;
}

/* Barevná tečka schránky u zprávy — v pohledech přes víc schránek
   říká, odkud zpráva je. Táž paleta jako v dnešní Poště (app2.js). */
.mail2-ucet-tecka { display: inline-block; width: 7px; height: 7px;
  flex: none; margin-right: 6px; border-radius: 50%;
  vertical-align: middle; }
.mail2-td-ucet { display: inline-flex; align-items: center; min-width: 0;
  overflow: hidden; }

/* ── Kontext z appky pod hlavičkou zprávy ────────────────────────
   Dvousloupcová mřížka: vlevo název údaje, vpravo hodnota. Tlačítka
   berou rozměr z tokenů --m2-btn-* jako všude jinde. */
.mail2-kx-nadpis { margin-bottom: 6px; font-size: var(--fs-drobne);
  font-weight: 800; letter-spacing: .07em; color: var(--text-secondary); }
.mail2-kx-radek { display: grid; grid-template-columns: 82px minmax(0, 1fr);
  gap: 4px 10px; padding: 1px 0; }
.mail2-kx-klic { color: var(--text-secondary); }
.mail2-kx-hodnota { min-width: 0; overflow-wrap: anywhere; }
.mail2-kx-akce { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mail2-context-action { margin-left: 0 !important; }

/* Hlavní schránka a hustota seznamu. Hustota mění DVA tokeny, které
   řádky seznamu i tabulky používají — ne každé pravidlo zvlášť. */
/* Výška řádku a písmo seznamu jsou PEVNÉ — volba hustoty zmizela
   (přání uživatele 19. 9. 2026). */
/* Písmo seznamu 12 px a váha 500: Mulish 400 ve 13 px působilo v Electronu
   „vybledle" (tenké tahy při šedém vyhlazování Windows), 21. 9. 2026. */
/* 22 px (14. 10. 2026, přání majitele „víc řádků do okna“) — dřív 24. */
.mail2 { --m2-radek: 22px; --m2-pismo: 12px; }
/* PEVNÁ výška, ne min/max: s rozsahem 22–26 px si řádek v Electronu
   vzal horní mez (emoji/tlačítka v buňkách) a byl vyšší než v návrhu
   (hlášení 21. 9. 2026). Buňky obsah ořežou, nic ho nenafoukne. */
.mail2-tr { height: var(--m2-radek); }
.mail2-td { line-height: var(--m2-radek); font-size: var(--m2-pismo); font-weight: 500; color: var(--text-primary); }
.mail2-tr.is-unread .mail2-td { font-weight: 700; }
/* ── Označená (hvězdička) a vybraná zpráva v tabulce ──
   Přání 22. 9. 2026: čtverečky pryč (vybírá se Ctrl/Shift klikem jako
   v Outlooku) a zpráva s příznakem SVÍTÍ CELÝM ŘÁDKEM žlutě. Barva je
   token, který se překlápí s motivem — ve světlém světle žlutá, v tmavém
   tlumená olivová, aby text zůstal čitelný (past „pevná barva pod
   překlápěcím tokenem" z CLAUDE.md). */
.mail2 { --m2-oznacena: #fff4cc; --m2-oznacena-pruh: #e0a800; }
[data-theme="dark"] .mail2 { --m2-oznacena: #3a3520; --m2-oznacena-pruh: #c79a12; }
.mail2-tr.is-oznacena { background: var(--m2-oznacena);
  box-shadow: inset 3px 0 0 var(--m2-oznacena-pruh); }
.mail2-tr.is-vybrana { background: var(--bg-hover, #dbe6f5);
  box-shadow: inset 3px 0 0 var(--m2-blue); }
.mail2-tr.is-oznacena.is-vybrana { background: var(--bg-hover, #dbe6f5); }
.mail2-message.is-vybrana { background: var(--bg-hover, #dbe6f5);
  box-shadow: inset 3px 0 0 var(--m2-blue); }
.mail2-message.is-oznacena { background: var(--m2-oznacena);
  box-shadow: inset 3px 0 0 var(--m2-oznacena-pruh); }
.mail2-ucet-hlavni { cursor: pointer; color: var(--text-secondary);
  font-size: var(--fs-popisek); line-height: 1; padding: 2px 3px; }
/* V řádku jen jako STAV: bez hlavní schránky se nekreslí vůbec (ani
   místo), přepíná se z nabídky pravého tlačítka. */
/* Od 21. 9. 2026 se v řádku NEKRESLÍ vůbec — stav i přepnutí jsou
   v nabídce pravého tlačítka („Zrušit hlavní schránku"). */
.mail2-ucet-hlavni { display: none !important; }
.mail2-ucet-hlavni.je-hlavni { color: #c8921a; }
.mail2-search-scope { border: 0; background: transparent; color: var(--text-secondary);
  font: inherit; font-size: var(--fs-popisek); cursor: pointer; max-width: 118px; }

/* ── Přetažení zprávy do složky ──────────────────────────────────
   Cíl musí být vidět DŘÍV, než člověk pustí tlačítko — jinak netrefí. */
.mail2-message[draggable="true"], .mail2-tr[draggable="true"] { cursor: default; }
.mail2-message.je-tazena, .mail2-tr.je-tazena { opacity: .45; }
.mail2-nav-item.je-cil {
  outline: 2px solid var(--m2-blue);
  outline-offset: -2px;
  background: color-mix(in srgb, var(--m2-blue) 16%, transparent) !important;
}
/* Během tahu ať je poznat, že složky jsou terče. */
.mail2.is-tah-zpravy .mail2-folder { background: var(--m2-soft); }

/* ── Okno JEDNÉ zprávy (?okno=1&zprava=<id>) ─────────────────────
   Dvojklik v seznamu otevře zprávu ve vlastním okně. To okno je JEN
   o té zprávě: schránky, seznam i předěl pryč, čtecí panel přes celou
   šířku. Platí i v rozvržení „pod sebou", proto se přepisuje celá
   mřížka. */
.mail2.is-okno-zpravy .mail2-nav,
.mail2.is-okno-zpravy .mail2-list-pane,
.mail2.is-okno-zpravy .mail2-splitter,
.mail2.is-okno-zpravy .mail2-topbar { display: none !important; }
.mail2.is-okno-zpravy .mail2-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
}
.mail2.is-okno-zpravy .mail2-reader { display: block !important; }
/* Zpět do seznamu z okna jedné zprávy nevede — seznam tam není. */
.mail2.is-okno-zpravy .mail2-mobile-back { display: none !important; }

/* Okno PSANÍ (?okno=1&psani=…): stránka je jen rámem pro modál psaní,
   schránka ani seznam v něm nemají co dělat. */
.mail2.is-okno-psani .mail2-nav,
.mail2.is-okno-psani .mail2-list-pane,
.mail2.is-okno-psani .mail2-splitter,
.mail2.is-okno-psani .mail2-topbar,
.mail2.is-okno-psani .mail2-reader { display: none !important; }
.mail2.is-okno-psani .mail2-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
}

/* ── Rychlá odpověď pod zprávou ──────────────────────────────────
   Rozměry tlačítek si NEURČUJE sama — bere je z tokenů --m2-btn-*
   jako zbytek Pošty. */
.mail2-rychla { margin: 16px 26px 24px; border: 1px solid var(--m2-line);
  border-radius: 8px; background: var(--bg-primary, #fff); }
.mail2-rychla[hidden] { display: none; }
.mail2-rychla textarea { width: 100%; min-height: 38px; max-height: 160px;
  padding: 10px 12px; border: 0; border-radius: 8px 8px 0 0;
  background: transparent; color: inherit; font: inherit; resize: none; }
.mail2-rychla textarea:focus { outline: 0; }
.mail2-rychla-lista { display: flex; align-items: center; gap: 7px;
  flex-wrap: nowrap;   /* tlačítka se nesmí zalomit pod sebe */
  padding: 6px 10px; border-top: 1px solid var(--m2-line); }
/* Adresa se KRÁTÍ jako první — je to jen informace, tlačítka musí
   zůstat celá. `min-width:0` je nutné, jinak flex položku pod obsah
   nesrazí a text tlačítek vyteče ven (hlášení 22. 9. 2026, telefon). */
.mail2-rychla-komu { margin-right: auto; min-width: 0; flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap;
  color: var(--text-secondary); font-size: var(--fs-popisek); }
.mail2-rychla-lista button { min-height: var(--m2-btn-h);
  height: var(--m2-btn-h); padding: 0 var(--m2-btn-pad);
  flex: 0 0 auto; white-space: nowrap;   /* „Okno“ ani „Odeslat“ se nelámou */
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: var(--bg-primary, #fff); color: var(--text-primary);
  font-size: var(--fs-vedlejsi); cursor: pointer; }
.mail2-rychla-lista button:hover { background: var(--m2-soft); }
.mail2-rychla-lista button.is-primary { border-color: var(--m2-blue);
  background: var(--m2-blue); color: #fff; }
.mail2-rychla-lista button.is-primary:hover { filter: brightness(1.08); }
.mail2-rychla-lista button[disabled] { opacity: .6; cursor: default; }

/* ── Samostatné okno Pošty (?okno=1) ─────────────────────────────
   Obecná pravidla pro `body.pg-okno` (schování menu/lišty appky) jsou
   od 21. 9. 2026 v theme.css — jsou obecná, používá je i Adresář
   otevřený z Pošty ve vlastním okně. Tady zůstávají jen specifika
   okna PSANÍ, která patří jen Poště. */

/* Okno PSANÍ (?okno=1&psani=…, 21. 9. 2026): modál `#psani-modal`
   (`_psani.html`, SOUROZENEC `.mail2` ve stránce, ne jeho potomek)
   přes CELÉ okno BEZ zatmavení pozadí — „jedno okno", ne okno v okně
   (přání uživatele, screenshot appky s prázdným velkým oknem kolem
   malého modálu). Rozměry modálu jsou v INLINE stylu (_psani.html),
   proto `!important` (zrádný vzor z CLAUDE.md). */
body.pg-okno-psani .mail2 { display: none !important; }
body.pg-okno-psani #psani-modal {
  background: var(--bg-card) !important; padding: 0 !important;
  animation: none !important;
}
body.pg-okno-psani #psani-modal .modal-box {
  width: 100% !important; max-width: none !important;
  height: 100% !important; max-height: none !important;
  border-radius: 0 !important; box-shadow: none !important;
  /* Okno psaní JE celé okno — tažení za záhlaví (app2.js) by ho jen
     odřízlo o kraj. Zámek v CSS přebije i inline transform, ať se to
     nestane odnikud. */
  transform: none !important;
}
body.pg-okno-psani #psani-modal .pg-okno-uchyt { cursor: default; }

/* Náhradní hláška, když prohlížeč window.close() odmítne (okno, které
   skript neotevřel — `oknoZavri` v posta-v2.js). Text se vkládá
   VÝHRADNĚ přes textContent. */
.mail2-okno-hotovo { position: fixed; inset: 0; z-index: 9500; display: flex;
  align-items: center; justify-content: center; padding: 24px; text-align: center;
  background: var(--bg-primary); color: var(--text-secondary);
  font-size: var(--fs-telo); }

/* ── Tabulkový seznam zpráv ──────────────────────────────────────
   Jeden řádek = jedna zpráva na JEDNOM řádku, jako v poštovních
   klientech. Sloupce určuje `--m2-cols` (skládá je JS z nastavení
   uživatele), takže hlavička i řádky drží společnou mřížku a při
   tahání se přepisuje jediná proměnná, ne celý seznam. */
.mail2-tabulka { display: block; min-width: 100%; }
.mail2-th-row, .mail2-tr {
  display: grid; grid-template-columns: var(--m2-cols);
  align-items: center; gap: 8px; padding: 0 8px;
}
.mail2-th-row {
  position: sticky; top: 0; z-index: 3;
  padding-block: 3px; border-bottom: 1px solid var(--m2-line);
  background: var(--m2-soft); font-size: var(--fs-popisek);
  font-weight: 700; color: var(--text-secondary);
  text-transform: uppercase; letter-spacing: .04em;
}
.mail2-th { position: relative; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; line-height: 1.6; }
.mail2-th.is-right, .mail2-td.is-right { text-align: right; }
.mail2-th.is-center, .mail2-td.is-center { text-align: center; }
/* Tahátko přesahuje přes okraj buňky, ať se trefí i nepřesná myš,
   a leží NAD sousedním sloupcem (z-index), jinak by ho překryl. */
.mail2-th-resize { position: absolute; top: 0; right: -5px; z-index: 4;
  width: 11px; height: 100%; cursor: col-resize; touch-action: none; }
/* Svislá čárka: bez ní není poznat, že se sloupec dá chytit. */
.mail2-th-resize::before { content: ''; position: absolute; top: 3px;
  bottom: 3px; left: 5px; width: 1px; background: var(--m2-line); }
.mail2-th-resize:hover::before,
.mail2-tabulka.is-resizing .mail2-th-resize::before {
  top: 0; bottom: 0; width: 2px; background: var(--m2-blue); }
.mail2-tabulka.is-resizing { cursor: col-resize; user-select: none; }

/* Pořadí sloupců tažením (audit 21. 9. 2026, bod B). `grab`/`grabbing`
   na celé hlavičce — tahátko šířky (`.mail2-th-resize` výš) má vlastní
   `col-resize` a leží NAD ní, takže tam kurzor přebije. Cíl tažení se
   naznačí svislou čárou na tu stranu, kam sloupec spadne. */
.mail2-th[draggable="true"] { cursor: grab; }
.mail2-th.je-tazena { opacity: .35; }
.mail2-th.je-cil-pred { box-shadow: inset 2px 0 0 0 var(--m2-blue); }
.mail2-th.je-cil-za { box-shadow: inset -2px 0 0 0 var(--m2-blue); }

.mail2-tr { cursor: pointer; overflow: hidden;
  border-bottom: 1px solid color-mix(in srgb, var(--m2-line) 55%, transparent); }
/* hover řádku = blok „Hover řádku zprávy (6.3.3)“ na konci souboru */
.mail2-tr.is-active { background: color-mix(in srgb, var(--m2-blue) 13%, transparent); }
.mail2-tr.is-unread { font-weight: 700; }
/* Buňky se ROZTAHUJÍ na výšku řádku a obsah si centrují samy. S
   `align-items:center` na řádku měla PRÁZDNÁ buňka nulovou výšku,
   takže seděla jinde než sousední s textem — řádek pak vypadal jako
   dva. Emoji (★, 📎) navíc v běžné velikosti řádek natahovala. */
.mail2-th-row, .mail2-tr { align-items: stretch; }
/* Buňka je BLOK, ne flex: `text-overflow:ellipsis` na flexu
   nefunguje a dlouhý předmět by se uřízl bez tří teček. Text
   svisle vystředí pevná výška řádku (`line-height`). */
.mail2-td { display: block; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap;
  line-height: 22px; font-size: var(--fs-vedlejsi); }
.mail2-td.is-center { font-size: var(--fs-popisek); }
/* Buňka hlavičky NEOŘEZÁVÁ — ořezává vnitřní text. Kdyby ořezávala
   ona, schovala by i tahátko na svém okraji a sloupce by nešlo
   táhnout (a vypadaly by jako napevno). */
.mail2-th { position: relative; overflow: visible; display: flex;
  align-items: center; line-height: 20px; }
.mail2-th-text { flex: 1; min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.mail2-th.is-right .mail2-th-text { text-align: right; }
.mail2-th.is-center .mail2-th-text { text-align: center; }

/* Volba sloupců. Nabídka je `position:fixed` v <body>, aby ji
   neořezal rolující seznam (stejně jako nabídka složek). */
.mail2-sloupce-menu { position: fixed; z-index: 200; min-width: 222px; padding: 6px;
  border: 1px solid var(--m2-line); border-radius: 8px;
  background: var(--bg-primary, #fff); box-shadow: 0 12px 30px rgba(0,0,0,.18);
  font-size: var(--fs-vedlejsi); }
.mail2-sloupce-menu label { display: flex; align-items: center; gap: 7px;
  padding: 3px 7px; border-radius: 5px; cursor: pointer; }
.mail2-sloupce-menu label:hover { background: var(--m2-soft); }
.mail2-sloupce-reset { width: 100%; margin-top: 5px; padding: 5px 7px;
  border: 0; border-top: 1px solid var(--m2-line); border-radius: 0 0 5px 5px;
  background: transparent; color: var(--pg-blue-text, var(--m2-blue)); cursor: pointer;
  font: inherit; text-align: left; }
.mail2-sloupce-reset:hover { background: var(--m2-soft); }

/* ── Správa složek a účtů (etapa C) ─────────────────────────────── */
.mail2-folder-row { display:flex; align-items:center; gap:2px; position:relative }
.mail2-folder-row .mail2-folder { flex:1; min-width:0 }
.mail2-folder-move, .mail2-folder-menu, .mail2-mute {
  border:0; background:transparent; cursor:pointer; padding:2px 4px;
  color:var(--text-secondary); font-size:var(--fs-popisek); line-height:1; border-radius:4px;
  opacity:0; transition:opacity .12s }
/* Mimo tok (21. 9. 2026): jako SOUČÁST flexu zabíraly místo, i když byly
   průhledné (opacity:0) — název složky se pak zkracoval, i když bylo
   vedle volné místo. `nth-of-type` počítá podle POŘADÍ tlačítek v řádku
   (button, ▴, ▾, ⋯), ne podle třídy — ▴ a ▾ sdílejí `.mail2-folder-move`. */
.mail2-folder-row .mail2-folder-move,
.mail2-folder-row .mail2-folder-menu {
  position:absolute; top:50%; transform:translateY(-50%); z-index:1 }
.mail2-folder-row button.mail2-folder-move:nth-of-type(2) { right:46px }
.mail2-folder-row button.mail2-folder-move:nth-of-type(3) { right:24px }
.mail2-folder-row .mail2-folder-menu { right:2px }
.mail2-folder-row:hover .mail2-folder-move,
.mail2-folder-row:hover .mail2-folder-menu,
.mail2-folder-row:focus-within .mail2-folder-move,
.mail2-folder-row:focus-within .mail2-folder-menu,
.mail2-folder-move:focus-visible, .mail2-folder-menu:focus-visible,
.mail2-mute:focus-visible { opacity:1; background:var(--m2-soft) }
/* Zvonek je v řádku jen jako STAV ztlumení; jinak nezabírá místo. */
.mail2-account-head .mail2-mute { display:none !important }
.mail2-mute.is-muted { opacity:1 }
.mail2-folder-move:hover, .mail2-folder-menu:hover, .mail2-mute:hover {
  background:var(--m2-soft); color:var(--text-primary) }
/* Kontextové nabídky Pošty (složka, účet, zpráva, příloha, adresa).
   Podklad je SVĚTLE ŠEDÝ, ne bílý: nad bílým seznamem zpráv nebyla
   nabídka pořádně k rozeznání (hlášení 22. 9. 2026). Barva jde přes
   `--bg-secondary`, takže se v tmavém motivu překlopí sama; okraj je
   výraznější a stín hlubší, ať je nabídka jasně „nad" stránkou.
   Řádky jsou kompaktnější — nabídka zprávy má 11 položek a přes celou
   výšku okna působila nafouknutě. */
.mail2-folder-actions { position:fixed; z-index:200; min-width:216px; padding:4px;
  border:1px solid var(--m2-line); border-radius:8px;
  background:var(--bg-secondary,#f2f5f9); box-shadow:0 12px 32px rgba(15,23,42,.26);
  display:flex; flex-direction:column }
.mail2-folder-actions button, .mail2-folder-actions a { border:0; background:transparent; cursor:pointer;
  text-align:left; padding:5px 10px; border-radius:6px; color:var(--text-primary); text-decoration:none;
  font:inherit; font-size:var(--fs-vedlejsi); line-height:1.35 }
.mail2-folder-actions button:hover, .mail2-folder-actions a:hover { background:var(--bg-hover,#e2e8f1) }
.mail2-folder-actions .is-danger { color:#b42318 }
/* Nabídka zprávy/přílohy (pravé tlačítko): oddělovač mezi skupinami
   položek a inline podnabídka „Přesunout do ›" pod svou položkou. */
.mail2-menu-oddel { height:1px; margin:3px 6px; background:var(--m2-line) }
.mail2-menu-rozbal { display:flex; align-items:center; justify-content:space-between; width:100% }
.mail2-menu-sub { display:flex; flex-direction:column; margin:2px 6px 4px 10px;
  padding-left:8px; border-left:2px solid var(--m2-line) }
.mail2-safe-add { display:flex; gap:8px; padding:12px 14px;
  border-bottom:1px solid var(--m2-line) }
.mail2-safe-add input { flex:1; min-height:36px; padding:6px 9px;
  border:1px solid var(--m2-line); border-radius:7px;
  background:var(--bg-primary,#fff); color:var(--text-primary) }
.mail2-attachment-doc { white-space:nowrap }
/* „Uložit vše z příloh do zakázky" (audit 21. 9. 2026, bod 1) — VLASTNÍ
   řádek pod jednotlivými přílohami, vždy vykreslený (na rozdíl od
   tlačítek u jedné přílohy výš). */
.mail2-attachment-vse { display:block; width:100%; margin-top:6px; padding:7px 10px;
  border:1px dashed var(--m2-line); border-radius:7px; background:transparent;
  color:var(--pg-blue-text, var(--m2-blue)); cursor:pointer; font:inherit; text-align:center }
.mail2-attachment-vse:hover { background:var(--m2-soft); border-style:solid }
/* Nabídka adresy (Od/Komu/Kopie, audit bod 2) — hlavička s adresou nad
   akcemi, sdílí stavebnici `.mail2-folder-actions`. */
.mail2-address-menu-hlavicka { padding:6px 10px 8px; margin-bottom:2px;
  border-bottom:1px solid var(--m2-line); font-size:var(--fs-popisek);
  color:var(--text-secondary); word-break:break-all }
.mail2-adresa { cursor:pointer; text-decoration:underline dotted;
  text-underline-offset:2px }
.mail2-adresa:hover, .mail2-adresa:focus-visible { color:var(--pg-blue-text, var(--m2-blue)) }
.mail2-invite-terminy { display:flex; flex-wrap:wrap; align-items:center; gap:7px;
  margin-top:10px; padding-top:10px; border-top:1px solid var(--m2-line);
  font-size:var(--fs-vedlejsi); color:var(--text-secondary) }
.mail2-invite-terminy button { border:1px solid var(--m2-line); border-radius:6px;
  background:var(--bg-primary,#fff); color:var(--text-primary);
  padding:4px 9px; cursor:pointer }
.mail2-invite-terminy button:hover { border-color:var(--m2-blue); color:var(--pg-blue-text, var(--m2-blue)) }

/* ── Vzdálené obrázky a správa složek (etapa D) ──────────────────── */
/* ── Úzký informační proužek nad zprávou (22. 9. 2026) ──
   Vzor Outlook: jeden nízký řádek přes celou šířku, světle modrý,
   a VŠECHNY volby až v nabídce, která z něj vyjede po kliknutí.
   Dřív to byl oranžový blok se třemi tlačítky vedle sebe, který
   ukrojil kus obrazovky hned nad textem zprávy. */
/* Šipka nabídky na chipu přílohy (vzor Outlook). Drobná, ale dost
   velká na trefu myší; na telefonu ji zvětšuje mobilní vrstva. */
.mail2-attachment-sipka {
  flex: 0 0 auto; width: 18px; height: 18px; margin-left: 2px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 4px; background: transparent;
  color: var(--text-secondary); font: inherit; font-size: 12px;
  line-height: 1; cursor: pointer;
}
.mail2-attachment-sipka:hover { background: var(--bg-hover, #e2e8f1);
  color: var(--text-primary) }

.mail2-infopruh {
  display: flex; align-items: center; gap: 7px; width: 100%;
  min-height: 24px; margin: 0 0 8px; padding: 2px 10px;
  border: 0; border-bottom: 1px solid var(--okno-obrys);
  background: var(--panel-modra); color: var(--text-secondary);
  font: inherit; font-size: var(--fs-popisek); text-align: left;
  cursor: pointer;
}
.mail2-infopruh.je-staticky { cursor: default }
.mail2-infopruh:not(.je-staticky):hover { background: var(--radek-hover);
  box-shadow: inset 3px 0 0 var(--radek-hover-pruh); color: var(--text-primary) }
.mail2-infopruh-ikona { flex: 0 0 auto; color: var(--pg-blue-text, var(--m2-blue)); font-size: 13px;
  line-height: 1 }
.mail2-infopruh-text { flex: 1 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap }

/* Jeden nízký řádek — pruh je jen upozornění, ne panel (přání
   uživatele 21. 9. 2026). Tlačítka v něm berou výšku z tokenu. */
/* Úzké okénko, ne pruh přes celou šířku (přání 22. 9. 2026): hláška se
   drží u levého okraje a je široká jen podle textu. `align-self` musí
   být, jinak ji sloupcový flex rodiče natáhne na plnou šířku i při
   `inline-flex`; `max-width:100%` ji udrží v okně na telefonu. */
.mail2-vzdalene { display:flex; align-self:flex-start; flex-wrap:wrap;
  align-items:center; gap:6px; width:fit-content; max-width:100%;
  margin:0 0 8px; padding:2px 9px; border:1px solid #e0c98a;
  border-radius:8px; background:#fdf7e6; color:#5c4813;
  font-size:var(--fs-popisek); line-height:1.35 }
[data-theme="dark"] .mail2-vzdalene { border-color:#6b5a26; background:#2b2716;
  color:#e8d9a8 }
.mail2-vzdalene span { flex:0 1 auto; min-width:min(100%, 22ch) }
.mail2-vzdalene-vzdy { border:0; background:transparent; cursor:pointer;
  text-decoration:underline; color:inherit; padding:4px 2px; font-size:var(--fs-vedlejsi) }
.mail2-nova-slozka { border:0; background:transparent; cursor:pointer;
  text-align:left; padding:2px 10px; margin-top:1px; border-radius:6px;
  color:var(--text-secondary); font-size:var(--fs-vedlejsi) }
.mail2-nova-slozka:hover { background:var(--m2-soft); color:var(--pg-blue-text, var(--m2-blue)) }

/* ── Posuvný předěl mezi seznamem a tělem zprávy ─────────────────── */
.mail2-splitter { cursor: col-resize; background: var(--m2-line);
  border: 0; padding: 0; position: relative; touch-action: none }
.mail2-splitter::after { content:''; position:absolute; inset:0 -4px;
  cursor: col-resize }
.mail2-splitter:hover, .mail2-splitter:focus-visible,
.mail2.is-resizing .mail2-splitter { background: var(--m2-blue) }
.mail2.is-resizing { cursor: col-resize; user-select: none }

/* ── Rozvržení „pod sebou" ────────────────────────────────────────
   Seznam nahoře, zpráva pod ním. Mění se JEN mřížka — pořadí prvků
   v HTML zůstává, takže předěl dělí tytéž dva panely, jen svisle
   (obě osy umí `zaridPredel` v posta-v2.js). Na telefonu se
   nepoužije: tam je rozvržení jednosloupcové a předěl skrytý. */
@media (min-width: 761px) {
  .mail2.is-pod-sebou .mail2-layout {
    grid-template-columns: var(--m2-nav) minmax(0, 1fr);
    grid-template-rows: var(--m2-vyska, 42vh) 5px minmax(0, 1fr);
  }
  .mail2.is-pod-sebou .mail2-nav { grid-row: 1 / -1; }
  .mail2.is-pod-sebou .mail2-list-pane {
    border-right: 0; border-bottom: 1px solid var(--m2-line);
  }
  .mail2.is-pod-sebou .mail2-splitter { cursor: row-resize; }
  .mail2.is-pod-sebou .mail2-splitter::after { inset: -4px 0; cursor: row-resize; }
  .mail2.is-pod-sebou.is-resizing { cursor: row-resize; }
}

/* Šipka rozbalení účtu: v 12px sloupci a zděděné velikosti byla sotva
   vidět, přitom je to jediný signál, jestli je schránka rozbalená. */
.mail2 .mail2-account-arrow { line-height: 1; padding: 0;
  color: var(--text-secondary);
  display: inline-flex; align-items: center; justify-content: center; }
/* Otáčí se JEN kreslená šipka, ne celé tlačítko — tlačítko drží místo
   a šipka se točí kolem svého středu, který leží uprostřed pole. */
.mail2 .mail2-sipka-svg { display: block; transition: transform .12s ease;
  transform-origin: 50% 50%; }
.mail2 .mail2-account-arrow.je-otevrena .mail2-sipka-svg { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) {
  .mail2 .mail2-sipka-svg { transition: none; }
}



/* ── Liquid glass (5.94.0, volitelné v Nastavení pošty) ──────────
   Zapíná se třídou `.je-sklo` na kořeni Pošty a platí JEN pro plovoucí
   plochy: lištu nad zprávou (drží se navrchu při rolování), spodní
   lištu na telefonu a vyskakovací nabídky. Uvnitř panelů se nepoužívá
   — nad bílým pozadím nemá sklo co lámat a zbyl by z něj našedlý
   obdélník.

   Recept je TÝŽ jako u postranního menu appky (theme.css): průsvitný
   přechod + rozostření podkladu + 1px světlý okraj + vnitřní odlesk
   nahoře. Bez podpory `backdrop-filter` zůstane jen průsvitný přechod,
   takže se nic nerozbije. Barvy jsou pro každý motiv vlastní: text
   musí držet kontrast na světlém i tmavém podkladu. */
.mail2.je-sklo .mail2-reader-actions,
.mail2.je-sklo .mail2-more-menu,
.mail2.je-sklo .mail2-folder-actions {
  background: linear-gradient(160deg, rgba(255,255,255,.78), rgba(255,255,255,.55));
  -webkit-backdrop-filter: blur(14px) saturate(165%);
  backdrop-filter: blur(14px) saturate(165%);
  border-color: rgba(255,255,255,.65);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 6px 20px rgba(15,23,42,.14);
}
.mail2.je-sklo .mail2-reader-actions button {
  background: linear-gradient(160deg, rgba(255,255,255,.7), rgba(255,255,255,.35));
  border-color: rgba(255,255,255,.7);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.mail2.je-sklo .mail2-reader-actions button[data-action="reply"] {
  background: linear-gradient(160deg, var(--m2-blue), color-mix(in srgb, var(--m2-blue) 78%, #fff));
  border-color: var(--m2-blue);
}
[data-theme="dark"] .mail2.je-sklo .mail2-reader-actions,
[data-theme="dark"] .mail2.je-sklo .mail2-more-menu,
[data-theme="dark"] .mail2.je-sklo .mail2-folder-actions {
  background: linear-gradient(160deg, rgba(38,48,72,.78), rgba(24,32,52,.6));
  border-color: rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 6px 20px rgba(0,0,0,.4);
}
[data-theme="dark"] .mail2.je-sklo .mail2-reader-actions button {
  background: linear-gradient(160deg, rgba(255,255,255,.14), rgba(255,255,255,.05));
  border-color: rgba(255,255,255,.2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16);
}
/* Spodní lišta na telefonu — kulatá tlačítka už sklo tvarem unesou. */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2.je-sklo .mail2-mobil-kulate {
    background: linear-gradient(160deg, rgba(255,255,255,.72), rgba(255,255,255,.42));
    -webkit-backdrop-filter: blur(14px) saturate(165%);
    backdrop-filter: blur(14px) saturate(165%);
    border-color: rgba(255,255,255,.6);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 6px 18px rgba(15,23,42,.2);
  }
  .mail2.je-sklo .mail2-mobil-kulate.is-velka {
    background: linear-gradient(160deg, var(--m2-blue), color-mix(in srgb, var(--m2-blue) 72%, #fff));
    border-color: var(--m2-blue); color: #fff;
  }
  [data-theme="dark"] .mail2.je-sklo .mail2-mobil-kulate {
    background: linear-gradient(160deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
    border-color: rgba(255,255,255,.22);
  }
}
/* Kdo si přeje klid (systémové nastavení „omezit pohyb/průhlednost"),
   dostane plné plochy — sklo je ozdoba, ne nosná věc. */
@media (prefers-reduced-transparency: reduce) {
  .mail2.je-sklo .mail2-reader-actions,
  .mail2.je-sklo .mail2-more-menu,
  .mail2.je-sklo .mail2-folder-actions,
  .mail2.je-sklo .mail2-mobil-kulate {
    -webkit-backdrop-filter: none; backdrop-filter: none;
    background: var(--bg-primary, #fff);
  }
}

/* ── Jedna sada ikon (5.93.0) ────────────────────────────────────
   Všechny značky Pošty jsou SVG v barvě textu (`currentColor`), takže
   se překlápějí s motivem a drží jednu tloušťku tahu. Dřív to byla
   směs emoji (barevná, nedědí barvu) a typografických znaků (každý
   jinak velký). Ikonové tlačítko je ČTVERCOVÉ a nemá text — popisek
   nese `aria-label`/`title`. */
.mail2 .mail2-ikona { display: block; flex: 0 0 auto; }
/* Buňky tabulky s ikonou (hvězdička, sponka) centrují FLEXEM (5.101.3):
   ikona je `display:block` (pravidlo výš), takže ji `line-height` buňky
   nevycentroval a seděla u horního okraje řádku (hlášení 24. 9. 2026).
   Tři třídy, aby pravidlo přebilo `.mail2 .mail2-ikona` i pořadím. */
.mail2 .mail2-tr .mail2-td.is-center { display: flex; align-items: center; justify-content: center; }
.mail2 .mail2-tr .mail2-td.je-klikaci { cursor: pointer; }
.mail2 .mail2-tr .mail2-hvezda-prazdna { opacity: .22; }
.mail2 .mail2-tr:hover .mail2-hvezda-prazdna,
.mail2 .mail2-tr .mail2-td.je-klikaci:hover .mail2-hvezda-prazdna { opacity: .75; }
.mail2 .mail2-ikonove {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 0; padding: 0;
  /* JEN `min-width` — pevná šířka by přebila větší terče na telefonu
     (lišta dole, tlačítka nad zprávou mají 44 px). Čtvercový tvar drží
     shodná mez v obou směrech. */
  min-width: var(--m2-btn-h);
}
/* Zapnutý stav (hvězdička u zprávy) — plná ikona a barva značky. */
.mail2 .mail2-ikonove.je-zapnuto { color: #e0a800; }
.mail2-swipe-ikona { display: inline-flex; align-items: center; justify-content: center; }

/* ── Jedno tlačítko pro celou Poštu ──────────────────────────────
   Tvar, výšku i písmo řídí tokeny --m2-btn-* nahoře v .mail2, ne
   jednotlivá pravidla. Blok je ZÁMĚRNĚ na konci souboru: jednotlivé
   styly výš si dál řeší barvy a okraje, tohle jim srovná rozměry.
   Selektory mají `.mail2` navíc kvůli `.mail2 button { font: inherit }`
   (0,1,1) — bez něj by písmo zůstalo zděděné. */
.mail2 .mail2-filter,
.mail2 .mail2-bulk button,
.mail2 .mail2-reader-actions button,
.mail2 .mail2-special-actions button,
.mail2 .mail2-preset-row button,
.mail2 .mail2-invite-actions button,
.mail2 .mail2-invite-actions a,
.mail2 .mail2-invite-terminy button,
.mail2 .mail2-context-action,
.mail2 .mail2-dialog footer button,
.mail2 .mail2-dialog footer a,
.mail2 .mail2-vzdalene button,
.mail2 .mail2-compose {
  min-height: var(--m2-btn-h);
  height: var(--m2-btn-h);
  padding: 0 var(--m2-btn-pad);
  border-radius: var(--m2-btn-r);
  font-size: var(--m2-btn-fs);
  line-height: 1;
  white-space: nowrap;   /* „Odpovědět všem" se v užším panelu lámalo na dva řádky */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
/* „← Zpět" v liště nad zprávou patří JEN na telefon, kde je čtečka přes
   celou obrazovku. Na počítači leží zpráva vedle seznamu, takže tlačítko
   nemělo kam vést a jen zabíralo místo (hlášení 22. 9. 2026). Schovávalo
   ho `.mail2-mobile-back { display:none }` nahoře, jenže společný blok
   tlačítek výš má VYŠŠÍ SPECIFICITU (`.mail2 .mail2-reader-actions
   button`) a přebil ho na `inline-flex` — přesně past z CLAUDE.md. Proto
   se schovává stejně silným selektorem a telefonní vrstva ho stejně
   silným selektorem vrací. */
.mail2 .mail2-reader-actions .mail2-mobile-back { display: none; }

/* Ikonová tlačítka jsou čtvercová — táž výška, táž šířka, týž tvar.
   6.3.0: čtverec --m2-ikona-btn (22 px, doložená výjimka z 19 px —
   ikona/glyf by se do 19 px nevešel), glyf 16 px. */
.mail2 .mail2-icon-btn {
  min-width: var(--m2-ikona-btn);
  width: var(--m2-ikona-btn);
  height: var(--m2-ikona-btn);
  border-radius: var(--m2-btn-r);
  font-size: 16px;
}
/* Ikonová tlačítka v lištách (hvězdička, připomenout, smazat… —
   `ikony.doTlacitka`) = týž čtverec 22 px s ikonou 16 px. JEN na
   počítači (doplněk telefonní vrstvy): společný blok výš má sílu
   (0,2,1) a telefon tu drží vlastní větší terče — selektor s třídou
   navíc by je jinak přebil (CLAUDE.md, kolize specificity). */
@media (min-width:481px) and (min-height:481px), (min-width:1001px) {
  .mail2 .mail2-reader-actions .mail2-ikonove,
  .mail2 .mail2-bulk .mail2-ikonove,
  .mail2 .mail2-ikonove.mail2-ikonove {
    min-width: var(--m2-ikona-btn); height: var(--m2-ikona-btn); min-height: var(--m2-ikona-btn);
  }
  .mail2 .mail2-ikonove > .mail2-ikona { width: 16px; height: 16px; }
}
/* Napsat zůstává hlavní tlačítko (barva, šířka), rozměr sdílí. */
.mail2 .mail2-compose { min-width: 128px; justify-self: start; }
/* Lišta hromadných akcí byla vyšší než všechno kolem. */
.mail2 .mail2-bulk { min-height: auto; padding: 0; }
/* Lišta akcí a hlavička zprávy jsou o polovinu nižší (21. 9. 2026). */
.mail2 .mail2-reader-actions { padding: 4px 14px; gap: 5px; }


/* ── Telefon: karta zprávy podle zadání 21. 9. 2026 ───────────────
   řádek 1: tečka účtu · jméno (větší, tučné) · čas vpravo,
   řádek 2: předmět vlevo · sponka vpravo (jen když je příloha),
   řádky 3–4: náhled těla drobným písmem. Štítky (účet, složka) se na
   telefonu nekreslí — účet říká barevná tečka. Zaškrtávátko v klidu
   nezabírá ani svůj sloupec. */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2-message { grid-template-columns: 0 minmax(0,1fr) auto; column-gap: 0; padding: 9px 14px 8px; row-gap: 1px; }
  .mail2.is-vyber .mail2-message { grid-template-columns: 26px minmax(0,1fr) auto; column-gap: 8px; }
  /* Přečtená × NEPŘEČTENÁ musí být poznat na první pohled (hlášení
     21. 9. 2026 — obojí vypadalo skoro stejně): přečtená má jméno
     v běžné váze a tlumené barvě, nepřečtená plnou čerň, silně tučně,
     širší modrý proužek u hrany a zřetelnější podklad. */
  .mail2-message .mail2-message-from { font-size: 15px; font-weight: 500; line-height: 1.3; display: flex; align-items: center; gap: 7px; color: var(--text-secondary); }
  .mail2-message.is-unread .mail2-message-from { font-weight: 800; color: var(--text-primary); }
  .mail2-message.is-unread { box-shadow: inset 4px 0 var(--m2-blue);
    background: color-mix(in srgb, var(--m2-blue) 9%, var(--bg-primary,#fff)); }
  .mail2-message.is-unread .mail2-message-subject { font-weight: 800; color: var(--text-primary); }
  .mail2-message:not(.is-unread) .mail2-message-subject { color: var(--text-secondary); font-weight: 500; }
  .mail2-message:not(.is-unread) .mail2-message-preview { color: var(--text-muted, var(--text-secondary)); }
  .mail2-message .mail2-message-date { font-size: var(--fs-popisek); line-height: 1.3; align-self: center; padding-left: 8px; }
  .mail2-message .mail2-message-subject { font-size: var(--fs-vedlejsi); line-height: 1.35; color: var(--text-primary); }
  .mail2-message.is-unread .mail2-message-subject { font-weight: 700; }
  .mail2-message .mail2-message-klip { padding-left: 8px; }
  .mail2-message .mail2-message-klip .mail2-sponka { width: 14px; height: 14px; }
  .mail2-message .mail2-message-preview { font-size: var(--fs-popisek); line-height: 1.35; margin-top: 2px; -webkit-line-clamp: 2; }
  .mail2-message .mail2-message-badges { display: none; }
}

/* ── Telefon: přílohy pod hlavičkou zprávy (přání uživatele 22. 9. 2026)
   ──────────────────────────────────────────────────────────────────
   Dnes u KAŽDÉ přílohy vedle jejího jména ještě „Uložit do zakázky"
   a „Jako dokument" — na telefonu z toho vznikal trojsloupcový chaos,
   jména se lámala přes tři řádky a deset příloh zabralo celou
   obrazovku (screenshot uživatele). Jedna příloha = JEDEN řádek přes
   celou šířku, dlouhé jméno se zkrátí výpustkou; tlačítka jednotlivé
   přílohy se nekreslí vůbec — dostupná jsou z nabídky přílohy, kterou
   na telefonu otevře DLOUHÝ STISK (`attachments.js`, `otevriMenuPrilohy`).
   „Uložit vše" zůstává přes celou šířku (pravidlo `.mail2-attachment-vse`
   výš v souboru platí i tady beze změny). */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2-attachments { display: block; margin-top: 6px; }
  .mail2-attachment-item {
    display: flex; align-items: center; width: 100%;
    gap: 0; margin: 0; padding: 2px 0; min-height: 40px;
    border-bottom: 1px solid var(--m2-line);
  }
  .mail2-attachment-item:last-of-type { border-bottom: 0; }
  /* Řádek musí jít trefit prstem — samotný text měl 13 px (změřeno
     v harnessu 22. 9. 2026), proto pevná výška terče. */
  .mail2-attachment {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: center;
    gap: 8px; min-height: 36px; height: auto; padding: 0; border: 0;
    color: var(--text-primary); font-size: var(--fs-vedlejsi);
  }
  .mail2-attachment-nazev {
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .mail2-attachment-velikost {
    flex: 0 0 auto; margin-left: auto; padding-left: 8px;
    color: var(--text-secondary); font-size: var(--fs-popisek); white-space: nowrap;
  }
  /* „Uložit do zakázky"/„Jako dokument" u JEDNOTLIVÉ přílohy — na
     telefonu je nahrazuje nabídka z dlouhého stisku, viz komentář výš. */
  .mail2-attachment-item > button { display: none !important; }

  /* Panel „Kontext z appky": tlačítka do JEDNOHO řádku s vodorovným
     zalomením a nižší, ať panel nezabírá třetinu obrazovky (hlášení
     21. 9. 2026). */
  .mail2-kx-akce { flex-wrap: wrap; gap: 6px; margin-top: 6px; }
  .mail2-kx-akce button, .mail2-context-action {
    height: calc(var(--m2-btn-h) - 4px); min-height: calc(var(--m2-btn-h) - 4px);   /* telefon: --m2-btn-h 24 → 20 px jako dřív */
    padding: 0 8px; font-size: var(--fs-popisek);
  }
}

/* ── Ověření odesílatele a varování před podvodem (5.102.0) ──────────
   Barvy jen z tokenů, které se překlápějí S MOTIVEM — pozadí i text
   spolu (past „překlápěcí token pod pevnou barvou" z CLAUDE.md).
   Třída `.mail2` navíc kvůli specificitě (společný blok tlačítek). */
.mail2 .mail2-overeni-stitek {
  display: inline-flex; align-items: center; gap: 4px; height: 20px;
  padding: 0 8px; margin-left: 6px; border-radius: 10px; vertical-align: middle;
  font-size: var(--fs-popisek); font-weight: 800; white-space: nowrap;
}
.mail2 .mail2-overeni-stitek.je-overeno { background: var(--pg-green-light);
  border: 1px solid var(--pg-green-border); color: var(--pg-green-dark); }
.mail2 .mail2-overeni-stitek.je-podezrele { background: var(--pg-red-light);
  border: 1px solid var(--pg-red-border); color: var(--pg-red-text); }
.mail2 .mail2-overeni-stitek.je-prvni { background: var(--pg-blue-light);
  color: var(--pg-blue-text); font-weight: 700; }

/* S/MIME podpis přijaté zprávy (5.113.0) — tytéž překlápěcí tokeny jako
   ověření odesílatele (pozadí i text spolu). Dlouhé jméno + vydavatel
   se zkrátí výpustkou, celé je v `title` a v podrobnostech. */
.mail2 .mail2-smime-stitek {
  display: inline-flex; align-items: center; gap: 4px; height: 20px; max-width: 100%;
  padding: 0 8px; margin-left: 6px; border-radius: 10px; vertical-align: middle;
  font-size: var(--fs-popisek); font-weight: 700; white-space: nowrap; overflow: hidden;
}
.mail2 .mail2-smime-stitek[hidden] { display: none; }
.mail2 .mail2-smime-stitek .mail2-smime-text { overflow: hidden; text-overflow: ellipsis; }
.mail2 .mail2-smime-stitek svg { flex: 0 0 auto; }
.mail2 .mail2-smime-stitek.je-overeno { background: var(--pg-green-light);
  border: 1px solid var(--pg-green-border); color: var(--pg-green-dark); }
.mail2 .mail2-smime-stitek.je-problem { background: var(--pg-red-light);
  border: 1px solid var(--pg-red-border); color: var(--pg-red-text); }
.mail2 .mail2-smime-stitek.je-nezjisteno { background: var(--m2-soft);
  border: 1px solid var(--m2-line); color: var(--text-secondary); }

/* Šifrovaná zpráva S/MIME (5.114.0) — štítek a hláška místo těla.
   Překlápěcí tokeny jen v PÁRECH (pozadí + text spolu, CLAUDE.md). */
.mail2 .mail2-sifra-stitek {
  display: inline-flex; align-items: center; gap: 4px; height: 20px; max-width: 100%;
  padding: 0 8px; margin-left: 6px; border-radius: 10px; vertical-align: middle;
  font-size: var(--fs-popisek); font-weight: 700; white-space: nowrap; overflow: hidden;
  background: var(--pg-blue-light); color: var(--pg-blue-text);
}
.mail2 .mail2-sifra-stitek[hidden] { display: none; }
.mail2 .mail2-sifra-stitek svg { flex: 0 0 auto; }
.mail2 .mail2-body .mail2-sifra-hlaska {
  margin: 12px 0; padding: 10px 12px; border-radius: 8px;
  border: 1px solid var(--m2-line); background: var(--m2-soft); color: var(--text-secondary);
}
.mail2 .mail2-body .mail2-sifra-hlaska p { margin: 0; }
.mail2 .mail2-body .mail2-sifra-hlaska.je-chyba { background: var(--pg-red-light);
  border-color: var(--pg-red-border); color: var(--pg-red-text); }
.mail2 .mail2-body .mail2-sifra-hlaska .mail2-sifra-znovu {
  margin-top: 8px; min-height: var(--m2-btn-h); padding: 3px var(--m2-btn-pad);
  border-radius: var(--m2-btn-r); font-size: var(--fs-popisek); font-weight: 700; cursor: pointer;
  border: 1px solid var(--pg-red-border); background: var(--bg-primary, #fff); color: var(--pg-red-text);
}

.mail2 .mail2-kontroly { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--m2-line);
  display: flex; flex-direction: column; gap: 4px; white-space: normal; }
.mail2 .mail2-kontroly-nadpis { font-weight: 800; color: var(--text-secondary); font-size: var(--fs-popisek); }
.mail2 .mail2-kontrola { display: flex; gap: 7px; align-items: flex-start; color: var(--text-primary); }
.mail2 .mail2-kontrola svg { flex: 0 0 auto; margin-top: 2px; }
.mail2 .mail2-kontrola.je-ok svg { color: var(--pg-green-dark); }
.mail2 .mail2-kontrola.je-chyba { color: var(--pg-red-text); }
.mail2 .mail2-kontrola.je-nic { color: var(--text-secondary); }

.mail2 .mail2-varovani {
  margin-top: 12px; padding: 12px 14px; border-radius: 8px;
  border: 1px solid var(--pg-red-border); background: var(--pg-red-light);
  color: var(--pg-red-text); display: flex; flex-direction: column; gap: 8px;
}
.mail2 .mail2-varovani[hidden] { display: none; }
.mail2 .mail2-varovani-hlava { display: flex; align-items: center; gap: 8px; font-size: var(--fs-telo); }
.mail2 .mail2-varovani-hlava svg { color: var(--pg-red); flex: 0 0 auto; }
.mail2 .mail2-varovani ul { margin: 0; padding-left: 34px; display: flex; flex-direction: column;
  gap: 4px; line-height: 1.45; font-size: var(--fs-vedlejsi); }
.mail2 .mail2-varovani-akce { display: flex; flex-wrap: wrap; gap: 8px; padding-left: 26px; }
.mail2 .mail2-varovani .mail2-varovani-akce button,
.mail2 .mail2-varovani .mail2-varovani-akce a {
  height: auto; min-height: var(--m2-btn-h); padding: 3px var(--m2-btn-pad);
  border-radius: var(--m2-btn-r); line-height: 1.25; text-align: left;
  display: inline-flex; align-items: center; font-size: var(--fs-popisek); font-weight: 700;
  border: 1px solid var(--pg-red-border); background: var(--bg-primary, #fff);
  color: var(--pg-red-text); text-decoration: none; cursor: pointer;
}
.mail2 .mail2-varovani .mail2-varovani-akce .mail2-varovani-spam {
  background: var(--pg-red); border-color: var(--pg-red); color: var(--pg-red-light);
}
.mail2 .mail2-varovani .mail2-varovani-akce .mail2-varovani-ok {
  margin-left: auto; border-color: var(--m2-line); color: var(--text-secondary);
}
.mail2 .mail2-varovani-pozn { padding-left: 26px; font-size: var(--fs-popisek); }

/* Řádek seznamu: podezřelá zpráva svítí červeně (vybraná má přednost) */
.mail2 .mail2-message.is-podezrela, .mail2 .mail2-tr.is-podezrela {
  background: var(--pg-red-light); box-shadow: inset 3px 0 0 var(--pg-red);
}
.mail2 .mail2-message.is-podezrela.is-vybrana, .mail2 .mail2-tr.is-podezrela.is-vybrana,
.mail2 .mail2-message.is-podezrela.is-active {
  background: var(--bg-hover, #dbe6f5); box-shadow: inset 3px 0 0 var(--pg-red);
}
.mail2 .mail2-ikona-varovani { color: var(--pg-red); flex: 0 0 auto; vertical-align: -2px; margin-right: 4px; }
.mail2 .mail2-td-od-podvod { display: inline-flex; align-items: center; color: var(--pg-red-text); font-weight: 800; }
.mail2 .mail2-message-badges .mail2-stitek-podvod,
.mail2 .mail2-message-badges .mail2-stitek-duvod,
.mail2 .mail2-message-badges .mail2-stitek-prvni,
.mail2 .mail2-stitek-zakazka {
  display: inline-flex; align-items: center; height: 18px; padding: 0 7px; border-radius: 9px;
  font-size: var(--fs-popisek); font-weight: 700; white-space: nowrap; line-height: 1;
}
.mail2 .mail2-message-badges .mail2-stitek-podvod { background: var(--pg-red); color: var(--pg-red-light); font-weight: 800; }
.mail2 .mail2-message-badges .mail2-stitek-duvod { border: 1px solid var(--pg-red-border); color: var(--pg-red-text); }
.mail2 .mail2-message-badges .mail2-stitek-prvni { background: var(--pg-blue-light); color: var(--pg-blue-text); }
/* Zakázka jako štítek (bod 3, 5.102.0) */
.mail2 .mail2-stitek-zakazka { background: var(--pg-blue-light); color: var(--pg-blue-text);
  border: 1px solid color-mix(in srgb, var(--pg-blue-text) 35%, transparent); font-weight: 800; }
/* Sekce Zakázky v levém panelu (bod 3, 5.102.0) */
.mail2 .mail2-zakazky-title .mail2-nav-pozn { text-transform: none; letter-spacing: 0; font-weight: 600; }
.mail2 .mail2-zakazky[hidden], .mail2 .mail2-zakazky-title[hidden] { display: none; }
.mail2 .mail2-zakazka-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mail2 .mail2-zakazka-item .mail2-count { color: var(--pg-blue-text, var(--m2-blue)); font-weight: 800; }

/* Velké přílohy poslané odkazem (bod 4, 5.102.0) — karta v detailu zprávy */
.mail2 .mail2-odkazy { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.mail2 .mail2-odkazy[hidden] { display: none; }
.mail2 .mail2-odkaz-karta { border: 1px solid var(--m2-line); border-radius: 8px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 8px; background: var(--bg-primary, #fff); }
.mail2 .mail2-odkaz-hlava { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mail2 .mail2-odkaz-hlava strong { flex: 1; }
.mail2 .mail2-odkaz-stav { display: inline-flex; align-items: center; height: 20px; padding: 0 8px;
  border-radius: 10px; font-size: var(--fs-popisek); font-weight: 800; white-space: nowrap; }
.mail2 .mail2-odkaz-stav.je-stazeno { background: var(--pg-green-light); color: var(--pg-green-dark);
  border: 1px solid var(--pg-green-border); }
.mail2 .mail2-odkaz-stav.je-ceka { background: var(--pg-blue-light); color: var(--pg-blue-text); }
.mail2 .mail2-odkaz-stav.je-neaktivni { background: var(--m2-soft); color: var(--text-secondary); }
.mail2 .mail2-odkaz-radky { display: grid; grid-template-columns: 90px 1fr; gap: 4px 12px;
  font-size: var(--fs-vedlejsi); }
.mail2 .mail2-odkaz-radky > span:nth-child(odd) { color: var(--text-secondary); }
.mail2 .mail2-odkaz-akce { display: flex; gap: 6px; flex-wrap: wrap; }
.mail2 .mail2-odkaz-akce .is-danger { margin-left: auto; }

/* Rozbalovací sekce Zakázky (5.102.1) */
.mail2 .mail2-zakazky-title .mail2-zakazky-prepni { display: inline-flex; align-items: center; gap: 4px;
  padding: 0; font: inherit; text-transform: inherit; letter-spacing: inherit; color: inherit; }
.mail2 .mail2-zakazky-sipka { display: inline-flex; width: 12px; height: 12px; }
.mail2 .mail2-zakazky-sipka .mail2-sipka-svg { transition: transform .15s; }
.mail2 .mail2-zakazky-prepni.je-otevrena .mail2-sipka-svg { transform: rotate(90deg); }
.mail2 .mail2-zakazky-pocet { font-weight: 600; letter-spacing: 0; display: inline-flex; gap: 6px; align-items: center; }
.mail2 .mail2-zakazky-neprectene { color: var(--pg-blue-text, var(--m2-blue)); font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .mail2 .mail2-zakazky-sipka .mail2-sipka-svg { transition: none; } }

/* ── Dorovnání se starou Poštou (5.118.0) ─────────────────────────
   Selektory mají třídu navíc (`.mail2 …`) kvůli společnému bloku
   tlačítek výš a `.mail2 button { font: inherit }` — past specificity
   z CLAUDE.md. */

/* Potvrzení o přečtení „zeptat se" — úzký pruh nad tělem zprávy.
   Pozadí i text z překlápěcích tokenů (oba se mění s motivem). */
.mail2 .mail2-mdn { display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  width: fit-content; max-width: 100%; margin: 8px 0 0; padding: 4px 6px 4px 10px;
  border: 1px solid var(--okno-obrys); border-radius: 8px; background: var(--panel-modra);
  color: var(--text-primary); font-size: var(--fs-popisek); line-height: 1.35; }
.mail2 .mail2-mdn[hidden] { display: none; }
.mail2 .mail2-mdn .mail2-mdn-text { flex: 0 1 auto; min-width: min(100%, 22ch); }
.mail2 .mail2-mdn .mail2-mdn-btn { min-height: 26px; padding: 0 10px; border: 1px solid var(--m2-line);
  border-radius: var(--m2-btn-r, 6px); background: var(--bg-primary, #fff); color: var(--text-primary);
  font-size: var(--fs-popisek); cursor: pointer; }
.mail2 .mail2-mdn .mail2-mdn-btn:hover { border-color: var(--m2-blue); color: var(--pg-blue-text, var(--m2-blue)); }

/* Odpovězeno / přeposláno (5.123.0, jako Outlook). Pruh nad zprávou je
   NENÁPADNÝ — bez rámečku, tlumený text; ikona barvou značky. Ikony
   v seznamu stojí před předmětem (karta i tabulka). Tokeny se překlápějí
   samy (text i pozadí z motivu, barva ikony jen jako `color`). */
.mail2 .mail2-akce-pruh { display: flex; flex-direction: column; gap: 2px;
  width: fit-content; max-width: 100%; margin: 6px 0 0; padding: 3px 10px 3px 8px;
  border-radius: 6px; background: var(--panel-modra); border: 1px solid var(--okno-obrys);
  color: var(--text-secondary); font-size: var(--fs-popisek); line-height: 1.35; }
.mail2 .mail2-akce-pruh[hidden] { display: none; }
.mail2 .mail2-akce-pruh .mail2-akce-radek { display: flex; align-items: center; gap: 6px; min-width: 0; }
.mail2 .mail2-akce-pruh .mail2-akce-radek > span { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-akce-pruh .mail2-ikona { flex: none; color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-akce-zpravy { display: inline-flex; align-items: center; gap: 1px;
  margin-right: 5px; vertical-align: -2px; color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-akce-zpravy .mail2-ikona { flex: none; width: 13px; height: 13px; }

/* Pozvánka: odpověď + šipka ▾ s režimy jako jedno dělené tlačítko. */
.mail2 .mail2-invite-actions .mail2-invite-split { display: inline-flex; }
.mail2 .mail2-invite-actions .mail2-invite-split > button:first-child {
  border-top-right-radius: 0; border-bottom-right-radius: 0; }
.mail2 .mail2-invite-actions .mail2-invite-split > .mail2-invite-sipka {
  margin-left: -1px; padding: 0 7px; border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* Tlačítko ⧉ „Pošta v samostatném okně": na telefonu nemá smysl
   (stará Pošta ho tam taky schovávala). */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-topbar .mail2-okno-posty { display: none; }
}

/* Jednoklikový Archiv na řádku — jen při najetí myší (vzor rychlých
   akcí staré Pošty). Na dotykovém displeji vůbec (gesta karty). */
.mail2-tr { position: relative; }
.mail2 .mail2-rychly-archiv { position: absolute; right: 8px; bottom: 7px; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; min-height: 0; padding: 0;
  border: 1px solid var(--m2-line); border-radius: 6px;
  background: var(--bg-primary, #fff); color: var(--text-secondary); cursor: pointer;
  opacity: 0; visibility: hidden; }
.mail2 .mail2-tr .mail2-rychly-archiv { top: 2px; bottom: auto; width: 20px; height: 20px; }
.mail2 .mail2-message:hover .mail2-rychly-archiv,
.mail2 .mail2-message:focus-within .mail2-rychly-archiv,
.mail2 .mail2-tr:hover .mail2-rychly-archiv,
.mail2 .mail2-tr:focus-within .mail2-rychly-archiv { opacity: 1; visibility: visible; }
.mail2 .mail2-rychly-archiv:hover { border-color: var(--m2-blue); color: var(--pg-blue-text, var(--m2-blue)); }
@media (hover: none) { .mail2 .mail2-rychly-archiv { display: none; } }

/* Uložit do zakázky — výběr příloh (zaškrtávání jako stará Pošta). */
.mail2-dialog .mail2-ulozit-prilohy { margin: 4px 14px 2px; padding: 4px 0 2px; border: 0;
  border-top: 1px solid var(--m2-line); min-width: 0; }
.mail2-dialog .mail2-ulozit-prilohy[hidden] { display: none; }
.mail2-dialog .mail2-ulozit-prilohy legend { padding: 0; color: var(--text-secondary);
  font-size: var(--fs-popisek); font-weight: 700; }
.mail2-dialog .mail2-ulozit-prilohy > div { max-height: 180px; overflow: auto; }
.mail2-dialog .mail2-ulozit-prilohy .mail2-ulozit-priloha { padding: 3px 0; }
.mail2-dialog .mail2-ulozit-priloha .mail2-ulozit-priloha-jmeno { min-width: 0; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.mail2-dialog .mail2-ulozit-priloha small { flex: 0 0 auto; color: var(--text-secondary); font-weight: 500; }

/* ── Rozbor zprávy AI (5.125.0) ───────────────────────────────────
   Tlačítko „Shrnout" v liště (šedý podklad jako Zakázka) a panel
   #mail2AiPanel mezi hlavičkou a tělem. Panel kreslí čtečka z prvků
   (textContent), proto tu nejsou žádná pravidla pro cizí HTML. Nová
   pravidla pro tlačítka mají třídu navíc (kolize specificity se
   společným blokem tlačítek — CLAUDE.md). */
.mail2 .mail2-reader-actions button[data-action="ai"] {
  background: var(--m2-soft); border-color: var(--m2-line); color: var(--text-primary); }
.mail2 .mail2-reader-actions button.je-zaneprazdneno { opacity: .6; cursor: progress; }
.mail2 .mail2-message-head .mail2-ai {
  margin-top: 12px; padding: 10px 12px 8px; border-radius: 8px;
  border: 1px solid var(--okno-obrys); border-left: 3px solid var(--m2-blue);
  background: var(--panel-modra); font-size: var(--fs-vedlejsi); overflow-wrap: anywhere; }
.mail2 .mail2-ai .mail2-ai-hlava { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.mail2 .mail2-ai .mail2-ai-nadpis { flex: 1 1 auto; font-size: var(--fs-vedlejsi); }
.mail2 .mail2-ai .mail2-ai-hlava .mail2-ai-zavrit {
  border: 0; background: transparent; color: var(--text-secondary); cursor: pointer;
  min-width: 28px; min-height: 28px; padding: 0; font-size: 14px; }
.mail2 .mail2-ai .mail2-ai-body,
.mail2 .mail2-ai .mail2-ai-ukoly { margin: 4px 0 6px; padding-left: 18px; }
.mail2 .mail2-ai .mail2-ai-bod { margin: 2px 0; }
.mail2 .mail2-ai.je-sbaleno .mail2-ai-bod:nth-child(n+4) { display: none; }
.mail2 .mail2-ai .mail2-ai-sekce { margin-top: 8px; color: var(--text-secondary);
  font-size: var(--fs-popisek); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.mail2 .mail2-ai .mail2-ai-ukol { margin: 4px 0 8px; }
.mail2 .mail2-ai .mail2-ai-ukol-hlavni { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.mail2 .mail2-ai .mail2-ai-termin { font-weight: 700; white-space: nowrap; }
.mail2 .mail2-ai .mail2-ai-odhad,
.mail2 .mail2-ai .mail2-ai-prosly { padding: 0 6px; border-radius: 9px; font-size: var(--fs-popisek);
  border: 1px solid var(--m2-line); color: var(--text-secondary); background: var(--bg-primary, #fff); }
.mail2 .mail2-ai .mail2-ai-prosly { border-color: var(--pg-red-border); color: var(--pg-red-text);
  background: var(--pg-red-light); }
.mail2 .mail2-ai .mail2-ai-citace { margin: 2px 0 4px; color: var(--text-secondary);
  font-size: var(--fs-popisek); font-style: italic; }
.mail2 .mail2-ai .mail2-ai-poptavka { display: grid; gap: 2px; margin: 4px 0; }
.mail2 .mail2-ai .mail2-ai-pole { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 6px; }
.mail2 .mail2-ai .mail2-ai-klic { color: var(--text-secondary); }
.mail2 .mail2-ai .mail2-ai-radek { margin: 6px 0; }
.mail2 .mail2-ai .mail2-ai-akce { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; }
.mail2 .mail2-ai .mail2-ai-btn,
.mail2 .mail2-ai .mail2-ai-vic {
  min-height: var(--m2-ovladac); padding: 0 var(--m2-btn-pad); border-radius: var(--m2-btn-r);
  border: 1px solid color-mix(in srgb, var(--m2-blue) 45%, var(--m2-line));
  /* text i podklad se překlápějí SPOLU (modrá na tmavém podkladu měla 2,5:1) */
  background: var(--bg-primary, #fff); color: var(--text-primary);
  cursor: pointer; font: inherit; }
.mail2 .mail2-ai .mail2-ai-btn.is-primary { background: var(--m2-blue); border-color: var(--m2-blue);
  color: #fff; font-weight: 700; }
.mail2 .mail2-ai .mail2-ai-varovani { margin: 4px 0 6px; padding: 8px 10px; border-radius: 6px;
  border: 1px solid var(--pg-red-border); background: var(--pg-red-light); color: var(--pg-red-text);
  font-weight: 600; }
.mail2 .mail2-ai .mail2-ai-chyba { margin: 6px 0; color: var(--pg-red-text); }
.mail2 .mail2-ai .mail2-ai-pozn,
.mail2 .mail2-ai .mail2-ai-rozsah { margin: 4px 0; color: var(--text-secondary); font-size: var(--fs-popisek); }
.mail2 .mail2-ai .mail2-ai-paticka { margin-top: 8px; }
.mail2 .mail2-ai .mail2-ai-kostra { display: grid; gap: 6px; margin: 6px 0; }
.mail2 .mail2-ai .mail2-ai-kostra span { display: block; height: 10px; border-radius: 5px;
  background: color-mix(in srgb, var(--text-secondary) 18%, transparent); }
.mail2 .mail2-ai .mail2-ai-kostra span:nth-child(2) { width: 82%; }
.mail2 .mail2-ai .mail2-ai-kostra span:nth-child(3) { width: 64%; }
/* Návrh odpovědi AI (5.126.0) — formulář v panelu rozboru */
.mail2 .mail2-ai .mail2-ai-odpoved { display: grid; gap: 6px; margin: 6px 0 4px;
  padding: 8px 10px; border-radius: 6px; border: 1px solid var(--m2-line);
  background: var(--bg-primary, #fff); }
.mail2 .mail2-ai .mail2-ai-komu { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.mail2 .mail2-ai .mail2-ai-komu label { display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer; }
.mail2 .mail2-ai .mail2-ai-pokyn-popis { color: var(--text-secondary); font-size: var(--fs-popisek); }
.mail2 .mail2-ai .mail2-ai-odpoved .mail2-ai-pokyn { width: 100%; box-sizing: border-box;
  min-height: 52px; resize: vertical; padding: 6px 8px; border-radius: 6px;
  border: 1px solid var(--m2-line); background: var(--bg-card); color: var(--text-primary);
  font: inherit; }
.mail2 .mail2-ai .mail2-ai-odpoved .mail2-ai-btn { justify-self: start; }
.mail2 .mail2-ai .mail2-ai-odpoved .mail2-ai-btn:disabled { opacity: .6; cursor: progress; }
.mail2 .mail2-ai .mail2-ai-stav { margin: 0; font-size: var(--fs-popisek); color: var(--text-secondary); }
.mail2 .mail2-ai .mail2-ai-stav:empty { display: none; }
.mail2 .mail2-ai .mail2-ai-stav.je-chyba { color: var(--pg-red-text); }
.mail2-dialog .mail2-remind-info { margin: 4px 14px 2px; color: var(--text-secondary);
  font-size: var(--fs-popisek); }
.mail2-dialog .mail2-remind-info[hidden] { display: none; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Telefon: „Shrnout" je v nabídce •••, lišta zůstává krátká */
  .mail2 .mail2-reader .mail2-reader-actions > button[data-action="ai"] { display: none; }
  .mail2 .mail2-message-head .mail2-ai { margin-left: -4px; margin-right: -4px; }
  .mail2 .mail2-ai .mail2-ai-btn,
  .mail2 .mail2-ai .mail2-ai-vic,
  .mail2 .mail2-ai .mail2-ai-hlava .mail2-ai-zavrit { min-height: 44px; min-width: 44px; }
  .mail2 .mail2-ai .mail2-ai-akce .mail2-ai-btn { flex: 1 1 100%; }
  .mail2 .mail2-ai .mail2-ai-ukol .mail2-ai-btn { margin-top: 4px; }
  .mail2 .mail2-ai .mail2-ai-pole { grid-template-columns: 84px minmax(0, 1fr); }
  /* Návrh odpovědi: volby a tlačítko ≥ 44 px, pole 16 px (iOS jinak zoomuje) */
  .mail2 .mail2-ai .mail2-ai-komu label { min-height: 44px; }
  .mail2 .mail2-ai .mail2-ai-odpoved .mail2-ai-pokyn { font-size: var(--fs-pole, 16px); }
  .mail2 .mail2-ai .mail2-ai-odpoved .mail2-ai-btn { justify-self: stretch; }
}

/* ── Google Kalendář u pozvánky (5.128.0) ──
   Řádek pod odpověďmi: stav zápisu (čeká / zapsáno / chyba) nebo odkaz
   „Přidat do Google kalendáře". Třída `.mail2 .mail2-invite` navíc kvůli
   společnému bloku tlačítek výš (kolize specificity, CLAUDE.md). */
.mail2 .mail2-invite .mail2-invite-google { display:flex; flex-wrap:wrap; align-items:center; gap:7px;
  margin-top:10px; padding-top:10px; border-top:1px solid var(--m2-line);
  font-size:var(--fs-vedlejsi); color:var(--text-secondary) }
.mail2 .mail2-invite .mail2-invite-google-text { flex:1 1 220px; min-width:0; overflow-wrap:anywhere }
.mail2 .mail2-invite .mail2-invite-google button,
.mail2 .mail2-invite .mail2-invite-google a { min-height:var(--m2-btn-h, 32px); display:inline-flex;
  align-items:center; padding:0 var(--m2-btn-pad, 10px); border:1px solid var(--m2-line);
  border-radius:var(--m2-btn-r, 6px); background:var(--bg-primary,#fff); color:var(--text-primary);
  text-decoration:none; cursor:pointer; white-space:nowrap; font-size:var(--fs-vedlejsi) }
.mail2 .mail2-invite .mail2-invite-google button:hover,
.mail2 .mail2-invite .mail2-invite-google a:hover { border-color:var(--m2-blue); color:var(--pg-blue-text, var(--m2-blue)) }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-invite .mail2-invite-google button,
  .mail2 .mail2-invite .mail2-invite-google a { min-height:44px }
}

/* ── Termín z rozboru AI do Google kalendáře (5.129.0) ── */
.mail2 .mail2-ai .mail2-ai-ukol a.mail2-ai-btn { display: inline-flex; align-items: center;
  text-decoration: none; box-sizing: border-box; }
.mail2 .mail2-ai .mail2-ai-ukol .mail2-ai-btn + .mail2-ai-btn { margin-left: 6px; }
.mail2 .mail2-ai .mail2-ai-ukol .mail2-ai-btn:disabled { opacity: .7; cursor: default; }

/* ── AI třídění příchozí pošty (5.130.0) ──
   Štítek Faktura / Poptávka v kartě, v tabulce (před předmětem) i ve
   čtečce. Barvy z dvojic tokenů, které se překlápějí OBĚ (pozadí i text,
   zrádný vzor CLAUDE.md). Nejisté = obrys a „?", podezřelé = červený obrys
   s ⚠. Selektory s třídou navíc (`.mail2 …`) kvůli kolizi specificity. */
.mail2 .mail2-stitek-ai {
  display: inline-flex; align-items: center; height: 18px; padding: 0 7px; border-radius: 9px;
  font-size: var(--fs-popisek); font-weight: 800; white-space: nowrap; line-height: 1;
  border: 1px solid transparent; flex: none; }
.mail2 .mail2-stitek-ai.is-faktura { background: var(--pg-green-light); color: var(--pg-green-dark);
  border-color: var(--pg-green-border); }
.mail2 .mail2-stitek-ai.is-poptavka { background: var(--pg-blue-light); color: var(--pg-blue-text);
  border-color: var(--m2-blue); }
.mail2 .mail2-stitek-ai.is-nejiste { background: transparent; color: var(--text-secondary);
  border: 1px dashed var(--m2-line); font-weight: 700; }
.mail2 .mail2-stitek-ai.is-podezrela { background: transparent; color: var(--pg-red-text);
  border: 1px solid var(--pg-red-border); }
/* V tabulce stojí před předmětem */
.mail2 .mail2-tr .mail2-stitek-ai { margin-right: 6px; vertical-align: 1px; height: 16px; }

/* Pruh „proč" ve čtečce — nenápadný, jako pruh odpovědí */
.mail2 .mail2-trideni { display: flex; flex-direction: column; gap: 4px;
  width: fit-content; max-width: 100%; margin: 6px 0 0; padding: 5px 8px 5px 8px;
  border-radius: 8px; background: var(--panel-modra); border: 1px solid var(--okno-obrys);
  color: var(--text-secondary);
  font-size: var(--fs-popisek); line-height: 1.4; box-sizing: border-box; }
.mail2 .mail2-trideni[hidden] { display: none; }
.mail2 .mail2-trideni.is-podezrela { box-shadow: inset 3px 0 0 var(--pg-red); }
.mail2 .mail2-trideni .mail2-trideni-hlava { display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px 8px; min-width: 0; }
.mail2 .mail2-trideni .mail2-trideni-zdroj { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-trideni .mail2-trideni-zmenit { min-height: 24px; padding: 0 8px;
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r, 6px);
  background: var(--bg-primary, #fff); color: var(--text-primary);
  font-size: var(--fs-popisek); cursor: pointer; white-space: nowrap; }
.mail2 .mail2-trideni .mail2-trideni-zmenit:hover { border-color: var(--m2-blue); color: var(--pg-blue-text, var(--m2-blue)); }
.mail2 .mail2-trideni .mail2-trideni-pozn { color: var(--text-primary); }
.mail2 .mail2-trideni.is-podezrela .mail2-trideni-pozn { color: var(--pg-red-text); font-weight: 700; }
.mail2 .mail2-trideni .mail2-trideni-proc { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-trideni .mail2-trideni-proc strong { color: var(--text-primary); }
.mail2 .mail2-trideni .mail2-trideni-citace { font-style: italic; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Telefon: pruh přes šířku, „proč" zalomené, tlačítko ≥ 44 px */
  .mail2 .mail2-trideni { width: 100%; }
  .mail2 .mail2-trideni .mail2-trideni-zmenit { min-height: 44px; min-width: 44px; margin-left: auto; }
  /* „Zatřídit znovu" + „Zařadit ▾" (5.135.0): doprava jde jen PRVNÍ
     z dvojice, jinak by si volné místo rozdělily a první by visel uprostřed */
  .mail2 .mail2-trideni .mail2-trideni-znovu + .mail2-trideni-zmenit { margin-left: 0; }
  .mail2 .mail2-trideni .mail2-trideni-proc { display: -webkit-box; -webkit-line-clamp: 3;
    -webkit-box-orient: vertical; overflow: hidden; }
}

/* Údaje přijaté faktury v pruhu (5.131.0) — varování k účtu VÝRAZNĚ,
   z dvojice tokenů, které se překlápějí obě */
.mail2 .mail2-trideni .mail2-trideni-faktura { color: var(--text-primary); font-weight: 700;
  overflow-wrap: anywhere; }
.mail2 .mail2-trideni .mail2-trideni-ucet { padding: 3px 6px; border-radius: 6px;
  background: var(--pg-red-light); color: var(--pg-red-text); font-weight: 700; }
.mail2 .mail2-trideni .mail2-trideni-ucet-ok { padding: 3px 6px; border-radius: 6px;
  background: var(--pg-green-light); color: var(--pg-green-dark); font-weight: 700; }
.mail2 .mail2-trideni .mail2-trideni-pdf { font-family: ui-monospace, Consolas, monospace;
  overflow-wrap: anywhere; }
.mail2 .mail2-trideni .mail2-trideni-prehled { align-self: flex-start; }

/* Poptávka z AI třídění (5.132.0) — návrh zakázky, „Založit zakázku"
   a stav v CRM frontě. Tlačítko jako primární tlačítko panelu rozboru
   (táž dvojice barev, existující precedens obou motivů). */
.mail2 .mail2-trideni .mail2-trideni-poptavka { display: flex; flex-wrap: wrap;
  align-items: center; gap: 6px 10px; min-width: 0; }
.mail2 .mail2-trideni .mail2-trideni-navrh { color: var(--text-primary); font-weight: 700;
  overflow-wrap: anywhere; min-width: 0; }
.mail2 .mail2-trideni .mail2-trideni-zalozit { min-height: 26px; padding: 0 10px;
  border: 1px solid var(--m2-blue); border-radius: var(--m2-btn-r, 6px);
  background: var(--m2-blue); color: #fff; font-weight: 700;
  font-size: var(--fs-popisek); cursor: pointer; white-space: nowrap; }
.mail2 .mail2-trideni .mail2-trideni-crm { overflow-wrap: anywhere; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-trideni .mail2-trideni-zalozit { min-height: 44px; flex: 1 1 100%; }
}

/* Vzorek ke kontrole (etapa C1, 5.133.0) — týdenní vzorek rozhodnutí
   AI třídění k ohodnocení. Řádek je sloupec (předmět, údaje,
   rozhodnutí, akce), neklikací — otevírá se výslovně „Otevřít“.
   Selektory s `.mail2` navíc: společný blok tlačítek výš má stejnou
   specificitu a vyhrával by pořadím (zrádný vzor CSS v CLAUDE.md). */
.mail2 .mail2-vzorek-uvod { margin: 0; padding: 10px 12px; color: var(--text-secondary);
  font-size: var(--fs-vedlejsi); border-bottom: 1px solid var(--m2-line); }
.mail2 .mail2-vzorek { display: flex; flex-direction: column; align-items: stretch;
  gap: 3px; cursor: default; min-width: 0; }
.mail2 .mail2-vzorek > * { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-vzorek .mail2-vzorek-meta,
.mail2 .mail2-vzorek .mail2-vzorek-rozhodnuti { color: var(--text-muted); }
.mail2 .mail2-vzorek .mail2-vzorek-akce { display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px 12px; margin-top: 4px; }
.mail2 .mail2-vzorek .mail2-vzorek-chybi { color: var(--text-muted); font-style: italic; }
.mail2 .mail2-vzorek .mail2-vzorek-hodnoceni { display: flex; flex-wrap: wrap; gap: 6px; }
.mail2 .mail2-vzorek .mail2-vzorek-akce button { min-height: var(--m2-btn-h); height: var(--m2-btn-h);
  padding: 0 var(--m2-btn-pad); border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: var(--bg-primary, #fff); color: var(--text-primary); font-size: var(--fs-vedlejsi);
  line-height: 1; white-space: nowrap; cursor: pointer; }
.mail2 .mail2-vzorek .mail2-vzorek-akce button:hover { border-color: var(--m2-blue); }
/* Zvolené hodnocení: obrys a tučné písmo — barva textu zůstává
   textová (žádný překlápěcí token pod pevnou barvou) */
.mail2 .mail2-vzorek .mail2-vzorek-hodnoceni button[aria-pressed="true"] {
  border-color: var(--m2-blue); box-shadow: inset 0 0 0 1px var(--m2-blue);
  background: var(--m2-soft); font-weight: 700; }
.mail2 .mail2-vzorek .mail2-vzorek-akce button:disabled { opacity: .6; cursor: progress; }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Telefon: terče ≥ 44 px, hodnocení přes celou šířku */
  .mail2 .mail2-vzorek .mail2-vzorek-akce button { min-height: 44px; height: auto;
    white-space: normal; }
  .mail2 .mail2-vzorek .mail2-vzorek-hodnoceni { flex: 1 1 100%; }
  .mail2 .mail2-vzorek .mail2-vzorek-hodnoceni button { flex: 1 1 0; min-width: 0; padding: 0 6px; }
}

/* ── Hlídač odpovědí (A1, 5.134.0) ──────────────────────────────
   Selektory s `.mail2` (a u tlačítek s další třídou) navíc: společný
   blok tlačítek výš má stejnou specificitu a vyhrával by pořadím.
   Štítky: text i pozadí z DVOJIC tokenů, které se překlápějí SPOLU
   (--pg-*-light s --pg-*-text/--pg-*-dark) — nikdy překlápěcí pozadí
   pod pevnou barvou (past z CLAUDE.md). */
.mail2 .mail2-list .mail2-stitek-hlidac {
  display: inline-flex; align-items: center; height: 18px; padding: 0 7px; border-radius: 9px;
  font-size: var(--fs-popisek); font-weight: 800; white-space: nowrap; line-height: 1;
  border: 1px solid var(--m2-blue); flex: none;
  background: var(--pg-blue-light); color: var(--pg-blue-text); }
.mail2 .mail2-list .mail2-stitek-hlidac.is-po-lhute,
.mail2 .mail2-list .mail2-stitek-hlidac.is-nedoruceno {
  background: var(--pg-red-light); color: var(--pg-red-text); border-color: var(--pg-red-border); }
.mail2 .mail2-list .mail2-stitek-hlidac.is-odpovezeno {
  background: var(--pg-green-light); color: var(--pg-green-dark); border-color: var(--pg-green-border); }
.mail2 .mail2-list .mail2-stitek-hlidac.is-rozhodnout {
  background: var(--m2-soft); color: var(--text-primary); border: 1px dashed var(--border-input); }
.mail2 .mail2-list .mail2-tr .mail2-stitek-hlidac { margin-right: 6px; vertical-align: 1px; height: 16px; }

/* Pohled Čekám na odpověď */
.mail2 .mail2-hlidac { display: flex; flex-direction: column; min-width: 0; }
.mail2 .mail2-hlidac .mail2-hlidac-zalozky { display: flex; gap: 0; margin: 8px 12px;
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r); overflow: hidden; flex: none; }
.mail2 .mail2-hlidac .mail2-hlidac-zalozky .mail2-hlidac-zalozka { flex: 1 1 0; min-width: 0;
  min-height: var(--m2-btn-h); padding: 0 8px; border: 0; border-right: 1px solid var(--m2-line);
  border-radius: 0; background: var(--bg-primary, #fff); color: var(--text-secondary);
  font-size: var(--fs-vedlejsi); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  cursor: pointer; }
.mail2 .mail2-hlidac .mail2-hlidac-zalozky .mail2-hlidac-zalozka:last-child { border-right: 0; }
.mail2 .mail2-hlidac .mail2-hlidac-zalozky .mail2-hlidac-zalozka[aria-selected="true"] {
  background: var(--m2-soft); color: var(--text-primary); font-weight: 700;
  box-shadow: inset 0 -2px 0 var(--m2-blue); }
.mail2 .mail2-hlidac .mail2-hlidac-pruh { margin: 0 12px 8px; padding: 6px 9px; border-radius: 8px;
  background: var(--pg-red-light); color: var(--pg-red-text); font-size: var(--fs-vedlejsi);
  line-height: 1.4; overflow-wrap: anywhere; }
.mail2 .mail2-hlidac .mail2-hlidac-pruh a { color: inherit; font-weight: 700; text-decoration: underline; }
.mail2 .mail2-hlidac .mail2-hlidac-radek { display: flex; flex-direction: column; align-items: stretch;
  gap: 3px; min-width: 0; }
.mail2 .mail2-hlidac .mail2-hlidac-radek > * { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-hlidac .mail2-hlidac-radek.is-nedoruceno { box-shadow: inset 3px 0 0 var(--pg-red); }
.mail2 .mail2-hlidac .mail2-hlidac-hlava { display: flex; align-items: baseline; gap: 8px;
  justify-content: space-between; min-width: 0; }
.mail2 .mail2-hlidac .mail2-hlidac-komu { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-hlidac .mail2-hlidac-stav { flex: none; color: var(--text-secondary);
  font-size: var(--fs-popisek); font-weight: 700; }
.mail2 .mail2-hlidac .is-po-lhute .mail2-hlidac-stav,
.mail2 .mail2-hlidac .is-nedoruceno .mail2-hlidac-stav { color: var(--pg-red-text); }
.mail2 .mail2-hlidac .mail2-hlidac-meta,
.mail2 .mail2-hlidac .mail2-hlidac-citace { color: var(--text-muted); font-size: var(--fs-popisek); }
.mail2 .mail2-hlidac .mail2-hlidac-kandidat { display: flex; flex-wrap: wrap; align-items: center;
  gap: 4px 8px; font-size: var(--fs-popisek); }
.mail2 .mail2-hlidac .mail2-hlidac-mozna { padding: 1px 7px; border-radius: 9px;
  background: var(--pg-green-light); color: var(--pg-green-dark); font-weight: 700; }
.mail2 .mail2-hlidac .mail2-hlidac-akce { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.mail2 .mail2-hlidac .mail2-hlidac-radek button.mail2-hlidac-tlacitko,
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-tlacitko,
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-vice {
  min-height: var(--m2-btn-h); height: var(--m2-btn-h); padding: 0 var(--m2-btn-pad);
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: var(--bg-primary, #fff); color: var(--text-primary); font-size: var(--fs-vedlejsi);
  line-height: 1; white-space: nowrap; cursor: pointer; }
.mail2 .mail2-hlidac .mail2-hlidac-radek button.mail2-hlidac-tlacitko:hover,
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-tlacitko:hover { border-color: var(--m2-blue); }
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-tlacitko.is-hlavni { border-color: var(--m2-blue);
  font-weight: 700; }
.mail2 .mail2-hlidac button.mail2-hlidac-tlacitko:disabled,
.mail2 .mail2-hlidac-ctecka button:disabled { opacity: .6; cursor: progress; }
.mail2 .mail2-hlidac-menu { min-width: 140px; }

/* Pruh ve čtečce — nenápadný jako pruh AI třídění */
.mail2 .mail2-hlidac-ctecka { display: flex; flex-direction: column; gap: 4px;
  width: fit-content; max-width: 100%; margin: 6px 0 0; padding: 5px 8px; border-radius: 8px;
  background: var(--panel-modra); border: 1px solid var(--okno-obrys);
  color: var(--text-secondary); font-size: var(--fs-popisek);
  line-height: 1.4; box-sizing: border-box; }
.mail2 .mail2-hlidac-ctecka[hidden] { display: none; }
.mail2 .mail2-hlidac-ctecka.is-po-lhute,
.mail2 .mail2-hlidac-ctecka.is-nedoruceno { box-shadow: inset 3px 0 0 var(--pg-red); }
.mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok { display: flex; flex-wrap: wrap; align-items: center;
  gap: 4px 8px; min-width: 0; }
.mail2 .mail2-hlidac-ctecka .mail2-hlidac-text { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-hlidac-ctecka .mail2-hlidac-akce { display: flex; flex-wrap: wrap; align-items: center;
  gap: 4px 6px; }
.mail2 .mail2-hlidac-ctecka .mail2-hlidac-volby { display: flex; flex-wrap: wrap; gap: 2px 12px; }
.mail2 .mail2-hlidac-ctecka .mail2-hlidac-volba { display: inline-flex; align-items: center; gap: 4px;
  cursor: pointer; }
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-vice { display: none; }

@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Telefon: záložky jako segmentový přepínač, terče ≥ 44 px */
  .mail2 .mail2-hlidac .mail2-hlidac-zalozky .mail2-hlidac-zalozka { min-height: 44px;
    padding: 0 4px; font-size: var(--fs-vedlejsi); }
  .mail2 .mail2-hlidac .mail2-hlidac-radek button.mail2-hlidac-tlacitko { min-height: 44px;
    height: auto; white-space: normal; }
  .mail2 .mail2-hlidac-menu button { min-height: 44px; }
  /* Pruh čtečky sbalený na JEDEN řádek, akce v ••• */
  .mail2 .mail2-hlidac-ctecka { width: 100%; padding: 2px 4px 2px 8px; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok { flex-wrap: nowrap; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok .mail2-hlidac-text { flex: 1 1 auto;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok:not(.is-otazka):not(.is-rozbaleno) .mail2-hlidac-akce {
    display: none; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok:not(.is-otazka) button.mail2-hlidac-vice {
    display: inline-flex; align-items: center; justify-content: center; flex: none;
    min-width: 44px; min-height: 44px; height: 44px; padding: 0 8px; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-rozbaleno { flex-wrap: wrap; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-rozbaleno .mail2-hlidac-text {
    white-space: normal; overflow-wrap: anywhere; flex-basis: calc(100% - 60px); }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-rozbaleno .mail2-hlidac-akce { order: 3;
    flex: 1 1 100%; }
  .mail2 .mail2-hlidac-ctecka button.mail2-hlidac-tlacitko { min-height: 44px; height: auto; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-volba { min-height: 44px; }
  /* Otázka „Je to odpověď?“ (5.135.0, recenze A1 T9): hlavní akce —
     nesbalená, otázka celá na vlastním řádku, volby a Ano/Ne pod ní
     (třída navíc kvůli specificitě vůči sbalenému bloku výš) */
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-otazka { flex-wrap: wrap; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-otazka .mail2-hlidac-text {
    flex: 1 1 100%; white-space: normal; overflow: visible; overflow-wrap: anywhere; }
  .mail2 .mail2-hlidac-ctecka .mail2-hlidac-blok.is-otazka .mail2-hlidac-akce { flex: 1 1 100%; }
}

/* ── Přílohy do zakázky (B1, 5.136.0): pruh ve čtečce, kontrolní okno,
   ikona v seznamu. Pravidla s TŘÍDOU NAVÍC — společný blok tlačítek
   výš má stejnou specificitu a vyhrával by pořadím (CLAUDE.md). Okno
   leží v <body> MIMO .mail2, proto `.modal-overlay.mail2-prilohy-okno`. */
.mail2 .mail2-message-badges .mail2-ikona-prilohy,
.mail2 .mail2-td .mail2-ikona-prilohy { display: inline-block; margin-right: 4px;
  font-size: 12px; line-height: 1; cursor: default; }
.mail2 .mail2-prilohy-navrh { display: flex; flex-wrap: wrap; align-items: center;
  gap: 4px 8px; width: fit-content; max-width: 100%; margin: 6px 0 0; padding: 5px 8px;
  border-radius: 8px; background: var(--panel-modra); border: 1px solid var(--okno-obrys);
  color: var(--text-secondary);
  font-size: var(--fs-popisek); line-height: 1.4; box-sizing: border-box; }
.mail2 .mail2-prilohy-navrh[hidden] { display: none; }
.mail2 .mail2-prilohy-navrh .mail2-prilohy-text { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-prilohy-navrh .mail2-prilohy-text strong { color: var(--text-primary); }
.mail2 .mail2-prilohy-navrh .mail2-prilohy-akce { display: flex; flex-wrap: wrap;
  align-items: center; gap: 4px 6px; }
.mail2 .mail2-prilohy-navrh .mail2-prilohy-detail { flex: 1 1 100%; min-width: 0;
  color: var(--text-muted); overflow-wrap: anywhere; }
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko,
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-vice {
  min-height: var(--m2-btn-h); height: var(--m2-btn-h); padding: 0 var(--m2-btn-pad);
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: var(--bg-primary, #fff); color: var(--text-primary); font-size: var(--fs-vedlejsi);
  line-height: 1; white-space: nowrap; cursor: pointer; }
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko:hover { border-color: var(--m2-blue); }
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko.is-hlavni { border-color: var(--m2-blue);
  font-weight: 700; }
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko:disabled { opacity: .6; cursor: progress; }
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-vice { display: none; }
.mail2 .mail2-prilohy-navrh.is-ulozeno { color: var(--pg-green-dark); }

/* Volba nad návrhem AI / adresáty konceptu (compose.js dialogVolby):
   tři tlačítka s dlouhými popisky — 480 px (6.3.0; bez vlastní šířky
   by dostala výchozích 440 a lišta by se zalamovala). */
.modal-overlay.mail2-ai-volba .modal-box { --okno-sirka: 480px; }
.modal-overlay.mail2-prilohy-okno .modal-box.mail2-prilohy-box { width: min(600px, 94vw);
  max-height: 88vh; overflow-y: auto; box-sizing: border-box; font-size: 13px; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-zakazka { margin-bottom: 8px; }
/* „Jiná zakázka…“ (závěrečná recenze B1, I-3) — pod výběrem zakázky */
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-zakazka .mail2-prilohy-jina { margin-top: 6px; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-misto { display: block; color: var(--text-muted);
  font-size: 12px; overflow-wrap: anywhere; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-otazka { margin-bottom: 4px; font-weight: 600; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-volby { display: flex; flex-direction: column;
  gap: 4px; }
.modal-overlay.mail2-prilohy-okno label.mail2-prilohy-volba,
.modal-overlay.mail2-prilohy-okno label.mail2-prilohy-soubor { display: flex; align-items: flex-start;
  gap: 6px; cursor: pointer; }
.modal-overlay.mail2-prilohy-okno label.mail2-prilohy-volba input,
.modal-overlay.mail2-prilohy-okno label.mail2-prilohy-soubor input { flex: none; margin-top: 3px; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-volba-text { min-width: 0; overflow-wrap: anywhere; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-slozka { margin: 6px 0; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-skupina { margin: 6px 0; padding-left: 8px;
  border-left: 3px solid var(--border-color); }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-cil { display: flex; flex-wrap: wrap;
  align-items: center; gap: 4px; }
.modal-overlay.mail2-prilohy-okno select.mail2-prilohy-vyber { max-width: 100%; }
.modal-overlay.mail2-prilohy-okno ul.mail2-prilohy-soubory { list-style: none; margin: 2px 0 0;
  padding: 0 0 0 14px; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-jmeno { min-width: 0; overflow-wrap: anywhere; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-ulozena,
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-pozn { color: var(--text-muted); }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-pozn { margin: 8px 0 0; font-size: 12px; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-stav { margin: 8px 0 0; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-stav:empty { display: none; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-chyba,
.modal-overlay.mail2-prilohy-okno ul.mail2-prilohy-chyby { color: var(--pg-red-text); }
.modal-overlay.mail2-prilohy-okno ul.mail2-prilohy-chyby { margin: 4px 0 0; padding-left: 18px;
  overflow-wrap: anywhere; }
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-okno-akce { display: flex; flex-wrap: wrap;
  justify-content: flex-end; gap: 6px; margin-top: 12px; }

@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  /* Pruh sbalený na JEDEN řádek, akce a podrobnosti v ••• (vzor hlídače) */
  .mail2 .mail2-prilohy-navrh { width: 100%; flex-wrap: nowrap; padding: 2px 4px 2px 8px; }
  .mail2 .mail2-prilohy-navrh .mail2-prilohy-text { flex: 1 1 auto; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
  .mail2 .mail2-prilohy-navrh:not(.is-rozbaleno) .mail2-prilohy-akce,
  .mail2 .mail2-prilohy-navrh:not(.is-rozbaleno) .mail2-prilohy-detail { display: none; }
  .mail2 .mail2-prilohy-navrh button.mail2-prilohy-vice { display: inline-flex; align-items: center;
    justify-content: center; flex: none; min-width: 44px; min-height: 44px; height: 44px;
    padding: 0 8px; }
  .mail2 .mail2-prilohy-navrh.is-rozbaleno { flex-wrap: wrap; }
  .mail2 .mail2-prilohy-navrh.is-rozbaleno .mail2-prilohy-text { white-space: normal;
    overflow-wrap: anywhere; flex-basis: calc(100% - 60px); }
  .mail2 .mail2-prilohy-navrh.is-rozbaleno .mail2-prilohy-akce { order: 3; flex: 1 1 100%; }
  .mail2 .mail2-prilohy-navrh.is-rozbaleno .mail2-prilohy-detail { order: 4; }
  .mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko { min-height: 44px; height: auto; }
  /* Kontrolní okno přes celou obrazovku, horní hrana pod výřezem */
  .modal-overlay.mail2-prilohy-okno { align-items: stretch; justify-content: stretch; }
  .modal-overlay.mail2-prilohy-okno .modal-box.mail2-prilohy-box { width: 100%; max-width: 100%;
    height: 100dvh; max-height: 100dvh; border-radius: 0;
    padding: calc(var(--safe-top, 0px) + 10px) 16px calc(var(--safe-bottom, 0px) + 12px); }
  .modal-overlay.mail2-prilohy-okno .modal-box.mail2-prilohy-box .modal-title {
    margin: 0 -16px 10px; border-radius: 0; }
  .modal-overlay.mail2-prilohy-okno .modal-box.mail2-prilohy-box button.btn,
  .modal-overlay.mail2-prilohy-okno select.mail2-prilohy-vyber { min-height: 44px; }
  .modal-overlay.mail2-prilohy-okno label.mail2-prilohy-volba,
  .modal-overlay.mail2-prilohy-okno label.mail2-prilohy-soubor { min-height: 44px; align-items: center; }
  .modal-overlay.mail2-prilohy-okno label.mail2-prilohy-volba input,
  .modal-overlay.mail2-prilohy-okno label.mail2-prilohy-soubor input { margin-top: 0; }
  .modal-overlay.mail2-prilohy-okno .mail2-prilohy-okno-akce { flex-direction: column-reverse;
    align-items: stretch; }
}
.modal-overlay.mail2-prilohy-okno .mail2-prilohy-skupina.is-neukladat ul.mail2-prilohy-soubory {
  opacity: .55; }

/* ── Odhlášení z rozesílky (5.137.0): pruh ve čtečce jako v Apple Mail.
   Třída NAVÍC na tlačítkách — společný blok tlačítek níž má stejnou
   specificitu a vyhrával by pořadím (CLAUDE.md). Barvy jen tokeny, které
   se překlápějí s motivem (pozadí i text spolu). */
.mail2 .mail2-odhlaseni { display: flex; flex-wrap: wrap; align-items: center;
  gap: 4px 8px; width: fit-content; max-width: 100%; margin: 6px 0 0; padding: 4px 4px 4px 8px;
  border-radius: 8px; background: var(--panel-modra); border: 1px solid var(--okno-obrys);
  color: var(--text-secondary);
  font-size: var(--fs-popisek); line-height: 1.4; box-sizing: border-box; }
.mail2 .mail2-odhlaseni[hidden] { display: none; }
.mail2 .mail2-odhlaseni .mail2-odhlaseni-text { min-width: 0; overflow-wrap: anywhere; }
.mail2 .mail2-odhlaseni.is-hotovo .mail2-odhlaseni-text { color: var(--pg-green-dark); font-weight: 600; }
.mail2 .mail2-odhlaseni button.mail2-odhlaseni-tlacitko {
  min-height: var(--m2-btn-h); height: var(--m2-btn-h); padding: 0 var(--m2-btn-pad);
  border: 1px solid var(--m2-line); border-radius: var(--m2-btn-r);
  background: var(--bg-primary, #fff); color: var(--text-primary); font-size: var(--fs-vedlejsi);
  line-height: 1; white-space: nowrap; cursor: pointer; }
.mail2 .mail2-odhlaseni button.mail2-odhlaseni-tlacitko:hover { border-color: var(--m2-blue); }
.mail2 .mail2-odhlaseni button.mail2-odhlaseni-tlacitko:disabled { opacity: .6; cursor: progress; }
.mail2 .mail2-odhlaseni button.mail2-odhlaseni-zavrit {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: var(--m2-btn-h); min-height: var(--m2-btn-h); height: var(--m2-btn-h); padding: 0 6px;
  border: 0; border-radius: var(--m2-btn-r); background: transparent; color: var(--text-secondary);
  font-size: 16px; line-height: 1; cursor: pointer; }
.mail2 .mail2-odhlaseni button.mail2-odhlaseni-zavrit:hover { color: var(--text-primary);
  background: var(--bg-primary, #fff); }
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-odhlaseni { width: 100%; }
  .mail2 .mail2-odhlaseni .mail2-odhlaseni-text { flex: 1 1 100%; }
  .mail2 .mail2-odhlaseni button.mail2-odhlaseni-tlacitko { min-height: 44px; height: auto; flex: 1 1 auto; }
  .mail2 .mail2-odhlaseni button.mail2-odhlaseni-zavrit { min-width: 44px; min-height: 44px; height: 44px; }
}

/* ── Tmavý motiv: čitelný text seznamu zpráv (5.136.1) ─────────────
   Hlášení z iPhonu 17. 10. 2026 („písmo je špatně viditelné“): přečtená
   zpráva měla jméno i předmět v --text-secondary (8,6:1), náhled
   v --text-muted (na řádku s hvězdičkou 4,0:1) a čas nepřečtené ve
   značkové modré --m2-blue, která se nepřeklápí (na grafitu 2,5:1).
   V Grafitu proto: jméno + předmět = --text-primary u VŠECH zpráv
   (≥ 10:1 i na olivovém řádku s hvězdičkou; přečtená se dál pozná
   vahou, chybějícím proužkem a podkladem), náhled --text-secondary /
   u přečtené --text-muted (≥ 5:1), čas --text-secondary a u nepřečtené
   --pg-blue-text. Modrý TEXT v celé Poště (aktivní složka, filtr,
   počty, iniciály, tlačítka čtečky…) bere od 5.136.1 přímo v základních
   pravidlech `var(--pg-blue-text, var(--m2-blue))` — --m2-blue zůstává
   pro pozadí, rámečky a proužky.
   Selektory s `.mail2` + atributem navíc — přebíjí telefonní blok
   (`.mail2-message:not(.is-unread) …`). Světlý motiv beze změny.
   Hlídá frontend/test/test_posta_v2_tmavy_kontrast_ui.py. */
[data-theme="dark"] .mail2 .mail2-message .mail2-message-from,
[data-theme="dark"] .mail2 .mail2-message .mail2-message-subject { color: var(--text-primary); }
[data-theme="dark"] .mail2 .mail2-message .mail2-message-preview { color: var(--text-secondary); }
[data-theme="dark"] .mail2 .mail2-message:not(.is-unread) .mail2-message-preview { color: var(--text-muted); }
[data-theme="dark"] .mail2 .mail2-message .mail2-message-date { color: var(--text-secondary); }
[data-theme="dark"] .mail2 .mail2-message.is-unread .mail2-message-date { color: var(--pg-blue-text); }
[data-theme="dark"] .mail2 .mail2-message .mail2-star { color: #F5A524; }
[data-theme="dark"] .mail2 .mail2-count.is-warning { color: #FF8A80; }

/* ── Dotahování seznamu při rolování (17. 10. 2026) ───────────────
   Hlídač konce seznamu `#mail2Dotahovani` (message-list.js
   `nastavDotahovani`) místo tlačítka „Načíst další": drobný nápis
   „Načítám další zprávy…", po stropu „Zobrazeno N z M — …", po chybě
   výzva k novému pokusu. Barvy JEN z tokenů (překlápí se s motivem);
   třída `.mail2-list-pane` navíc kvůli specificitě (CLAUDE.md). */
.mail2 .mail2-list-pane .mail2-dotahovani {
  padding: 12px 12px 20px;
  text-align: center;
  color: var(--text-muted);
  font-size: var(--fs-popisek);
}
.mail2 .mail2-list-pane .mail2-dotahovani[data-stav="strop"],
.mail2 .mail2-list-pane .mail2-dotahovani[data-stav="chyba"] {
  color: var(--text-secondary);
}
/* Nový pokus po chybě = opravdové tlačítko (klávesnice), vzhledem odkaz */
.mail2 .mail2-list-pane .mail2-dotahovani .mail2-dotahovani-znovu {
  min-height: 32px;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--pg-blue-text);
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
/* Na telefonu cíl prstu aspoň 44 px (recenze M-g) */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-list-pane .mail2-dotahovani .mail2-dotahovani-znovu { min-height: 44px; }
}
/* Polohu prvního viditelného řádku při změnách seznamu (nová pošta
   nahoře, smazání) drží RUČNĚ `zmerKotvu`/`vratKotvu` v message-list.js — Safari
   ukotvení rolování nemá a Chrome by bez tohohle kompenzoval podruhé. */
.mail2 .mail2-list-pane.mail2-list { overflow-anchor: none; }

/* ── Telefon: barevný proužek zprávy jako odsazený „pilíř“ (5.137.1) ─
   Hlášení z iPhonu 19. 10. 2026: proužek `inset 3–4px` na samé levé
   hraně karty kryl kryt telefonu a zaoblení displeje — nepřečtená
   i označená zpráva se proto skoro nepoznala. Na telefonu je proto
   proužek krátký zaoblený pilíř 7 px UVNITŘ karty, 6 px od hrany
   (+ výřez na šířku), a obsah karty posunutý doprava, ať text neleží
   pod ním. Pozadí karet (nepřečtená modrá, označená žlutá, podezřelá
   červená) se nemění. Pořadí pravidel = priorita barvy: nepřečtená <
   otevřená < označená (žlutá) < vybraná (modrá vyhrává jako dnes) <
   podezřelá (červená, i vybraná). Selektory s `.mail2-list-pane`
   navíc — přebíjí `inset` stíny výš v souboru (CLAUDE.md, kolize
   specificity). Desktopová tabulka `.mail2-tr` beze změny. Hlídá
   frontend/test/test_posta_v2_mobil_filtry_ui.py. */
@media (max-width:480px), (max-height:480px) and (max-width:1000px) {
  .mail2 .mail2-list-pane .mail2-message { padding-left: calc(env(safe-area-inset-left, 0px) + 26px); }
  .mail2 .mail2-list-pane .mail2-message.is-unread,
  .mail2 .mail2-list-pane .mail2-message.is-active,
  .mail2 .mail2-list-pane .mail2-message.is-oznacena,
  .mail2 .mail2-list-pane .mail2-message.is-vybrana,
  .mail2 .mail2-list-pane .mail2-message.is-podezrela { box-shadow: none; }
  .mail2 .mail2-list-pane .mail2-message.is-unread::before,
  .mail2 .mail2-list-pane .mail2-message.is-active::before,
  .mail2 .mail2-list-pane .mail2-message.is-oznacena::before,
  .mail2 .mail2-list-pane .mail2-message.is-vybrana::before,
  .mail2 .mail2-list-pane .mail2-message.is-podezrela::before {
    content: ''; position: absolute; pointer-events: none;
    left: calc(env(safe-area-inset-left, 0px) + 6px); top: 6px; bottom: 6px;
    width: 7px; border-radius: 4px; background: var(--m2-blue);
  }
  .mail2 .mail2-list-pane .mail2-message.is-oznacena::before { background: var(--m2-oznacena-pruh); }
  .mail2 .mail2-list-pane .mail2-message.is-vybrana::before { background: var(--m2-blue); }
  .mail2 .mail2-list-pane .mail2-message.is-podezrela::before { background: var(--pg-red); }
}

/* ── Váha písma tlačítek Pošty (6.3.0) ─────────────────────────────
   Text tlačítka má v celé appce 12 px / váha 600 (zadání §5, ruling
   úkolu 4) — Pošta dřív nechávala zděděných 400 a hlavní akce 700.
   Hlavní akci teď nese BARVA, ne tučnost. Blok je ZÁMĚRNĚ na konci
   souboru (přebije stejně silné `font: inherit` rodin výš) a hlavní
   akce s místní 700 mají třídu navíc (kolize specificity, CLAUDE.md).
   Stavové 700 (vybraná záložka hlídače, zvolené hodnocení vzorku)
   a telefonní „← Zpět“ zůstávají — značí stav, nejsou to akce. */
.mail2 .mail2-filter,
.mail2 .mail2-bulk button,
.mail2 .mail2-reader-actions button,
.mail2 .mail2-special-actions button,
.mail2 .mail2-preset-row button,
.mail2 .mail2-invite-actions button,
.mail2 .mail2-invite-actions a,
.mail2 .mail2-invite-terminy button,
.mail2 .mail2-context-action,
.mail2 .mail2-dialog footer button,
.mail2 .mail2-dialog footer a,
.mail2 .mail2-vzdalene button,
.mail2 .mail2-compose,
.mail2 .mail2-rychla-lista button,
.mail2 .mail2-ai .mail2-ai-btn,
.mail2 .mail2-ai .mail2-ai-vic,
.mail2 .mail2-vzorek .mail2-vzorek-akce button:not([aria-pressed="true"]),
.mail2 .mail2-hlidac .mail2-hlidac-radek button.mail2-hlidac-tlacitko,
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-tlacitko,
.mail2 .mail2-hlidac-ctecka button.mail2-hlidac-vice,
.mail2 .mail2-prilohy-navrh button.mail2-prilohy-tlacitko { font-weight: 600; }
.mail2 .mail2-reader-actions.mail2-reader-actions button[data-action="reply"],
.mail2 .mail2-ai.mail2-ai .mail2-ai-btn.is-primary,
.mail2 .mail2-trideni.mail2-trideni .mail2-trideni-zalozit,
.mail2 .mail2-hlidac-ctecka.mail2-hlidac-ctecka button.mail2-hlidac-tlacitko.is-hlavni,
.mail2 .mail2-prilohy-navrh.mail2-prilohy-navrh button.mail2-prilohy-tlacitko.is-hlavni,
.mail2 .mail2-body .mail2-sifra-hlaska.mail2-sifra-hlaska .mail2-sifra-znovu { font-weight: 600; }

/* ── Hover řádku zprávy (6.3.3, rozhodnutí majitele 26. 10. 2026) ─────
   Svěží modrá varianta A jako v celé appce (tokeny --radek-hover,
   --radek-hover-pruh v theme.css, společný blok v components.css).
   Dřív šedé --bg-hover: pod myší skoro splývalo s vybraným řádkem a na
   řádku s hvězdičkou (žlutý = označená zpráva, ZÁMĚRNĚ) hover vůbec
   nebyl poznat. Teď:
     · běžný řádek / karta → podklad --radek-hover + 3px modrý proužek;
     · řádek s VLASTNÍM podkladem (hvězdička, vybraná, otevřená,
       podezřelá, nepřečtená karta) se modře NEPŘEBARVÍ — jeho barva se
       ztmaví vrstvou --radek-ztmav (5 % černé = color-mix 95 % + černá)
       a dostane tentýž modrý proužek. Vrstva ztmaví SKUTEČNOU barvu
       řádku, ať o ní rozhodla kterákoli kombinace stavů výš.
   Tabulka `.mail2-tr` nepřečtenou nebarví (jen tučné písmo), proto je
   pro ni běžným řádkem. Selektory s `.mail2` navíc a blok na KONCI
   souboru — přebíjí stavová pravidla výš (kolize specificity,
   CLAUDE.md). Hlídá frontend/test/test_vzhled_hover_radku_ui.py. */
.mail2 .mail2-tr:not(.is-oznacena, .is-vybrana, .is-active, .is-podezrela):hover,
.mail2 .mail2-message:not(.is-oznacena, .is-vybrana, .is-active, .is-podezrela, .is-unread):hover {
  background-color: var(--radek-hover);
  box-shadow: inset 3px 0 0 var(--radek-hover-pruh);
}
.mail2 .mail2-tr:is(.is-oznacena, .is-vybrana, .is-active, .is-podezrela):hover,
.mail2 .mail2-message:is(.is-oznacena, .is-vybrana, .is-active, .is-podezrela, .is-unread):hover {
  background-image: var(--radek-ztmav);
  box-shadow: inset 3px 0 0 var(--radek-hover-pruh);
}
