/* com_zsdokumenty - pruzkumnik dokumentu (barvy navazuji na sablonu zs_pce) */
.zsd-x {
  --zsd-navy: #022348;
  --zsd-accent: #941114;
  --zsd-text: #3c4650;
  --zsd-muted: #5f6b77;
  --zsd-line: #e6eaef;
  --zsd-soft: #f5f7fa;
  --zsd-radius: 10px;
  --zsd-c: #607d8b;       /* barva typu souboru, prepisuje .zsd-type--* */
  --zsd-c-bg: #eef2f5;
  color: var(--zsd-text);
  position: relative;
}
.zsd-type--pdf   { --zsd-c: #e0352b; --zsd-c-bg: #fdecea; }
.zsd-type--word  { --zsd-c: #2b5797; --zsd-c-bg: #e8eef8; }
.zsd-type--excel { --zsd-c: #1e7145; --zsd-c-bg: #e6f3ec; }
.zsd-type--ppt   { --zsd-c: #d24726; --zsd-c-bg: #fcece6; }
.zsd-type--zip   { --zsd-c: #8d6e63; --zsd-c-bg: #f3ede9; }
.zsd-type--image { --zsd-c: #7b4fb8; --zsd-c-bg: #f1ebf9; }
.zsd-type--text  { --zsd-c: #546e7a; --zsd-c-bg: #edf1f3; }

/* ---------- lista ---------- */
.zsd-x__bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem;
  padding: .65rem .75rem; margin-bottom: 1.25rem;
  background: var(--zsd-soft); border: 1px solid var(--zsd-line); border-radius: var(--zsd-radius);
}
.zsd-x__crumbs { flex: 1 1 100%; min-width: 0; }
.zsd-x__crumbs ol { display: flex; flex-wrap: wrap; align-items: center; list-style: none; margin: 0; padding: 0; font-size: 15px; }
.zsd-x__crumbs li { display: flex; align-items: center; gap: .4rem; }
.zsd-x__crumbs li + li::before { content: "\203A"; color: var(--zsd-muted); margin: 0 .5rem; font-size: 1.15em; }
.zsd-x__crumbs a { color: var(--zsd-navy); text-decoration: none; font-weight: 600; }
.zsd-x__crumbs a:hover { color: var(--zsd-accent); }
.zsd-x__crumbs [aria-current] { color: var(--zsd-text); font-weight: 600; }
.zsd-x__crumbs .fa-house { color: var(--zsd-navy); font-size: .9em; }

.zsd-x__search { position: relative; flex: 1 1 220px; margin: 0; }
.zsd-x__search .fa-magnifying-glass { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--zsd-muted); font-size: .85rem; pointer-events: none; }
.zsd-x .zsd-x__search input {
  width: 100%; height: 38px; padding: 0 .75rem 0 2.3rem !important; font-size: 14px; margin: 0;
  border: 1px solid var(--zsd-line); border-radius: 999px; background: #fff; color: var(--zsd-text);
}
.zsd-x__search input:focus { outline: none; border-color: var(--zsd-navy); box-shadow: 0 0 0 3px rgba(2, 35, 72, .12); }

.zsd-x__views { display: inline-flex; background: #fff; border: 1px solid var(--zsd-line); border-radius: 8px; padding: 3px; }
.zsd-x__views button {
  border: 0; background: transparent; width: 34px; height: 30px; border-radius: 6px; color: var(--zsd-muted); cursor: pointer; line-height: 1;
}
.zsd-x__views button:hover { color: var(--zsd-navy); }
.zsd-x__views button[aria-pressed="true"] { background: var(--zsd-navy); color: #fff; }

.zsd-x__heading { font-size: 1.25rem; margin: 0 0 1rem; color: var(--zsd-navy); }
.zsd-x__desc { margin-bottom: 1.25rem; }
.zsd-x__body { transition: opacity .15s; }
.zsd-x.is-loading .zsd-x__body { opacity: .45; pointer-events: none; }

.zsd-x__empty { text-align: center; padding: 3rem 1rem; color: var(--zsd-muted); }
.zsd-x__empty .fa-solid, .zsd-x__empty .fa-regular { font-size: 2.75rem; color: #c7cfd8; margin-bottom: .75rem; }

/* ---------- polozky (spolecne) ---------- */
.zsd-x__items { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.zsd-item { position: relative; background: #fff; border: 1px solid var(--zsd-line); border-radius: var(--zsd-radius); transition: box-shadow .15s, border-color .15s, transform .15s; }
.zsd-item:hover { border-color: #cfd8e2; box-shadow: 0 6px 18px rgba(2, 35, 72, .08); }
.zsd-item__link { display: flex; gap: .9rem; color: inherit; text-decoration: none !important; }
.zsd-item__link:focus-visible { outline: 3px solid rgba(2, 35, 72, .35); outline-offset: 2px; border-radius: var(--zsd-radius); }
.zsd-item__icon {
  position: relative; flex: none; display: grid; place-items: center;
  width: 46px; height: 46px; border-radius: 10px; background: var(--zsd-c-bg); color: var(--zsd-c); font-size: 1.45rem;
}
.zsd-item__ext {
  position: absolute; right: -6px; bottom: -6px; padding: 1px 5px; border-radius: 4px;
  background: var(--zsd-c-strong, var(--zsd-c)); color: #fff; font: 700 11px/1.3 system-ui, sans-serif; letter-spacing: .03em;
}
.zsd-item__text { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.zsd-item__title { color: var(--zsd-navy); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.zsd-item__link:hover .zsd-item__title { color: var(--zsd-accent); }
.zsd-item__meta { color: var(--zsd-muted); font-size: 13px; line-height: 1.5; margin-top: .15rem; }
.zsd-item__actions { display: flex; gap: .4rem; }

.is-folder .zsd-item__icon { --zsd-c: #e5a50a; --zsd-c-bg: #fff6dc; font-size: 1.6rem; }
.is-folder:hover .zsd-item__icon .fa-folder::before { content: "\f07c"; } /* folder-open */
.zsd-item__chevron { margin-left: auto; align-self: center; color: #c3ccd6; transition: transform .15s, color .15s; }
.is-folder:hover .zsd-item__chevron { color: var(--zsd-accent); transform: translateX(3px); }

/* tlacitka */
.zsd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  height: 34px; padding: 0 .8rem; border-radius: 8px; border: 1px solid var(--zsd-navy);
  background: var(--zsd-navy); color: #fff !important; font-size: 13px; font-weight: 600; text-decoration: none !important; white-space: nowrap; cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.zsd-btn:hover, .zsd-btn:focus-visible { background: var(--zsd-accent); border-color: var(--zsd-accent); }
.zsd-btn--ghost { background: #fff; color: var(--zsd-navy) !important; border-color: var(--zsd-line); }
.zsd-btn--ghost:hover, .zsd-btn--ghost:focus-visible { background: var(--zsd-soft); color: var(--zsd-accent) !important; border-color: #cfd8e2; }

/* ---------- MRIZKA ---------- */
.zsd-x[data-view="grid"] .zsd-x__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(185px, 1fr)); gap: 14px; }
.zsd-x[data-view="grid"] .zsd-x__items--folders { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.zsd-x[data-view="grid"] .is-folder .zsd-item__link { align-items: center; padding: .9rem 1rem; }
.zsd-x[data-view="grid"] .is-file { display: flex; flex-direction: column; }
.zsd-x[data-view="grid"] .is-file:hover { transform: translateY(-2px); }
.zsd-x[data-view="grid"] .is-file .zsd-item__link { flex: 1; flex-direction: column; padding: 1.1rem 1rem .75rem; }
.zsd-x[data-view="grid"] .is-file .zsd-item__icon { width: 56px; height: 56px; font-size: 1.75rem; margin-bottom: .35rem; }
.zsd-x[data-view="grid"] .is-file .zsd-item__title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.zsd-x[data-view="grid"] .zsd-item__date { display: none; }
.zsd-x[data-view="grid"] .zsd-item__actions { padding: 0 .75rem .9rem; flex-wrap: wrap; }
.zsd-x[data-view="grid"] .zsd-item__actions .zsd-btn { flex: 1 1 80px; min-width: 0; padding: 0 .45rem; }
.zsd-x[data-view="grid"] .is-file::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: var(--zsd-radius) var(--zsd-radius) 0 0; background: var(--zsd-c); opacity: .85; }

/* ---------- RADKY ---------- */
.zsd-x[data-view="list"] .zsd-x__items { border: 1px solid var(--zsd-line); border-radius: var(--zsd-radius); overflow: hidden; background: #fff; }
.zsd-x[data-view="list"] .zsd-item { border: 0; border-radius: 0; display: flex; align-items: center; gap: .75rem; padding: 0 1rem 0 0; }
.zsd-x[data-view="list"] .zsd-item + .zsd-item { border-top: 1px solid var(--zsd-line); }
.zsd-x[data-view="list"] .zsd-item:hover { box-shadow: none; background: var(--zsd-soft); }
.zsd-x[data-view="list"] .zsd-item__link { flex: 1; min-width: 0; align-items: center; padding: .7rem 1rem; }
.zsd-x[data-view="list"] .zsd-item__icon { width: 40px; height: 40px; font-size: 1.25rem; }
.zsd-x[data-view="list"] .zsd-item__ext { display: none; }
.zsd-x[data-view="list"] .zsd-item__actions .zsd-btn { height: 32px; }

/* ---------- stranka dokumentu ---------- */
.zsd-doc { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; margin-bottom: 1.25rem; }
.zsd-doc .zsd-item__icon { width: 64px; height: 64px; font-size: 2rem; }
.zsd-doc__text { flex: 1 1 260px; min-width: 0; }
.zsd-doc__title { font-size: 1.6rem; line-height: 1.25; margin: 0 0 .25rem; color: var(--zsd-navy); }
.zsd-doc__actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.zsd-doc__viewer { display: block; width: 100%; height: 80vh; min-height: 520px; border: 1px solid var(--zsd-line); border-radius: var(--zsd-radius); background: #525659; }
.zsd-doc__image { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: var(--zsd-radius); }

/* ---------- dialog s nahledem ---------- */
.zsd-modal {
  width: min(1100px, 96vw); height: min(92vh, 1200px); max-width: none; max-height: none; padding: 0;
  border: 0; border-radius: 12px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
}
.zsd-modal[open] { display: flex; flex-direction: column; }
.zsd-modal::backdrop { background: rgba(2, 20, 40, .65); backdrop-filter: blur(2px); }
.zsd-modal__head { display: flex; align-items: center; gap: .6rem; padding: .6rem .75rem .6rem 1rem; border-bottom: 1px solid var(--zsd-line); background: #fff; }
.zsd-modal__icon { color: #e0352b; font-size: 1.2rem; }
.zsd-modal__title { flex: 1; min-width: 0; margin: 0; font-size: 1rem; line-height: 1.3; color: var(--zsd-navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zsd-modal__close { border: 0; background: transparent; font-size: 1.9rem; line-height: 1; width: 40px; height: 40px; border-radius: 8px; color: var(--zsd-muted); cursor: pointer; }
.zsd-modal__close:hover { background: var(--zsd-soft); color: var(--zsd-accent); }
.zsd-modal__body { flex: 1; min-height: 0; background: #525659; display: grid; place-items: center; }
.zsd-modal__body iframe { width: 100%; height: 100%; border: 0; display: block; }
.zsd-modal__body img { max-width: 100%; max-height: 100%; object-fit: contain; }
html.zsd-modal-open { overflow: hidden; }

/* ---------- mobil ---------- */
@media (max-width: 767px) {
  .zsd-x__search { flex: 1 1 150px; }
  .zsd-x[data-view="grid"] .zsd-x__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .zsd-x[data-view="grid"] .zsd-x__items--folders { grid-template-columns: 1fr; }
  .zsd-x[data-view="list"] .zsd-item { flex-wrap: wrap; padding: 0 0 .7rem; }
  .zsd-x[data-view="list"] .zsd-item__actions { padding-left: calc(1rem + 40px + .9rem); }
  .zsd-btn__label { display: none; }
  .zsd-x[data-view="grid"] .zsd-btn__label, .zsd-doc .zsd-btn__label, .zsd-modal .zsd-btn .zsd-btn__label { display: inline; }
  .zsd-modal { width: 100vw; height: 100dvh; border-radius: 0; }
  .zsd-modal .zsd-btn--ghost { display: none; }
}
@media (prefers-reduced-motion: reduce) { .zsd-item, .zsd-x__body { transition: none; } }

/* Uredni deska: datum vyveseni a sejmuti (i v mrizce, na rozdil od data nahrani) */
.zsd-item__board { display: block; color: #3b4a5a; font-weight: 600; }
.zsd-doc__board { margin: .5rem 0 0; padding: .4rem .7rem; display: inline-block; background: #fff4d6; color: #4d3800; border-radius: 6px; font-size: 14px; }
.zsd-doc__board .fa-thumbtack { margin-right: .3rem; }

/* Hlavni nadpis stranky (h1), fokus po AJAX prechodu bez ramecku */
.zsd-x__title { margin: 0 0 .9rem; color: var(--zsd-navy); font-size: 1.6rem; line-height: 1.25; }
.zsd-x__title:focus { outline: none; }
.zsd-x__title:focus-visible { outline: 3px solid rgba(2, 35, 72, .35); outline-offset: 4px; }
/* stitek typu souboru: tmavsi odstin kvuli kontrastu bileho textu (min. 4.5:1) */
.zsd-type--pdf { --zsd-c-strong: #b3261e; }
.zsd-type--ppt { --zsd-c-strong: #a8361b; }
.zsd-type--zip { --zsd-c-strong: #6d5249; }
