/* styles/default/components/c-plachta.css — #35 plachta: tabulka feedbacků (03 kap. 10) – sloupce, container queries (4 režimy vč. karet), stavy řádku,
   sticky hlavička, hustota (--compact), skeleton při načítání
   Created :: 2026-10-23
   Updated :: 2026-10-29
   2026-10-29 :: 1.0.5 – sloupec priority se štítkem (nowrap, zarovnání vlevo)
   2026-10-28 :: M9 – úklid a revize (viz 04 kap. 3) */

.c-plachta { container-type: inline-size; container-name: plachta; min-width: 0; }
.c-plachta__banner { padding: var(--sp-4) var(--page-gutter) 0; }
.c-plachta__table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: var(--fs-base); }

/* Hlavička */
.c-plachta__th {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  height: 3.6rem;
  padding: 0 var(--sp-3);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface-2);
  color: var(--color-text-muted);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-caps);
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}
.c-plachta__th--num      { width: 5.6rem; }
.c-plachta__th--status   { width: 15rem; }
.c-plachta__th--resolver { width: 17rem; }
.c-plachta__th--priority { width: 12.6rem; }    /* štítek priority s názvem (Normální / Urgentní) + šipka pickeru; 4.4rem bylo pro samotnou ikonu, která se v table-layout: fixed stlačila na 0 px (1.0.5) */
.c-plachta__th--assignee { width: 9.4rem; }   /* „Řešitel“ + ikona řazení se musí vejít i s paddingem buňky */
.c-plachta__th--author   { width: 6.4rem; }
.c-plachta__th--comments { width: 5.6rem; }
.c-plachta__th--updated  { width: 11rem; }
.c-plachta__th--title    { min-width: 28rem; }
.c-plachta__sort { display: inline-flex; align-items: center; gap: .3rem; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.c-plachta__sort-icon { color: var(--color-text-subtle); opacity: 0; transition: opacity var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out); }
.c-plachta__sort:hover .c-plachta__sort-icon { opacity: .6; }
.c-plachta__th[aria-sort="ascending"] .c-plachta__sort, .c-plachta__th[aria-sort="descending"] .c-plachta__sort { color: var(--color-text); }
.c-plachta__th[aria-sort="ascending"] .c-plachta__sort-icon, .c-plachta__th[aria-sort="descending"] .c-plachta__sort-icon { opacity: 1; color: var(--color-primary); }
.c-plachta__th[aria-sort="descending"] .c-plachta__sort-icon { transform: rotate(180deg); }
.c-plachta__sort:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--r-xs); }

/* Řádek a buňky */
.c-plachta__row { cursor: pointer; transition: background-color var(--dur-1) var(--ease-out); }
.c-plachta__row:hover { background: var(--color-surface-hover); }
.c-plachta__row:focus-visible, .c-plachta__row:focus-within { outline: none; box-shadow: inset var(--focus-ring); }
.c-plachta__row.is-selected { background: var(--color-surface-selected); box-shadow: inset .3rem 0 0 var(--color-primary); }
.c-plachta__row.is-closed .c-plachta__title { color: var(--color-text-muted); }
.c-plachta__row.is-updated { animation: plachta-flash 1.2s var(--ease-out); }
.c-plachta__row.is-removing { opacity: 0; transition: opacity var(--dur-2) var(--ease-in-out); }
@keyframes plachta-flash { 0%, 40% { background-color: var(--color-primary-soft); } 100% { background-color: transparent; } }

/* Skupina podle sekce (pohled Vše, M8-06): hlavička se sbalením; sbalené řádky mají [hidden] */
.c-plachta__group-cell { padding: var(--sp-1) var(--sp-3); border-bottom: 1px solid var(--color-border); background: var(--color-surface-2); }
.c-plachta__group-toggle { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 2.8rem; padding: 0 var(--sp-1); border-radius: var(--r-sm); color: var(--color-text); font-size: var(--fs-sm); font-weight: var(--fw-semibold); cursor: pointer; }
.c-plachta__group-toggle:hover { background: var(--color-surface-hover); }
.c-plachta__group-toggle:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.c-plachta__group-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c-plachta__group-chevron { color: var(--color-text-muted); transition: transform var(--dur-1) var(--ease-out); }
.c-plachta__group-toggle[aria-expanded="false"] .c-plachta__group-chevron { transform: rotate(-90deg); }
.c-plachta__row[hidden] { display: none; }

.c-plachta__cell { height: var(--row-h); padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.c-plachta__cell--num { color: var(--color-text-muted); font-variant-numeric: tabular-nums; text-align: right; }
.c-plachta__cell--title { min-width: 0; }
.c-plachta__cell--assignee, .c-plachta__cell--author { text-align: center; }
.c-plachta__cell--priority { white-space: nowrap; }   /* štítek priority s názvem + šipka pickeru; dřív jen ikona v 44px sloupci → 0 px (1.0.5) */
.c-plachta__cell--comments { color: var(--color-text-muted); font-variant-numeric: tabular-nums; text-align: center; }
.c-plachta__cell--updated { color: var(--color-text-muted); font-size: var(--fs-sm); white-space: nowrap; }

.c-plachta__titlebox { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; }
.c-plachta__title { grid-column: 2; display: block; color: var(--color-text); font-weight: var(--fw-medium); text-decoration: none; overflow-wrap: anywhere; }
.c-plachta__title:hover { color: var(--color-link); text-decoration: none; }
.c-plachta__prio-inline { grid-column: 1; display: none; margin: .15rem var(--sp-1) 0 0; }
.c-plachta__meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: var(--sp-half); color: var(--color-text-subtle); font-size: var(--fs-xs); }
.c-plachta__meta-author, .c-plachta__meta-comments, .c-plachta__meta-updated { display: none; }
.c-plachta__meta-comments { display: none; align-items: center; gap: var(--sp-half); }

/* Hustota */
.c-plachta.is-compact .c-plachta__cell { height: var(--row-h-compact); padding: var(--sp-1) var(--sp-3); }
.c-plachta.is-compact .c-plachta__meta { display: none; }
.c-plachta.is-compact .c-plachta__title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: unset; display: block; }

/* Načítání: po 150 ms skeleton řádků přes tabulku (c-skeleton--row), tabulka utlumená */
.c-plachta { position: relative; }
.c-plachta.is-loading .c-plachta__table { opacity: .35; pointer-events: none; }
.c-plachta__skeleton { position: absolute; inset: var(--row-h) 0 auto 0; display: flex; flex-direction: column; pointer-events: none; }
.c-plachta__skeleton-row { background: transparent; }
@media (min-width: 992px) { .c-plachta__head { position: sticky; top: 0; z-index: var(--z-sticky); } }
.c-plachta[aria-busy="true"] .c-plachta__loadmore { pointer-events: none; }

/* ---------- Container queries (03 kap. 10.3) ---------- */
@container plachta (max-width: 109.99rem) {
  /* Ne display:none – hlavička skupiny má colspan 9 a tabulka s table-layout: fixed by skrytému sloupci dál dávala šířku (fantomový pruh, M9-10 N39); nulová šířka sloupec sbalí */
  .c-plachta__th--author, .c-plachta__cell--author { width: 0; min-width: 0; padding: 0; border: 0; overflow: hidden; }
  .c-plachta__meta-author { display: inline; }
}
@container plachta (max-width: 85.99rem) {
  .c-plachta__th--priority, .c-plachta__cell--priority, .c-plachta__th--comments, .c-plachta__cell--comments, .c-plachta__th--updated, .c-plachta__cell--updated { display: none; }
  .c-plachta__prio-inline { display: inline-flex; }
  .c-plachta__meta-comments { display: inline-flex; }
  .c-plachta__meta-updated { display: inline; }
  .c-plachta__th--title { min-width: 20rem; }
}
/* Režim karet: buňka titulku i její obal jsou display: contents, takže priorita, titulek a meta řádek jsou přímé děti mřížky řádku
   (dřív byl meta řádek vnořený a oblast „meta“ vytvářela implicitní stopy). Status a řešení mají každé svou oblast, řešitel vpravo dole. */
@container plachta (max-width: 63.99rem) {
  .c-plachta__table, .c-plachta__body { display: block; }
  .c-plachta__head { display: none; }
  .c-plachta__row {
    display: grid;
    grid-template-columns: 3rem auto minmax(0, 1fr) auto;
    grid-template-areas: "num prio title title" "num status status res" "num meta meta people";
    gap: .5rem var(--sp-2);
    align-items: center;
    padding: var(--sp-3) var(--sp-4);
    border-bottom: 1px solid var(--color-border);
  }
  .c-plachta__cell { display: block; height: auto; padding: 0; border: 0; text-align: left; }
  .c-plachta__cell--num { grid-area: num; align-self: start; font-size: var(--fs-sm); text-align: left; }
  .c-plachta__cell--title, .c-plachta__titlebox { display: contents; }
  .c-plachta__prio-inline { grid-area: prio; display: inline-flex; margin: 0; }
  .c-plachta__prio-inline:empty { display: none; }
  .c-plachta__title { grid-area: title; }
  .c-plachta__cell--status { grid-area: status; display: inline-flex; gap: var(--sp-2); flex-wrap: wrap; }
  .c-plachta__cell--resolver { grid-area: res; justify-self: end; display: inline-flex; }
  .c-plachta__cell--assignee { grid-area: people; justify-self: end; display: flex; align-items: center; }
  .c-plachta__cell--author, .c-plachta__cell--priority, .c-plachta__cell--comments, .c-plachta__cell--updated { display: none; }
  .c-plachta__meta { grid-area: meta; display: flex; margin-top: 0; }
  .c-plachta.is-compact .c-plachta__row { padding: var(--sp-2) var(--sp-4); }
  .c-plachta.is-compact .c-plachta__meta { display: flex; }   /* v kartě je meta jediný nositel sekce a času */
  .c-plachta__row.is-selected { box-shadow: inset .3rem 0 0 var(--color-primary); }
  .c-plachta__group, .c-plachta__group-cell { display: block; }
}

/* Sticky hlavička mimo l-workspace (< 992 dokument scrolluje) */
@media (max-width: 991.98px) {
  .c-plachta__th { top: var(--appbar-h); }
}
