/* ZUNI prototyp – design tokens 1:1 podle
   packages/bw-libs-flutter-zuni-core/lib/ui/themes/default_theme.dart (12. 10. 2026) */

/* Inter jako v aplikaci (pubspec core: statické řezy, celá znaková sada vč. češtiny a šipek; téma používá 300–700).
   Soubory: inter-ui 4.1 (web/), licence Inter-OFL.txt. */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300; font-display: block; src: url('../assets/fonts/Inter-Light.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: block; src: url('../assets/fonts/Inter-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: block; src: url('../assets/fonts/Inter-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: block; src: url('../assets/fonts/Inter-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: block; src: url('../assets/fonts/Inter-Bold.woff2') format('woff2'); }
@font-face { font-family: 'ZIcons'; src: url('../assets/icons/ZIcons.ttf') format('truetype'); }
@font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; font-display: block; src: url('../assets/fonts/material-icons.woff2') format('woff2'); }
@font-face { font-family: 'Material Icons Outlined'; font-style: normal; font-weight: 400; font-display: block; src: url('../assets/fonts/material-icons-outlined.woff2') format('woff2'); }
@font-face { font-family: 'ZLogos'; src: url('../assets/logos/ZLogos.ttf') format('truetype'); }

:root {
  --safe-bottom: 34px;          /* spodní bezpečná oblast (iPhone 402 × 874: 34 px; model pro všechna zařízení) */
  /* ZColors + getDefaultTheme() */
  --z-main: #0A1A65;            /* mainColor: text, ikony */
  --z-main-light: #65749A;      /* ZColors.grayColor: sekundární text */
  --z-secondary: #3366FF;       /* secondaryColor: app bar, tlačítka */
  --z-primary-darker: #265ADA;
  --z-bg: #FFFFFF;
  --z-scaffold-gray: #F8F8FA;
  --z-divider: #EEEFEF;
  --z-border: #EEEFEF;
  --z-additional: rgba(171,181,201,.45);   /* rámečky polí */
  --z-indicator: #ABB5C9;
  --z-gray-light: #9FA6AD;
  --z-light-text: rgba(18,14,72,.7);
  --z-pink: #FF3D71;
  --z-upload: #FF8633;
  --z-orange: #FF8633;
  --z-done: #00B441;
  --z-green: #1AB900;
  --z-fail: #E10A17;
  --z-red-delete: #D62A2A;
  --z-logo: #005EF8;
  --z-ai: #E5B80B;
  --z-ai-bg: #F3F7FE;

  --z-radius-button: 14px;
  --z-radius-input: 12px;
  --z-radius-card: 12px;
  --z-radius-default: 6px;
  --z-appbar-h: 75px;
  --z-button-h: 62px;
  --z-font: 'Inter', system-ui, sans-serif;
}

/* ---------- Telefon: obsah ---------- */
.z-app { font-family: var(--z-font); color: var(--z-main); background: var(--z-bg); font-size: 14px; line-height: normal; -webkit-font-smoothing: antialiased; }
/* line-height normal = metriky Interu (1,21), jako Text bez height ve Flutteru; prvky formulářů písmo jinak nedědí (13,33 px) */
.z-app * { box-sizing: border-box; }
:where(.z-app) button { font-family: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; cursor: pointer; }
:where(.z-app) :is(input, textarea, select) { font-family: inherit; font-size: 14px; line-height: normal; letter-spacing: inherit; color: var(--z-main); }

/* typografie (textTheme) */
.z-title-large { font-size: 20px; font-weight: 600; }
.z-headline { font-size: 20px; font-weight: 700; }            /* displayMedium */
.z-display-small { font-size: 16px; font-weight: 600; }
.z-secondary { font-size: 13px; font-weight: 600; color: var(--z-main-light); } /* displayLarge */
.z-body { font-size: 14px; font-weight: 400; }
.z-body-strong { font-size: 14px; font-weight: 600; }
.z-caption { font-size: 14px; font-weight: 400; color: var(--z-main-light); } /* bodySmall */
.z-center { text-align: center; }

/* ikony */
.mi { font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; line-height: 1; letter-spacing: normal; text-transform: none; display: inline-block; white-space: nowrap; direction: ltr; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; vertical-align: middle; }
.mio { font-family: 'Material Icons Outlined'; }
.zi { font-family: 'ZIcons'; font-size: 24px; line-height: 1; display: inline-block; vertical-align: middle; font-style: normal; }
.zi-arrow_right:before{content:"\e800"} .zi-refresh:before{content:"\e801"} .zi-menu:before{content:"\e802"} .zi-file:before{content:"\e803"} .zi-trash:before{content:"\e804"} .zi-color:before{content:"\e805"} .zi-barcode:before{content:"\e806"} .zi-flash_on:before{content:"\e808"} .zi-check:before{content:"\e809"} .zi-cross:before{content:"\e80a"} .zi-plus:before{content:"\e80b"} .zi-calendar:before{content:"\e80c"} .zi-folder:before{content:"\e80d"} .zi-search:before{content:"\e80e"} .zi-arrow_down:before{content:"\e80f"} .zi-flash_off:before{content:"\e810"} .zi-crop:before{content:"\e811"} .zi-arrow_left:before{content:"\e812"} .zi-documents:before{content:"\e813"} .zi-rotate:before{content:"\e814"} .zi-logout:before{content:"\e81b"} .zi-sticker_plus_outline:before{content:"\e81c"} .zi-help:before{content:"\e81d"} .zi-restore:before{content:"\e81e"} .zi-files:before{content:"\e828"} .zi-ecg:before{content:"\e829"} .zi-heart:before{content:"\e82b"} .zi-profile:before{content:"\e82c"} .zi-photo:before{content:"\e82d"}
.z-svg { display: inline-block; vertical-align: middle; width: 24px; height: 24px; }
.z-svg img { width: 100%; height: 100%; display: block; }

/* layout obrazovky */
.z-screen { position: absolute; inset: 0; display: flex; flex-direction: column; background: var(--z-bg); overflow: hidden; }
.z-screen.gray { background: var(--z-scaffold-gray); }
.z-scroll { flex: 1; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
.z-scroll::-webkit-scrollbar { width: 0; height: 0; }
.z-pad { padding: 16px; }
.z-gap > * + * { margin-top: 12px; }
.z-row { display: flex; align-items: center; gap: 8px; }
.z-row.between { justify-content: space-between; }
.z-grow { flex: 1; min-width: 0; }
.z-ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* app bar (AppBarTheme: secondary, centerTitle, výška 75, titulek 18/600 bílý) */
.z-appbar { height: var(--z-appbar-h); flex: none; background: var(--z-secondary); color: #fff; display: grid; grid-template-columns: 60px 1fr 60px; align-items: center; padding: 0; }
.z-appbar.transparent { background: transparent; color: #fff; position: absolute; top: 0; left: 0; right: 0; z-index: 5; }
.z-appbar.white { background: #fff; color: var(--z-main); }
.z-appbar .title { grid-column: 2; text-align: center; font-size: 18px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 4px; }
.z-appbar .title small { display: block; font-size: 12px; font-weight: 600; opacity: .7; } /* AppBarUseNameHeader: 12 px, řez z titleTextStyle */
.z-appbar .lead { grid-column: 1; display: flex; justify-content: center; }
.z-appbar .acts { grid-column: 3; display: flex; justify-content: flex-end; gap: 4px; padding-right: 12px; }
.z-appbar .acts.wide { grid-column: 3; }
.z-iconbtn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.1); color: inherit; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.z-iconbtn.on-light { background: transparent; color: var(--z-main); }
.z-iconbtn.on-light.blue { color: var(--z-secondary); }

/* tlačítka (ElevatedButton / OutlinedButton / TextButton) */
.z-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: var(--z-button-h); padding: 8px; border-radius: var(--z-radius-button); border: 0; font-size: 16px; font-weight: 600; background: var(--z-secondary); color: #fff; text-align: center; }
.z-btn.outlined { background: transparent; color: var(--z-secondary); border: 2px solid var(--z-secondary); }
.z-btn.text { background: transparent; color: var(--z-main); min-height: 40px; font-size: 14px; }
.z-btn.text.blue { color: var(--z-secondary); }
.z-btn.danger { background: var(--z-red-delete); }
.z-btn.danger.outlined { background: transparent; color: var(--z-red-delete); border-color: var(--z-red-delete); }
.z-btn.white { background: #fff; color: var(--z-secondary); }
.z-btn[disabled], .z-btn.disabled { opacity: .38; pointer-events: none; }
.z-btn.small { min-height: 40px; }
.z-btn.auto { width: auto; }
.z-btn .mi, .z-btn .zi { font-size: 20px; }
.z-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 500; border: 1px solid var(--z-additional); color: var(--z-main); background: #fff; }
.z-chip.selected { background: var(--z-secondary); color: #fff; border-color: var(--z-secondary); }
.z-fab { position: absolute; right: 16px; bottom: 16px; width: 56px; height: 56px; border-radius: 16px; background: var(--z-secondary); color: #fff; border: 0; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(10,26,101,.25); z-index: 4; }
.z-fab.extended { width: auto; padding: 0 20px; gap: 8px; font-weight: 600; font-size: 14px; }

/* spodní lišta s tlačítky (BottomBarButtons) */
.z-bottom { flex: none; padding: 12px 16px 16px; background: #fff; border-top: 1px solid var(--z-divider); display: flex; flex-direction: column; gap: 8px; }
.z-bottom.row { flex-direction: row; }
.z-bottom.plain { border-top: 0; }
/* BottomBarButtons = OverflowBar (overflowAlignment center): tlačítka v min. šířce 315, na střed; SafeArea */
.z-bottom.bbar { align-items: center; gap: 0; padding: 8px 0 calc(8px + var(--safe-bottom)); }
.z-bottom.bbar > .z-btn { width: 315px; max-width: 100%; }
.z-bottom.bbar > .z-btn + .z-btn { margin-top: 8px; }
.z-bottom.bbar > .z-btn:last-child { margin-bottom: 16px; }
/* RoundCornerDecoration(isNewDesign): bílá, horní rohy 30, stín black12 blur 16, padding 30/0/30/16 */
.z-bottom.round { background: #fff; border-radius: 30px 30px 0 0; box-shadow: 0 0 16px rgba(0,0,0,.12); padding: 28px 30px calc(32px + var(--safe-bottom)); position: relative; z-index: 3; }

/* vstupy (InputDecorationTheme: filled bílé, rádius 12, rámeček additional) */
.z-field { display: block; }
.z-field label { display: block; font-size: 13px; font-weight: 600; color: var(--z-main-light); margin-bottom: 6px; }
.z-input { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 8px; border: 1px solid var(--z-additional); border-radius: var(--z-radius-input); background: #fff; color: var(--z-main); font-size: 14px; font-weight: 600; }
.z-input.large { padding: 22px 8px; }
.z-input .ph, .z-input input::placeholder { color: var(--z-light-text); font-weight: 400; }
.z-input input, .z-input textarea { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-weight: 600; }
.z-input.error { border-color: var(--z-fail); }
.z-input .mi, .z-input .zi { color: var(--z-secondary); }
.z-field .err { color: var(--z-fail); font-size: 14px; margin-top: 4px; } /* errorStyle = bodySmall 14/400 */
.z-field .help { color: var(--z-main-light); font-size: 14px; margin-top: 4px; }
.z-input.readonly { background: var(--z-scaffold-gray); }
.z-switch { width: 44px; height: 24px; border-radius: 12px; background: var(--z-indicator); position: relative; flex: none; }
.z-switch:after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #fff; }
.z-switch.on { background: var(--z-secondary); } .z-switch.on:after { left: 22px; }
.z-radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--z-main-light); flex: none; position: relative; }
.z-radio.on { border-color: var(--z-secondary); } .z-radio.on:after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--z-secondary); }
.z-check { width: 20px; height: 20px; border-radius: 4px; border: 2px solid var(--z-main-light); flex: none; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.z-check.on { background: var(--z-secondary); border-color: var(--z-secondary); }

/* karty a seznamy */
.z-card { background: #fff; border: 1px solid var(--z-border); border-radius: var(--z-radius-card); overflow: hidden; }
.z-card.pad { padding: 12px 16px; }
.z-tile { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 16px; background: #fff; }
.z-tile.clickable { cursor: pointer; }
.z-tile .lead { width: 40px; height: 40px; border-radius: 50%; background: rgba(51,102,255,.1); color: var(--z-secondary); display: flex; align-items: center; justify-content: center; flex: none; }
.z-tile .lead.plain { background: transparent; }
.z-tile .txt { flex: 1; min-width: 0; }
.z-tile .t { font-size: 14px; font-weight: 600; }
.z-tile .s { font-size: 14px; color: var(--z-main-light); }
.z-tile .trail { color: var(--z-main-light); flex: none; display: flex; align-items: center; gap: 4px; }
.z-divider { height: 1px; background: var(--z-divider); }
.z-list .z-tile + .z-tile { border-top: 1px solid var(--z-divider); }
.z-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.z-tabs { display: flex; border-bottom: 1px solid var(--z-divider); background: #fff; }
.z-tabs .tab { flex: 1; text-align: center; padding: 14px 8px; font-size: 16px; font-weight: 400; color: var(--z-main-light); border-bottom: 2px solid transparent; }
.z-tabs .tab.active { color: var(--z-secondary); border-bottom-color: var(--z-secondary); }
.z-empty { padding: 40px 24px; text-align: center; color: var(--z-main-light); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.z-empty .mi, .z-empty .zi { font-size: 48px; color: var(--z-indicator); }
.z-empty h3 { margin: 0; font-size: 16px; font-weight: 600; color: var(--z-main); }
.z-progress { height: 4px; background: rgba(51,102,255,.15); border-radius: 2px; overflow: hidden; }
.z-progress > i { display: block; height: 100%; background: var(--z-secondary); }
.z-spinner { width: 36px; height: 36px; border-radius: 50%; border: 4px solid rgba(51,102,255,.2); border-top-color: var(--z-secondary); animation: z-spin 1s linear infinite; }
.z-spinner.small { width: 20px; height: 20px; border-width: 3px; }
.z-spinner.white { border-color: rgba(255,255,255,.3); border-top-color: #fff; }
@keyframes z-spin { to { transform: rotate(360deg); } }

/* kamera / tmavé obrazovky */
.z-dark { background: #000; color: #fff; }
.z-camera { flex: 1; position: relative; background: radial-gradient(ellipse at 50% 40%, #4a4a52 0%, #1c1c20 70%, #0b0b0d 100%); overflow: hidden; }
.z-photo { background: linear-gradient(135deg, #e9d2c3 0%, #d9b19c 45%, #c58f78 100%); position: relative; }
.z-photo.wound:after { content: ""; position: absolute; left: 38%; top: 36%; width: 24%; height: 20%; border-radius: 50% 45% 55% 50%; background: radial-gradient(circle at 45% 45%, #b8322a 0%, #8f1f1b 55%, #6b1a16 100%); box-shadow: 0 0 0 6px rgba(240,180,160,.55); }
.z-photo.doc { background: #f1f1f1; }
.z-photo.doc:after { content: ""; position: absolute; inset: 12% 14%; background: repeating-linear-gradient(#fff 0 14px, #d8d8d8 14px 16px); border: 1px solid #ccc; }
.z-ruler { position: absolute; left: 20%; bottom: 22%; width: 60%; height: 10px; background: repeating-linear-gradient(90deg, #fff 0 8px, #333 8px 9px); border: 1px solid #333; }

/* overlaye: dialog, bottom sheet, snackbar, drawer */
.z-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.45); z-index: 20; display: flex; align-items: center; justify-content: center; padding: 24px; }
.z-overlay.bottom { align-items: flex-end; padding: 0; }
.z-overlay.left { align-items: stretch; justify-content: flex-start; padding: 0; }
.z-dialog { background: #fff; border-radius: 28px; padding: 24px; width: fit-content; min-width: 280px; max-width: 100%; color: var(--z-main); }
/* AlertDialog: insetPadding 40 h / 24 v, min. šířka 280, IntrinsicWidth → nejvýš W − 80 */
.z-overlay:has(> .z-dialog) { padding: 24px 40px; }
.z-dialog.alert-title, .z-dialog:has(> .z-alert) { width: 100%; } /* ZAlertDialog: tlačítka min. 281 → vždy plná šířka */
/* výjimky: SelectEnumItemAlertDialog (insetPadding 24), date/time picker, systémové dialogy – původní rozměr */
.z-overlay:has(> .z-dialog:is(.inset24, .picker, .ios)), .z-overlay:has(> .z-dialog > .lib-bio) { padding: 24px; }
.z-dialog:is(.inset24, .picker, .ios), .z-dialog:has(> .lib-bio) { width: 100%; max-width: 360px; }
.z-dialog h2 { margin: 0 0 16px; font-size: 24px; font-weight: 400; line-height: 32px; } /* AlertDialog title = M3 headlineSmall */
.z-dialog.alert-title > h2 { font-size: 18px; font-weight: 600; line-height: normal; text-align: center; } /* ZAlertDialog: titleLarge 18 */
.z-dialog.ios > h2 { font-size: 17px; font-weight: 600; line-height: normal; text-align: center; } /* systémový UIAlertController */
.z-dialog.ios > p { font-size: 13px; text-align: center; }
.z-dialog.ios .acts .z-btn { font-size: 17px; font-weight: 400; }
.z-dialog > h2 + .acts { margin-top: 4px; } /* bez obsahu: pod nadpisem 20 */
.z-dialog p { margin: 0 0 24px; font-size: 14px; color: var(--z-main); }
.z-dialog .acts { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 48px; } /* řádek akcí = tap target 48 */
.z-dialog .acts .z-btn { width: auto; min-height: 40px; font-size: 14px; padding: 8px 12px; }
.z-dialog .acts .z-btn:not(.text) { font-size: 16px; } /* Elevated/Outlined (ZAlert*Button) = displaySmall 16/600; TextButton = labelLarge 14/600 */
.z-dialog .acts .z-btn.text.red { color: var(--z-red-delete); }
.z-sheet { background: #fff; border-radius: 16px 16px 0 0; width: 100%; max-height: 85%; display: flex; flex-direction: column; color: var(--z-main); }
.z-sheet .grip { width: 32px; height: 4px; border-radius: 2px; background: var(--z-indicator); margin: 10px auto 4px; }
.z-sheet .head { padding: 12px 16px; font-size: 16px; font-weight: 600; display: flex; align-items: center; justify-content: space-between; }
.z-sheet .body { overflow-y: auto; padding-bottom: 16px; }
.z-drawer { background: #fff; width: 80%; max-width: 320px; height: 100%; display: flex; flex-direction: column; color: var(--z-main); box-shadow: 4px 0 20px rgba(0,0,0,.2); }
.z-snack { background: #2d2d3a; color: #fff; border-radius: 6px; padding: 14px 16px; font-size: 14px; display: flex; align-items: center; gap: 12px; box-shadow: 0 4px 12px rgba(0,0,0,.3); pointer-events: auto; }
.z-snack button { background: transparent; border: 0; color: #9DB5FF; font-weight: 600; margin-left: auto; }

/* stavový řádek telefonu (jen prototyp) */
.z-status { height: 44px; flex: none; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; font-size: 14px; font-weight: 600; }
.z-status.light { color: #fff; } .z-status.dark { color: var(--z-main); }
.z-screen > .z-status { background: var(--z-secondary); color: #fff; }
.z-screen.statusless > .z-status { display: none; }

/* tablet: dvoupanelové rozložení */
.z-split { display: flex; flex: 1; min-height: 0; }
.z-split > .pane { flex: 1; min-width: 0; position: relative; display: flex; flex-direction: column; }
.z-split > .pane.list { max-width: 360px; border-right: 1px solid var(--z-divider); }

/* poznámka prototypu (ne v aplikaci) */
.z-note { margin: 12px 16px; padding: 10px 12px; border: 1px dashed var(--z-ai); background: #FFFBEA; color: #6b5200; font-size: 12px; border-radius: 8px; }
.z-note b { color: #6b5200; }

/* ---------- oblast 6: moduly foto / dokument / video / formuláře (js/screens/moduly.js) ---------- */
.m6-media { width: 100%; max-width: 330px; aspect-ratio: 3 / 4; border-radius: 4px; position: relative; overflow: hidden; }
.ph-subfolder-mark { position: absolute; right: 4px; top: 4px; color: var(--z-green); filter: drop-shadow(0 0 2px #fff); }
.m6-pdf { width: 100%; max-width: 330px; aspect-ratio: 3 / 4; background: #fff; color: #333; border-radius: 2px; padding: 24px 20px; font-family: Georgia, serif; font-size: 10px; line-height: 1.6; overflow: hidden; }
.m6-pdf h4 { margin: 0 0 8px; font-size: 13px; }
.m6-pdf .ln { height: 6px; background: #ddd; border-radius: 3px; margin: 5px 0; }
.m6-doc-sheet { position: absolute; left: 14%; top: 18%; width: 72%; height: 58%; background: #f4f4f1; transform: perspective(600px) rotateX(6deg) rotate(-3deg); box-shadow: 0 10px 30px rgba(0,0,0,.6); padding: 14px; }
.m6-doc-sheet .ln { height: 5px; background: #c9c9c4; border-radius: 3px; margin: 7px 0; }
.m6-video { width: 100%; max-width: 360px; aspect-ratio: 9 / 16; max-height: 100%; background: radial-gradient(ellipse at 50% 40%, #3a3a44 0%, #16161a 70%); position: relative; border-radius: 4px; overflow: hidden; }
.m6-video .play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(0,0,0,.54); color: #fff; display: flex; align-items: center; justify-content: center; }
.m6-video .play .mi { font-size: 40px; }
.m6-video .ctrl { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 12px 12px; background: linear-gradient(transparent, rgba(0,0,0,.7)); color: #fff; font-size: 14px; font-weight: 700; }
.m6-video .ctrl .bar { height: 4px; background: rgba(255,255,255,.3); border-radius: 2px; margin-top: 8px; overflow: hidden; }
.m6-video .ctrl .bar > i { display: block; height: 100%; background: var(--z-secondary); }
.m6-pill { background: #fff; color: #000; border-radius: 48px; display: flex; align-items: center; gap: 14px; padding: 10px 18px; transform: scale(1.5); transform-origin: center bottom; }
.m6-rec { width: 32px; height: 32px; border-radius: 50%; background: var(--z-fail); border: 0; display: flex; align-items: center; justify-content: center; }
.m6-cd { width: 20px; height: 20px; border-radius: 4px; background: #000; color: #fff; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.m6-cd.low { color: #FF6060; }
.m6-trim { position: relative; height: 60px; margin: 0 16px; border-radius: 6px; overflow: visible; background: repeating-linear-gradient(90deg, #4a4a52 0 30px, #2c2c33 30px 60px); }
.m6-trim .sel { position: absolute; top: 0; bottom: 0; border: 3px solid #fff; border-left-width: 14px; border-right-width: 14px; border-radius: 6px; box-sizing: border-box; }
.m6-trim .sel:before, .m6-trim .sel:after { content: ""; position: absolute; top: 50%; width: 3px; height: 18px; background: #000; border-radius: 2px; transform: translateY(-50%); }
.m6-trim .sel:before { left: -9px; } .m6-trim .sel:after { right: -9px; }
.m6-trim .dim { position: absolute; top: 0; bottom: 0; background: rgba(0,0,0,.55); }
.m6-trim .cursor { position: absolute; top: -6px; bottom: -6px; width: 3px; background: var(--z-secondary); }
.m6-form-card { background: #fff; border-radius: var(--z-radius-card); box-shadow: 0 1px 3px rgba(0,0,0,.12); margin-bottom: 8px; overflow: hidden; }
.m6-form-card .row { display: flex; align-items: center; gap: 8px; padding: 12px 16px; min-height: 56px; cursor: pointer; }
.m6-form-card .t { font-size: 16px; font-weight: 500; color: var(--z-main); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m6-form-card .sub { font-size: 12px; color: var(--z-main-light); margin-top: 2px; }
.m6-form-card .enter { color: var(--z-secondary); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; flex: none; }
.m6-fill-chip { display: inline-flex; padding: 2px 4px; border-radius: 3px; background: rgba(255,134,51,.2); border: 1px solid #FF8633; color: #FF8633; font-size: 12px; font-weight: 600; white-space: nowrap; }
.m6-roundbar { background: #fff; border-radius: 30px 30px 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.12); padding: 20px 30px 24px; flex: none; }
.m6-screen-row { display: flex; align-items: center; gap: 8px; padding: 12px 0; min-height: 52px; cursor: pointer; }
.m6-screen-row + .m6-screen-row { border-top: 1px solid var(--z-divider); }
.m6-screen-row .t { font-size: 16px; font-weight: 500; flex: 1; min-width: 0; }
.m6-screen-row .t.err { color: var(--z-fail); }
.m6-screen-row .e { font-size: 14px; color: var(--z-fail); }
.m6-screen-row .tr { color: var(--z-secondary); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; flex: none; }
.m6-gray-logo { width: 96px; height: 96px; filter: grayscale(1) brightness(1.35) opacity(.75); }
.m6-delete-x { width: 32px; height: 32px; border-radius: 50%; background: var(--z-scaffold-gray); color: var(--z-main-light); border: 0; display: inline-flex; align-items: center; justify-content: center; }
.m6-delete-x .zi { font-size: 17px; }

/* ---------- oblast 3: formulářové (metadata) widgety ---------- */
.mf-form { display: flex; flex-direction: column; }
.mf-form > .mf-item { padding: 8px; }
.mf-box { position: relative; display: flex; align-items: center; gap: 4px; min-height: 48px; padding: 8px; border: 1px solid var(--z-additional); border-radius: var(--z-radius-input); background: #fff; }
.mf-box.filled-gray { background: var(--z-scaffold-gray); }
.mf-box.error { border-color: var(--z-fail); }
.mf-box.clickable { cursor: pointer; }
.mf-box .mf-label { position: absolute; left: 14px; top: -8px; padding: 0 4px; background: #fff; font-size: 10.5px; font-weight: 600; color: var(--z-main-light); line-height: 1.2; max-width: calc(100% - 28px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mf-box.filled-gray .mf-label { background: linear-gradient(#fff 50%, var(--z-scaffold-gray) 50%); }
.mf-box .mf-ph { color: var(--z-main-light); font-weight: 400; font-size: 14px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mf-box .mf-val { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: var(--z-main); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mf-box input, .mf-box textarea { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 14px; font-weight: 600; color: var(--z-main); padding: 0; }
.mf-box textarea { resize: none; line-height: 1.4; }
.mf-box input::placeholder, .mf-box textarea::placeholder { color: var(--z-main-light); font-weight: 400; }
.mf-req { width: 24px; flex: none; text-align: center; font-size: 16px; font-weight: 600; color: var(--z-pink); } /* RequiredIcon: Padding 8 + „*“, box 8–24 */
.mf-req.off { width: 16px; }
.mf-box:has(> .mf-req) { padding-left: 0; } /* prefixIcon začíná u okraje pole */
.mf-box > .mf-kbd:last-child { margin-right: -4px; } /* suffix: Padding(right 8) + ikona 24 */
.mf-err { color: var(--z-fail); font-size: 14px; margin: 4px 0 0 14px; }
.mf-kbd { width: 32px; height: 32px; border-radius: 16px; border: 0; background: transparent; color: var(--z-main); display: inline-flex; align-items: center; justify-content: center; flex: none; padding: 0; }
.mf-kbd .mi { font-size: 24px; }
.mf-clear { width: 28px; height: 28px; border: 0; background: transparent; color: var(--z-fail); display: inline-flex; align-items: center; justify-content: center; flex: none; padding: 0; }
.mf-clear .zi { font-size: 18px; }
.mf-suggest { display: inline-flex; align-items: center; gap: 4px; padding: 6px 10px; border-radius: 8px; background: rgba(51,102,255,.12); color: var(--z-secondary); font-size: 14px; font-weight: 700; border: 0; max-width: 120px; flex: none; }
.mf-suggest .mi { font-size: 18px; }
.mf-aichip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 16px; border: 1px solid var(--z-main-light); color: var(--z-main-light); background: transparent; font-size: 14px; font-weight: 600; flex: none; }
.mf-aichip .mi { font-size: 16px; }
.mf-aipending { display: inline-flex; align-items: center; gap: 8px; color: var(--z-secondary); font-size: 12px; font-weight: 500; flex: none; }
.mf-bool { display: flex; align-items: center; gap: 12px; padding: 8px 4px; cursor: pointer; }
.mf-drop { margin: 4px 0 0; background: #fff; border-radius: 8px; box-shadow: 0 5px 5px rgba(0,0,0,.2); overflow: hidden; }
.mf-drop .it { display: flex; align-items: center; gap: 8px; padding: 8px 8px 8px 16px; font-size: 13px; font-weight: 600; border-bottom: 1px solid rgba(10,26,101,.1); cursor: pointer; }
.mf-drop .it:last-child { border-bottom: 0; }
.mf-drop .it.group { font-weight: 700; cursor: default; }
.mf-drop .it .mi { font-size: 18px; color: var(--z-main-light); }
.mf-chips { display: flex; flex-wrap: wrap; gap: 4px; flex: 1; min-width: 0; align-items: center; }
.mf-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 6px; background: rgba(51,102,255,.1); color: var(--z-secondary); font-size: 14px; font-weight: 600; border: 0; }
.mf-chip .zi { font-size: 14px; }
.mf-chips input { flex: 1; min-width: 60px; border: 0; outline: 0; background: transparent; font-size: 14px; }
.mf-ms-list { margin-top: 4px; background: #fff; border-radius: 8px; box-shadow: 0 5px 10px rgba(0,0,0,.2); max-height: 200px; overflow-y: auto; }
.mf-ms-list .it { display: flex; align-items: center; gap: 8px; padding: 4px 8px; min-height: 40px; border-bottom: 1px solid var(--z-divider); font-size: 13px; font-weight: 600; color: var(--z-main-light); cursor: pointer; }
.mf-ms-list .it:last-child { border-bottom: 0; }
.mf-ms-list .it .z-check { border-color: var(--z-main-light); }
.mf-mat-rows { margin: -6px 0; }
.mf-mat-line { display: flex; align-items: center; gap: 0; padding: 6px 0; } /* Row: crossAxisAlignment center */
.mf-mat-line + .mf-mat-line { border-top: 1px solid var(--z-border); }
.mf-mat-line .info { flex: 1; min-width: 0; padding-right: 4px; } /* Expanded + SizedBox(width 4) */
.mf-mat-line .info .n { font-weight: 700; font-size: 14px; }
.mf-mat-line .info .c { font-size: 14px; color: var(--z-main-light); }
.mf-mat-line .ctrls { display: flex; flex-direction: column; gap: 0; align-items: center; } /* Column: děti na střed */
.mf-mat-del { width: 48px; height: 48px; border: 0; background: transparent; padding: 0 0 0 4px; display: inline-flex; align-items: center; justify-content: center; flex: none; } /* IconButton: tap target 48, padding L4 */
.mf-mat-del .z-svg { width: 17px; height: 18px; }
.mf-carried { display: inline-block; font-size: 12px; font-weight: 600; color: var(--z-upload); background: rgba(255,134,51,.2); border: 1px solid var(--z-upload); border-radius: 3px; padding: 2px 4px; margin-bottom: 4px; }
.mf-qty { display: flex; align-items: center; width: auto; max-width: 130px; height: 48px; margin: 2px 0; background: #fff; border: 1px solid var(--z-border); border-radius: 10px; overflow: hidden; }
.mf-qty button { width: 47px; height: 46px; border: 0; background: transparent; color: var(--z-secondary); display: inline-flex; align-items: center; justify-content: center; padding: 0; flex: none; }
.mf-qty button .mi { font-size: 20px; }
.mf-qty input { flex: 0 1 auto; field-sizing: content; min-width: 7px; padding: 0 3px 0 0; margin: 0 4px; text-align: center; border: 0; outline: 0; font-size: 16px; font-weight: 600; background: transparent; }
.mf-unit { display: flex; align-items: center; justify-content: space-between; gap: 4px; width: 115px; height: 50px; margin: 2px 0; padding: 0 8px; background: #fff; border: 1px solid var(--z-border); border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; } /* DropdownButton itemHeight 48 + rámeček */
.mf-unit .zi { font-size: 24px; color: var(--z-secondary); }
.mf-unit.single .zi { color: var(--z-indicator); }
.mf-lot { display: flex; flex-direction: column; gap: 0; width: 115px; }
.mf-lot .f { position: relative; display: flex; align-items: center; height: 29px; margin: 2px 0; padding: 0 8px; background: #fff; border: 1px solid var(--z-border); border-radius: 10px; font-size: 14px; font-weight: 600; } /* TextField: hodnota bodyLarge 14/600, prázdný label 14/400 */
.mf-lot .f input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 14px; font-weight: 600; }
.mf-lot .f .ph { color: var(--z-main-light); font-weight: 400; }
.mf-lot .f .mf-label { position: absolute; left: 6px; top: -7px; padding: 0 2px; background: linear-gradient(var(--z-scaffold-gray) 50%, #fff 50%); font-size: 10.5px; font-weight: 600; color: var(--z-main-light); line-height: 1.2; pointer-events: none; } /* plovoucí labelText po vyplnění */
.mf-addmore { width: 100%; min-height: 46px; border: 0; border-radius: 14px; background: var(--z-border); color: var(--z-main); font-size: 16px; font-weight: 600; }
.mf-submit { background: var(--z-upload) !important; }
.mf-readonly { padding: 8px 16px; }
.mf-readonly .t { font-size: 14px; font-weight: 600; } /* MetadataReadonlyInput = ListTile: title bodyLarge, subtitle bodyMedium */
.mf-readonly .s { font-size: 14px; color: var(--z-main-light); }
.mf-disp { flex: 1; min-width: 0; }
.mf-disp .t { font-size: 14px; font-weight: 600; }
.mf-disp .s { font-size: 14px; color: var(--z-main-light); }
.mf-vdiv { width: 1.5px; height: 24px; background: var(--z-indicator); margin: 0 12px; flex: none; }
.mf-retry { background: var(--z-fail); color: #fff; border: 0; border-radius: 8px; padding: 8px 4px; font-size: 12px; font-weight: 600; flex: none; }
.mf-popup { background: #fff; border-radius: 30px 30px 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.12); padding: 16px 16px calc(16px + var(--safe-bottom)); width: 100%; max-height: 92%; display: flex; flex-direction: column; color: var(--z-main); }
.mf-popup .mf-head { display: flex; align-items: center; gap: 8px; padding-left: 16px; min-height: 45px; }
.mf-popup .mf-head .t { flex: 1; min-width: 0; font-size: 16px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mf-popup .mf-body { flex: 1; min-height: 0; overflow-y: auto; padding-top: 8px; }
.mf-scanbtn { width: 138px; height: 45px; border-radius: 10px; border: 0; background: var(--z-main); color: #fff; font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: none; }
.mf-scanbtn .zi { font-size: 21px; }
.mf-addact { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--z-scaffold-gray); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.mf-enumdlg .it { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 0; border-top: 1px solid var(--z-divider); font-size: 14px; cursor: pointer; }
.mf-enumdlg .it.disabled { color: var(--z-main-light); cursor: default; }
.mf-enumdlg .it .lbl { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mf-enumdlg .it .zi { color: var(--z-secondary); font-size: 20px; }
.mf-aicard { border-radius: 12px; border: 1px solid var(--z-border); padding: 8px; margin-bottom: 8px; background: var(--z-ai-bg); }
.mf-aicard.gray { background: var(--z-border); }
.mf-aicard .hd { display: flex; align-items: center; gap: 8px; }
.mf-aicard .hd .t { flex: 1; text-align: center; font-size: 14px; font-weight: 600; }
.mf-aicard .hd .n { font-size: 14px; color: var(--z-main-light); }
.mf-aicard .inner { background: #fff; border: 1px solid var(--z-border); border-radius: 12px; padding: 4px; margin-top: 8px; }
.mf-aicard .ai-it { display: flex; align-items: center; gap: 8px; padding: 8px 0; cursor: pointer; }
.mf-aicard .ai-it + .ai-it { border-top: 1px solid var(--z-divider); }
.mf-aicard .ai-it .lbl { flex: 1; min-width: 0; font-size: 14px; }
.mf-aicard .ai-it.first .lbl { font-size: 16px; font-weight: 600; color: var(--z-logo); }
.mf-aicard .ai-it .cm { font-size: 12px; font-weight: 400; color: var(--z-gray-light); padding-left: 8px; } /* subtitle: bodySmall 12, i u první (velké) položky */
.mf-aicard .conf { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; padding-right: 8px; font-size: 14px; }
.mf-aicard .conf i { display: block; width: 48px; height: 3px; border-radius: 2px; background: var(--z-border); overflow: hidden; }
.mf-aicard .conf i b { display: block; height: 100%; background: var(--z-logo); }
.mf-enumscreen-search { display: flex; align-items: center; gap: 8px; height: 60px; padding: 0 8px; border: 2px solid var(--z-indicator); border-radius: 12px; background: #fff; }
.mf-enumscreen-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 14px; font-weight: 600; }
.mf-enumscreen-search input::placeholder { font-weight: 400; }
.mf-enumscreen-search .zi { font-size: 25px; color: var(--z-secondary); }
/* SearchInput: Padding v16 h8, výška 61 (22+17+22), lupa v IconButtonu 48, rámeček v klidu = enabledBorder tématu (1 px additional) */
.mf-enumscreen-search.mf-searchinput { height: 61px; margin: 16px 8px; padding: 0 8px 0 0; gap: 4px; border: 1px solid var(--z-additional); }
.mf-searchinput .zi { width: 48px; flex: none; text-align: center; }
.mf-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; font-size: 14px; font-weight: 600; } /* M3 DatePicker: dny i dny v týdnu bodyLarge */
.mf-cal .h { color: var(--z-main-light); padding: 4px 0; }
.mf-cal .d { padding: 7px 0; border-radius: 50%; cursor: pointer; }
.mf-cal .d.sel { background: var(--z-secondary); color: #fff; }
.mf-cal .d.today { border: 1px solid var(--z-secondary); }
.mf-cal .d.off { color: var(--z-indicator); cursor: default; }

/* ---------- oblast 4: focení, galerie, odeslání (společné) ---------- */
.ph-top { position: absolute; top: 0; left: 0; right: 0; background: rgba(0,0,0,.54); height: 92px; padding: 8px; display: flex; align-items: flex-end; z-index: 3; }
.ph-top.tall { height: 116px; }
.ph-note { position: absolute; left: 16px; right: 16px; bottom: 146px; z-index: 5; }
.ph-note .z-note { margin: 0; }
.ph-top .row { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 8px; }
.ph-top .name { flex: 1; min-width: 0; text-align: center; color: #fff; font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ph-bottom { position: absolute; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.54); height: 134px; padding: 20px; display: flex; align-items: flex-start; justify-content: space-between; z-index: 3; }
.ph-bottom .z-btn.outlined { width: auto; min-width: 80px; min-height: 44px; padding: 6px 14px; color: #fff; border-color: #fff; font-size: 16px; font-weight: 400; margin-top: 6px; }
.ph-shutter-wrap { position: absolute; left: 0; right: 0; bottom: calc(var(--safe-bottom) + 16px); display: flex; justify-content: center; z-index: 4; }
.ph-gallery-head { flex: none; min-height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 600; padding: 0 16px; text-align: center; }
.ph-gallery-head small { display: block; font-size: 12px; font-weight: 600; color: rgba(255,255,255,.7); }
.ph-carousel { flex: 1; min-height: 0; position: relative; display: flex; align-items: center; justify-content: center; padding: 8px 0; }
.ph-carousel .img { width: 86%; aspect-ratio: 3 / 4; max-height: 100%; border-radius: 4px; overflow: hidden; position: relative; }
.ph-line { height: 2px; background: #000; flex: none; }
.ph-panel { display: flex; align-items: center; gap: 4px; padding: 4px 8px; min-height: 56px; }
.ph-panel .z-iconbtn { background: transparent; color: #fff; }
.ph-panel .z-iconbtn.red { color: var(--z-fail); }
.ph-panel .z-iconbtn.green { color: #4caf50; }
.ph-panel .z-iconbtn.dis { color: rgba(255,255,255,.35); }
.ph-panel .tune { width: 48px; height: 48px; border-radius: 48px; border: 1px solid transparent; background: transparent; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ph-panel .tune.open { background: #000; border-color: #fff; }
.ph-bar { flex: none; display: flex; justify-content: space-around; align-items: center; padding: 8px 8px 24px; gap: 8px; }
.ph-bar .z-btn.outlined { width: auto; min-width: 130px; min-height: 48px; color: #fff; border-color: #fff; font-size: 16px; font-weight: 400; }
.ph-bar .z-btn.outlined.dis { opacity: .4; }
.ph-sticker { position: absolute; transform: translate(-50%, -50%); font-family: Roboto, Inter, sans-serif; font-weight: 500; white-space: nowrap; cursor: pointer; text-shadow: 0 0 2px rgba(255,255,255,.3); }
.ph-sticker.sel { outline: 1px dashed rgba(255,255,255,.7); outline-offset: 4px; }
.ph-stickerrow { flex: none; height: 80px; display: flex; align-items: center; gap: 12px; padding: 16px 0 16px 16px; }
.ph-stickerrow .colorbtn { width: 40px; height: 40px; border-radius: 50%; border: 2px solid #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ph-stickerrow .colorbtn .mi { font-size: 20px; }
.ph-stickerrow .list { flex: 1; min-width: 0; display: flex; gap: 8px; overflow-x: auto; padding: 4px 16px 4px 0; }
.ph-stickerrow .list::-webkit-scrollbar { height: 0; }
.ph-stickerrow .list .z-btn { width: auto; min-height: 40px; padding: 4px 14px; background: #fff; color: #000; font-size: 14px; font-weight: 500; white-space: nowrap; flex: none; }
.z-fab.extended.collapsed { padding: 0; width: 56px; }
.z-fab.extended.collapsed span.lbl { display: none; }
.z-alert { text-align: center; }
.z-alert .z-svg { width: 64px; height: 64px; margin: 0 auto 12px; display: block; }
.z-alert h2 { font-size: 18px; font-weight: 600; margin: 0 0 8px; }
.z-alert p { color: var(--z-light-text); margin: 0 0 20px; }

/* ---------- oblast 2: jádro (dashboard, karta pacienta, vyhledávání, menu) ---------- */
.j-inner { width: 100%; max-width: 640px; margin: 0 auto; }
.j-fbs { flex: none; background: #fff; border-radius: 30px 30px 0 0; box-shadow: 0 -4px 16px rgba(0,0,0,.12); padding: 0 30px calc(16px + var(--safe-bottom)); cursor: pointer; position: relative; z-index: 3; }
.j-grip { width: 28px; height: 4px; border-radius: 2px; background: var(--z-indicator); margin: 14px auto 22px; }
.j-round { border-radius: 30px 30px 0 0 !important; box-shadow: 0 -4px 16px rgba(0,0,0,.12); }
/* hledání pacienta: contentPadding v22 → výška 61; lupa v boxu 48 (prefixIconConstraints / IconButton); rámeček v klidu = enabledBorder tématu 1 px additional (border 2 px z kódu se neuplatní) */
.z-input.large.j-searchbox { height: 61px; min-height: 61px; padding: 0 8px 0 0; gap: 4px; border: 1px solid var(--z-additional); }
.j-searchbox .zi { font-size: 25px; color: var(--z-secondary); }
.j-searchbox > .zi, .j-searchbox > .z-iconbtn { width: 48px; height: 48px; flex: none; display: inline-flex; align-items: center; justify-content: center; }
.j-searchbox .ph { color: var(--z-light-text); font-weight: 400; }
.j-searchbox input { font-weight: 600; } /* SearchInput = TextField bez stylu: bodyLarge 14/600, hint bodySmall 14/400 */
.j-searchbox input::placeholder { font-weight: 400; }
.j-scanbtn { width: 138px; height: 45px; flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 2px 8px; border: 0; border-radius: 10px; background: var(--z-main); color: #fff; font-size: 14px; font-weight: 600; }
.j-scanbtn .zi { font-size: 21px; }
.j-folder-head { background: var(--z-primary-darker); color: #fff; padding: 30px 0 24px 36px; position: relative; overflow: hidden; flex: none; }
.j-folder-head .person { position: absolute; right: 0; top: 0; height: 100%; width: auto; opacity: .9; pointer-events: none; }
.j-pill { border: 0; border-radius: 999px; background: rgba(255,255,255,.1); color: #fff; padding: 4px 8px; font-size: 14px; font-weight: 500; font-family: inherit; user-select: none; -webkit-user-select: none; }
.j-clear { display: inline-flex; align-items: center; gap: 10px; border: 0; background: transparent; color: var(--z-secondary); font-size: 14px; font-weight: 600; font-family: inherit; padding: 0; }
.j-clear .zi { font-size: 18px; padding-top: 1.5px; }
.j-banner { position: absolute; top: 56px; left: 15%; width: 70%; background: rgba(0,0,0,.54); color: #fff; padding: 12px; border-radius: 4px; display: flex; align-items: center; gap: 12px; font-size: 14px; transition: opacity 1s; z-index: 3; }
.j-banner .mi { color: #CF6679; }
.j-drawer-item { display: flex; align-items: center; gap: 8px; border: 0; background: transparent; color: rgba(10,26,101,.8); font-size: 14px; font-family: inherit; padding: 8px 0; text-align: left; }
.j-di { color: #C1C0C9; font-size: 20px; }

/* ---------- oblast 5: rány a analýza (AI), mapa těla, spotmap (js/screens/rany.js) ---------- */
.z-wcard { border-radius: 12px; }
.z-wtile { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 0; cursor: pointer; }
.z-wtile .sub { font-size: 14px; color: var(--z-gray-light); min-height: 0; } /* WoundListTile subtitle: bodyMedium */
.z-wtile .sub:empty { display: none; }
.z-wtile .t { font-size: 16px; font-weight: 500; margin-top: 2px; }
.z-wtile.error .sub, .z-wtile.error .t { color: var(--z-fail); }
.z-wtrail { display: inline-flex; align-items: center; gap: 2px; color: var(--z-secondary); font-size: 14px; font-weight: 600; white-space: nowrap; }
.z-wtrail .zi { font-size: 24px; color: var(--z-secondary); }
.z-wtag { display: inline-block; padding: 2px 4px; border-radius: 3px; border: 1px solid var(--z-upload); background: rgba(255,134,51,.2); color: var(--z-upload); font-size: 12px; font-weight: 600; white-space: nowrap; }
.z-wdel { width: 40px; height: 40px; border: 0; background: transparent; display: flex; align-items: center; justify-content: flex-end; padding: 0; }
.z-wdel .zi { width: 32px; height: 32px; border-radius: 50%; background: var(--z-scaffold-gray); color: var(--z-gray-light); font-size: 17px; display: inline-flex; align-items: center; justify-content: center; }
.z-wrows { margin-top: 4px; }
.z-wcount { display: inline-flex; width: 22px; height: 22px; border-radius: 50%; background: var(--z-secondary); color: #fff; font-size: 12px; font-weight: 400; align-items: center; justify-content: center; vertical-align: middle; margin-left: 6px; }
.z-spotmap { flex: 1; display: flex; flex-direction: column; min-height: 0; background: #fff; }
.z-spotmap-svg { display: block; width: 100%; max-height: 560px; margin: 0 auto; }
.z-spot-li { display: flex; align-items: center; gap: 12px; margin: 0 16px 8px; padding: 8px 8px 8px 16px; border: 1px solid rgba(0,0,0,.16); border-radius: 8px; cursor: pointer; }
.z-gbtn { background: transparent; border: 0; color: inherit; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 10px; font-size: 11px; font-weight: 500; border-radius: 12px; }
.z-gbtn .zi, .z-gbtn .mi { font-size: 24px; }
.z-gbtn[disabled] { opacity: .35; pointer-events: none; }
.z-onblack.z-btn.outlined { color: #fff; border-color: #fff; min-height: 48px; padding: 8px 20px; font-size: 16px; font-weight: 400; }
.z-onblack.z-btn.outlined .zi { color: #fff; }
.z-mtool { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 20px; border: 1px solid #fff; background: #000; color: #fff; font-size: 14px; font-weight: 600; }
.z-mtool.on { background: #fff; color: #000; }
.z-radiocheck { width: 24px; height: 24px; border-radius: 50%; background: #C8C8C8; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; cursor: pointer; }
.z-radiocheck.on { background: #8BC34A; }
.z-radiocheck .mi { font-size: 16px; }

/* ---------- opravy z knihoven (bw_image_commons, bw_auth, bw_helpers, time_picker_widget) – podle zuni-map/08-doplneni-z-knihoven.md ---------- */
/* PictureShootButton: bílý plný kruh Ø65, uvnitř černý prstenec Ø58 / 4 px; isLoading = točící se oblouk #005DF2 na black38 */
.z-shutter { width: 65px; height: 65px; border: 0; padding: 0; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.z-shutter:after { content: ""; box-sizing: border-box; width: 58px; height: 58px; border-radius: 50%; background: transparent; border: 4px solid #000; }
.z-shutter.loading:after { border-color: rgba(0,0,0,.38); border-top-color: #005DF2; animation: z-spin .9s linear infinite; }
.z-shutter[disabled] { cursor: default; }
/* ShootOverlayAnimation: černá vrstva 150 ms */
.lib-blink { position: absolute; inset: 0; background: #000; z-index: 2; animation: lib-blink 150ms cubic-bezier(.3,0,.7,1) both; pointer-events: none; }
@keyframes lib-blink { from { opacity: 0; } to { opacity: 1; } }
/* SwitchFlashButton: IconButton maxWidth 28, ikona #FFF59D */
.z-iconbtn.lib-flash { width: 28px; min-width: 28px; background: transparent; color: #FFF59D; margin: 0 4px; }
/* ZoomSlider: sbalený = černý kruh Ø36 s lupou; rozbalený = svislá dráha 18 px na 90 % výšky */
.lib-zoom { position: absolute; right: 18px; width: 40px; display: flex; align-items: center; justify-content: center; z-index: 3; pointer-events: none; }
.lib-zoom > * { pointer-events: auto; }
.lib-zoom .knob { width: 36px; height: 36px; border-radius: 50%; border: 0; padding: 0; background: #000; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-family: inherit; }
.lib-zoom .knob.val { background: rgba(0,0,0,.33); }
.lib-zoom .knob .mi { font-size: 22px; }
.lib-zoom .track { position: relative; width: 18px; height: 90%; border-radius: 9px; background: rgba(158,158,158,.5); cursor: pointer; }
.lib-zoom .track .act { position: absolute; left: 0; right: 0; bottom: 0; border-radius: 9px; background: rgba(255,255,255,.6); pointer-events: none; }
.lib-zoom .track .thumb { position: absolute; left: 50%; width: 40px; height: 40px; margin: 0 0 -20px -20px; border-radius: 50%; background: rgba(0,0,0,.33); border: 1.6px solid rgba(255,255,255,.7); box-sizing: border-box; pointer-events: none; }
.lib-zoom .track .tip { position: absolute; right: 30px; margin-bottom: -14px; padding: 4px 8px; border-radius: 4px; background: rgba(0,0,0,.45); color: rgba(255,255,255,.95); font-size: 12px; white-space: nowrap; pointer-events: none; }
/* CameraSelectionMenu: jen ikony, bez textů */
.lib-cam { position: absolute; left: 0; right: 0; display: flex; justify-content: center; z-index: 3; pointer-events: none; }
.lib-cam .pill { pointer-events: auto; border: 0; background: rgba(0,0,0,.54); color: #fff; border-radius: 24px; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; padding: 0; }
.lib-cam .pill.open { width: auto; height: auto; border-radius: 12px; padding: 8px; gap: 8px; }
.lib-cam .cam { width: 36px; height: 36px; border: 1.2px solid #fff; border-radius: 8px; background: transparent; padding: 4px; display: flex; align-items: center; justify-content: center; opacity: .5; transition: opacity .5s; }
.lib-cam .cam.sel { opacity: 1; box-shadow: 0 0 8px 2px rgba(255,193,7,.85); }
.lib-cam .cam .dots { display: grid; grid-template-columns: repeat(2, 8px); gap: 3px; }
.lib-cam .cam .dots i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid rgba(255,255,255,.6); box-sizing: border-box; }
.lib-cam .cam .dots i.on { background: #fff; border-color: #fff; }
/* GalleryThumbnail: obrázek max 60 px, bílý okraj 2, radius 4; odznak Ø24 #3583EA, 16 bold */
.lib-thumb { position: relative; border: 0; background: transparent; padding: 2px; display: inline-flex; align-items: center; justify-content: center; color: rgba(255,255,255,.87); }
.lib-thumb .img { position: relative; width: 60px; height: 80px; border: 2px solid #fff; border-radius: 4px; overflow: hidden; box-sizing: border-box; background: #333; }
.lib-thumb .cnt { position: absolute; right: -10px; top: -10px; width: 24px; height: 24px; border-radius: 50%; background: #3583EA; color: #fff; font-size: 16px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
/* ostření klepnutím (CameraControllerService): oranžový čtverec 60×60, zmizí za 2 s */
.lib-focus { position: absolute; width: 60px; height: 60px; margin: -30px 0 0 -30px; border: 2px solid #FB8C00; box-sizing: border-box; pointer-events: none; z-index: 2; animation: lib-focus 2s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes lib-focus { from { opacity: 1; } to { opacity: 0; } }
/* GalleryHeader: „‹ 2 z 3 ›“ nad snímkem */
.lib-gh { flex: none; display: flex; align-items: center; justify-content: center; gap: 4px; color: #fff; font-size: 14px; font-weight: 600; padding: 0 0 2px; min-height: 48px; }
.lib-gh .z-iconbtn { background: transparent; color: #fff; }
.lib-gh .z-iconbtn[disabled] { color: rgba(255,255,255,.54); cursor: default; }
.ph-carousel.lib { padding: 0 8px 8px; }
.ph-carousel.lib .img { width: 100%; }
.ph-carousel.lib .m6-media, .ph-carousel.lib .m6-video, .ph-carousel.lib .m6-pdf { max-width: none; max-height: 100%; }
/* CarouselGallery.victoryScreen: výška 1/3 obrazovky, viewportFraction 0.5, hlavička „Fotky k nahrání 1 z 3“ */
.lib-vic { padding: 8px 0 96px; }
.lib-vic .hd { text-align: center; font-size: 14px; color: var(--z-main); padding-bottom: 2px; }
.lib-vic .track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 25%; box-sizing: border-box; }
.lib-vic .track::-webkit-scrollbar { height: 0; }
.lib-vic .it { flex: 0 0 100%; max-width: 100%; height: 100%; scroll-snap-align: center; padding: 4px; box-sizing: border-box; cursor: pointer; }
.lib-vic .it > .in { position: relative; width: 100%; height: 100%; border-radius: 4px; overflow: hidden; pointer-events: none; }
.lib-vic .it .z-photo, .lib-vic .it .m6-video, .lib-vic .it .m6-media { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; aspect-ratio: auto; border-radius: 0; }
/* colorModalBottomSheet: M3 sheet bez nadpisu, úchytu a ikon */
.z-sheet.lib-sheet { background: #1D1B20; color: #E6E1E5; border-radius: 28px 28px 0 0; }
.z-sheet.lib-sheet .body { padding: 8px 0 16px; }
.lib-sheet .lt { display: flex; align-items: center; min-height: 56px; padding: 8px 24px 8px 16px; font-size: 16px; cursor: pointer; }
/* ImageCropEditor: výplň grey300 @39 %, obrys #42A5F5 2 px, 8 úchytů Ø64 grey300 @78 %, lupa 100×100 */
.lib-crop-stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 16px 32px; overflow: hidden; }
.lib-crop { position: relative; width: 100%; max-width: 330px; aspect-ratio: 3 / 4; max-height: 100%; touch-action: none; }
.lib-crop > .z-photo, .lib-crop > .img { position: absolute; inset: 0; }
.lib-crop svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.lib-crop .h { position: absolute; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: rgba(224,224,224,.78); cursor: grab; touch-action: none; z-index: 2; }
.lib-crop .mag { position: absolute; top: 0; width: 100px; height: 100px; background: #000; border: 2px solid #F5F5F5; box-sizing: border-box; overflow: hidden; z-index: 3; pointer-events: none; display: none; }
.lib-crop .mag.on { display: block; }
.lib-crop .mag .src { position: absolute; }
/* CameraPermissionChecker: celá obrazovka bez kamery */
.lib-perm { flex: 1; display: flex; align-items: center; justify-content: center; padding: 8px; text-align: center; }
.lib-perm .col { display: flex; flex-direction: column; align-items: center; max-width: 100%; }
.lib-perm .txt { font-size: 14px; line-height: 1.43; }
.lib-perm.dark { background: #000; color: #fff; }
.lib-perm.dark .txt { font-weight: 600; } /* bodyMedium tmavého tématu */
.lib-perm.light { background: #fff; color: var(--z-main); }
.lib-perm .m3btn { min-height: 40px; padding: 0 24px; border-radius: 20px; border: 0; background: #2B2930; color: #fff; font-size: 14px; font-weight: 500; box-shadow: 0 1px 3px rgba(0,0,0,.4); }
/* Android BiometricPrompt (systémový dialog) */
.lib-bio { text-align: center; }
.lib-bio .t { font-size: 22px; font-weight: 400; color: #1C1B1F; margin: 4px 0 8px; }
.lib-bio .s { font-size: 14px; color: #49454F; margin-bottom: 28px; }
.lib-bio .fp { width: 64px; height: 64px; margin: 0 auto 28px; border-radius: 50%; border: 0; background: #E8DEF8; color: #1D192B; display: flex; align-items: center; justify-content: center; }
.lib-bio .fp .mi { font-size: 40px; }
.lib-bio .acts { display: flex; justify-content: flex-start; }
.lib-bio .acts button { background: transparent; border: 0; color: #6750A4; font-size: 14px; font-weight: 500; padding: 10px 12px; }
/* time_picker_widget: ciferník */
.lib-tp { width: 100%; max-width: 328px; margin: 0 auto; color: var(--z-main); }
.lib-tp .help { font-size: 11px; font-weight: 500; color: var(--z-main-light); margin-bottom: 12px; }
.lib-tp .hm { display: flex; align-items: center; gap: 4px; margin-bottom: 16px; }
.lib-tp .hm .box { flex: 1; height: 80px; border-radius: 8px; border: 0; font-size: 48px; font-weight: 400; color: var(--z-main); background: rgba(10,26,101,.12); font-family: inherit; }
.lib-tp .hm .box.on { background: rgba(10,26,101,.12); color: var(--z-main); }
.lib-tp .hm .box:not(.on) { background: rgba(28,27,31,.12); }
.lib-tp .hm .sep { font-size: 48px; width: 20px; text-align: center; }
.lib-tp .dial { position: relative; width: 256px; height: 256px; margin: 0 auto; border-radius: 50%; background: rgba(28,27,31,.12); }
.lib-tp .dial svg { position: absolute; inset: 0; pointer-events: none; }
.lib-tp .dial .lb { position: absolute; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; border: 0; background: transparent; font-size: 16px; color: var(--z-main); font-family: inherit; padding: 0; }
.lib-tp .dial .lb.sel { color: #fff; }
.lib-tp .dial .lb.off { opacity: .1; }
.lib-tp .acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.lib-tp .acts button { background: transparent; border: 0; color: var(--z-main); font-size: 14px; font-weight: 600; padding: 10px 12px; font-family: inherit; }
/* OAuth: in-app prohlížeč (InAppBrowser, bez adresního řádku) a bottom sheet 90 % */
.lib-oauth-sheet { position: absolute; inset: 0; z-index: 10; background: rgba(0,0,0,.54); display: flex; align-items: flex-end; }
.lib-oauth-sheet .sh { width: 100%; height: 90%; background: #fff; border-radius: 16px 16px 0 0; display: flex; flex-direction: column; overflow: hidden; }
.lib-oauth-sheet .sh .bar { display: flex; justify-content: flex-end; align-items: center; gap: 4px; padding: 8px 12px; color: var(--z-main); font-size: 14px; cursor: pointer; }

/* ===== 2 · Dashboard a pacient – konfigurace ===== */
.j-cfg-logo { margin: 0 auto 16px; width: 200px; height: 64px; border: 1.5px dashed var(--z-border, #ABB5C9); border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; color: var(--z-main-light, #8F9BB3); }
.j-cfg-logo small { font-size: 10px; font-weight: 400; }

/* ===== 5 · Rány a analýza – konfigurace (formulář rány CSLR) ===== */
