/* Gosscard — Místa setkání „Potkáme se tady". Sjednoceno na design tokeny (gosscard-theme.css). */

/* --- FAB „Potkáme se tady" --- */
/* Sjednoceno se stylem chat/foto FAB (.gosscard-map-fab): solidní modrá + bílá ikona. */
.gc-meeting-fab {
    width: 52px; height: 52px; border-radius: 50% !important;
    background: var(--gc-primary-strong, #0069d9);
    color: #fff; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .28) !important;
    font-size: 22px; line-height: 1; transition: transform .15s ease, box-shadow .2s ease;
}
.gc-meeting-fab:hover { transform: scale(1.05); box-shadow: 0 6px 18px rgba(0, 0, 0, .32) !important; }
.gc-meeting-fab:active { transform: scale(.94); }
.gc-meeting-fab i { pointer-events: none; }

/* --- Mapový marker setkání (sjednocená značková modrá, typ rozlišuje emoji) --- */
.gc-meeting-marker { background: none; border: none; }
.gc-meeting-pin {
    position: relative; width: 40px; height: 40px; border-radius: 50% 50% 50% 4px;
    transform: rotate(45deg);
    background: var(--gc-primary-grad);
    box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
    display: flex; align-items: center; justify-content: center;
    border: 2px solid #fff;
}
.gc-meeting-pin > span.gc-meeting-emoji { transform: rotate(-45deg); font-size: 18px; line-height: 1; }
.gc-meeting-badge {
    position: absolute; top: -8px; right: -8px; transform: rotate(-45deg);
    background: var(--gc-danger-strong); color: #fff; font-size: 11px; font-weight: 700;
    min-width: 18px; height: 18px; border-radius: 9px; padding: 0 4px;
    display: flex; align-items: center; justify-content: center; border: 2px solid #fff;
}
.gc-meeting-pin--new { animation: gcMtgPulse 1.4s ease-out infinite; }
@keyframes gcMtgPulse {
    0% { box-shadow: 0 4px 10px rgba(0,0,0,.3), 0 0 0 0 rgba(0,123,255,.55); }
    70% { box-shadow: 0 4px 10px rgba(0,0,0,.3), 0 0 0 16px rgba(0,123,255,0); }
    100% { box-shadow: 0 4px 10px rgba(0,0,0,.3), 0 0 0 0 rgba(0,123,255,0); }
}

/* --- Bottom sheet (create / detail) --- */
.gc-mtg-backdrop {
    position: fixed; inset: 0; z-index: 10050;
    background: rgba(0, 0, 0, .45);
    display: flex; align-items: flex-end; justify-content: center;
}
/* Režim výběru místa: panel nesmí překrývat mapu, jinak nejde chytit ani posouvat špendlíkem. */
.gc-mtg-backdrop--pick { pointer-events: none; background: transparent; }
.gc-mtg-backdrop--pick .gc-mtg-sheet { pointer-events: auto; }
.gc-mtg-sheet {
    background: var(--gc-surface); width: 100%; max-width: 480px;
    /* Spodní odsazení nese i systémovou lištu (--gc-safe-bottom, gosscard-theme.css) —
       sheet sedí na spodní hraně okna, takže by jinak končil pod tlačítky Androidu. */
    border-radius: var(--gc-radius-lg) var(--gc-radius-lg) 0 0; padding: 20px 20px calc(24px + var(--gc-safe-bottom, 0px));
    box-shadow: var(--gc-shadow-sheet);
    max-height: 82vh; overflow-y: auto;
    animation: gcMtgSlideUp .28s cubic-bezier(.34, 1.4, .64, 1);
}
@keyframes gcMtgSlideUp { from { transform: translateY(24px); opacity: .6; } to { transform: translateY(0); opacity: 1; } }
.gc-mtg-sheet__grip { width: 40px; height: 4px; border-radius: 2px; background: var(--gc-border); margin: 0 auto 14px; }
.gc-mtg-sheet h3 { font-size: 19px; font-weight: 700; color: var(--gc-text); margin: 0 0 4px; display: flex; align-items: center; gap: 8px; }
.gc-mtg-sheet__sub { font-size: 13px; color: var(--gc-text-muted); margin: 0 0 16px; }

/* --- Výběr typu aktivity --- */
.gc-mtg-types { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 16px; }
.gc-mtg-type {
    border: 2px solid var(--gc-border); background: var(--gc-surface); border-radius: var(--gc-radius); padding: 10px 4px;
    cursor: pointer; text-align: center; transition: all .15s ease;
}
.gc-mtg-type:hover { border-color: #cbd5e0; }
.gc-mtg-type.is-active { border-color: var(--gc-primary); background: var(--gc-primary-soft); }
.gc-mtg-type__emoji { font-size: 24px; display: block; margin-bottom: 4px; }
.gc-mtg-type__label { font-size: 11px; color: #4a5568; line-height: 1.2; }

/* --- Formulářové prvky --- */
.gc-mtg-field { margin-bottom: 14px; }
.gc-mtg-field label { display: block; font-size: 13px; font-weight: 600; color: #4a5568; margin-bottom: 5px; }
.gc-mtg-field input, .gc-mtg-field textarea {
    width: 100%; box-sizing: border-box; border: 1.5px solid var(--gc-border); border-radius: 10px;
    padding: 10px 12px; font-size: 15px; font-family: inherit; color: var(--gc-text); background: var(--gc-surface);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gc-mtg-field input:focus, .gc-mtg-field textarea:focus { outline: none; border-color: var(--gc-primary); box-shadow: var(--gc-focus-ring); }
.gc-mtg-field textarea { resize: vertical; min-height: 64px; }
.gc-mtg-field__hint { font-size: 12px; color: var(--gc-text-faint); margin-top: 4px; }
.gc-mtg-row { display: flex; gap: 10px; }
.gc-mtg-row > .gc-mtg-field { flex: 1; }

/* Kompaktní formulář tvorby (režim výběru místa) — ať zůstane vidět mapa nad panelem.
   Tvrdý strop max-height ~ polovina obrazovky. */
.gc-mtg-backdrop--pick .gc-mtg-sheet { padding: 8px 14px 12px; max-height: 50vh; }
.gc-mtg-backdrop--pick .gc-mtg-sheet__grip { margin-bottom: 6px; }
.gc-mtg-backdrop--pick .gc-mtg-sheet h3 { font-size: 16px; margin-bottom: 1px; }
.gc-mtg-backdrop--pick .gc-mtg-sheet__sub { font-size: 12px; margin-bottom: 7px; }
.gc-mtg-backdrop--pick .gc-mtg-types { gap: 5px; margin-bottom: 8px; }
.gc-mtg-backdrop--pick .gc-mtg-type { padding: 5px 3px; }
.gc-mtg-backdrop--pick .gc-mtg-type__emoji { font-size: 17px; margin-bottom: 1px; }
.gc-mtg-backdrop--pick .gc-mtg-type__label { font-size: 10px; }
.gc-mtg-backdrop--pick .gc-mtg-field { margin-bottom: 6px; }
.gc-mtg-backdrop--pick .gc-mtg-field label { font-size: 12px; margin-bottom: 2px; }
.gc-mtg-backdrop--pick .gc-mtg-field input,
.gc-mtg-backdrop--pick .gc-mtg-field textarea { padding: 6px 10px; font-size: 13px; }
.gc-mtg-backdrop--pick .gc-mtg-field textarea { min-height: 32px; }
.gc-mtg-backdrop--pick .gc-mtg-actions { margin-top: 2px; }
.gc-mtg-backdrop--pick .gc-mtg-btn { padding: 9px; font-size: 14px; }

/* Při tvorbě setkání skryj levý panel mapy, ať je vidět celá mapa pod formulářem. */
body.gc-mtg-creating #leftPanelMainMap { display: none !important; }

/* --- Krok 1: výběr místa na mapě (nápověda) --- */
/* Kurzor „zaměřovač", ať je jasné, že klepnutí umístí místo setkání. */
body.gc-mtg-picking #map,
body.gc-mtg-picking .leaflet-container { cursor: crosshair !important; }
/* Během výběru místa musí klepnutí dopadnout na MAPU, ne na značku, která tam náhodou leží.
   Bez tohohle klik do hustě osazeného výřezu trefil marker (City Hub, bod, setkání), ten
   spolkl událost — a uživateli se místo formuláře otevřel cizí detail, nebo se nestalo nic.
   Platí i pro kreslení trasy (gc-route-drawing), kde je problém stejný.
   Nestačí vypnout jen panely: Leaflet dává značkám i vykresleným tvarům třídu
   `.leaflet-interactive` s `pointer-events: auto`, která by hodnotu z rodiče přebila —
   proto se vypínají i potomci. */
body.gc-mtg-picking .leaflet-marker-pane,
body.gc-mtg-picking .leaflet-marker-pane *,
body.gc-mtg-picking .leaflet-shadow-pane,
body.gc-mtg-picking .leaflet-overlay-pane,
body.gc-mtg-picking .leaflet-overlay-pane *,
body.gc-mtg-picking .leaflet-popup-pane,
body.gc-mtg-picking .leaflet-popup-pane *,
body.gc-route-drawing .leaflet-marker-pane,
body.gc-route-drawing .leaflet-marker-pane *,
body.gc-route-drawing .leaflet-shadow-pane,
body.gc-route-drawing .leaflet-popup-pane,
body.gc-route-drawing .leaflet-popup-pane * { pointer-events: none !important; }
.gc-mtg-pick {
    position: fixed; left: 50%; bottom: calc(20px + var(--gc-safe-bottom, 0px)); transform: translateX(-50%);
    z-index: 10040; width: calc(100% - 32px); max-width: 440px;
    background: var(--gc-surface); border-radius: var(--gc-radius-lg); box-shadow: 0 10px 34px rgba(0, 0, 0, .25);
    padding: 14px 16px; animation: gcMtgSlideUp .22s ease;
}
.gc-mtg-pick__title { font-size: 15px; font-weight: 700; color: var(--gc-text); margin: 0 0 2px; display: flex; align-items: center; gap: 6px; }
.gc-mtg-pick__hint { font-size: 13px; color: var(--gc-text-muted); margin: 0 0 10px; }
.gc-mtg-pick__actions { display: flex; gap: 10px; }

/* --- Krok 2: formulář detailů (místo už vybráno) --- */
/* POZOR: dřív tu bylo `overflow: hidden` — na nízkém displeji se obsah nad limit
   USEKL a k tlačítku „Vytvořit setkání" se nešlo dostat. Musí rolovat. */
.gc-mtg-backdrop--form .gc-mtg-sheet {
    max-height: 88vh; overflow-y: auto;
    padding: 16px 18px 18px;
}
.gc-mtg-backdrop--form .gc-mtg-sheet__grip { margin-bottom: 10px; }
.gc-mtg-backdrop--form .gc-mtg-sheet__sub { margin-bottom: 12px; }
.gc-mtg-backdrop--form .gc-mtg-types { margin-bottom: 12px; }
.gc-mtg-backdrop--form .gc-mtg-field { margin-bottom: 10px; }
.gc-mtg-backdrop--form .gc-mtg-field textarea { min-height: 48px; }

/* --- Tlačítka --- */
.gc-mtg-actions { display: flex; gap: 10px; margin-top: 6px; }
.gc-mtg-btn {
    flex: 1; border: none; border-radius: var(--gc-radius); padding: 13px; font-size: 15px; font-weight: 600;
    /* `background-color` v přechodu je tu kvůli --join: ostatní varianty mění
       na :hover jen `filter`, takže přejížděly plynule, zatímco zelené tlačítko
       po změně na plochou barvu skákalo skokem. */
    cursor: pointer; transition: filter .15s ease, transform .1s ease, background-color .15s ease;
}
.gc-mtg-btn:active { transform: scale(.97); }
.gc-mtg-btn--primary { background: var(--gc-primary-grad-strong); color: #fff; }
.gc-mtg-btn--primary:hover { filter: brightness(1.05); }
.gc-mtg-btn--primary:disabled { opacity: .5; cursor: default; }
.gc-mtg-btn--ghost { background: #f1f5f9; color: #475569; }
.gc-mtg-btn--danger { background: var(--gc-danger-soft); color: var(--gc-danger-strong); }
/* Zelené „Přidám se" bralo gradient --gc-join-grad-strong (#15803d → #14532d).
   Spodní zastávka je green-900, takže tlačítko vedle modrého „Navigovat"
   (#0069d9) vypadalo skoro černě. Světlejší začátek ale nejde: --gc-join
   (#16a34a) má s bílým popiskem jen 3,30 : 1, tedy pod prahem 4,5 : 1.
   Řešení je plocha nejsvětlejšího odstínu, který ještě projde — --gc-join-strong
   (#15803d) má s bílou 5,02 : 1. Hover ztmavuje na --gc-join-darker (#14532d,
   9,1 : 1) — přesně ten krok, na který je odstín ve stupnici tokenů určený,
   takže se kontrast stavem jen zlepšuje. */
.gc-mtg-btn--join { background: var(--gc-join-strong); color: #fff; }
/* Hover jen tam, kde ukazovátko opravdu je. Na dotyku :hover po klepnutí ulpí
   a tlačítko by zůstalo tmavé, dokud uživatel neklepne jinam. */
@media (hover: hover) {
    .gc-mtg-btn--join:hover { background: var(--gc-join-darker); }
}
.gc-mtg-btn--nav { background: var(--gc-primary-strong, #0069d9); color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 7px; text-decoration: none; }
.gc-mtg-btn--nav:hover { filter: brightness(1.06); }
.gc-mtg-btn--nav .fas { font-size: .95em; }
/* Odkazy stylované jako tlačítka (<a class="gc-mtg-btn ...">, např. „Zpět na mapu", „Mapa"):
   public.css má globální `a { color:#007bff !important }`, které jinak přebije barvu tlačítka
   → modrý text na modrém pozadí = nečitelný. Přebijeme zpět podle varianty. */
a.gc-mtg-btn--primary, a.gc-mtg-btn--join, a.gc-mtg-btn--nav { color: #fff !important; }
/* Odkaz jako tlačítko musí i uvnitř vypadat jako tlačítko. <button> si text
   vystředí sám, <a> ho nechá u levého kraje — na úzkém displeji se „Přihlas se
   a přidej se" zalomí na dva řádky a text visel vlevo nahoře. */
a.gc-mtg-btn {
    display: inline-flex; align-items: center; justify-content: center;
    text-align: center; text-decoration: none;
}
a.gc-mtg-btn--ghost { color: #475569 !important; }
a.gc-mtg-btn--danger { color: var(--gc-danger-strong) !important; }

/* --- Potvrzovací dialog (nahrazuje nativní confirm) --- */
.gc-mtg-confirm-backdrop {
    position: fixed; inset: 0; z-index: 10060;
    background: rgba(0, 0, 0, .5);
    display: flex; align-items: center; justify-content: center;
    padding: 24px; animation: gcMtgFade .15s ease;
}
@keyframes gcMtgFade { from { opacity: 0; } to { opacity: 1; } }
.gc-mtg-confirm {
    background: var(--gc-surface); width: 100%; max-width: 360px;
    border-radius: var(--gc-radius-lg); padding: 22px 20px 18px;
    box-shadow: var(--gc-shadow-sheet);
    animation: gcMtgPop .18s cubic-bezier(.34, 1.4, .64, 1);
}
@keyframes gcMtgPop { from { transform: scale(.94); opacity: .6; } to { transform: scale(1); opacity: 1; } }
.gc-mtg-confirm__title { font-size: 17px; font-weight: 700; color: var(--gc-text); margin: 0 0 8px; }
.gc-mtg-confirm__msg { font-size: 14px; line-height: 1.5; color: var(--gc-text-muted); margin: 0 0 18px; }
.gc-mtg-confirm__actions { display: flex; gap: 10px; }

/* --- Detail: meta + účastníci --- */
.gc-mtg-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.gc-mtg-chip {
    display: inline-flex; align-items: center; gap: 5px; background: var(--gc-primary-soft); color: var(--gc-primary-strong);
    border-radius: var(--gc-radius-pill); padding: 5px 11px; font-size: 13px; font-weight: 600;
}
/* Setkání po termínu: chip s časem se ztiší, ať nevypadá jako pozvánka na něco,
   co teprve bude. Odznak „Proběhlo" v hlavičce nese hlavní sdělení. */
.gc-mtg-chip--past { background: #f1f5f9; color: var(--gc-text-muted, #5c6b7f); }
.gc-route-detail__badge--past { background: #e2e8f0; color: #475569; }
.gc-mtg-note { font-size: 14px; line-height: 1.5; color: #4a5568; background: var(--gc-bg-soft); border-radius: 10px; padding: 12px; margin-bottom: 16px; white-space: pre-wrap; }
.gc-mtg-people-title { font-size: 13px; font-weight: 700; color: #4a5568; margin: 4px 0 8px; }
.gc-mtg-people { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.gc-mtg-person { display: flex; align-items: center; gap: 6px; background: #f1f5f9; border-radius: var(--gc-radius-pill); padding: 4px 10px 4px 4px; font-size: 13px; color: #334155; }
.gc-mtg-person img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.gc-mtg-person.is-owner { background: var(--gc-primary-soft); color: var(--gc-primary-strong); font-weight: 600; }
.gc-mtg-cancelled { background: var(--gc-danger-soft); color: var(--gc-danger-strong); border-radius: 10px; padding: 10px 12px; font-size: 14px; font-weight: 600; margin-bottom: 14px; text-align: center; }

/* --- Pozvánky k setkání (box v detailu + volba pozvaných ve formuláři) --- */
.gc-mtg-invite-field .gc-mtg-invite-toggle { width: 100%; justify-content: center; }
/* Ve vlastním modálu má seznam víc místa než uvnitř bottom sheetu. */
.gc-invite-modal .gc-share-picker--multi .gc-share-picker__list { max-height: 46vh; }
/* Vybraní ve formuláři: jména jako štítky. Roste jen do 3 řádků, pak roluje —
   formulář se kvůli dlouhému seznamu nesmí znovu natáhnout přes celou obrazovku. */
.gc-mtg-invite-picked { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; max-height: 96px; overflow-y: auto; }
.gc-mtg-invite-picked:empty { display: none; }
.gc-mtg-invite-chip {
    display: inline-flex; align-items: center; gap: 6px; padding: 3px 4px 3px 3px;
    background: var(--gc-primary-soft); color: var(--gc-primary-strong);
    border-radius: var(--gc-radius-pill); font-size: 12.5px; font-weight: 600; max-width: 100%;
}
.gc-mtg-invite-chip img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; flex: none; }
.gc-mtg-invite-chip__x {
    border: none; background: transparent; color: inherit; font-size: 16px; line-height: 1;
    padding: 0 4px; cursor: pointer; opacity: .65;
}
.gc-mtg-invite-chip__x:hover { opacity: 1; }
.gc-mtg-invite-all { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: #4a5568; font-weight: 500; margin-bottom: 8px; cursor: pointer; }
.gc-mtg-invite-all input { width: 16px; height: 16px; margin: 0; }
.gc-mtg-invite-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.gc-mtg-invite-actions .gc-mtg-btn { flex: 1 1 auto; }
.gc-invite-empty { font-size: 13px; color: #a0aec0; padding: 2px 0 6px; }
.gc-mtg-invite-banner {
    display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; padding: 12px;
    background: var(--gc-primary-soft); border-radius: 10px; font-size: 14px; color: var(--gc-primary-strong); font-weight: 600;
}
.gc-mtg-invite-banner__actions { display: flex; gap: 8px; }
.gc-mtg-invite-banner__actions .gc-mtg-btn { flex: 1 1 0; }

/* ==========================================================================
   Dialogy na mobilu — nesmí přerůst obrazovku
   ==========================================================================
   Tři problémy, které se tu řeší:
   1) `vh` na mobilu počítá s výškou VČETNĚ adresního řádku, takže „88vh" reálně
      přeteče. `dvh` (dynamic viewport height) měří skutečně dostupnou plochu;
      řádek s vh zůstává jako fallback pro starší prohlížeče.
   2) Tlačítka musí zůstat na dosah i u dlouhého formuláře → sticky patka.
   3) Na nízkém displeji se ubere padding, velikost dlaždic typu a výška textarey.  */

/* Lišta „Nainstalovat aplikaci" sheet NEODSAZUJE — `margin-bottom: 88px`
   v gosscard-pwa-install.css bylo 2026-08-16 zrušeno (lišta má překrývat, ne
   posouvat). S ním padá i odečet ze stropu: `body.gosscard-pwa-bar-open
   { --gc-sheet-offset: 88px }` by teď sheet jen zbytečně o 88 px zkrátil.
   Proměnná zůstává s výchozí 0 kvůli výpočtům níž. */

.gc-mtg-sheet { max-height: calc(82dvh - var(--gc-sheet-offset, 0px)); }
.gc-mtg-backdrop--form .gc-mtg-sheet { max-height: calc(88dvh - var(--gc-sheet-offset, 0px)); }
.gc-mtg-backdrop--pick .gc-mtg-sheet { max-height: calc(50dvh - var(--gc-sheet-offset, 0px)); }
.gc-invite-modal { max-height: 80dvh; }
.gc-invite-modal .gc-share-picker--multi .gc-share-picker__list { max-height: 42dvh; }

/* Tlačítka formuláře i detailu drží dole, ať se k nim nemusí dorolovat.
   Spodní odsazení se přesouvá ze sheetu do patky — jinak by pod lepivým pruhem
   v té mezeře prosvítal rolující obsah (poslední pole vykukovalo pod tlačítky). */
.gc-mtg-backdrop .gc-mtg-sheet { padding-bottom: 0; }
.gc-mtg-sheet .gc-mtg-actions {
    position: sticky; bottom: 0; z-index: 2;
    background: var(--gc-surface);
    padding: 10px 0 16px; margin-top: 4px;
    box-shadow: 0 -8px 12px -8px rgba(0, 0, 0, .18);
}
/* Patka detailu vlastníka má ČTYŘI tlačítka (Zavřít / Skrýt / Upravit / Zrušit setkání).
   Při `padding: 13px` a 15px písmu se do ~103 px sloupce nevešlo „✏️ Upravit" (emoji
   spadlo na vlastní řádek) ani „Zrušit setkání" — jedna patka pak měla tři různě
   vysoké popisky. Užší odsazení a o půl stupně menší písmo drží všechny čtyři na
   jednom řádku; u dvou- a třítlačítkových patek se nic nemění.
   Naměřeno 2026-08-19 při 1280×860 na /map → dialog setkání. */
.gc-mtg-sheet .gc-mtg-actions:has(> :nth-child(4)) .gc-mtg-btn {
    padding: 12px 6px;
    font-size: 13px;
}

/* Modal pozvánek: potvrzovací tlačítko taky vždy vidět. */
.gc-invite-modal__body #gcMtgInviteSend {
    position: sticky; bottom: 0; z-index: 2; background: var(--gc-primary-grad);
}

/* Nízký displej (mobil na výšku, mobil na šířku) — zhuštěná varianta. */
@media (max-height: 760px) {
    .gc-mtg-sheet { padding: 14px 16px 16px; }
    .gc-mtg-backdrop--form .gc-mtg-sheet { padding: 12px 16px 14px; max-height: calc(92dvh - var(--gc-sheet-offset, 0px)); }
    .gc-mtg-sheet__grip { margin-bottom: 8px; }
    .gc-mtg-sheet h3 { font-size: 17px; }
    .gc-mtg-sheet__sub { margin-bottom: 8px; }
    .gc-mtg-types { gap: 6px; margin-bottom: 10px; }
    .gc-mtg-type { padding: 6px 3px; }
    .gc-mtg-type__emoji { font-size: 19px; margin-bottom: 2px; }
    .gc-mtg-field { margin-bottom: 9px; }
    .gc-mtg-field label { margin-bottom: 3px; }
    .gc-mtg-field input, .gc-mtg-field textarea { padding: 8px 10px; font-size: 14px; }
    .gc-mtg-field textarea, .gc-mtg-backdrop--form .gc-mtg-field textarea { min-height: 40px; }
    .gc-mtg-btn { padding: 11px; font-size: 14px; }
    .gc-mtg-invite-picked { max-height: 62px; }
    .gc-mtg-meta { margin: 4px 0 10px; }
    .gc-mtg-note { padding: 10px; margin-bottom: 12px; }
    .gc-mtg-people { margin-bottom: 12px; }
    .gc-invite-modal { max-height: 88dvh; }
    .gc-invite-modal .gc-share-picker--multi .gc-share-picker__list { max-height: 38dvh; }
}

/* Hodně nízký displej (starší mobily, klávesnice vysunutá). */
@media (max-height: 600px) {
    .gc-mtg-sheet, .gc-mtg-backdrop--form .gc-mtg-sheet { max-height: calc(96dvh - var(--gc-sheet-offset, 0px)); padding: 10px 14px 12px; }
    .gc-mtg-sheet__sub { display: none; }
    .gc-mtg-type__label { font-size: 10px; }
    .gc-mtg-field textarea, .gc-mtg-backdrop--form .gc-mtg-field textarea { min-height: 34px; }
}
