/* Inspekce – PWA. Vzhled inspirovaný moderními iOS aplikacemi: modro-bílá, jemné přechody, zaoblené karty,
   velké dotykové cíle (≥ 48 px, ADR-0011 M-7), ovládání jednou rukou (hlavní akce dole), tmavý režim.
   Barvy organizace (white-label) přepisují proměnné --brand-* z /api/v1/public/branding. */

:root {
  /* Premium C – Operační panel (denní/světlý, schválený směr PR #35). Barva organizace přes --tenant-brand. */
  --brand: var(--tenant-brand, #095ce3);
  --brand-2: var(--tenant-brand-2, #3b8cff);
  --brand-ink: var(--tenant-brand-ink, #ffffff);
  --accent: #e5484d;

  --bg: #f2f6fa;
  --bg-grad: linear-gradient(180deg, #e8f0fb 0%, #f2f6fa 260px);
  --card: #ffffff;
  --card-2: #f5f8fc;
  --ink: #14283e;
  --ink-2: #52677e;
  --ink-3: #7d8fa3;
  --line: #d7e2ed;
  --shadow: 0 1px 2px rgba(21, 40, 61, 0.04), 0 12px 34px rgba(21, 40, 61, 0.05);
  --shadow-lg: 0 12px 40px rgba(9, 92, 227, 0.22);
  --ok: #1a9e5c;
  --warn: #c77700;
  --bad: #d93f45;
  --ok-bg: #e5f6ed;
  --warn-bg: #fff3dc;
  --bad-bg: #fde8e8;
  --info-bg: #e6efff;

  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 12px;
  --tap: 52px;
  --tabbar-h: 62px;
  --safe-b: env(safe-area-inset-bottom, 0px);
  --safe-t: env(safe-area-inset-top, 0px);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI Variable Display", "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    /* Premium A – Noční dispečink (tmavý) */
    --bg: #0d1722; --bg-grad: linear-gradient(180deg, #112033 0%, #0d1722 300px);
    --card: #142333; --card-2: #1a2c3e; --ink: #edf4fc; --ink-2: #afc0d3; --ink-3: #7e93a8;
    --line: #304457; --shadow: none; --shadow-lg: none;
    --ok-bg: rgba(137,222,194,.14); --warn-bg: rgba(237,197,124,.16); --bad-bg: rgba(229,96,100,.18); --info-bg: rgba(137,222,194,.12);
    --brand: #89dec2; --brand-2: #b6e8d6; --brand-ink: #103b30; --warn: #edc57c; color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0d1722; --bg-grad: linear-gradient(180deg, #112033 0%, #0d1722 300px);
    --card: #142333; --card-2: #1a2c3e; --ink: #edf4fc; --ink-2: #afc0d3; --ink-3: #7e93a8;
    --line: #304457; --shadow: none; --shadow-lg: none;
    --ok-bg: rgba(137,222,194,.14); --warn-bg: rgba(237,197,124,.16); --bad-bg: rgba(229,96,100,.18); --info-bg: rgba(137,222,194,.12);
    --brand: #89dec2; --brand-2: #b6e8d6; --brand-ink: #103b30; --warn: #edc57c; color-scheme: dark;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; height: 100%; }
body {
  background: var(--bg); background-image: var(--bg-grad); background-repeat: no-repeat;
  color: var(--ink); font: 16px/1.4 var(--font); -webkit-font-smoothing: antialiased;
  overscroll-behavior-y: none;
}
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--brand); }
svg.i { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }

#app { overflow-x: clip; max-width: 760px; margin: 0 auto; min-height: 100%;
       padding: calc(var(--safe-t) + 8px) max(16px, env(safe-area-inset-right, 0px)) calc(var(--tabbar-h) + 28px + var(--safe-b)) max(16px, env(safe-area-inset-left, 0px)); }
/* obrazovka s vlastní spodní lištou akcí (průvodce): bez navigace, místo pro lištu */
#app.flow { padding-bottom: calc(96px + var(--safe-b)); }
@media (min-width: 1000px) {
  #app { max-width: 1120px; padding-left: 280px; }
  #app.flow { padding-left: 16px; }
  .tabbar { left: max(16px, calc(50% - 560px)) !important; right: auto !important; margin: 0 !important; top: 24px; bottom: auto !important; width: 240px !important;
            flex-direction: column; align-items: stretch !important; height: auto !important; padding: 12px !important;
            border-radius: 22px; border: 0 !important; box-shadow: var(--shadow) !important; }
  .tabbar a { flex-direction: row !important; justify-content: flex-start !important; gap: 12px !important; padding: 12px 14px !important; font-size: 15px !important; }
  .tabbar .tab-new { order: -1; margin: 0 0 8px !important; width: auto !important; height: 52px !important; border-radius: 16px !important; transform: none !important; flex: none !important; }
  .actionbar { left: 280px !important; }
  /* formulář (flow) nemá boční navigaci → lišta akcí přes celou šířku, tlačítko pod formulářem */
  #app.flow .actionbar { left: 0 !important; }
  .tabbar .tab-new span { display: inline !important; }
  .grid-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---------------------------------------------------------------- hlavička */
.top { display: flex; align-items: center; gap: 12px; padding: 8px 0 14px; }
.top h1 { font: 700 28px/1.12 var(--font-display); letter-spacing: -0.02em; margin: 0; flex: 1; text-wrap: balance; overflow-wrap: anywhere; }
.top.compact { padding: 4px 0 10px; }
.top.compact h1 { font-size: 20px; line-height: 1.2; }
.top.compact .sub { font-size: 13px; margin-top: 2px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.top .right { flex: none; display: flex; align-items: center; gap: 8px; }
.top .sub { color: var(--ink-2); font-size: 15px; margin-top: 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.back { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--card); box-shadow: var(--shadow);
        display: grid; place-items: center; color: var(--brand); cursor: pointer; }
.org { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--ink-2); font-size: 14px; min-width: 0; }
.org .name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.demo-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 800;
             letter-spacing: .06em; text-transform: uppercase; background: var(--warn-bg); color: var(--warn); white-space: nowrap; flex: none; }
.demo-chip svg.i { width: 13px; height: 13px; stroke-width: 2.4; }
.demo-note { font-size: 12px; color: var(--ink-3); text-align: center; margin: 18px 8px 0; }
.org-logo { width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(135deg, var(--brand), var(--brand-2));
            color: var(--brand-ink); display: grid; place-items: center; font-weight: 800; font-size: 11px; letter-spacing: 0; overflow: hidden; }

/* ---------------------------------------------------------------- karty a seznamy */
.card { background: var(--card); border-radius: var(--r-lg); box-shadow: var(--shadow); padding: 18px; }
.card + .card, .section + .card, .card + .section { margin-top: 14px; }
.section { margin: 18px 4px 8px; display: flex; align-items: baseline; justify-content: space-between; }
.section h2 { font: 700 20px/1.2 var(--font-display); margin: 0; letter-spacing: -0.01em; }
.section a, .linkbtn { font-size: 15px; font-weight: 600; color: var(--brand); text-decoration: none; background: none; border: 0; cursor: pointer; }
/* textová tlačítka (Zavřít, Podepsat znovu, …): dotyková plocha aspoň 44 px (iOS/Android) */
button.linkbtn { min-height: 44px; padding: 0 6px; }
.list { background: var(--card); border-radius: var(--r-lg); box-shadow: var(--shadow); overflow: hidden; }
.row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; min-height: 56px; text-decoration: none; color: inherit;
       border: 0; background: none; width: 100%; text-align: left; cursor: pointer; }
.row + .row { border-top: 1px solid var(--line); }
.row:active { background: var(--card-2); }
.row .main { flex: 1; min-width: 0; }
.row .t { font-weight: 600; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.row .s { color: var(--ink-2); font-size: 14px; margin-top: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.row .meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 4px; }
.row .meta .pill { padding: 2px 8px; font-size: 12px; }
.row .when { color: var(--ink-3); font-size: 13px; font-variant-numeric: tabular-nums; }
/* závažnost závad: barevný pruh vlevo + štítek */
.row.sev-bad { box-shadow: inset 4px 0 0 var(--bad); }
.row.sev-warn { box-shadow: inset 4px 0 0 var(--warn); }
.row.sev-mute { box-shadow: inset 4px 0 0 var(--line); }
.count { min-width: 22px; height: 22px; padding: 0 7px; border-radius: 999px; display: inline-grid; place-items: center;
         font-size: 12px; font-weight: 800; background: var(--bad); color: #fff; font-variant-numeric: tabular-nums; }
.row .chev { color: var(--ink-3); }
.ticon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; flex: none;
         background: var(--info-bg); color: var(--brand); }
.ticon.sub { background: var(--bad-bg); color: var(--bad); }

.pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.pill.ok { background: var(--ok-bg); color: var(--ok); }
.pill.warn { background: var(--warn-bg); color: var(--warn); }
.pill.bad { background: var(--bad-bg); color: var(--bad); }
.pill.info { background: var(--info-bg); color: var(--brand); }
.pill.mute { background: var(--card-2); color: var(--ink-2); }

/* ---------------------------------------------------------------- hero a statistiky */
.hero { border-radius: 24px; padding: 18px; color: #fff; position: relative; overflow: hidden;
        background: radial-gradient(120% 140% at 100% 0%, var(--brand-2) 0%, var(--brand) 55%, #08368a 100%); box-shadow: var(--shadow-lg); }
.hero::after { content: ""; position: absolute; right: -40px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%;
               background: rgba(255,255,255,.08); }
.hero .k { opacity: .85; font-size: 14px; font-weight: 600; }
.hero .v { font: 800 30px/1.1 var(--font-display); letter-spacing: -0.02em; margin: 4px 0 2px; }
.hero .mini { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.hero .mini a { background: rgba(255,255,255,.14); border-radius: 14px; padding: 10px 12px; color: #fff; text-decoration: none; min-width: 0; }
.hero .mini a:active { background: rgba(255,255,255,.22); }
.hero .mini b { display: block; font: 800 22px/1.1 var(--font-display); font-variant-numeric: tabular-nums; }
.hero .mini span { display: block; font-size: 12px; opacity: .88; font-weight: 600; margin-top: 2px; line-height: 1.2; }
.hero .mini a.alert b { color: #ffd2d4; }
.hero .meta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 14px; font-size: 14px; }
.hero .meta span { background: rgba(255,255,255,.16); padding: 6px 10px; border-radius: 12px; display: inline-flex; gap: 6px; align-items: center; }
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 14px; }
@media (min-width: 640px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat { background: var(--card); border-radius: var(--r-md); box-shadow: var(--shadow); padding: 14px 16px; text-decoration: none; color: inherit; }
.stat .n { font: 800 28px/1.1 var(--font-display); letter-spacing: -0.02em; }
.stat .l { color: var(--ink-2); font-size: 13px; font-weight: 600; margin-top: 4px; }
.stat.alert .n { color: var(--bad); }
.bars { display: grid; gap: 10px; }
.bar { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; font-size: 14px; }
.bar .track { grid-column: 1 / -1; height: 8px; border-radius: 99px; background: var(--card-2); overflow: hidden; }
.bar .fill { height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.bar b { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- tlačítka */
.btn { min-height: var(--tap); border-radius: var(--r-md); border: 0; padding: 0 20px; font-weight: 700; font-size: 17px;
       display: inline-flex; align-items: center; justify-content: center; gap: 10px; cursor: pointer; text-decoration: none; }
.btn.primary { background: linear-gradient(180deg, var(--brand-2), var(--brand)); color: var(--brand-ink); box-shadow: 0 6px 18px rgba(10,91,211,.28); }
.btn.primary:active { transform: scale(.98); }
.btn.soft { background: var(--info-bg); color: var(--brand); }
.btn.ghost { background: var(--card); color: var(--ink); box-shadow: var(--shadow); }
.btn.danger { background: var(--bad-bg); color: var(--bad); }
.btn.block { width: 100%; }
.btn:disabled { opacity: .5; cursor: default; }
.actions { display: grid; gap: 10px; margin-top: 18px; }
.sticky-actions { margin-top: 20px; display: flex; gap: 10px; }
.sticky-actions .btn { flex: 1; }

/* ---------------------------------------------------------------- spodní lišta */
.tabbar { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0;
          display: flex; align-items: center; justify-content: space-around; gap: 4px;
          padding: 6px max(10px, env(safe-area-inset-right, 0px)) calc(6px + var(--safe-b)) max(10px, env(safe-area-inset-left, 0px));
          background: color-mix(in srgb, var(--card) 86%, transparent); backdrop-filter: saturate(180%) blur(20px);
          -webkit-backdrop-filter: saturate(180%) blur(20px); border-top: 1px solid var(--line); }
.tabbar a { flex: 1; max-width: 110px; min-height: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
            font-size: 11px; font-weight: 600; color: var(--ink-3); text-decoration: none; border-radius: 14px; }
.tabbar a.on { color: var(--brand); }
.tabbar .tab-new { flex: none; width: 54px; height: 46px; min-height: 46px; border-radius: 16px; margin: 0 4px;
                   background: linear-gradient(180deg, var(--brand-2), var(--brand)); color: var(--brand-ink) !important; box-shadow: var(--shadow-lg);
                   justify-content: center; }
.tabbar .tab-new span { display: none; }
.tabbar .tab-new svg.i { width: 26px; height: 26px; stroke-width: 2.4; }
/* spodní lišta akcí průvodce (místo navigace) */
.actionbar { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0;
             padding: 10px max(16px, env(safe-area-inset-right, 0px)) calc(10px + var(--safe-b)) max(16px, env(safe-area-inset-left, 0px));
             background: color-mix(in srgb, var(--card) 90%, transparent); backdrop-filter: saturate(180%) blur(20px);
             -webkit-backdrop-filter: saturate(180%) blur(20px); border-top: 1px solid var(--line); }
.actionbar .in { max-width: 728px; margin: 0 auto; display: flex; gap: 10px; }
.actionbar .btn { flex: 1; min-width: 0; }
.actionbar .btn.ghost { flex: 0 0 auto; }
/* stav ukládání */
.sync { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ink-3); white-space: nowrap; }
.sync::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ink-3); }
.sync.saved::before { background: var(--ok); }
.sync.saving::before { background: var(--brand); animation: blink 1s infinite; }
.sync.offline::before, .sync.local::before { background: var(--warn); }
.sync.error::before, .sync.conflict::before, .sync.auth::before { background: var(--bad); }
@keyframes blink { 50% { opacity: .3; } }
.skeleton { border-radius: var(--r-lg); background: linear-gradient(90deg, var(--card) 0%, var(--card-2) 50%, var(--card) 100%);
            background-size: 200% 100%; animation: shimmer 1.2s infinite; height: 72px; }
.skeleton + .skeleton { margin-top: 10px; }
@keyframes shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .skeleton, .sync.saving::before { animation: none; } }

/* ---------------------------------------------------------------- formuláře */
.field { display: grid; gap: 6px; margin-bottom: 14px; }
.field > label, .label { font-weight: 600; font-size: 14px; color: var(--ink-2); }
.req::after { content: " *"; color: var(--bad); }
.input, select.input, textarea.input {
  width: 100%; min-height: var(--tap); border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--card-2);
  padding: 12px 14px; font-size: 17px; outline: none; transition: border-color .15s, background .15s; }
textarea.input { min-height: 110px; resize: vertical; }
.input:focus { border-color: var(--brand); background: var(--card); }
.input.err { border-color: var(--bad); }
.help { font-size: 13px; color: var(--ink-3); }
.errmsg { font-size: 14px; color: var(--bad); font-weight: 600; }
.seg { display: flex; background: var(--card-2); border-radius: 14px; padding: 4px; gap: 4px; flex-wrap: wrap; }
.seg button { flex: 1 1 auto; min-height: 44px; border: 0; border-radius: 11px; background: none; font-weight: 600; font-size: 15px;
              color: var(--ink-2); cursor: pointer; padding: 0 12px; }
.seg button.on { background: var(--card); color: var(--brand); box-shadow: 0 1px 4px rgba(15,26,43,.12); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--card);
        font-weight: 600; font-size: 14px; color: var(--ink-2); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.chip.on { background: var(--brand); border-color: var(--brand); color: var(--brand-ink); }
.toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--tap); }
.switch { width: 52px; height: 32px; border-radius: 99px; background: var(--card-2); border: 1.5px solid var(--line); position: relative; cursor: pointer; flex: none; }
.switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 25px; height: 25px; border-radius: 50%; background: #fff;
                 box-shadow: 0 2px 6px rgba(0,0,0,.2); transition: transform .2s; }
.switch.on { background: var(--ok); border-color: var(--ok); }
.switch.on::after { transform: translateX(20px); }
.search { position: relative; }
.search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--ink-3); }
.search .input { padding-left: 44px; border-radius: 14px; background: var(--card); box-shadow: var(--shadow); border-color: transparent; }
.hscroll { display: flex; gap: 8px; overflow-x: auto; padding: 12px 2px 4px; scrollbar-width: none; }
.hscroll::-webkit-scrollbar { display: none; }
.hscroll .chip { flex: none; }

/* ---------------------------------------------------------------- průvodce */
.steps { display: flex; gap: 6px; margin: 4px 0 18px; }
.steps i { flex: 1; height: 5px; border-radius: 99px; background: var(--line); }
.steps i.done { background: var(--brand); }
.steps i.cur { background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.stephead { color: var(--ink-3); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.types { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 640px) { .types { grid-template-columns: repeat(3, 1fr); } }
.type { background: var(--card); border-radius: var(--r-md); box-shadow: var(--shadow); padding: 16px; min-height: 120px; border: 2px solid transparent;
        display: flex; flex-direction: column; gap: 12px; text-align: left; cursor: pointer; }
.type:active { transform: scale(.98); }
.type .name { font-weight: 700; font-size: 15px; line-height: 1.25; }
.type.featured { grid-column: 1 / -1; flex-direction: row; align-items: center; min-height: 84px;
                 background: linear-gradient(135deg, var(--bad-bg), var(--card)); }

/* ---------------------------------------------------------------- fotky a podpis */
.photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.photo { aspect-ratio: 1; border-radius: 14px; overflow: hidden; position: relative; background: var(--card-2); }
.photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo button { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; border-radius: 50%; border: 0;
                background: rgba(0,0,0,.55); color: #fff; display: grid; place-items: center; cursor: pointer; }
.photo.add { display: grid; place-items: center; border: 2px dashed var(--line); color: var(--brand); cursor: pointer; font-weight: 600; font-size: 13px; text-align: center; }
.sigpad { position: relative; border-radius: var(--r-md); background: #fff; border: 1.5px solid var(--line); height: 210px; touch-action: none; overflow: hidden; }
.sigpad canvas { width: 100%; height: 100%; display: block; }
.sigpad .base { position: absolute; left: 20px; right: 20px; bottom: 44px; border-bottom: 1.5px dashed #c9d3e2; pointer-events: none; }
.sigpad .hint { position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; color: #9aa7ba; font-size: 13px; pointer-events: none; }
.sigimg { background: #fff; border-radius: 12px; border: 1px solid var(--line); height: 90px; display: grid; place-items: center; }
.sigimg img { max-height: 80px; max-width: 100%; }

/* ---------------------------------------------------------------- přihlášení */
.login { min-height: calc(100vh - 40px); display: flex; flex-direction: column; justify-content: center; max-width: 420px; margin: 0 auto; }
.login .brandmark { width: 76px; height: 76px; border-radius: 24px; margin: 0 auto 18px; display: grid; place-items: center;
                    background: radial-gradient(120% 120% at 100% 0%, var(--brand-2), var(--brand)); box-shadow: var(--shadow-lg); color: #fff; }
.login .brandmark svg { width: 40px; height: 40px; stroke-width: 2.2; }
.login h1 { text-align: center; font: 800 28px/1.15 var(--font-display); letter-spacing: -0.02em; margin: 0 0 6px; }
.login p.lead { text-align: center; color: var(--ink-2); margin: 0 0 24px; }
.otp { letter-spacing: .5em; text-align: center; font-size: 28px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- detail */
.kv { display: grid; grid-template-columns: auto 1fr; gap: 10px 16px; font-size: 15px; }
.kv dt { color: var(--ink-2); }
.kv dd { margin: 0; font-weight: 600; text-align: right; }
.banner { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; font-size: 14px; margin: 0 0 14px; }
.banner.demo { background: var(--warn-bg); color: var(--warn); font-weight: 600; }
.banner.info { background: var(--info-bg); color: var(--brand); }
.banner.bad { background: var(--bad-bg); color: var(--bad); }
.empty { text-align: center; color: var(--ink-3); padding: 34px 16px; }

/* ---------------------------------------------------------------- toast a list */
.toast { position: fixed; left: 50%; bottom: calc(var(--tabbar-h) + 24px + var(--safe-b)); transform: translateX(-50%); z-index: 50;
         background: #0f1a2b; color: #fff; padding: 12px 18px; border-radius: 14px; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,.25);
         animation: pop .2s ease-out; max-width: calc(100% - 32px); }
@keyframes pop { from { opacity: 0; transform: translate(-50%, 8px); } }
.fade { animation: fade .22s ease-out; }
@keyframes fade { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) { .fade, .toast { animation: none; } }
.muted { color: var(--ink-2); }
.small { font-size: 13px; }
.row-gap { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.grid-2 { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
.grid-2 > * { min-width: 0; }
.grid-2.two { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0 12px; }
/* datum a čas potřebuje šířku: vedle místa až na širším displeji */
.grid-2.basics-row { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0 12px; align-items: start; }
.card.sev-bad { box-shadow: inset 4px 0 0 var(--bad), var(--shadow); }
.card.sev-warn { box-shadow: inset 4px 0 0 var(--warn), var(--shadow); }
.photo-badge { position: absolute; left: 6px; bottom: 6px; width: 24px; height: 24px; border-radius: 50%; background: rgba(0,0,0,.55);
               color: #fff; display: grid; place-items: center; }
.photo-badge svg.i { width: 14px; height: 14px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------------------------------------------------------------- formulář kontroly: sbalovací sekce (etapa 5D) */
.fsec { background: var(--card); border-radius: var(--r-lg); box-shadow: var(--shadow); margin-top: 12px; overflow: hidden; }
.fsec.err { box-shadow: inset 4px 0 0 var(--bad), var(--shadow); }
.fsec-head { width: 100%; display: flex; align-items: center; gap: 10px; padding: 14px 16px; min-height: 56px; border: 0; background: none;
             text-align: left; cursor: pointer; color: inherit; font: inherit; }
.fsec-title { flex: 1; min-width: 0; display: grid; gap: 2px; }
.fsec-title b { font: 700 17px/1.25 var(--font-display); }
.fsec-sum { color: var(--ink-2); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fsec-chev { color: var(--ink-3); transition: transform .15s; }
.fsec.open .fsec-chev { transform: rotate(90deg); }
.fsec-body { padding: 0 16px 6px; }
.fsec-body > .field:last-child, .fsec-body > .grid-2:last-child .field { margin-bottom: 12px; }
.subhead { display: flex; align-items: baseline; justify-content: space-between; margin: 6px 0 8px; padding-top: 12px; border-top: 1px solid var(--line); }
.subhead h3 { font-size: 15px; margin: 0; }
.field.has-err .input { border-color: var(--bad); }
/* závada ve formuláři: nižší, s barevným pruhem */
.defect-item { border: 1px solid var(--line); border-radius: var(--r-md); padding: 10px 12px 2px; margin-bottom: 10px; position: relative; }
.defect-item.sev-bad { box-shadow: inset 4px 0 0 var(--bad); }
.defect-item.sev-warn { box-shadow: inset 4px 0 0 var(--warn); }
.defect-item .photos { margin-bottom: 10px; grid-template-columns: repeat(4, 1fr); }
.defect-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.sig-item { padding: 4px 0 14px; }
.sig-item + .sig-item, .sig-item + .help { border-top: 1px solid var(--line); padding-top: 14px; }
.form .sigpad { height: 180px; }
.form .sigimg { height: 76px; }
/* potvrzení vyřešení závady přímo v řádku */
.confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 14px 12px 66px; background: var(--card-2); }
.confirm span { flex: 1 1 100%; font-size: 14px; font-weight: 600; }
.confirm .btn { min-height: 42px; font-size: 15px; padding: 0 14px; }
.btn.sm { min-height: 40px; font-size: 14px; padding: 0 12px; border-radius: 12px; }
/* logo organizace (white-label) */
/* logo organizace je obecně nečtvercové (Inspekce ZZS UK je vyšší než široké): pevná výška obrázku, šířka podle loga */
.org-logo.img { display: block; width: auto; height: auto; padding: 3px 5px; background: #fff; border-radius: 10px;
                box-shadow: 0 1px 3px rgba(15,26,43,.14); overflow: hidden; flex: none; }
.org-logo.img img { display: block; height: 46px; width: auto; max-width: 110px; object-fit: contain; }
.login .brandmark.img { display: block; width: fit-content; height: auto; padding: 10px 16px; background: #fff; border-radius: 24px; }
.login .brandmark.img img { display: block; height: 150px; width: auto; max-width: 240px; object-fit: contain; }
.row .s.one { -webkit-line-clamp: 1; font-size: 13px; color: var(--ink-3); margin-top: 3px; }
.row .t { font-size: 15.5px; }

/* Našeptávač zaměstnanců (číselník) */
.staff-picker { position: relative; }
.staff-picker .pill.sm { position: absolute; right: 8px; top: 10px; font-size: 12px; pointer-events: none; }
.suggest { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30; background: var(--card); border: 1.5px solid var(--line);
  border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.18); max-height: 280px; overflow-y: auto; }
.suggest-item { display: flex; flex-direction: column; align-items: flex-start; width: 100%; min-height: 48px; padding: 8px 12px; border: 0;
  background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.suggest-item + .suggest-item { border-top: 1px solid var(--line); }
.suggest-item:hover, .suggest-item:focus { background: var(--soft, rgba(10,91,211,.08)); }
.suggest-item .s { font-size: 13px; opacity: .75; }
.chips.catalog .chip { min-height: 36px; font-size: 14px; }

/* Premium A (noc): tlumená hero plocha a tmavý text na mentolovém akcentu (kontrast). Rozměry se nemění. */
:root[data-theme="dark"] .hero { background: #193e3e; color: #edf4fc; }
:root[data-theme="dark"] .login .brandmark { color: var(--brand-ink); }
:root[data-theme="dark"] .btn.primary { box-shadow: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .hero { background: #193e3e; color: #edf4fc; }
  :root:not([data-theme="light"]) .login .brandmark { color: var(--brand-ink); }
  :root:not([data-theme="light"]) .btn.primary { box-shadow: none; }
}

/* Inspekce / pracovní systém 2: kompaktní karty a společná geometrie den/noc. */
[hidden]{display:none!important}
:root{--workspace-navy:#102d4a;--workspace-edge:#224a71;--workspace-glow:#195a9b;--shadow:0 2px 5px #102d4a06,0 10px 26px #102d4a0a;--r-lg:18px;--r-md:13px}
:root[data-theme=dark]{--workspace-navy:#112c36;--workspace-edge:#27524f;--workspace-glow:#285d54;--shadow:0 1px 0 #ffffff06,0 12px 28px #0002}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--workspace-navy:#112c36;--workspace-edge:#27524f;--workspace-glow:#285d54;--shadow:0 1px 0 #ffffff06,0 12px 28px #0002}}
#app{padding-top:calc(var(--safe-t) + 12px)}
header{margin-bottom:14px}.top{padding:10px 0}.top h1{font-weight:780;letter-spacing:-.035em;font-size:clamp(25px,3vw,33px)}
.org{background:var(--workspace-navy);color:#f5faff;border:1px solid var(--workspace-edge);border-radius:16px;padding:12px 14px;margin-bottom:8px;box-shadow:var(--shadow)}
.org .name{font-size:15px;font-weight:780;letter-spacing:.025em}.org-logo.img{width:48px;height:52px;padding:4px;border-radius:10px;background:#fff}.org-logo.img img{width:100%;height:100%;object-fit:contain}
.card,.list{border:1px solid var(--line)}.card{padding:18px}.row{min-height:64px;padding:12px 15px}.row .t{font-weight:720}.row .ticon{border:1px solid color-mix(in srgb,var(--brand) 16%,var(--line));border-radius:12px}
.home-dashboard>.actions{margin:12px 0}.home-dashboard>.actions .btn{border:1px solid color-mix(in srgb,var(--brand) 40%,transparent);box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 18%,transparent)}
.home-dashboard .hero{padding:24px;border-radius:20px;border:1px solid var(--workspace-edge);background:radial-gradient(ellipse at 100% 0%,var(--workspace-glow),transparent 70%),var(--workspace-navy)!important;box-shadow:0 12px 30px #102d4a20}
.hero .k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:750;opacity:1;color:#c7e2fa}.hero .v{font-size:clamp(32px,4vw,46px);font-weight:800;letter-spacing:-.055em;margin:7px 0}.hero .mini{gap:8px;margin-top:20px}.hero .mini a{border:1px solid #ffffff25;background:#ffffff0c;border-radius:11px;padding:11px 12px}.hero .mini b{font-size:23px}.hero .mini span{font-size:12px;line-height:1.35;opacity:1;color:#d9e8f3}
.quick-start{margin:12px 0 18px}.quick-start .section{margin:12px 0 10px;gap:10px}.quick-start .section h2{font-size:17px}.quick-start .section>span{font-size:11px;max-width:45%;text-align:right}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.quick-card{min-width:0;min-height:100px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--card);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 20px;gap:8px;text-align:left;align-content:space-between;cursor:pointer}.quick-card .quick-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--info-bg);color:var(--brand);grid-column:1/-1}.quick-card strong{font-size:13px;line-height:1.3}.quick-card .chev{width:17px;align-self:center;color:var(--brand)}.quick-card:active{background:var(--card-2)}
.home-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 18px}.home-tools:empty{display:none}.tool-card{display:grid;grid-template-columns:24px minmax(0,1fr) 14px;align-items:center;gap:8px;min-height:70px;padding:13px 12px;border:1px solid var(--line);border-radius:13px;background:var(--card);text-decoration:none;color:var(--ink);box-shadow:var(--shadow)}.tool-card>svg:first-child{color:var(--brand)}.tool-card span{font-size:12px;font-weight:720;line-height:1.3}.tool-card .chev{width:14px;color:var(--ink-3)}
.types{gap:10px}.type{min-height:108px;padding:15px;border:1px solid var(--line);border-left:3px solid color-mix(in srgb,var(--brand) 70%,var(--line));box-shadow:var(--shadow);border-radius:15px}.type.featured{background:var(--workspace-navy);border-color:var(--workspace-edge);color:#fff}.type.featured .ticon{background:#ffffff12;color:#bfe6fa}.type .name{font-size:14px}.type:active{transform:none;background:var(--card-2)}.type.featured:active{background:var(--workspace-edge)}
.fsec{border:1px solid var(--line);border-radius:16px;overflow:visible;margin-top:11px;box-shadow:var(--shadow)}.fsec-head{padding:13px 16px;min-height:54px;border-radius:16px}.fsec-title b{font-size:16px;font-weight:760}.fsec.open .fsec-head{border-bottom:1px solid var(--line);border-radius:16px 16px 0 0;margin-bottom:14px}.fsec.open .fsec-title b{color:var(--brand)}.fsec-body{padding:0 16px 4px}.fsec-body .field{margin-bottom:16px}.field>label{font-size:13px;font-weight:720;letter-spacing:.005em}.input{border-radius:10px;border-width:1px;background:var(--card-2);font-size:16px;min-height:48px}.input:focus{background:var(--card);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent)}
#sec-summary{border-top:3px solid var(--brand)}#sec-summary .fsec-head{border-top-left-radius:12px;border-top-right-radius:12px}.actionbar{background:color-mix(in srgb,var(--bg) 94%,transparent);border-top:1px solid var(--line);box-shadow:0 -5px 24px #102d4a08}.actionbar .btn.primary{min-height:52px;font-size:16px}.flow .actionbar{left:0!important}.flow .actionbar .in{max-width:1088px;margin:auto}
.staff-entry{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:7px}.staff-entry .input{width:100%;min-width:0}.staff-open{min-width:48px;min-height:48px;display:grid;place-items:center;border:1px solid var(--line);background:var(--info-bg);color:var(--brand);border-radius:10px;cursor:pointer}.staff-open:hover{border-color:var(--brand)}.staff-picker .pill.sm{position:static;margin-top:7px;font-size:11px}.staff-hint{font-size:11px;margin-top:6px;line-height:1.4}.staff-status{font-size:12px;color:var(--ink-2);line-height:1.4;margin-top:5px}.staff-status:empty{display:none}
.staff-picker .suggest{position:static;display:block;margin-top:8px;max-height:245px;overflow-y:auto;border:1px solid var(--line);border-radius:11px;box-shadow:none;overscroll-behavior:contain}.suggest-item{padding:11px 13px;min-height:58px;gap:3px}.suggest-item .t{font-weight:700;font-size:14px}.suggest-item .s{font-size:11px;opacity:1;color:var(--ink-2)}.suggest-item[aria-selected=true],.suggest-item:focus-visible{background:var(--info-bg);outline:2px solid var(--brand);outline-offset:-2px}
.nav-brand{display:none}.tabbar{border:1px solid var(--line);box-shadow:0 -3px 22px #102d4a0a}.tabbar .on{color:var(--brand);font-weight:750}.login{max-width:440px;margin:0 auto}.login .brandmark.img{padding:12px 22px;box-shadow:var(--shadow);border:1px solid var(--line)}.login .brandmark.img img{height:110px}.login h1{font-weight:800;letter-spacing:-.045em;font-size:32px}.login .card{border-top:3px solid var(--brand);padding:22px}
@media(min-width:1000px){#app{max-width:1360px;padding-left:270px;padding-right:24px}.tabbar{left:max(16px,calc(50% - 664px))!important;width:230px!important;top:20px!important;gap:5px;border:1px solid var(--line)!important;border-radius:18px}.tabbar .nav-brand{display:flex;order:-2;gap:11px;align-items:center;padding:10px 4px 18px;border-bottom:1px solid var(--line);margin-bottom:12px;font-size:13px;font-weight:760;line-height:1.25}.nav-brand img{width:46px;height:52px;object-fit:contain;background:#fff;border-radius:9px;padding:4px}.nav-brand small{display:block;color:var(--ink-2);font-size:10px;font-weight:500;margin-top:5px}.tabbar a{border-radius:11px}.tabbar a.on{background:var(--info-bg)}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-card{min-height:112px;padding:16px}.quick-card strong{font-size:13px}.home-tools{grid-template-columns:repeat(4,minmax(0,1fr))}.tool-card{grid-template-columns:24px minmax(0,1fr);min-height:72px}.tool-card .chev{display:none}.home-dashboard .hero{padding:25px 28px}.home-dashboard .hero .mini{max-width:600px}.home-screen .org{padding:13px 18px}.home-screen .org .name{font-size:17px}.home-screen header .top{padding-top:14px}#app.flow{padding-left:24px;max-width:1120px}}
@media(max-width:360px){#app{padding-left:12px;padding-right:12px}.org{padding:10px}.org .name{font-size:12px}.org-logo.img{width:40px;height:44px}.tool-card{grid-template-columns:20px minmax(0,1fr);padding:10px}.tool-card .chev{display:none}.hero .mini a{padding:10px 8px}.hero .mini span{font-size:11px}.quick-card{padding:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Co kontrolováno: nezávislý vícenásobný výběr; není výsledkem ani evidencí závad. */
.checklist-count{font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.checklist-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr));gap:9px}
.checklist-tile{display:flex;align-items:center;gap:9px;min-height:68px;padding:13px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card-2);color:var(--ink);font:inherit;font-size:14px;font-weight:650;line-height:1.4;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.checklist-tile svg{width:20px;height:20px;flex-shrink:0;color:var(--ink-2)}
.checklist-tile.on{background:#153f32;color:#e9fff3;border-color:#58c99a;box-shadow:inset 0 0 0 1px #58c99a}.checklist-tile.on svg{color:#86e6b6}.checklist-tile:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
:root[data-theme=light] .checklist-tile.on{background:#ddf5e8;color:#113d2c}
@media(prefers-color-scheme:light){:root:not([data-theme=dark]) .checklist-tile.on{background:#ddf5e8;color:#113d2c}}

/* Místo a závady v toku dokumentu zůstávají dostupné i nad mobilní klávesnicí. */
.location-results {max-height: min(45dvh, 420px);overflow-y:auto;overscroll-behavior:contain;margin-top:8px;}
.location-results h4,.defect-group h4 {margin:12px 0 8px;font-size:13px;color:var(--ink-2);}
.location-option {display:block;width:100%;min-height:48px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);padding:10px 12px;margin:4px 0;white-space:normal;overflow-wrap:anywhere;}
.location-chosen {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;}
.location-chosen span {min-width:0;overflow-wrap:anywhere;}
.defect-picker {margin-bottom:16px;}
.defect-tile.on {border-color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad);}
.input {scroll-margin-block:90px;}

/* Sdílený výběr osob: čitelné dotykové položky i při dlouhém jménu. */
.staff-picker,.staff-entry,.person-position{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.staff-entry .input{min-width:0;flex:1;width:100%;font-size:16px;min-height:44px}
.staff-picker .suggest-item{min-height:48px;white-space:normal;overflow-wrap:anywhere;text-align:left}
.staff-picker .suggest-item .t,.staff-picker .suggest-item .s{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.person-position{margin-top:12px}.person-position label{display:block;margin-bottom:6px}.person-position .input{width:100%;font-size:16px;min-height:44px;box-sizing:border-box}

.inspector-signature summary{min-height:44px;cursor:pointer;padding:10px;box-sizing:border-box;font-size:14px}.acknowledgements{overflow-wrap:anywhere}.acknowledgements fieldset{min-width:0;margin:12px 0;border:1px solid var(--line);border-radius:10px}.ack-choice{display:flex;gap:10px;align-items:center;min-height:48px;padding:6px}.ack-choice input{flex:none;width:22px;height:22px}.ack-record{border-bottom:1px solid var(--line);padding:10px 0}.acknowledgements textarea{min-height:88px;width:100%;box-sizing:border-box}

/* Stejné pole a stejná volba ve všech typech, včetně alkoholu/drog. */
.fsec-body .input{font-size:16px;min-height:44px;max-width:100%;box-sizing:border-box}.fsec-body .field{min-width:0}.fsec-body .chips .chip,.fsec-body .seg button{font-family:inherit;font-size:14px;line-height:1.35;min-height:44px;white-space:normal;padding:9px 14px}.fsec-body label{overflow-wrap:anywhere}.fsec-body .sig-item{min-width:0}.documents .row{flex-wrap:wrap}

.ack-draft{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:12px}.ack-draft h3{font-size:16px;margin:0 0 8px}.ack-draft h4{font-size:15px;margin:8px 0}.ack-draft p{margin:6px 0}.ack-assignment{margin:6px 0;padding:6px;border-bottom:1px solid var(--line)}.ack-assignment summary{font-size:14px;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}.ack-draft .suggest{max-height:min(180px,28dvh);overflow:auto}.ack-draft .ack-record{display:block;width:100%;text-align:left;font:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;margin:6px 0;overflow-wrap:anywhere}.ack-draft textarea{min-height:64px}.ack-draft .sigpad{height:150px}.ack-ready{border-color:var(--ok)!important}

/* PR53: Akce průvodce jsou součástí dokumentu, ne trvale přichycenou lištou na iPhonu. */
.actionbar.wizard-inline-actions, .flow .actionbar.wizard-inline-actions {
  position: static !important; inset: auto !important; left: auto !important; right: auto !important;
  bottom: auto !important; z-index: auto; box-shadow: none; backdrop-filter: none;
  -webkit-backdrop-filter: none; margin: 18px 0 24px; border: 1px solid var(--line);
  border-radius: 14px; background: var(--card); padding: 12px;
}
/* Document controls always remain in the installed PWA, above the PDF viewport. */
.document-viewer{position:fixed;inset:0;z-index:10000;background:var(--bg,#10161f);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.document-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:12px;background:var(--card,#182330);flex-shrink:0;border-bottom:1px solid var(--line,#334155)}
.document-viewer-content{flex:1;min-height:0;overflow:auto}.document-viewer-content iframe{width:100%;height:100%;border:0;background:white}
.discovery-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:12px 0}.discovery-filters label{font-size:12px;color:var(--muted)}
.history-findings{display:grid;gap:8px;margin:8px 0 16px}.history-findings .card{margin:0}.history-findings p{white-space:pre-wrap;overflow-wrap:anywhere}

/* Posádka podle složení výjezdu: nadpis vozu nad jeho rolemi (RZP / RLP / RV / LZS). */
.crew-group + .crew-group { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--line); }
.crew-group-title { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .02em; color: var(--brand); }
.simple-blocked .simple-reason { display: block; text-align: left; margin-top: 4px; color: inherit; font-weight: 600; }

/* Průvodce závadami ve třech krocích (etapa A). Jen tokeny motivu – světlý i tmavý režim beze změny. */
.dflow-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0 0 12px; }
.dflow-step { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 56px; padding: 6px 4px; border-radius: var(--r-sm); border: 1.5px solid var(--line);
  background: var(--card-2); color: var(--ink-2); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; text-align: center; min-width: 0; }
.dflow-step .dflow-label { max-width: 100%; overflow-wrap: anywhere; line-height: 1.15; }
.dflow-num { flex: none; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--card); color: var(--ink-2); font-size: 13px; }
.dflow-num svg { width: 14px; height: 14px; }
.dflow-step.cur { border-color: var(--brand); color: var(--ink); background: var(--info-bg); }
.dflow-step.cur .dflow-num { background: var(--brand); color: var(--brand-ink); }
.dflow-step.done .dflow-num { background: var(--ok-bg); color: var(--ok); }
.dflow-title { margin: 4px 0 10px; font-size: 17px; }
.dpick-selected { border: 1.5px solid var(--line); border-radius: var(--r-md); padding: 10px 12px; margin-bottom: 12px; background: var(--card-2); }
.dpick-chosen { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; }
.dpick-chosen li { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 15px; }
.dpick-chosen .linkbtn { font-size: 22px; line-height: 1; min-width: 44px; min-height: 36px; color: var(--bad); }
.dpick-groups { display: grid; gap: 8px; margin-bottom: 12px; }
.dpick-group { border: 1.5px solid var(--line); border-radius: var(--r-md); background: var(--card); }
.dpick-group > summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 46px; padding: 0 12px; font-weight: 700; cursor: pointer; list-style: none; }
.dpick-group > summary::-webkit-details-marker { display: none; }
.dpick-group > summary::after { content: '▾'; color: var(--ink-3); margin-left: 4px; }
.dpick-group[open] > summary::after { content: '▴'; }
.dpick-group.safety { border-color: var(--bad); }
.dpick-group.safety > summary { color: var(--bad); }
.dpick-count { margin-left: auto; font-size: 13px; color: var(--ink-3); font-weight: 600; }
.dpick-list { display: grid; gap: 2px; padding: 0 6px 6px; }
.dpick-item { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 8px; border: 0; border-radius: var(--r-sm); background: none;
  color: var(--ink); font: inherit; font-size: 15px; text-align: left; cursor: pointer; }
.dpick-item:active, .dpick-item.on { background: var(--info-bg); }
.dpick-box { flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--ink-3); color: var(--brand-ink); }
.dpick-item.on .dpick-box { background: var(--brand); border-color: var(--brand); }
.dpick-box svg { width: 14px; height: 14px; }
.dpick-custom .row-gap { flex-wrap: wrap; }
.dpick-custom .row-gap .input { flex: 1 1 180px; min-width: 0; }
.dflow-card.collapsed .dflow-card-head { margin-bottom: 2px; }
.dflow-nav .dflow-next { margin-top: 0; }
.dflow-next { margin-top: 6px; }
.dflow-nav { margin-top: 12px; }
.dflow-card { margin-bottom: 12px; border-left: 4px solid var(--warn); }
.dflow-card.ok { border-left-color: var(--ok); }
.dflow-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 8px; }
.dflow-card-head > div { min-width: 0; display: grid; }
.dflow-card-title { font-size: 16px; overflow-wrap: anywhere; }
.dflow-card-head .pill { white-space: normal; text-align: right; }
.dflow-awareness, .dflow-photos { margin: 4px 0 10px; }
.dflow-awareness > summary, .dflow-photos > summary { min-height: 40px; display: flex; align-items: center; font-weight: 600; color: var(--brand); cursor: pointer; }
.dflow-remove { color: var(--bad); margin-top: 4px; }
.dflow-person { margin-bottom: 10px; }
.dflow-person.gap { border-left: 4px solid var(--warn); }
.dflow-person.ok { border-left: 4px solid var(--ok); }
.dflow-person-head { display: flex; align-items: center; gap: 6px; width: 100%; min-height: 44px; padding: 0; border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; flex-wrap: wrap; }
.dflow-person-head .pill { margin-left: auto; }
.dflow-acked, .dflow-technical { margin: 6px 0 0; padding-left: 18px; font-size: 14px; color: var(--ink-2); }
.dflow-findings { border: 0; padding: 0; margin: 8px 0; display: grid; gap: 4px; }
.dflow-findings legend { font-weight: 600; font-size: 14px; color: var(--ink-2); margin-bottom: 4px; }
.dflow-history-toggle { margin-top: 14px; display: inline-flex; align-items: center; gap: 4px; }
.dflow-history-note { margin: 6px 0; font-style: italic; }
.dflow-history .card { background: var(--card-2); }

/* Pokrytí VZ: jeden řádek, jedna informace o stáří. */
.coverage-row{padding:14px 16px;border-bottom:1px solid var(--line,#8883)}
.coverage-label{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:14px}
.coverage-label strong{font-size:16px}.coverage-label span{text-align:right}
.coverage-track{height:5px;background:#8882;border-radius:5px;margin-top:9px;overflow:hidden}
.coverage-track i{display:block;height:100%;background:#8995a5;border-radius:5px}
.coverage-row.consider .coverage-track i{background:#d39323}.coverage-row.focus .coverage-track i,.coverage-row.no_record .coverage-track i{background:#e15b66}
.coverage-row.no_record .coverage-label span{font-weight:700;color:var(--bad,#b42336)}

/* Nepřečtená nástěnka: souhrn v toku stránky, žádný modal ani zásah do rozepsaného formuláře. */
.notice-alerts { margin: 10px auto; padding: 10px 14px; max-width: 760px; border: 1px solid var(--tenant-brand, #0a5bd3); border-radius: 12px; }
.notice-alerts[hidden] { display: none; }
.notice-alerts summary { cursor: pointer; font-weight: 700; min-height: 24px; }
.notice-alerts ul { max-height: 160px; overflow-y: auto; margin: 0; padding-left: 24px; }
.notice-alerts li a { display: block; padding: 10px 0; overflow-wrap: anywhere; }
