/* Чертоги разума — UI-kit (общие компоненты) */

/* плавный скролл + появление карточек по очереди (reveal.js) */
html{scroll-behavior:smooth}
.rv{opacity:0;transform:translateY(10px);transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* кнопки */
.btn{
  font-family:inherit;font-size:var(--button-fs);font-weight:var(--button-fw);line-height:var(--button-lh);letter-spacing:.1em;text-transform:uppercase;
  color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-line);
  border-radius:var(--r);padding:0.55rem 0.85rem;cursor:pointer;white-space:nowrap;letter-spacing:var(--button-ls,.1em);
  transition:background .15s,border-color .15s,color .15s;
}
.btn:hover{border-color:var(--ink)}
.btn.dark{background:var(--btn-dark-bg);color:var(--btn-dark-fg);border-color:var(--btn-dark-bg)}
.btn.dark:hover{background:var(--ink)}

/* ——— шапка-оболочка ——— */
.appbar{
  display:flex;align-items:center;gap:0.75rem;
  border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.25rem;
}
.brand{display:flex;align-items:baseline;gap:0.5rem;margin-right:auto}
.brand .name{font-size:var(--fs-18);font-weight:var(--fw-500);letter-spacing:.01em;line-height:1}
.brand .sub{font-size:var(--fs-12);color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.burger{
  width:2.4rem;height:2.4rem;flex:none;display:grid;place-items:center;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);color:var(--ink);
  transition:border-color .15s;
}
.burger:hover{border-color:var(--ink)}
.burger svg{width:1.15rem;height:1.15rem}

/* ——— бургер-панель справа ——— */
.drawer-overlay{position:fixed;inset:0;background:rgba(17,17,17,.35);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:69}
.drawer-overlay.open{opacity:1;visibility:visible}
.drawer{
  position:fixed;top:0;right:0;height:100%;width:min(82vw,20rem);z-index:70;
  background:var(--card);border-left:1px solid var(--line);
  transform:translateX(100%);transition:transform .25s cubic-bezier(.16,1,.3,1);
  padding:calc(1.25rem + env(safe-area-inset-top,0px)) 1.1rem 1.25rem;
  display:flex;flex-direction:column;gap:0.35rem;
}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;margin-bottom:1rem}
.drawer-head .t{font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.drawer-head .close{margin-left:auto;background:none;border:none;color:var(--muted);font-size:var(--fs-18);cursor:pointer;line-height:1}
.drawer-head .close:hover{color:var(--ink)}
.menu-item{
  display:flex;align-items:center;gap:0.5rem;width:100%;text-align:left;
  font-family:inherit;font-size:var(--fs-16);color:var(--ink);background:none;
  border:1px solid transparent;border-radius:var(--r);padding:0.7rem 0.75rem;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.menu-item:hover{background:var(--bg)}
.menu-item.on{background:var(--accent);color:var(--on-dark)}
.menu-item .soon{margin-left:auto;font-size:var(--fs-12);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.menu-item.on .soon{color:rgba(255,255,255,.6)}

/* ——— разделы ——— */
.view[hidden]{display:none}
.stub{
  border:1px dashed var(--line);border-radius:var(--r);padding:4rem 1.5rem;text-align:center;
}
.stub h2{font-size:var(--fs-18);font-weight:var(--fw-500);margin-bottom:0.5rem}
.stub p{font-size:var(--fs-12);color:var(--muted)}

/* ——— модалка ——— */
.overlay{position:fixed;inset:0;background:rgba(17,17,17,.35);backdrop-filter:blur(3px);
  display:none;place-items:center;z-index:60;padding:1.25rem}
.overlay.show{display:grid}
.modal{width:100%;max-width:27rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:1.5rem;max-height:90vh;overflow-y:auto}
.modal h2{font-size:var(--fs-12);font-weight:var(--fw-600);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.25rem}
.field{margin-bottom:0.9rem}
.field label{display:block;font-size:var(--fs-12);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:0.45rem}
.field input,.field textarea{
  width:100%;font-family:inherit;font-size:var(--fs-14);color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);padding:0.65rem 0.75rem;resize:vertical;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--halo-line);box-shadow:var(--halo)}
.field .hint{font-size:var(--fs-12);color:var(--faint);margin-top:0.35rem;letter-spacing:.02em}
.tagpick{display:flex;gap:0.35rem;flex-wrap:wrap;margin-top:0.5rem}
.tagpick .tp{font:inherit;font-size:var(--chip-fs-sm);font-weight:var(--chip-fw);line-height:1;padding:var(--chip-pad-sm);border-radius:999px;border:1px solid var(--chip-line);background:var(--chip-bg);color:var(--chip-fg);cursor:pointer;transition:border-color .15s}
.tagpick .tp:hover{border-color:var(--ink)}
.tagpick .tp.on{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}
.modal-actions{display:flex;gap:0.6rem;margin-top:1.4rem}
.modal-actions .btn{flex:1;text-align:center;justify-content:center}
.modal .note{font-size:var(--fs-12);color:var(--muted);line-height:1.55;margin-top:1rem;
  background:var(--bg);border-radius:var(--r);padding:0.75rem 0.85rem}
.modal input[type=file]{display:none}   /* только скрытые инпуты в модалках; обычные поля файла видимы */

/* хлебные крошки */
.crumbs{display:flex;align-items:center;gap:0.5rem;font-size:var(--fs-16);margin-right:auto}
.crumbs a{color:var(--ink);text-decoration:none}
.crumbs a:hover{opacity:.6}
.crumbs .sep{color:var(--faint)}
.crumbs .cur{color:var(--muted)}

/* ——— общая шапка (светлая, липкая) ——— */

/* ——— текстовые роли как классы: .t-<роль> — размер/начертание/межстрочное/интервал/цвет из токенов роли ——— */
.t-h1{font-family:var(--h1-ff,inherit);font-size:var(--h1-fs);font-weight:var(--h1-fw);line-height:var(--h1-lh);letter-spacing:var(--h1-ls);word-spacing:var(--h1-ws,normal);color:var(--h1-c)}
.t-h2{font-family:var(--h2-ff,inherit);font-size:var(--h2-fs);font-weight:var(--h2-fw);line-height:var(--h2-lh);letter-spacing:var(--h2-ls);word-spacing:var(--h2-ws,normal);color:var(--h2-c)}
.t-h3{font-family:var(--h3-ff,inherit);font-size:var(--h3-fs);font-weight:var(--h3-fw);line-height:var(--h3-lh);letter-spacing:var(--h3-ls);word-spacing:var(--h3-ws,normal);color:var(--h3-c)}
.t-subtitle{font-family:var(--subtitle-ff,inherit);font-size:var(--subtitle-fs);font-weight:var(--subtitle-fw);line-height:var(--subtitle-lh);letter-spacing:var(--subtitle-ls);word-spacing:var(--subtitle-ws,normal);color:var(--subtitle-c)}
.t-body{font-family:var(--body-ff,inherit);font-size:var(--body-fs);font-weight:var(--body-fw);line-height:var(--body-lh);letter-spacing:var(--body-ls);word-spacing:var(--body-ws,normal);color:var(--body-c)}
.t-caption{font-family:var(--caption-ff,inherit);font-size:var(--caption-fs);font-weight:var(--caption-fw);line-height:var(--caption-lh);letter-spacing:var(--caption-ls);word-spacing:var(--caption-ws,normal);color:var(--caption-c)}
.t-eyebrow{font-family:var(--eyebrow-ff,inherit);font-size:var(--eyebrow-fs);font-weight:var(--eyebrow-fw);line-height:var(--eyebrow-lh);letter-spacing:var(--eyebrow-ls);word-spacing:var(--eyebrow-ws,normal);color:var(--eyebrow-c)}
.t-quote{font-family:var(--quote-ff,inherit);font-size:var(--quote-fs);font-weight:var(--quote-fw);line-height:var(--quote-lh);letter-spacing:var(--quote-ls);word-spacing:var(--quote-ws,normal);color:var(--quote-c)}
.t-card-title{font-family:var(--card-title-ff,inherit);font-size:var(--card-title-fs);font-weight:var(--card-title-fw);line-height:var(--card-title-lh);letter-spacing:var(--card-title-ls);word-spacing:var(--card-title-ws,normal);color:var(--card-title-c)}
.t-card-desc{font-family:var(--card-desc-ff,inherit);font-size:var(--card-desc-fs);font-weight:var(--card-desc-fw);line-height:var(--card-desc-lh);letter-spacing:var(--card-desc-ls);word-spacing:var(--card-desc-ws,normal);color:var(--card-desc-c)}
.t-card-meta{font-family:var(--card-meta-ff,inherit);font-size:var(--card-meta-fs);font-weight:var(--card-meta-fw);line-height:var(--card-meta-lh);letter-spacing:var(--card-meta-ls);word-spacing:var(--card-meta-ws,normal);color:var(--card-meta-c)}
.t-card-tag{font-family:var(--card-tag-ff,inherit);font-size:var(--card-tag-fs);font-weight:var(--card-tag-fw);line-height:var(--card-tag-lh);letter-spacing:var(--card-tag-ls);word-spacing:var(--card-tag-ws,normal);color:var(--card-tag-c)}
.t-button{font-family:var(--button-ff,inherit);font-size:var(--button-fs);font-weight:var(--button-fw);line-height:var(--button-lh);letter-spacing:var(--button-ls);word-spacing:var(--button-ws,normal);color:var(--button-c)}
.t-nav{font-family:var(--nav-ff,inherit);font-size:var(--nav-fs);font-weight:var(--nav-fw);line-height:var(--nav-lh);letter-spacing:var(--nav-ls);word-spacing:var(--nav-ws,normal);color:var(--nav-c)}
.t-logo{font-family:var(--logo-ff,inherit);font-size:var(--logo-fs);font-weight:var(--logo-fw);line-height:var(--logo-lh);letter-spacing:var(--logo-ls);word-spacing:var(--logo-ws,normal);color:var(--logo-c)}
.t-action{font-family:var(--action-ff,inherit);font-size:var(--action-fs);font-weight:var(--action-fw);line-height:var(--action-lh);letter-spacing:var(--action-ls);word-spacing:var(--action-ws,normal);color:var(--action-c)}
.t-chip{font-family:var(--chip-ff,inherit);font-size:var(--chip-fs);font-weight:var(--chip-fw);line-height:var(--chip-lh);letter-spacing:var(--chip-ls);word-spacing:var(--chip-ws,normal);color:var(--chip-c)}
.t-label{font-family:var(--label-ff,inherit);font-size:var(--label-fs);font-weight:var(--label-fw);line-height:var(--label-lh);letter-spacing:var(--label-ls);word-spacing:var(--label-ws,normal);color:var(--label-c)}
.t-hint{font-family:var(--hint-ff,inherit);font-size:var(--hint-fs);font-weight:var(--hint-fw);line-height:var(--hint-lh);letter-spacing:var(--hint-ls);word-spacing:var(--hint-ws,normal);color:var(--hint-c)}
.t-code{font-family:var(--code-ff,inherit);font-size:var(--code-fs);font-weight:var(--code-fw);line-height:var(--code-lh);letter-spacing:var(--code-ls);word-spacing:var(--code-ws,normal);color:var(--code-c)}
.t-number{font-family:var(--number-ff,inherit);font-size:var(--number-fs);font-weight:var(--number-fw);line-height:var(--number-lh);letter-spacing:var(--number-ls);word-spacing:var(--number-ws,normal);color:var(--number-c)}
.t-figure{font-family:var(--figure-ff,inherit);font-size:var(--figure-fs);font-weight:var(--figure-fw);line-height:var(--figure-lh);letter-spacing:var(--figure-ls);word-spacing:var(--figure-ws,normal);color:var(--figure-c);font-variant-numeric:tabular-nums}
.t-num{font-family:var(--num-ff,inherit);font-size:var(--num-fs);font-weight:var(--num-fw);line-height:var(--num-lh);letter-spacing:var(--num-ls);word-spacing:var(--num-ws,normal);color:var(--num-c)}
/* v202: стили из «Админка → Дизайн → Стили текста»; моноширинного больше нет — код основным шрифтом */
.t-paragraph{font-family:var(--paragraph-ff,inherit);font-size:var(--paragraph-fs);font-weight:var(--paragraph-fw);line-height:var(--paragraph-lh);letter-spacing:var(--paragraph-ls);word-spacing:var(--paragraph-ws,normal);color:var(--paragraph-c)}.t-block{font-family:var(--block-ff,inherit);font-size:var(--block-fs);font-weight:var(--block-fw);line-height:var(--block-lh);letter-spacing:var(--block-ls);word-spacing:var(--block-ws,normal);color:var(--block-c)}.t-block-sub{font-family:var(--block-sub-ff,inherit);font-size:var(--block-sub-fs);font-weight:var(--block-sub-fw);line-height:var(--block-sub-lh);letter-spacing:var(--block-sub-ls);word-spacing:var(--block-sub-ws,normal);color:var(--block-sub-c)}.t-th{font-family:var(--th-ff,inherit);font-size:var(--th-fs);font-weight:var(--th-fw);line-height:var(--th-lh);letter-spacing:var(--th-ls);word-spacing:var(--th-ws,normal);color:var(--th-c)}.t-th-sub{font-family:var(--th-sub-ff,inherit);font-size:var(--th-sub-fs);font-weight:var(--th-sub-fw);line-height:var(--th-sub-lh);letter-spacing:var(--th-sub-ls);word-spacing:var(--th-sub-ws,normal);color:var(--th-sub-c)}.t-btn-text{font-family:var(--btn-text-ff,inherit);font-size:var(--btn-text-fs);font-weight:var(--btn-text-fw);line-height:var(--btn-text-lh);letter-spacing:var(--btn-text-ls);word-spacing:var(--btn-text-ws,normal);color:var(--btn-text-c)}
.t-eyebrow,.t-button,.t-card-tag{text-transform:uppercase}
/* на плашке цвет текста даёт комплект плашки, роль — только размер и начертание */
.sf .t-nav,.sf .t-logo,.sf .t-label,.sf .t-chip,.sf .t-button,.sf .t-body,.sf .t-h2,.sf .t-h3{color:var(--sf-fg)}.sf .t-hint,.sf .t-eyebrow,.sf .t-caption{color:var(--sf-muted)}

.site-header{position:sticky;top:0;z-index:10;padding-top:env(safe-area-inset-top,0px)}
.site-header .hw{max-width:none;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:22px;height:56px}
.site-header .logo{white-space:nowrap;text-decoration:none;color:var(--sf-fg)}
.site-header .logo .s{color:var(--sf-accent)}
.site-header nav.mn{display:flex;gap:2px}
.site-header nav.mn a{color:var(--sf-fg);text-decoration:none;padding:6px 12px;border-radius:var(--r);opacity:.65;transition:background .15s,opacity .15s;white-space:nowrap}
.site-header nav.mn a:hover,.site-header nav.mn a.on{background:var(--sf-hover);opacity:1}
.site-header .hgap{flex:1}
.site-header .dd{position:relative;display:inline-flex;align-items:center}
.site-header .dd-m{position:absolute;top:100%;left:0;display:none;flex-direction:column;min-width:12rem;background:var(--card);border-radius:var(--r);padding:4px;margin-top:4px;z-index:20}
.site-header .dd:hover .dd-m{display:flex}
.site-header .dd-m a{opacity:.8;color:var(--ink)}
.hicons{display:flex;align-items:center;gap:12px}   /* иерархия отступов: между блоками 12px > внутри блока 4px */
.ibtn{position:relative;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sf-fg);text-decoration:none;transition:background .15s}
.ibtn:hover{background:var(--sf-hover)}
.ibtn svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.dot[hidden]{display:none}
.dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;border:2px solid var(--sf-bg)}
.dot-r{background:var(--mandarina)}.dot-g{background:var(--neon)}.dot-v{background:var(--violet)}.site-header .dot-v{background:var(--neon-soft)}
.hpts{text-decoration:none;color:var(--sf-fg);display:inline-flex;align-items:center;gap:4px;background:var(--sf-hover);padding:6px 12px;border-radius:999px;white-space:nowrap}
.hpts .d{color:var(--sf-accent)}
.notice{background:var(--neon-soft);color:var(--neon-ink)}
.notice .hw{max-width:none;margin:0 auto;padding:7px 24px}
.sh-crumbs{background:var(--bg);border-bottom:1px solid var(--line)}
.sh-crumbs.z-chertogi{background:var(--p-violet-soft);border-color:transparent}.sh-crumbs.z-ai{background:var(--p-neon-soft);border-color:transparent}.sh-crumbs.z-tools{background:var(--p-rose-soft);border-color:transparent}   /* цвет зоны — как значки в шапке */
.sh-crumbs.z-ai{--zc:var(--p-neon-ink)}.sh-crumbs.z-chertogi{--zc:var(--p-violet-ink)}.sh-crumbs.z-tools{--zc:var(--p-rose-ink)}   /* текст — тёмная пара своей гаммы */
.sh-crumbs[class*=" z-"] a,.sh-crumbs[class*=" z-"] .sep,.sh-crumbs[class*=" z-"] .cur{color:var(--zc)}.sh-crumbs[class*=" z-"] .cur{font-weight:var(--fw-500)}.sh-crumbs[class*=" z-"] a:hover{text-decoration:underline}   /* один цвет на всю строку; текущая страница — начертанием */
.sh-crumbs .hw{max-width:none;margin:0 auto;padding:8px 24px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sh-crumbs a{color:var(--muted);text-decoration:none}.sh-crumbs a:hover{color:var(--ink)}
.sh-crumbs .sep{color:var(--faint)}.sh-crumbs .cur{color:var(--ink)}.sh-crumbs .hw .sep:first-child{display:none}
.acct{position:relative}
.acct-b{display:flex;align-items:center;gap:8px;background:none;border:none;padding:4px 6px 4px 4px;border-radius:999px;cursor:pointer;color:var(--sf-fg);font-family:inherit}
.acct-b:hover{background:var(--sf-hover)}
.acct-n{white-space:nowrap}
.acct-c{white-space:nowrap}
.acct-m{position:absolute;right:0;top:calc(100% + 6px);min-width:17rem;background:var(--card);border-radius:var(--r-lg);padding:6px;z-index:30;display:flex;flex-direction:column;color:var(--ink);--sf-fg:var(--sf-light-fg);--sf-muted:var(--sf-light-muted)}  /* светлая плашка: меню стоит на тёмной шапке .sf, без переопределения .sf .t-body красит текст в белый — был белый на белом */
.acct-m[hidden]{display:none}
.acct-i{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r);text-decoration:none;color:var(--ink)}
.acct-i:hover{background:var(--bg)}
.acct-i.cur{background:var(--g-select)}
.acct-i b{font-weight:var(--fw-500);display:block}
.acct-i small{display:block;color:var(--muted)}
.acct-i i{margin-left:auto;font-style:normal;color:var(--p-violet-ink)}
/* админская полоса — только у роли admin, плашка «Цветная 1» */
/* полоса под шапкой для админа: одна кнопка «Админка»; разделы — вертикально рядом с контентом (ниже) */
.admin-bar .hw{max-width:none;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:4px;height:44px}
.admin-bar a{text-decoration:none;padding:6px 11px;border-radius:999px;white-space:nowrap;opacity:.8;transition:background .15s,opacity .15s}
.admin-bar a:hover{background:var(--sf-hover);opacity:1}
.admin-bar a.on{background:var(--sf-btn-bg);color:var(--sf-btn-fg);opacity:1}
/* ——— админка: боковое меню внутри контентного блока (сетка меню | контент), без плашки ——— */
.admin-wrap{display:grid;grid-template-columns:210px 1fr;gap:24px;max-width:none;margin:0 auto;padding:0 24px}   /* та же ширина, что .hw шапки; резиновый до 1100 */
.admin-nav{position:sticky;top:72px;align-self:start;padding:34px 0;display:flex;flex-direction:column;gap:2px}
.admin-nav .an-t{padding:0 10px 10px}
.admin-nav a{text-decoration:none;padding:7px 10px;border-radius:var(--r);opacity:.7;transition:background .15s,opacity .15s}
.admin-nav a:hover{background:var(--soft);opacity:1}
.admin-nav a.on{background:var(--soft);opacity:1}
.admin-nav a.ar{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 8px;border-radius:var(--r);opacity:1;color:var(--c-page-tx)}   /* меню админки деревом. Текст — стиль t-nav в разметке; цвет — пары page и accent */
.admin-nav a.ar:hover{background:var(--c-card-bg)}.admin-nav a.ar.on{background:var(--c-accent-bg);color:var(--c-accent-tx)}.admin-nav a.ar.on .ci,.admin-nav a.ar.on .car{color:var(--c-accent-ic)}
.admin-nav .open>a.ar .ci{color:var(--c-tag-1-ic)}
.admin-nav .car,.admp-n .car{width:12px;height:12px;flex:none;color:var(--c-card-secondary-ic);transition:transform .2s;display:grid;place-items:center}.admin-nav .car svg,.admp-n .car svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.admin-nav .open>a .car{transform:rotate(90deg)}
.admin-nav .ci,.admp-n .ci{width:17px;height:17px;flex:none;display:grid;place-items:center;color:var(--c-page-ic)}.admin-nav .ci svg,.admp-n .ci svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.admin-nav .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-nav .an-kids{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease}.admin-nav .open>.an-kids{grid-template-rows:1fr}.admin-nav .an-kids>div{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px}
.admin-nav a.l2{padding-left:28px}.admin-nav a.l3{padding-left:48px}   /* v288: группа → страница → ветка (Дизайн, Разработка) */
.admin-nav .an-g .an-g{display:contents}   /* вложенная группа не ломает сетку раскрытия */
.admin-nav .an-c{display:inline-block;min-width:18px;padding:0 5px;border-radius:999px;background:var(--mandarina-soft);color:var(--mandarina-ink);font-size:11px;text-align:center;margin-left:4px}
.admin-main>.adm{padding-left:0;padding-right:0;max-width:none}
@media(max-width:800px){.admin-wrap{grid-template-columns:1fr}.admin-nav{position:static;flex-direction:row;flex-wrap:wrap;padding:14px 0 0}.admin-nav .an-t{display:none}.admin-main>.adm{padding-left:0}}
.acct-sep{height:1px;background:var(--line);margin:4px 2px}
.hav{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--on-dark);display:grid;place-items:center;font-size:var(--fs-12);font-weight:var(--fw-500);flex-shrink:0;text-decoration:none;overflow:hidden}
.hav.img{background:var(--soft)}.hav img{width:100%;height:100%;object-fit:cover;display:block}
.sf .hav{background:var(--sf-accent);color:var(--sf-bg)}.site-header .hav{color:var(--neon-ink)}
.hav.sm{width:28px;height:28px;font-size:var(--fs-12)}
@media(max-width:640px){.acct-n{display:none}}
@media(max-width:900px){.site-header nav.mn{display:none}}
/* ——— значки разделов в шапке (выбирает пользователь) и меню «⋯» — assets/hmenu.js ——— */
.hpin{display:flex;align-items:center;gap:2px;padding-right:12px;border-right:1px solid var(--sf-line);min-width:0}
.hpin[hidden]{display:none}
.ibtn .tt{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--card);color:var(--ink);font-size:var(--fs-12);padding:5px 9px;border-radius:var(--r);white-space:nowrap;box-shadow:0 6px 18px rgba(27,17,48,.18);pointer-events:none;opacity:0;transition:opacity .12s;z-index:40}
.ibtn:hover .tt{opacity:1}
.ibtn.on{background:var(--sf-hover)}
/* список подразделов у значков Чертогов, AI, Инструментов в шапке */
.hpg{position:relative;display:flex}
.hpd{position:absolute;left:50%;top:100%;transform:translateX(-50%);padding-top:8px;min-width:12.5rem;z-index:45;display:none}
.hpd::before{content:"";position:absolute;inset:8px 0 0;background:var(--card);border-radius:var(--r-lg);box-shadow:0 14px 40px rgba(27,17,48,.22)}
.hpg:hover .hpd,.hpg.open .hpd{display:block}.hpg.shut .hpd{display:none}
.hpg:hover>.ibtn .tt,.hpg.open>.ibtn .tt{opacity:0}
.hpd-i{position:relative;display:flex;align-items:center;gap:10px;margin:0 6px;padding:7px 10px;border-radius:var(--r);color:var(--ink);text-decoration:none;font-size:var(--fs-14);white-space:nowrap}
.hpd-i:first-child{margin-top:6px}.hpd-i:last-child{margin-bottom:6px}
.hpg:hover .hpd.cols,.hpg.open .hpd.cols{display:flex}.hpg.shut .hpd.cols{display:none}.hpd.cols{gap:4px}.hpc{position:relative;min-width:12rem;padding-bottom:6px}
.hpd-h{position:relative;margin:12px 16px 4px;font-size:var(--fs-12);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.hpc .hpd-i:first-child{margin-top:6px}
.hm-h{padding:10px 12px 2px 44px;font-size:var(--fs-12);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.hpd-i:hover{background:var(--neon-soft)}.hpd-i.cur{background:var(--g-select)}
.hpd-i svg{width:18px;height:18px;flex:none;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.hpd-i svg .spk,.hpd-i svg .f{fill:currentColor;stroke:none}
.hpd-i.soon{color:var(--faint);cursor:default}.hpd-i.soon:hover{background:none}.hpd-i i{margin-left:auto;padding-left:14px;font-style:normal;font-size:var(--fs-12);color:var(--faint)}
.ibtn svg .spk,.ibtn svg .f,.hm svg .spk,.hm svg .f{fill:currentColor;stroke:none}
.site-header .ibtn.gc-chertogi,.hm-pv .it.gc-chertogi svg{color:var(--p-violet);stroke:var(--p-violet)}
.site-header .ibtn.gc-ai,.hm-pv .it.gc-ai svg{color:var(--p-neon-soft);stroke:var(--p-neon-soft)}
.site-header .ibtn.gc-tools,.hm-pv .it.gc-tools svg{color:var(--p-rose);stroke:var(--p-rose)}
.hmore{position:relative}
.hmore .hm-b{border:0;background:transparent;font:inherit;padding:0}.hmore .hm-b.act{background:var(--sf-hover)}.hmore .hm-b.act .tt{display:none}
.hmore .hm-b .tt{left:auto;right:0;transform:none}   /* крайний значок у правого края — подсказка не вылезает за окно */
.hmore .hm-b svg{stroke-width:0;fill:currentColor}
.hm{--sf-fg:var(--sf-light-fg);--sf-muted:var(--sf-light-muted);position:absolute;right:0;top:calc(100% + 8px);width:22rem;max-height:calc(100vh - 90px);overflow:auto;background:var(--card);color:var(--ink);border-radius:var(--r-lg);box-shadow:0 14px 40px rgba(27,17,48,.22);padding:6px 6px 8px;z-index:35;text-align:left}
.hm[hidden]{display:none}
.hm-hd{display:flex;align-items:center;gap:8px;padding:8px 10px 2px}.hm-hd .t-hint{margin-left:auto}
.hm .info{width:15px;height:15px;border-radius:50%;border:1px solid var(--line-strong);color:var(--muted);font:italic 10px/13px Georgia,serif;text-align:center;cursor:pointer;position:relative;flex:none;display:inline-block}
.hm .info .tip{display:none;position:absolute;left:-8px;right:auto;top:calc(100% + 8px);width:14rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 10px 30px rgba(27,17,48,.14);padding:10px 12px;color:var(--ink);font:400 var(--fs-12)/1.45 Inter,sans-serif;text-align:left;z-index:9}
.hm .info:hover .tip,.hm .info:focus .tip{display:block}
.hm-cap{display:flex;align-items:center;gap:6px;padding:4px 10px 6px}
.hm-pv{margin:0 4px;background:var(--sf-dark-bg);border-radius:var(--r-lg);padding:6px;display:flex;align-items:center;gap:2px}
.hm-pv .ar{flex:none;width:24px;height:38px;border:0;background:none;color:#fff;cursor:pointer;border-radius:var(--r);font-size:16px;opacity:.85}
.hm-pv .ar:hover{background:rgba(255,255,255,.12)}.hm-pv .ar[disabled]{opacity:.2;cursor:default;background:none}
.hm-pv .sc{flex:1;display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;min-height:38px}
.hm-pv .sc::-webkit-scrollbar{display:none}
.hm-pv .it{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);cursor:grab;user-select:none}
.hm-pv .it:hover{background:rgba(255,255,255,.16)}
.hm-pv .it svg{width:19px;height:19px;stroke:#fff;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.hm-pv .it.drag{opacity:.35}.hm-pv .it.over{box-shadow:-3px 0 0 0 var(--neon-soft)}
.hm-pv .empty{font-size:var(--fs-12);color:rgba(255,255,255,.55);padding:10px 6px}
.hm-trk{margin:8px 14px 2px;height:6px;border-radius:3px;background:var(--p-sub);position:relative;cursor:pointer}
.hm-trk[hidden]{display:none}
.hm-trk .th{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--p-gray-400);cursor:grab}
.hm-trk .th:hover,.hm-trk .th.on{background:var(--p-gray-600)}
.hm-rm{margin:8px 4px 2px;border:1.5px dashed var(--p-gray-400);border-radius:var(--r-lg);padding:12px;display:none;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:var(--fs-14)}
.hm-rm svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hm.dragging .hm-rm{display:flex}
.hm-rm.over{border-color:var(--mandarina);color:var(--mandarina-ink);background:var(--mandarina-soft)}
.hm-list{margin-top:6px}
.hm-g{border-top:1px solid var(--line)}.hm-g:first-child{border-top:0}
.hm-r{display:grid;grid-template-columns:1fr auto 44px;align-items:center;min-height:38px;border-radius:var(--r)}
.hm-r:hover{background:var(--neon-soft)}
.hm-r.cur{background:var(--g-select)}.hm-r.cur:hover{background:var(--neon-soft)}
.hm-l{display:flex;align-items:center;gap:10px;padding:0 0 0 10px;align-self:stretch;text-decoration:none;color:var(--ink);font-size:var(--fs-14)}
.hm-l.soon{color:var(--muted);cursor:default}
.hm-r.l2 .hm-l{padding-left:30px}.hm-r.l1 .nm{font-weight:var(--fw-500)}
.hm-l svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round;color:var(--muted);flex:none}
.hm-l .sn{font-size:var(--fs-12);color:var(--faint);margin-left:auto;padding-right:6px}
.hm-r .car{color:var(--faint);font-size:12px;transition:transform .15s;width:20px;text-align:center;align-self:stretch;display:grid;place-items:center}
.hm-r[data-tog]{cursor:pointer}
.hm-g.open .hm-r.l1 .car{transform:rotate(90deg)}
.hm-g .kids{display:none;padding-bottom:4px}.hm-g.open .kids{display:block}
.hm .pin{align-self:stretch;display:grid;place-items:center;cursor:pointer;border-radius:var(--r);color:transparent;font-size:12px}   /* зона нажатия — вся правая колонка строки */
.hm .pin::before{content:"✓";width:20px;height:20px;border-radius:5px;border:1.5px solid var(--p-gray-400);display:grid;place-items:center;background:var(--card)}
.hm .pin:hover::before{border-color:var(--ink)}
.hm .pin.on::before{background:var(--ink);border-color:var(--ink);color:#fff}
.hm-ft{display:flex;align-items:center;gap:8px;padding:8px 10px 2px;border-top:1px solid var(--line);margin-top:4px}.hm-ft .t-hint{flex:1}
.hm-ft button{font:inherit;font-size:var(--fs-12);border:0;background:none;color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line)}
@media(max-width:520px){.site-header .hw{padding:10px 16px;gap:10px}.site-header .logo span.full{display:none}}
.page{max-width:var(--maxw);margin:0 auto;padding:clamp(.75rem,2.5vw,2rem)}
@media(min-width:1900px){.page{max-width:var(--maxw-wide)}}

/* подшапка: табы разделов сервиса */
.subnav{display:flex;gap:.3rem;border-bottom:1px solid var(--line);padding:0 clamp(.75rem,2.5vw,2rem);overflow-x:auto;scrollbar-width:none}
.subnav::-webkit-scrollbar{display:none}
.subnav a{font-size:var(--nav-fs);font-weight:var(--nav-fw);padding:.75rem .6rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s}
.subnav a:hover{color:var(--ink)}
.subnav a.on{color:var(--ink);border-bottom-color:var(--ink)}

/* ——— админка: боковое меню ——— */
.adm{max-width:none;margin:0 auto;padding:34px 24px 60px}
.adm h1{margin-bottom:6px;font-size:var(--h2-fs);font-weight:var(--h2-fw);line-height:var(--h2-lh);letter-spacing:var(--h2-ls);color:var(--h2-c)}
.adm .lead{max-width:70ch;margin-bottom:22px;font-size:var(--body-fs);line-height:var(--body-lh);color:var(--muted)}
.adm .lead code,.adm code{background:var(--soft);padding:1px 5px;border-radius:4px}
.adm h2{margin:30px 0 12px;font-size:var(--h3-fs);font-weight:var(--h3-fw);line-height:var(--h3-lh);color:var(--h3-c)}
.adm .msg{color:var(--neon-ink);margin-bottom:12px;background:var(--neon-soft);padding:8px 12px;border-radius:var(--r)}
.adm .msg.err{color:var(--danger);background:var(--mandarina-soft)}
.adm .hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.adm .hd .lead{margin:0}
/* таблица-сетка */
.tbl{background:var(--card);border-radius:var(--r-lg);overflow:hidden}
.tr{display:grid;gap:14px;align-items:center;padding:12px 16px;border-top:1px solid var(--line);transition:background .15s}
.tr:first-child{border-top:none}
.tr.th{padding:10px 16px;background:var(--bg)}
.tr:not(.th):hover{background:var(--bg)}
.tr .nm b{display:block}.tr .nm small{display:block}
.chip{display:inline-flex;align-items:center;font-size:var(--chip-fs-sm);line-height:1;padding:var(--chip-pad-sm);border-radius:999px;background:var(--soft);color:var(--muted)}
/* единый чип: .c — выбор/действие, .c.on — выбран, .c.own — своё, .c.sm — маленький; метка — .chip */
.c{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none;font:inherit;font-size:var(--chip-fs);font-weight:var(--chip-fw);line-height:1;padding:var(--chip-pad);border-radius:999px;border:1px solid var(--chip-line);background:var(--chip-bg);color:var(--chip-fg);cursor:pointer}
.c:hover{border-color:var(--ink)}.c.on{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}.c.own{background:var(--chip-alt-bg);color:var(--chip-alt-fg);border-color:var(--chip-alt-bg)}.c.own:hover{border-color:var(--chip-alt-fg)}
.c.sm{font-size:var(--chip-fs-sm);padding:var(--chip-pad-sm)}
.chip.admin{background:var(--violet-soft);color:var(--p-violet-ink)}
.chip.user{background:var(--neon-soft);color:var(--neon-ink)}
.av2{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--on-dark);display:inline-flex;align-items:center;justify-content:center;flex:none}
.more{width:32px;height:32px;border:none;background:none;border-radius:50%;cursor:pointer;color:var(--muted);font-size:18px;line-height:1;font-family:inherit;justify-self:end}
.more:hover{background:var(--soft);color:var(--ink)}
.more.on{background:var(--ink);color:var(--on-dark)}
/* раскрывающаяся карточка под строкой */
.det{grid-column:1/-1;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.det.open{grid-template-rows:1fr}
.det>div{overflow:hidden}
.det .in{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;padding:6px 0 14px}
.fld{background:var(--bg);border-radius:var(--r);padding:12px 14px}
.fld label{display:block;margin-bottom:6px}
.fld .row{display:flex;gap:6px}
.fld .hint,.hint{margin-top:6px}
.inp{font-family:inherit;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--ink);width:100%;min-width:0}
.inp:focus{outline:none;border-color:var(--ink)}
.btn.sm{padding:.35rem .6rem}
.btn.danger{color:var(--danger);border-color:transparent;background:none}
.btn.danger:hover{border-color:var(--danger)}
.card{background:var(--card);border-radius:var(--r-lg);padding:18px 20px}
/* форма «подпись | поле» (старые страницы админки) */
.frm{display:grid;grid-template-columns:minmax(0,22rem) 1fr;gap:10px 16px;align-items:center;max-width:60rem}
.frm label{font-size:var(--label-fs);font-weight:var(--label-fw);line-height:var(--label-lh);color:var(--label-c)}
.frm label small,.frm label code{display:block;font-family:var(--ff-primary);font-size:var(--hint-fs);font-weight:var(--hint-fw);letter-spacing:var(--hint-ls);color:var(--hint-c);background:none;padding:0;margin-top:2px}
/* форма-карточка: поля в ряд (новые страницы) */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 14px;align-items:start}
.fgrid label{display:block;margin-bottom:5px}
.fgrid .act{grid-column:1/-1}
/* старые таблицы админки (table.t) — в тот же вид, пока не переведены на .tbl */
.adm table.t{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r-lg);overflow:hidden}
.adm table.t th{font-size:var(--caption-fs);font-weight:var(--caption-fw);color:var(--caption-c);text-align:left;padding:10px 16px;background:var(--bg)}
.adm table.t td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:middle}
.adm .sub{font-size:var(--hint-fs);color:var(--hint-c);letter-spacing:var(--hint-ls)}
.adm .actions{margin-top:18px}

/* ——— мобильные ——— */
@media(max-width:640px){
  .site-header .hw{gap:8px}
  .hicons{gap:0}
  .hpts{padding:5px 9px}
  .sh-crumbs .hw{overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .notice .hw{padding:7px 16px}
  .page,.adm,.lk,.ml{padding-left:16px!important;padding-right:16px!important}
  .frm,.fgrid{grid-template-columns:1fr;gap:4px 0}
  .frm label{margin-top:10px}
  .adm table.t,table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tiles{grid-template-columns:1fr 1fr}
  .modal{padding:1rem}
  .drawer{width:min(90vw,20rem)}
}

/* приглашения к общему контенту */
#invites{max-width:var(--maxw);margin:0 auto;padding:12px clamp(.75rem,2.5vw,2rem) 0}
.lk #invites{padding:0;margin-bottom:10px}
#invites[hidden]{display:none}
.inv-h{font-size:var(--caption-fs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.inv-h b{font-weight:var(--fw-500);color:var(--p-violet-ink)}
.inv{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--violet-soft);color:var(--p-violet-ink);border-radius:var(--r);padding:8px 12px;margin-bottom:6px;font-size:var(--fs-14)}
.inv.decl{background:var(--sub);color:var(--muted)}
.inv .who{font-weight:var(--fw-500)}
.inv .rt,.inv .st{font-size:var(--fs-12);opacity:.8}
.inv .acts{margin-left:auto;display:flex;gap:6px}
.inv button{font-family:inherit;font-size:var(--fs-12);font-weight:var(--fw-500);text-transform:uppercase;letter-spacing:.06em;border:none;border-radius:var(--r);padding:5px 10px;cursor:pointer;background:var(--ink);color:var(--on-dark)}
.inv button.g{background:transparent;color:inherit;border:1px solid currentColor}

/* ——— плашка запросов крумбсов в полосе админа ——— */
.admin-bar .req{margin-left:auto;display:flex;align-items:center;gap:10px;position:relative;font-size:var(--fs-12);white-space:nowrap}
.admin-bar .req .av{width:22px;height:22px;border-radius:50%;background:var(--violet);color:var(--ink);display:inline-grid;place-items:center;font-size:11px;flex:none}
.admin-bar .req .who{display:inline-flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis}
.admin-bar .req .sum{font-weight:var(--fw-500)}
.admin-bar .req .ok,.admin-bar .req .no{font:inherit;font-size:var(--fs-12);padding:4px 10px;border-radius:999px;border:1px solid var(--violet);background:var(--violet);color:var(--ink);cursor:pointer}
.admin-bar .req .no{background:transparent;color:var(--p-violet-ink)}
.admin-bar .req .ok:disabled,.admin-bar .req .no:disabled{opacity:.5;cursor:default}
.admin-bar .req .more{cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px}.admin-bar .req .more:hover{background:var(--sf-hover)}
.admin-bar .req .tot{opacity:.75}.admin-bar .req .pool{font-size:var(--fs-12);white-space:nowrap}.admin-bar .req .pool.over{color:var(--mandarina-ink)}.admin-bar .req .pool .m{opacity:.7}.admin-bar .req .ok.over{outline:1px solid var(--mandarina-ink)}
.admin-bar .req .rdd{position:absolute;right:0;top:calc(100% + 8px);width:28rem;max-width:calc(100vw - 2rem);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 10px 30px rgba(27,17,48,.14);padding:6px;z-index:30;color:var(--ink);white-space:normal}
.admin-bar .req .rdd[hidden]{display:none}
.admin-bar .req .rdd .dr{display:grid;grid-template-columns:22px 1fr auto auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r);font-size:var(--fs-14)}
.admin-bar .req .rdd .dr:hover{background:var(--bg)}
.admin-bar .req .rdd .dr .av{background:var(--violet-soft);color:var(--p-violet-ink)}
.admin-bar .req .rdd .dr .m{font-size:var(--fs-12);color:var(--muted)}
.admin-bar .req .rdd .ft{display:flex;justify-content:space-between;padding:8px 10px 4px;border-top:1px solid var(--line);margin-top:4px;font-size:var(--fs-12);color:var(--muted)}
@media(max-width:900px){.admin-bar .req .who span.t{display:none}.admin-bar .req .tot{display:none}}

/* ручка ширины боковой панели (assets/resize.js) */
.rsz{position:absolute;left:-5px;top:0;bottom:0;width:10px;cursor:col-resize;z-index:6;touch-action:none}
.rsz::after{content:"";position:absolute;left:4px;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}
.rsz:hover::after,.rsz.on::after{background:var(--halo-line);box-shadow:0 0 0 2px var(--neon-soft)}
html.rsz-on,html.rsz-on *{cursor:col-resize!important;user-select:none!important;transition:none!important}
/* админ-ссылки словами в чёрной шапке */
.site-header .hadm{display:flex;align-items:center;gap:2px}
.site-header .hadm a{color:var(--sf-muted,rgba(255,255,255,.7));text-decoration:none;font-size:13px;padding:6px 10px;border-radius:999px;white-space:nowrap}
.site-header .hadm a:hover{background:var(--sf-hover,rgba(255,255,255,.08));color:var(--on-dark,#fff)}
@media(max-width:720px){.site-header .hadm{display:none}}
.hupd-ov{position:fixed;inset:0;background:rgba(27,17,40,.45);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:999;padding:16px}
.hupd{position:relative;display:flex;gap:16px;align-items:flex-start;background:var(--card);color:var(--ink);border-radius:18px;padding:22px 24px;width:min(460px,100%);box-shadow:0 24px 60px rgba(27,17,40,.28);overflow:hidden}
.hupd .ico{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:var(--fw-500)}
.hupd.ok .ico{background:var(--neon-soft);color:var(--neon-ink)}.hupd.err .ico{background:#fde7e2;color:var(--coral)}
.hupd.run .ico{background:var(--soft)}.hupd.run .ico i{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--ink);animation:hupdspin .8s linear infinite}
.hupd .bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.hupd b{font-weight:var(--fw-500);font-size:17px;line-height:1.3}.hupd .bd>span{color:var(--muted);font-size:14px;line-height:1.5}
.hupd .bar{height:4px;border-radius:999px;background:var(--soft);overflow:hidden;margin-top:6px}.hupd .bar i{display:block;height:100%;width:40%;border-radius:999px;background:var(--ink);animation:hupdbar 1.4s ease-in-out infinite}
.hupd .ac{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
.hupd .hb{height:34px;display:inline-flex;align-items:center;padding:0 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13px;text-decoration:none;cursor:pointer;white-space:nowrap}.hupd .hb:hover{background:var(--neon-soft)}
.hupd .hb.dark{background:var(--ink);color:var(--on-dark);border-color:var(--ink)}.hupd .hb.dark:hover{opacity:.9;background:var(--ink)}
@keyframes hupdspin{to{transform:rotate(360deg)}}@keyframes hupdbar{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
/* флажок «в закладки» и уведомление с кнопками */
.site-header .hbm{width:34px;height:34px;border-radius:50%;border:0;background:none;color:var(--sf-muted,rgba(255,255,255,.75));display:grid;place-items:center;cursor:pointer}.site-header .hbm:hover{background:var(--sf-hover,rgba(255,255,255,.08));color:#fff}
.bc-note{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:120;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:min(560px,calc(100vw - 32px));background:var(--card);color:var(--ink);border:1px solid var(--halo-line);box-shadow:var(--halo),0 12px 30px rgba(27,17,40,.15);border-radius:14px;padding:10px 40px 10px 16px;font-size:14px;line-height:1.45}
.bc-note .a{display:flex;gap:6px;flex-wrap:wrap}.bc-note .a a,.bc-note .a button{height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:12px;text-decoration:none;cursor:pointer;white-space:nowrap}.bc-note .a a:hover,.bc-note .a button:hover{background:var(--neon-soft)}
.bc-note .x{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:50%;background:none;color:var(--faint);font-size:17px;cursor:pointer}.bc-note .x:hover{background:var(--soft);color:var(--ink)}
/* хлебные крошки — в чёрной шапке после логотипа */
.site-header .hcr{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;white-space:nowrap;margin-left:-8px}
.hcr>a{flex:none}
.site-header .hcr .sep{color:var(--sf-muted,rgba(255,255,255,.45));opacity:.6}
.site-header .hcr a,.site-header .hcr .cur{color:var(--sf-muted,rgba(255,255,255,.7));text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.site-header .hcr a:hover{color:#fff}.site-header .hcr .cur{color:var(--on-dark,#fff)}
@media(max-width:720px){.site-header nav.hcr{display:none}}   /* v352: nav — чтобы не прятать кнопку крумбсов .hpts.hcr старых страниц */
:root{--ic-helper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0C8.6 4.6 11.4 7.4 16 8 11.4 8.6 8.6 11.4 8 16 7.4 11.4 4.6 8.6 0 8 4.6 7.4 7.4 4.6 8 0Z'/%3E%3C/svg%3E")}   /* ИКОНКА ПОМОЩНИКА — заменить здесь, везде обновится */
.hpic{display:inline-block;width:1em;height:1em;vertical-align:-.12em;background:currentColor;-webkit-mask:var(--ic-helper) center/contain no-repeat;mask:var(--ic-helper) center/contain no-repeat}
.hadm .hver{white-space:nowrap;font-size:12px;color:var(--sf-muted,rgba(255,255,255,.7));opacity:.7;padding:0 6px 0 2px;font-variant-numeric:tabular-nums;cursor:default}   /* номер установленной версии — сразу видно, встал ли архив */
:root{--ic-logo:var(--ic-helper)}   /* ЗНАК В ЛОГОТИПЕ — по умолчанию та же иконка, что у Брэда; свой знак — заменить здесь */
.lgic{display:inline-block;width:.9em;height:.9em;vertical-align:-.08em;background:currentColor;-webkit-mask:var(--ic-logo) center/contain no-repeat;mask:var(--ic-logo) center/contain no-repeat}

/* админка попапом (assets/admpop.js) */
.admp{position:fixed;inset:0;z-index:300;background:rgba(27,17,48,.42);display:grid;place-items:center;padding:24px}.admp[hidden]{display:none}
html.admp-on{overflow:hidden}
.admp-w{width:min(1180px,100%);height:min(860px,100%);background:var(--card);border-radius:18px;display:grid;grid-template-columns:250px 1fr;overflow:hidden}
/* v284: меню окна = класс admin-nav (те же правила, что у бокового меню) + поправки под окно: фон, прокрутка, не липкое */
.admp-n.admin-nav{position:static;align-self:stretch;background:var(--c-card-bg);padding:20px 10px;overflow-y:auto;border-right:1px solid var(--c-card-ln)}   /* v289: окно светлое целиком — и под деревом */
.admp-n.admin-nav a.ar:hover{background:var(--c-page-bg)}
.admp-t{font-size:17px;font-weight:500;color:var(--ink);padding:4px 12px 14px}
.admp-m{position:relative;display:flex;flex-direction:column;min-width:0}
.admp-h{position:absolute;top:12px;right:14px;z-index:2;display:flex;gap:4px}
.admp-ht{display:none}
.admp-full,.admp-x{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:10px;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;text-decoration:none}
.admp-x{font-size:24px}.admp-full:hover,.admp-x:hover{background:var(--bg);color:var(--ink)}
.admp-f{flex:1;width:100%;border:0;display:block;background:var(--card);opacity:0;transition:opacity var(--k-base,220ms) var(--k-ease,ease)}.admp-f.in{opacity:1}
.admp-m{position:relative}
.admp-ld{position:absolute;left:0;right:0;top:54px;bottom:0;z-index:2;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--card);pointer-events:none}
.admp.ld .admp-ld{display:flex}
.admp-lb{width:min(320px,60%);height:6px;border-radius:999px;background:var(--line);overflow:hidden}   /* полоса ожидания: стили здесь, чтобы окно не зависело от kit.css — его нет в личном кабинете */
.admp-lb>i{display:block;width:45%;height:100%;border-radius:999px;background:var(--g-progress-img,var(--accent));animation:admp-run 1.2s ease-in-out infinite}
@keyframes admp-run{0%{transform:translateX(-35%)}100%{transform:translateX(135%)}}
.admp-lt{font-size:var(--fs-12);color:var(--muted)}
@media(prefers-reduced-motion:reduce){.admp-lb>i{animation:none;width:100%;opacity:.5}}   /* v286: раздел проявляется после загрузки, а не вспыхивает */
.admp:not([hidden]){animation:admp-in var(--k-base,220ms) var(--k-ease,ease) both}.admp:not([hidden]) .admp-w{animation:admp-up var(--k-base,220ms) var(--k-ease,ease) both}
@keyframes admp-in{from{opacity:0}to{opacity:1}}@keyframes admp-up{from{transform:translateY(8px) scale(.99)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.admp:not([hidden]),.admp:not([hidden]) .admp-w{animation:none}.admp-f{transition:none}}
.admp-nb{display:none}
.admp.solo .admp-w{grid-template-columns:1fr}   /* окно без списка разделов (Хранилище) */
/* ——— Размеры окон (дизайн-система). large-popup — страница во фрейме: Хранилище, Личный кабинет, Админка, инструкции — почти вся высота, ширина ~62% экрана (не уже 60rem, не шире 100rem). medium-popup — 1180×860. Новые размеры — сюда же ——— */
.admp.large-popup{padding:var(--sp-item,16px)}   /* запасное значение: оболочка не грузит kit.css */
.admp.large-popup .admp-w{width:clamp(min(100%,60rem),62vw,100rem);height:100%}
.admp.medium-popup .admp-w{width:min(1180px,100%);height:min(860px,100%)}
@media (max-width:760px){.admp.large-popup{padding:0}.admp.large-popup .admp-w{width:100%;height:100%}}
.site-header .hadm a.hupb{background:var(--violet);color:var(--p-violet-ink);margin-right:4px}.site-header .hadm a.hupb:hover{background:var(--violet);color:var(--p-violet-ink);filter:brightness(.93)}   /* «Обновить» — фиолетовая кнопка, первой */
.site-header .hadm a.hupb b{font-weight:500}.site-header .hadm a.hupb{font-weight:300}   /* версия (500) жирнее «Обновить» (300); размер — как у «Админки» (13px из .hadm a) */
.admp-n a[role=button]{cursor:pointer}   /* разделы окна кабинета — без href (assets/lkpop.js) */
.sec-warn{margin-bottom:var(--sp-item,16px)}   /* v280: предупреждение безопасности над страницей админки */
/* v289: тема окна (body.pop — страница во фрейме окна): фон светлый, плашки серые, поля — белые, чтобы не сливались с плашкой. Решение Александры 17.10.2026 */
body.pop{--bg:var(--p-white);--card:var(--p-sub);--soft:var(--p-bg);--c-page-bg:var(--p-white);--c-card-bg:var(--p-sub)}
body.pop .k-inp,body.pop .inp,body.pop input:not([type=checkbox]):not([type=radio]):not([type=range]),body.pop select,body.pop textarea{background:var(--p-white)}
body.pop .k-chip,body.pop .chip,body.pop code{background:var(--p-bg)}

/* ——— Крумбсы из шапки (v302): окошко «Запросить» по клику на баланс ——— */
.hpts.hcr{font:inherit;border:0;cursor:pointer}
.crpop{position:fixed;inset:0;z-index:320;background:rgba(27,17,48,.42);display:grid;place-items:start center;padding:72px 16px 16px}
.crpop[hidden]{display:none}
.crp-w{width:min(380px,100%);background:var(--card);border-radius:var(--r-lg);overflow:hidden}
.crp-h{display:flex;align-items:center;justify-content:space-between;padding:14px 10px 14px 18px;border-bottom:1px solid var(--line)}
.crp-b{font-size:var(--fs-20);font-weight:var(--fw-500);color:var(--ink);display:flex;align-items:center;gap:6px}
.crp-b .d{color:var(--muted);font-size:var(--fs-14)}
.crp-x{width:34px;height:34px;border:0;border-radius:10px;background:none;color:var(--muted);font-size:24px;line-height:1;cursor:pointer}
.crp-x:hover{background:var(--bg);color:var(--ink)}
.crp-m{padding:16px 18px 18px}
.crp-t{font-size:var(--fs-14);font-weight:var(--fw-500);color:var(--ink);margin:0 0 10px}
.crp-p{display:flex;flex-wrap:wrap;gap:8px}
.crp-p button{font:inherit;font-size:var(--fs-14);display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}
.crp-p button small{color:var(--muted);font-size:var(--fs-12)}
.crp-p button:hover{border-color:var(--ink)}
.crp-p button:disabled{opacity:.5;cursor:default}
.crp-p button.sub{width:100%;justify-content:center}
.crp-n{font-size:var(--fs-12);color:var(--muted);line-height:1.45;margin:12px 0 0}
.crp-ld{display:grid;place-items:center;min-height:64px}
.crp-ld .admp-lb{width:60%}

/* v352: мобильное меню (≤640px). В шапке остаются: логотип-знак, крумбсы, аккаунт и бургер. Бургер — тот же список разделов (.hm), но листом во всю ширину;
   крошки, флажок закладок, закреплённые значки и админ-ссылки на телефоне скрыты (Админка и ЛК — в меню аккаунта) */
.hm-b .i-burger{display:none;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round}
@media(max-width:640px){
  .site-header .hw{padding:0 12px;gap:8px;height:52px}
  .site-header .logo .full,.site-header nav.hcr,.site-header .hadm,.site-header .hbm,.site-header .hpin{display:none}
  .site-header .logo{font-size:22px}
  .hicons{gap:6px}
  .hpts{padding:5px 10px}
  .acct-b{padding:4px}.acct-c{display:none}
  .hm-b>svg:first-child{display:none}.hmore .hm-b svg.i-burger{display:block;stroke-width:1.8;fill:none}
  .hmore{position:static}
  .hm{position:fixed;left:0;right:0;top:calc(52px + env(safe-area-inset-top,0px));width:auto;max-height:calc(100vh - 52px - env(safe-area-inset-top,0px));border-radius:0 0 var(--r-lg) var(--r-lg);padding:8px 10px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 20px 40px rgba(27,17,48,.3)}
  .hm .hm-r{min-height:44px}.hm .pin{min-width:40px}
  .acct{position:static}
  .acct-m{position:fixed;left:0;right:0;top:calc(52px + env(safe-area-inset-top,0px));min-width:0;border-radius:0 0 var(--r-lg) var(--r-lg);max-height:calc(100vh - 52px);overflow:auto}
  .acct-i{min-height:44px}
  .notice .hw,.admin-bar .hw{padding-left:12px;padding-right:12px}
}
.acct-upd small{display:inline;margin-left:6px}

/* v359: окна Админки и Личного кабинета на телефоне — во весь экран: сверху строка с кнопкой «Разделы», названием раздела, ↗ и ×; список разделов открывается кнопкой поверх страницы;
   страница во фрейме прокручивается внутри окна (на iOS фрейм растягивается по содержимому — прокручивает контейнер) */
@media (max-width:760px){
  .admp,.admp.large-popup{padding:0}
  .admp-w,.admp.large-popup .admp-w{width:100%;height:100%;border-radius:0;grid-template-columns:1fr;grid-template-rows:1fr;position:relative;padding-top:env(safe-area-inset-top,0px)}
  .admp-n,.admp-n.admin-nav{display:none;position:absolute;left:0;right:0;top:calc(52px + env(safe-area-inset-top,0px));bottom:0;z-index:6;overflow-y:auto;padding:10px 12px calc(16px + env(safe-area-inset-bottom,0px));border-right:0;border-top:1px solid var(--c-card-ln,var(--line))}
  .admp.nav .admp-n{display:block}
  .admp-t{display:none}
  .admp-n a{min-height:44px}
  .admp-m{display:flex;flex-direction:column;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
  .admp-h{position:sticky;top:0;left:0;right:auto;z-index:4;flex:none;display:flex;align-items:center;gap:4px;height:52px;padding:0 8px 0 10px;background:var(--card);border-bottom:1px solid var(--c-card-ln,var(--line))}
  .admp-nb{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:none;color:var(--ink);cursor:pointer}.admp-nb svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round}
  .admp.nav .admp-nb{background:var(--bg)}
  .admp-ht{display:block;flex:1;min-width:0;font-size:15px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .admp-f{flex:1;min-height:calc(100% - 52px)}
  .admp-ld{top:52px}
}
