/* ============================================================
   site-chrome.css — СГЕНЕРИРОВАН backend/tools/site_chrome.py css. РУКАМИ НЕ ПРАВИТЬ.
   Шапка приложения .pp-nav (+шторка, колокольчик) и нижняя панель .bs-tabbar для
   страниц БЕЗ pop.css (блог, вики, инструменты, for-makers, оферта, лицензии, 404,
   принтеры). Источник истины — frontend/pop.css: правишь вид шапки там, затем
   пересобираешь этот файл. Линкуется ПОСЛЕ tokens.css (переменные) и после CSS
   страницы. На pop.css-страницах НЕ подключать — там эти правила уже есть.
   ============================================================ */
[hidden]{ display:none !important; }
.pp-nav{ position:sticky; top:0; z-index:50; height:56px; display:flex; align-items:center; justify-content:space-between; background:rgba(255,253,247,.8); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--line); padding:0 16px; }
@media (display-mode: standalone){
  .pp-nav{ height:calc(56px + env(safe-area-inset-top,0px)); padding-top:env(safe-area-inset-top,0px); padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); }
}
.pp-brand{ display:flex; align-items:center; gap:9px; text-decoration:none; }
.pp-logo{ width:34px; height:34px; border-radius:var(--rad-md); flex:none; background:var(--grad-hero); display:grid; place-items:center; box-shadow:0 6px 16px -6px rgba(124,92,255,.6); }
.pp-logo svg{ width:23px; height:23px; display:block; }
.pp-logo-dot{ width:12px; height:12px; border-radius:var(--pill); background:var(--grad-hero); flex:none; }
.pp-wordmark{ font:800 var(--fs-lg) var(--font-display); letter-spacing:-.03em; color:var(--ink); }
.pp-dot{ color:var(--coral-ink); }
.pp-suf{ font-weight:800; font-size:.45em; letter-spacing:0; color:var(--coral-ink); vertical-align:super; margin-left:.06em; }
.on-grad .pp-suf{ color:#fff; }
.pp-nav-links{ display:flex; align-items:center; gap:18px; }
.pp-nav-links a{ position:relative; font:500 var(--fs-sm) var(--font); color:var(--ink); text-decoration:none; transition:color var(--dur) var(--ease); }
.pp-nav-links a:hover{ color:var(--accent-strong); }
.pp-nav-links a[aria-current="page"]{ color:var(--accent-strong); -webkit-text-stroke:var(--bs-bold-stroke) currentColor; }
.pp-nav-links a[aria-current="page"]::after{ content:""; position:absolute; left:50%; bottom:calc(-1 * var(--sp-2)); width:5px; height:5px; transform:translateX(-50%); border-radius:50%; background:var(--accent-text); }
.pp-nav-links a:focus-visible{ outline:none; box-shadow:var(--focus-ring); border-radius:var(--rad-xs); }
.pp-nav-cta{ display:flex; align-items:center; gap:8px; position:relative; }
.pp-nav-login{ font:600 var(--fs-sm) var(--font); color:var(--ink2); text-decoration:none; border:none; border-radius:var(--pill); padding:8px 12px; transition:background .15s,color .15s; }
.pp-nav-login:hover{ color:var(--ink); background:rgba(124,92,255,.08); }
.pp-nav-join{ font:700 var(--fs-sm) var(--font); color:#fff; text-decoration:none; background:var(--grad-btn); border-radius:var(--pill); padding:10px 18px; box-shadow:0 8px 20px -8px rgba(124,92,255,.7); transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s; }
.pp-nav-join:hover{ transform:var(--btn-hover-grow); box-shadow:0 12px 26px -8px rgba(124,92,255,.85); }
.pp-nav-join.is-icon{ display:none; }
@media(max-width:560px){
  .pp-nav{ backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--bg,#FFFDF7); }
  .pp-nav-links{ display:none; }
  .pp-nav-login{ display:none; }
  .pp-nav-join.is-text{ display:none; }
  .pp-nav-join.is-icon{ display:grid; place-items:center; width:40px; height:40px; padding:0; font-size:var(--fs-lg); }
}
@media(max-width:560px){
  html[data-tabbar="on"] .pp-brand{ display:inline-flex; min-height:44px; align-items:center; }
  html[data-tabbar="on"] .pp-brand .pp-wordmark{ font-size:var(--fs-md); }
  html[data-tabbar="on"] .pp-nav-links{ display:none; }
  html[data-tabbar="on"] .pp-nav{ position:static; height:auto; min-height:0; padding:0 12px; background:none; border-bottom:0; justify-content:space-between; padding-top:8px; }
  html[data-tabbar="on"] .pp-nav-cta > .pp-bell, html[data-tabbar="on"] .pp-nav-cta > .pp-nav-carttop{ width:44px; height:44px; flex:0 0 auto; background:var(--card,#fff); border:1px solid var(--line2,rgba(20,20,20,.14)); border-radius:var(--pill,999px); box-shadow:var(--shadow-2); }
}
.bs-tabbar{ position:fixed; left:0; right:0; bottom:0; z-index:115; display:none; align-items:stretch; padding:0 4px; padding-bottom:env(safe-area-inset-bottom,0px); background:var(--card,#fff); border-top:1px solid rgba(124,92,255,.16); box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 -10px 30px -18px rgba(90,56,214,.5); font-family:var(--font,'Inter',system-ui,sans-serif); }
.bs-tabbar[hidden]{ display:none; }
.bs-tab{ flex:1 1 0; min-width:0; height:48px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:0; background:none; padding:0; margin:0; cursor:pointer; text-decoration:none; color:var(--gray-700,#5B5B66); -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
.bs-tab-ind{ display:grid; place-items:center; width:40px; height:22px; border-radius:var(--pill,999px); background:transparent; transition:background .16s ease, transform .12s ease; }
.bs-tab-ico{ width:20px; height:20px; display:block; opacity:.72; transition:opacity .16s ease; }
.bs-tab.is-on .bs-tab-ico, .bs-tab:active .bs-tab-ico{ opacity:1; }
.bs-tab-lbl{ max-width:100%; font:600 var(--fs-2xs)/12px var(--font,'Inter',system-ui,sans-serif); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bs-tab.is-on{ color:var(--accent-strong); }
.bs-tab.is-on .bs-tab-ind{ background:var(--accent-soft); }
.bs-tab.is-on .bs-tab-ico{ color:var(--accent-strong); }
.bs-tab.is-on .bs-tab-lbl{ font-weight:600; }
.bs-tab:focus-visible{ outline:2px solid var(--accent-strong); outline-offset:-3px; }
.bs-tab{ position:relative; overflow:hidden; border-radius:var(--rad-md); }
.bs-tab-rp{ position:absolute; border-radius:50%; pointer-events:none; background:var(--violet-100,#E4DEFF); transform:translate(-50%,-50%) scale(0); animation:bs-tab-rp .52s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes bs-tab-rp{ to{ transform:translate(-50%,-50%) scale(1); opacity:0; } }
.bs-tab.is-on .bs-tab-ind{ transform:translateY(-1px); }
.bs-tab:active .bs-tab-ind{ transform:scale(.92); }
@media(prefers-reduced-motion:reduce){
  .bs-tab-ind{ transition:none; }
  .bs-tab.is-on .bs-tab-ind, .bs-tab:active .bs-tab-ind{ transform:none; }
  .bs-tab-rp{ display:none; }
}
@media(max-width:560px){
  .bs-tabbar{ display:flex; }
  body{ padding-bottom:var(--bs-tab-h,0px); }
}
@media(max-width:360px){
  .bs-tabbar{ padding:0; }
  .bs-tab-ind{ width:36px; }
}
@media(max-width:560px){
  html[data-tabbar="on"] .pp-burger{ display:none; }
  html[data-tabbar="on"] .pp-nav-menu .pp-nav-dup{ display:none; }
  html[data-tabbar="on"] .pp-nav.bs-sheet-open, html[data-tabbar="on"] .cm-app-nav.bs-sheet-open{ z-index:119; }
}
.pp-nav-dup[hidden]{ display:none; }
body.pp-auth-focused .pp-nav-login{ display:none; }
.pp-burger{ flex:none; }
.pp-nav-menu{ position:absolute; top:62px; right:18px; z-index:60; width:248px; max-height:80vh; overflow:auto; background:#fff; border:1px solid var(--line2,#e7e3f0); border-radius:var(--rad-lg); box-shadow:var(--shadow,0 18px 50px rgba(40,20,90,.18)); padding:8px; display:flex; flex-direction:column; }
.pp-nav-menu[hidden]{ display:none; }
.pp-nav-menu a{ display:flex; align-items:center; min-height:44px; padding:8px 12px; border-radius:var(--rad-sm); font:600 var(--fs-sm) var(--font); color:var(--ink); text-decoration:none; }
.pp-nav-menu a:hover{ background:var(--bg2,#faf8f4); }
.pp-nav-menu a:focus-visible{ outline:2px solid var(--violet); outline-offset:2px; }
.pp-nav-menu a.pp-nav-sell{ gap:10px; margin:2px 2px 8px; padding:12px 14px; border-radius:var(--rad-md); background:var(--grad-hero); color:#fff; font-weight:700; box-shadow:0 8px 20px -10px rgba(124,92,255,.7); transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s, filter .18s; }
.pp-nav-menu a.pp-nav-sell:hover{ background:var(--grad-hero); filter:brightness(1.05); transform:var(--btn-hover-grow); box-shadow:0 12px 26px -10px rgba(124,92,255,.85); }
.pp-nav-sell-ico{ width:19px; height:19px; flex:none; }
.pp-nav-sell-lbl{ flex:1 1 auto; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pp-nav-soon{ flex:none; margin-left:8px; font:800 var(--fs-2xs) var(--font); letter-spacing:.03em; text-transform:uppercase; line-height:1; padding:3px 8px; border-radius:var(--rad-pill); background:var(--violet-50); color:var(--violet-700); border:1px solid var(--violet-100); }
@media(prefers-reduced-motion:reduce){
  .pp-nav-menu a.pp-nav-sell, .pp-nav-menu a.pp-nav-sell:hover{ transition:none; transform:none; }
}
.pp-nav-grp{ margin-top:4px; padding-top:4px; border-top:1px solid var(--line2,#e7e3f0); }
.pp-nav-menu-lbl{ font:800 var(--fs-2xs) var(--font); letter-spacing:.04em; text-transform:uppercase; color:var(--ink2); padding:12px 12px 3px; margin-top:4px; border-top:1px solid var(--line2,#e7e3f0); }
.pp-nav-menu-lbl:first-child{ border-top:0; margin-top:0; }
.pp-nav-menu-set{ gap:10px; margin-top:6px; border-top:1px solid var(--line2,#e7e3f0); color:var(--ink2,#5B5B66)!important; }
.pp-nav-menu-set:hover{ color:var(--ink,#141414)!important; }
.pp-nav-set-ico{ width:18px; height:18px; flex:none; }
.pp-nav-menu-set + .pp-nav-menu-out{ margin-top:0; border-top:0; }
.pp-nav-menu-out{ color:var(--coral-ink)!important; margin-top:6px; border-top:1px solid var(--line2,#e7e3f0); }
.pp-nav-menu-go{ color:var(--accent-text)!important; font-weight:700!important; }
.pp-nav-only-mobile{ display:none; }
@media(max-width:560px){
  .pp-nav-only-mobile{ display:block; }
}
@media(max-width:560px){
  .pp-nav-menu{ right:12px; left:12px; width:auto; }
  html[data-tabbar="on"] .pp-nav-menu{ z-index:119; position:fixed; left:0; right:0; top:auto; bottom:var(--bs-tab-h,0px); width:auto; max-height:72vh; max-height:72dvh; overflow:auto; padding:8px 10px 12px; border:1px solid var(--gray-200,#E9E4D9); border-bottom:0; border-radius:18px 18px 0 0; box-shadow:0 -18px 44px -20px rgba(40,20,90,.45); animation:bs-sheet-up .2s cubic-bezier(.22,1,.36,1) both; }
  html[data-tabbar="on"] .pp-nav-menu > *{ animation:bs-sheet-row .22s ease-out both; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(1){ animation-delay:.01s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(2){ animation-delay:.03s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(3){ animation-delay:.05s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(4){ animation-delay:.07s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(5){ animation-delay:.09s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(6){ animation-delay:.11s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(7){ animation-delay:.13s; }
  html[data-tabbar="on"] .pp-nav-menu > :nth-child(n+8){ animation-delay:.15s; }
}
@keyframes bs-sheet-up{ from{ transform:translateY(14px); opacity:0; } }
@keyframes bs-sheet-row{ from{ transform:translateY(7px); opacity:0; } }
@media(prefers-reduced-motion:reduce){
  html[data-tabbar="on"] .pp-nav-menu, html[data-tabbar="on"] .pp-nav-menu > *{ animation:none; }
}
:is(.pp-nav-cta, .pp-mh-right) > :is(.pp-bell, .pp-nav-carttop).bs-btn--ghost{ color:var(--ink); }
.pp-bell[aria-expanded="true"]{ background:var(--accent-soft); color:var(--accent-strong); }
:is(.pp-bell-ico, .pp-nav-carttop .ic-cart){ width:var(--icon-md); height:var(--icon-md); }
.pp-bell-badge[hidden]{ display:none; }
.pp-notifpop{ position:absolute; top:calc(100% + 10px); right:0; z-index:1200; width:380px; max-width:calc(100vw - 24px); background:var(--card); border:1px solid var(--line); border-radius:var(--rad-xl); box-shadow:var(--shadow-lg), 0 4px 14px rgba(20,20,20,.06); display:flex; flex-direction:column; overflow:hidden; opacity:0; transform:translateY(-6px) scale(.985); transform-origin:top right; transition:opacity .16s ease, transform .16s cubic-bezier(.34,1.4,.64,1); }
.pp-notifpop.is-show{ opacity:1; transform:translateY(0) scale(1); }
.pp-notifpop-scrim{ display:none; }
.pp-notifpop-head{ display:flex; align-items:center; gap:10px; padding:14px 14px 10px; border-bottom:1px solid var(--line); }
.pp-notifpop-title{ font:800 var(--fs-base) var(--font-display,var(--font)); color:var(--ink); margin-right:auto; }
.pp-notifpop-tools{ display:flex; align-items:center; gap:4px; }
.pp-notif-glyph{ width:18px; height:18px; flex:none; }
.pp-notifpop-act{ display:inline-flex; align-items:center; gap:5px; height:34px; padding:0 10px; font:600 var(--fs-ctl) var(--font); color:var(--accent-text); background:transparent; border:none; border-radius:var(--rad-md); cursor:pointer; transition:background .15s; }
.pp-notifpop-act:hover{ background:rgba(124,92,255,.10); }
.pp-notifpop-act:focus-visible{ outline:2px solid var(--violet); outline-offset:1px; }
.pp-notifpop-icobtn{ display:grid; place-items:center; width:34px; height:34px; color:var(--ink2); background:transparent; border:none; border-radius:var(--rad-md); cursor:pointer; transition:background .15s, color .15s; }
.pp-notifpop-icobtn:hover{ color:var(--ink); background:var(--bg2); }
.pp-notifpop-icobtn:focus-visible{ outline:2px solid var(--violet); outline-offset:1px; }
.pp-notifpop-close{ display:none; }
.pp-notifpop-tabs{ display:flex; gap:2px; padding:8px 10px; overflow-x:auto; scrollbar-width:none; border-bottom:1px solid var(--line); }
.pp-notifpop-tabs::-webkit-scrollbar{ display:none; }
.pp-notifpop-tab{ position:relative; display:inline-flex; align-items:center; gap:5px; flex:none; height:30px; padding:0 11px; font:600 var(--fs-ctl) var(--font); color:var(--ink2); background:transparent; border:none; border-radius:var(--pill); cursor:pointer; white-space:nowrap; transition:background .15s, color .15s; }
.pp-notifpop-tab:hover{ color:var(--ink); background:var(--bg2); }
.pp-notifpop-tab.is-active{ color:#fff; background:var(--violet); }
.pp-notifpop-tab:focus-visible{ outline:2px solid var(--violet); outline-offset:2px; }
.pp-notifpop-tabn{ min-width:16px; height:16px; padding:0 4px; box-sizing:border-box; display:grid; place-items:center; font:800 var(--fs-2xs)/1 var(--font); font-variant-numeric:tabular-nums; color:#fff; background:var(--coral); border-radius:var(--pill); }
.pp-notifpop-tab.is-active .pp-notifpop-tabn{ background:rgba(255,255,255,.28); }
.pp-notif-push{ display:flex; align-items:center; gap:10px; margin:10px 12px 2px; padding:10px 12px; background:var(--violet-50); border:1px solid var(--violet-100); border-radius:var(--rad-lg); }
.pp-notif-push-ico{ display:grid; place-items:center; width:34px; height:34px; flex:none; color:var(--accent-text); background:var(--card); border-radius:var(--rad-md); }
.pp-notif-push-txt{ display:flex; flex-direction:column; line-height:1.25; margin-right:auto; }
.pp-notif-push-txt b{ font:700 var(--fs-ctl) var(--font); color:var(--ink); }
.pp-notif-push-txt span{ font:500 var(--fs-xs) var(--font); color:var(--ink2); }
.pp-notifpop-body{ max-height:min(56vh,440px); overflow-y:auto; padding:6px; }
.pp-notif-row{ position:relative; display:flex; align-items:flex-start; gap:11px; width:100%; padding:10px; text-align:left; background:transparent; border:none; border-radius:var(--rad-md); cursor:pointer; text-decoration:none; color:inherit; font:inherit; transition:background .13s; }
.pp-notif-row:hover{ background:var(--bg2); }
.pp-notif-row:focus-visible{ outline:2px solid var(--violet); outline-offset:-2px; }
.pp-notif-row.is-unread{ background:rgba(124,92,255,.05); }
.pp-notif-row.is-unread:hover{ background:rgba(124,92,255,.09); }
.pp-notif-ico{ display:grid; place-items:center; width:34px; height:34px; flex:none; color:var(--ink2); background:var(--bg2); border-radius:var(--rad-md); }
.pp-notif-ico .pp-notif-glyph{ width:18px; height:18px; }
.pp-notif-row.is-unread .pp-notif-ico{ color:var(--accent-text); background:var(--violet-50); }
.pp-notif-main{ display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.pp-notif-txt{ font:500 var(--fs-ctl)/1.35 var(--font); color:var(--ink); overflow-wrap:anywhere; }
.pp-notif-time{ font:600 var(--fs-2xs) var(--font); font-variant-numeric:tabular-nums; color:var(--ink2); }
.pp-notif-udot{ width:8px; height:8px; flex:none; margin-top:6px; border-radius:50%; background:var(--coral); }
.pp-notifpop-foot{ display:block; padding:11px 14px; text-align:center; border-top:1px solid var(--line); font:700 var(--fs-ctl) var(--font); color:var(--accent-text); text-decoration:none; transition:background .15s; }
.pp-notifpop-foot:hover{ background:var(--bg2); }
.pp-notifpop-foot:focus-visible{ outline:2px solid var(--violet); outline-offset:-2px; }
.pp-notif-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:40px 24px; }
.pp-notif-empty-ico{ display:grid; place-items:center; width:52px; height:52px; margin-bottom:2px; color:var(--ink2); background:var(--bg2); border-radius:var(--rad-lg); }
.pp-notif-empty-ico .pp-notif-glyph{ width:26px; height:26px; }
.pp-notif-empty-t{ font:700 var(--fs-sm) var(--font); color:var(--ink); }
.pp-notif-empty-d{ font:500 var(--fs-ctl)/1.45 var(--font); color:var(--ink2); max-width:260px; }
.pp-notif-skel{ display:flex; flex-direction:column; gap:4px; padding:4px; }
.pp-notif-skel-row{ height:56px; border-radius:var(--rad-md); background:linear-gradient(90deg,var(--bg2) 25%,var(--gray-100) 37%,var(--bg2) 63%); background-size:400% 100%; animation:pp-notif-skel 1.3s ease infinite; }
@keyframes pp-notif-skel{ 0%{background-position:100% 0} 100%{background-position:0 0} }
@media(max-width:560px){
  .pp-notifpop{ position:fixed !important; top:auto !important; right:0 !important; left:0 !important; bottom:0 !important; width:auto; max-width:none; border-radius:var(--rad-2xl) var(--rad-2xl) 0 0; transform-origin:bottom center; transform:translateY(12px); max-height:86vh; }
  .pp-notifpop.is-show{ transform:translateY(0); }
  .pp-notifpop-close{ display:grid; }
  .pp-notifpop-body{ max-height:none; flex:1; }
  .pp-notifpop-scrim{ display:block; position:fixed; inset:0; z-index:1190; background:rgba(20,20,20,.42); opacity:0; transition:opacity .18s ease; }
  .pp-notifpop-scrim.is-show{ opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  .pp-notifpop, .pp-notifpop-scrim, .pp-bell{ transition:none; }
  .pp-notif-skel-row{ animation:none; }
}
.pp-nav[data-ssr-nav] .pp-nav-login{ opacity:0; animation:pp-nav-login-in 0s linear 1.5s forwards; }
@media (prefers-reduced-motion:reduce){
  .pp-nav[data-ssr-nav] .pp-nav-login{ opacity:1; animation:none; }
}
