/**
 * Prohlížeč souborů (Upgrader2 215). Chování je v coral-soubor.js, na stránce
 * aplikace ho zařadí 98k-soubory.php.
 *
 * Vzhled dává aplikace proměnnými níž, výchozí je tmavé sklo s hranou v cyan
 * a fokusem v růžové, bílý text nikde.
 *   --coral-soubor-zavoj    plocha za souborem
 *   --coral-soubor-lista    lišta s názvem a tlačítky
 *   --coral-soubor-text     název, věty a ikony (--coral-akcent)
 *   --coral-soubor-hrana    hrany a oddělovače
 *   --coral-soubor-tlacitko plocha tlačítka, -najeti po najetí
 *   --coral-soubor-fokus    kroužek fokusu z klávesnice
 *   --coral-soubor-papir    podklad pod stránkou PDF a textem
 *   --coral-soubor-na-akcentu ikona na tlačítku přehrávání (plné v barvě textu)
 *   --coral-soubor-pismo    písmo lišty (písmo aplikace)
 */
.coral-soubor{
 --cs-text:var(--coral-soubor-text,var(--coral-akcent,#7fdcec));
 --cs-hrana:var(--coral-soubor-hrana,rgba(96,214,236,.28));
 --cs-fokus:var(--coral-soubor-fokus,rgba(255,110,180,.75));
 --cs-mezera:clamp(10px,1.6vw,18px);
 position:fixed;inset:0;z-index:2147482500;display:flex;flex-direction:column;box-sizing:border-box;
 width:auto;height:auto;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;
 /* Stránku pod sebou neposouvá a nic neschovává: kolečko ani tah se dál nepředají. */
 overscroll-behavior:contain;
 background:var(--coral-soubor-zavoj,rgba(7,10,18,.86));-webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1);
 color:var(--cs-text);font-family:var(--coral-soubor-pismo,inherit);
 opacity:0;transition:opacity .18s ease;-webkit-tap-highlight-color:transparent}
.coral-soubor *,.coral-soubor *::before,.coral-soubor *::after{box-sizing:border-box}
.coral-soubor:not([open]){display:none}
.coral-soubor::backdrop{background:transparent}
.coral-soubor.je-otevreno{opacity:1}
.coral-soubor.je-zavira{opacity:0;pointer-events:none}

.coral-soubor-lista{display:flex;align-items:center;gap:clamp(6px,1vw,10px);flex:none;
 padding:calc(var(--cs-mezera) * .6 + env(safe-area-inset-top,0px)) calc(var(--cs-mezera) + env(safe-area-inset-right,0px)) calc(var(--cs-mezera) * .6) calc(var(--cs-mezera) + env(safe-area-inset-left,0px));
 background:var(--coral-soubor-lista,rgba(14,19,32,.92));border-bottom:2px solid var(--cs-hrana);
 box-shadow:0 10px 26px -18px rgba(0,0,0,.9)}
.coral-soubor-nazev{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
 font-size:clamp(14px,1.05vw + 10px,17px);font-weight:600;letter-spacing:.01em}

.coral-soubor-tlacitko{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;
 min-width:44px;min-height:44px;padding:0 clamp(10px,1.2vw,16px);border-radius:12px;
 border:2px solid var(--cs-hrana);background:var(--coral-soubor-tlacitko,rgba(96,214,236,.08));color:var(--cs-text);
 font:inherit;font-size:clamp(13px,.5vw + 11px,15px);font-weight:600;text-decoration:none;cursor:pointer;
 outline:none;-webkit-tap-highlight-color:transparent;
 transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}
.coral-soubor-tlacitko svg{width:20px;height:20px;flex:none}
.coral-soubor-tlacitko:hover{background:var(--coral-soubor-tlacitko-najeti,rgba(96,214,236,.18));border-color:rgba(96,214,236,.5)}
.coral-soubor-tlacitko:active{transform:scale(.96)}
.coral-soubor-tlacitko:focus{outline:none}
.coral-soubor-tlacitko:focus-visible{box-shadow:0 0 0 3px var(--cs-fokus)}
.coral-soubor-tlacitko--hlavni{min-height:48px;padding:0 22px}
/* Na úzké liště zůstane u tlačítek jen ikona, popisek nese aria-label. */
@container coral-soubor-lista (max-width:420px){.coral-soubor-lista .coral-soubor-tlacitko__text{display:none}.coral-soubor-lista .coral-soubor-tlacitko{padding:0}}
.coral-soubor-lista{container:coral-soubor-lista / inline-size}

.coral-soubor-plocha{position:relative;flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 padding:var(--cs-mezera) calc(var(--cs-mezera) + env(safe-area-inset-right,0px)) calc(var(--cs-mezera) + env(safe-area-inset-bottom,0px)) calc(var(--cs-mezera) + env(safe-area-inset-left,0px));
 -webkit-overflow-scrolling:touch}
.coral-soubor[data-druh="pdf"][data-stav="hotovo"] .coral-soubor-plocha,
.coral-soubor[data-druh="text"][data-stav="hotovo"] .coral-soubor-plocha{justify-content:flex-start}

.coral-soubor-nacitam{display:flex;flex-direction:column;align-items:center;gap:12px;font-size:14px;opacity:.85}
.coral-soubor-nacitam__kruh{width:34px;height:34px;border-radius:50%;border:3px solid var(--cs-hrana);border-top-color:var(--cs-text);animation:coral-soubor-toc .8s linear infinite}
@keyframes coral-soubor-toc{to{transform:rotate(360deg)}}

/* Obrázek a video vyplní plochu a vepíšou se do ní; stín kreslí jen samotný obraz. */
.coral-soubor[data-druh="obrazek"] .coral-soubor-plocha,.coral-soubor[data-druh="video"] .coral-soubor-plocha{overflow:hidden}
.coral-soubor-obrazek,.coral-soubor-video{display:block;flex:1 1 auto;width:100%;height:100%;min-height:0;object-fit:contain;
 filter:drop-shadow(0 20px 36px rgba(0,0,0,.7));animation:coral-soubor-prijezd .22s cubic-bezier(.2,.8,.2,1)}
@keyframes coral-soubor-prijezd{from{opacity:0;transform:translateY(8px) scale(.985)}}

/* Nahrávka: vlastní přehrávač místo lišty prohlížeče (Světlina 617). */
.coral-soubor-prehravac{display:flex;align-items:center;gap:clamp(12px,1.6vw,18px);width:min(100%,560px);
 padding:clamp(14px,2vw,22px);border-radius:20px;border:2px solid var(--cs-hrana);
 background:var(--coral-soubor-lista,rgba(14,19,32,.92));box-shadow:0 22px 44px -26px rgba(0,0,0,.95);
 animation:coral-soubor-prijezd .22s cubic-bezier(.2,.8,.2,1)}
.coral-soubor-prehravac audio{display:none}
.coral-soubor-hraj{display:inline-flex;align-items:center;justify-content:center;flex:none;
 width:clamp(52px,4vw + 36px,60px);height:clamp(52px,4vw + 36px,60px);padding:0;border-radius:50%;
 border:2px solid var(--cs-hrana);background:var(--cs-text);color:var(--coral-soubor-na-akcentu,#0b1220);
 cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;
 box-shadow:0 10px 22px -12px rgba(0,0,0,.85);transition:transform .12s ease,box-shadow .15s ease}
.coral-soubor-hraj svg{width:46%;height:46%}
.coral-soubor-hraj:hover{box-shadow:0 12px 26px -12px rgba(0,0,0,.9),0 0 0 4px var(--cs-hrana)}
.coral-soubor-hraj:active{transform:scale(.94)}
.coral-soubor-hraj:focus{outline:none}
.coral-soubor-hraj:focus-visible{box-shadow:0 0 0 3px var(--cs-fokus)}
.coral-soubor-prehravac__telo{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.coral-soubor-posun{-webkit-appearance:none;appearance:none;display:block;width:100%;height:44px;margin:0;padding:0;
 background:transparent;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.coral-soubor-posun:focus{outline:none}
.coral-soubor-posun::-webkit-slider-runnable-track{height:6px;border-radius:6px;
 background:linear-gradient(90deg,var(--cs-text) var(--coral-soubor-poloha,0%),var(--cs-hrana) var(--coral-soubor-poloha,0%))}
.coral-soubor-posun::-moz-range-track{height:6px;border-radius:6px;background:var(--cs-hrana)}
.coral-soubor-posun::-moz-range-progress{height:6px;border-radius:6px;background:var(--cs-text)}
.coral-soubor-posun::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;
 border:0;background:var(--cs-text);box-shadow:0 3px 8px -2px rgba(0,0,0,.7);transition:transform .12s ease}
.coral-soubor-posun::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:0;background:var(--cs-text);box-shadow:0 3px 8px -2px rgba(0,0,0,.7)}
.coral-soubor-posun:active::-webkit-slider-thumb{transform:scale(1.2)}
.coral-soubor-posun:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--cs-fokus)}
.coral-soubor-posun:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--cs-fokus)}
.coral-soubor-prehravac__cas{display:flex;justify-content:space-between;gap:10px;margin-top:-8px;
 font-size:clamp(12px,.3vw + 11px,14px);font-variant-numeric:tabular-nums;opacity:.85}

.coral-soubor-stranky{display:flex;flex-direction:column;align-items:center;gap:var(--cs-mezera);width:min(100%,960px)}
.coral-soubor-strana{position:relative;width:100%;aspect-ratio:var(--coral-soubor-pomer,1 / 1.414);border-radius:6px;overflow:hidden;
 background:var(--coral-soubor-papir,#f4f3f0);box-shadow:0 18px 40px -22px rgba(0,0,0,.95)}
.coral-soubor-platno{display:block;width:100%;height:100%;animation:coral-soubor-prijezd .2s ease}

.coral-soubor-text{width:min(100%,960px);margin:0;padding:clamp(14px,2vw,26px);border-radius:10px;border:2px solid var(--cs-hrana);
 background:var(--coral-soubor-papir,rgba(14,19,32,.9));color:var(--cs-text);
 font:clamp(12px,.4vw + 11px,14px)/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}

.coral-soubor-ramec{width:min(100%,1100px);flex:1 1 auto;min-height:60vh;border:0;border-radius:8px;background:var(--coral-soubor-papir,#f4f3f0)}

.coral-soubor-poznamka{margin:4px 0 0;font-size:14px;opacity:.8;text-align:center}
.coral-soubor-chyba{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:min(100%,460px);text-align:center}
.coral-soubor-chyba__veta{margin:0;font-size:clamp(15px,.6vw + 12px,18px);line-height:1.5}

@media (prefers-reduced-motion:reduce){.coral-soubor,.coral-soubor *{animation:none!important;transition:none!important}}
