/* ============================================================================
   ПАПКИ — дерево материалов в карточке кейса, операции с папками БЗ,
   модалка авторазбора («Разложить по папкам»). Модуль web/js/79-folders.js.
   ============================================================================ */

/* ---------- дерево папок в карточке кейса ---------- */
.cs-fold-row{margin-top:6px}
.cs-fold{margin:4px 0}
.cs-fold-h{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--r-sm);
  cursor:pointer;user-select:none;background:var(--surface-2);border:1px solid transparent}
.cs-fold-h:hover{background:var(--elev);border-color:var(--hairline)}
.cs-fold-h b{flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.cs-fold-i{width:15px;height:15px;color:var(--iris);flex:none}
.cs-fold-c{width:13px;height:13px;flex:none;color:var(--txt-3);transition:transform .15s}
.cs-fold.open>.cs-fold-h .cs-fold-c{transform:rotate(90deg)}
.cs-fold-n{flex:none;font-size:11px;color:var(--txt-3);min-width:18px;text-align:right}
.cs-fold-h .iconbtn{opacity:0}
.cs-fold-h:hover .iconbtn{opacity:1}
/* Свёрнутая папка прячет тело — но счётчик рядом с именем остаётся виден. */
.cs-fold>.cs-fold-b{display:none;padding-left:10px;border-left:1px solid var(--hairline);margin-left:9px}
.cs-fold.open>.cs-fold-b{display:block}
.cs-fold-empty{padding:6px 4px;font-size:11.5px}

/* Выпадашка папки внутри плашки материала — не должна распирать строку. */
.fd-sel{max-width:150px;padding:3px 6px;border:1px solid var(--hairline);border-radius:var(--r-sm);
  background:var(--surface);color:var(--txt-2);font:inherit;font-size:11.5px;cursor:pointer}
.fd-sel:hover{border-color:var(--iris);color:var(--txt)}
.cs-mat-fold{opacity:0;transition:opacity .12s}
.cs-mat:hover .cs-mat-fold,.cs-mat-fold:focus{opacity:1}

/* ---------- модалка авторазбора ---------- */
.fd-run{display:flex;flex-direction:column;gap:9px;padding:14px 2px}
.fd-phase{font-size:12.5px}
.fd-plan-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 0 9px;
  border-bottom:1px solid var(--hairline);margin-bottom:9px}
.fd-plan-h b{font-size:13px}
.fd-mkdirs{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;
  color:var(--txt-2);cursor:pointer;white-space:nowrap}
.fd-rows{display:flex;flex-direction:column;gap:3px;max-height:52vh;overflow-y:auto}
.fd-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-sm);
  border:1px solid transparent}
.fd-row:hover{background:var(--surface-2)}
.fd-file{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.fd-file b{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd-arrow{width:13px;height:13px;flex:none;color:var(--txt-3)}
.fd-row .fd-sel{max-width:210px}
/* «Не смог отнести» — обычная строка без галочки; СБОЙ обработки — красная с причиной.
   Разница несущая: сбой, покрашенный как неуверенность, читается как свойство документа. */
.fd-row.unsure{background:color-mix(in oklab,var(--warn) 8%,transparent)}
.fd-row.bad{background:color-mix(in oklab,var(--bad) 10%,transparent);
  border-color:color-mix(in oklab,var(--bad) 35%,transparent)}
.fd-unsure{font-size:11px;color:var(--warn)}
.fd-err{font-size:11px;color:var(--bad);font-style:normal}
.fd-warn{display:flex;align-items:flex-start;gap:8px;padding:8px 11px;margin-bottom:9px;
  border:1px solid color-mix(in oklab,var(--bad) 40%,transparent);border-radius:var(--r-sm);
  background:color-mix(in oklab,var(--bad) 10%,transparent);font-size:12px;line-height:1.45}
.fd-warn .ico{flex:none;width:15px;height:15px;color:var(--bad);margin-top:1px}
.fd-foot{padding-top:10px}
.fd-fail{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;
  text-align:center;color:var(--bad)}
.fd-fail .ico{width:22px;height:22px}
.fd-fail span{font-size:12.5px;color:var(--txt-2)}
.fd-move{display:flex;flex-direction:column;gap:4px}

/* ---------- операции с папками в дереве БЗ ---------- */
.kbt-frow .kbt-act{opacity:0;flex:none;display:grid;place-items:center;width:20px;height:20px;
  border:0;padding:0;border-radius:6px;background:transparent;color:var(--txt-3);cursor:pointer}
.kbt-frow:hover .kbt-act{opacity:1}
.kbt-act:hover{background:var(--elev);color:var(--txt)}
.kbt-act .ico{width:12px;height:12px}
.kbt-act.del:hover{background:color-mix(in oklab,var(--bad) 18%,transparent);color:var(--bad)}

@media (max-width:760px){
  .fd-mkdirs{margin-left:0;width:100%}
  .fd-row{flex-wrap:wrap}
  .fd-row .fd-sel,.cs-mat-fold{max-width:100%;opacity:1}
}
