/* ============================================================
   Kurýrní tržiště (/trziste) — mapový režim dispečinku.
   Aktivuje se třídou body.dd-trziste; klasický /dispecink se nemění.
   Leaflet potřebuje zoom:1 na body (CSS zoom rozhazuje hit-test),
   proto stejný override jako u body.dispatch-beta.
   ============================================================ */
body.dd-trziste{zoom:1!important;width:100%!important;min-height:100%!important;transform:none!important;
  --trz-bg:#090c10;--trz-surface:rgba(13,17,22,.94);--trz-surface-2:#12171d;--trz-border:rgba(226,232,240,.12);
  --trz-text:#f5f7fa;--trz-muted:#9aa3ad;--trz-dim:#626b75;
  /* Barva = co s objednávkou dělat: zelená volná, modrá moje, šedá cizí,
     červená zpožděná (přebíjí ostatní). */
  --trz-nova:#22c55e;--trz-late:#ef3e46;--trz-moje:#438cff;--trz-vezu:#25c58a;--trz-cizi:#7b8593;--trz-amber:#f1a928;
  --trz-hud-h:56px;--trz-sheet-h:34vh;
  --trz-inset-t:env(safe-area-inset-top,0px);--trz-inset-b:env(safe-area-inset-bottom,0px)}
body.dd-trziste #HDR,body.dd-trziste #TB,body.dd-trziste #SC,body.dd-trziste #BN{display:none!important}
body.dd-trziste .toasts{top:calc(var(--trz-hud-h) + var(--trz-inset-t) + 10px)}
body.dd-trziste .nova-verze{top:calc(var(--trz-hud-h) + var(--trz-inset-t) + 10px);bottom:auto}
body.dd-trziste.trz-mock #LS{display:none!important}
body.dd-trziste .leaflet-control-zoom{display:none}

#TRZ{position:fixed;inset:0;z-index:300;background:var(--trz-bg);color:var(--trz-text);font-family:var(--ff);overflow:hidden}
#TRZ[hidden]{display:none!important}
#TRZ .trz-map,#TRZ .trz-map.leaflet-container{position:absolute;inset:0;background:var(--trz-bg);outline:0}
/* Filtr patří na dlaždice, ne na .leaflet-tile-pane: pane má 0×0 px a filtr
   by ořízl vykreslení na svou filtrační oblast (viditelný jen výřez mapy). */
.trz-map .leaflet-tile{filter:saturate(.62) brightness(.78) contrast(1.08)}
/* OSM dlaždice bez klíče: invertované do tmavého podkladu (hue-rotate vrací barvy silnic) */
.trz-map.osm-dark .leaflet-tile{filter:invert(1) hue-rotate(180deg) saturate(.35) brightness(.72) contrast(1.05)}
.trz-map .leaflet-control-attribution{background:rgba(9,12,16,.72)!important;color:#aeb5bd!important;font-size:9px;
  padding:2px 6px;border-radius:8px 0 0 0;margin-bottom:calc(var(--trz-sheet-h) + var(--trz-inset-b))}
.trz-map .leaflet-control-attribution a{color:#c7ced6!important}
.trz-map .leaflet-marker-icon{background:none;border:0}
.trz-map .leaflet-tooltip{background:#11161c;color:#f5f7fa;border:1px solid var(--trz-border);border-radius:8px;font:700 11px/1.25 var(--ff);padding:5px 8px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.trz-map .leaflet-tooltip-top::before{border-top-color:#11161c}

/* ---------- špendlíky restaurací (vyzvednutí) ---------- */
.trz-pin{position:relative;width:44px;height:44px;--c:var(--trz-nova);transform:translate(0,0);transition:transform .2s ease}
.trz-pin-body{position:absolute;left:7px;top:7px;width:30px;height:30px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);
  background:var(--c);border:2px solid rgba(255,255,255,.85);box-shadow:0 6px 18px rgba(0,0,0,.55);display:grid;place-items:center}
.trz-pin-body .ic{transform:rotate(45deg);width:15px;height:15px;color:#fff;stroke-width:2;opacity:1}
.trz-pin-ring{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;
  border:2px solid var(--c);opacity:0;pointer-events:none}
.trz-pin-lbl{position:absolute;left:50%;top:40px;transform:translateX(-50%);white-space:nowrap;font:900 10px/1 var(--ff);
  padding:3px 6px;border-radius:999px;background:rgba(9,12,16,.86);border:1px solid var(--c);color:#fff;letter-spacing:.3px}
.trz-pin-lbl small{font-weight:700;color:var(--trz-muted);margin-left:4px}
/* výdělek posla u nové objednávky (jen posel a kristus) */
.trz-pin-lbl .trz-pin-kc{margin-left:5px;padding:1px 5px;border-radius:999px;background:var(--trz-nova);color:#04240f;font-weight:900}
.trz-pin.zpozdena .trz-pin-lbl .trz-pin-kc{background:#fff;color:var(--trz-late)}
/* Špendlíky jsou vždy plně kryté — poloprůhledný bod na mapě vypadá jako
   chyba vykreslení. Cizí objednávky utlumí šedá barva, ne průhlednost. */
.trz-pin.nova{--c:var(--trz-nova)}
.trz-pin.moje-prevzata{--c:var(--trz-moje)}
/* Moje objednávky jsou modré v obou fázích — zelená patří výhradně volným,
   jinak by „vezu" splývalo s „nová". Fáze rozliší ikona (příbor → balík). */
.trz-pin.moje-vyzvednuta{--c:var(--trz-moje)}
.trz-pin.cizi-prevzata,.trz-pin.cizi-vyzvednuta{--c:var(--trz-cizi)}
.trz-pin.cizi-prevzata .trz-pin-body,.trz-pin.cizi-vyzvednuta .trz-pin-body{background:#4a525c;border-color:rgba(255,255,255,.55)}
.trz-pin.cizi-prevzata .trz-pin-lbl,.trz-pin.cizi-vyzvednuta .trz-pin-lbl{color:#c8ced6}
.trz-pin.odhad .trz-pin-body{border-style:dashed}
/* Restaurace, kterou mapa nezná: špendlík je jen orientační (kotvený na
   cíli nebo městě), proto vykřičník a přerušovaný rámeček. */
.trz-pin.bez-restaurace .trz-pin-body{border-style:dashed;border-color:var(--trz-amber)}
.trz-pin.bez-restaurace .trz-pin-lbl{border-color:var(--trz-amber)}
.trz-pin.bez-restaurace .trz-pin-lbl small{color:var(--trz-amber)}
.trz-pin.sel{transform:scale(1.18);z-index:5}
.trz-pin.sel .trz-pin-body{box-shadow:0 0 0 4px rgba(255,255,255,.22),0 8px 22px rgba(0,0,0,.6)}
/* Nová (volná) objednávka pulzuje zeleně, dokud ji někdo nevezme. */
.trz-pin.nova .trz-pin-ring{animation:trzRing 1.8s ease-out infinite}
.trz-pin.nova .trz-pin-body{animation:trzPuls 1.8s ease-in-out infinite}
.trz-pin.nova.cerstva .trz-pin-ring{animation-duration:1s;border-width:3px}
.trz-pin.nova.cerstva .trz-pin-body{animation:trzBounce 1s ease-in-out infinite}
/* Objednávka na čas ještě nehoří — nepulzuje, jen se odliší jantarovou.
   Musí být AŽ ZA pravidly .nova, jinak by je nepřebila (stejná specificita). */
.trz-pin.pozdeji .trz-pin-body{background:#3a3323;border-color:var(--trz-amber);animation:none}
.trz-pin.pozdeji .trz-pin-ring{animation:none}
.trz-pin.pozdeji .trz-pin-lbl{border-color:var(--trz-amber)}
/* Zpoždění přebíjí všechny ostatní stavy — musí být poslední. */
.trz-pin.zpozdena{--c:var(--trz-late)}
.trz-pin.zpozdena .trz-pin-body{background:var(--trz-late);border-color:#fff;animation:trzPuls 1s ease-in-out infinite}
.trz-pin.zpozdena .trz-pin-ring{animation:trzRing 1s ease-out infinite}
.trz-pin.zpozdena .trz-pin-lbl{background:var(--trz-late);border-color:#fff}
.trz-pin.zpozdena .trz-pin-lbl small{color:#ffe4e6}
@keyframes trzRing{0%{transform:scale(.5);opacity:.9}100%{transform:scale(2.4);opacity:0}}
@keyframes trzPuls{0%,100%{transform:rotate(-45deg) scale(1)}50%{transform:rotate(-45deg) scale(1.14)}}
@keyframes trzBounce{0%,100%{transform:rotate(-45deg) translate(0,0)}50%{transform:rotate(-45deg) translate(3px,-3px)}}

/* ---------- seskupené objednávky (bublina, uzel, nohy) ---------- */
.trz-cluster{position:relative;width:52px;height:52px;--c:var(--trz-nova)}
.trz-cluster.nova{--c:var(--trz-nova)}
.trz-cluster.moje-prevzata{--c:var(--trz-moje)}
.trz-cluster.cizi-prevzata{--c:var(--trz-cizi)}
.trz-cluster.zpozdena{--c:var(--trz-late)}
.trz-cluster-body{position:absolute;left:7px;top:7px;width:38px;height:38px;border-radius:50%;background:var(--c);border:3px solid rgba(255,255,255,.92);
  display:grid;place-items:center;color:#fff;font:900 16px/1 var(--ff);box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 22%,transparent),0 8px 20px rgba(0,0,0,.55)}
.trz-cluster.cizi-prevzata .trz-cluster-body{background:#4a525c;color:#e5e9ee}
.trz-cluster .trz-pin-ring{width:52px;height:52px;margin:-26px 0 0 -26px;top:26px;left:26px}
.trz-cluster.nova .trz-pin-ring,.trz-cluster.zpozdena .trz-pin-ring{animation:trzRing 1.8s ease-out infinite}
.trz-cluster.nova .trz-cluster-body{animation:trzPulsKruh 1.8s ease-in-out infinite}
.trz-cluster.zpozdena .trz-pin-ring{animation-duration:1s}
.trz-cluster.zpozdena .trz-cluster-body{animation:trzPulsKruh 1s ease-in-out infinite}
.trz-cluster.cerstva .trz-cluster-body{animation-duration:1s}
.trz-cluster.sel .trz-cluster-body{box-shadow:0 0 0 4px rgba(255,255,255,.25),0 8px 22px rgba(0,0,0,.6)}
.trz-cluster .trz-pin-lbl{top:48px;border-color:var(--c)}
.trz-cluster .trz-pin-lbl small{color:#dfe4ea}
@keyframes trzPulsKruh{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.trz-node{position:relative;width:28px;height:28px}
.trz-node-dot{position:absolute;inset:3px;border-radius:50%;background:#1b222c;border:2px solid #9aa3ad;display:grid;place-items:center;box-shadow:0 0 0 4px rgba(154,163,173,.18),0 4px 12px rgba(0,0,0,.5)}
.trz-node-dot .ic{width:12px;height:12px;color:#c8ced6;stroke-width:2}
.trz-node .trz-pin-lbl{top:27px;border-color:#9aa3ad;color:#e5e9ee}
.trz-node .trz-pin-lbl small{color:#9aa3ad}
/* rozjíždění špendlíků od uzlu – Leaflet mění transform, my ho jen animujeme */
.leaflet-marker-icon.trz-anim{transition:transform .38s cubic-bezier(.22,1,.36,1)}
.leaflet-zoom-anim .leaflet-marker-icon.trz-anim{transition:none}
.trz-leg{stroke-linecap:round}

/* ---------- cíl (zákazník) ---------- */
.trz-dest{position:relative;width:26px;height:26px;--c:var(--trz-moje)}
.trz-dest-dot{position:absolute;inset:4px;border-radius:50%;background:var(--c);border:3px solid #f8fafc;box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 22%,transparent),0 5px 16px rgba(0,0,0,.55)}
.trz-dest.moje-vyzvednuta{--c:var(--trz-moje)}
.trz-dest.nova{--c:var(--trz-nova)}
.trz-dest.cizi-prevzata,.trz-dest.cizi-vyzvednuta{--c:var(--trz-cizi)}
.trz-dest.zpozdena{--c:var(--trz-late)}
.trz-dest.odhad .trz-dest-dot{border-style:dashed}
.trz-dest-lbl{position:absolute;left:50%;top:26px;transform:translateX(-50%);white-space:nowrap;font:800 10px/1 var(--ff);
  padding:3px 6px;border-radius:999px;background:rgba(9,12,16,.86);border:1px solid var(--c);color:#fff}

/* ---------- regiony (katastrální území) ---------- */
.trz-okres-lbl{position:absolute;left:0;top:0;transform:translate(-50%,-50%);white-space:nowrap;font:800 10px/1 var(--ff);letter-spacing:1.2px;text-transform:uppercase;
  color:rgba(200,206,214,.55);opacity:.55;text-shadow:0 1px 3px rgba(0,0,0,.9);pointer-events:none}
.trz-okres-lbl.hlavni{opacity:.95;font-size:13px;letter-spacing:2px;padding:3px 8px;border-radius:999px;background:rgba(9,12,16,.7)}

/* ---------- poznámka kurýrů v detailu ---------- */
.trz-note{display:flex;align-items:flex-start;gap:9px;width:100%;margin:2px 0 8px;padding:9px 11px;border-radius:12px;text-align:left;
  background:rgba(241,169,40,.1);border:1px solid rgba(241,169,40,.45);color:#f5e6c8;font:600 12.5px/1.35 var(--ff)}
.trz-note .ic{flex-shrink:0;width:15px;height:15px;color:var(--trz-amber);margin-top:1px}
.trz-note-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.trz-note-t b{font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--trz-amber)}
.trz-note-t small{color:var(--trz-muted);font-weight:700;font-size:10.5px}
.trz-note-t i{color:var(--trz-muted);font-style:normal}
.trz-note.prazdna{background:transparent;border-style:dashed;border-color:var(--trz-border)}
.trz-note.prazdna .ic,.trz-note.prazdna .trz-note-t b{color:var(--trz-muted)}
.trz-note:active{filter:brightness(1.15)}

/* ---------- hranice rozvozu, Divine base, kolegové ---------- */
.trz-mask{pointer-events:none}
.trz-tip{background:#11161c!important;color:#f5f7fa!important;border:1px solid rgba(255,255,255,.14)!important;font:700 11px/1.3 var(--ff)!important;border-radius:8px!important;padding:5px 8px!important}
.trz-tip::before{border-top-color:#11161c!important}
.trz-base-line{filter:drop-shadow(0 0 6px rgba(239,62,70,.7))}
.trz-base-lbl{position:absolute;left:0;top:0;transform:translate(-50%,10px);white-space:nowrap;display:flex;align-items:center;gap:5px;
  padding:4px 8px;border-radius:999px;background:rgba(239,62,70,.94);color:#fff;font:900 10px/1 var(--ff);letter-spacing:.2px;box-shadow:0 4px 12px rgba(0,0,0,.5)}
.trz-base-lbl .ic{width:12px;height:12px;stroke-width:2}
.trz-kolega{position:relative;width:40px;height:40px;--c:#9d5cff}
.trz-kolega-dot{position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:var(--c);
  border:2px solid rgba(255,255,255,.9);color:#fff;font:900 11px/20px var(--ff);text-align:center;box-shadow:0 0 0 5px color-mix(in srgb,var(--c) 22%,transparent),0 4px 12px rgba(0,0,0,.5)}
.trz-kolega-cone{position:absolute;left:50%;top:50%;width:0;height:0;margin:-22px 0 0 -9px;border-left:9px solid transparent;border-right:9px solid transparent;
  border-bottom:16px solid color-mix(in srgb,var(--c) 75%,transparent);transform-origin:50% 22px;opacity:0}
.trz-kolega.heading .trz-kolega-cone{opacity:1}
.trz-kolega-lbl{position:absolute;left:50%;top:34px;transform:translateX(-50%);white-space:nowrap;padding:2px 6px;border-radius:999px;
  background:rgba(9,12,16,.86);border:1px solid var(--c);color:#fff;font:800 9.5px/1.2 var(--ff)}
.trz-kolega-lbl small{display:block;font-weight:700;color:var(--trz-muted);font-size:8.5px}
.trz-kolega.stary .trz-kolega-dot{opacity:.75;box-shadow:none}

/* ---------- moje poloha ---------- */
.trz-me{position:relative;width:40px;height:40px}
.trz-me-cone{position:absolute;left:50%;top:50%;width:0;height:0;margin:-34px 0 0 -14px;border-left:14px solid transparent;border-right:14px solid transparent;
  border-bottom:34px solid rgba(67,140,255,.28);transform-origin:50% 100%;opacity:0}
.trz-me.heading .trz-me-cone{opacity:1}
.trz-me-dot{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:#438cff;border:3px solid #fff;
  box-shadow:0 0 0 6px rgba(67,140,255,.25),0 4px 14px rgba(0,0,0,.6);animation:trzMePulse 2.4s ease-in-out infinite}
@keyframes trzMePulse{0%,100%{box-shadow:0 0 0 6px rgba(67,140,255,.25),0 4px 14px rgba(0,0,0,.6)}50%{box-shadow:0 0 0 12px rgba(67,140,255,.08),0 4px 14px rgba(0,0,0,.6)}}
.trz-me-acc{stroke:#438cff;fill:#438cff;fill-opacity:.06;stroke-opacity:.35;stroke-width:1}

/* ---------- trasy ---------- */
.trz-route-base{stroke-linecap:round;stroke-linejoin:round}
.trz-flow{stroke-linecap:round;stroke-linejoin:round;animation:trzFlow 1.1s linear infinite}
.trz-flow.pomaly{animation-duration:2.2s}
.trz-flow.odhad{animation:none;stroke-dasharray:4 10}
.trz-route-arrow{width:20px;height:20px;display:grid;place-items:center;color:var(--c,#fff);filter:drop-shadow(0 2px 4px rgba(0,0,0,.7))}
.trz-route-arrow svg{width:20px;height:20px;fill:currentColor;stroke:#fff;stroke-width:.6}
@keyframes trzFlow{to{stroke-dashoffset:-24}}

/* ---------- HUD nahoře ---------- */
.trz-hud{position:absolute;left:0;right:0;top:0;z-index:520;display:flex;align-items:center;gap:8px;
  padding:calc(8px + var(--trz-inset-t)) 10px 8px;min-height:calc(var(--trz-hud-h) + var(--trz-inset-t));
  background:linear-gradient(180deg,rgba(9,12,16,.96),rgba(9,12,16,.55) 80%,transparent);pointer-events:none}
.trz-hud>*{pointer-events:auto}
.trz-me-chip{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;background:var(--trz-surface);border:1px solid var(--trz-border);
  font:800 12px/1 var(--ff);color:var(--trz-text);max-width:46%}
.trz-me-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#d92f37,#ef424a);display:grid;place-items:center;font-size:13px;overflow:hidden;flex-shrink:0}
.trz-me-av img{width:100%;height:100%;object-fit:cover}
.trz-me-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trz-stats{display:flex;gap:6px;margin-left:auto}
.trz-stat{display:flex;flex-direction:column;align-items:center;min-width:44px;padding:5px 8px;border-radius:12px;background:var(--trz-surface);border:1px solid var(--trz-border)}
.trz-stat b{font-size:15px;line-height:1;color:#fff}
.trz-stat i{font-style:normal;font-size:8.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--trz-muted);margin-top:3px}
.trz-stat.nova b{color:var(--trz-nova)}
.trz-stat.moje b{color:var(--trz-moje)}
.trz-hud-btn{width:40px;height:40px;border-radius:12px;background:var(--trz-surface);border:1px solid var(--trz-border);color:var(--trz-text);display:grid;place-items:center;flex-shrink:0}
.trz-hud-btn .ic{width:18px;height:18px}
.trz-hud-btn.on{background:#d82f37;border-color:#e64149}

/* ---------- plovoucí tlačítka ---------- */
.trz-fabs{position:absolute;right:12px;bottom:calc(var(--trz-sheet-h) + var(--trz-inset-b) + 14px);z-index:510;display:flex;flex-direction:column;gap:10px;transition:bottom .28s cubic-bezier(.22,1,.36,1)}
#TRZ.sheet-closed .trz-fabs{bottom:calc(var(--trz-inset-b) + 84px)}
.trz-fab{width:46px;height:46px;border-radius:50%;background:var(--trz-surface);border:1px solid var(--trz-border);color:var(--trz-text);display:grid;place-items:center;
  box-shadow:0 8px 22px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.trz-fab .ic{width:20px;height:20px}
.trz-fab.on{color:#438cff;border-color:#438cff}
.trz-fab:active{transform:scale(.93)}

/* ---------- šipky na hraně obrazovky ---------- */
.trz-edges{position:absolute;inset:0;z-index:505;pointer-events:none}
.trz-edge{position:absolute;left:0;top:0;transform:translate(-50%,-50%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:2px;
  color:#fff;background:none;padding:0;animation:trzEdgeIn .3s ease both}
.trz-edge-arrow{width:34px;height:34px;border-radius:50%;background:var(--trz-nova);border:2px solid #fff;display:grid;place-items:center;
  box-shadow:0 0 0 4px rgba(239,62,70,.22),0 6px 16px rgba(0,0,0,.6);animation:trzEdgePulse 1.2s ease-in-out infinite}
.trz-edge-arrow svg{width:18px;height:18px;fill:#fff;transform:rotate(var(--deg,0deg))}
.trz-edge-n{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#fff;color:#111;font:900 10px/18px var(--ff);text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.trz-edge-arrow{position:relative}
.trz-edge-lbl{font:900 10px/1 var(--ff);padding:3px 7px;border-radius:999px;background:rgba(9,12,16,.9);border:1px solid var(--trz-nova);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.trz-edge.moje-prevzata .trz-edge-arrow,.trz-edge.moje-vyzvednuta .trz-edge-arrow{background:var(--trz-moje);box-shadow:0 0 0 4px rgba(67,140,255,.22),0 6px 16px rgba(0,0,0,.6);animation:none}
.trz-edge.moje-prevzata .trz-edge-lbl,.trz-edge.moje-vyzvednuta .trz-edge-lbl{border-color:var(--trz-moje)}
.trz-edge.zpozdena .trz-edge-arrow{background:var(--trz-late);box-shadow:0 0 0 4px rgba(239,62,70,.24),0 6px 16px rgba(0,0,0,.6);animation:trzEdgePulse 1s ease-in-out infinite}
.trz-edge.zpozdena .trz-edge-lbl{border-color:var(--trz-late)}
@keyframes trzEdgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes trzEdgeIn{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* ---------- bottom sheet (1/3 obrazovky) ---------- */
.trz-sheet{position:absolute;left:0;right:0;bottom:0;z-index:530;height:calc(var(--trz-sheet-h) + var(--trz-inset-b));
  background:var(--trz-surface);border-top:1px solid var(--trz-border);border-radius:22px 22px 0 0;
  box-shadow:0 -14px 40px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  transform:translateY(calc(100% + 20px));transition:transform .32s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;
  padding-bottom:var(--trz-inset-b);touch-action:none}
.trz-sheet.open{transform:translateY(0)}
.trz-sheet.dragging{transition:none}
.trz-sheet-handle{flex-shrink:0;height:22px;display:grid;place-items:center;cursor:grab}
.trz-sheet-handle::before{content:"";width:42px;height:4px;border-radius:2px;background:rgba(255,255,255,.28)}
.trz-sheet-body{flex:1;min-height:0;overflow:auto;padding:0 14px 12px;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.trz-sh-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.trz-chip{font:900 9.5px/1 var(--ff);letter-spacing:.6px;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:var(--trz-nova);color:#04240f;flex-shrink:0}
.trz-chip.moje-prevzata{background:var(--trz-moje);color:#fff}
.trz-chip.moje-vyzvednuta{background:var(--trz-moje);color:#fff}
.trz-chip.cizi-prevzata,.trz-chip.cizi-vyzvednuta{background:#4a525c;color:#eef1f5}
.trz-chip.pozdeji{background:var(--trz-amber);color:#2a1a02}
.trz-chip.zpozdena{background:var(--trz-late);color:#fff}
.trz-sh-no{font:900 18px/1 var(--ff);color:#fff}
.trz-sh-no small{font-size:12px;color:var(--trz-muted);font-weight:800}
.trz-sh-rest{flex:1;min-width:0;font:800 13px/1.2 var(--ff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trz-sh-x{width:34px;height:34px;border-radius:10px;background:var(--trz-surface-2);border:1px solid var(--trz-border);color:var(--trz-text);display:grid;place-items:center;flex-shrink:0}
.trz-rows{display:grid;gap:6px}
.trz-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--trz-surface-2);border:1px solid var(--trz-border);text-align:left;color:var(--trz-text);width:100%}
.trz-row[data-tel],.trz-row[data-navurl]{cursor:pointer}
.trz-row:active{filter:brightness(1.15)}
.trz-row-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:rgba(255,255,255,.05);border:1px solid var(--trz-border);color:#d8dde3}
.trz-row-ic .ic{width:17px;height:17px}
.trz-row-ic.pin{color:var(--trz-moje)}
.trz-row-ic.tel{color:var(--trz-vezu)}
.trz-row-ic.time{color:var(--trz-amber)}
.trz-row-t{flex:1;min-width:0}
.trz-row-k{font:800 9px/1 var(--ff);letter-spacing:.7px;text-transform:uppercase;color:var(--trz-muted);margin-bottom:3px}
.trz-row-v{font:700 13px/1.25 var(--ff);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trz-row-v.wrap{white-space:normal}
.trz-row-v .odhad{font-size:9.5px;color:var(--trz-amber);font-weight:800;margin-left:6px;text-transform:uppercase;letter-spacing:.4px}
.trz-row-arrow{color:var(--trz-dim);flex-shrink:0}
.trz-row-arrow .ic{width:16px;height:16px}
.trz-zbyva{font-size:15px}
.trz-zbyva.ok{color:var(--trz-vezu)}
.trz-zbyva.warn{color:var(--trz-amber)}
.trz-zbyva.late{color:var(--trz-late)}
.trz-zbyva.sin{color:var(--trz-late);animation:trzShake .6s ease-in-out infinite}
@keyframes trzShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-1px)}75%{transform:translateX(1px)}}
.trz-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.trz-meta span{font:700 10.5px/1 var(--ff);padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--trz-border);color:var(--trz-muted)}
.trz-meta span.cash{color:var(--trz-vezu)}
.trz-meta span.card{color:var(--trz-moje)}
.trz-meta span.vydelek{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.45);color:#6ee7b7;font-weight:900}
.trz-meta span.vydelek .ic{width:12px;height:12px;vertical-align:-2px}
.trz-items{margin-top:8px;font:600 11.5px/1.4 var(--ff);color:var(--trz-muted);white-space:pre-line;border-top:1px dashed var(--trz-border);padding-top:6px}
.trz-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.trz-actions .ab{min-height:44px}
.trz-actions .vyz-blok{width:100%}
.trz-nav{flex:1 1 100%;background:linear-gradient(135deg,#1d4ed8,#3b82f6);color:#fff;border:0;box-shadow:0 6px 18px rgba(59,130,246,.35)}
.trz-nav.sekundarni{flex:1 1 auto;background:var(--trz-surface-2);border:1px solid var(--trz-border);box-shadow:none}
.trz-info{font:700 11.5px/1.35 var(--ff);color:var(--trz-muted);padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px dashed var(--trz-border);width:100%}
.trz-info b{color:#fff}
.trz-info.trz-varovani{border:1px solid var(--trz-amber);background:rgba(241,169,40,.1);color:#f5e6c8}
.trz-row.neoverena{border-color:var(--trz-amber);background:rgba(241,169,40,.08)}
.trz-row.neoverena .trz-row-ic{color:var(--trz-amber)}
.trz-row.neoverena .trz-row-k{color:var(--trz-amber)}

/* ---------- brána polohy ---------- */
.trz-gate{position:absolute;inset:0;z-index:600;background:rgba(9,12,16,.97);display:flex;align-items:center;justify-content:center;padding:20px}
.trz-gate[hidden]{display:none!important}
.trz-gate-card{width:100%;max-width:360px;padding:26px 22px;border-radius:20px;background:#0d1116;border:1px solid var(--trz-border);text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.trz-gate-ic{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:rgba(67,140,255,.12);border:2px solid #438cff;color:#438cff}
.trz-gate-ic .ic{width:34px;height:34px;stroke-width:1.6}
.trz-gate.err .trz-gate-ic{background:rgba(239,62,70,.12);border-color:var(--trz-nova);color:var(--trz-nova)}
.trz-gate.wait .trz-gate-ic{animation:trzMePulse 2s ease-in-out infinite}
.trz-gate-t{font:900 20px/1.15 var(--ff);color:#fff;margin-bottom:8px}
.trz-gate-d{font:600 13px/1.5 var(--ff);color:var(--trz-muted);margin-bottom:16px}
.trz-gate-d b{color:#fff}
.trz-gate-steps{text-align:left;font:600 12px/1.5 var(--ff);color:var(--trz-muted);background:rgba(255,255,255,.04);border:1px solid var(--trz-border);border-radius:12px;padding:10px 12px;margin-bottom:16px}
.trz-gate-steps b{display:block;color:#fff;margin-bottom:3px}
.trz-gate-btns{display:flex;flex-direction:column;gap:8px}
.trz-gate-btn{padding:13px 16px;border-radius:12px;font:800 13.5px/1 var(--ff);color:#fff;background:linear-gradient(135deg,#1d4ed8,#3b82f6)}
.trz-gate-btn.sek{background:var(--trz-surface-2);border:1px solid var(--trz-border);color:var(--trz-muted)}

/* ---------- menu ---------- */
.trz-menu{position:absolute;inset:0;z-index:560;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:flex-end;padding:calc(var(--trz-inset-t) + 60px) 10px 0}
.trz-menu[hidden]{display:none!important}
.trz-menu-card{width:min(260px,100%);background:#0d1116;border:1px solid var(--trz-border);border-radius:16px;padding:6px;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:trzEdgeIn .18s ease both;transform-origin:top right}
.trz-menu-card{animation-name:trzMenuIn}
@keyframes trzMenuIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.trz-menu-it{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border-radius:10px;color:var(--trz-text);font:700 13px/1 var(--ff);text-align:left;text-decoration:none}
.trz-menu-it:active{background:rgba(255,255,255,.06)}
.trz-menu-it .ic{width:18px;height:18px;color:var(--trz-muted)}
.trz-menu-it.danger{color:#ff6b70}
.trz-menu-sep{height:1px;background:var(--trz-border);margin:4px 8px}

/* ---------- objednávky, které se nedají zakotvit na mapě ---------- */
.trz-mimo{position:absolute;left:10px;right:10px;top:calc(var(--trz-hud-h) + var(--trz-inset-t) + 6px);z-index:515;
  display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border-radius:12px;
  background:rgba(58,51,35,.96);border:1px solid var(--trz-amber);color:#f7e2b8;font:800 12px/1.3 var(--ff);
  box-shadow:0 8px 22px rgba(0,0,0,.45);text-align:left}
.trz-mimo[hidden]{display:none!important}
.trz-mimo .ic{color:var(--trz-amber);flex-shrink:0}
.trz-mimo:active{filter:brightness(1.12)}

/* ---------- prázdný stav ---------- */
.trz-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:504;pointer-events:none;text-align:center;
  padding:14px 18px;border-radius:14px;background:rgba(9,12,16,.8);border:1px solid var(--trz-border);font:700 13px/1.4 var(--ff);color:var(--trz-muted)}
.trz-empty[hidden]{display:none!important}
.trz-empty b{display:block;color:#fff;font-size:15px;margin-bottom:3px}

/* ---------- počítadla v HUDu jako tlačítka ---------- */
.trz-stat{cursor:pointer;position:relative;--c:#c4a5ff;transition:border-color .15s,box-shadow .15s,transform .1s,background .15s}
.trz-stat.nova{--c:var(--trz-nova)}
.trz-stat.moje{--c:var(--trz-moje)}
.trz-stat:active{transform:scale(.95)}
.trz-stat.on{border-color:var(--c);box-shadow:0 0 0 2px rgba(255,255,255,.14),0 6px 18px rgba(0,0,0,.4);background:#161c24}
.trz-stat.on{box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 35%,transparent),0 6px 18px rgba(0,0,0,.4);background:color-mix(in srgb,var(--c) 14%,var(--trz-surface))}
.trz-stat.on i{color:var(--c)}
.trz-stat.moje.on::after,.trz-stat.online.on::after{content:"";position:absolute;left:50%;bottom:-8px;width:9px;height:9px;background:#0d1116;border-left:1px solid var(--c);border-top:1px solid var(--c);transform:translateX(-50%) rotate(45deg)}

/* ---------- vysouvací seznam shora (moje / online) ---------- */
.trz-panel{position:absolute;left:10px;right:10px;top:calc(var(--trz-hud-h) + var(--trz-inset-t) + 4px);z-index:525;max-height:min(58vh,520px);
  display:flex;flex-direction:column;background:var(--trz-surface);border:1px solid var(--trz-border);border-radius:18px;
  box-shadow:0 18px 50px rgba(0,0,0,.55);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  transform:translateY(calc(-100% - 90px));opacity:0;visibility:hidden;
  transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .22s ease,visibility 0s linear .34s}
.trz-panel.open{transform:none;opacity:1;visibility:visible;transition:transform .34s cubic-bezier(.22,1,.36,1),opacity .18s ease}
.trz-panel-head{display:flex;align-items:center;gap:8px;padding:10px 10px 8px 14px;border-bottom:1px solid var(--trz-border);flex-shrink:0}
.trz-panel-ic{display:grid;place-items:center}
.trz-panel-ic .ic{width:18px;height:18px;color:var(--trz-muted)}
.trz-panel-t{font:900 14px/1 var(--ff);color:#fff}
.trz-panel-n{font:800 11px/1 var(--ff);color:var(--trz-muted);padding:4px 7px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--trz-border)}
.trz-panel-n:empty{display:none}
.trz-panel-head .trz-sh-x{margin-left:auto}
.trz-panel-body{flex:1;min-height:0;overflow:auto;padding:8px;display:grid;gap:6px;align-content:start;-webkit-overflow-scrolling:touch}
.trz-panel-empty{padding:22px 12px;text-align:center;font:600 12.5px/1.45 var(--ff);color:var(--trz-muted)}
.trz-panel-empty .ic{width:28px;height:28px;color:var(--trz-dim);margin:0 auto 6px;display:block}
.trz-panel-empty b{display:block;color:#fff;font-size:14px;margin-bottom:2px}
.trz-prow{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:12px;background:var(--trz-surface-2);border:1px solid var(--trz-border);text-align:left;color:var(--trz-text)}
.trz-prow:active{filter:brightness(1.15)}
.trz-prow .trz-chip{min-width:52px;text-align:center}
.trz-prow-t{flex:1;min-width:0}
.trz-prow-t b{display:block;font:800 13px/1.2 var(--ff);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trz-prow-t b i{font-style:normal;font-weight:700;color:var(--trz-amber);font-size:10.5px;margin-left:4px}
.trz-prow-t small{display:block;font:600 11px/1.3 var(--ff);color:var(--trz-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.trz-prow-z{font:900 13px/1 var(--ff);flex-shrink:0}
.trz-prow-z.ok{color:var(--trz-vezu)}
.trz-prow-z.warn,.trz-prow-z.later{color:var(--trz-amber)}
.trz-prow-z.late,.trz-prow-z.sin{color:var(--trz-late)}
.trz-prow-av{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;overflow:hidden;background:var(--c,#9d5cff);color:#fff;font:900 15px/1 var(--ff);box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.trz-prow-av img{width:100%;height:100%;object-fit:cover}
.trz-prow.kolega{cursor:pointer}
.trz-prow.kolega.ja{border-style:dashed}
.trz-prow-btn{width:40px;height:40px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;background:rgba(67,140,255,.14);border:1px solid rgba(67,140,255,.5);color:#8cbaff}
.trz-prow-btn .ic{width:18px;height:18px}
.trz-prow-btn:active{background:rgba(67,140,255,.3)}

/* ---------- celá objednávka vyrolovaná v sheetu (grafika karty dispečinku) ---------- */
.trz-full{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1);margin-top:8px}
.trz-full.open{grid-template-rows:1fr}
.trz-full-in{min-height:0;overflow:hidden}
.trz-full .trz-cd{border-radius:14px;border:1px solid var(--trz-border);background:var(--trz-surface-2);overflow:hidden}
.trz-full .trz-cd .tgl{border-top:0;justify-content:flex-start;padding:8px 10px;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--trz-muted)}
.trz-full .trz-cd .cd-it{max-height:none;padding:0 10px 6px;overflow:visible}
.trz-full .trz-cd .cd-f{padding:8px 10px}
.trz-full .trz-cd .pb .ic{width:12px;height:12px}
.trz-full .trz-cd .tl{font:800 9px/1 var(--ff);letter-spacing:.6px;text-transform:uppercase;color:var(--trz-muted)}
.trz-full .trz-cd .tv{font:900 15px/1.2 var(--ff);color:#fff;text-align:right}
.trz-meta span.polozky{color:#fff;cursor:pointer}
.trz-sheet.tall{height:calc(76vh + var(--trz-inset-b))}
.trz-full-btn[aria-expanded="true"]{border-color:var(--trz-moje);color:#fff}

/* ---------- zvýraznění nových: ostatní špendlíky ustoupí (šedě, ne průhledně) ---------- */
#TRZ.hl-nova .trz-pin:not(.nova){filter:grayscale(1) brightness(.55)}
#TRZ.hl-nova .trz-dest:not(.nova){filter:grayscale(1) brightness(.55)}
#TRZ.hl-nova .trz-pin.nova{transform:scale(1.12)}
#TRZ.hl-nova .trz-pin.nova .trz-pin-ring{opacity:1;animation:trzHlRing 1.1s ease-out infinite}
@keyframes trzHlRing{0%{transform:scale(.6);opacity:.95}100%{transform:scale(2.3);opacity:0}}

@media (prefers-reduced-motion:reduce){
  .trz-flow,.trz-pin-ring,.trz-pin-body,.trz-edge-arrow,.trz-me-dot,.trz-zbyva.sin{animation:none!important}
  .trz-pin.zpozdena .trz-pin-body{box-shadow:0 0 0 4px rgba(239,62,70,.35),0 6px 18px rgba(0,0,0,.55)}
}
@media (min-width:900px){
  body.dd-trziste{--trz-sheet-h:280px}
  .trz-sheet{left:auto;right:16px;bottom:16px;width:420px;border-radius:20px;border:1px solid var(--trz-border);height:auto;max-height:60vh}
  .trz-sheet.open{transform:none}
  .trz-sheet:not(.open){transform:translateY(calc(100% + 40px))}
  .trz-fabs{right:16px;bottom:16px}
  #TRZ.sheet-closed .trz-fabs{bottom:16px}
  .trz-panel{left:auto;right:16px;width:420px;top:calc(var(--trz-hud-h) + var(--trz-inset-t) + 8px)}
  .trz-sheet.tall{max-height:86vh}
  .trz-map .leaflet-control-attribution{margin-bottom:0}
  body.dd-trziste .leaflet-control-zoom{display:block}
}

/* ---------- posel: objednávka mimo jeho úroveň / limit hotovosti ----------
   Zůstává na mapě (ať ví, že existuje), ale šedá, bez pulzování a bez BERU. */
.trz-pin.zakazano{--c:var(--trz-cizi);opacity:.62;filter:grayscale(1)}
.trz-pin.zakazano .trz-pin-body{background:#3a4048;border-style:dashed;animation:none}
.trz-pin.zakazano .trz-pin-ring{animation:none;opacity:0}
.trz-pin.zakazano .trz-pin-lbl{color:#aab2bc}
.trz-chip.zakazano{background:#4a525c;color:#eef1f5}
.trz-info.trz-zakaz{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#d5dbe2}
.trz-info.trz-zakaz .ic{color:#ff8a8f}
#TRZ.hl-nova .trz-pin.nova.zakazano{transform:none;filter:grayscale(1) brightness(.55)}
#TRZ.hl-nova .trz-pin.nova.zakazano .trz-pin-ring{animation:none;opacity:0}
