/* styles/default/components/c-dropdown.css — #8 dropdown (trigger + panel) a menu položek
   Created :: 2026-10-21
   Updated :: 2026-10-28
   2026-10-28 :: M9 – M9-10 (viz 04 kap. 3) */

.c-dropdown { position: relative; display: inline-flex; max-width: 100%; }

.c-dropdown__panel {
  position: absolute;
  top: calc(100% + var(--sp-1));
  left: 0;
  z-index: var(--z-dropdown);
  min-width: 22rem;
  max-width: min(40rem, calc(100vw - 2 * var(--sp-4)));
  max-height: min(60vh, 48rem);
  overflow: auto;
  padding: var(--sp-1);
  border: 1px solid var(--color-border);
  border-radius: var(--r-lg);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--sh-md);
  animation: c-dropdown-in var(--dur-1) var(--ease-out);
}
.c-dropdown__panel[hidden] { display: none; }
.c-dropdown--end .c-dropdown__panel { left: auto; right: 0; }
.c-dropdown--wide .c-dropdown__panel { min-width: 32rem; }
.c-dropdown--fit .c-dropdown__panel { min-width: 100%; }
.c-dropdown--shrink { min-width: 0; }   /* smí se zúžit pod obsah (přepínač projektu v L1) */
.c-dropdown.is-up .c-dropdown__panel { top: auto; bottom: calc(100% + var(--sp-1)); }
.c-dropdown.is-flip-x .c-dropdown__panel { left: auto; right: 0; }

.c-dropdown__search { padding: var(--sp-1) var(--sp-1) var(--sp-2); margin-bottom: var(--sp-1); border-bottom: 1px solid var(--color-border); }
.c-dropdown__header { display: flex; flex-direction: column; gap: var(--sp-half); min-width: 0; padding: var(--sp-2) var(--sp-3); margin-bottom: var(--sp-1); border-bottom: 1px solid var(--color-border); }
.c-dropdown__footer { padding: var(--sp-2) var(--sp-3); margin-top: var(--sp-1); border-top: 1px solid var(--color-border); }

.c-menu { display: flex; flex-direction: column; gap: .1rem; }
.c-menu form { display: contents; }
.c-menu__item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  width: 100%;
  min-height: 3.4rem;
  padding: 0 var(--sp-3);
  border-radius: var(--r-md);
  color: var(--color-text);
  font-size: var(--fs-base);
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.c-menu__item > span { min-width: 0; }
.c-menu__item:hover, .c-menu__item:focus-visible, .c-menu__item.is-focused { background: var(--color-surface-hover); text-decoration: none; }
.c-menu__item.is-active, .c-menu__item[aria-checked="true"] { background: var(--color-surface-selected); color: var(--color-primary-text); }
.c-menu__item[aria-disabled="true"] { opacity: .5; cursor: not-allowed; pointer-events: none; }
.c-menu__item .c-icon { color: var(--color-text-muted); }
.c-menu__item.is-active .c-icon, .c-menu__item[aria-checked="true"] .c-icon { color: inherit; }
.c-menu__item--danger { color: var(--color-danger); }
/* Položka s checkboxem (filtry): label není fokusovatelný, fokus drží input – zvýraznit celou položku (M9-10, N41) */
label.c-menu__item { cursor: pointer; }
.c-menu__input:focus-visible { outline: none; }
.c-menu__item:has(> .c-menu__input:focus-visible) { background: var(--color-surface-hover); box-shadow: inset var(--focus-ring); }
.c-menu__item--danger .c-icon { color: inherit; }
.c-menu__check { margin-left: auto; color: var(--color-primary); }
.c-menu__item:not([aria-checked="true"]) .c-menu__check { visibility: hidden; }
.c-menu__sep { margin: var(--sp-1) 0; }
.c-menu__label { padding: var(--sp-2) var(--sp-3) var(--sp-1); font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--color-text-subtle); text-transform: uppercase; letter-spacing: var(--ls-caps); }
.c-menu__empty { padding: var(--sp-3); color: var(--color-text-muted); font-size: var(--fs-sm); text-align: center; }

@keyframes c-dropdown-in { from { opacity: 0; transform: translateY(-.4rem); } to { opacity: 1; transform: none; } }

@media (max-width: 767.98px) {
  .c-menu__item { min-height: var(--touch-min); }
  .c-dropdown__panel, .c-dropdown--end .c-dropdown__panel, .c-dropdown.is-up .c-dropdown__panel {
    position: fixed;
    top: calc(var(--appbar-h) + var(--sp-2));
    bottom: auto;
    left: var(--sp-2);
    right: var(--sp-2);
    min-width: 0;
    max-width: none;
  }
}
/* Odsazená položka (podsekce v pickeru sekce) */
.c-menu__indent { padding-left: 2.2rem; }

/* Inline varianta (sheet filtrů na mobilu, 03 §7.4): spouštěč na celou šířku, panel se rozbalí v toku pod ním místo plovoucího okna */
.c-dropdown.is-inline { display: flex; flex-direction: column; align-items: stretch; }
.c-dropdown.is-inline > [data-action="dropdown"] { width: 100%; justify-content: space-between; }
.c-dropdown.is-inline > [data-action="dropdown"] > span { flex: 1; text-align: left; }
.c-dropdown.is-inline .c-dropdown__panel,
.c-dropdown.is-inline.is-up .c-dropdown__panel,
.c-dropdown.is-inline.is-flip-x .c-dropdown__panel { position: static; width: 100%; min-width: 0; max-width: none; max-height: 40vh; margin-top: var(--sp-1); box-shadow: none; animation: none; }
