/* explorer.css — «Классный проводник» (blox33 #1). Плитки/крошки берём из playlist.css (.pl-*);
   здесь только то, что новое: раскладка тела, шторка на весь экран, контекстное меню, метка
   «отправлено», предпросмотр. Цвета — ТОЛЬКО роль-токены (§11 lingo-ui), сырые ступени рампы запрещены. */

/* ── Яндекс.Диск-облик, ЕДИНЫЙ для всех трёх входов проводника (story 7-bis) ──
   Владелец: «сделай дизайн идентичный Я.Диску и везде единый». Проводник и целевая
   панель плейлиста делят классы .pl-* (rule 7), а весь экран несёт .plscreen; шторка
   таска/сдачи — .overlay.exp-shutter. Поэтому ОДИН scoped-блок перекрывает роль-токены
   на яндекс-бренд (--ya-* из theme.css) и красит ВСЕ входы одинаково, не протекая в
   остальное приложение. Меняем скин здесь — правится в одном месте (§11). */
.plscreen, .overlay.exp-shutter{
  --accent:var(--ya-accent);
  --accent-dark:var(--ya-accent-dark);
  --accent-tint:var(--ya-sel);
  --accent-fill:var(--ya-sel);
  --line:var(--ya-line);
  --line-soft:var(--ya-line);
  --fill-soft:var(--ya-soft);
  --pl-line:var(--ya-line);
  --pl-src-bg:var(--ya-surface);
}

/* ── тело проводника: колонка, сетка тянется и скроллится сама (rule 1 — страница не прыгает) ── */
.exp{display:flex;flex-direction:column;min-height:0;height:100%}
.exp .exp-grid{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.exp .exp-bread{flex:0 0 auto}
.exp .exp-msg{flex:0 0 auto}
.exp .exp-selbar{flex:0 0 auto}

/* старый уровень при переходе в папку не стираем — лишь затемняем, пока грузится новый */
.exp.exp-loading .exp-grid{opacity:.5;pointer-events:none;transition:opacity .12s}

/* плитка = палец: минимум 44px (G5/WCAG 2.5.5). Долгое нажатие не должно выделять текст/звать callout. */
.exp .exp-ent{min-height:44px;position:relative;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* «✓ отправлено» — временная метка после одиночной отправки (§10 в1: шторка остаётся открытой) */
.exp .exp-sent{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  gap:6px;font-weight:800;font-size:var(--fs-sm);color:var(--on-dark);
  background:var(--ok-solid);border-radius:inherit;animation:exp-fade 1.8s ease forwards}
@keyframes exp-fade{0%{opacity:0}12%{opacity:1}75%{opacity:1}100%{opacity:0}}
.exp .exp-ent.exp-sending{opacity:.6}

/* кнопка ⤶(N) — та же роль, что btn-primary; чуть крупнее в панели выбора */
.exp .exp-batch{width:100%;justify-content:center;gap:8px}

/* ── контекстное меню (правый клик / долгое нажатие) ── */
.exp-menu{position:fixed;z-index:70;min-width:200px;padding:6px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:0 12px 32px rgba(37,26,46,.22)}
.exp-menu-i{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;
  border:none;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;
  border-radius:var(--r-sm)}
.exp-menu-i:hover{background:var(--fill-soft)}
.exp-menu-i:active{background:var(--accent-tint)}

/* ── окно проводника (Story 7): стиль файлового браузера Я.Диска ──
   Своё окно поверх экрана (кнопка-триггер → окно). На телефоне почти во весь экран, на ПК просто
   крупнее (owner: «то же самое, но окошко больше»). Закрывается только ✕ (rule 6). */
/* blox33 #3 — окно проводника ДОЛЖНО лежать ПОВЕРХ окна таска. Окно «Новый таск» — это .emodal
   c z-index:60, а базовый .overlay = 50, поэтому шторка проводника открывалась ПОЗАДИ таска (кнопка
   «Приложить с Я.Диска» будто ничего не делала). Поднимаем шторку выше таск-модалки; предпросмотр
   (Открыть из шторки) и контекст-меню — ещё выше, чтобы не спрятаться за самой шторкой. */
.overlay.exp-shutter{z-index:65}
.overlay.exp-prevov{z-index:75}
.overlay.exp-shutter .exp-sheet{display:flex;flex-direction:column;height:88vh;max-height:88vh;
  width:100%;max-width:640px;padding:0;overflow:hidden;border-radius:var(--r-lg)}
.exp-shutter .exp-host{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0 14px 12px}
@media(min-width:560px){ .overlay.exp-shutter .exp-sheet{height:82vh;max-width:880px} }

/* шапка окна — как заголовок файлового окна: иконка диска слева, ✕ справа, тонкая линия снизу */
.exp-winhead{margin:0;padding:13px 14px;border-bottom:1px solid var(--line);
  background:var(--fill-soft);border-radius:var(--r-lg) var(--r-lg) 0 0}
.exp-winhead b{display:flex;align-items:center;gap:8px}

/* адресная строка = крошки: светлая «плашка пути» под шапкой */
.exp-win .exp-bread{margin:10px 0 8px;padding:7px 10px;background:var(--fill-soft);
  border:1px solid var(--line);border-radius:var(--r-md);flex-wrap:wrap}
/* «⋯ Папка» (смена корня Я.Диска) — оформлена как КНОПКА-пилюля, идентично сегменту «Я Диск школы»
   в плейлисте (.pl-seg.on): та же заливка --accent + текст --ink, чтобы читалась как явная кнопка
   (blox28 #6). margin-left:auto прижимает её к правому краю адресной строки в обоих проводниках
   (окно таска/сдачи и панель-источник плейлиста). Специфичность .plscreen .exp-bread .exp-reroot
   перебивает .plscreen .pl-lnk (цвет/паддинг). */
.plscreen .exp-bread .exp-reroot{margin-left:auto;display:inline-flex;align-items:center;gap:5px;
  padding:6px 11px;border-radius:9px;font-weight:700;font-size:13px;
  background:var(--accent);color:var(--ink);border:none}
.plscreen .exp-bread .exp-reroot:hover{text-decoration:none;filter:brightness(.96)}
/* «Выбрать» (режим галочек) — иконка-галочка слева от подписи (та же check-circle, что у пункта меню
   «Выбрать» и что помечает выбранные строки), Task2 */
.plscreen .exp-selstart{display:inline-flex;align-items:center;gap:5px}

/* actionsRow (источник плейлиста): «Выбрать»+«⋯ Папка» — отдельной строкой НАД крошками. Две .pl-bread
   подряд; верхняя (действия) без нижней границы/паддинга, нижняя (крошки) обычная — читаются как один
   блок-шапка. Спец-ть .plscreen .exp-bread.exp-actions перебивает базовое .plscreen .pl-bread. */
.plscreen .exp-bread.exp-actions{border-bottom:none;padding-bottom:0}
.plscreen .exp-bread.exp-crumbs{padding-top:6px}

/* плитки в ОКНЕ — ЕДИНЫЙ плоский файловый список Я.Диска (story 7-bis). Шторка несёт класс
   .pl-list (см. openExplorerShutter), поэтому строки берут ТОТ ЖЕ облик, что и панель плейлиста:
   без рамок-карточек, ховер — светло-серый, разделены волоском. Так окно таска/сдачи и панель
   плейлиста выглядят одинаково (rule 7 — один класс, одна реализация). Бывшие точечные правила
   .exp-shutter .exp-grid .pl-tile удалены как дубль (leftover) — всё держит .pl-list. */

/* ── футер выбранного файла (multi:false: таск, сдача) — карточка внизу окна ── */
.exp-foot{flex:0 0 auto;display:none}
.exp-foot:not(:empty){display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
/* слово «Выбрано:» — зелёное (var(--checked)), как подтверждение выбора (Task5) */
.exp-foot .exp-foot-lbl{color:var(--checked);font-weight:700;font-size:var(--fs-sm);flex:0 0 auto}
.exp-foot .pl-nm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ✕ снятия выбора — виден и на ПК (Task5): базовое .plscreen .pl-rm = display:none (показ только на
   ховер плитки или на телефоне), а в футере он нужен всегда; специфичность .plscreen .exp-foot .pl-rm
   перебивает базовое правило. */
.plscreen .exp-foot .pl-rm{flex:0 0 auto;display:inline-flex}
/* blox33 #4 — «ОК»: подтвердить выбор и закрыть окно (функция крестика шапки), явной кнопкой.
   width:auto + margin-top:0 перебивают «.sheet .btn-primary{width:100%;margin-top:6px}» (style.css):
   окно проводника — это .sheet, поэтому без этого «ОК» раздувалась на всю ширину и уезжала за правый
   край на телефоне (та же правка, что для кнопки отправки в родительском чате). */
.exp-foot .exp-foot-ok{flex:0 0 auto;width:auto;margin-top:0;min-height:38px;padding:8px 18px}

/* ── предпросмотр (Открыть) ── */
.overlay.exp-prevov .exp-prevsheet{width:100%;max-width:560px}
.exp-prevbody{margin-top:6px}
