/*
 * Меню сайта (docs/design/admin/Adm_Menu.dc.html): дерево разделов и пунктов (.mt-row), карточка пункта, шапка сайта.
 * .mt-row → .admin-menu-row (--section, --item, --child, --hidden), .split.split-r → .admin-menu.
 */
@layer pages {
  /* .split.split-r — дерево и колонка карточек */
  .admin-menu {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
    gap: 24px;
    align-items: start;
  }
  .admin-menu__side { display: flex; flex-direction: column; gap: 16px; min-width: 0; }

  /* Подвал сайта (.ftr-ed / .fcol / .fl / .fl-ed): на всю ширину под деревом, колонки в ряд */
  .admin-footer { grid-column: 1 / -1; }
  .admin-footer__body { display: flex; flex-direction: column; gap: 14px; }
  .admin-footer__status:empty { display: none; }
  .admin-footer__status { margin: 0; }
  .admin-footer__columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; align-items: start; }
  .admin-footer-column { display: flex; flex-direction: column; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-ctl); background: var(--surface); }
  .admin-footer-column__head { display: grid; grid-template-columns: 20px minmax(0, 1fr) 36px; gap: 6px; align-items: center; padding-bottom: 6px; border-bottom: 1px solid var(--line); }
  .admin-footer-column__form { min-width: 0; }
  .admin-footer-column__title { width: 100%; min-height: 40px; padding: 0 8px; border: 1px solid transparent; border-radius: 10px; background: transparent; font: inherit; font-size: 16px; font-weight: 600; color: var(--ink); }
  .admin-footer-column__title:hover, .admin-footer-column__title:focus { border-color: var(--line); background: var(--surface); }
  .admin-footer-column__head .admin-icon-button { width: 36px; height: 36px; }
  .admin-footer-column__links { display: flex; flex-direction: column; min-height: 8px; }
  .admin-footer-link__row { display: grid; grid-template-columns: 20px minmax(0, 1fr) 36px; gap: 6px; align-items: center; min-height: 46px; padding: 2px 4px; border-radius: 10px; font-size: 15px; line-height: 1.3; cursor: pointer; list-style: none; }
  .admin-footer-link__row::-webkit-details-marker { display: none; }
  .admin-footer-link__row:hover { background: var(--soft-2); }
  .admin-footer-link[open] > .admin-footer-link__row { background: var(--soft); box-shadow: inset 0 0 0 1.5px var(--accent); }
  .admin-footer-link__text { min-width: 0; overflow-wrap: anywhere; }
  .admin-footer-link__text code { display: block; font-size: 12px; color: var(--ink-3); }
  .admin-footer-link__row .admin-icon-button { width: 36px; height: 36px; }
  .admin-footer-link__editor { display: flex; flex-direction: column; gap: 10px; margin: 2px 0 6px; padding: 12px; border-radius: 12px; background: var(--soft-2); }
  .admin-footer-link-form { display: flex; flex-direction: column; gap: 10px; }
  .admin-footer-link-form .field__label { font-size: 14px; }
  .admin-footer-link__editor .btn--danger { align-self: flex-start; }
  .admin-footer-column__adder > summary { list-style: none; font-size: 15px; min-height: 40px; }
  .admin-footer-column__adder > summary::-webkit-details-marker { display: none; }
  .admin-footer__add { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
  .admin-footer__add .admin-add-row:disabled { opacity: .45; cursor: not-allowed; }
  .admin-menu-detail { display: block; min-width: 0; scroll-margin-top: 16px; }

  .admin-menu-tree { padding: 12px; }
  .admin-menu-tree__sections { display: flex; flex-direction: column; gap: 2px; }
  .admin-menu-tree__add { padding: 10px 10px 4px; }

  /* .add-row — «+ Добавить раздел», «+ Пункт в шапку» */
  .admin-menu-add {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 4px;
    border: 0;
    background: transparent;
    color: var(--accent-ink);
    font: 600 16px var(--font);
    text-decoration: none;
    cursor: pointer;
  }
  .admin-menu-add:hover { text-decoration: underline; }

  /* .mt-row: ручка | (шеврон) | ссылка (название, адрес) | кнопки */
  .admin-menu-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto auto;
    gap: 6px;
    align-items: center;
    min-height: 50px;
    padding: 0 6px 0 10px;
    border-radius: 12px;
    font-size: 16px;
  }
  .admin-menu-row:hover { background: var(--soft-2); }
  .admin-menu-row:has([aria-current="true"]) { background: var(--soft); box-shadow: inset 0 0 0 1.5px var(--accent); }
  .admin-menu-row__link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 50px;
    color: inherit;
    text-decoration: none;
  }
  .admin-menu-row__link:focus-visible { outline: 3px solid var(--focus); outline-offset: -3px; border-radius: 10px; }
  .admin-menu-row__title { min-width: 0; overflow-wrap: break-word; }
  .admin-menu-row__path { margin-left: auto; padding-left: 8px; font: 13px ui-monospace, Menlo, monospace; color: var(--ink-3); white-space: nowrap; }
  .admin-menu-row__count { margin-left: auto; padding-left: 8px; font-weight: 400; white-space: nowrap; }
  .admin-menu-row__form { display: contents; }
  .admin-menu-row__moves { display: flex; }
  .admin-menu-row .admin-icon-button { width: 36px; height: 44px; }
  .admin-menu-row .admin-icon-button--off { color: var(--ink-3); }

  /* .mt-row.sec — раздел */
  .admin-menu-row--section { grid-template-columns: 24px 20px minmax(0, 1fr) auto auto; font-weight: 600; font-size: 17px; list-style: none; cursor: pointer; }
  .admin-menu-row--section::-webkit-details-marker { display: none; }
  .admin-menu-row__chevron { display: grid; place-items: center; color: var(--ink-3); transition: transform 0.15s; transform: rotate(-90deg); }
  .admin-menu-section[open] > summary .admin-menu-row__chevron { transform: none; }
  .admin-menu-row--section .admin-menu-row__link { flex-wrap: wrap; row-gap: 0; }

  /* .mt-row.l2 — пункт; подпункт сдвинут ещё на уровень */
  .admin-menu-section__items { margin: 0 0 6px 28px; min-height: 8px; }
  .admin-menu-item__children { margin-left: 28px; }
  /* У пункта верхнего уровня есть «+ подпункт», у подпункта нет: остальные кнопки — в столько колонок, сколько их есть */
  .admin-menu-row--item { grid-template-columns: 24px minmax(0, 1fr); grid-auto-flow: column; grid-auto-columns: auto; }

  /* .mt-row.hid — скрытый пункт: название зачёркнуто, глаз перечёркнут */
  .admin-menu-row--hidden .admin-menu-row__title { color: var(--ink-3); text-decoration: line-through; }
  .admin-menu-row--hidden .admin-menu-row__path { text-decoration: none; }

  /* Карточка */
  .admin-menu-form { display: flex; flex-direction: column; gap: 16px; }
  .admin-menu-form__links { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 15px; }
  .admin-menu-form__links a { display: inline-flex; align-items: center; gap: 6px; word-break: break-all; }
  .admin-menu-form__external { margin-top: 8px; }

  /* Шапка сайта */
  .admin-menu-header__body { gap: 8px; }
  .admin-menu-header__list { display: flex; flex-direction: column; gap: 2px; min-height: 8px; }
  .admin-menu-header-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto auto auto;
    gap: 6px;
    align-items: center;
    padding: 2px 4px 2px 10px;
    border-radius: 12px;
  }
  .admin-menu-header-row:hover { background: var(--soft-2); }
  .admin-menu-header-row__form { min-width: 0; }
  .admin-menu-header-row__form .input { width: 100%; }
  .admin-menu-header-row__kind { white-space: nowrap; }
  .admin-menu-header-row .admin-icon-button { width: 36px; height: 44px; }
  .admin-menu-adder { padding-top: 4px; }
  .admin-menu-adder > summary { list-style: none; }
  .admin-menu-adder > summary::-webkit-details-marker { display: none; }
  .admin-menu-adder__form { display: flex; flex-direction: column; gap: 12px; padding: 8px 0 4px; }

  @media (max-width: 820px) {
    .admin-menu { grid-template-columns: minmax(0, 1fr); }
    /* .mt-row.l2 { margin-left: 14px }, .mt-row code { display: none } */
    .admin-menu-section__items { margin-left: 8px; }
    .admin-menu-item__children { margin-left: 6px; }
    .admin-menu-row__path { display: none; }
    .admin-menu-row { padding-left: 4px; padding-right: 0; gap: 2px; }
    .admin-menu-row--child { font-size: 15px; }
    /* HTML5 drag на телефоне не работает: порядок — кнопками «Выше / Ниже» */
    .admin-menu-row .admin-drag, .admin-menu-header-row .admin-drag { display: none; }
    .admin-menu-row--item { grid-template-columns: minmax(0, 1fr); }
    .admin-menu-row--section { grid-template-columns: 20px minmax(0, 1fr) auto auto; }
    .admin-menu-header-row { grid-template-columns: minmax(0, 1fr) auto auto auto; }
    .admin-menu-header-row__kind { display: none; }
    .admin-menu-row .admin-icon-button, .admin-menu-header-row .admin-icon-button { width: 44px; }
  }
}
