/* LKTO portál — jediný soubor vzhledu (CLAUDE.md › Vzhled jen v jednom CSS jádra).
   Návrh: docs/navrh-vzhledu (Základ vzhledu). Světlý režim výchozí (čitelnost na slunci), tmavý pro večer.
   Velikosti v rem → tlačítka A−/A+ mění velikost písma celé stránky. */

@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-400-normal.woff2) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-600-normal.woff2) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/ibm-plex-sans-latin-700-normal.woff2) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/ibm-plex-mono-latin-400-normal.woff2) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/ibm-plex-mono-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/ibm-plex-mono-latin-600-normal.woff2) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ── Barvy (tokeny) ── návrh docs/12: světlý pro tablet na slunci, tmavý pro věž a večer, výchozí podle zařízení */
.lk{--ink:#0F172A;--ink2:#2B3A55;--muted:#5B6880;--line:#D6DDE8;--lineStrong:#CBD4E1;--ground:#F3F5F9;--surface:#FFFFFF;--surface2:#F6F8FC;
  --accent:#1F5FD6;--accentSoft:#E6EEFB;--primary:#1F5FD6;--onPrimary:#FFFFFF;--tabOn:#E3E9F3;
  --warn:#9A5B00;--warnSoft:#FFF1D6;--crit:#B4232F;--critSoft:#FDE7E9;--ok:#157F45;--okSoft:#E3F6EA;--neutralSoft:#E6EBF3;
  --bar:#FFFFFF;--barLine:#D6DDE8;--onInk:#FFFFFF;--barText:#5B6880;--shadow:0 1px 2px rgba(15,23,42,.06);--pop:0 12px 32px rgba(15,23,42,.18);
  --bnav:0px}
.lk.dark{--ink:#E8EDF5;--ink2:#C4CEDD;--muted:#93A1B8;--line:#263350;--lineStrong:#2E3B5A;--ground:#0A0F1A;--surface:#121A29;--surface2:#19233A;
  --accent:#8DB4FF;--accentSoft:#132241;--primary:#2F6FEB;--onPrimary:#FFFFFF;--tabOn:#1B2742;
  --warn:#F2B33D;--warnSoft:#2A2110;--crit:#FF8A8F;--critSoft:#3A1519;--ok:#2FBF71;--okSoft:#10291C;--neutralSoft:#19233A;
  --bar:#0D1422;--barLine:#1C2740;--onInk:#0A0F1A;--barText:#93A1B8;--shadow:none;--pop:0 12px 32px rgba(0,0,0,.5)}
.lk{color-scheme:light}
.lk.dark{color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body.lk{margin:0;font-family:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:1rem;line-height:1.45;
  color:var(--ink);background:var(--ground);min-height:100vh}
.mono{font-family:'IBM Plex Mono',ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
a{color:var(--accent)}a:hover{color:var(--ink)}
button,select,input,textarea{font-family:inherit;font-size:inherit;color:inherit}
h1{margin:0;font-size:1.75rem;font-weight:700}
h2{margin:0;font-size:1.19rem}
h3{margin:0;font-size:1rem}
p{margin:0}
.muted{color:var(--muted)}
.small{font-size:.8125rem}
.nowrap{white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Lišta aplikace (docs/12 §3): orel = domů, název aplikace, záložky; vpravo hodiny, SOS, účet ── */
.appbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.5rem;min-height:60px;padding:0 .75rem;
  background:var(--bar);border-bottom:1px solid var(--barLine)}
.appbar .home{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;flex:none}
.appbar .home:hover{background:var(--tabOn)}
.orel{display:block;width:62px;height:34px;background:var(--ink);-webkit-mask:url(/static/orel-maska.png) center/contain no-repeat;
  mask:url(/static/orel-maska.png) center/contain no-repeat}
.appbar .home{width:auto;min-width:48px;padding:0 .25rem}
.appname{font-weight:700;font-size:1.125rem;color:var(--ink);text-decoration:none;margin-right:.5rem;white-space:nowrap}
.appname:hover{color:var(--ink)}
.apptabs{display:flex;gap:4px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
.apptabs a{display:inline-flex;align-items:center;height:40px;padding:0 .875rem;border-radius:10px;color:var(--barText);text-decoration:none;
  font-weight:600;font-size:.9375rem;white-space:nowrap}
.apptabs a:hover{color:var(--ink);background:var(--tabOn)}
.apptabs a.on{color:var(--ink);background:var(--tabOn)}
.bar-r{display:flex;align-items:center;gap:.25rem;margin-left:auto;flex:none}
.clock{text-align:right;line-height:1.15;margin-right:.5rem}
.clock .utc{font-size:1.25rem;font-weight:600;color:var(--ink)}
.clock .utc span,.clock .loc{font-size:.8125rem;color:var(--barText)}
.ibtn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;color:var(--ink);text-decoration:none}
.ibtn:hover{background:var(--tabOn);color:var(--ink)}
.ibtn.sos{color:var(--crit)}
button.ibtn{border:0;background:transparent;cursor:pointer;padding:0}
.menu{position:relative}
.menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px}
.menu>summary::-webkit-details-marker{display:none}
.menu>summary:hover{background:var(--tabOn)}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--surface2);
  border:1px solid var(--lineStrong);font-size:.8125rem;font-weight:600;color:var(--ink)}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);width:min(300px,calc(100vw - 1.5rem));background:var(--surface);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--pop);padding:.5rem;display:flex;flex-direction:column;gap:.25rem;z-index:40}
.menu-who{display:flex;flex-direction:column;padding:.5rem .625rem .625rem;border-bottom:1px solid var(--line);margin-bottom:.25rem}
.menu-who span{font-size:.8125rem;color:var(--muted)}
.menu-item{display:flex;align-items:center;min-height:44px;padding:0 .625rem;border-radius:10px;color:var(--ink);text-decoration:none;
  background:none;border:0;width:100%;text-align:left;font-weight:600;cursor:pointer}
.menu-item:hover{background:var(--tabOn);color:var(--ink)}
.menu-item.danger{color:var(--crit)}
.menu-item.strong{color:var(--accent)}
.menu-row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;border-radius:10px;background:var(--surface2);margin:.125rem 0}
.seg{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 .375rem;border-radius:8px;color:var(--ink2);text-decoration:none;
  font-size:.875rem;font-weight:600;text-align:center}
.seg:hover{color:var(--ink)}
.seg.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);outline:1px solid var(--line)}
.devbar{background:var(--warnSoft);color:var(--warn);border-bottom:1px solid var(--warn);text-align:center;font-size:.8125rem;padding:.25rem 1rem}

/* Mobil: záložky aplikace dole (palec), nahoře jen orel, název a účet */
.bottomnav{display:none}
@media (max-width:720px){
  .lk.has-bottom{--bnav:64px}
  .appbar{min-height:56px;padding:0 .25rem 0 .25rem;gap:.25rem}
  .appbar .apptabs{display:none}
  .appbar .appname{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}
  .clock .loc{display:none}
  .clock .utc{font-size:1.0625rem}
  .bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;height:var(--bnav);padding:0 .25rem env(safe-area-inset-bottom);
    background:var(--bar);border-top:1px solid var(--barLine)}
  .bottomnav>a,.more-tabs>summary{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    color:var(--barText);text-decoration:none;font-size:.75rem;font-weight:600;list-style:none;cursor:pointer;height:100%}
  .more-tabs{flex:1 1 0;min-width:0;position:relative}
  .more-tabs>summary::-webkit-details-marker{display:none}
  .bottomnav>a span,.more-tabs>summary span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bottomnav>a.on{color:var(--accent)}
  .more-pop{position:absolute;right:0;bottom:calc(100% + 8px);min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:14px;
    box-shadow:var(--pop);padding:.375rem;display:flex;flex-direction:column}
  .more-pop a{display:flex;align-items:center;min-height:48px;padding:0 .75rem;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600}
  .more-pop a.on{background:var(--tabOn)}
  .has-bottom main.wrap{padding-bottom:calc(var(--bnav) + 1.5rem)}
  .has-bottom .foot{padding-bottom:calc(var(--bnav) + 1rem)}
  .has-bottom .pos-mbar{bottom:var(--bnav)}
  .has-bottom .samo-bar{bottom:calc(var(--bnav) + .5rem)}
  .has-bottom .pos-toasts{bottom:calc(var(--bnav) + 5rem)}
}

/* ── Obsah ── */
main.wrap{max-width:1440px;margin:0 auto;padding:1.25rem 1.5rem 2.5rem;display:flex;flex-direction:column;gap:1.25rem}
.crumbs{font-size:.875rem;color:var(--muted)}
.crumbs:not(:has(a)){display:none}
.titlebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.875rem}
.titlebar .l,.titlebar .r{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}
/* Panel s formulářem (docs/12 §4.5): <details class="sheet"><summary class="btn">+ Nový…</summary><div class="sheet-body">…</div></details>.
   Vysune se zprava (PC, tablet) / zespodu (mobil); zavře ho × (totéž summary) nebo klik vedle. Po chybě (422) ho server pošle otevřený. */
details.sheet{display:inline-block}
details.sheet>summary{list-style:none;cursor:pointer}
details.sheet>summary::-webkit-details-marker{display:none}
details.sheet[open]>.sheet-body{position:fixed;z-index:56;top:0;right:0;bottom:0;width:min(560px,100vw);overflow-y:auto;overscroll-behavior:contain;
  background:var(--surface);color:var(--ink);border-left:1px solid var(--line);box-shadow:-16px 0 48px rgba(0,0,0,.28);padding:1.25rem 1.25rem 2.5rem;text-align:left}
details.sheet[open]>summary{position:fixed;z-index:55;top:.875rem;right:calc(min(560px,100vw) + .75rem);width:48px;height:48px;min-height:0;padding:0;
  border-radius:12px;font-size:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);justify-content:center}
details.sheet[open]>summary::after{content:"×";font-size:1.875rem;font-weight:400;line-height:1}
details.sheet[open]>summary::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(8,12,20,.5)}
.sheet-body>h2{margin:0 0 .25rem;font-size:1.25rem}
.sheet-body>.t2{margin:0 0 1rem}
.sheet-body>form{margin-top:1rem}
@media (max-width:720px){
  details.sheet[open]>.sheet-body{top:76px;left:0;width:auto;border-left:0;border-top:1px solid var(--line);border-radius:18px 18px 0 0;
    box-shadow:0 -16px 48px rgba(0,0,0,.28);padding:1.125rem 1rem calc(2.5rem + env(safe-area-inset-bottom))}
  details.sheet[open]>summary{top:14px;right:.75rem}
}
.subnav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.subnav a{display:inline-flex;align-items:center;gap:.375rem;min-height:40px;padding:0 .875rem;border-radius:999px;font-size:.9375rem;font-weight:600;
  color:var(--ink2);text-decoration:none;background:var(--surface);border:1px solid var(--line);white-space:nowrap}
.subnav a:hover{color:var(--ink);border-color:var(--lineStrong)}
.subnav a.on{color:var(--onPrimary);background:var(--primary);border-color:var(--primary)}
.subnav a.on .mono{color:inherit;opacity:.8}
.subnav a .mono{color:var(--muted)}
.foot{max-width:1440px;margin:0 auto;padding:0 1.5rem 2rem;color:var(--muted);font-size:.8125rem;display:flex;gap:1rem;flex-wrap:wrap}

.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.card.pad{padding:1.125rem 1.25rem;display:flex;flex-direction:column;gap:1rem}
.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}
.card-head .acts{display:flex;gap:.625rem;flex-wrap:wrap;align-items:center}
.card-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.875rem}
.card-foot{padding:.875rem 1.25rem;border-top:1px solid var(--line);background:var(--surface2);border-radius:0 0 16px 16px}
.error-card{padding:1.5rem;max-width:640px;display:flex;flex-direction:column;gap:1rem}
.empty{padding:1.5rem 1.25rem;color:var(--muted)}

/* Hlavička dne (mřížka údajů) */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.facts>div{padding:.875rem 1.25rem;border-right:1px solid var(--line)}
.facts>div:last-child{border-right:none}
.facts .k{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.facts .v{font-weight:600;font-size:1rem}
.facts .v2{font-size:.8125rem;color:var(--muted)}

/* Dlaždice (úvod, sekce, Správa) */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.tile{display:flex;flex-direction:column;gap:.375rem;padding:1rem 1.125rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  color:var(--ink);text-decoration:none;min-height:96px}
.tile:hover{border-color:var(--ink2);color:var(--ink)}
.tile b{font-size:1.0625rem}
.tile span{color:var(--ink2);font-size:.875rem}
.tile.off{opacity:.65}
.section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:.25rem 0 0}

/* ── Úvod = portál (docs/12 §3): pozdrav, Pokračovat, Dnes na letišti, Moje aplikace, Moje účty ── */
.hello h1{font-size:1.625rem;line-height:1.2}
.hello-sub{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin-top:.375rem;font-size:.875rem;color:var(--muted)}
.cont{display:flex;align-items:center;gap:.875rem;min-height:68px;padding:0 1rem;border-radius:16px;background:var(--primary);color:var(--onPrimary);
  text-decoration:none;max-width:640px}
.cont:hover{color:var(--onPrimary);opacity:.94}
.cont-t{flex:1;display:flex;flex-direction:column;min-width:0}
.cont-t span{font-size:.8125rem;opacity:.85}
.cont-t b{font-size:1.125rem}
.today{padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-width:640px}
.today-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;font-size:.875rem}
.today-head .state{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--muted)}
.dot.on{background:var(--ok)}
.today-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.today-vals>div{background:var(--surface2);border-radius:10px;padding:.5rem .625rem;display:flex;flex-direction:column;min-width:0}
.today-vals span{font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:.6875rem;color:var(--muted)}
.today-vals b{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.today-counts{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.875rem;color:var(--ink2)}
.today-counts b{color:var(--ink)}
.today-counts .c-fly{color:var(--warn)}
.today-counts .c-queue{color:var(--accent)}
.home-apps{display:flex;flex-direction:column;gap:.625rem}
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.625rem}
.app-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;min-height:88px;padding:.5rem;border-radius:16px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);text-decoration:none;font-size:.875rem;font-weight:600;text-align:center}
.app-tile:hover{border-color:var(--lineStrong);color:var(--ink)}
.app-tile svg{color:var(--ic,var(--accent))}
.ic-provoz,.ic-deska{--ic:#4C8DFF}.ic-radar{--ic:#1E9E57}.ic-bar,.ic-pokladna{--ic:#C98A1A}.ic-ja{--ic:#8B5CF6}.ic-ucty{--ic:#0EA5B7}
.ic-brigady{--ic:#EA6A2A}.ic-palivo,.ic-nadrz{--ic:#D9485F}.ic-osoby,.ic-letadla{--ic:#0F9D8A}.ic-nastaveni{--ic:#64748B}.ic-sos{--ic:var(--crit)}
.lk.dark .ic-provoz,.lk.dark .ic-deska{--ic:#8DB4FF}.lk.dark .ic-radar{--ic:#2FBF71}.lk.dark .ic-bar,.lk.dark .ic-pokladna{--ic:#F2B33D}
.lk.dark .ic-ja{--ic:#C9A2FF}.lk.dark .ic-ucty{--ic:#5FD0D6}.lk.dark .ic-brigady{--ic:#FF9F6B}.lk.dark .ic-palivo,.lk.dark .ic-nadrz{--ic:#FF8A8F}
.lk.dark .ic-osoby,.lk.dark .ic-letadla{--ic:#5FD0C0}.lk.dark .ic-nastaveni{--ic:#93A1B8}
.money{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.625rem;max-width:640px}
.money-card{padding:.875rem 1rem;display:flex;flex-direction:column;gap:.25rem;text-decoration:none;color:var(--ink)}
.money-card span{font-size:.75rem}
.money-card b{font-size:1.375rem}
.portal{width:100%;max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.portal .cont,.portal .today,.portal .money{max-width:none}

/* Stavové dlaždice (Provoz serveru) */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.25rem}
.stat .k{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.stat .v{font-size:1.375rem;font-weight:700}
.stat .v2{font-size:.8125rem;color:var(--ink2)}
.stat.warn{border-color:var(--warn);background:var(--warnSoft)}
.stat.crit{border-color:var(--crit);background:var(--critSoft)}

/* ── Tlačítka ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:0 1rem;border-radius:12px;
  background:var(--surface);color:var(--ink);border:1px solid var(--lineStrong);font-weight:600;font-size:.9375rem;text-decoration:none;cursor:pointer}
.btn:hover{border-color:var(--ink2);color:var(--ink)}
.btn.sm{min-height:40px;padding:0 .75rem;border-radius:10px;font-size:.875rem}
.btn.primary{background:var(--primary);color:var(--onPrimary);border-color:var(--primary)}
.btn.primary:hover{color:var(--onPrimary);opacity:.92}
.btn.danger{background:var(--crit);color:#FFFFFF;border-color:var(--crit)}
.btn.link{border:none;background:none;color:var(--accent);padding:0;min-height:0}
.inline{display:inline}

/* ── Štítky ── */
.pill{display:inline-flex;align-items:center;gap:6px;padding:.3rem .75rem;border-radius:999px;font-weight:700;font-size:.8125rem;letter-spacing:.04em}
.pill.ok{background:var(--okSoft);color:var(--ok)}
.pill.warn{background:var(--warnSoft);color:var(--warn)}
.pill.crit{background:var(--critSoft);color:var(--crit)}
.pill.neutral{background:var(--neutralSoft);color:var(--ink2)}
.tag{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;font-weight:700;background:var(--neutralSoft);color:var(--ink2);white-space:nowrap}
.tag.vlp{background:var(--ink);color:var(--onInk)}
.tag.accent{background:var(--accentSoft);color:var(--accent)}
.tag.warn{background:var(--surface);border:1px solid var(--warn);color:var(--warn)}
.tag.crit{background:var(--critSoft);color:var(--crit)}
.tag.ok{background:var(--okSoft);color:var(--ok)}
.chk{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.875rem}
.chk.ok{color:var(--ok)}.chk.warn{color:var(--warn)}.chk.crit{color:var(--crit)}.chk.off{color:var(--muted);font-weight:400}

/* ── Hlášky ── */
.alert{border:1px solid var(--line);border-radius:10px;padding:.75rem 1rem;background:var(--surface)}
.alert.ok{border-color:var(--ok);background:var(--okSoft);color:var(--ok)}
.alert.warn{border-color:var(--warn);background:var(--warnSoft)}
.alert.warn b{color:var(--warn)}
.alert.crit{border-color:var(--crit);background:var(--critSoft)}
.alert.crit b{color:var(--crit)}

/* ── Formuláře ── */
.form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.form.col{flex-direction:column;flex-wrap:nowrap;align-items:stretch}
.card-body.form:not(.col){flex-direction:row}
.form.col>.field.grow{flex:0 0 auto}
.field{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.field.grow{flex:1 1 320px}
.field label{font-size:.8125rem;color:var(--ink2);font-weight:600}
.field .hint{font-size:.8125rem;color:var(--muted)}
input[type=text],input[type=time],input[type=number],input[type=date],input[type=datetime-local],input[type=password],input[type=email],input[type=tel],input[type=search],select,textarea{
  min-height:48px;padding:0 .75rem;border:1px solid var(--lineStrong);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.9375rem;max-width:100%}
textarea{padding:.5rem .625rem;min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
input.w-time{width:7.5rem}
input.w-num{width:6.5rem}
.checkline{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;min-height:44px}
.checkline input{width:20px;height:20px}
details.more>summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:36px;display:flex;align-items:center}

/* ── Tabulky ── */
.tablewrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:.9375rem}
table.t th{text-align:left;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:.625rem .75rem}
table.t td{padding:.75rem;border-top:1px solid var(--line);vertical-align:top}
table.t th:first-child,table.t td:first-child{padding-left:1.25rem}
table.t th:last-child,table.t td:last-child{padding-right:1.25rem}
table.t tr.warn td{background:var(--warnSoft)}
table.t tr.void td{color:var(--muted);text-decoration:line-through}
.t2{font-size:.8125rem;color:var(--muted)}
table.t th.num,table.t td.num{text-align:right}
td.neg,.neg{color:var(--crit)}
table.t tr.muted td{color:var(--muted)}
/* Mobil: tabulka se 4+ sloupci = seznam karet (data-stack a popisky data-l doplní server — tabulky.rs) */
@media (max-width:720px){
  table.t[data-stack],table.t[data-stack]>tbody,table.t[data-stack]>tbody>tr,table.t[data-stack]>tbody>tr>td{display:block;width:auto}
  table.t[data-stack]>thead{display:none}
  table.t[data-stack]>tbody>tr{padding:.75rem 1rem .625rem;border-top:1px solid var(--line)}
  table.t[data-stack]>tbody>tr:first-child{border-top:0}
  table.t[data-stack]>tbody>tr>td{position:relative;border:0;padding:.1875rem 0 .1875rem 7.5rem !important;text-align:left !important;
    min-height:1.6em;overflow-wrap:anywhere;background:none}
  table.t[data-stack]>tbody>tr>td::before{content:attr(data-l);position:absolute;left:0;top:.375rem;width:7rem;color:var(--muted);
    font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  table.t[data-stack]>tbody>tr>td:first-child,table.t[data-stack]>tbody>tr>td[data-l=""],table.t[data-stack]>tbody>tr>td[colspan]{padding-left:0 !important}
  table.t[data-stack]>tbody>tr>td:first-child{font-size:1rem;font-weight:600;margin-bottom:.25rem}
  table.t[data-stack]>tbody>tr>td:first-child::before,table.t[data-stack]>tbody>tr>td[data-l=""]::before,table.t[data-stack]>tbody>tr>td[colspan]::before{content:none}
  table.t[data-stack]>tbody>tr>td:empty{display:none}
  table.t[data-stack]>tbody>tr>td .btn,table.t[data-stack]>tbody>tr>td form.inline{margin-top:.25rem}
  table.t[data-stack]>tbody>tr.warn{background:var(--warnSoft)}
  table.t[data-stack]>tbody>tr.muted>td,table.t[data-stack]>tbody>tr.void>td{color:var(--muted)}
  .tablewrap:has(>table.t[data-stack]){overflow:visible}
}

/* Přepínač dne (Kniha) */
.daynav{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.daynav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--ink)}
.daynav-btn.off{color:var(--line)}
.daynav-day{padding:0 .625rem;font-weight:600}

/* Filtrační štítky */
.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 .75rem;border-radius:999px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink2);font-size:.875rem;font-weight:600;text-decoration:none}
.chip:hover{border-color:var(--ink2);color:var(--ink)}
.chip.on{border-color:var(--primary);background:var(--primary);color:var(--onPrimary)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* ── Deník (časová osa) ── */
ol.journal{list-style:none;margin:0;padding:0}
ol.journal>li{display:grid;grid-template-columns:92px 170px 1fr;gap:.875rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--line)}
ol.journal>li:last-child{border-bottom:none}
ol.journal>li.hl{background:var(--warnSoft)}
ol.journal .txt{white-space:pre-line}
ol.journal>li.void .txt{text-decoration:line-through;color:var(--muted)}
ol.journal .time{font-weight:600}
ol.journal .time2{font-size:.75rem;color:var(--muted)}
ol.journal .meta{font-size:.8125rem;color:var(--muted);margin-top:.25rem}
ol.journal .was{font-size:.8125rem;color:var(--ink2);margin-top:.375rem;border-left:3px solid var(--warn);padding-left:.5rem}
ol.journal .was s{color:var(--muted)}

/* Provozní stav teď / v čase */
.statebox{border:1px solid var(--line);border-radius:10px;background:var(--ground);padding:.875rem 1rem;display:flex;flex-direction:column;gap:.5rem}
.statebox.warn{border-color:var(--warn);background:var(--warnSoft)}
.statebox .h{font-weight:700}
.kv{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;row-gap:.25rem;font-size:.875rem}
.kv>span:nth-child(odd){color:var(--ink2)}
.kv>span:nth-child(even){font-weight:600}
.fuel-prices{display:flex;flex-direction:column;gap:.875rem}
.fuel-prices .h{font-weight:700;margin-bottom:.25rem}
.split{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:flex-start}
.split>.main{flex:999 1 560px;min-width:0}
.split>.side{flex:1 1 280px;min-width:0}

/* Přihlášení */
.login-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;align-items:start}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;align-items:start}
.narrow{max-width:520px}
input.pin{font-size:1.375rem;letter-spacing:.3em;max-width:12rem}
.qr svg{width:220px;height:220px;display:block}
.qr-pay{display:flex;flex-direction:column;gap:.75rem}
.qr-pay .qr{align-self:flex-start;padding:12px;background:#FFFFFF;border-radius:8px;border:1px solid var(--line)}
.linkbox{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.8125rem;word-break:break-all;background:var(--ground);border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem}

fieldset.roles{border:1px solid var(--line);border-radius:8px;padding:.5rem .875rem;display:flex;flex-wrap:wrap;gap:0 1.25rem;margin:0}
fieldset.roles legend{font-size:.8125rem;color:var(--ink2);font-weight:600;padding:0 .25rem}
table.matrix td.c,table.matrix th{text-align:center}
table.matrix td:first-child,table.matrix th:first-child{text-align:left}
table.matrix td.grp{background:var(--ground);font-weight:700;font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}

/* ── Provozní deska (mod-provoz, docs/12 §4.1): K STARTU → LETÍ (fantomy z radaru) → DNES UKONČENÉ ── */
.lk{--go:#157F45;--land:var(--primary);--qH:var(--accent);--airH:#9A5B00;--airSoft:#FFF6E0;--airLine:#E5C27A}
.lk.dark{--go:#157F45;--qH:#7FAAFF;--airH:#F2B33D;--airSoft:#17130A;--airLine:#5C4613}
.warnline{color:var(--warn);font-weight:600}
.dhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}
.dhead-l,.dhead-r{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}
.dhead h1{font-size:1.5rem}
.dlink{display:inline-flex;align-items:center;gap:.375rem;min-height:40px;padding:0 .75rem;border-radius:10px;color:var(--ink2);text-decoration:none;font-weight:600;font-size:.9375rem}
.dlink:hover{background:var(--tabOn);color:var(--ink)}
.deska{display:flex;flex-direction:column;gap:1.5rem}
.dservice{display:flex;flex-wrap:wrap;gap:.375rem 1.5rem;align-items:center;padding:.5rem .875rem;border-radius:12px;background:var(--surface2);
  border:1px solid var(--line);font-size:.8125rem;color:var(--ink2);margin-bottom:-.5rem}
.dservice b{color:var(--ink)}
.ds-state{font-family:'IBM Plex Sans',system-ui,sans-serif;font-weight:600;color:var(--muted)}
.ds-state.on{color:var(--ok)}
.ds-vlp{font-family:'IBM Plex Sans',system-ui,sans-serif}
.dstats{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:-.5rem}
.dstat{display:inline-flex;align-items:center;gap:.375rem;min-height:36px;padding:0 .75rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:.875rem;color:var(--muted)}
.dstat b{color:var(--ink)}
.dstat .c-air{color:var(--airH)}.dstat .c-queue{color:var(--qH)}
.dsec{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.dsec-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.dsec-h{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.25rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex:1 1 auto}
.dsec-h .mono{font-weight:600;opacity:.8}
.dsec-h.queue{color:var(--qH)}.dsec-h.air{color:var(--airH)}.dsec-h.done{color:var(--muted)}
.btn.d-new{min-height:48px;padding:0 1.25rem;font-size:1rem;font-weight:700}
.dtools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}
details.dtool{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-width:0;max-width:100%}
details.dtool>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .5rem;min-height:40px;padding:.25rem .75rem;font-size:.875rem;color:var(--ink2)}
details.dtool>summary::-webkit-details-marker{display:none}
details.dtool[open]{flex-basis:100%}
details.dtool[open]>summary{border-bottom:1px solid var(--line)}
.dtool-k{font-weight:700;color:var(--ink)}
.dtool-ok{color:var(--ok);font-weight:700}
.dtool-ed{color:var(--muted);margin-left:.125rem}
.dtool-body{padding:.75rem;display:flex;flex-direction:column;gap:.625rem}
.dtool-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;font-size:.9375rem}
.dtool-row form{margin:0 0 0 auto}
.dbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem}
.dbar-sub{font-size:.8125rem;color:var(--muted);margin-right:.125rem}
.deska .chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid var(--line);background:var(--neutralSoft);border-radius:999px;padding:.125rem .625rem;font-size:.875rem;min-height:28px}
.deska .chip.air{border-color:var(--airLine);background:var(--airSoft)}
.deska .chip.void{color:var(--muted);text-decoration:line-through}
.chip-s{font-size:.75rem;color:var(--muted);text-decoration:none;display:inline-block}
.chip form{margin:0}
.chip-x{border:0;background:transparent;color:var(--muted);font-size:1.125rem;line-height:1;cursor:pointer;padding:0 .125rem;min-width:24px;min-height:24px}
.chip-x:hover{color:var(--crit)}
.dstation{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:.5rem .625rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.dst-l{display:flex;align-items:center;gap:.375rem;flex:0 1 auto}
.dstation input[type=text]{flex:1 1 180px;min-width:0}
/* Karty letů */
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:.75rem;align-items:start;margin:0;padding:0;list-style:none}
.dgrid>.empty,.dlist>.empty{grid-column:1 / -1;padding:1rem;border:1px dashed var(--line);border-radius:12px}
.fcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.625rem;display:flex;flex-direction:column;gap:.625rem;box-shadow:var(--shadow);min-width:0}
.fcard.tow,.fcard.air{border-color:var(--airLine)}
.fcard.blocked{border-color:var(--crit)}
.fcard.pending,.frow.pending{border-style:dashed;opacity:.88}
.fcard.pending .fc-when::after{content:"čeká na odeslání"}
.fc-info{position:relative;display:flex;align-items:flex-start;gap:.75rem;padding:.625rem;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
.fc-ico{width:44px;height:44px;border-radius:12px;background:var(--neutralSoft);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--ink2)}
.fcard.l-aerovlek .fc-ico,.fcard.l-vlecna .fc-ico{color:var(--airH)}
.fc-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.1875rem}
.fc-reg{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;line-height:1.2}
.fc-reg .mono{font-size:1.3125rem;font-weight:600}
a.fc-edit{color:var(--ink);text-decoration:none}
a.fc-edit::after{content:"";position:absolute;inset:0;border-radius:12px}
.fc-info:hover{border-color:var(--lineStrong)}
.fc-reg .t2{font-size:.8125rem}
.fc-tags{display:inline-flex;flex-wrap:wrap;gap:.25rem;margin-left:auto}
.fc-crew{font-size:.9375rem;color:var(--ink2)}
.fc-main .warnline,.fc-main a:not(.fc-edit){position:relative;z-index:1}
.fc-no{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;font-size:.75rem;color:var(--muted);white-space:nowrap}
.fc-time{display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap;text-align:right}
.fc-time .t2 b{color:var(--ink)}
.fc-dur{font-size:1.5rem;font-weight:600;line-height:1.1;color:var(--airH)}
.tag.l-aerovlek,.tag.l-vlecna{background:var(--airSoft);color:var(--airH)}
.tag.l-motorovy{background:var(--accentSoft);color:var(--accent)}
.tag.l-prilet{background:#EFE6FB;color:#5B2F99}
.lk.dark .tag.l-prilet{background:#25183A;color:#C9A2FF}
.btn.go,.btn.land{width:100%;min-height:60px;border:0;border-radius:12px;font-size:1.1875rem;font-weight:700;letter-spacing:.06em;color:#FFFFFF;gap:.625rem}
.btn.go{background:var(--go)}
.btn.land{background:var(--land);min-height:56px;font-size:1.125rem}
.btn.go:hover,.btn.land:hover{color:#FFFFFF;opacity:.92}
.go-s{font-size:.8125rem;font-weight:600;letter-spacing:0;opacity:.85}
.fc-acts{display:flex;flex-direction:column;gap:.375rem;margin:0}
.fc-acts>form{margin:0}
.fc-start{display:flex;flex-direction:column;gap:.5rem;margin:0}
details.fc-towpick>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:40px;padding:0 .625rem;
  border-radius:10px;border:1px dashed var(--airLine);font-size:.875rem;color:var(--ink2)}
details.fc-towpick>summary::-webkit-details-marker{display:none}
details.fc-towpick>summary b{color:var(--ink)}
.fc-change{color:var(--accent);font-weight:600;font-size:.8125rem}
details.fc-towpick[open] .fc-change{display:none}
.fc-tow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.5rem;margin-top:.5rem}
.fc-tow label{display:flex;flex-direction:column;gap:.125rem;font-size:.75rem;color:var(--ink2);font-weight:600}
.fc-tow input{width:100%}
.fc-more{display:flex;gap:1rem;align-items:center;justify-content:flex-end;font-size:.8125rem;padding:0 .25rem}
.fc-more form{margin:0}
details.fc-else>summary{list-style:none;cursor:pointer;justify-content:center;width:100%;min-height:36px;font-size:.8125rem;color:var(--ink2);border-color:var(--line)}
details.fc-else>summary::-webkit-details-marker{display:none}
details.fc-else form{margin-top:.5rem}
/* Fantom z radaru */
.dghost{border:2px dashed var(--airLine);border-radius:16px;padding:.75rem;background:var(--airSoft);display:flex;flex-direction:column;gap:.75rem;min-width:0}
.dg-top{display:flex;align-items:flex-start;gap:.75rem}
.dg-top .ogn{margin-top:.5rem}
.dg-top .fc-reg .mono{font-size:1.3125rem;font-weight:600}
.dg-t{font-size:.8125rem;color:var(--airH)}
.btn.dg-go{min-height:56px;border:0;border-radius:12px;background:#B7791F;color:#FFFFFF;font-size:1.0625rem;font-weight:700;letter-spacing:.04em}
.btn.dg-go:hover{color:#FFFFFF;opacity:.92}
/* Dnes ukončené */
details.dsec-fold{display:flex;flex-direction:column;gap:.5rem}
details.dsec-fold>summary{list-style:none;cursor:pointer}
details.dsec-fold>summary::-webkit-details-marker{display:none}
details.dsec-fold>summary .dsec-h::after{content:"▾";font-size:.875rem;margin-left:.25rem}
details.dsec-fold:not([open])>summary .dsec-h::after{content:"▸"}
.dsec-sum{font-size:.875rem}
.dlist{display:flex;flex-direction:column;margin:.5rem 0 0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.dlist-h,.frow .fr-top{display:grid;grid-template-columns:5.25rem 7rem minmax(0,1fr) 9rem 9rem 4rem;align-items:center;gap:.5rem;padding:0 .875rem}
.dlist-h{margin-top:.5rem;min-height:32px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.dlist-h>span:last-child,.fr-dur{text-align:right}
.frow{position:relative;border-top:1px solid var(--line);padding:.375rem 0}
.frow:first-child{border-top:0}
.frow:hover{background:var(--surface2)}
.frow .fr-top{min-height:36px;font-size:.9375rem}
.frow .fr-top .tag{justify-self:start}
a.fr-reg{font-weight:600;color:var(--ink);text-decoration:none}
a.fr-reg::after{content:"";position:absolute;inset:0}
.fr-crew{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-sub{display:flex;flex-wrap:wrap;gap:.25rem .75rem;align-items:center;padding:0 .875rem .25rem calc(5.25rem + 1.375rem)}
.fr-price{position:relative;z-index:1;font-weight:600;color:var(--ink2)}
.dcancel{padding:.5rem .25rem 0}
.dcancel ul{margin:.25rem 0 0;padding-left:1.25rem}
/* Nový let — okno (bez JavaScriptu přes #novy) */
.d-fab{display:none}
.nfm{display:none;position:fixed;inset:0;z-index:50;align-items:flex-start;justify-content:center;padding:1.5rem 1rem}
.nfm.open,.nfm:target{display:flex}
body.nfm-on{overflow:hidden}
.nfm-bg{position:absolute;inset:0;background:rgba(3,5,10,.55)}
.nfm-box{position:relative;width:min(820px,100%);max-height:calc(100vh - 3rem);display:flex;flex-direction:column;margin:0;background:var(--surface);
  border:1px solid var(--lineStrong);border-radius:20px;box-shadow:var(--pop)}
.nfm-head{display:flex;align-items:center;gap:.75rem;min-height:64px;padding:0 .5rem 0 1.5rem;border-bottom:1px solid var(--line)}
.nfm-head h2{flex:1 1 auto;font-size:1.3125rem}
.nfm-body{flex:1 1 auto;overflow-y:auto;padding:1.125rem 1.5rem;display:flex;flex-direction:column;gap:1.125rem}
.nfm-foot{display:flex;gap:.75rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--line)}
.nfm-foot .btn{flex:1 1 0;min-height:60px;font-size:1.0625rem;font-weight:700;border-radius:14px;width:auto}
fieldset.nf-step{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem;min-width:0}
fieldset.nf-step>legend{padding:0;margin-bottom:.625rem;font-size:.8125rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
fieldset.nf-step>legend .t2{text-transform:none;letter-spacing:0;font-weight:500}
fieldset.nf-step.s2,fieldset.nf-step.s3{border-left:3px solid var(--airLine);padding-left:1rem}
.nf-types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}
.nf-type{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;min-height:84px;padding:.5rem;border-radius:14px;
  border:2px solid var(--line);background:var(--surface2);font-weight:600;font-size:.9375rem;cursor:pointer;text-align:center}
.nf-type input{position:absolute;opacity:0;pointer-events:none}
.nf-type svg{color:var(--ink2)}
.nf-type:has(input:checked){border-color:var(--primary);background:var(--accentSoft)}
.nf-type:has(input:checked) svg{color:var(--accent)}
.nf-type:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:1px}
.nf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.nf-grid .field{min-width:0}
.nf-extra{display:flex;flex-direction:column;gap:.5rem;padding:.75rem .875rem;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
details.nf-more>summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:36px;display:flex;align-items:center}
details.nf-more>input{width:100%;margin-top:.25rem}
/* Pole s velkým výběrem (vyber.js) */
.pick-src{position:absolute !important;width:1px !important;height:1px !important;opacity:0;pointer-events:none;overflow:hidden;clip:rect(0 0 0 0)}
.pick{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:52px;padding:0 .75rem 0 .875rem;border-radius:12px;
  border:1px solid var(--lineStrong);background:var(--surface);color:var(--ink);font-weight:600;font-size:1rem;text-align:left;cursor:pointer;min-width:0}
.pick:hover{border-color:var(--accent)}
.pick.empty{color:var(--muted);font-weight:500}
.pick-v{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pair .pick{flex:1 1 auto}
.vyber{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:1.5rem 1rem}
.vyber-bg{position:absolute;inset:0;background:rgba(3,5,10,.55)}
.vyber-box{position:relative;width:min(560px,100%);height:min(760px,calc(100vh - 3rem));display:flex;flex-direction:column;background:var(--surface);
  border:1px solid var(--lineStrong);border-radius:20px;box-shadow:var(--pop);overflow:hidden}
.vyber-head{display:flex;align-items:center;gap:.5rem;min-height:60px;padding:0 .375rem 0 1rem;border-bottom:1px solid var(--line)}
.vyber-ht{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}
.vyber-ht b{font-size:1.125rem}
.vyber-ht span{font-size:.75rem;color:var(--muted)}
.vyber-search{padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.vyber-search input{width:100%;min-height:52px;border-radius:14px;border:2px solid var(--primary);font-size:1.0625rem;background:var(--ground)}
.vyber-hint{font-size:.75rem;color:var(--muted);margin-top:.375rem}
.vyber-list{flex:1 1 auto;overflow-y:auto}
.vyber-grp{padding:.875rem 1rem .375rem;font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.vyber-row{display:flex;align-items:center;gap:.75rem;width:100%;min-height:60px;padding:0 1rem;border:0;border-bottom:1px solid var(--line);background:transparent;
  color:var(--ink);font-size:1.0625rem;font-weight:500;text-align:left;cursor:pointer}
.vyber-row:hover,.vyber-row.on{background:var(--accentSoft)}
.vyber-row.cur{box-shadow:inset 4px 0 0 var(--primary)}
.vyber-row.guest .vyber-t{color:#9A5B00}
.lk.dark .vyber-row.guest .vyber-t{color:#F2C46B}
.vyber-av{width:36px;height:36px;border-radius:50%;background:var(--neutralSoft);font-size:.8125rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none}
.vyber-main{display:flex;flex-direction:column;min-width:0;flex:0 1 auto}
.vyber-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vyber-t.mono{font-weight:600;font-size:1.125rem}
.vyber-s{font-size:.8125rem;color:var(--muted)}
.vyber-ok{color:var(--ok);font-weight:700;font-size:1.125rem}
.vyber-warn{display:inline-flex;align-items:center;height:22px;padding:0 .5rem;border-radius:6px;background:var(--critSoft);color:var(--crit);font-size:.75rem;font-weight:600;white-space:nowrap}
.vyber-tag{display:inline-flex;align-items:center;height:20px;padding:0 .4375rem;border-radius:6px;background:var(--warnSoft);color:var(--warn);font-size:.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;flex:none}
.vyber-n{margin-left:auto;font-size:.9375rem;font-weight:600;color:var(--ink2);flex:none}
.vyber-warn+.vyber-n,.vyber-tag+.vyber-n{margin-left:.25rem}
.vyber-main+.vyber-n,.vyber-main+.vyber-tag,.vyber-main+.vyber-warn,.vyber-main+.vyber-ok{margin-left:auto}
.vyber-more{padding:.75rem 1rem;font-size:.8125rem;color:var(--muted)}
.vyber-foot{padding:.625rem 1rem .875rem;border-top:1px solid var(--line)}
.vyber-foot:empty,.vyber-foot[hidden]{display:none}
.vyber-foot{display:flex;flex-direction:column;gap:.375rem}
.vyber-clear{align-self:center}
.pick.invalid{border-color:var(--crit);box-shadow:0 0 0 3px var(--critSoft)}
.form .pick,select.pick-src+.pick{min-height:48px;border-radius:10px;font-size:.9375rem}
.vyber-add{width:100%;min-height:52px;border-radius:14px;border:1px solid var(--airLine);background:var(--airSoft);color:var(--airH);font-weight:600;font-size:1rem;cursor:pointer}
@media (max-width:720px){
  .dhead h1{font-size:1.25rem}
  .dsec-head{position:sticky;top:56px;z-index:5;background:var(--ground);padding:.375rem 0;margin:-.375rem 0}
  .btn.d-new{display:none}
  .d-fab{display:inline-flex;align-items:center;gap:.5rem;position:fixed;right:1rem;bottom:calc(var(--bnav) + 1rem);z-index:25;min-height:56px;padding:0 1.25rem;
    border-radius:28px;background:var(--primary);color:var(--onPrimary);font-weight:700;font-size:1rem;text-decoration:none;box-shadow:0 8px 24px rgba(0,0,0,.3)}
  .d-fab:hover{color:var(--onPrimary)}
  .has-bottom .deska{padding-bottom:4.5rem}
  .dlist-h{display:none}
  .frow .fr-top{grid-template-columns:4.25rem 6rem minmax(0,1fr) 3.25rem;row-gap:0}
  .frow .fr-t{grid-column:2 / 4;font-size:.8125rem;grid-row:2}
  .frow .fr-t+.fr-t{grid-column:3 / 5;text-align:right}
  .frow .fr-dur{grid-column:4;grid-row:1}
  .fr-sub{padding-left:.875rem}
  .nfm,.vyber{padding:0}
  .nfm-box,.vyber-box{width:100%;height:100%;max-height:none;border-radius:0;border:0}
  .nfm-body{padding:1rem}
  .nfm-head{padding-left:1rem}
  .nfm-foot{padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom))}
  .nf-types{grid-template-columns:repeat(3,minmax(0,1fr))}
  .nfm-foot .btn{font-size:.9375rem;padding:0 .5rem;white-space:nowrap;gap:.375rem}
  .nf-type{min-height:72px;font-size:.875rem}
  .nf-grid{grid-template-columns:1fr}
  fieldset.nf-step.s2,fieldset.nf-step.s3{padding-left:.75rem}
  .fc-tow{grid-template-columns:1fr}
}
.btn.tall{min-height:52px}
.split>.side,.stack{display:flex;flex-direction:column;gap:1.25rem}
.pair{display:flex;gap:.375rem;min-width:0}
.pair>input{flex:1 1 auto;min-width:0}
.pair>select{flex:0 0 auto;max-width:48%}
input.w-reg{width:9.5rem}
fieldset.crew{flex-direction:column;gap:.5rem;padding:.75rem .875rem}
fieldset.crew .pair{max-width:560px}
.tabule{display:flex;flex-direction:column;gap:1.25rem}
ol.tq{margin:0;padding:.75rem 1.25rem .875rem 2.5rem;display:flex;flex-direction:column;gap:.25rem}
ol.journal>li.hist{grid-template-columns:1fr;gap:.125rem}
/* Uvolnění do provozu (Kniha) */
.rel-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.h3{margin:0 0 .5rem;font-size:.875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}
ul.rel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}
ul.rel-list>li{border:1px solid var(--line);border-radius:8px;padding:.375rem .625rem}
ul.rel-list>li.void .rel-name{text-decoration:line-through;color:var(--muted)}
.rel-name{font-weight:600}
.rel-forms{display:flex;flex-direction:column;gap:.75rem}
@media (max-width:720px){.rel-cols{grid-template-columns:1fr}}
/* ── Pokladna baru (pokladna.js) — barová aplikace na PC (docs/12 §4.4) ── */
main.wrap:has(>.pos){max-width:none}
.pos{display:flex;flex-direction:column;margin:-1.25rem -1.5rem 0}
.pos-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);min-height:calc(100dvh - 60px);align-items:stretch}
.pos-main{display:flex;flex-direction:column;gap:.875rem;padding:1rem 1.25rem;min-width:0}
.pos-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.pos-top .pos-me{margin-left:auto}
.pos-custbar{display:flex;flex-direction:column;gap:.375rem;position:relative}
.pos-custrow{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.pos-search{flex:0 1 380px;min-width:240px;min-height:52px;padding:0 1rem;border:2px solid var(--lineStrong);border-radius:14px;background:var(--surface);font-size:1.0625rem}
.pos-search:focus{border-color:var(--primary);outline:none}
.pos-chip{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .875rem;border-radius:22px;border:1px solid var(--lineStrong);background:var(--surface);
  font-weight:600;font-size:.9375rem;cursor:pointer;white-space:nowrap;color:var(--ink)}
.pos-chip .mono{font-weight:500;color:var(--ink2)}
.pos-chip .mono.neg{color:var(--crit)}
.pos-chip.on{border:2px solid var(--primary);background:var(--accentSoft)}
.pos-chip.cash{border-style:dashed;color:var(--airH)}
.pos-chip.cash.on{border-style:solid;border-color:var(--airH);background:var(--airSoft)}
.pos-hits{position:absolute;top:56px;left:0;z-index:20;width:min(520px,100%);list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);
  border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:var(--pop)}
.pos-hits li+li{border-top:1px solid var(--line)}
.pos-hits button{width:100%;display:flex;align-items:center;gap:.5rem;min-height:52px;padding:.375rem .875rem;border:none;background:var(--surface);text-align:left;cursor:pointer;font-size:1rem}
.pos-hits button:hover{background:var(--accentSoft)}
.pos-hits button .mono:last-child{margin-left:auto}
.pos-hits .pos-new{color:var(--airH);font-weight:600}
.pos-hits button.on{background:var(--accentSoft);box-shadow:inset 4px 0 0 var(--primary)}
.pos-hits button.guest .pos-hit-n{color:#9A5B00}
.lk.dark .pos-hits button.guest .pos-hit-n{color:#F2C46B}
.pos-hit-no{margin-left:auto;font-weight:600;color:var(--ink2)}
.pos-hits button .pos-hit-no+.mono{margin-left:.75rem;min-width:5.5rem;text-align:right}
.pos-hit-more{padding:.5rem .875rem;background:var(--surface)}
.pos-chip.list{font-weight:600}
.pos-chip.tab{color:#9A5B00;border-color:#D9A441}
.pos-chip.tab.on{border:2px solid #C78A1E;background:#FFF4DC}
.lk.dark .pos-chip.tab{color:#F2C46B;border-color:#8A6A2A}
.lk.dark .pos-chip.tab.on{background:#3A2E15;border-color:#F2C46B}
.pos-tabs{display:flex;flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none}
.pos-tabrow{width:100%;display:flex;align-items:center;gap:.75rem;min-height:56px;padding:.375rem 1rem;border:1px solid var(--line);border-radius:12px;
  background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;font-size:1.0625rem}
.pos-tabrow:hover{background:var(--accentSoft)}
.pos-tabrow.on{border:2px solid #C78A1E;background:#FFF4DC}
.lk.dark .pos-tabrow.on{background:#3A2E15;border-color:#F2C46B}
.pos-tabrow .mono{margin-left:auto;font-weight:600}
.pos-tabname{flex:1 1 220px;min-height:48px;padding:0 .875rem;border:2px solid var(--lineStrong);border-radius:12px;background:var(--surface);color:var(--ink);font-size:1rem}
.pos-tabname:focus{border-color:var(--primary);outline:none}
.pos-items{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.pos-cats{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.pos-cats button{flex:0 0 auto;min-height:52px;padding:0 1.25rem;border-radius:14px;border:0;background:var(--surface);color:var(--ink2);font-weight:700;font-size:1rem;cursor:pointer;
  box-shadow:inset 0 0 0 1px var(--line)}
.pos-cats button.on{background:var(--ink);color:var(--ground);box-shadow:none}
.pos-cats-sp{flex:1 1 auto}
.pos-cats .pos-find{font-weight:600}
.pos-isearch{min-height:52px;width:min(320px,100%);padding:0 1rem;border:2px solid var(--primary);border-radius:14px;background:var(--surface)}
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem}
.pos-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.5rem;min-height:118px;padding:.875rem;
  border:0;border-radius:16px;background:var(--tile,#DCE6F7);color:#0A0F1A;text-align:left;cursor:pointer;line-height:1.2}
.pos-tile .n{font-weight:700;font-size:1.0625rem}
.pos-tile .pr{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;width:100%}
.pos-tile .p{font-weight:600;font-size:1.25rem}
.pos-tile .g{font-size:.75rem;opacity:.75}
.pos-tile:hover{filter:brightness(1.04)}
.pos-tile:active{transform:scale(.98)}
.pos-tile.on{box-shadow:inset 0 0 0 3px #0A0F1A}
.pos-tile[disabled]{opacity:.45;cursor:not-allowed}
.pos-tile .q{position:absolute;top:.5rem;right:.5rem;min-width:2rem;height:2rem;border-radius:999px;background:#0A0F1A;color:#FFFFFF;
  display:flex;align-items:center;justify-content:center;font-size:.9375rem;padding:0 .375rem}
.pos-tile.t0{--tile:#F2C46B}.pos-tile.t1{--tile:#7EE2A8}.pos-tile.t2{--tile:#8DB4FF}.pos-tile.t3{--tile:#FFB38A}
.pos-tile.t4{--tile:#E7A3C1}.pos-tile.t5{--tile:#C9A2FF}.pos-tile.t6{--tile:#D9C7A3}.pos-tile.t7{--tile:#9ED7E0}
/* cenová hladina: proužek v barvě pásky + kolečko s kódem; dlaždice na políčka (porce jednoho nápoje) — docs/09 §10 */
.pos-tile.lv{border-top:8px solid var(--lv);padding-top:.625rem}
.pos-tile .lvb,.lvb{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:999px;
  font-size:.875rem;font-weight:700;box-shadow:0 0 0 2px rgba(10,15,26,.35);flex:none}
.pos-tile>.lvb{position:absolute;top:.5rem;right:.5rem}
.pos-tile.lv:not(.split)>.n{padding-right:2rem}
.pos-tile.split{grid-column:span 2;cursor:default;padding:.625rem .625rem .5rem;gap:.375rem}
.pos-tile.split.lv{padding-top:.5rem}
.pos-tile.split>.n{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:0 .25rem}
.pos-tile.split:active{transform:none}
.pos-tile .cells{display:grid;gap:.375rem;width:100%;flex:1}
.pos-tile .cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;min-height:64px;padding:.375rem .25rem;
  border:0;border-radius:12px;background:rgba(255,255,255,.55);color:#0A0F1A;cursor:pointer;line-height:1.15}
.pos-tile .cell .v{font-size:.875rem;font-weight:600;opacity:.8}
.pos-tile .cell .p{font-size:1.1875rem}
.pos-tile .cell .g{font-size:.6875rem}
.pos-tile .cell:hover{background:rgba(255,255,255,.75)}
.pos-tile .cell:active{transform:scale(.96)}
.pos-tile .cell.on{box-shadow:inset 0 0 0 3px #0A0F1A}
.pos-tile .cell[disabled]{opacity:.45;cursor:not-allowed}
.pos-tile .cell .q{top:.25rem;right:.25rem;min-width:1.5rem;height:1.5rem;font-size:.8125rem}
/* sloupcový graf (Bar › Statistika): jedna řada, tenké sloupce zaoblené nahoře, popisky osy výběrově, hodnota v title */
.barchart{display:flex;align-items:flex-end;gap:2px;height:220px;padding:0 0 1.5rem;border-bottom:1px solid var(--line);position:relative}
.bc-col{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;cursor:default}
.bc-bar{width:min(100%,28px);background:var(--primary);border-radius:4px 4px 0 0;min-height:0}
.bc-col:hover .bc-bar{filter:brightness(1.15)}
.bc-x{position:absolute;bottom:-1.375rem;font-size:.6875rem;color:var(--muted);white-space:nowrap}
.bc-x.hide{display:none}
table.t tr.total>td{border-top:2px solid var(--line)}
table.t tr.sub>td{font-size:.875rem;color:var(--ink2);border-top-style:dashed}
.lvl{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .25rem;border-radius:999px;font-size:.8125rem;
  font-weight:700;vertical-align:middle;box-shadow:0 0 0 1px var(--line)}
.lvl.lg{min-width:2rem;height:2rem;font-size:1rem}
fieldset.swatches{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;border:0}
fieldset.swatches legend{width:100%;margin-bottom:.25rem;font-size:.875rem;font-weight:600;color:var(--ink2)}
.swatch{display:inline-flex;align-items:center;gap:.375rem;min-height:40px;padding:0 .625rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:.875rem}
.swatch>span{width:1.25rem;height:1.25rem;border-radius:4px;box-shadow:0 0 0 1px rgba(10,15,26,.35)}
.swatch:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px var(--primary)}
.swatch input[type=radio]{margin:0}
.swatch input[type=color]{width:2.25rem;height:1.75rem;padding:0;border:0;background:none}
.pos-panel{position:sticky;top:60px;height:calc(100dvh - 60px);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--line)}
.pos-cust{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-bottom:1px solid var(--line)}
.pos-k{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pos-cust-h{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.pos-cust-h b{font-size:1.25rem}
.pos-x{margin-left:auto;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:1.5rem;cursor:pointer}
.pos-x:hover{background:var(--tabOn);color:var(--ink)}
.pos-bal{font-size:1rem}
.pos-uid{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.5rem;border-radius:8px;background:var(--warnSoft)}
.pos-acts{display:flex;flex-wrap:wrap;gap:.5rem}
.pos-basket{flex:1 1 auto;list-style:none;margin:0;padding:0;overflow-y:auto}
.pos-basket .empty{padding:2.5rem 1rem;text-align:center;color:var(--muted)}
.pos-line{display:grid;grid-template-columns:36px 1.75rem 36px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--line);font-size:.9375rem}
.pos-q{width:36px;height:36px;border-radius:10px;border:1px solid var(--lineStrong);background:var(--surface2);font-weight:700;font-size:1.125rem;cursor:pointer;color:var(--ink)}
.pos-n{text-align:center}
.pos-line .n{min-width:0;overflow:hidden;text-overflow:ellipsis}
.pos-line .t{text-align:right}
.pos-paybox{display:flex;flex-direction:column;gap:.625rem;padding:1rem;border-top:1px solid var(--line)}
.pos-sum{display:flex;justify-content:space-between;align-items:baseline;font-size:1.0625rem;color:var(--muted)}
.pos-sum b{font-size:1.875rem;color:var(--ink)}
.pos-done{min-height:44px;border-radius:12px;background:var(--okSoft);color:var(--ok);display:flex;align-items:center;justify-content:center;font-weight:600;text-align:center;padding:.25rem .5rem}
.pos-pay{min-height:64px;border:0;border-radius:16px;color:#FFFFFF;font-weight:700;font-size:1.125rem;cursor:pointer;width:100%}
.pos-pay.acc{background:var(--primary)}
.pos-pay.cash{background:var(--go)}
.pos-pay[disabled]{opacity:.45;cursor:not-allowed}
.pos-pay2{display:flex;gap:.625rem}
/* Hotově: Dává / Platí (stačí jedno), řádek Vrátit · spropitné (docs/09 §4) */
.pos-cash{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .625rem}
.pos-cash-f{display:flex;flex-direction:column;gap:.25rem}
.pos-cash-k{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pos-cash input{width:100%;min-height:48px;font-size:1.125rem;text-align:right}
.pos-change{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;min-height:1.75rem;font-size:1.0625rem}
.pos-ret b{font-size:1.5rem}
.pos-tip{color:var(--warn)}
.pos-done.change{flex-wrap:wrap;gap:.125rem .625rem;padding:.625rem .75rem;background:var(--okSoft)}
.pos-done.change .pos-done-k{font-size:1.125rem}
.pos-done.change b{font-size:2rem;line-height:1.1}
.pos-done.change .pos-done-t{flex-basis:100%;font-size:.8125rem;font-weight:500;color:var(--ink2)}
.pos-backdrop{position:fixed;inset:0;z-index:29;background:rgba(8,12,20,.45)}
.pos-sheet{position:fixed;inset:auto 0 0 0;max-height:85vh;overflow-y:auto;z-index:30;background:var(--surface);border-top:1px solid var(--line);
  box-shadow:0 -8px 30px rgba(0,0,0,.18);padding:1rem 1.25rem 1.5rem;display:flex;flex-direction:column;gap:.75rem}
@media (min-width:721px){.pos-sheet{inset:5vh auto auto 50%;transform:translateX(-50%);width:min(720px,94vw);border:1px solid var(--line);border-radius:12px}}
.pos-sheet-h{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.pos-sales>li{padding:.625rem 0;border-bottom:1px solid var(--line)}
.pos-sale-h{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem}
.pos-sale.wait{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.pos-rej{padding:.625rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.375rem}
.pos-toasts{position:fixed;left:1rem;bottom:1rem;z-index:40;display:flex;flex-direction:column;gap:.5rem;max-width:min(420px,calc(100vw - 2rem))}
.pos-toasts .alert{box-shadow:0 6px 20px rgba(0,0,0,.15)}
.pos-mbar{display:none}
@media (max-width:900px){
  .pos{margin:-1rem -1rem 0}
  .pos-body{grid-template-columns:1fr}
  .pos-panel{position:static;height:auto;border-left:0;border-top:1px solid var(--line)}
  .pos-search{flex:1 1 100%}
  .pos-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
  .pos-mbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;
    background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(0,0,0,.1)}
  .pos-mbar .btn{margin-left:auto}
  .pos{padding-bottom:4.5rem}
  .pos-toasts{bottom:5rem}
}

/* ── Samoobsluha baru (telefon člena) ── */
.samo{display:flex;flex-direction:column;gap:1rem;padding-bottom:4.5rem}
.samo-who{display:flex;align-items:center;gap:.5rem;font-size:1.125rem}
.samo-bal{font-size:1.125rem}
.samo-bal b{font-size:1.5rem}
.samo-list{list-style:none;margin:0;padding:0}
.samo-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1.25rem;border-top:1px solid var(--line)}
.samo-item:first-child{border-top:none}
.samo-item.on{background:var(--accentSoft)}
.samo-item label{display:flex;flex-direction:column;gap:.125rem;min-width:0}
.samo-item .n{font-weight:600}
.samo-qty{display:flex;align-items:center;gap:.375rem;flex:0 0 auto}
.samo-qty input{width:3.25rem;text-align:center;min-height:44px}
.samo-qty .btn{min-width:44px;min-height:44px;font-size:1.125rem}
.samo-bar{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.75rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 -4px 16px rgba(0,0,0,.08)}
.samo-bar .btn{min-height:52px;font-size:1.0625rem}

/* ── Palivo — výdej ve třech krocích (docs/12 §4.2) ── */
.fuel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}
.fuel-head h1{font-size:1.5rem}
.fuel-stock{display:flex;gap:1rem;font-size:.8125rem;color:var(--muted)}
.fuel-form{display:flex;flex-direction:column;gap:1.25rem;max-width:760px}
.js .fuel-form.after-ok{display:none}
fieldset.fuel-step{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem;min-width:0}
fieldset.fuel-step>legend{display:flex;align-items:center;gap:.5rem;padding:0;margin-bottom:.625rem;font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fs-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--neutralSoft);color:var(--ink);font-size:.75rem;letter-spacing:0}
.fuel-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}
.fuel-tile{position:relative;display:flex;flex-direction:column;justify-content:center;gap:.125rem;min-height:68px;padding:.5rem .75rem;border-radius:14px;
  border:2px solid var(--line);background:var(--surface);cursor:pointer;min-width:0}
.fuel-tile input{position:absolute;opacity:0;pointer-events:none}
.fuel-tile b{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fuel-tile span{font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fuel-tile:has(input:checked){border-color:var(--primary);background:var(--accentSoft)}
.fuel-tile:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:1px}
.fuel-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.fuel-kind{position:relative;display:flex;flex-direction:column;gap:.125rem;padding:.5rem .75rem;border-radius:12px;border:2px solid var(--line);background:var(--surface);cursor:pointer;min-width:0}
.fuel-kind input{position:absolute;opacity:0;pointer-events:none}
.fuel-kind span{font-size:.75rem;color:var(--muted)}
.fuel-kind:has(input:checked){border-color:var(--fk,var(--primary))}
.fuel-kind.k-natural{--fk:#1E9E57}.fuel-kind.k-nafta{--fk:#C98A1A}
.fuel-kind:has(input:checked) b::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--fk);margin-right:.375rem}
.fuel-liters{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.5rem .875rem;border-radius:14px;border:1px solid var(--lineStrong);background:var(--surface)}
.fuel-liters input{flex:0 1 9rem;min-width:0;width:9rem;min-height:64px;border:0;background:transparent;font-size:2.25rem;font-weight:600;padding:0}
.fuel-liters input:focus{outline:none}
.fuel-liters:focus-within{outline:3px solid var(--accent);outline-offset:1px}
.fl-u{font-size:1.25rem;color:var(--muted)}
.fl-price{margin-left:auto;font-size:.875rem;color:var(--ink2);text-align:right}
.fuel-payers{display:flex;flex-direction:column;gap:.625rem}
.fuel-club{display:flex;align-items:center;gap:.625rem;min-height:48px;padding:0 .875rem;border-radius:12px;background:var(--accentSoft);border:1px solid var(--line);font-size:.9375rem}
.fuel-payer-rows{display:flex;flex-direction:column;gap:.5rem}
.fuel-payer{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:flex-end}
.js .fuel-payer-rows:not(.split) .fuel-payer,.js .fuel-payer-rows .fp-hint{display:none}
.js .fuel-payer-rows.split .fuel-payer .field.grow{display:none}
.js .fuel-payer-rows.split .fuel-payer{display:inline-flex}
.fuel-payers.is-club .fuel-payer-rows{display:none}
.fp-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.fp-chip{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:0 .25rem 0 .875rem;border-radius:24px;background:var(--surface2);border:1px solid var(--lineStrong);font-weight:600}
.fp-name.guest{color:#9A5B00}
.lk.dark .fp-name.guest{color:#F2C46B}
.fp-l{font-size:.8125rem;color:var(--muted)}
.fp-how{height:32px;padding:0 .75rem;border-radius:16px;border:0;font-weight:600;font-size:.8125rem;cursor:pointer}
.fp-how.acc{background:var(--accentSoft);color:var(--accent)}
.fp-how.cash{background:var(--airSoft);color:var(--airH)}
.fp-x{width:32px;height:32px;border-radius:16px;border:0;background:transparent;color:var(--muted);font-size:1.25rem;cursor:pointer}
.fp-x:hover{color:var(--crit)}
.fp-add{min-height:48px;padding:0 1rem;border-radius:24px;border:1px dashed var(--lineStrong);background:transparent;color:var(--accent);font-weight:600;cursor:pointer}
.fuel-extra{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .875rem;border-radius:12px;background:var(--surface2);border:1px solid var(--line)}
.btn.go.fuel-save{min-height:60px}
.fuel-done{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;text-align:center;max-width:760px}
.fd-ico{width:68px;height:68px;border-radius:50%;background:var(--okSoft);color:var(--ok);display:flex;align-items:center;justify-content:center}
.fd-t{font-size:1.0625rem}
.btn.fd-next{min-height:56px;width:min(100%,360px);font-size:1.0625rem}
.fuel-recent{max-width:760px}
.fr-item{display:flex;flex-wrap:wrap;gap:.25rem .5rem;align-items:baseline;font-size:.9375rem}

/* ── Výsledovka ── */
.t.pnl .pnl-cat td{font-weight:600;border-top:1px solid var(--line)}
.t.pnl .pnl-det td{color:var(--ink2);font-size:.875rem;padding-top:.25rem;padding-bottom:.25rem}
.t.pnl .pnl-det td:first-child{padding-left:2rem}

/* ── Mobil ── */
@media (max-width:720px){
  main.wrap{padding:1rem 1rem 2rem}
  ol.journal>li{grid-template-columns:72px 1fr}
  ol.journal>li>.kind{grid-column:2}
  ol.journal>li>.body{grid-column:1 / -1}
  .facts>div{border-right:none;border-bottom:1px solid var(--line)}
}

/* ── Tisk ── */
@media print{
  .appbar,.bottomnav,.subnav,.foot,.devbar,.noprint,form,.btn{display:none !important}
  body.lk{background:#FFFFFF;color:#000000}
  .card{border-color:#999;break-inside:avoid}
  main.wrap{padding:0;max-width:none}
}

/* ── Radar: příjem OGN u letadla (🟢 slyšíme / 🔴 ticho / ⚪ bez zařízení), duchové na desce ── */
.ogn{display:inline-block;width:.625rem;height:.625rem;border-radius:50%;vertical-align:middle;margin:0 .125rem;flex:none}
.ogn.zive{background:var(--ok)}
.ogn.ticho{background:var(--crit)}
.ogn.bez{border:1.5px solid var(--muted);background:transparent}
.ghosts{display:flex;flex-direction:column;gap:.5rem;margin:0 0 1rem}
.ghost{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px dashed var(--warn);background:var(--warnSoft);border-radius:10px}

/* ── Mapa (Leaflet; static/mapa.js) ── */
.mapa{height:26rem;width:100%;border-radius:10px;border:1px solid var(--line);background:var(--neutralSoft);z-index:0}
.mapa.vysoka{height:min(70vh,44rem)}
.mapa.nizka{height:18rem}
.lk .leaflet-container{font-family:inherit;font-size:.8125rem}
.lk .leaflet-popup-content{margin:.625rem .75rem;line-height:1.4}
.lk.dark .leaflet-tile-pane{filter:invert(.92) hue-rotate(180deg) brightness(.9) contrast(.95)}
.lk.dark .leaflet-popup-content-wrapper,.lk.dark .leaflet-popup-tip{background:var(--surface);color:var(--ink)}
.lk.dark .leaflet-control-attribution,.lk.dark .leaflet-control-scale-line{background:rgba(19,27,40,.8);color:var(--ink2)}
.lk.dark .leaflet-control-attribution a{color:var(--accent)}
.legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.8125rem;color:var(--ink2);margin-top:.5rem}
.legend i{display:inline-block;width:.875rem;height:.625rem;border:2px solid currentColor;border-radius:2px;vertical-align:middle;margin-right:.25rem}
.legend .atz{color:#1F5FBF}.legend .ctr{color:#B42318}.legend .tra{color:#C2410C}.legend .hluk{color:#7E22CE}.legend .jina{color:#5B6676}
.legend .tra-off i{border-style:dashed}
.lk .leaflet-div-icon.ac-icon{background:none;border:none}
.ac-icon svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.lk .leaflet-tooltip.ac-label{padding:0 .3rem;font-size:.6875rem;font-weight:600;background:rgba(255,255,255,.88);border:0;border-radius:4px;box-shadow:none;color:#0E1726}
.lk .leaflet-tooltip.ac-label::before{display:none}
.lk.dark .leaflet-tooltip.ac-label{background:rgba(19,27,40,.88);color:#E8EDF4}
.legend .ac-ours{color:#1F5FBF}.legend .ac-flight{color:#C2410C}.legend .ac-other{color:#5B6676}
.legend .ac-ours i,.legend .ac-flight i,.legend .ac-other i{width:.625rem;height:.625rem;border-radius:50%;background:currentColor}
.tag.wrap{white-space:normal;text-align:left}
ul.plain{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.375rem}
ul.plain.types{margin:0}
ul.plain.card-body{padding:1rem 1.25rem;margin:0}
ul.plain.types>li{align-items:center;gap:.5rem}
.ed-pt{background:#fff;border:2px solid #7E22CE;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.35);cursor:move}
.ed-mid{background:#7E22CE;opacity:.55;border-radius:50%;cursor:copy}
.mapa.edit{cursor:crosshair}
.legend .bolt{color:#DC2626}.legend .bolt i{width:.5rem;height:.5rem;border-radius:50%;border:2px solid currentColor}
.drone{background:#7E22CE;border:2px solid #fff;transform:rotate(45deg);box-shadow:0 1px 3px rgba(0,0,0,.4)}
.drone.in-zone{background:#DC2626}
.legend .drn{color:#7E22CE}.legend .drn i{width:.55rem;height:.55rem;background:currentColor;transform:rotate(45deg)}
/* ── Radar přes celou obrazovku (docs/12 §4.3) ── */
main.wrap:has(>.radar-full){max-width:none}
.radar-full{position:relative;margin:-1.25rem -1.5rem 0;height:calc(100dvh - 60px);min-height:420px;background:var(--neutralSoft)}
.mapa.rmap{position:absolute;inset:0;height:auto;border:0;border-radius:0}
.rbar{position:absolute;left:.75rem;top:.75rem;right:.75rem;z-index:500;display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;pointer-events:none}
.rbar>*{pointer-events:auto}
.rseg{display:inline-flex;padding:3px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--pop)}
.rseg button{min-height:38px;padding:0 .875rem;border:0;border-radius:9px;background:transparent;color:var(--ink2);font-weight:600;font-size:.875rem;cursor:pointer}
.rseg button.on{background:var(--primary);color:var(--onPrimary)}
.rchip{min-height:44px;padding:0 .875rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:600;font-size:.875rem;cursor:pointer;box-shadow:var(--pop)}
.rchip.on{color:var(--accent);border-color:var(--accent);background:var(--accentSoft)}
.rtime{margin-left:auto;padding:.25rem .625rem;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-size:.75rem;color:var(--muted)}
details.rpanel{position:absolute;right:.75rem;top:4.25rem;z-index:500;width:min(340px,calc(100% - 1.5rem));max-height:calc(100% - 7rem);display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--pop);overflow:hidden}
details.rpanel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;min-height:48px;padding:0 1rem;font-weight:700}
details.rpanel>summary::-webkit-details-marker{display:none}
details.rpanel>summary::after{content:"▾";margin-left:auto;color:var(--muted)}
details.rpanel:not([open])>summary::after{content:"▸"}
.rlist{list-style:none;margin:0;padding:0 0 .25rem;overflow-y:auto;max-height:calc(100dvh - 15rem)}
.rlist>li.t2{padding:.75rem 1rem}
.rrow{display:grid;grid-template-columns:10px 6.5rem minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:.5rem;align-items:center;width:100%;padding:.5rem 1rem;border:0;
  border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font-size:.875rem}
.rrow:hover,.rrow.on{background:var(--accentSoft)}
.rrow i{width:10px;height:10px;border-radius:50%;grid-row:1 / 3}
.rrow .t2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr-v{text-align:right}
.rr-d{grid-column:2 / 5;font-size:.75rem}
.rlegend{position:absolute;left:.75rem;bottom:2.5rem;z-index:500;display:flex;flex-wrap:wrap;gap:.25rem .75rem;max-width:calc(100% - 1.5rem);padding:.375rem .625rem;border-radius:10px;
  background:var(--surface);border:1px solid var(--line);font-size:.75rem;color:var(--ink2);opacity:.94}
.rlegend i{display:inline-block;width:.625rem;height:.625rem;border:2px solid currentColor;border-radius:2px;vertical-align:middle;margin-right:.25rem}
.rlegend .ac-ours{color:#1F5FBF}.rlegend .ac-flight{color:#C2410C}.rlegend .ac-other{color:#5B6676}.rlegend .ac-far{color:#9AA6B8}
.rlegend .ac-ours i,.rlegend .ac-flight i,.rlegend .ac-other i,.rlegend .ac-far i{border-radius:50%;background:currentColor}
.rlegend .atz{color:#1F5FBF}.rlegend .ctr{color:#B42318}.rlegend .tra{color:#C2410C}.rlegend .drn{color:#7E22CE}.rlegend .bolt{color:#DC2626}
.lk.dark .rlegend .ac-ours,.lk.dark .rlegend .atz{color:#8DB4FF}.lk.dark .rlegend .ac-other{color:#93A1B8}
.radar-below{display:flex;flex-direction:column;gap:1.25rem;max-width:1440px;margin:1.25rem auto 0;width:100%}
/* ── Vzdušný prostor (docs/12 §4.3b): mapa vlevo, zóny a kniha pohybů vpravo ── */
main.wrap:has(>.space){max-width:none}
.space{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,520px);margin:-1.25rem -1.5rem 0;min-height:calc(100dvh - 60px)}
.space-map{position:sticky;top:60px;height:calc(100dvh - 60px);background:var(--neutralSoft)}
.mapa.smap{position:absolute;inset:0;height:auto;border:0;border-radius:0}
.space-side{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-left:1px solid var(--line);background:var(--ground);min-width:0}
.space-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.space-head h1{font-size:1.375rem}
.spanel{display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.75rem;box-shadow:var(--shadow);min-width:0}
.sp-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem;padding:.125rem .25rem .25rem}
.sp-h h2{font-size:1.125rem}
.spanel .card-foot{border-radius:12px;margin:0 -.25rem -.25rem}
.spanel .card-body{padding:.25rem}
.spanel ol.journal{margin:0}
.zone{border-radius:12px;border:1px solid var(--line);background:var(--surface2);padding:.5rem .625rem;display:flex;flex-direction:column;gap:.5rem}
.zone.on.k-tra{background:var(--okSoft);border-color:var(--ok)}
.zrow{display:flex;align-items:center;gap:.75rem}
.zbar{width:6px;align-self:stretch;min-height:36px;border-radius:3px;background:var(--lineStrong)}
.zone.k-atz .zbar{background:#4C8DFF}.zone.k-ctr .zbar{background:#B42318}.zone.k-tra .zbar{background:#C98A1A}.zone.on.k-tra .zbar{background:var(--ok)}
.zone.k-hluk .zbar{background:#7E22CE}
.zmain{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}
.zmain b{font-size:1rem}
.zst{font-size:.6875rem;font-weight:700;letter-spacing:.06em;padding:.25rem .5rem;border-radius:6px;background:var(--neutralSoft);color:var(--ink2);white-space:nowrap}
.zone.on.k-tra .zst{background:var(--ok);color:#FFFFFF}
details.zact>summary{list-style:none;cursor:pointer;width:100%}
details.zact>summary::-webkit-details-marker{display:none}
details.zact[open]>summary{display:none}
.zform{display:flex;flex-direction:column;gap:.5rem;margin:0}
.fl-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.flc{position:relative;cursor:pointer}
.flc input{position:absolute;opacity:0;pointer-events:none}
.flc span{display:inline-flex;align-items:center;min-height:44px;padding:0 .875rem;border-radius:10px;border:2px solid var(--line);background:var(--surface);font-weight:600}
.flc input:checked+span{border-color:var(--primary);background:var(--accentSoft);color:var(--accent)}
.flc input:focus-visible+span{outline:3px solid var(--accent);outline-offset:1px}
.zbtns{display:flex;gap:.5rem}
.zbtns .btn{flex:1 1 0}
details.zmulti{padding:0 .25rem}
.space-map .rlegend{bottom:1.75rem}
.rlegend .jina{color:#5B6676}.rlegend .tra-off i{border-style:dashed}
@media (max-width:1000px){
  .space{grid-template-columns:1fr;margin:-1rem -1rem 0}
  .space-map{position:relative;top:0;height:46vh}
  .space-side{border-left:0}
}
@media (max-width:720px){
  .radar-full{margin:-1rem -1rem 0;height:calc(100dvh - 56px - var(--bnav))}
  .rbar{left:.5rem;right:.5rem;top:.5rem}
  .rtime{display:none}
  details.rpanel{top:auto;bottom:.5rem;right:.5rem;left:.5rem;width:auto;max-height:55%}
  .rlegend{display:none}
}

/* ── Správa › Provoz serveru (docs/14): záložky, dlaždice jako odkazy, grafy, podíl zátěže ── */
.pv-nav{flex-wrap:wrap}
a.stat.pv-link{color:var(--ink);text-decoration:none}
a.stat.pv-link:hover{border-color:var(--ink2)}
.pv-alert-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}
.pv-problems{margin:.5rem 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.25rem}
.pv-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:1.25rem;align-items:start}
.pv-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}
.pv-msg{overflow-wrap:anywhere;min-width:12rem}
.pv-pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.8125rem;background:var(--surface2);
  border:1px solid var(--line);border-radius:8px;padding:.625rem .75rem;margin:.375rem 0 0;max-height:24rem;overflow:auto}
code.pv-sql{display:block;font-size:.75rem;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink2);max-width:60rem}
.pv-share{display:inline-block;vertical-align:middle;width:6rem;height:.5rem;border-radius:999px;background:var(--neutralSoft);overflow:hidden}
.pv-share>span{display:block;height:100%;background:var(--accent)}
.pv-inline{flex-wrap:nowrap;gap:.5rem;margin-top:.375rem}
.pv-inline input[type=text]{min-height:40px;width:14rem}
.pv-runs{list-style:none;margin:.375rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}
.card-head.pv-sub{border-top:1px solid var(--line)}
.pv-filter{align-items:flex-end}
svg.graf{display:block;width:100%;height:auto;overflow:visible}
.graf .g-grid{stroke:var(--line);stroke-width:1}
.graf .g-ax{fill:var(--muted);font-size:12px;font-family:'IBM Plex Sans',system-ui,sans-serif}
.graf .g-l{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.graf .g-a{fill:var(--accent);opacity:.12;stroke:none}
.graf .g-hit{fill:transparent}
.graf .g-hit:hover{fill:var(--ink);opacity:.06}
.g-1{stroke:var(--accent);--gk:var(--accent)}.g-2{stroke:#8B5CF6;--gk:#8B5CF6}.g-3{stroke:var(--crit);--gk:var(--crit)}
.g-4{stroke:var(--warn);--gk:var(--warn)}.g-5{stroke:var(--muted);--gk:var(--muted);stroke-dasharray:4 4}
.lk.dark .g-2{stroke:#C9A2FF;--gk:#C9A2FF}
.g-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.8125rem;color:var(--ink2);margin-top:.375rem}
.g-legend span{display:inline-flex;align-items:center;gap:.375rem}
.g-k{display:inline-block;width:14px;height:3px;border-radius:2px;background:var(--gk)}
@media (max-width:720px){.graf .g-ax{font-size:16px}.pv-share{width:3.5rem}
  .pv-tiles{grid-template-columns:1fr 1fr;gap:.625rem}.pv-tiles .stat{padding:.75rem}.pv-tiles .v{font-size:1.0625rem}}
