  :root{
    /* Výška lišty napříč weby (v4 sjednocení, 2026-08-23). */
    --vyska-listy:24px;
    
    --bg:#031a2a; --panel:#092f46; --panel2:#0f4663; --border:#155d80;
    --text:#c7e9f4; --muted:rgba(199,233,244,.58);
    --admin-blue-primary:#1f7da5; --admin-blue-light:#3ca4c5; --admin-blue-lightest:#8ed2e8;
    --admin-sw-collapsed:62px; --admin-sw-expanded:240px; --admin-speed:.3s;

    --gold:#d4af5a; --gold-dim:#8a713a; --ok:#4caf7d;
    --editable-outline: rgba(60,164,197,.55);

    --site-accent:var(--site-ink); --site-accent-ink:var(--site-bg);
    --site-bg:#fbfbfa; --site-bg-alt:#f3f3f1; --site-card-bg:#ffffff;
    --site-ink:#15150f; --site-text:#2b2b26; --site-muted:#6f6f68;
    --site-border:rgba(21,21,15,.11); --site-radius:9px;
    /* Boční mezera kontejnerů webu (2026-08-20) - jedno místo pro všech
       deset výskytů formule `min(72rem, 100% - X)`, včetně `> *` kontejnerů
       celoplošných sekcí (`#vyhody-summary-section`, `.manifesto`, `.alt`,
       `.brand-cta`), které mají `width:auto` a odsazení řeší až dítě.
       Přepisuje se v pásmu 901-1340 px, viz `#preview` níž. */
    --site-gutter:3rem;
    --site-shadow:0 20px 45px -25px rgba(21,21,15,.22);
    --site-font-display:'Inter',sans-serif;
    --admin-wash: rgba(31,125,165,.07);

  }
  *{box-sizing:border-box;}
  /* Self-hosted Inter variable font (2026-08-11, PO: "potřebujeme
     používat písmo Inter nejen pro logo... i na těchto webech" - sjednoceno
     s blueorcawebsites.eu, stejný zdroj, stejná technika: jeden proměnný
     soubor pokrývá řezy 300-800, dva soubory jen kvůli unicode-range
     (latin / latin-ext pro českou diakritiku). Nahrazuje systémový font
     stack, který spolehlivě nerenderoval lehčí (300) řez. */
  @font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url('fonts/inter-latin-ext.woff2?v=20260825') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  @font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
    src: url('fonts/inter-latin.woff2?v=20260825') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* overflow-anchor:none (2026-08-11, scroll choreografie topnavu) -
     sjednoceno s audit.blueorcawebsites.eu, viz komentář tam. */
  html{overflow-x:hidden;touch-action:manipulation;overflow-anchor:none;}
  body{margin:0;overflow-x:hidden;max-width:100vw;touch-action:manipulation;font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);}
  a{color:inherit;}

  /* Lišta napříč weby BlueOrca — sdílený blok napříč weby BlueOrca. Obsah,
     markup a barevné varianty zdokumentované v
     library/standards/network-bar.md (workspace repo engine-ai,
     PO 2026-08-10). Tenhle soubor je jedna instance.

     Normal flow, ne fixed (2026-08-11, PO: „na adminu se nezasouvá ta
     lišta" — dřív `position:fixed` mimo #preview, jedinou scrollovatelnou
     oblast stránky, takže neměla co by ji odscrollovalo). Přesunuta v HTML
     dovnitř `#preview`, jako první dítě před `.site-topnav`, přesně jako
     na audit/metrics - scrolluje pryč čistě prohlížečovým scrollem, žádný
     JS. `left`/`z-index` odpadly - lišta je normal-flow uvnitř
     `#preview`, který od 2026-08-20 sahá přes celé okno (viz `#content`
     níž), takže její levý okraj překryje sidebar sám; sidebar
     (fixed, z-index 5010) zůstává nad normal-flow obsahem automaticky, i
     bez z-index závodu (PO: „admin má být nad vším i nad lištou"). Barvy
     sdílené s panelem admin dema (--panel2, --border, --text, --bg,
     --admin-blue-lightest).

     `!important` všude (PO: „styly lišty by měly být important
     a nepřepisovatelné webem"). Aktivní tab: Admin. */
  /* `position:fixed` (2026-08-23, v4 sjednocení): lišta a hlavička tvoří
     JEDEN blok posouvaný jedním sdíleným `transform` (script.js). Ruší
     normal-flow režim z 2026-08-11 — dokud byla lišta součástí toku,
     posouval ji prohlížeč a hlavičku JS, takže se při scrollu nahoru
     hlavička vracela uprostřed stránky sama, bez lišty (PO 2026-08-23).
     Sidebar zůstává nad ní i tak (fixed, z-index 5010) — PO: „admin má
     být nad vším i nad lištou". Jejích 24 px v toku dorovnává
     `#preview{padding-top}` níž. */
  .network-bar{background:var(--panel2) !important;position:fixed !important;top:0 !important;left:0 !important;right:0 !important;z-index:40 !important;will-change:transform !important;}
  .network-bar.je-svetla{background:#eaf4f8 !important;}
  /* Sjednoceno s audit/metrics (PO 2026-08-11: „admin taky sjednotit, pokud
     to není blízko" - bylo 1200px/3rem, teď stejná fluidní formule jako
     zbytek layoutu níž, viz .site-topnav-inner/.site-section). */
  /* Celá lišta scrolluje jako JEDEN pruh, ne jen produkty (2026-09-02, port
     z metrics.blueorcawebsites.eu po PO potvrzení - viz network-bar.md).
     Když se vejde: justify-content:space-between + .network-contact's
     order:-1;margin-right:auto níž drží kontakt vlevo, brand+produkty
     vpravo. Když ne: nic nesmršťuje (flex:none všude), celý řádek jde
     jako jeden celek do overflow-x:auto na .network-inner. */
  .network-inner{display:flex !important;align-items:stretch !important;justify-content:space-between !important;gap:0 !important;height:24px !important;width:min(72rem, 100% - var(--site-gutter)) !important;margin-inline:auto !important;line-height:1 !important;text-shadow:none !important;overflow-x:auto !important;-webkit-overflow-scrolling:touch !important;scrollbar-width:none !important;}
  .network-inner::-webkit-scrollbar{display:none !important;}
  /* Šipky "dá se to posunout" (2026-09-02, port z metrics) - sedí v gutteru
     mezi .network-bar (edge-to-edge) a .network-inner (width:min() container).
     Čistě vizuální nápověda (pointer-events:none), JS přepíná viditelnost
     podle .ma-scroll-vlevo/.ma-scroll-vpravo na .network-bar. */
  .network-edge{position:absolute !important;top:0 !important;bottom:0 !important;width:24px !important;display:none !important;align-items:center !important;z-index:2 !important;color:rgba(224,240,246,.55) !important;pointer-events:none !important;}
  .network-edge-vlevo{left:0 !important;justify-content:flex-start !important;padding-left:4px !important;background:linear-gradient(to right,var(--panel2) 40%,transparent) !important;}
  .network-edge-vpravo{right:0 !important;justify-content:flex-end !important;padding-right:4px !important;background:linear-gradient(to left,var(--panel2) 40%,transparent) !important;}
  .je-svetla .network-edge{color:rgba(15,70,99,.5) !important;}
  .je-svetla .network-edge-vlevo{background:linear-gradient(to right,#eaf4f8 40%,transparent) !important;}
  .je-svetla .network-edge-vpravo{background:linear-gradient(to left,#eaf4f8 40%,transparent) !important;}
  .network-bar.ma-scroll-vlevo .network-edge-vlevo,
  .network-bar.ma-scroll-vpravo .network-edge-vpravo{display:flex !important;}
  /* Preventivní reset (2026-08-11, PO): .network-scroll je reálný <nav> tag,
     ohrožený holými selektory bez třídy (metrics mělo `nav{padding:1rem 0;
     background:…}`). Cíleně, ne all:unset - to by smazalo i geometrii SVG. */
  .network-scroll{
    position:static !important;top:auto !important;z-index:auto !important;
    margin:0 !important;padding:0 !important;border:0 !important;
    background:none !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
    box-shadow:none !important;
    display:flex !important;align-items:stretch !important;flex:none !important;
  }
  .network-brand{border:0 !important;margin:0 !important;background:none !important;flex:none !important;display:flex !important;align-items:center !important;padding:0 .5rem !important;text-decoration:none !important;transition:background 120ms ease !important;}
  /* Kanonicky (audit) je brand PRVNÍ prvek lišty - záporný margin-left ho
     táhl na optický okraj containeru. Na admin/metrics je ale první
     .network-contact (order:-1), brand sedí uprostřed řady hned za
     kontaktem - stejný záporný margin je stahoval k sobě skoro bez mezery
     v "nevejde se" stavu (PO 2026-09-02, port fixu z metrics). Kladný
     odstup místo toho. */
  .network-brand{margin-left:.4rem !important;}
  .network-brand:hover,.network-brand:focus-visible{background:rgba(255,255,255,.1) !important;}
  .je-svetla .network-brand:hover,.je-svetla .network-brand:focus-visible{background:rgba(15,70,99,.05) !important;}
  .network-brand-wordmark{display:block !important;height:10px !important;width:auto !important;border:0 !important;margin:0 !important;max-width:none !important;}
  .je-svetla .network-brand-wordmark path{fill:#0f4663 !important;opacity:.82;}
  .network-brand-icon{display:none !important;height:19px !important;width:auto !important;border:0 !important;margin:0 !important;max-width:none !important;filter:drop-shadow(0 0 3px rgba(60,164,197,.45)) !important;}
  .je-svetla .network-brand-icon{filter:drop-shadow(0 0 3px rgba(15,70,99,.35)) !important;}
  .network-sep{flex:none !important;align-self:center !important;color:rgba(255,255,255,.35) !important;display:block !important;fill:none !important;stroke:currentColor !important;stroke-width:2.5 !important;stroke-linecap:round !important;stroke-linejoin:round !important;}
  .je-svetla .network-sep{color:rgba(15,70,99,.35) !important;}
  .network-link{border:0 !important;margin:0 !important;background:none !important;flex:none !important;display:flex !important;align-items:center !important;white-space:nowrap !important;padding:0 .65rem !important;font-size:.72rem !important;font-weight:400 !important;color:var(--text) !important;text-decoration:none !important;transition:background 120ms ease,color 120ms ease !important;}
  .network-link:hover,.network-link:focus-visible{background:rgba(255,255,255,.1) !important;}
  .network-link.je-aktivni,.network-link.je-aktivni:hover,.network-link.je-aktivni:focus-visible{background:var(--bg) !important;color:var(--admin-blue-lightest) !important;}
  .je-svetla .network-link{color:#0f4663 !important;}
  .je-svetla .network-link:hover,.je-svetla .network-link:focus-visible{background:rgba(15,70,99,.05) !important;}
  .je-svetla .network-link.je-aktivni,.je-svetla .network-link.je-aktivni:hover,.je-svetla .network-link.je-aktivni:focus-visible{background:#fff !important;color:#1f7da5 !important;}
  /* Webolution odkaz odstraněn z lišty (PO 2026-08-11, čtvrté kolo). */

  /* PROTOTYP 2026-08-11: přímý kontakt (tel/mailto) na pravém okraji lišty,
     tam kde dřív bydlelo Webolution — sjednoceno s audit.blueorcawebsites.eu. */
  .network-contact{flex:none !important;display:flex !important;align-items:stretch !important;order:-1 !important;margin-right:auto !important;}
  .network-contact-link{flex:none !important;display:flex !important;align-items:center !important;gap:.35rem !important;padding:0 .6rem !important;margin:0 !important;border:0 !important;color:var(--text) !important;text-decoration:none !important;transition:background 120ms ease !important;}
  .network-contact-link:hover,.network-contact-link:focus-visible{background:rgba(255,255,255,.1) !important;}
  .je-svetla .network-contact-link{color:#0f4663 !important;}
  .je-svetla .network-contact-link:hover,.je-svetla .network-contact-link:focus-visible{background:rgba(15,70,99,.05) !important;}
  .network-contact-link svg{display:block !important;fill:none !important;stroke:currentColor !important;stroke-width:2 !important;stroke-linecap:round !important;stroke-linejoin:round !important;position:relative !important;top:-1px !important;}
  /* Sociální ikony (2026-09-02, port z metrics) jsou plné brandové značky,
     ne liniové jako tel/mailto - přebíjí zděděné stroke pravidlo výš. */
  .network-social-link svg{fill:currentColor !important;stroke:none !important;top:0 !important;}
  /* :last-child (LinkedIn) záporný margin ODSTRANĚN 2026-09-02 (port z metrics) -
     kontakt NENÍ poslední skupina (order:-1), LinkedIn je uprostřed řady hned
     před brandem, ne na pravém okraji containeru - stahoval oba k sobě skoro
     bez mezery. */
  .network-contact-text{display:block !important;font-size:.72rem !important;font-weight:500 !important;white-space:nowrap !important;}
  @media (max-width:896px){
    .network-contact-text{display:none !important;}
    .network-contact-link{padding:0 .5rem !important;}
    .network-brand-wordmark{display:none !important;}
    .network-brand-icon{display:block !important;}
  }
  @media (max-width:416px){
    .network-sep{display:none !important;}
  }

  /* top:0/100vh beze změny (2026-08-11, PO: „admin má být nad vším i nad
     lištou, přes lištu") - sidebar sahá až k vršku obrazovky jako skutečná
     appka, lišta se řeší z-indexem níž (admin vyhrává), ne odsazením. */
  #sidebar{position:fixed;left:0;top:0;height:100vh;width:var(--admin-sw-collapsed);background:var(--panel);border-right:1px solid var(--border);z-index:5010;overflow:hidden;display:flex;flex-direction:column;transition:width var(--admin-speed) ease;}
  #sidebar.expanded{width:var(--admin-sw-expanded);box-shadow:6px 0 24px rgba(0,0,0,.35);}

  .sidebar-header{display:flex;flex-direction:column;gap:9px;padding:11px;border-bottom:1px solid var(--border);flex:0 0 auto;}
  .sidebar-header-top{display:flex;align-items:center;gap:12px;height:38px;}
  .sidebar-logo-badge{width:38px;height:38px;min-width:38px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .sidebar-logo-badge svg{width:100%;height:100%;}
  .sidebar-brand{color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;opacity:0;width:0;overflow:hidden;transition:opacity var(--admin-speed) ease,width var(--admin-speed) ease;}
  #sidebar.expanded .sidebar-brand{opacity:1;width:auto;}
  .sidebar-page-select{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:#fff;color:#1a1a1a;border:1px solid #d5d9e0;border-radius:6px;padding:.45rem .65rem;font-size:.84rem;font-weight:500;cursor:pointer;overflow:hidden;white-space:nowrap;}
  .sidebar-page-select span{overflow:hidden;text-overflow:clip;}
  .sidebar-page-select svg{width:11px;height:11px;flex-shrink:0;color:#6b7280;}

  .sidebar-menu{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;}
  .sidebar-menu::-webkit-scrollbar{width:6px;}
  .sidebar-menu::-webkit-scrollbar-track{background:var(--bg);}
  .sidebar-menu::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}

  .sidebar-section{padding:3px 1px;border-bottom:1px solid var(--border);}
  .sidebar-section:last-child{border-bottom:none;}
  .sidebar-heading{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px 12px 3px;white-space:nowrap;overflow:hidden;max-height:30px;opacity:0;visibility:hidden;transition:opacity var(--admin-speed) ease,visibility var(--admin-speed) ease;}
  #sidebar.expanded .sidebar-heading{opacity:1;visibility:visible;}

  .sidebar-item{display:flex;align-items:center;min-height:46px;color:var(--text);cursor:pointer;white-space:nowrap;position:relative;transition:background-color .2s ease,color .2s ease;}
  .sidebar-item:hover{background:var(--panel2);color:#fff;}
  .sidebar-item.offcanvas-active{background:rgba(31,125,165,.22);color:#fff;border-left:3px solid var(--admin-blue-light);}
  .sidebar-item.offcanvas-active::after{content:'';position:absolute;top:0;bottom:0;right:-1px;width:2px;background:rgba(31,125,165,.22);}
  .sidebar-item-icon{width:60px;min-width:60px;height:46px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .sidebar-item-icon svg{width:19px;height:19px;}
  .sidebar-item-text{opacity:0;width:0;overflow:hidden;text-overflow:ellipsis;font-size:.86rem;transition:opacity var(--admin-speed) ease,width var(--admin-speed) ease;}
  #sidebar.expanded .sidebar-item-text{opacity:1;width:auto;flex:1;}
  #sidebar.expanded .sidebar-item--nested .sidebar-item-text{padding-left:14px;}

  .sidebar-footer{border-top:1px solid var(--border);flex:0 0 auto;}

  .sidebar-user{position:relative;display:flex;align-items:center;gap:10px;padding:9px 11px;border-top:1px solid var(--border);cursor:pointer;min-height:46px;}
  .sidebar-user:hover{background:var(--panel2);}
  .sidebar-user-avatar{width:30px;height:30px;min-width:30px;border-radius:50%;background:var(--admin-blue-primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .sidebar-user-avatar svg{width:16px;height:16px;}
  .sidebar-user-info{display:flex;flex-direction:column;opacity:0;width:0;overflow:hidden;white-space:nowrap;transition:opacity var(--admin-speed) ease,width var(--admin-speed) ease;}
  #sidebar.expanded .sidebar-user-info{opacity:1;width:auto;}
  .sidebar-user-name{color:#fff;font-size:.85rem;font-weight:600;line-height:1.3;}
  .sidebar-user-role-badge{display:inline-block;background:var(--admin-blue-primary);color:#fff;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.05rem .4rem;border-radius:4px;margin-top:1px;}
  .sidebar-user-chevron{margin-left:auto;opacity:0;width:0;overflow:hidden;transition:opacity var(--admin-speed) ease,width var(--admin-speed) ease;color:var(--muted);}
  #sidebar.expanded .sidebar-user-chevron{opacity:1;width:14px;}
  .sidebar-user-chevron svg{width:12px;height:12px;transition:transform .15s ease;}
  .sidebar-user.menu-open .sidebar-user-chevron svg{transform:rotate(180deg);}

  .user-menu{position:absolute;left:0;bottom:100%;width:220px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.4);padding:.4rem;margin-bottom:6px;display:none;z-index:1090;}
  .user-menu.active{display:block;}
  .user-menu-heading{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.5rem .6rem .3rem;}
  .user-menu-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:6px;color:var(--text);font-size:.85rem;cursor:pointer;}
  .user-menu-item:hover{background:var(--panel);color:#fff;}
  .user-menu-item.active-role{color:var(--admin-blue-light);}
  .user-menu-item svg{width:15px;height:15px;flex-shrink:0;}
  .user-menu-divider{height:1px;background:var(--border);margin:.35rem .2rem;}

  /* BEZ margin-left (2026-08-20, PO: „content webu nemá být posunutý o lištu,
     lišta překrývá přece web zindexem, tak to není třeba, jen máme web
     a administrací nakřivo"). Sidebar je `position:fixed;z-index:5010`, tedy
     overlay - web pod ním má být plné plátno okna, ne sloupec odsazený
     o šířku sidebaru. Odpovídá reálné administraci, kde inline editace
     překrývá frontend jen `position:fixed` prvky (`assets/css/cms-inject.css`
     v blueorca-admin) a web se nikdy nezužuje. */
  #content{margin-left:0;height:100vh;display:flex;flex-direction:column;overflow:hidden;}

  /* Pásmo, kde by centrovaný kontejner webu zajel pod 62px sidebar
     (2026-08-20, PO: „900-1300px by tam ten padding být měl, ale asi z obou
     stran ať není web nakřivo"). Přirozená mezera kontejneru je 24 px, takže
     do ~1340 px okna nestačí. Řešeno SYMETRICKY - `--site-gutter` naroste
     o 2× šířku sidebaru, kontejner tím zůstane na svislé ose okna a jen se
     zúží; kdyby se odsazovala jen levá strana, web by se posunul mimo osu.
     Celoplošná pozadí (hero, patička, sekce alt) se nemění - proměnná sedí
     na kontejnerech, ne na `#preview`, takže dál krvácejí do plné šířky.
     Horní hranice 1340 px je bod, kde kontejner narazí na strop 72rem
     a obě větve na sebe spojitě navazují (86,5 px vs. 87 px od kraje). */
  @media (min-width:901px) and (max-width:1340px){
    #preview{--site-gutter:calc(3rem + 2 * var(--admin-sw-collapsed));}
  }

  /* Tečkovaný vzor drží celé plátno webu, ne jen hero - jinak ho podstránky neměly. */
  /* padding-top = výška lišty, kterou lišta odevzdala přechodem na `fixed`
     (2026-08-23, v4). Hlavička zůstává `sticky` v toku, ta si své místo
     drží sama. */
  #preview{padding-top:var(--vyska-listy);flex:1 1 auto;overflow-y:auto;overflow-anchor:none;background-color:var(--site-bg);background-image:radial-gradient(rgba(21,21,15,.08) 1px, transparent 1px);background-size:22px 22px;color:var(--site-ink);}

  /* Obecné přepínače textu podle vstupu - kdekoli se návod na ovládání liší myš/dotyk (klik vs. podržení, tažení vs. šipky). */
  .dv-touch{display:none;}
  @media (hover:none){
    .dv-desktop{display:none;}
    .dv-touch{display:inline;}
  }

  /* top:0, ne 24px (2026-08-11, druhá korekce - lišta je teď normal-flow
     první dítě `#preview` PŘED `.site-topnav`, ne fixed overlay vedle něj,
     takže 24px mezera vzniká přirozeně z jejího vlastního místa v toku,
     přesně jako na audit/metrics; `top:24px` byl jen dřívější kompenzační
     hack pro fixed lištu). BEZ border-top (2026-08-11, druhé kolo,
     PO: „border nesmí oddělovat aktivní tab od layoutu") - zkoušená maska
     přes ::after na aktivním tabu nešla zprovoznit (.network-scroll má
     overflow-x:auto, co si dle specifikace vynutí i overflow-y:auto -
     cokoli přesahuje pod 24px lišty se prostě usekne, bez JS nejde obejít).
     Nechává se jen barevná návaznost (aktivní tab = barva webu pod ním),
     stejně jako na audit/metrics/blog. */
  /* Scroll choreografie (2026-08-11, sjednoceno s audit.blueorcawebsites.eu -
     třetí korekce): hlavička se zasouvá/vysouvá čistě 1:1 se scrollem přes
     `transform:translateY()` (script.js), žádná CSS transition, žádný
     JS timing, žádný sticky-`top` trik - `.site-topnav` zůstává natvrdo
     `position:sticky;top:24px`, nikdy se netoggluje. */
  /* `top:0` zůstává, ale znamená teď „těsně pod lištou" (2026-08-23, v4):
     `#preview` má padding-top ve výšce lišty a lepivá pozice se uvnitř
     scrollovatelného kontejneru počítá od jeho OBSAHOVÉ hrany, tedy až za
     paddingem (ověřeno měřením — `top:24px` by hlavičku posadilo na 48 px).
     Blok pak jede jako celek: při odkrytí se objeví nejdřív lišta, pak
     hlavička. */
  .site-topnav{position:sticky;top:0;z-index:5;background:var(--site-card-bg);border-bottom:1px solid var(--site-border);overflow-anchor:none;}
  /* Sjednoceno s audit/metrics (PO 2026-08-11), viz .network-inner výš. */
  .site-topnav-inner{width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-block:1rem;transition:padding .25s ease;}
  /* margin-left:auto nahrazuje dřívější `justify-content:space-between`
     na rodiči (2026-08-11, páté kolo, PO: „admin nemá vpravo od menu
     tlačítko blueorca!") - `.site-topnav-cta` (níž) je teď TŘETÍ
     sourozenec vedle `.site-brand-group`/`.site-nav-wrap`, se
     space-between by dostal vlastní mezeru na obě strany místo aby se
     lepil hned za menu. Stejný trik jako `.site-menu{margin-left:auto}`
     na auditu - group (menu + CTA) se přisune vpravo jako celek, `gap`
     dá rozestup uvnitř. */
  .site-nav-wrap{margin-left:auto;}
  /* Compact stav po scrollu (2026-08-11, sjednoceno s audit/metrics -
     `.site-nav--compact .nav-inner{padding:.4rem 0}`) - admin dřív
     hlavičku jen skrýval/odkrýval, nezmenšoval. */
  .site-topnav--compact .site-topnav-inner{padding-block:.4rem;}
  /* Utlumené animace (v4 sjednocení, 2026-08-23): blok se neschovává vůbec
     (řeší script.js) a velikost se mění skokem, ne přechodem. */
  @media (prefers-reduced-motion: reduce){
    .site-topnav-inner{transition:none;}
  }

  /* Záporný margin ruší vlastní padding wordmarku, ať kosatka sedí na
     optickém okraji containeru stejně jako zbytek obsahu (2026-08-11, PO:
     „i orca v logu samotná musí být na optickém okraji layoutu") - stejný
     trik jako u brandu v liště. */
  .site-brand-group > .site-wordmark:first-child{margin-left:-.15rem;}
  /* Svislý padding zrušen (2026-08-11) - vertikální dech teď dává
     `.site-topnav-inner{padding-block:1rem}` stejně jako u audit/metrics;
     dvojitý padding tlačil výšku hlavičky výrazně nad sjednocených 85px. */
  .site-topnav .site-wordmark{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;font-family:inherit;padding:0 .15rem;cursor:pointer;text-align:left;}
  /* Velikost kosatky natvrdo 52×52 (2026-08-11, druhé kolo, PO: „všechny
     kosatky v logu mají 52×52, admin má 52×55 a opticky vypadá menší") -
     dřívější 52×55 (dopočítané z poměru stran vlastního SVG, viewBox
     750×800) dodržovalo aspect ratio zdrojového artworku, ale proti
     tvrdě 52×52 ořezaným viewBoxům audit/blog/metrics působilo menší.
     Čtverec přebíjí poměr stran SVG (lehké zploštění), shodná optická
     velikost s rodinou má přednost před 1:1 věrností zdrojového artworku. */
  .site-logo-icon{width:52px;height:52px;flex-shrink:0;}
  .site-logo-icon svg{width:100%;height:100%;display:block;}
  .site-logo-icon .color1{fill:#061824;}
  .site-logo-icon .color2{fill:#0b2a3f;}
  .site-logo-icon .color3{fill:#0f4a6b;}
  .site-logo-icon .color4{fill:#1f7fa6;}
  .site-logo-icon .color5{fill:#4fc3dd;}
  .site-logo-icon .color6{fill:#bdefff;}
  .site-wordmark-col{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;line-height:1.15;}
  .site-wordmark-text{display:flex;align-items:center;gap:.4rem;font-family:'Inter',sans-serif;font-size:1.15rem;font-weight:300;letter-spacing:-.005em;color:var(--site-muted);}
  .site-wordmark-text strong{font-weight:800;letter-spacing:-.01em;color:var(--site-ink);}
  /* Řezy 800 (BlueOrca) / 300 (Admin) sjednoceny s audit/blog (2026-08-11,
     PO: "sjednotit logo řezy 800 a 300") - dřív 600, Inter variabilní font
     teď zvládá skutečnou 300 bez fallbacku na 400. */
  .site-wordmark-admin{color:var(--admin-blue-primary);font-weight:300;}
  .site-topnav .site-wordmark:hover .site-wordmark-text{color:var(--site-accent);}
  .site-topnav .site-wordmark:hover .site-wordmark-text strong{color:var(--site-accent);}
  .site-logo-demo{font-size:.6rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--site-accent);border:1px solid rgba(21,21,15,.4);border-radius:4px;padding:.15rem .35rem;flex-shrink:0;}

  /* 600 místo 700 (2026-08-11, druhé kolo, PO: „title pod logem je nějak
     tučně") - sjednoceno s `.nav-brand-sub` na auditu (font-weight:600). */
  .site-brand-sub{display:block;font-family:'Inter',sans-serif;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--site-muted);text-align:left;}
  .site-topnav .site-wordmark:hover .site-brand-sub{color:var(--site-accent);}
  /* align-self:stretch (2026-08-11, sjednocení menu s auditem, PO: „menu
     jako v auditu") - `.site-nav-wrap` musí sáhnout na celou výšku
     `.site-topnav-inner` (přebíjí jeho vlastní `align-items:center`), ať
     podtržení aktivní položky níž dosáhne až na spodní hranu hlavičky.
     Stejný trik jako `.site-menu`/`.site-menu-link` na auditu. */
  .site-nav-wrap{position:relative;display:flex;align-items:center;gap:.4rem;align-self:stretch;}

  .site-nav-toggle{display:none;background:none;border:1px solid var(--site-border);border-radius:4px;width:34px;height:34px;align-items:center;justify-content:center;color:var(--site-ink);cursor:pointer;flex-shrink:0;}
  .site-nav-toggle svg{width:18px;height:18px;}
  .site-topnav .site-nav-items{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center;align-self:stretch;}
  .nav-item-wrap{position:relative;display:inline-flex;align-self:stretch;}
  .site-topnav .site-nav-items span.nav-pill{display:flex;align-items:center;height:100%;position:relative;padding:.4rem .85rem;border-radius:4px;font-size:.84rem;color:var(--site-muted);cursor:pointer;transition:background-color .15s,color .15s;}
  .site-topnav .site-nav-items span.nav-pill:hover{background:rgba(21,21,15,.06);color:var(--site-ink);}
  /* Podtržení dole místo vyplněného pillu (2026-08-11, PO: „menu jako v
     auditu - aktivní podtržený dole") - nahrazuje dřívější plnou výplň.
     `bottom` bleedne do paddingu `.site-topnav-inner` stejnou hodnotou
     (1rem plný stav / .4rem compact) + 2px navíc zvedá linku nad hranu
     paddingu, ať vznikne malá mezera k borderu `.site-topnav` (2026-08-11,
     druhé kolo, PO: „border má být o pár px výše, ať je pod ním mezírka";
     doladěno čtvrté kolo, PO: „o 1px níže" - +3px → +2px). Stejný
     mechanismus jako `.site-menu-link--current::before` na auditu. */
  .site-topnav .site-nav-items span.nav-pill.active-page{background:none;color:var(--admin-blue-primary);}
  /* left/right:.85rem (2026-08-11, páté kolo, PO: „aktivní border má být
     stejně široký jako text odkazu, ale na adminu je širší o padding") -
     `left:0;right:0` sahalo přes celý padded pill box (`.4rem .85rem`),
     ne jen přes text. Audit tenhle problém nemá, protože `.site-menu-link`
     nemá vlastní horizontal padding (mezery dělá `gap` mezi položkami). */
  .site-topnav .site-nav-items span.nav-pill.active-page::before{content:'';position:absolute;left:.85rem;right:.85rem;bottom:calc(-1rem + 2px);height:3px;background:var(--admin-blue-primary);transition:bottom .25s ease;}
  .site-topnav--compact .site-nav-items span.nav-pill.active-page::before{bottom:calc(-.4rem + 2px);}

  .nav-item-wrap .menu-item-actions{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:6px;display:flex;gap:3px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:7;}
  .nav-item-wrap:hover .menu-item-actions, .nav-item-wrap .menu-item-actions:focus-within, .nav-item-wrap.touch-active .menu-item-actions{opacity:1;pointer-events:auto;}
  .menu-item-actions .site-drag-handle, .menu-item-actions .site-item-btn{width:22px;height:22px;border-radius:5px;}
  .menu-item-actions .site-drag-handle svg, .menu-item-actions .site-item-btn svg{width:12px;height:12px;}
  .nav-item-wrap .site-item-menu{position:absolute;top:calc(100% + 30px);left:50%;transform:translateX(-50%);}
  .nav-item-wrap.dragging{opacity:.4;}
  /* Vyjmuto z flex toku (2026-08-11, páté kolo, PO: „nesmí tam být
     fyzicky a skryté, zabírá prostor a je kvůli němu posunuté menu když
     není hovernuté") - `margin-left` z předchozího kola pořád rezervoval
     místo i s `opacity:0` (jen neviditelné, ne pryč z layoutu), takže se
     menu posouvalo o šířku tlačítka podle hover stavu. `position:absolute`
     vůči `.site-nav-wrap` (ten je `position:relative`) tlačítko úplně
     vyjme z flexu - menu teď drží stálou pozici u pravého okraje a
     tlačítko se jen překryje navrch při hoveru. `pointer-events:none`
     v klidovém stavu, ať neviditelné tlačítko neblokuje klik na to, co
     je pod ním (poslední položka menu). */
  .site-nav-add{position:absolute;right:0;top:50%;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity .15s;}
  .site-topnav:hover .site-nav-add, .site-nav-add:focus, .site-nav-wrap.touch-active .site-nav-add{opacity:1;pointer-events:auto;}
  
  .site-topnav-cta{flex-shrink:0;display:inline-flex;align-items:center;gap:.4rem;background:var(--admin-blue-primary);color:#fff;text-decoration:none;padding:.55rem 1.1rem;border-radius:8px;font-size:.84rem;font-weight:600;white-space:nowrap;transition:background-color .15s ease;}
  .site-topnav-cta:hover{background:var(--admin-blue-light);}

  .footer-col-menu{display:flex;flex-direction:column;}
  
  /* Nadpisy sloupců patičky musí sedět na jedné lince (PO 2026-07-29).
     Tlačítko "+" je 26 px vysoké, nadpis 16 px; s align-items:center hnalo
     tlačítko výšku řádku na 30 px a nadpis se v něm vycentroval o 7 px níž
     než ve sloupcích bez tlačítka (naměřeno: 596 / 603 / 603 / 596 px).
     Řešeno vyjmutím tlačítka z toku - řádek má teď výšku nadpisu, tlačítko
     zůstává plnohodnotně velké kvůli doteku a jen se vertikálně vystředí.
     margin-bottom sjednocen na .9rem, stejně jako má .footer-title ve
     sloupci bez hlavičky, aby i mezera pod nadpisem byla všude stejná. */
  .footer-col-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.9rem;padding-right:34px;}
  
  .site-footer .footer-col-head .footer-title{margin-bottom:0;}
  .footer-col-head-sub{margin-top:1.2rem;}
  .footer-menu-add{position:absolute;right:0;top:50%;transform:translateY(-50%);width:26px;height:26px;flex-shrink:0;background:rgba(60,164,197,.18);border-color:rgba(60,164,197,.35);opacity:0;transition:opacity .15s;}
  .footer-menu-add svg{width:13px;height:13px;}
  .footer-menu-add:hover{background:var(--admin-blue-primary);}
  .footer-col-head:hover .footer-menu-add, .footer-menu-add:focus{opacity:1;}
  .footer-col-head.touch-active .footer-menu-add{opacity:1;}
  .footer-menu-item{position:relative;display:flex;align-items:center;gap:.4rem;}
  .footer-menu-item.dragging{opacity:.4;}
  
  .footer-menu-item .menu-item-actions{position:absolute;top:50%;right:0;transform:translateY(-50%);display:flex;gap:3px;background:#3a3a37;padding:2px;border-radius:6px;opacity:0;transition:opacity .15s;}
  .footer-menu-item:hover .menu-item-actions, .footer-menu-item .menu-item-actions:focus-within, .footer-menu-item.touch-active .menu-item-actions{opacity:1;}
  .footer-menu-item .menu-item-actions .site-drag-handle, .footer-menu-item .menu-item-actions .site-item-btn{width:20px;height:20px;border-radius:5px;color:#a8a89f;background:rgba(255,255,255,.08);}
  .footer-menu-item .menu-item-actions .site-drag-handle svg, .footer-menu-item .menu-item-actions .site-item-btn svg{width:11px;height:11px;}
  .footer-menu-item .menu-item-actions .site-drag-handle:hover, .footer-menu-item .menu-item-actions .site-item-btn:hover{background:var(--admin-blue-primary);color:#fff;}
  .footer-menu-item .site-item-menu{position:absolute;top:calc(100% + 2px);right:0;}

  .site-hero{padding:4rem 0;text-align:left;max-height:calc(100vh - 58px);display:flex;align-items:center;}
  .hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}

  .hero-text{position:relative;}

  .hero-arrow-deco{position:absolute;top:44px;left:-108px;width:90px;height:auto;pointer-events:none;z-index:1;animation:hero-arrow-bounce 1.4s ease-in-out infinite;}
  @keyframes hero-arrow-bounce{0%,100%{transform:translateX(0);}50%{transform:translateX(-10px);}}
  /* Pod ~1400 px se šipka vlevo od nadpisu nevejde a admin lišta ji uřízne.
     Přesune se proto nad nadpis a otočí se, aby na něj ukazovala shora. */
  @media (max-width:1400px){
    .hero-arrow-deco{position:static;width:54px;margin:0 0 .5rem .2rem;animation:hero-arrow-bounce-down 1.4s ease-in-out infinite;}
  }
  @keyframes hero-arrow-bounce-down{0%,100%{transform:rotate(-90deg) translateX(0);}50%{transform:rotate(-90deg) translateX(-8px);}}
  /* Na mobilu (≤900 px) zůstává šipka v hero nad eyebrow a míří vzhůru
     k hamburgeru v liště (PO 2026-08-06). */
  @keyframes hero-arrow-bounce-up{0%,100%{transform:rotate(90deg) translateX(0);}50%{transform:rotate(90deg) translateX(-8px);}}

  .hero-text, .hero-actions{min-width:0;}
  .hero-text h1{font-family:var(--site-font-display);font-weight:650;letter-spacing:-.03em;font-size:2.5rem;line-height:1.08;color:var(--site-ink);margin:0 0 .6rem;}
  .hero-text p{color:var(--site-text);font-size:1.05rem;}
  .hero-actions{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:14px;padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--site-shadow);}

  .hero-actions-title{font-family:var(--site-font-display);font-weight:600;font-size:1.25rem;color:var(--site-ink);text-align:center;margin:0 0 .4rem;}

  .hero-actions-desc{font-size:.88rem;color:var(--site-muted);line-height:1.5;margin:0 0 1rem;text-align:center;}
  .hero-actions-note{margin:.8rem 0 0;}
  .navod-modal-trigger{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;margin-top:.9rem;background:none;border:none;padding:0;font-size:.85rem;font-weight:700;color:var(--admin-blue-primary);cursor:pointer;}
  .navod-modal-trigger:hover{text-decoration:underline;}
  
  .hero-action-btn{position:relative;overflow:hidden;display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;background:rgba(31,125,165,.07);border:1px solid rgba(31,125,165,.22);border-left:3px solid var(--admin-blue-primary);border-radius:10px;padding:.8rem 1.05rem;font-size:.95rem;font-weight:600;color:var(--site-ink);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease;}
  .hero-action-btn:hover{background:#fff;border-color:var(--admin-blue-primary);transform:translateX(4px);}

  .hero-action-btn-icon{position:relative;z-index:1;flex:0 0 auto;width:2.1rem;height:2.1rem;border-radius:8px;background:rgba(31,125,165,.14);color:var(--admin-blue-primary);display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
  .hero-action-btn-icon svg{width:1.1rem;height:1.1rem;}
  .hero-action-btn-icon:hover{background:rgba(31,125,165,.26);}
  .site-icon-slot.editable{cursor:pointer;}

  .hero-action-btn-fill{position:absolute;inset:0;width:0;background:rgba(255,255,255,.4);z-index:0;pointer-events:none;}
  .hero-action-btn.is-running .hero-action-btn-fill{animation:heroActionFill 14s cubic-bezier(.15,.6,.35,1) forwards;}
  .hero-action-btn.is-finishing .hero-action-btn-fill{width:100%;transition:width .2s ease;}
  @keyframes heroActionFill{0%{width:0%;}30%{width:55%;}100%{width:92%;}}
  .hero-action-btn-label{position:relative;z-index:1;}

  .hero-action-btn--suggested{background:rgba(31,125,165,.12);border-color:var(--admin-blue-primary);}
  .hero-action-btn--suggested:hover{border-color:var(--admin-blue-primary);}
  .hero-action-btn-badge{position:relative;z-index:1;flex:0 0 auto;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--admin-blue-primary);border-radius:999px;padding:.2rem .55rem;white-space:nowrap;}
  .hero-action-btn.is-running .hero-action-btn-badge, .hero-action-btn.is-done .hero-action-btn-badge{display:none;}
  .hero-action-btn-arrow{position:relative;z-index:1;margin-left:auto;flex:0 0 auto;color:var(--admin-blue-primary);font-weight:700;font-size:1.05rem;opacity:.5;transition:opacity .15s ease,transform .15s ease;}
  .hero-action-btn:hover .hero-action-btn-arrow{opacity:1;transform:translateX(2px);}
  .hero-action-btn.is-running .hero-action-btn-arrow, .hero-action-btn.is-done .hero-action-btn-arrow{display:none;}

  .hero-action-btn.is-running{background:var(--admin-blue-primary);border-color:var(--admin-blue-primary);color:#fff;}
  .hero-action-btn.is-running:hover{background:var(--admin-blue-primary);transform:none;}

  .hero-action-btn.is-running .hero-action-btn-icon{background:rgba(255,255,255,.22);color:#fff;}

  .hero-action-btn.is-done:not(.is-running){background:rgba(21,21,15,.03);border-color:var(--site-border);color:var(--site-muted);}
  .hero-action-btn.is-done:not(.is-running):hover{background:#fff;border-color:var(--admin-blue-primary);color:var(--site-ink);}
  .hero-action-btn.is-done:not(.is-running) .hero-action-btn-label::before{content:"✓ ";color:#2f9e63;font-weight:700;}
  .site-section{padding-top:3rem;padding-bottom:4.75rem;width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}
  #vyhody-summary-section{background:#fff;width:auto;max-width:none;border-top:1px solid var(--site-border);}
  #vyhody-summary-section > *{width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}
  /* Hint drží vlastní šířku, ne šířku sekce. */
  #vyhody-summary-section > .site-hint{max-width:900px;}

  .site-section > h2, .site-section > p{text-align:center;}

  .site-section > p{max-width:70ch;margin-left:auto;margin-right:auto;}
  /* Odlišená sekce je bílý pruh ohraničený vlasovou linkou nahoře i dole.
     Šedé mezisekce se nepoužívají - odlišení nese bílá plocha proti tečkovanému plátnu. */
  .site-section.alt{background:var(--site-card-bg);width:auto;max-width:none;border-top:1px solid var(--site-border);border-bottom:1px solid var(--site-border);}

  .site-section.alt > p{max-width:70ch;margin-left:auto;margin-right:auto;}

  .site-section.alt + .site-section.alt{border-top:none;}

  .site-section.manifesto{background:var(--site-ink);color:#fff;width:auto;max-width:none;text-align:center;}
  .site-section.manifesto > *{width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}
  .site-section.manifesto .section-eyebrow{color:rgba(255,255,255,.62);}
  .site-section.manifesto h2{color:#fff;font-size:1.5rem;max-width:680px;}

  .site-section.manifesto p{color:#fff;}
  .manifesto-quote{font-family:var(--site-font-display);font-weight:600;font-size:1.5rem;line-height:1.5;margin-top:1.4rem;max-width:640px;}
  .site-section.manifesto .manifesto-close{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.5);margin-top:1rem;}

  /* Sekce "Chcete takovou administraci i pro svůj web?" - stejné barvy/proměnné jako administrace, at čiší identitou BlueOrca. */
  .site-section.brand-cta{position:relative;overflow:hidden;background:var(--bg);width:auto;max-width:none;}
  .site-section.brand-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 22% 35%,rgba(60,164,197,.22),transparent 62%);pointer-events:none;}
  .brand-cta-inner > h2, .brand-cta-inner > p{text-align:center;}
  .brand-cta-inner > p{max-width:70ch;margin-left:auto;margin-right:auto;}
  .site-section.brand-cta h2.editable, .site-section.brand-cta > .brand-cta-inner > p.editable{color:#fff;}
  .site-section.brand-cta .service-card{background:rgba(9,47,70,.55);border:1px solid var(--border);border-radius:0;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
  .site-section.brand-cta .service-card h3{color:#fff;}
  .site-section.brand-cta .service-card p{color:var(--text);}
  .brand-cta-inner{position:relative;z-index:1;width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}
  .brand-cta-footer{text-align:center;margin-top:1.7rem;}
  .site-section.brand-cta .brand-cta-footer p{color:var(--text);margin:0 0 .9rem;}
  .site-section.brand-cta .brand-cta-btn-lg{font-size:1.05rem;font-weight:700;padding:.9rem 1.9rem;}
  .site-section.brand-cta .service-grid{position:relative;}
  .brand-cta-orca{position:absolute;top:50%;left:5rem;transform:translateY(-50%);width:clamp(320px,36vw,560px);height:auto;opacity:.94;pointer-events:none;z-index:0;filter:drop-shadow(0 18px 40px rgba(0,0,0,.35));}
  @media (max-width:900px){ .brand-cta-orca{left:50%;top:50%;transform:translate(-50%,-50%);width:min(160vw,640px);opacity:.2;} }
  .brand-cta-orca .color1{fill:#061824;}
  .brand-cta-orca .color2{fill:#0b2a3f;}
  .brand-cta-orca .color3{fill:#0f4a6b;}
  .brand-cta-orca .color4{fill:var(--admin-blue-primary);}
  .brand-cta-orca .color5{fill:var(--admin-blue-light);}
  .brand-cta-orca .color6{fill:var(--admin-blue-lightest);}
  .brand-cta-orca #brand-cta-tail{transform-origin:260px 560px;will-change:transform;animation:orcaTailSwim 3.2s ease-in-out infinite;}
  .brand-cta-orca #brand-cta-body{transform-origin:380px 520px;will-change:transform;animation:orcaBodySwim 3.2s ease-in-out infinite;}
  .brand-cta-orca #brand-cta-fin-left, .brand-cta-orca #brand-cta-fin-right{transform-box:fill-box;transform-origin:50% 50%;will-change:transform;animation:orcaFinFlap 3.2s ease-in-out infinite;}
  .brand-cta-orca #brand-cta-fin-left{animation-delay:.7s;}
  .brand-cta-orca #brand-cta-fin-right{animation-delay:.4s;transform-origin:50% 5%;}
  @keyframes orcaTailSwim{0%{transform:rotate(0deg);}50%{transform:rotate(10deg);}100%{transform:rotate(0deg);}}
  @keyframes orcaBodySwim{0%{transform:rotate(0deg);}50%{transform:rotate(3deg);}100%{transform:rotate(0deg);}}
  @keyframes orcaFinFlap{0%{transform:rotate(0deg);}40%{transform:rotate(-5deg);}70%{transform:rotate(1deg);}100%{transform:rotate(0deg);}}
  @media (max-width:900px), (prefers-reduced-motion: reduce){
    .brand-cta-orca #brand-cta-tail, .brand-cta-orca #brand-cta-body, .brand-cta-orca #brand-cta-fin-left, .brand-cta-orca #brand-cta-fin-right{animation:none;will-change:auto;}
  }

  .check-list{list-style:none;margin:1rem auto 1.5rem;padding:0;max-width:520px;display:flex;flex-direction:column;gap:.5rem;text-align:left;}
  .check-list li{position:relative;padding-left:1.6rem;font-size:.94rem;color:var(--site-text);line-height:1.5;}
  .check-list li::before{content:'✅';position:absolute;left:0;top:0;font-size:.85rem;}

  .check-list-cols{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;max-width:820px;margin:1.2rem auto 1.5rem;text-align:left;}
  .check-list-col p{margin:0 0 .7rem;text-align:left;}
  .check-list-col .check-list{margin:0;max-width:none;}
  @media (max-width:640px){ .check-list-cols{grid-template-columns:1fr;gap:1.4rem;} }

  .reframe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;margin-top:2rem;}
  .reframe-card{background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:1.15rem 1.3rem;display:flex;flex-direction:column;gap:.55rem;text-align:left;box-shadow:var(--site-shadow);}
  .reframe-no{color:#a3514f;font-size:.85rem;text-decoration:line-through;opacity:.8;}
  .reframe-yes{color:var(--site-ink);font-weight:600;font-size:.94rem;line-height:1.5;}
  .site-section.alt > *{width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}

  .site-section.alt > .site-cta{display:block;width:max-content;margin-left:auto;margin-right:auto;}
  .site-section h2{font-family:var(--site-font-display);font-weight:650;letter-spacing:-.02em;font-size:1.65rem;margin-bottom:.75rem;color:var(--site-ink);}

  .site-subheading{font-family:var(--site-font-display);font-weight:650;letter-spacing:-.02em;font-size:1.35rem;color:var(--site-ink);text-align:center;}
  .section-eyebrow{display:block;text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--site-muted);margin-bottom:.5rem;}
  .site-section p{color:var(--site-text);line-height:1.6;}
  
  .site-hint{display:flex;align-items:flex-start;gap:.9rem;background:rgba(60,164,197,.1);border:1px solid rgba(31,125,165,.3);border-radius:10px;padding:1.1rem 1.3rem;margin:1.5rem auto;max-width:760px;box-sizing:border-box;color:#0f3d52;}
  /* Ikona alertu: větší, zarovnaná k hornímu okraji a průhledná (PO 2026-07-29).
   Dřív byla 20 px a svisle vycentrovaná, takže u vyšších boxů plavala
   uprostřed prázdna. Vodoznaková varianta (118px vpravo, .site-hint-icon)
   zrušená úplně - u různě vysokých boxů se rozjížděla nejvíc. */
  .site-hint > svg{width:34px;height:34px;flex-shrink:0;margin-top:.1rem;color:var(--admin-blue-primary);opacity:.45;}
  
  .site-hint-body{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;text-align:left;min-width:0;}
  .site-hint p{margin:0;font-size:.88rem;line-height:1.5;}
  /* Hint s víc řádky: text drží vlastní sloupec, tlačítko zůstává vedle něj. */
  .site-hint-text{min-width:0;}
  .site-hint-list{margin:.5rem 0 0;padding-left:1.3rem;font-size:.88rem;line-height:1.5;}
  .site-hint-list li{margin-bottom:.25rem;}
  .site-hint-list li:last-child{margin-bottom:0;}
  .site-hint-btn{display:inline-block;flex-shrink:0;white-space:nowrap;background:var(--admin-blue-primary);color:#fff;border:none;border-radius:6px;padding:.5rem 1.05rem;font-size:.84rem;font-weight:600;cursor:pointer;}
  .site-hint-btn:hover{background:var(--admin-blue-light);}
  .site-hint-head{display:flex;align-items:center;gap:.7rem;}
  .site-hint-head svg{width:30px;height:30px;flex-shrink:0;color:var(--admin-blue-primary);}
  .site-hint-label{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--admin-blue-primary);}
  .site-hint-title{margin:0;font-size:1.12rem;font-weight:700;color:#0f3d52;}

  /* Bohatší varianta hintu: text vlevo, velká ikona vpravo. Šířka mezi obvyklým
     hintem a šířkou layoutu, aby se odrážky nezalamovaly. */
  .site-hint-rich{position:relative;overflow:hidden;align-items:flex-start;padding:1.1rem 1.5rem 1.2rem;max-width:900px;}
  .site-hint-rich .site-hint-body{position:relative;z-index:1;flex-direction:column;align-items:stretch;gap:.35rem;}
  .site-hint-rich .site-hint-list{margin-top:0;}
  /* Ikona je ambientní podklad, ne prvek v toku - velká, tlumená, za textem. */
  /* Akce uvnitř věty - vypadá a chová se jako odkaz, ne jako tlačítko. */
  .site-hint-link{background:none;border:none;padding:0;font:inherit;color:var(--admin-blue-primary);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
  .site-hint-link:hover{color:#0f3d52;}
  
  /* Nápověda přesunuta z lišty-kolidujícího banneru do modalu (2026-08-11,
     PO: „nápověda lišta pryč, misto toho tlačítko v hero jako třetí button,
     otevře modal") — obsah/kolekce beze změny, jen jiný kontejner. */
  .navod-help-title{margin:0 auto 1.2rem;max-width:34rem;text-align:center;font-family:var(--site-font-display);font-weight:650;font-size:1.02rem;line-height:1.4;color:#fff;}
  .navod-intro{margin:0 auto 1.4rem;max-width:44rem;text-align:center;font-size:.85rem;line-height:1.6;color:rgba(255,255,255,.82);}
  .navod-panel-foot{display:block;margin:1.6rem auto 0;background:#fff;border:none;border-radius:9px;padding:.5rem 1.1rem;font-size:.82rem;font-weight:700;color:var(--admin-blue-primary);cursor:pointer;transition:opacity .15s ease;}
  .navod-panel-foot:hover{opacity:.85;}
  .navod-list{display:grid;grid-template-columns:repeat(2,1fr);width:100%;max-width:640px;margin:0 auto;row-gap:1.3rem;}

  /* Mřížka 2 sloupců: obsah je v každém poli vycentrovaný, aby se čtveřice vyvážila
     kolem kříže předělů. Levý sloupec nemá svislý předěl, druhá řada dostane vodorovný. */
  .navod-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;padding:0 1.6rem;border-left:1px solid rgba(255,255,255,.25);}
  .navod-item:nth-child(2n+1){border-left:none;}
  .navod-item:nth-child(n+3){padding-top:1.3rem;border-top:1px solid rgba(255,255,255,.25);}

  .navod-item-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.4rem;}
  .navod-item-body > strong{font-family:var(--site-font-display);font-weight:650;font-size:.98rem;color:#fff;}
  .navod-item-body span.editable{font-size:.84rem;line-height:1.5;color:rgba(255,255,255,.82);}
  .navod-item-body span.editable strong{color:#fff;}

  .site-hint-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;width:100%;}
  .site-hint-foot p{margin:0;font-size:.85rem;max-width:none;flex:1;min-width:220px;}
  
  .article-demo-card{background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:1.75rem 2rem;margin-top:1.5rem;text-align:left;box-shadow:var(--site-shadow);}
  .article-demo-card h3, .article-detail-body h3{margin:0 0 .9rem;font-size:1.2rem;font-family:var(--site-font-display);font-weight:600;color:var(--site-ink);}
  .article-demo-card h3:empty, .article-detail-body h3:empty{display:none;}
  .article-demo-card p, .article-detail-body #site-article-detail-content p{color:var(--site-text);line-height:1.65;margin:0 0 .9rem;}
  .article-demo-card ul, .article-demo-card ol, .article-detail-body #site-article-detail-content ul, .article-detail-body #site-article-detail-content ol{padding-left:1.4rem;margin:0 0 .9rem;color:var(--site-text);line-height:1.65;}
  .article-demo-card li, .article-detail-body li{margin-bottom:.3rem;}
  .article-demo-card table, .article-detail-body table{border-collapse:collapse;width:100%;margin:0 0 .9rem;}
  .article-demo-card td, .article-demo-card th, .article-detail-body td, .article-detail-body th{border:1px solid var(--site-border);padding:.55rem .8rem;font-size:.9rem;text-align:left;}
  .article-demo-card th, .article-detail-body th{background:var(--site-bg-alt);}
  .article-demo-card h4, .article-detail-body h4{font-size:1.02rem;margin:1.1rem 0 .5rem;color:var(--site-ink);}

  /* Kontakty pod sebou s ikonami, o stupeň větší než běžný text. */
  .kontakt-list{list-style:none;margin:1.4rem auto 0;padding:0;max-width:420px;display:flex;flex-direction:column;gap:.85rem;text-align:left;}
  .kontakt-list li{display:flex;align-items:center;gap:.8rem;font-size:1.05rem;color:var(--site-ink);}
  .kontakt-list svg{width:22px;height:22px;flex:0 0 auto;color:var(--admin-blue-primary);}
  .kontakt-subheading{margin-top:2.6rem;font-size:1.05rem;text-align:left;}

  .story-block{max-width:760px;margin:1.2rem auto 0;text-align:left;}
  .story-block p{margin:0 0 1rem;}
  .story-block p:last-child{margin-bottom:0;}

  /* Víceodstavcový editovatelný text (příběh na Výhodách). Tělo článku má vlastní typografii výše. */
  .rich-block{max-width:720px;margin:1.2rem auto 0;text-align:left;}
  .rich-block h3{margin:0 0 .7rem;font-family:var(--site-font-display);font-weight:650;font-size:1.15rem;color:var(--site-ink);}
  .rich-block p{margin:0 0 .9rem;color:var(--site-text);line-height:1.65;}
  .rich-block ul, .rich-block ol{padding-left:1.4rem;margin:0 0 .9rem;color:var(--site-text);line-height:1.65;}
  .rich-block li{margin-bottom:.3rem;}
  /* Sémanticky h3 (nesmí přeskočit z h2 na h4), vzhledem původní h4. */
  .rich-block h3.rich-podnadpis{margin:1.4rem 0 .5rem;font-family:var(--site-font-display);font-weight:650;font-size:1rem;color:var(--site-ink);}
  .rich-block h4{margin:1.4rem 0 .5rem;font-family:var(--site-font-display);font-weight:650;font-size:1rem;color:var(--site-ink);}
  .rich-block blockquote{margin:1.2rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--admin-blue-primary);font-size:1.05rem;line-height:1.55;color:var(--site-ink);}
  .rich-block table{border-collapse:collapse;width:100%;margin:0 0 .9rem;}
  .rich-block th, .rich-block td{border:1px solid var(--site-border);padding:.5rem .75rem;font-size:.9rem;text-align:left;}
  .rich-block th{background:var(--site-bg-alt);font-weight:650;}
  .rich-block img{max-width:100%;height:auto;border-radius:var(--site-radius);margin:.4rem 0 .9rem;}
  .rich-block > *:last-child{margin-bottom:0;}

  .article-detail-body{max-width:720px;margin:0 auto;text-align:left;}
  .article-detail-body h2#site-article-detail-title{font-family:var(--site-font-display);font-weight:600;margin:0 0 .5rem;font-size:1.9rem;text-align:left;color:var(--site-ink);}
  .article-detail-body #site-article-detail-perex{margin:0 0 1.4rem;color:var(--site-muted);max-width:none;text-align:left;}

  .compare-table{border-collapse:collapse;width:100%;margin-top:1.75rem;}
  .compare-table td, .compare-table th{border:1px solid var(--site-border);padding:.65rem .9rem;font-size:.9rem;text-align:left;}
  .compare-table th{background:var(--site-bg-alt);}

  .article-card{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;box-shadow:var(--site-shadow);transition:box-shadow .15s ease,transform .15s ease;}
  .article-card:hover{box-shadow:0 16px 32px rgba(21,21,15,.16);transform:translateY(-2px);}
  .article-card-thumb{aspect-ratio:16/9;background:#c9c9c2;background-size:cover;background-position:center;}
  .article-card-body{padding:1.1rem 1.3rem 1.35rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
  .article-card-body h3{margin:0;font-size:1.1rem;font-family:var(--site-font-display);font-weight:600;color:var(--site-ink);}
  .article-card-body p{margin:0;font-size:.88rem;color:var(--site-text);line-height:1.55;flex:1;}
  .article-card-more{font-size:.85rem;font-weight:600;color:var(--site-accent);}

  .article-detail-thumb{width:100%;aspect-ratio:21/9;border-radius:var(--site-radius);background:#c9c9c2;background-size:cover;background-position:center;margin-bottom:1.4rem;cursor:pointer;outline:2px dashed transparent;outline-offset:4px;transition:outline-color .15s;}
  .article-detail-thumb:hover{outline-color:var(--editable-outline);}
  .article-detail-back{display:inline-block;margin-bottom:1rem;font-size:.88rem;color:var(--site-muted);text-decoration:none;cursor:pointer;}
  .article-detail-back:hover{color:var(--site-ink);}
  
  .site-img{width:100%;aspect-ratio:16/9;border-radius:4px;object-fit:cover;display:block;background:#c9c9c2 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="640" height="360"><rect width="640" height="360" fill="%23c9c9c2"/><text x="50%25" y="50%25" font-size="20" fill="%23707068" text-anchor="middle" dy=".3em" font-family="sans-serif">Ukázkový obrázek - klikněte a vyměňte</text></svg>') center/cover;}

  .service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:1.5rem;}
  
  #vyhody-grid{grid-template-columns:repeat(3,1fr);}
  
  #site-articles-teaser, #site-articles-page{grid-template-columns:repeat(3,1fr);}
  
  #moznosti-grid{grid-template-columns:repeat(3,1fr);}
  .service-card{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:1.4rem;box-shadow:var(--site-shadow);transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;justify-content:center;}
  .service-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(21,21,15,.16);}
  .service-card-icon{width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(21,21,15,.08);color:var(--site-ink);display:flex;align-items:center;justify-content:center;margin-bottom:.8rem;transition:background .15s ease;}
  .service-card-icon svg{width:1.05rem;height:1.05rem;}
  .service-card-icon:hover{background:rgba(21,21,15,.16);}
  .service-card h3{margin:0 0 .5rem;font-size:1.08rem;font-family:var(--site-font-display);font-weight:600;color:var(--site-ink);}
  .service-card p{margin:0;font-size:.92rem;color:var(--site-text);}
  .service-card .site-cta{align-self:flex-start;}

  .feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:1.5rem;}
  .feature-card{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:1.3rem;box-shadow:var(--site-shadow);transition:transform .15s ease,box-shadow .15s ease;}
  .feature-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(21,21,15,.16);}
  .feature-card h3{margin:0 0 .45rem;font-size:1.02rem;font-family:var(--site-font-display);font-weight:600;color:var(--site-ink);}
  .feature-card p{margin:0;font-size:.9rem;color:var(--site-text);}
  .feature-card-action{display:inline-block;margin-top:.7rem;font-size:.82rem;font-weight:700;color:var(--admin-blue-primary);text-decoration:underline;text-underline-offset:2px;background:none;border:none;cursor:pointer;padding:0;}
  .feature-card-action:hover{color:var(--admin-blue-light);}

  .faq-list{margin-top:1.5rem;display:grid;gap:.9rem;}
  .faq-item{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-left:3px solid var(--site-accent);border-radius:var(--site-radius);padding:1.1rem 1.25rem;box-shadow:var(--site-shadow);}
  .faq-q-row{display:flex;align-items:center;gap:.75rem;}

  .faq-item .faq-q{display:block;margin:0;font-weight:700;color:var(--site-ink);font-size:.98rem;}
  .faq-a-wrap{padding:4px 6px;margin:.5rem -6px 0;}
  .faq-item .faq-a{display:block;font-size:.92rem;color:var(--site-text);line-height:1.6;}

  .step-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.1rem;margin-top:1.5rem;}
  .step-card{background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:1.3rem;box-shadow:var(--site-shadow);}
  .step-card .step-num{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--site-accent);color:var(--site-accent-ink);font-weight:700;font-size:.95rem;margin-bottom:.7rem;}
  .step-card strong{display:block;color:var(--site-ink);font-size:.98rem;margin-bottom:.3rem;}
  .step-card span{display:block;font-size:.9rem;color:var(--site-text);line-height:1.55;}

  .site-cta{display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;background:var(--site-accent);color:var(--site-accent-ink);text-decoration:none;padding:.75rem 1.5rem;border-radius:9px;font-weight:600;font-size:.9rem;box-shadow:0 10px 22px rgba(21,21,15,.32);transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease;}
  .site-cta:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 14px 26px rgba(21,21,15,.4);}

  .site-cta.editable:hover{background:var(--site-accent);filter:brightness(.9);}
  .site-topnav-cta.editable:hover{background:var(--admin-blue-light);}

  .site-cta.site-cta-brand{background:var(--admin-blue-primary);}
  .site-cta.site-cta-brand:hover{background:var(--admin-blue-light);opacity:1;}
  .site-cta.site-cta-brand.editable:hover{background:var(--admin-blue-light);filter:none;}

  .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;margin-left:.4em;vertical-align:-2px;transition:transform .15s ease;}
  .btn-icon svg{width:100%;height:100%;}
  .site-hint-btn:hover .btn-icon, .article-card-more:hover .btn-icon, .btn.primary:hover .btn-icon{transform:translateX(3px);}

  .compare-list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.9rem;}
  .compare-list li{position:relative;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:var(--site-radius);padding:.95rem 1.1rem;box-shadow:var(--site-shadow);}
  .compare-list strong{display:block;color:var(--site-ink);font-size:.96rem;margin-bottom:.25rem;}
  .compare-list span{display:block;font-size:.9rem;color:var(--site-text);line-height:1.55;}

  .step-card strong.rt-strong, .compare-list strong.rt-strong{display:inline;margin:0;}

  .poptavka-wrap{display:flex;gap:2rem;flex-wrap:wrap;align-items:flex-start;margin-top:1.5rem;}
  .poptavka-form{flex:1;min-width:280px;max-width:440px;display:grid;gap:.9rem;}
  .poptavka-form .field{margin-bottom:0;}
  .poptavka-form .field label{display:block;font-size:.8rem;color:var(--site-text);margin-bottom:.3rem;font-weight:600;}
  .poptavka-form .field input, .poptavka-form .field select, .poptavka-form .field textarea{width:100%;background:var(--site-card-bg);border:1px solid var(--site-border);border-radius:8px;padding:.6rem .75rem;font-size:.9rem;font-family:inherit;color:var(--site-ink);}
  .poptavka-form .field textarea{min-height:70px;resize:vertical;}
  .poptavka-form button{justify-self:start;background:var(--site-accent);color:var(--site-accent-ink);border:none;padding:.75rem 1.6rem;border-radius:9px;font-weight:600;cursor:pointer;font-size:.9rem;box-shadow:0 10px 22px rgba(21,21,15,.3);}
  .poptavka-form button:hover{opacity:.9;}
  .poptavka-hint{flex:1;min-width:240px;margin-top:0;align-self:flex-start;}

  .gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1.25rem;}
  .gallery-grid .img-editable{max-width:none;margin:0;}
  .gallery-grid .site-img{margin:0;}

  .editable{outline:2px dashed transparent;outline-offset:4px;border-radius:4px;cursor:text;transition:outline-color .15s;}
  .editable a{cursor:pointer;}
  .editable:hover{outline-color:var(--editable-outline);background:rgba(60,164,197,.08);}
  
  .site-cta.editable{cursor:pointer;}
  .editable.long-press-charging{outline-color:var(--admin-blue-light);background:rgba(60,164,197,.16);}

  /* Bez tohohle drží prst na .editable spustí nativní výběr textu (bublina Kopírovat/Sdílet), který kolidoval s naším vlastním longpressem. */
  @media (hover: none){
    .editable, .site-nav-items span, .site-social-link{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
  }

  #hold-loader-fill{
    position:fixed; width:20px; height:20px; border-radius:50%; z-index:999999;
    pointer-events:none; opacity:0; transition:opacity .3s linear;
    background:conic-gradient(var(--admin-blue-light) 0%, rgba(232,242,247,.92) 0%);
    -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
    mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
  }
  #hold-loader-fill.show{opacity:1;transition:opacity .08s ease;}

  #hold-loader-border{
    position:fixed; width:20px; height:20px; border-radius:50%; z-index:1000000;
    pointer-events:none; opacity:0; transition:opacity .3s linear;
    border:1.5px solid #fff; box-sizing:border-box; mix-blend-mode:difference;
  }
  #hold-loader-border.show{opacity:1;transition:opacity .08s ease;}

  .hold-hint{
    position:fixed; z-index:999999; left:0; top:0;
    transform:translate(-50%,calc(-100% - 10px));
    background:var(--panel2); color:#fff; font-size:.78rem; font-weight:600;
    padding:.4rem .7rem; border-radius:6px; white-space:nowrap;
    pointer-events:none; opacity:0; transition:opacity .2s ease;
    box-shadow:0 6px 18px rgba(0,0,0,.4);
  }
  .hold-hint.show{opacity:1;}
  .hold-hint::after{
    content:""; position:absolute; left:50%; top:100%;
    transform:translateX(-50%); border:5px solid transparent;
    border-top-color:var(--panel2);
  }

  .hero-try-me{display:inline-block;margin:1.4rem auto 0;padding:.9rem 1.6rem;font-size:1.3rem;font-weight:700;border-radius:10px;background:rgba(60,164,197,.12);}
  
  .img-editable{position:relative;cursor:pointer;display:block;max-width:640px;margin:1.25rem auto;}
  .img-editable:hover::after{content:"Klikněte pro výměnu obrázku";position:absolute;inset:0;background:rgba(15,17,21,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;border-radius:4px;text-align:center;padding:0 1rem;}

  .site-item-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity .15s;z-index:3;}
  
  .faq-item .site-item-actions{top:-14px;}
  .service-card:hover .site-item-actions,.feature-card:hover .site-item-actions,.faq-item:hover .site-item-actions,.gallery-grid .img-editable:hover .site-item-actions,.article-card:hover .site-item-actions,.navod-item:hover .site-item-actions,.site-item-actions:focus-within,
  .service-card.touch-active .site-item-actions,.feature-card.touch-active .site-item-actions,.faq-item.touch-active .site-item-actions,.gallery-grid .img-editable.touch-active .site-item-actions,.article-card.touch-active .site-item-actions,.navod-item.touch-active .site-item-actions{opacity:1;}
  .site-drag-handle,.site-item-btn{width:26px;height:26px;border:none;border-radius:6px;background:var(--admin-blue-primary);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s ease;}
  .site-drag-handle{cursor:grab;}
  .site-drag-handle:active{cursor:grabbing;}
  .site-item-btn{cursor:pointer;font-size:.95rem;line-height:1;}
  .site-item-btn:hover,.site-drag-handle:hover{background:var(--admin-blue-light);}
  .site-drag-handle svg,.site-item-btn svg{width:14px;height:14px;}

  .site-move-btns{display:none;gap:4px;}
  @media (hover: none){
    .site-drag-handle{display:none;}
    .site-move-btns{display:flex;}
  }

  .site-item-menu{position:absolute;top:38px;right:8px;min-width:150px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.45);padding:.3rem;display:none;z-index:6;text-align:left;}
  .site-item-menu.active{display:block;}
  .site-item-menu button{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.45rem .6rem;border-radius:5px;font-size:.82rem;font-family:inherit;color:var(--text);cursor:pointer;text-align:left;}
  .site-item-menu button:hover{background:var(--panel);color:#fff;}
  .site-item-menu button.danger{color:#e08787;}
  .site-item-menu svg{width:13px;height:13px;flex-shrink:0;}

  .collection-wrap{position:relative;padding-top:38px;margin-top:.4rem;}
  .collection-wrap > .service-grid, .collection-wrap > .feature-grid,
  .collection-wrap > .faq-list, .collection-wrap > .gallery-grid{margin-top:0;}
  .site-collection-toolbar{position:absolute;top:2px;right:0;display:flex;align-items:center;gap:8px;opacity:0;transition:opacity .15s;z-index:4;}
  
  .site-collection-toolbar-label{font-size:.78rem;font-weight:600;color:#52524c;white-space:nowrap;text-shadow:0 1px 2px rgba(255,255,255,.9),0 0 3px rgba(255,255,255,.75);}
  .collection-wrap:hover .site-collection-toolbar, .site-collection-toolbar:focus-within, .collection-wrap.touch-active .site-collection-toolbar{opacity:1;}
  .sct-btn{width:30px;height:30px;border-radius:7px;border:1px solid rgba(31,125,165,.35);background:rgba(60,164,197,.12);color:var(--admin-blue-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
  .sct-btn:hover{background:var(--admin-blue-primary);color:#fff;}
  .sct-btn svg{width:15px;height:15px;}
  
  .sct-add{background:var(--admin-blue-primary);color:#fff;border-color:var(--admin-blue-primary);width:auto;padding:0 .85rem 0 .8rem;gap:.4rem;transition:background .15s ease;}
  .sct-add:hover{background:var(--admin-blue-light);}
  .sct-add-label{font-size:.78rem;font-weight:600;white-space:nowrap;}
  
  .sct-show-admin{width:auto;padding:0 .85rem 0 .8rem;gap:.4rem;background:#fff;}
  
  .sct-show-admin:hover{background:rgba(60,164,197,.12);color:var(--admin-blue-primary);}
  .service-card.dragging,.feature-card.dragging,.faq-item.dragging,.gallery-grid .img-editable.dragging,.navod-item.dragging{opacity:.4;box-shadow:none;}

  .editable.is-editing,.site-nav-items span.is-editing{outline:2px solid var(--admin-blue-light);background:rgba(60,164,197,.12)!important;cursor:text;-webkit-user-select:text;user-select:text;}
  /* Tmavá tlačítka mají světlý text - průsvitné pozadí editace by ho utopilo. */
  .hero-cta-primary.is-editing{background:var(--site-accent)!important;color:var(--site-accent-ink);}
  .site-nav-items span.long-press-charging{outline:2px dashed var(--admin-blue-light);background:rgba(60,164,197,.16);}
  /* Lišta má u rich textu až 11 tlačítek, na úzkých displejích se musí zalomit. */
  .inline-toolbar{position:fixed;z-index:1200;display:flex;flex-wrap:wrap;justify-content:center;max-width:min(94vw,420px);gap:2px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.45);opacity:0;transform:translateY(4px) scale(.96);pointer-events:none;transition:opacity .12s ease,transform .12s ease;}
  .inline-toolbar.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
  .inline-toolbar button{background:none;border:none;color:var(--text);width:30px;height:30px;border-radius:5px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;}
  .inline-toolbar button:hover{background:var(--panel);color:#fff;}
  .inline-toolbar button.done{color:var(--admin-blue-light);font-weight:700;width:auto;padding:0 .6rem;}
  .inline-toolbar .sep{width:1px;background:var(--border);margin:3px 2px;}

  .sidebar-hint{position:fixed;z-index:1065;top:132px;left:78px;display:flex;align-items:center;gap:.5rem;opacity:0;max-width:230px;transition:opacity .3s ease;pointer-events:none;}
  .sidebar-hint.show{opacity:1;}
  .sidebar-hint-arrow{color:var(--admin-blue-light);font-size:1.3rem;line-height:1;flex-shrink:0;animation:sidebar-hint-bounce 1.1s ease-in-out infinite;}
  .sidebar-hint-text{background:#1a1a1a;color:#fff;font-size:.78rem;line-height:1.35;padding:.5rem .7rem;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.35);}
  @keyframes sidebar-hint-bounce{0%,100%{transform:translateX(0);}50%{transform:translateX(-6px);}}
  @media (max-width:900px){ .sidebar-hint{display:none;} }

  /* Modaly vyskakují u horní hrany, ne uprostřed - editace probíhá nahoře na stránce
     a skok doprostřed obrazovky odvádí pozornost.

     ⚠ z-index 5020, ne 1080 (oprava 2026-08-25, PO: „lišta poté překrývá modal").
     Modal se skoro vždycky otevírá Z panelu, který zůstává otevřený za ním -
     jenže panel (`#drawer`, 5005) i lišta modulů (`#sidebar`, 5010) dostaly
     vysoká čísla schválně, aby byly nad lištou webů (PO: „admin má být nad
     vším i nad lištou"), a tím se dostaly i nad modal. Naměřeno na ukázce
     „Přidat novou Výhodu": panel překrýval formulář o 320 px při šířce 1440
     a o 490 px při 1100 - `elementFromPoint` na levé hraně formuláře vracel
     `drawer-body`. Sama lišta webů (z-index 40) modal nepřekrývala vůbec.
     Modaly proto patří NAD celou administraci; potvrzení (`#toast`) a mobilní
     zásuvka pole (`#fieldSheet`) o kousek výš, viz níž. */
  .modal-overlay{position:fixed;inset:0;background:rgba(3,26,42,.65);display:none;align-items:flex-start;justify-content:center;padding:2.5rem 1rem;overflow-y:auto;z-index:5020;}
  .modal-overlay.active{display:flex;}
  .modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:560px;max-width:92vw;max-height:calc(100vh - 5rem);overflow-y:auto;padding:1.5rem;}

  .site-modal{position:relative;background:var(--site-bg);border:1px solid var(--site-border);border-radius:16px;width:820px;max-width:92vw;max-height:86vh;overflow-y:auto;padding:2.6rem 2.2rem;box-shadow:0 30px 60px -20px rgba(21,21,15,.4);}
  .site-modal-close{position:absolute;top:1.1rem;right:1.2rem;width:32px;height:32px;border-radius:50%;background:var(--site-bg-alt);border:none;color:var(--site-ink);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;z-index:1;}
  .site-modal-close:hover{background:var(--site-border);}
  .modal.modal-wide{width:720px;}
  .modal h3{margin:0 0 1rem;font-size:1.15rem;color:#fff;}
  .modal .tabs, .drawer-body .tabs{display:flex;gap:.4rem;margin-bottom:1rem;border-bottom:1px solid var(--border);}
  .modal .tab, .drawer-body .tab{padding:.5rem .9rem;font-size:.85rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;}
  .modal .tab.active, .drawer-body .tab.active{color:var(--admin-blue-light);border-color:var(--admin-blue-light);}
  .select-field select{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.55rem .65rem;font-size:.9rem;font-family:inherit;}
  
  .wysiwyg-toolbar{display:flex;align-items:center;gap:.15rem;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;padding:.4rem .5rem;color:var(--muted);font-size:.82rem;}
  .wysiwyg-toolbar button{display:inline-flex;align-items:center;justify-content:center;min-width:1.7rem;height:1.7rem;border-radius:4px;cursor:pointer;background:none;border:none;color:var(--muted);font-size:.85rem;padding:0 .35rem;}
  .wysiwyg-toolbar button:hover{background:rgba(255,255,255,.1);color:#fff;}
  .wysiwyg-toolbar select{background:var(--panel2);color:var(--muted);border:1px solid var(--border);border-radius:4px;font-size:.78rem;padding:.2rem .3rem;cursor:pointer;}
  .wysiwyg-toolbar .sep{width:1px;height:1.2rem;background:var(--border);min-width:1px;margin:0 .3rem;}
  .fake-wysiwyg-body{border-radius:0 0 6px 6px !important;min-height:160px;}
  #af-content.fake-wysiwyg-body{padding:.7rem .9rem;overflow-y:auto;max-height:320px;color:#1a1a1a;background:#fff;}
  #af-content.fake-wysiwyg-body:focus{outline:none;}
  #af-content.fake-wysiwyg-body ul, #af-content.fake-wysiwyg-body ol{padding-left:1.4rem;margin:.5rem 0;}
  #af-content.fake-wysiwyg-body table{border-collapse:collapse;width:100%;margin:.6rem 0;}
  #af-content.fake-wysiwyg-body table td, #af-content.fake-wysiwyg-body table th{border:1px solid #d5d9e0;padding:.4rem .6rem;font-size:.85rem;text-align:left;}
  #af-content.fake-wysiwyg-body table th{background:#f7f7f5;}
  #af-content-source.fake-wysiwyg-body{font-family:monospace;font-size:.82rem;}
  .article-image-preview{width:100%;max-width:220px;aspect-ratio:4/3;background:var(--panel2);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--admin-blue-light);}
  .article-image-preview svg{width:34%;height:34%;}
  .field{margin-bottom:.9rem;}
  .field label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.3rem;}
  .field input, .field textarea{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.55rem .65rem;font-size:.9rem;font-family:inherit;}
  .field input:focus, .field textarea:focus{outline:none;border-color:var(--admin-blue-primary);box-shadow:0 0 0 3px rgba(31,125,165,.25);}
  .field textarea{min-height:80px;resize:vertical;}
  .hint{font-size:.75rem;color:var(--muted);margin-top:.25rem;}
  .modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.2rem;}
  .btn{padding:.55rem 1.1rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--panel2);color:var(--text);}
  .btn.primary{background:var(--gold);color:#1a1a1a;border-color:var(--gold);}
  .btn.ghost{background:transparent;}
  .close-x{position:absolute;top:1rem;right:1.2rem;cursor:pointer;color:var(--muted);font-size:1.1rem;background:none;border:none;}
  .close-x:hover{color:#fff;}

  .article-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem .3rem;border-bottom:1px solid var(--border);cursor:pointer;}
  .article-row:hover{background:var(--panel2);}
  .article-row .status{font-size:.72rem;padding:.15rem .5rem;border-radius:999px;background:var(--panel2);color:var(--muted);}
  .article-row .status.pub{color:var(--ok);border:1px solid var(--ok);background:transparent;}

  .nav-row{display:flex;align-items:center;gap:.5rem;padding:.4rem;margin-bottom:.4rem;border-radius:8px;background:var(--panel2);border:1px solid var(--border);transition:background-color .12s;}
  .nav-row input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .6rem;font-size:.88rem;font-family:inherit;}
  .nav-row input:focus{outline:none;border-color:var(--admin-blue-primary);}
  .nav-row .drag-handle{cursor:grab;color:var(--muted);display:flex;align-items:center;padding:0 .15rem;flex-shrink:0;}
  .nav-row .drag-handle:active{cursor:grabbing;}
  .nav-row.dragging{opacity:.4;}
  .nav-row .del{color:#e08a8a;background:none;border:none;cursor:pointer;font-size:1rem;padding:.3rem;flex-shrink:0;}
  .nav-row .del:hover{color:#ff9d9d;}

  .nav-existing-item{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:8px;background:var(--panel2);border:1px solid var(--border);cursor:pointer;margin-bottom:.5rem;}
  .nav-existing-item:hover{background:rgba(31,125,165,.18);}
  .nav-existing-item svg{width:16px;height:16px;color:var(--admin-blue-light);flex-shrink:0;}
  .nav-existing-item .nei-label{font-weight:600;font-size:.88rem;color:#fff;}
  .nav-existing-item .nei-file{font-size:.74rem;color:var(--muted);font-family:monospace;}
  .select-field select{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.55rem .65rem;font-size:.9rem;font-family:inherit;}
  
  .modal-sep{margin:1.1rem 0 .6rem;padding-top:.9rem;border-top:1px solid var(--border);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
  .switch-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:.65rem .8rem;margin-top:.9rem;font-size:.85rem;}
  .switch-row input{flex:none;width:auto;}

  .info-note{display:flex;gap:.65rem;background:rgba(212,175,90,.12);border:1px solid rgba(212,175,90,.4);border-radius:8px;padding:.85rem .95rem;margin-bottom:1rem;}
  .info-note svg{width:18px;height:18px;color:var(--gold);flex-shrink:0;margin-top:.1rem;}
  .info-note-title{font-weight:600;font-size:.86rem;color:#fff;margin-bottom:.15rem;}
  .info-note-text{font-size:.8rem;color:var(--text);line-height:1.5;}
  .media-upload-row{display:flex;justify-content:flex-end;margin-bottom:1rem;}
  .user-mgmt-card{display:flex;align-items:center;gap:.75rem;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:.8rem .9rem;margin-bottom:.6rem;}
  .user-mgmt-avatar{width:38px;height:38px;min-width:38px;border-radius:50%;background:var(--admin-blue-primary);color:#fff;display:flex;align-items:center;justify-content:center;}
  .user-mgmt-avatar svg{width:19px;height:19px;}
  .user-mgmt-body{flex:1;min-width:0;}
  .user-mgmt-email{font-weight:600;color:#fff;font-size:.92rem;}
  .user-mgmt-sub{font-size:.8rem;color:var(--muted);margin:.1rem 0 .35rem;}
  .user-mgmt-role{display:inline-block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:4px;}
  .user-mgmt-role.role-superadmin{background:#c0405a;color:#fff;}
  .user-mgmt-role.role-admin{background:var(--gold);color:#1a1a1a;}
  .user-mgmt-role.role-editor{background:var(--admin-blue-primary);color:#fff;}
  .role-card{align-items:flex-start;}
  .role-card .user-mgmt-avatar{background:var(--admin-blue-primary);}
  .role-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;}
  .role-code{font-family:monospace;font-weight:700;color:#fff;font-size:.88rem;}
  .role-sys-badge{background:var(--gold);color:#1a1a1a;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:.15rem .5rem;border-radius:4px;}
  .role-desc{color:var(--text);font-size:.82rem;margin:.35rem 0 .55rem;}
  .role-chips{display:flex;flex-wrap:wrap;gap:.35rem;}
  .role-chip{background:var(--admin-blue-primary);color:#fff;font-size:.72rem;padding:.2rem .55rem;border-radius:4px;}
  .role-chip.role-chip-more{background:transparent;color:var(--muted);border:1px solid var(--border);}

  .media-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:1rem;}
  .media-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem;}
  .media-card-head .title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#fff;font-size:.92rem;}
  .media-card-head .title svg{width:17px;height:17px;color:var(--admin-blue-light);}
  .media-count{font-size:.7rem;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.25rem .65rem;white-space:nowrap;}
  .media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.7rem;}
  .media-item{cursor:pointer;}
  .site-img-visual{display:flex;align-items:center;justify-content:center;}
  .site-img-visual svg{width:32%;height:32%;}
  #image-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.7rem;}
  .picker-thumb{cursor:pointer;border-radius:8px;overflow:hidden;border:2px solid transparent;transition:border-color .15s;}
  .picker-thumb:hover, .picker-thumb.current{border-color:var(--admin-blue-light);}
  .picker-thumb-visual{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:#fff;}
  .picker-thumb-visual svg{width:34%;height:34%;}
  .picker-thumb-upload{border:2px dashed var(--border);}
  .picker-thumb-upload:hover{border-color:var(--admin-blue-light);}
  .picker-thumb-upload-visual{flex-direction:column;gap:.35rem;color:var(--muted);background:var(--panel2);font-size:.72rem;}
  .picker-thumb-upload-visual svg{width:26px;height:26px;}
  
  .icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:.6rem;margin-top:.6rem;}
  .icon-picker-thumb .picker-thumb-visual{aspect-ratio:1;background:var(--panel2);color:var(--text);}
  .icon-picker-thumb .picker-thumb-visual svg{width:46%;height:46%;}
  .media-thumb{aspect-ratio:1;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:.4rem;}
  .media-thumb svg{width:22px;height:22px;}
  .media-name{font-size:.74rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .media-size{font-size:.7rem;color:var(--muted);}

  #pageSelectDropdown{position:fixed;z-index:1100;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.5);width:290px;max-height:min(420px,60vh);overflow-y:auto;display:none;}
  #pageSelectDropdown.active{display:block;}
  #pageSelectDropdown .ps-search{padding:.6rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);}
  #pageSelectDropdown .ps-search input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.45rem .6rem;font-size:.85rem;font-family:inherit;}
  #pageSelectDropdown .ps-search input:focus{outline:none;border-color:var(--admin-blue-primary);}
  #pageSelectDropdown .ps-group-title{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.6rem .9rem .25rem;}
  #pageSelectDropdown .ps-item{padding:.45rem .9rem;font-size:.83rem;color:var(--text);cursor:pointer;font-family:monospace;}
  #pageSelectDropdown .ps-item:hover{background:var(--panel2);}
  #pageSelectDropdown .ps-item.current{background:rgba(31,125,165,.22);color:#fff;font-weight:600;}
  #pageSelectDropdown .ps-empty{padding:.9rem;color:var(--muted);font-size:.82rem;}
  
  #pageSelectDropdown .ps-item-preview{color:var(--muted);}
  #pageSelectDropdown .ps-item-preview .ps-item-badge{font-family:inherit;font-size:.68rem;opacity:.7;}

  .site-footer{background:var(--site-bg-alt);color:var(--site-muted);border-top:1px solid var(--site-border);}
  .site-footer-main{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2rem;width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;padding-top:2.6rem;padding-bottom:2rem;}
  .site-footer .footer-title{font-family:var(--site-font-display);font-weight:600;color:var(--site-ink);font-size:.92rem;letter-spacing:.02em;margin:0 0 .9rem;}
  .site-footer .footer-about-text{font-size:.86rem;line-height:1.6;margin:0 0 .8rem;color:var(--site-muted);}
  .site-footer .footer-nav-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
  .site-footer .footer-nav-list li{font-size:.86rem;min-width:0;}
  .footer-col{min-width:0;}
  .site-footer .footer-nav-list a, .site-footer .footer-nav-list span{color:var(--site-muted);text-decoration:none;cursor:pointer;transition:color .15s;overflow-wrap:break-word;word-break:break-word;}
  .site-footer .footer-nav-list a:hover, .site-footer .footer-nav-list span:hover{color:var(--site-ink);}
  .site-footer .footer-nav-list span.active-page{color:var(--site-ink);font-weight:700;}
  .site-footer .footer-contact-list li{line-height:1.5;}
  /* white-space:nowrap - popisek tlačítka se nikdy nesmí zalomit (na mobilu se
     v úzkém sloupci trhal na "blueorcawebsites" + ".eu", PO 2026-07-29). */
  .footer-cta{display:inline-flex;align-items:center;gap:.4rem;margin-top:.3rem;max-width:100%;white-space:nowrap;background:var(--admin-blue-primary);color:#fff!important;text-decoration:none;padding:.55rem 1.1rem;border-radius:8px;font-size:.84rem;font-weight:600;transition:background-color .15s ease;}
  .footer-cta:hover, .footer-cta.editable:hover{background:var(--admin-blue-light);color:#fff!important;}
  /* Obal ikony je span, takže ho jinak obarví šedé pravidlo pro spany v patičkovém menu. */
  .site-footer .footer-nav-list .footer-cta .btn-icon{color:inherit;}
  .site-social{display:flex;gap:1rem;margin-top:1.1rem;}
  .site-social-link{color:var(--site-muted);display:inline-flex;transition:color .15s;}
  .site-social-link:hover{color:var(--site-ink);}
  .site-social-link svg{width:19px;height:19px;}
  .site-footer-strip{border-top:1px solid var(--site-border);padding-block:1.1rem;display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;align-items:center;font-size:.8rem;width:min(72rem, 100% - var(--site-gutter));margin-inline:auto;}
  .site-footer-strip a{color:var(--site-muted);text-decoration:none;}
  .site-footer-strip a:hover{color:var(--site-ink);}
  .footer-strip-sep{opacity:.5;}

  .badge{opacity:0;transition:opacity var(--admin-speed) ease;font-size:.68rem;font-weight:700;padding:.1rem .45rem;border-radius:999px;margin-left:auto;margin-right:10px;min-width:1.1rem;text-align:center;}
  #sidebar.expanded .badge{opacity:1;}
  .badge-ok{background:rgba(76,175,125,.18);color:var(--ok);border:1px solid rgba(76,175,125,.4);}
  .badge-new{background:#c94f4f;color:#fff;}
  .badge-new:empty{display:none;}

  .list-card{display:flex;align-items:flex-start;gap:.7rem;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:.75rem .85rem;margin-bottom:.55rem;cursor:pointer;transition:background-color .14s,transform .14s,box-shadow .14s;}
  .list-card.dragging{opacity:.4;}
  .list-card .drag-handle{cursor:grab;color:var(--muted);display:flex;align-items:center;padding-top:.2rem;flex-shrink:0;}
  .list-card .drag-handle:active{cursor:grabbing;}
  .list-card-thumb{width:44px;height:44px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0;}
  .list-card:hover{background:var(--bg-hover,rgba(15,70,99,.55));transform:translateY(-1px);box-shadow:0 6px 14px rgba(0,0,0,.28);}
  .list-card .lc-body{flex:1;min-width:0;}
  .list-card .lc-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;}
  .list-card .lc-title{font-weight:600;color:#fff;font-size:.92rem;}
  .list-card .lc-meta{font-size:.78rem;color:var(--muted);margin-top:.15rem;}
  .list-card .lc-sub{font-size:.82rem;color:var(--text);margin-top:.3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .list-card .lc-actions{display:flex;gap:.25rem;flex-shrink:0;}
  .list-card .lc-action-btn{width:24px;height:24px;border-radius:6px;background:transparent;border:1px solid var(--border);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
  .list-card .lc-action-btn:hover{background:var(--panel);color:#fff;}
  .list-card .lc-action-btn svg{width:12px;height:12px;}
  
  .zaloha-card .lc-actions{position:relative;}
  .zaloha-menu{position:absolute;top:28px;right:0;min-width:130px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.45);padding:.3rem;display:none;z-index:1100;}
  .zaloha-menu.active{display:block;}
  .zaloha-menu-item{padding:.45rem .6rem;border-radius:5px;font-size:.82rem;color:var(--text);cursor:pointer;white-space:nowrap;}
  .zaloha-menu-item:hover{background:var(--panel);color:#fff;}
  .zaloha-menu-item.danger{color:#e08787;}

  .pill{display:inline-block;font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;white-space:nowrap;}
  .pill-pending{background:rgba(212,175,90,.16);color:var(--gold);border:1px solid rgba(212,175,90,.4);}
  .pill-paid{background:rgba(76,175,125,.16);color:var(--ok);border:1px solid rgba(76,175,125,.4);}
  .pill-unread{background:#c94f4f;color:#fff;}

  .detail-highlight{border-left:3px solid var(--admin-blue-light);background:rgba(31,125,165,.12);border-radius:6px;padding:.6rem .8rem;margin-bottom:1rem;}
  .detail-highlight .dh-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--admin-blue-lightest);margin-bottom:.2rem;}
  .detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;margin-bottom:1rem;}
  .detail-grid .dg-full{grid-column:1/-1;}
  .detail-grid label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:.2rem;}
  .detail-grid .dg-val{font-size:.92rem;color:var(--text);}
  .detail-grid .dg-val.big{font-size:1.3rem;font-weight:700;color:var(--gold);}
  .utm-block{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.65rem .8rem;font-size:.78rem;color:var(--muted);display:flex;flex-direction:column;gap:.3rem;margin-bottom:1.1rem;}
  .utm-block span{display:flex;align-items:center;gap:.4rem;}
  .modal-actions.wrap{flex-wrap:wrap;}
  .btn.ok{background:var(--ok);border-color:var(--ok);color:#0d1f16;}
  .btn.danger{background:transparent;border-color:#c96a6a;color:#e08787;}
  .btn.info{background:var(--admin-blue-primary);border-color:var(--admin-blue-primary);color:#fff;}
  .empty-state{text-align:center;padding:2.5rem 1rem;color:var(--muted);}
  .empty-state svg{width:40px;height:40px;opacity:.4;margin-bottom:.6rem;}
  .modal .tabs.tabs2, .drawer-body .tabs.tabs2{margin-bottom:1rem;}

  .metrics-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem;}
  .metrics-stat{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:.7rem .5rem;text-align:center;}
  .metrics-stat .ms-val{font-size:1.3rem;font-weight:700;color:#fff;}
  .metrics-stat .ms-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:.15rem;}
  .metrics-chart-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:.9rem;margin-bottom:.8rem;}
  .metrics-chart-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.5rem;}
  .metrics-canvas-wrap{position:relative;height:170px;}
  .metrics-canvas-wrap--tall{height:210px;}
  .metrics-canvas-wrap--flat{height:90px;}

  .hb-score-card{text-align:center;background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:1.1rem;margin-bottom:1.1rem;}
  .hb-score-card .hb-score-num{font-size:2.2rem;font-weight:800;color:var(--ok);}
  .hb-score-card .hb-score-status{font-weight:700;color:var(--ok);margin:.2rem 0 .7rem;}
  .hb-bar-track{height:8px;border-radius:4px;background:var(--bg);overflow:hidden;margin-bottom:.5rem;}
  .hb-bar-fill{height:100%;background:var(--ok);border-radius:4px;}
  .hb-score-card .hb-updated{font-size:.72rem;color:var(--muted);}
  .hb-toolbar{display:flex;gap:.5rem;margin-bottom:1rem;}
  .hb-item{border:1px solid var(--border);border-radius:8px;margin-bottom:.5rem;overflow:hidden;background:var(--panel2);}
  .hb-item-head{display:flex;align-items:center;gap:.6rem;padding:.7rem .8rem;cursor:pointer;}
  .hb-item-head svg{width:16px;height:16px;flex-shrink:0;color:var(--muted);}
  .hb-item-head .hb-name{flex:1;font-size:.88rem;}
  .hb-item-head .hb-chevron{width:13px;height:13px;color:var(--muted);transition:transform .15s;flex-shrink:0;}
  .hb-item.open .hb-chevron{transform:rotate(90deg);}
  .hb-score-badge{font-size:.72rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;}
  .hb-score-badge.ok{background:rgba(76,175,125,.18);color:var(--ok);}
  .hb-score-badge.warn{background:rgba(212,175,90,.2);color:var(--gold);}
  .hb-score-badge.err{background:rgba(220,90,90,.2);color:#e08787;}
  .hb-item-body{display:none;padding:0 .8rem .8rem;font-size:.82rem;color:var(--text);border-top:1px solid var(--border);}
  .hb-item.open .hb-item-body{display:block;padding-top:.7rem;}
  .hb-item-body .hb-impact{color:var(--muted);font-size:.75rem;margin-bottom:.4rem;}
  .hb-item-body .hb-finding{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;}
  .hb-item-body ul{margin:.3rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.78rem;}
  .hb-item-body li{margin-bottom:.15rem;}
  .hb-rec{background:rgba(212,175,90,.08);border-radius:6px;padding:.5rem .65rem;margin-top:.5rem;font-size:.78rem;color:var(--muted);}

  #drawerBackdrop{position:fixed;inset:0;background:rgba(3,26,42,.6);z-index:5002;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
  #drawerBackdrop.active{opacity:1;visibility:visible;}
  
  #drawer{position:fixed;top:0;left:var(--admin-sw-collapsed);height:100vh;width:min(520px,82vw);background:var(--panel);border-right:1px solid var(--border);z-index:5005;display:flex;flex-direction:column;transform:translateX(-100%);visibility:hidden;transition:transform var(--admin-speed) ease,left var(--admin-speed) ease,visibility 0s linear var(--admin-speed);box-shadow:8px 0 28px rgba(0,0,0,.4);}
  #drawer.active{transform:translateX(0);visibility:visible;transition:transform var(--admin-speed) ease,left var(--admin-speed) ease,visibility 0s linear 0s;}
  #sidebar.expanded ~ #drawer{left:var(--admin-sw-expanded);}
  .drawer-header{display:flex;align-items:center;gap:.6rem;padding:1rem 1.1rem;background:var(--panel2);border-bottom:1px solid var(--border);flex:0 0 auto;}
  .drawer-header svg{width:17px;height:17px;opacity:.75;flex-shrink:0;color:var(--admin-blue-light);}
  .drawer-header h3{margin:0;font-size:1rem;color:#fff;font-weight:600;flex:1;}
  .drawer-header .close-x{position:static;}
  .drawer-body{padding:1.4rem;overflow-y:auto;flex:1;}
  .drawer-section{display:none;}
  .drawer-section.active{display:block;}
  .drawer-body p{color:var(--text);line-height:1.6;font-size:.92rem;}
  .drawer-body .footnote{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem;}

  /* Zásuvka pole (mobil) se otevírá Z modalu, takže musí být nad ním —
     s modalem povýšeným na 5020 (viz komentář u `.modal-overlay`) se
     posouvá i ona. */
  #fieldSheetBackdrop{position:fixed;inset:0;background:rgba(3,26,42,.6);z-index:5022;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
  #fieldSheetBackdrop.active{opacity:1;visibility:visible;}
  #fieldSheet{position:fixed;top:0;left:0;right:0;z-index:5025;display:flex;flex-direction:column;max-height:min(70vh,560px);background:var(--panel);border-bottom:1px solid var(--border);border-radius:0 0 16px 16px;box-shadow:0 12px 28px rgba(0,0,0,.4);padding-top:env(safe-area-inset-top);transform:translateY(-100%);visibility:hidden;transition:transform var(--admin-speed) ease,visibility 0s linear var(--admin-speed);}
  #fieldSheet.active{transform:translateY(0);visibility:visible;transition:transform var(--admin-speed) ease,visibility 0s linear 0s;}
  /* U rich textu je formátovacích tlačítek devět a na telefon se do jednoho řádku s akcemi
     nevejdou. Zrušit a Uložit proto drží horní řádek, formátování se zalomí pod ně. */
  .field-sheet-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;flex:0 0 auto;padding:.6rem .7rem;background:var(--panel2);border-bottom:1px solid var(--border);}
  .field-sheet-format-group{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem;min-width:0;}
  .field-sheet-toolbar button{background:none;border:none;color:var(--text);width:34px;height:34px;border-radius:6px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;}
  .field-sheet-toolbar button:hover{background:rgba(255,255,255,.1);}
  .field-sheet-spacer{flex:1;}
  .field-sheet-cancel{width:auto!important;padding:0 .8rem;font-weight:600;font-size:.85rem!important;color:var(--muted);}
  .field-sheet-toolbar .field-sheet-done{width:auto!important;padding:0 1rem!important;font-weight:700;font-size:.85rem!important;display:inline-flex;align-items:center;gap:.35rem;color:#fff;background:var(--admin-blue-primary);border-radius:8px;}
  .field-sheet-toolbar .field-sheet-done:hover{background:var(--admin-blue-light);}
  .field-sheet-done-icon{width:16px;height:16px;flex-shrink:0;}
  .field-sheet-body{flex:0 1 auto;overflow-y:auto;min-height:2.6rem;padding:1.1rem 1.2rem 1.4rem;color:var(--text);outline:none;}
  .field-sheet-body:focus{background:rgba(60,164,197,.06);}

  /* Potvrzení musí být vidět i přes otevřený modal — proto nejvyšší číslo
     v celé administraci. */
  #toast{position:fixed;top:14px;left:50%;right:auto;bottom:auto;display:flex;align-items:center;gap:.65rem;max-width:340px;padding:.75rem .8rem .75rem 1rem;border-radius:10px;border:1px solid transparent;font-weight:600;font-size:.88rem;box-shadow:0 10px 30px rgba(0,0,0,.15);opacity:0;transform:translate(-50%,-10px);transition:opacity .25s ease,transform .25s ease;z-index:5030;pointer-events:none;}
  #toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
  #toast.toast-ok{background:#eafaf1;color:#155c3c;border-color:#bfe8d1;}
  #toast.toast-warn{background:#fdf6e3;color:#7a5c00;border-color:#f0dfa6;}
  #toast-msg{flex:1;}
  #toast-close{flex-shrink:0;background:none;border:none;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:inherit;opacity:.55;cursor:pointer;font-size:1rem;line-height:1;}
  #toast-close:hover{opacity:1;}
  @media (max-width:600px){ #toast{top:auto;bottom:1.25rem;left:1.25rem;right:1.25rem;max-width:none;transform:translateY(10px);} #toast.show{transform:translateY(0);} }

  /* Sedí v hlavičce webu, ne jako plovoucí tlačítko nad obsahem - to se po scrollu překrývalo
     s modrou lištou i s logem. Zavřít sidebar jde i klepnutím na podklad (#sidebarBackdrop). */
  #mobileToggle{display:none;flex:0 0 auto;width:40px;height:40px;border-radius:9px;border:none;background:var(--admin-blue-primary);color:#fff;align-items:center;justify-content:center;cursor:pointer;}
  #mobileToggle svg{width:20px;height:20px;}
  #sidebarBackdrop{display:none;position:fixed;inset:0;background:rgba(3,26,42,.6);z-index:5008;}
  #sidebarBackdrop.active{display:block;}

  @media (max-width: 900px){
    #mobileToggle{display:flex;}
    body.panel-open #mobileToggle{display:none;}
    
    #sidebar{width:var(--admin-sw-expanded);transform:translateX(-100%);transition:transform var(--admin-speed) ease;}
    #sidebar.mobile-open{transform:translateX(0);box-shadow:6px 0 24px rgba(0,0,0,.45);}
    #sidebar .sidebar-brand, #sidebar .sidebar-item-text, #sidebar .sidebar-user-info{opacity:1;width:auto;}
    #sidebar .sidebar-item-text{flex:1;}
    #sidebar .sidebar-heading{opacity:1;visibility:visible;}
    #sidebar .badge{opacity:1;}
    #sidebar .sidebar-user-chevron{opacity:1;width:14px;}
    #sidebar .sidebar-item--nested .sidebar-item-text{padding-left:14px;}
    
    #drawer, #sidebar.expanded ~ #drawer{left:0;width:100vw;}
    .drawer-body{padding:1rem;}
    
    /* Akce nahoru, formátování na vlastní řádek pod ně. */
    .field-sheet-format-group{order:2;width:100%;padding-top:.45rem;}
    .field-sheet-spacer, .field-sheet-cancel, .field-sheet-toolbar .field-sheet-done{order:1;}
    .field-sheet-toolbar button{width:32px;height:32px;}

    .site-topnav-inner{padding-block:.7rem;gap:.6rem;}
    .site-logo-icon{width:44px;height:44px;}

    /* Mobil: jen zkrácený název, tlačítko Nápověda vedle něj je řešené globálně. */
    .demo-top-banner-bar{padding:.45rem 0;}
    .demo-top-banner-bar-inner{padding:0 1.1rem;gap:.7rem;}
    .demo-top-banner-title-full{display:none;}
    .demo-top-banner-title-short{display:inline;}
    .site-footer-main{padding-top:2rem;padding-bottom:1.5rem;}

    .site-topnav-cta{display:none;}
    
    .site-nav-wrap{min-width:0;position:static;}
    .site-nav-toggle{display:flex;}
    .site-nav-add{display:none;}
    .site-topnav{position:sticky;}
    .site-topnav .site-nav-items{display:none;flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--site-card-bg);border-top:1px solid var(--site-border);box-shadow:0 12px 28px rgba(21,21,15,.15);padding:.4rem 1.1rem;z-index:20;}
    .site-nav-wrap.nav-open .site-nav-items{display:flex;}
    .site-topnav .site-nav-items span.nav-pill{white-space:nowrap;display:block;padding:.65rem .75rem;border-radius:4px;height:auto;}
    .site-topnav .site-nav-items .nav-item-wrap{width:100%;}
    /* Podtržení dole (desktop) nedává v rozbaleném mobilním seznamu smysl -
       položky jsou stackované na výšku, ne rozprostřené do plné výšky
       hlavičky. Mobil si drží dřívější vyplněný pill. */
    .site-topnav .site-nav-items span.nav-pill.active-page{background:var(--site-ink);color:var(--site-accent-ink);}
    .site-topnav .site-nav-items span.nav-pill.active-page::before{display:none;}

    .site-hero{padding:3.8rem 0;max-height:none;}
    .hero-inner{grid-template-columns:1fr;gap:1.8rem;}
    .hero-arrow-deco{display:block;position:static;width:46px;margin:.2rem 0 1rem -.5rem;animation:hero-arrow-bounce-up 1.4s ease-in-out infinite;}
    .site-section{padding-top:2.2rem;padding-bottom:3.4rem;}

    .site-hint{max-width:none;}
    /* Na úzkých displejích menší ambientní ikona, ať nesedí pod textem. */
    .site-hint-body{flex-direction:column;align-items:flex-start;}
    .site-section.alt > *{width:auto;max-width:none;}
    .service-grid, .feature-grid, .step-grid, .gallery-grid{grid-template-columns:1fr;}
    
    #vyhody-grid, #moznosti-grid{grid-template-columns:1fr;}
    /* Jeden sloupec: dvousloupcové dividery výše musí ustoupit - stejná specificita (:nth-child), aby přebily. */
    .navod-list{grid-template-columns:1fr;gap:1.1rem;}
    .navod-item:nth-child(n){border-left:none;padding:1.1rem 0 0;border-top:1px solid rgba(255,255,255,.25);}
    .navod-item:nth-child(1){padding-top:0;border-top:none;}
    #site-articles-teaser, #site-articles-page{grid-template-columns:1fr;}
    .poptavka-form{max-width:none;}
    
    .site-footer-main{grid-template-columns:1fr 1fr;gap:1.6rem .8rem;}
    .footer-col--about{grid-column:1 / -1;}
    .site-footer .footer-nav-list a, .site-footer .footer-nav-list span{font-size:.81rem;}
    
    /* Tlačítko je skryté, takže po něm nemá zůstat rezervované místo. */
    .footer-menu-add{display:none;}
    .footer-col-head{padding-right:0;}
    
    .compare-table, .article-demo-card table, .article-detail-body table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  }

  @media (max-width: 600px){
    .hero-text h1{font-size:1.6rem;}
    .hero-text p{font-size:.98rem;}
    .site-section h2{font-size:1.2rem;}
    .metrics-stats-grid{grid-template-columns:repeat(2,1fr);}
    .detail-grid{grid-template-columns:1fr;}
    .modal{padding:1.1rem;}

    /* Patička na telefonech na jeden sloupec (PO 2026-07-29). Ve dvou
       sloupcích měl každý ~170 px, takže se "metrics.blueorcawebsites.eu"
       trhalo uprostřed slova a modré tlačítko se lámalo na dva řádky.
       word-break:break-word z globálního pravidla se tu vypíná - v jednom
       sloupci se URL vejde celá a lámání uprostřed slova je jen na škodu. */
    .site-footer-main{grid-template-columns:1fr;gap:1.6rem;}
    .site-footer .footer-nav-list a, .site-footer .footer-nav-list span{word-break:normal;}
  }

  /* Na dotyku vyjíždí každé modální okno shora (stejný vzor jako #fieldSheet) místo centrovaného dialogu - virtuální klávesnice ho tak nikdy nezakryje. */
  @media (hover:none){
    .modal-overlay{display:flex;align-items:flex-start;justify-content:stretch;opacity:0;visibility:hidden;transition:opacity var(--admin-speed) ease,visibility 0s linear var(--admin-speed);}
    .modal-overlay.active{opacity:1;visibility:visible;transition:opacity var(--admin-speed) ease,visibility 0s linear 0s;}
    .modal, .modal.modal-wide, .site-modal{position:fixed;top:0;left:0;right:0;width:100%;max-width:100%;max-height:min(78vh,640px);margin:0;border-radius:0 0 16px 16px;padding-top:calc(1.5rem + env(safe-area-inset-top));box-shadow:0 14px 28px rgba(0,0,0,.4);transform:translateY(-100%);transition:transform var(--admin-speed) ease;}
    .modal-overlay.active .modal, .modal-overlay.active .site-modal{transform:translateY(0);}

    /* Zoom je na mobilu povolený (a11y), a iOS Safari sám přiblíží stránku při
       fokusu do pole pod 16 px - vstupní pole proto na dotyku držíme na 16 px. */
    .field input, .field textarea, .select-field select,
    .poptavka-form .field input, .poptavka-form .field select, .poptavka-form .field textarea,
    /* .wysiwyg-toolbar select doplněn 2026-07-29 - byl jediné pole mimo tohle
       pravidlo. Cena: na 320px displeji se lišta zalomí o řádek navíc
       (naměřeno 71 → 100 px, od 375 px výš beze změny, nikde vodorovný
       přesah). Užší padding to nezachrání (95 px se pořád nevejde), takže
       radši čisté pravidlo než mikrooptimalizace, co stejně nefunguje. */
    .wysiwyg-toolbar select,
    .fake-wysiwyg-body, #pageSelectSearch{font-size:16px;}
  }

.hero-cta-row{ display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center; justify-content:flex-start; margin-top:1.8rem; }
.hero-cta-primary{
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--site-accent); color:var(--site-accent-ink); border:none; border-radius:9px;
  padding:.95rem 2rem; font-size:1rem; font-weight:700; cursor:pointer;
  box-shadow:0 12px 26px rgba(21,21,15,.35);
  transition:background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.hero-cta-primary:hover{ transform:translateY(-1px); box-shadow:0 16px 30px rgba(21,21,15,.42); }

.hero-cta-secondary{
  display:inline-flex; align-items:center; gap:.4rem;
  background:none; border:none; border-bottom:2px solid var(--site-accent); color:var(--site-ink); border-radius:0;
  padding:0 0 .2rem; font-size:.94rem; font-weight:600; cursor:pointer;
  transition:color .15s ease;
}
.hero-cta-secondary:hover{ opacity:.6; }
/* Ikony play/otazník (2026-08-11, čtvrté kolo, PO: "k Spustit ukázku
   ikonku play, k Nápověda ikonku otazníčku"); zároveň odstraněn odkaz
   "O administraci" z HERO řady (`#hero-anchor-btn` + jeho JS handler,
   viz script.js). */
.hero-cta-icon{ width:1.05em; height:1.05em; flex-shrink:0; }

#tour-cursor{
  position:fixed; width:22px; height:22px; z-index:100000;
  border-radius:50%; background:rgba(26,26,26,.85); border:2px solid #fff;
  box-shadow:0 0 0 3px rgba(26,26,26,.18), 0 3px 10px rgba(0,0,0,.35);
  transform:translate(-50%,-50%); pointer-events:none; display:none;
  transition:left .55s cubic-bezier(.25,.46,.45,.94), top .55s cubic-bezier(.25,.46,.45,.94);
}
#tour-cursor.clicking{ animation:tour-click .35s ease; }
@keyframes tour-click{
  0%{ transform:translate(-50%,-50%) scale(1); }
  50%{ transform:translate(-50%,-50%) scale(.6); }
  100%{ transform:translate(-50%,-50%) scale(1); }
}

#tour-highlight{
  position:fixed; pointer-events:none; z-index:99999; border-radius:10px;
  background:transparent;
  box-shadow:0 0 0 3px var(--admin-blue-primary), 0 0 22px 4px rgba(31,125,165,.4);
  opacity:0; transition:opacity .25s ease;
}

#tour-stopbar{
  position:fixed; left:50%; bottom:22px; transform:translate(-50%,140%);
  z-index:2000000; display:flex; align-items:center; gap:1rem;
  width:max-content; max-width:min(680px, calc(100vw - 2rem));
  background:#1a1a1a; color:#fff; border-radius:12px;
  padding:.75rem 1rem .75rem 1.25rem; box-shadow:0 10px 30px rgba(0,0,0,.35);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
#tour-stopbar.show{ transform:translate(-50%,0); }
#tour-caption{ font-size:.95rem; line-height:1.4; flex:1 1 auto; min-width:0; }
#tour-caption:empty{ display:none; }
#tour-stop-btn{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; color:#1a1a1a; border:none; border-radius:8px;
  padding:.55rem 1rem; font-size:.9rem; font-weight:700; cursor:pointer;
}
#tour-stop-btn:hover{ background:#eee; }
#tour-stop-btn .tour-esc{
  font-size:.72rem; font-weight:600; opacity:.6;
  border:1px solid rgba(0,0,0,.28); border-radius:4px; padding:0 .35rem;
}
.tour-cta-glow{ animation:tour-glow 1.2s ease infinite; border-radius:8px; }
@keyframes tour-glow{
  0%,100%{ box-shadow:0 0 0 0 rgba(21,21,15,.55); }
  50%{ box-shadow:0 0 0 10px rgba(21,21,15,0); }
}
@media (max-width:640px){
  #tour-stopbar{ bottom:12px; flex-wrap:wrap; }
  #tour-caption{ font-size:.85rem; flex-basis:100%; }
}

/* ---------------------------------------------------------------------------
   Scroll reveal — standard animací pro weby značky (PO 2026-08-23).
   Pravidla: projects/jan-matousek/knowledge/standard-animaci-webu.md

   Při načtení se to, co je hned vidět, jen prolne (bez posunu). Při scrollu
   prvek prolne a přijede o kousek zdola — třídu `reveal-posun` přiděluje
   skript prvkům, které při registraci ležely pod ohybem.
   --------------------------------------------------------------------------- */
.reveal {
    opacity: 0;
    transition: opacity .55s ease-out, transform .55s ease-out;
    transition-delay: var(--reveal-delay, 0s);
}
.reveal.reveal-posun { transform: translateY(16px); }
/* Registrace `.reveal` běží až po prvním vykreslení (skript je `defer`).
   Přidat třídu prvku, který prohlížeč UŽ nakreslil, spustí přechod do
   PRŮHLEDNA: text se objeví, prolne pryč a teprve pak se vrátí. Naměřeno
   2026-08-23 na studeném načtení auditu — 58 prvků naráz, přesně to, co PO
   popsal jako „úplně naprd". Po dobu registrace proto přechody vypínáme. */
.reveal-pripravuje .reveal { transition: none !important; }

/* Lišta a hlavička při první návštěvě hlavní stránky: sjedou shora
   (PO 2026-08-23 „mají se hlavičky s lištou vysunout"). */
.reveal.reveal-shora { transform: translateY(-12px); }

.reveal.is-visible   { opacity: 1; transform: none; }
/* Řádky tabulek nikdy neposouvat — uvnitř obalu s `overflow` posun přeteče
   a obal na dobu animace dostane posuvník, který pak zmizí. */
.reveal.reveal-fade  { transform: none; }
@media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
}

/* Výchozí schovaná poloha pro úvodní vysunutí (2026-08-23, v4). Třídu
   `topbar-intro` přidává inline skript v <head> — musí padnout před prvním
   vykreslením, jinak blok blikne. STEJNÁ hodnota pro lištu i hlavičku, aby
   spolu zůstaly slepené; stačí, když je větší než výška bloku. Pohyb dolů
   pak obstará JS jedním sdíleným `transform`. */
html.topbar-intro .network-bar, html.topbar-intro .site-topnav { transform: translateY(-200px) !important; }


/* ── Rychlost zasouvání a vysouvání bloku ─────────────────────────────────
   PO 2026-08-23: „rychlost zasunutí a vysunutí hlavičky musíme nějak
   regulovat, chci ale linear animace a ne zas přehnaně dlouhé."
   ⚠ Ruší tím pravidlo z 2026-08-12 („žádná transition na transform,
   hlavička má odrolovat spolu s webem") — blok do teď kopíroval scroll
   1:1 a PO ho chce tlumený. `linear` je výslovné zadání, ne volba.
   Lišta i hlavička dostávají TÝŽ předpis, jinak by se během pohybu
   rozpojily — a právě rozpojení byla původní stížnost. Rychlost je
   v jedné proměnné, ať se ladí na jednom místě. */
:root { --topbar-rychlost: 180ms; }

.network-bar, .site-topnav {
    transition: transform var(--topbar-rychlost) linear;
}

@media (prefers-reduced-motion: reduce) {
    .network-bar, .site-topnav { transition: none; }
}

/* Preskoceni navigace (WCAG 2.4.1) — vzor prevzat z blueorcawebsites.eu.
   Nalez vlastniho auditu 2026-08-25: a11y-skip-nav chybel. */
.skip-link{position:absolute;top:-9999px;left:-9999px;z-index:9999;padding:.5rem 1rem;background:#031A2A;color:#e0f0f6;font-size:.9rem;text-decoration:none;border-radius:0 0 4px 4px;}
.skip-link:focus{top:0;left:0;}
