  :root{
  --ink:#232A5C;
  --ink-soft:#5A6088;
  --muted:#8A8FA8;
  --paper:#F6F2EE;
  --card:#FFFFFF;
  --line:#E7DFD6;
  --amber:#DE8F35;
  --sage:#5F9E76;
  --berry:#C1516B;
  --r-sm:8px;
  --r-md:14px;
  --r-pill:999px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;
  --font-text:'Golos Text',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-num:'JetBrains Mono',ui-monospace,Consolas,monospace;
  /* Три размера элементов управления (постановка №31) */
  --ctl-sm-pad:5px 12px; --ctl-sm-fs:12px;   /* высота ~28 */
  --ctl-md-pad:7px 14px; --ctl-md-fs:12.5px; /* высота ~32 */
  --ctl-lg-pad:11px 18px; --ctl-lg-fs:14px;  /* высота ~42 */
  --fld-pad:10px 12px; --fld-fs:14px;
}
  *{box-sizing:border-box}

  /* ─── Эталон контролов: S / M / L ─── */
  .c-sm{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-sm-fs);font-weight:500;padding:var(--ctl-sm-pad);
    border-radius:var(--r-pill);cursor:pointer;line-height:1.35;
    min-height:0;box-sizing:border-box;display:inline-flex;align-items:center;gap:6px}
  .c-sm.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:500}
  .c-sm.chip{padding-right:6px}
  .c-sm.chip i{width:8px;height:8px;border-radius:50%;flex:none}
  .c-sm.chip .x,.c-sm.chip .sn-sc-x{
    width:16px;height:16px;min-height:0;border:0;background:rgba(255,255,255,.22);color:#fff;
    border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;flex:none;
    font-size:0;line-height:0;box-sizing:border-box}
  .c-sm.chip .x .ico,.c-sm.chip .sn-sc-x .ico{width:8px;height:8px;margin:0;stroke:#fff}
  .c-sm.off,.c-sm:disabled{opacity:.45;cursor:default}

  .c-md{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-md-fs);font-weight:500;padding:var(--ctl-md-pad);
    border-radius:var(--r-pill);cursor:pointer;line-height:1.35;
    min-height:0;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px}
  .c-md.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .c-md.off,.c-md:disabled{opacity:.45;cursor:default}
  .seg{display:flex;gap:5px}
  .seg .c-md{flex:1;text-align:center}

  .c-lg{
    border:0;background:var(--ink);color:#fff;font-family:inherit;
    font-size:var(--ctl-lg-fs);font-weight:600;padding:var(--ctl-lg-pad);
    border-radius:var(--r-sm);cursor:pointer;width:100%;min-height:0;box-sizing:border-box;
    display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.35}
  .c-lg.sec{background:var(--card);border:1px solid var(--line);color:var(--ink-soft);font-weight:500}
  .c-lg.dan{background:var(--card);border:1px solid #F0D5DB;color:var(--berry);font-weight:500}

  /* Единые поля ввода */
  .fld,input.fld,textarea.fld,select.fld,
  .modal input[type=text],.modal input[type=password],.modal input[type=email],
  .modal input[type=number],.modal input[type=search],.modal input[type=date],
  .modal textarea,.modal select:not(.sel-sm),
  .auth-field input,.word-rule-add input[type=text],
  #snPickerQ,.ps-q input,#pcardQ{
    width:100%;font-family:inherit;font-size:var(--fld-fs);padding:var(--fld-pad);
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
    color:var(--ink);box-sizing:border-box;min-height:0}
  .fld:focus,input.fld:focus,textarea.fld:focus,select.fld:focus,
  .modal input:focus,.modal textarea:focus,.modal select:focus,
  .auth-field input:focus,#snPickerQ:focus,.ps-q input:focus,#pcardQ:focus{
    outline:0;border-color:var(--ink);background:var(--card)}
  .sel-sm,select.sel-sm,
  .mi-filters .storefilter,
  .reg-filters select,.reg-fgrid select,
  select.catsel{
    font-family:inherit;font-size:var(--ctl-sm-fs);padding:5px 9px;
    border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);
    color:var(--ink-soft);max-width:100%;box-sizing:border-box;min-height:0}
  body{font-family:var(--font-text);margin:0;background:var(--paper);color:var(--ink)}
  header{background:var(--ink);color:#fff;padding:var(--s4) var(--s5) var(--s5);font-size:17px;font-weight:600;
    display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
  .brand{display:flex;align-items:center;gap:10px;/* optical */ font-size:17px;font-weight:600;
    letter-spacing:-.01em;flex:1;min-width:0}
  .brand em{font-style:normal;opacity:.5;font-weight:400}
  .brand .logo{width:27px;height:27px;flex:none}
  .header-actions{display:flex;align-items:center;gap:var(--s2);flex-shrink:0}
  .header-icon-btn{
    background:rgba(255,255,255,.16);border:0;color:#fff;
    border-radius:var(--r-pill);width:34px;height:34px;padding:0;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center}
  .header-icon-btn .ico{width:18px;height:18px}
  .header-icon-btn:hover{background:rgba(255,255,255,.28)}
  .header-user{font-size:12px;font-weight:500;opacity:.9;max-width:140px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;cursor:default;pointer-events:none;user-select:none}
  .ico{width:1.1em;height:1.1em;stroke:currentColor;fill:none;stroke-width:2;
    stroke-linecap:round;stroke-linejoin:round;vertical-align:-0.15em;flex:none;
    margin-inline-end:0.28em}
  .ico.sm{width:14px;height:14px;margin-inline-end:0.22em}
  .arrow .ico,.caret .ico,.bhead-car .ico{margin-inline-end:0}
  .header-icon-btn .ico{margin-inline-end:0}
  .num,.purch-total,.purch-receipt-sum,.purch-day-total,.sa-total,.sa-grand,.mail-mob-pct,
  .shop-item-price,.fc-product-sum,.sum-amt,td.r,th.r,.daytotal-amt,.price-diff,.price-cheap,
  .badge,.pill .num,.purch-store-chip b,.purch-buyer-chip b,
  .st-scale-vl,.leader-row .lr-price,.st-spark-tot,.st-ms,.bhead-ctx .num{font-family:var(--font-num)}
  .price-mark{display:inline-block;font-size:10px;font-weight:600;line-height:1.3;
    padding:1px 6px;/* optical */ border-radius:var(--r-sm);margin-left:3px;vertical-align:middle;
    white-space:nowrap;cursor:help}
  .price-mark.points{color:#5c3d00;background:#FFE8C2}
  .price-mark.promo{color:var(--ink-soft);background:rgba(35,42,92,.08)}
  .price-mark.markdown{color:#fff;background:var(--sage)}
  .mail-status-ico{display:inline-flex;align-items:center;gap:4px;/* optical */}
  .mail-status-ico .ico{width:14px;height:14px}
  .mail-status-ico.scanned{color:var(--muted)}
  .mail-status-ico.unknown{color:var(--amber)}
  .reg-unknown-banner{
    display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
    margin:0 0 10px;padding:10px 12px;border-radius:var(--r-md);
    background:#FFF6E5;border:1px solid #f0d9a8;color:#5c3d00;font-size:13px;line-height:1.4}
  .reg-unknown-banner a,.reg-unknown-banner button.linkish{
    color:#8a5a00;font-weight:600;text-decoration:underline;background:none;border:0;
    padding:0;cursor:pointer;font:inherit}
  .acting-group-banner{
    display:none;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    background:#FFF3CD;color:#664d03;border-bottom:1px solid #ffecb5;
    padding:10px 24px;font-size:14px;font-weight:600}
  .acting-group-banner.show{display:flex}
  .acting-group-banner button{
    font-size:var(--ctl-md-fs);padding:var(--ctl-md-pad);min-height:0;border-radius:var(--r-pill);
    line-height:1.35;font-weight:500}
  .view-as-banner{background:#E8EEF9;color:#232A5C;border-bottom-color:#c5cae9}
  .groups-section .group-row{
    display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
    padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
  .groups-section .group-row:last-child{border-bottom:none}
  .groups-section .group-meta{color:var(--ink-soft);font-size:12px;font-weight:400}
  .groups-section .group-actions{display:flex;gap:6px;flex-wrap:wrap}
  .auth-overlay{
    position:fixed;inset:0;background:var(--paper);z-index:3000;display:none;
    align-items:center;justify-content:center;padding:var(--s4);overflow-y:auto;
    -webkit-overflow-scrolling:touch}
  .auth-overlay.show{display:flex}
  .auth-page{
    width:100%;max-width:880px;display:grid;grid-template-columns:1fr 380px;
    gap:var(--s6);align-items:center;margin:auto}
  .auth-brand{display:flex;align-items:center;gap:13px;margin-bottom:var(--s4)}
  .auth-logo{width:44px;height:44px;flex:none}
  .auth-brand-n{font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
  .auth-brand-n em{font-style:normal;color:var(--muted);font-weight:400}
  .auth-pitch-h{
    font-size:22px;font-weight:600;line-height:1.35;margin:0 0 var(--s3);
    letter-spacing:-.01em;max-width:400px;color:var(--ink)}
  .auth-more{
    display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;
    font-family:inherit;font-size:13px;color:var(--ink-soft);cursor:pointer;padding:4px 0;
    min-height:0;min-width:0}
  .auth-more .ico{margin-inline-end:0;transition:transform .18s;color:var(--ink-soft)}
  .auth-pitch.open .auth-more .ico{transform:rotate(90deg)}
  .auth-pitch.open .auth-more-closed{display:none}
  .auth-pitch:not(.open) .auth-more-open{display:none}
  .auth-pitch-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .auth-pitch.open .auth-pitch-body{max-height:420px}
  .auth-pitch-in{padding-top:var(--s3)}
  .auth-sub{font-size:14px;color:var(--ink-soft);line-height:1.55;margin:0 0 var(--s4);max-width:400px}
  .auth-feats{display:flex;flex-direction:column;gap:var(--s3);max-width:400px}
  .auth-feat{display:flex;align-items:flex-start;gap:11px}
  .auth-feat-ic{
    width:32px;height:32px;border-radius:var(--r-sm);background:var(--card);
    border:1px solid var(--line);display:grid;place-items:center;flex:none}
  .auth-feat-ic .ico{width:16px;height:16px;margin:0;color:var(--ink)}
  .auth-feat-tx{font-size:13.5px;line-height:1.45;padding-top:5px;color:var(--ink)}
  .auth-feat-tx b{font-weight:600}
  .auth-feat-tx span{color:var(--ink-soft)}
  .auth-box{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s5);width:100%;max-width:380px;justify-self:stretch;
    box-shadow:0 4px 20px rgba(35,42,92,.06)}
  .auth-overlay > .auth-box{max-width:400px} /* mustChange / pinSetup — одиночная карточка */
  #mustChangeOverlay .auth-box,#pinSetupOverlay .auth-box{
    max-width:400px;padding:24px 22px;box-shadow:0 8px 32px rgba(0,0,0,.12)}
  #mustChangeOverlay .auth-box h2,#pinSetupOverlay .auth-box h2{margin:0 0 8px;font-size:20px;color:var(--ink)}
  .auth-tabs{
    display:flex;gap:var(--s1);background:var(--paper);padding:var(--s1);
    border-radius:var(--r-pill);margin:0 0 var(--s5)}
  .auth-tabs button{
    flex:1;border:0;background:transparent;cursor:pointer;font-family:inherit;
    font-size:var(--ctl-md-fs);font-weight:500;color:var(--ink-soft);padding:var(--ctl-md-pad);
    border-radius:var(--r-pill);min-height:0;min-width:0;line-height:1.35;
    display:inline-flex;align-items:center;justify-content:center}
  .auth-tabs button.on{background:var(--ink);color:#fff;font-weight:600}
  .auth-field{margin-bottom:var(--s3)}
  .auth-field label{display:block;font-size:11.5px;color:var(--ink-soft);margin-bottom:5px}
  .auth-field input{
    width:100%;font-family:inherit;font-size:var(--fld-fs);padding:var(--fld-pad);
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
  .auth-field input:focus{outline:none;border-color:var(--ink);background:var(--card)}
  .auth-hint{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.35}
  .auth-overlay:not(.is-register) .auth-reg-only{display:none}
  .auth-err{color:var(--berry);font-size:13px;min-height:1.2em;margin:8px 0}
  .auth-go{
    width:100%;border:0;background:var(--ink);color:#fff;font-family:inherit;
    font-size:var(--ctl-lg-fs);font-weight:600;padding:var(--ctl-lg-pad);
    border-radius:var(--r-sm);cursor:pointer;margin-top:var(--s2);min-height:0}
  .auth-pin{
    width:100%;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-lg-fs);font-weight:500;padding:var(--ctl-lg-pad);
    border-radius:var(--r-sm);cursor:pointer;margin-top:var(--s2);min-height:0;line-height:1.35}
  .auth-migrate{font-size:11px;margin-top:12px;line-height:1.35}
  @media (max-width:820px){
    .auth-overlay{align-items:flex-start;padding-top:var(--s5)}
    .auth-page{grid-template-columns:1fr;max-width:420px;gap:var(--s4)}
    .auth-logo{width:38px;height:38px}
    .auth-brand-n{font-size:22px}
    .auth-pitch-h{font-size:19px;margin-bottom:var(--s2)}
    .auth-box{max-width:none}
    .auth-pitch.open .auth-pitch-body{max-height:520px}
  }
  .buyer-sel{font-size:12px;padding:4px 6px;border-radius:var(--r-sm);border:1px solid var(--line);max-width:140px}
  .buyer-who{display:inline-flex;flex-wrap:wrap;gap:6px;/* optical */ align-items:center;margin:0}
  .buyer-btn{
    font-family:inherit;font-size:var(--ctl-sm-fs);font-weight:500;cursor:pointer;
    padding:var(--ctl-sm-pad);border-radius:var(--r-pill);
    border:1px solid var(--line);background:var(--paper);color:var(--muted);
    flex:none;max-width:100%;min-height:0;line-height:1.35;box-sizing:border-box}
  .buyer-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:500}
  .buyer-btn:disabled{opacity:.55;cursor:default}
  .buyer-who-other{font-size:12px;margin-right:4px;/* optical */ cursor:default;pointer-events:none}
  .buyer-missing{color:var(--amber);font-size:11px;font-weight:600}
  .purch-buyer-need{color:var(--amber);font-weight:600;font-size:11.5px}
  .purch-buyer-set{color:var(--ink-soft);font-weight:500;font-size:11.5px}
  .event-pill{
    display:inline-flex;align-items:center;gap:4px;
    font-size:11px;font-weight:600;color:#7a5310;
    background:#fff4db;border:1px solid #f4dfb2;border-radius:999px;
    padding:2px 8px;vertical-align:middle;max-width:100%;
  }
  .event-pill .ico{width:12px;height:12px;margin:0}
  .receipt-event-edit{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .receipt-event-input{
    flex:1;min-width:180px;font-family:inherit;font-size:12px;padding:6px 9px;
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-soft);
  }
  .receipt-event-input:disabled{opacity:.6}
  /* Покупки: кнопки только в раскрытом чеке — над разделителем, компактные + hit-area */
  .purch-receipt-buyer-in{
    display:none;margin:var(--s2) 0 0;padding:8px 0 0;/* optical: hit-area контейнера */}
  .purch-receipt-card.open .purch-receipt-buyer-in{display:block}
  .purch-receipt-buyer-in .buyer-btn{
    position:relative;min-height:0;padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);line-height:1.35}
  .purch-receipt-buyer-in .buyer-btn::before{
    content:'';position:absolute;inset:-8px;/* optical: палец ~44px */}
  .auth-err,.err,.toolbar .danger,.receipt-edit-del,.purch-compare.up,.pricetrend-compact .pt-up{color:var(--berry)}
  .purch-compare.down,.price-cheap,.modal-ok,.member-login-status.ok,.member-mail-status.ok,.store-got-mark{color:var(--sage)}
  .purch-filter-reset{color:var(--ink);text-decoration:none}
  .purch-filter-reset:hover{text-decoration:underline}
  .purch-filter-empty{
    margin:var(--s3) 0 var(--s2);padding:14px 12px;border-radius:var(--r-md);
    background:var(--paper);border:1px dashed var(--line);line-height:1.45}
  .purch-filter-empty-txt{font-size:14px;color:var(--ink-soft);margin-bottom:10px}
  .purch-filter-reset-btn{
    border:0;background:transparent;padding:0;cursor:pointer;
    font-size:13px;font-weight:600;color:var(--ink);text-decoration:underline}
  .store-pick-grid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
  .store-pick-item{
    display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);
    border-radius:var(--r-pill);font-size:13px;cursor:pointer;user-select:none;background:var(--card)}
  .store-pick-item input{margin:0}
  .store-pick-item.on{background:rgba(35,42,92,.08);border-color:var(--ink);font-weight:600}
  .store-got-mark{color:var(--sage);font-weight:700;margin-left:2px}
  .store-manual-tag{font-size:10px;color:var(--muted);background:var(--paper);padding:1px 6px;border-radius:var(--r-sm);margin-left:4px}
  .store-pick-hint{font-size:11px;color:var(--ink-soft);margin-top:8px;line-height:1.4}
  .settings-advanced{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}
  .settings-advanced summary{
    cursor:pointer;font-size:13px;color:var(--ink-soft);padding:8px 0;list-style:none;user-select:none}
  .settings-advanced summary::-webkit-details-marker{display:none}
  .settings-advanced[open] summary{color:var(--ink);font-weight:600}
  .member-admin-tag{font-size:10px;background:#e8f5e9;color:var(--sage);padding:2px 7px;border-radius:var(--r-sm);margin-left:6px}
  .member-card{
    border:1px solid var(--line);border-radius:var(--r-md);padding:12px;margin:8px 0;background:#fafbff}
  .member-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
  .member-login-status{font-size:11px;margin:0 0 10px;line-height:1.35}
  .member-login-status.ok{color:var(--sage)}
  .member-login-status.warn{color:var(--muted)}
  .member-grant-block{
    margin:0 0 12px;padding:10px;border:1px dashed var(--line);border-radius:var(--r-sm);background:var(--card)}
  .member-mail-status{font-size:11px;margin-top:6px;line-height:1.35}
  .member-mail-status.ok{color:var(--sage)}
  .member-mail-status.warn{color:var(--muted)}
  .settings-logout-btn{
    font-size:var(--ctl-sm-fs) !important;padding:var(--ctl-sm-pad) !important;
    border-radius:var(--r-pill);opacity:.75;margin-right:auto;min-height:0;font-weight:500}
  .settings-logout-btn:hover{opacity:1}
  .buyer-cmp-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
  .buyer-cmp-bar{height:8px;background:rgba(35,42,92,.08);border-radius:var(--r-sm);overflow:hidden;margin-top:6px}
  .buyer-cmp-fill{height:100%;background:var(--ink);border-radius:var(--r-sm);align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
  .reg-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;align-items:center}
  .reg-filters select,.reg-filters input{
    font-size:var(--ctl-sm-fs);padding:5px 9px;border:1px solid var(--line);border-radius:var(--r-pill);
    background:var(--paper);color:var(--ink-soft);max-width:100%;min-height:0}
  .reg-filter-count{font-size:12px;color:var(--ink-soft)}
  main{max-width:760px;margin:0 auto;padding:var(--s5) var(--s5) var(--s6)}
  /* ── Статистика: карточка как .block в эскизе ── */
  .st-toolbar{display:flex;justify-content:center;margin:var(--s4) 0 var(--s2);border:0;background:transparent;padding:0}
  .st-toolbar button{border:0;background:transparent;font-size:var(--ctl-md-fs);color:var(--ink-soft);cursor:pointer;
    display:inline-flex;align-items:center;gap:5px;font-weight:500;padding:var(--ctl-md-pad);
    border-radius:var(--r-pill);min-height:0;line-height:1.35}
  .st-toolbar button:hover{color:var(--ink)}

  .card[data-block-id^="st."],
  .card[data-block-id^="shop."],
  .card[data-block-id="reg.card"],
  .card[data-block-id="pur.receipts"]{
    padding:0;margin:0 0 var(--s3);min-height:0;overflow:hidden}
  .card[data-block-id^="st."] > .mbody,
  .card[data-block-id^="shop."] > .mbody,
  .card[data-block-id="reg.card"] > .mbody,
  .card[data-block-id="pur.receipts"] > .mbody{
    padding:0 var(--s4) var(--s4);margin:0}
  .card[data-block-id^="st."] > .mbody[hidden],
  .card[data-block-id^="st."] > .mbody[style*="display: none"],
  .card[data-block-id^="st."] > .mbody[style*="display:none"],
  .card[data-block-id^="shop."] > .mbody[style*="display: none"],
  .card[data-block-id^="shop."] > .mbody[style*="display:none"],
  .card[data-block-id="reg.card"] > .mbody[style*="display: none"],
  .card[data-block-id="reg.card"] > .mbody[style*="display:none"],
  .card[data-block-id="pur.receipts"] > .mbody[style*="display: none"],
  .card[data-block-id="pur.receipts"] > .mbody[style*="display:none"]{
    display:none !important;padding:0 !important;margin:0 !important;min-height:0 !important}

  /* ══ Уровень 1 — блок раздела (№14 / headers-etalon) ══ */
  .bhead{
    display:flex;align-items:center;gap:9px;margin:0;padding:var(--s4);
    font-size:14px;font-weight:600;line-height:1.25;min-height:52px;box-sizing:border-box;
    cursor:pointer;user-select:none}
  .bhead > .ico{width:17px;height:17px;stroke:var(--ink-soft);stroke-width:1.9;flex:none;margin:0}
  .bhead-title{font-size:14px;font-weight:600;color:var(--ink);flex:none;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42%}
  .bhead-cnt{font-size:11.5px;color:var(--muted);font-weight:400;flex:none}
  .bhead-grow{flex:1;min-width:4px}
  .bhead-ctx{font-size:12px;color:var(--muted);font-weight:400;white-space:nowrap;
    flex:none;max-width:42%;overflow:hidden;text-overflow:ellipsis;
    display:inline-flex;align-items:center;gap:4px}
  .bhead-ctx .num{font-family:var(--font-num);font-variant-numeric:tabular-nums}
  .bhead-car.arrow{flex:none;margin:0;display:inline-flex;align-items:center;color:var(--muted)}
  .bhead-car .ico{width:14px;height:14px;stroke:var(--muted);stroke-width:2.2;margin:0}

  /* ══ Уровень 2 — группа внутри блока ══ */
  .ghead{display:flex;align-items:center;gap:7px;padding-bottom:7px;min-height:32px;
    border-bottom:1px solid var(--line);cursor:pointer;user-select:none;box-sizing:border-box}
  .ghead-car{display:inline-flex;flex:none;color:var(--muted);transition:transform .18s}
  .ghead-car .ico{width:13px;height:13px;stroke:var(--muted);stroke-width:2.4;margin:0}
  .shop-grp.closed .ghead-car,.grp.closed .ghead-car{transform:rotate(-90deg)}
  .ghead-title{margin:0;font-size:13px;font-weight:600;color:var(--ink);flex:none;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}
  .ghead-cnt{font-size:11.5px;color:var(--muted);font-weight:400;flex:none}
  .ghead-grow{flex:1;min-width:4px}
  .ghead-sum{font-size:11.5px;color:var(--muted);white-space:nowrap;flex:none}
  .ghead-act{width:24px;height:24px;border:0;background:transparent;cursor:pointer;
    display:grid;place-items:center;flex:none;margin-left:2px;padding:0;min-height:0;color:var(--muted)}
  .ghead-act .ico{width:14px;height:14px;margin:0}

  /* выдвижной фильтр периода (eskiz-filtr) */
  .st-fbtn{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;
    font-family:inherit;font-size:var(--ctl-sm-fs);color:var(--muted);cursor:pointer;
    padding:var(--ctl-sm-pad);border-radius:var(--r-pill);white-space:nowrap;min-height:0;
    max-width:100%;overflow:hidden;line-height:1.35}
  .st-fbtn:hover{background:var(--paper)}
  .st-fbtn .st-fbtn-label{overflow:hidden;text-overflow:ellipsis}
  .st-fbtn .ico{width:12px;height:12px;flex:none;margin:0;transition:transform .18s}
  .st-fbtn.on{background:var(--ink);color:#fff}
  .st-fbtn.on .ico{transform:rotate(180deg)}

  .st-fpanel{max-height:0;overflow:hidden;transition:max-height .24s ease}
  .st-fpanel.open{max-height:220px}
  .st-fpanel-in{padding:0 0 var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s3)}
  .st-fchips{display:flex;flex-wrap:wrap;gap:5px}
  .st-fchip{border:1px solid var(--line);background:var(--paper);border-radius:var(--r-pill);
    padding:var(--ctl-md-pad);font-family:inherit;font-size:var(--ctl-md-fs);color:var(--ink-soft);cursor:pointer;
    min-height:0;line-height:1.35}
  .st-fchip.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .st-fdates{display:none;gap:8px;align-items:center;margin-top:var(--s2);flex-wrap:nowrap}
  .st-fdates.show{display:flex}
  .st-fdates input[type=date]{
    flex:1;min-width:0;box-sizing:border-box;font-family:inherit;font-size:var(--fld-fs);
    padding:var(--fld-pad);border:1px solid var(--line);border-radius:var(--r-sm);
    background:var(--paper);color:var(--ink)}
  .st-fdates-sep{color:var(--muted);font-size:12px;flex:none}

  /* Реестр чеков (постановка №29 / eskiz-reestr-chekov) */
  .card[data-block-id="reg.card"] > .mbody{
    padding:0 0 var(--s2) !important;margin:0;overflow-x:hidden}
  .card[data-block-id="reg.card"] .st-fpanel-in{
    padding:0 var(--s4) var(--s3);margin:0;border-bottom:1px solid var(--line)}
  #regPeriodPanel.open{max-height:280px}
  .reg-fgrid{display:flex;flex-wrap:wrap;gap:6px}
  .reg-fgrid select{
    flex:1;min-width:110px;font-family:inherit;font-size:12px;padding:6px 9px;
    border:1px solid var(--line);border-radius:var(--r-pill);
    background:var(--paper);color:var(--ink-soft);max-width:100%;box-sizing:border-box}
  .reg-fsum{
    font-size:11.5px;color:var(--muted);margin-top:9px;display:flex;
    justify-content:space-between;flex-wrap:wrap;gap:6px;line-height:1.35}
  .reg-fsum b{font-weight:500;color:var(--ink-soft)}

  .reg-day{
    display:flex;align-items:baseline;gap:8px;padding:8px var(--s4);
    background:var(--paper);font-size:12px;border-top:1px solid var(--line)}
  .reg-day-d{font-weight:600;color:var(--ink)}
  .reg-day-g{flex:1;min-width:8px}
  .reg-day-s{font-weight:500;color:var(--ink);white-space:nowrap}
  .reg-day-n{font-size:11px;color:var(--muted);white-space:nowrap}

  .reg-list{margin:0}
  .reg-rec{
    border-top:1px solid var(--line);background:transparent;
    margin:0;padding:0;border-radius:0;box-shadow:none;filter:none}
  .reg-rec::after{display:none !important;content:none !important}
  .reg-rh{
    display:flex;align-items:center;gap:9px;padding:11px var(--s4);
    cursor:pointer;user-select:none;min-height:0;box-sizing:border-box;
    line-height:1.25}
  .reg-car{display:grid;place-items:center;flex:none;width:12px;height:12px;color:var(--muted)}
  .reg-car .ico{width:12px;height:12px;margin:0;transition:transform .18s}
  .reg-rec.open .reg-car .ico{transform:rotate(90deg)}
  .reg-mk{
    width:20px;height:20px;border-radius:5px;color:#fff;font-size:10px;
    font-weight:700;display:grid;place-items:center;flex:none}
  .reg-t{flex:1;min-width:0}
  .reg-t b{display:block;font-size:13px;font-weight:600;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
  .reg-t > span{font-size:11px;color:var(--muted);line-height:1.3}
  .reg-who{color:var(--ink-soft)}
  .reg-who-need{color:var(--amber);font-weight:500}
  .reg-sum{font-size:13px;font-weight:600;white-space:nowrap;flex:none;color:var(--ink)}

  .reg-rb{display:none;padding:0 var(--s4) var(--s3)}
  .reg-rec.open .reg-rb{display:block}
  .reg-lbl{font-size:11px;color:var(--muted);margin:var(--s2) 0 5px}
  .reg-rb .buyer-who{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
  .reg-rb .buyer-btn{
    min-height:0 !important;height:auto;padding:var(--ctl-sm-pad) !important;
    font-size:var(--ctl-sm-fs) !important;font-weight:500 !important;line-height:1.35;
    border-radius:var(--r-pill);max-width:100%}
  .reg-rb .buyer-btn.on{font-weight:500 !important}
  .reg-rb .buyer-btn::before{display:none !important;content:none !important}
  .reg-rb .receipt-event-input{max-width:100%}
  .reg-edit-row{display:flex;gap:6px;align-items:center;margin-top:2px}
  .reg-edit-row .store-override-sel{
    flex:1;min-width:0;font-family:inherit;font-size:12px;padding:6px 9px;
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-soft)}
  .reg-edit-row .view-only-label{display:none !important}
  .reg-edit-row .pts-spent-inp,
  .reg-pts .pts-spent-inp{
    display:inline-block !important;width:76px;flex:none;font-family:var(--font-num);
    font-size:12px;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r-sm);
    background:var(--paper);min-height:0;max-width:76px;box-sizing:border-box}
  .reg-acts{display:flex;gap:6px;margin-top:var(--s3);flex-wrap:wrap}
  .reg-act{
    display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
    background:var(--paper);color:var(--ink-soft);font-family:inherit;font-size:var(--ctl-md-fs);
    padding:var(--ctl-md-pad);border-radius:var(--r-pill);cursor:pointer;min-height:0 !important;
    height:auto;font-weight:500;line-height:1.35}
  .reg-act .ico{width:13px;height:13px;margin:0}
  .reg-act.del{color:var(--berry);border-color:#F0D5DB}

  /* заголовок реестра: название целиком, фильтр сжимается */
  .card[data-block-id="reg.card"] .bhead-title{
    max-width:none;overflow:visible;text-overflow:clip;white-space:nowrap;flex:none}
  .card[data-block-id="reg.card"] .bhead-ctx{
    max-width:min(36vw,120px);flex:0 1 auto;min-width:0}
  .card[data-block-id="reg.card"] .bhead-ctx .st-fbtn{
    max-width:100%;min-height:0;padding:var(--ctl-sm-pad)}
  .card[data-block-id="reg.card"] .bhead-cnt{flex:none}
  .reg-src{
    font-size:11px;color:var(--muted);margin-top:var(--s3);display:flex;
    align-items:center;gap:6px;word-break:break-all;line-height:1.35}
  .reg-src .ico{width:12px;height:12px;margin:0;stroke:var(--sage);flex:none}

  /* Окно «Позиции чека» — строки, без таблицы */
  .reg-ed-meta{
    padding:var(--s3) 20px;background:var(--paper);font-size:12px;
    display:flex;align-items:center;gap:7px;flex-wrap:wrap;
    margin:0 -20px;width:calc(100% + 40px);box-sizing:border-box}
  .reg-ed-hint{
    padding:var(--s2) 0 0;font-size:11.5px;color:var(--muted);line-height:1.45}
  .reg-ed-list{
    margin:var(--s3) -20px 0;max-height:min(50vh,360px);overflow-y:auto;overflow-x:hidden}
  .modal-box:has(.reg-ed-list){overflow-x:hidden}
  .reg-ed-pi{padding:10px 20px;border-bottom:1px solid var(--line)}
  .reg-ed-pi .reg-ed-n{font-size:13px;line-height:1.35;margin-bottom:6px;word-break:break-word}
  .reg-ed-pi .reg-ed-r{display:flex;align-items:center;gap:8px}
  .reg-ed-pi .reg-ed-q{font-size:11.5px;color:var(--muted);flex:1;min-width:0}
  .reg-ed-pi .reg-ed-p{font-size:13px;font-weight:500;white-space:nowrap;flex:none}
  .reg-ed-pi .receipt-edit-del{
    border:1px solid #F0D5DB;background:var(--paper);color:var(--berry);
    font-family:inherit;font-size:11.5px;padding:5px 11px;border-radius:var(--r-sm);
    cursor:pointer;flex:none;min-height:0}
  .reg-ed-foot{padding:var(--s3) 0 0;margin-top:var(--s2);border-top:1px solid var(--line)}
  .reg-ed-foot .primary{width:100%;padding:var(--ctl-lg-pad);font-size:var(--ctl-lg-fs);font-weight:600}

  /* строка со шкалой */
  .st-scale{position:relative;padding:9px 11px;border-radius:var(--r-sm);margin-bottom:5px;
    background:var(--paper);overflow:hidden;font-size:13px;line-height:1.15}
  .st-scale-fl{position:absolute;inset:0 auto 0 0;background:rgba(35,42,92,.10);pointer-events:none}
  .st-scale-rw{position:relative;display:flex;align-items:baseline;gap:8px;font-size:13px;line-height:1.15}
  .st-scale-nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
  .st-scale-vl{font-size:12.5px;font-weight:500;white-space:nowrap;color:var(--ink);line-height:1.15}
  .st-scale-sub{position:relative;font-size:11px;color:var(--muted);margin-top:0;line-height:1.1}
  .st-scale.acc .st-scale-fl{background:rgba(222,143,53,.16)}
  .st-scale.acc .st-scale-nm{color:var(--amber)}

  .st-sub-items{display:none;padding:2px 0 6px 11px}
  .st-scale.open + .st-sub-items{display:block}

  /* единая строка «название ··· цена» (постановка №12.1) */
  .leader-row{
    display:flex;
    align-items:baseline;
    gap:6px;
    font-size:12.5px;
    padding:3px 0;
  }
  .leader-row .lr-name{
    flex:0 1 auto;
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    color:var(--ink-soft);
  }
  .leader-row .lr-dots{
    flex:1 1 auto;
    min-width:12px;
    border-bottom:1px dotted #D8D0C6;
    transform:translateY(-3px);
  }
  .leader-row .lr-price{
    flex:0 0 auto;
    white-space:nowrap;
    text-align:right;
    font-family:var(--font-num);
    font-variant-numeric:tabular-nums;
    color:var(--ink);
  }
  .leader-row .lr-price s{color:var(--muted);font-size:11px;margin-right:5px}
  .leader-row .lr-price em{font-style:normal;color:var(--sage);font-weight:500}
  .leader-row .lr-chk{color:var(--amber);font-size:11px;margin-left:5px;white-space:nowrap}
  @media(min-width:601px){ .leader-row{max-width:560px} }

  /* магазины: список вариант C */
  .st-srow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .st-srow:last-child{border-bottom:0}
  .st-srow-mark{flex:none;display:flex;align-items:center}
  .st-srow-mark .store-bad{margin:0}
  .st-srow-body{flex:1;min-width:0}
  .st-srow-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
  .st-srow-nm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .st-srow-sm{font-size:12.5px;font-weight:500;white-space:nowrap}
  .st-srow-share{margin-left:6px;font-size:11px;font-weight:400;color:var(--muted)}
  .st-srow-track{height:4px;background:var(--paper);border-radius:var(--r-pill);margin-top:6px;overflow:hidden}
  .st-srow-track i{display:block;height:100%;border-radius:var(--r-pill);max-width:100%}
  .st-srow-sub{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
  .st-srow-dyn.up{color:var(--amber);font-weight:500}
  .st-srow-dyn.down{color:var(--sage);font-weight:500}
  .st-srow-dyn.flat{color:var(--muted)}
  .st-srow-btn{
    display:block;margin:6px 0 2px;padding:0;border:0;background:transparent;
    font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink-soft);
    cursor:pointer;width:auto;min-height:0;text-align:left;line-height:1.3}
  .st-srow-btn:hover{color:var(--ink)}

  /* магазины: spark — legacy (не используется после №12) */
  .st-spark, .st-spark-labels{
    --st-spark-cols:20px 84px 1fr 62px;
    display:grid;grid-template-columns:var(--st-spark-cols);
    gap:9px;align-items:center;padding:7px 0}
  .st-spark-labels{padding-top:2px;padding-bottom:0}
  .st-spark-mark{display:flex;align-items:center;justify-content:center}
  .st-spark-mark .store-bad{margin:0}
  .st-spark-sn{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .st-spark-bars{display:flex;align-items:flex-end;gap:2px;height:26px;width:100%;min-width:0}
  .st-spark-bars i{
    flex:1;background:rgba(35,42,92,.16);border-radius:2px 2px 0 0;
    min-height:0;height:0;display:block;align-self:flex-end;box-sizing:border-box}
  .st-spark-bars i.empty{background:transparent;border:0;min-height:0;height:0}
  .st-spark-bars i.cur{
    background:transparent;border:1px dashed rgba(35,42,92,.35)}
  .st-spark-tot{font-size:11.5px;color:var(--ink-soft);text-align:right;white-space:nowrap}
  .st-spark-labels .st-mlabels{
    grid-column:3;display:flex;gap:2px;width:100%;min-width:0}
  .st-spark-labels .st-mlabels span{
    flex:1;text-align:center;font-size:9px;color:var(--muted);
    overflow:hidden;white-space:nowrap}
  .st-spark-btn{
    display:block;margin:6px 0 2px;padding:0;border:0;background:transparent;
    font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink-soft);
    cursor:pointer;width:auto;min-height:0;text-align:left;line-height:1.3}
  .st-spark-btn:hover{color:var(--ink)}
  .st-depth{
    display:inline-flex;gap:2px;background:var(--paper);border:1px solid var(--line);
    border-radius:var(--r-pill);padding:2px;margin-left:auto;flex:none}
  .st-depth-btn{
    border:0;background:transparent;font-family:inherit;font-size:var(--ctl-sm-fs);font-weight:500;
    padding:var(--ctl-sm-pad);border-radius:var(--r-pill);cursor:pointer;color:var(--ink-soft);
    min-height:0;line-height:1.35}
  .st-depth-btn.active,.st-depth-btn.on{background:var(--ink);color:#fff;font-weight:500}

  /* по месяцам — гибкая строка, без фиксированных ширин, что рвут 360px */
  .st-months-meta{
    display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;
    margin:0 0 var(--s3);font-size:12.5px;color:var(--ink-soft);min-width:0}
  .st-months-range{font-weight:500;color:var(--ink)}
  .st-months-avg{color:var(--muted);white-space:nowrap}
  .st-months-avg .num{color:var(--ink-soft);font-weight:500}
  .st-mrow{display:flex;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid var(--line);
    cursor:pointer;user-select:none;min-width:0;max-width:100%;box-sizing:border-box}
  .st-mrow:last-of-type{border-bottom:0}
  .st-mn{font-size:13px;flex:0 1 4.5em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .st-mtrack{flex:1 1 0;min-width:0;height:6px;background:var(--paper);border-radius:var(--r-pill);overflow:hidden}
  .st-mtrack i{display:block;height:100%;background:var(--ink);border-radius:var(--r-pill)}
  .st-ms{font-size:12.5px;font-weight:500;flex:0 0 auto;max-width:42%;text-align:right;white-space:nowrap;color:var(--ink)}
  .st-mrow.on .st-mn{font-weight:600}
  .st-mdetail{display:none;padding:var(--s2) 0 var(--s4);border-bottom:1px solid var(--line);min-width:0;max-width:100%;overflow-x:hidden}
  .st-mrow.on + .st-mdetail{display:block}
  .st-cap{font-size:11px;color:var(--muted);margin-bottom:var(--s2)}
  .st-mbtn{margin-top:var(--s2);width:100%;max-width:100%;box-sizing:border-box;
    padding:var(--ctl-md-pad);border:1px solid var(--line);
    background:var(--paper);border-radius:var(--r-pill);font-family:inherit;font-size:var(--ctl-md-fs);
    color:var(--ink-soft);cursor:pointer;min-height:0;line-height:1.35;font-weight:500}
  .st-mbtn:hover{border-color:var(--ink-soft);color:var(--ink)}
  /* месяц: сворачиваемые категории (уровень 2) + панель позиций */
  .month-cats{margin-top:0}
  .grp.closed .month-cats-body,.grp.closed .glist{display:none}
  .mi-head{margin:0 0 var(--s3);min-width:0;max-width:100%}
  .mi-title-row{display:flex;align-items:baseline;gap:7px;margin-bottom:var(--s2)}
  .mi-title{font-size:13px;font-weight:600;color:var(--ink)}
  .mi-cnt{font-size:11.5px;color:var(--muted);font-weight:400}
  .mi-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
  .mi-filters .storefilter{
    font-family:inherit;font-size:var(--ctl-sm-fs);padding:5px 9px;margin:0;min-height:0;
    border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);
    color:var(--ink-soft);max-width:150px;box-sizing:border-box}
  .mi-chip{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);border-radius:var(--r-pill);
    cursor:pointer;white-space:nowrap;min-height:0;line-height:1.35}
  .mi-chip.on{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:500}
  .mi-hint{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.4}

  /* статистика: не вылезать за экран */
  #out,.card[data-block-id^="st."]{max-width:100%;box-sizing:border-box}
  #out .mbody{max-width:100%;overflow-x:hidden}
  .itemstbl{table-layout:fixed;width:100%;max-width:100%}
  .itemstbl th,.itemstbl td{word-wrap:break-word;overflow-wrap:anywhere}

  textarea{width:100%;min-height:120px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);
           font-family:ui-monospace,Consolas,monospace;font-size:13px;resize:vertical}
  .row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
  .toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
  .toolbar button{padding:var(--ctl-md-pad);font-size:var(--ctl-md-fs);white-space:nowrap;min-height:0;border-radius:var(--r-pill)}
  .toolbar .danger{color:var(--berry)}
  button{border:0;border-radius:var(--r-sm);padding:var(--ctl-lg-pad);font-size:var(--ctl-lg-fs);font-weight:600;cursor:pointer;line-height:1.35;min-height:0;box-sizing:border-box}
  .primary{background:var(--ink);color:#fff}
  .ghost{background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:500}
  .green{background:var(--sage);color:#fff}
  button:disabled{opacity:.5;cursor:default}
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;margin:16px 0}
  h2{font-size:16px;margin:0 0 12px;color:var(--ink)}
  h3{font-size:14px;margin:18px 0 8px;color:var(--ink-soft)}
  table{width:100%;border-collapse:collapse;font-size:13px}
  th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}
  th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em}
  td.r,th.r{text-align:right}
  .muted{color:var(--muted)}
  .flag{background:#FFF3CD;color:#8a6d00;border-radius:var(--r-sm);padding:1px 7px;font-size:11px;font-weight:600}
  .slot{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
  .badge{min-width:64px;text-align:center;background:var(--ink);color:#fff;border-radius:var(--r-sm);
         padding:5px 6px;font-size:12px;font-weight:700}
  .badge.vici{background:var(--sage);color:#0a3d1c}
  .bar{height:8px;background:#e9e9f3;border-radius:var(--r-sm);flex:1;overflow:hidden;max-width:240px}
  .bar>i{display:block;height:100%;background:var(--ink)}
  .err{color:var(--berry);font-size:13px}
  .pill{display:inline-block;background:rgba(35,42,92,.08);color:var(--ink);border-radius:var(--r-pill);
        padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);margin:2px;line-height:1.35}
  .spin{display:none}.loading .spin{display:inline}
  select.catsel{border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 9px;font-size:var(--ctl-sm-fs);
                max-width:230px;background:var(--paper);cursor:pointer;color:var(--ink-soft);min-height:0}
  .catrow:hover{background:var(--paper)}
  .catrow.expanded .caret{color:var(--ink)}
  tr.catitems .catitems-cell{padding-left:18px;border-left:3px solid rgba(35,42,92,.08);vertical-align:top}
  tr.catitems .subtbl .prodrow td,
  tr.catitems .subtbl .prodpurch td{font-weight:400;font-size:12px}
  tr.catitems .subtbl .prodrow td:nth-child(2),
  tr.catitems .subtbl .prodpurch td:nth-child(2){padding-left:8px}
  .caret{display:inline-flex;align-items:center;width:14px;color:var(--ink)}
  .caret .ico{width:12px;height:12px}
  .subtbl{margin:4px 0 8px;background:var(--card);border-radius:var(--r-sm);font-size:12px;border-bottom:1px solid #eee}
  .ibadge{font-size:12px;margin-left:3px;cursor:default;vertical-align:middle;line-height:1}
  .ibadge.recur{opacity:.45}
  /* store mark: 5px radius per sketch (outside r-sm/md/pill) */
  .store-bad{display:inline-grid;place-items:center;width:20px;height:20px;font-size:10px;font-weight:700;
              line-height:1;padding:0;border-radius:5px;margin:0;margin-inline-end:0.35em;vertical-align:middle;cursor:default;
              color:#fff;flex:none}
  .store-bad.lenta{background:#0B4EA2}
  .store-bad.magnit{background:#E30613}
  .store-bad.pyaterochka{background:#00A650}
  .store-bad.dixy{background:#EE7100}
  .store-bad.lavka{background:#FF9E00}
  .store-bad.perekrestok{background:#1B7A3E}
  .store-bad.winlab{background:#7B2D8E}
  .store-bad.vkusvill{background:#6EAF3E}
  .store-bad.ermolino{background:#F5C518;color:#232A5C}
  /* Товарная динамика (постановка №32) */
  .tdyn-tabs{display:flex;gap:5px;margin-bottom:var(--s3)}
  .tdyn-tabs .c-md{flex:1;text-align:center}
  .tdyn-tabs .c-md .n{font-size:10.5px;opacity:.6;margin-left:4px}
  .tdyn-sort{display:flex;gap:6px;align-items:center;margin-bottom:var(--s3);
    font-size:11.5px;color:var(--muted);flex-wrap:wrap}
  .tdyn-list{margin:0}
  .tdyn-it{border-top:1px solid var(--line);padding:11px 0;cursor:pointer}
  .tdyn-it:first-child{border-top:0}
  .tdyn-top{display:flex;align-items:flex-start;gap:9px}
  .tdyn-nm{flex:1;min-width:0}
  .tdyn-nm b{display:block;font-size:13px;font-weight:600;line-height:1.35;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tdyn-nm span{font-size:11px;color:var(--muted)}
  .tdyn-rt{text-align:right;flex:none}
  .tdyn-rt .v{font-size:13px;font-weight:600;white-space:nowrap}
  .tdyn-rt .d{font-size:11px;white-space:nowrap;margin-top:2px}
  .tdyn-up{color:var(--berry)}
  .tdyn-down{color:var(--sage)}
  .tdyn-flat{color:var(--muted)}
  .tdyn-meta{display:flex;gap:12px;margin-top:7px;font-size:11.5px;color:var(--muted);
    flex-wrap:wrap}
  .tdyn-meta b{color:var(--ink-soft);font-weight:500}
  .tdyn-spark{margin-top:8px;height:34px}
  .tdyn-spark svg{width:100%;height:34px;display:block}
  .tdyn-det{display:none;margin-top:10px;padding:11px;background:var(--paper);
    border-radius:var(--r-sm)}
  .tdyn-it.open .tdyn-det{display:block}
  .tdyn-big{height:96px}
  .tdyn-big svg{width:100%;height:96px;display:block}
  .tdyn-months{display:flex;margin-top:3px}
  .tdyn-months span{flex:1;text-align:center;font-size:9px;color:var(--muted)}
  .tdyn-rows{margin-top:9px}
  .tdyn-r{display:flex;align-items:center;gap:8px;font-size:11.5px;padding:3px 0;
    color:var(--ink-soft)}
  .tdyn-r .g{flex:1}
  .tdyn-note{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.4}
  .tdyn-verdict{font-size:12px;color:var(--ink-soft);margin-top:9px;line-height:1.5;
    padding-top:9px;border-top:1px solid var(--line)}
  .tdyn-verdict b{color:var(--ink);font-weight:600}
  /* Карточка товара (постановка №35) */
  .pcard-search{position:relative;margin-bottom:var(--s2)}
  .pcard-search .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);
    width:15px;height:15px;stroke:var(--muted);margin:0}
  #pcardQ{padding-left:38px}
  .pcard-hint{font-size:11.5px;color:var(--muted);margin-bottom:var(--s3)}
  .pcard-res{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
    overflow:hidden;margin-bottom:var(--s3)}
  .pcard-ri{display:flex;align-items:center;gap:10px;padding:11px var(--s3);cursor:pointer;
    border-top:1px solid var(--line);min-width:0}
  .pcard-ri:first-child{border-top:0}
  .pcard-ri.on{background:rgba(35,42,92,.04)}
  .pcard-ri .t{flex:1;min-width:0}
  .pcard-ri .t b{display:block;font-size:13px;font-weight:600;line-height:1.3;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pcard-ri .t span{font-size:11px;color:var(--muted)}
  .pcard-ri .p{text-align:right;flex:none}
  .pcard-ri .p .v{font-size:13px;font-weight:600;white-space:nowrap}
  .pcard-ri .p .d{font-size:11px;white-space:nowrap;margin-top:1px}
  .pcard-prod{min-width:0}
  .pcard-nm{font-size:15px;font-weight:600;line-height:1.35;margin:0 0 3px}
  .pcard-cat{font-size:11.5px;color:var(--muted);margin-bottom:var(--s3)}
  .pcard-now{display:flex;align-items:flex-end;gap:12px;margin-bottom:var(--s3);flex-wrap:wrap}
  .pcard-now .big{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1}
  .pcard-now .ch{font-size:13px;font-weight:600;padding-bottom:3px}
  .pcard-now .ch.per{color:var(--ink-soft);font-weight:500}
  .pcard-now .unit{font-size:11.5px;color:var(--muted);padding-bottom:4px}
  .pcard-per{display:flex;gap:5px;margin-bottom:var(--s3)}
  .pcard-per .c-sm{flex:1;text-align:center;justify-content:center}
  .pcard-chart{position:relative;height:130px;margin-bottom:var(--s2)}
  .pcard-chart svg{width:100%;height:130px;display:block}
  .pcard-months{display:flex;min-width:0}
  .pcard-months span{flex:1;text-align:center;font-size:9px;color:var(--muted);
    min-width:0;overflow:hidden;text-overflow:ellipsis}
  .pcard-stats{display:flex;gap:var(--s2);margin-top:var(--s3)}
  .pcard-stats .b{flex:1;min-width:0;background:var(--paper);border-radius:var(--r-sm);padding:9px 10px}
  .pcard-stats .b .k{font-size:10.5px;color:var(--muted);margin-bottom:2px}
  .pcard-stats .b .v{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pcard-verdict{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-top:var(--s3);
    padding-top:var(--s3);border-top:1px solid var(--line)}
  .pcard-verdict b{color:var(--ink);font-weight:600}
  .pcard-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
    font-weight:600;margin:var(--s4) 0 var(--s2)}
  .pcard-st,.pcard-buy{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12.5px;
    border-top:1px solid var(--line);min-width:0;flex-wrap:wrap}
  .pcard-buy{font-size:12px;color:var(--ink-soft)}
  .pcard-st .g{flex:1;min-width:0}
  .pcard-buy .g{flex:none}
  .pcard-buy .qty{flex:1;min-width:0;font-size:11.5px;color:var(--ink-soft)}
  .pcard-st .v,.pcard-buy .p{font-weight:500;white-space:nowrap;flex:none}
  .pcard-st .best{font-size:10.5px;color:var(--sage);background:#EDF5EF;
    padding:2px 7px;border-radius:var(--r-pill);flex:none}
  .pcard-buy .tag{font-size:10px;color:var(--muted);background:var(--paper);
    padding:1px 6px;border-radius:var(--r-pill);flex:none}
  .pcard-buy .store-bad.sm{width:17px;height:17px;font-size:8.5px}
  .pcard-old{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
  .pcard-old .ghead{cursor:pointer;user-select:none}
  @media (max-width:400px){
    .pcard-now .big{font-size:26px}
    .pcard-stats{gap:6px}
    .pcard-stats .b{padding:8px 7px}
    .pcard-stats .b .v{font-size:12.5px}
  }
  .dyn-grid{display:none} /* legacy */
  .modal-bg{position:fixed;inset:0;background:rgba(35,42,92,.35);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--s4)}
  /* Постановка №21 D — единое оформление модальных окон */
  .modal-box{
    background:var(--card);border-radius:var(--r-md);padding:var(--s5);
    max-width:420px;width:100%;max-height:90vh;overflow-y:auto;overflow-x:hidden;
    box-shadow:0 8px 32px rgba(35,42,92,.18);border:1px solid var(--line);
    -webkit-overflow-scrolling:touch}
  .modal-box.wide{max-width:560px}
  .modal-box.xwide{max-width:720px}
  .modal-head{
    display:flex;align-items:flex-start;gap:var(--s3);margin:0 0 var(--s3);
    position:sticky;top:calc(-1 * var(--s5));background:var(--card);z-index:2;
    padding:var(--s5) 0 var(--s2);margin-top:calc(-1 * var(--s5));margin-left:0;margin-right:0}
  .modal-head h3,.modal-box > h3{
    margin:0;flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--ink);
    line-height:1.35;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
  .modal-head h3 .ico,.modal-box > h3 .ico{width:18px;height:18px;color:var(--ink-soft)}
  .modal-close{
    flex:none;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:var(--r-sm);
    background:transparent;color:var(--muted);cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center}
  .modal-close:hover{background:var(--paper);color:var(--ink)}
  .modal-close .ico{margin:0;width:16px;height:16px}
  .modal-box .primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}
  .modal-box .ghost{background:var(--paper);border:1px solid var(--line);color:var(--ink)}
  .modal-box .danger,.modal-box button.danger,.modal-row-actions .danger{
    color:var(--berry);border-color:rgba(193,81,107,.35)}
  .modal-box .primary.danger{background:var(--berry);border-color:var(--berry);color:#fff}
  .modal-input, .modal-box input[type=text], .modal-box input[type=email],
  .modal-box input[type=password], .modal-box input[type=search], .modal-box input[type=number],
  .modal-box input[type=date], .modal-box select, .modal-box textarea{
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
    font-size:var(--fld-fs);padding:var(--fld-pad);color:var(--ink);width:100%;box-sizing:border-box}
  .modal-box select.catsel,.modal-box select.cat-link-cat,.modal-box select.catsel-cat{
    width:auto;max-width:100%}
  .modal-list{
    max-height:min(50vh,340px);overflow-y:auto;overflow-x:hidden;margin:var(--s3) 0;
    border:1px solid var(--line);border-radius:var(--r-md);font-size:13px;background:var(--paper)}
  .modal-list table{width:100%;border-collapse:collapse}
  .modal-list th,.modal-list td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
  .modal-list th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.03em;font-weight:600}
  .modal-list td.r,.modal-list th.r,.modal-list .num{text-align:right;font-family:var(--font-num)}
  .modal-list tr:last-child td{border-bottom:0}
  .modal-list tr:hover td{background:rgba(255,255,255,.7)}
  .modal-btns{display:flex;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4)}
  .modal-btns button{flex:1;min-width:120px}
  .modal-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
  .modal-row-actions button{padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);flex:none;min-width:auto;
    border-radius:var(--r-pill);min-height:0;font-weight:500;line-height:1.35}
  .cat-link-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 4px;font-size:12.5px;color:var(--ink-soft)}
  .cat-link-filters label{display:inline-flex;align-items:center;gap:4px}
  .cat-link-filters input[type=date],.cat-link-filters select{
    font-size:12.5px;padding:5px 7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);width:auto}
  .cat-link-filters input[type=search]{flex:1 1 160px;min-width:120px}
  .cat-link-check{white-space:nowrap}
  .cat-link-list{max-height:min(55vh,420px)}
  .cat-link-row{
    display:grid;grid-template-columns:72px minmax(0,1.4fr) minmax(0,0.8fr) minmax(100px,0.9fr);
    gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12.5px}
  .cat-link-row:last-child{border-bottom:0}
  .cat-link-date{color:var(--muted);white-space:nowrap;font-family:var(--font-num)}
  .cat-link-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
  .cat-link-store{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:12px}
  .cat-link-store .store-bad{margin-inline-end:4px}
  .cat-link-cat{width:100%;max-width:100%;font-size:12px;min-height:32px}
  @media(max-width:600px){
    .cat-link-row{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
    .cat-link-name{grid-column:1 / -1}
    .cat-link-cat{grid-column:1 / -1}
  }
  .modal-msg{color:var(--berry);font-size:13px;margin:8px 0;white-space:pre-wrap;line-height:1.45}
  .modal-ok{color:var(--sage);font-size:13px;margin:8px 0}
  .mail-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
  .mail-row:last-child{border-bottom:0}
  .mail-row.exists{opacity:.55}
  .mail-row.exists input{pointer-events:none}
  .mail-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-sm);white-space:nowrap}
  .mail-status.new{background:#e8f5e9;color:var(--sage)}
  .mail-status.exists{background:#eee;color:var(--muted)}
  .mail-status.check{background:#FFF3E0;color:var(--amber)}
  .md-toggle{margin-left:4px;/* optical */ border:none;cursor:pointer;vertical-align:middle;
              opacity:.45;background:rgba(95,158,118,.15);color:var(--sage);
              padding:0 4px;min-width:1.1em;font-size:10px;font-weight:700;line-height:1.45;
              border-radius:var(--r-sm);font-family:inherit}
  .md-toggle.on{opacity:1;background:var(--sage);color:#fff}
  .md-toggle:hover{opacity:.85}
  .md-badge{display:inline-block;margin-left:2px;padding:0 4px;min-width:1.1em;text-align:center;
            font-size:10px;font-weight:700;line-height:1.45;letter-spacing:-0.02em;
            color:#fff;background:var(--sage);border-radius:var(--r-sm);white-space:nowrap;cursor:help;
            vertical-align:middle}
  .pts-pay-badge{display:inline-block;margin-left:2px;padding:0 4px;min-width:1.1em;text-align:center;
                 font-size:10px;font-weight:700;line-height:1.45;letter-spacing:-0.02em;
                 color:#6a5200;background:#FFF3C4;border-radius:var(--r-sm);white-space:nowrap;cursor:help;
                 vertical-align:middle}
  .pts-pay-badge.full{color:#5c3d00;background:#ffe082}
  .word-pick{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
  .word-pick button{padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);background:rgba(35,42,92,.08);color:var(--ink);
    border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;min-height:0;line-height:1.35;font-weight:500}
  .word-pick button:hover{background:#dde}
  .merge-chk{margin:0;vertical-align:middle;cursor:pointer}
  .merge-swipe-action{display:none}
  .sum-wrap{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
  .sum-amt{text-align:right;min-width:0}
  .sum-amt .sum-qty{white-space:nowrap}
  .sum-amt .sum-qty::after{content:' ='}
  .sum-amt .sum-main{white-space:nowrap}
  .sum-right{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
  .item-actions{display:inline-flex;align-items:center;gap:3px}
  .prodrow{cursor:pointer}
  .prodrow:hover td{background:#f4f4fc}
  .receipt-edit-row td{font-size:12px;vertical-align:middle}
  .receipt-edit-del{color:var(--berry);font-size:11px;padding:2px 8px}
  .receipt-link:hover{text-decoration:underline}
  tr.itemrow.flash-find td{background:#FFF9C4!important}
  .prodpurch td{padding-left:20px!important;font-size:11px}
  .prodpurch .orig-name{color:var(--muted);font-size:10px;display:block;margin-top:2px}
  .price-cheap{color:var(--sage);font-weight:600}
  .price-dear{color:var(--muted)}
  .price-diff{font-weight:600}
  .storefilter{font-size:12px;max-width:140px;margin-right:10px}
  tr.daytotal-row td{background:rgba(35,42,92,.08);border-top:2px solid #c5cae9;padding:7px 6px;font-size:13px}
  tr.daytotal-row .daytotal-date{font-weight:700;margin-right:10px}
  tr.daytotal-row .daytotal-amt{font-weight:700;color:var(--ink);font-size:15px}
  tr.daytotal-row .daytotal-cnt{font-size:12px}
  tr.daytotal-row .daytotal-store{font-size:12px;color:var(--ink-soft);margin-right:6px}
  tr.receipt-head td{
    background:var(--paper);padding:8px 8px 6px 10px;font-size:12.5px;font-weight:500;
    color:var(--ink-soft);border-bottom:1px solid transparent;line-height:1.35}
  tr.receipt-head:not(.first) td{
    padding-top:12px;border-top:1px solid var(--line)}
  tr.receipt-head.first td{border-top:0}
  tr.receipt-head .rcpt-mark{display:inline-flex;vertical-align:middle;margin-right:6px}
  tr.receipt-head .rcpt-mark .store-bad{margin:0}
  tr.receipt-head .rcpt-store{color:var(--ink);font-weight:600}
  tr.receipt-head .rcpt-car,
  tr.receipt-head .rcpt-grow{display:none}
  tr.receipt-head .rcpt-cnt{display:none}
  tr.receipt-head .rcpt-time::before{content:' · '}
  tr.receipt-head .rcpt-amt::before{content:' · '}
  tr.receipt-head .rcpt-amt{color:var(--ink);font-variant-numeric:tabular-nums}
  tr.receipt-head .rcpt-buyer{color:var(--muted);font-weight:400}
  tr.receipt-head .rcpt-buyer.none{color:var(--amber);font-weight:600}
  tr.receipt-head .rcpt-sep{color:var(--muted)}
  .month-sum .month-p,
  .month-sum .month-det{display:none}
  .month-sum .month-desk.sum-amt{display:inline}
  .month-sum .month-desk.sum-right{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
  .itemstbl tr.itemrow td:first-child{padding-left:18px}
  .store-activity-chart{margin-top:4px}
  .sa-scroll{overflow-x:auto;padding-bottom:6px}
  .sa-bars{display:flex;align-items:flex-end;gap:5px;min-height:190px;padding-top:4px}
  .sa-col{flex:0 0 58px;display:flex;flex-direction:column;align-items:center}
  .sa-bar{width:100%;display:flex;flex-direction:column-reverse;border-radius:var(--r-sm) var(--r-sm) 0 0;overflow:hidden;background:var(--paper)}
  .sa-seg{width:100%;min-height:0;box-sizing:border-box}
  .sa-seg:hover{filter:brightness(1.08)}
  .sa-total{font-size:10px;color:var(--ink-soft);margin-bottom:4px;white-space:nowrap;text-align:center;line-height:1.2}
  .sa-label{font-size:9px;color:var(--muted);margin-top:5px;text-align:center;line-height:1.25;max-width:58px}
  .sa-grand{margin-top:10px;font-size:13px;font-weight:600;color:var(--ink)}
  .sa-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:12px;font-size:12px}
  .sa-leg-item{display:flex;align-items:center;gap:5px}
  .sa-sq{width:12px;height:12px;border-radius:var(--r-sm);flex-shrink:0}
  .sa-foot{margin-top:12px;font-size:12px;color:var(--ink-soft);line-height:1.7}
  .sa-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}
  .sa-range-toggle{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
  .sa-range-toggle button{
    flex:1 1 calc(25% - 8px);min-width:72px;min-height:0;border:1px solid var(--line);
    border-radius:var(--r-pill);background:var(--paper);font-size:var(--ctl-md-fs);font-weight:500;
    color:var(--ink-soft);cursor:pointer;touch-action:manipulation;padding:var(--ctl-md-pad);line-height:1.35}
  .sa-range-toggle button.active,.sa-range-toggle button.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .sa-period-note{font-size:12px;color:var(--ink-soft);margin:-4px 0 10px;line-height:1.4}
  .overview-toolbar{display:none;margin:0 0 10px}
  .overview-toolbar button{width:100%;font-size:14px}
  .view-only-label{display:none;font-size:13px;color:var(--ink-soft)}
  /* Покупки — главный экран */
  .purch-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px;margin:12px 0}
  .purch-period-toggle{display:flex;gap:8px;margin-bottom:14px}
  .purch-period-toggle button,.purch-period-toggle .c-md{
    flex:1;min-height:0;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);
    font-size:var(--ctl-md-fs);font-weight:500;color:var(--ink-soft);cursor:pointer;
    padding:var(--ctl-md-pad);line-height:1.35}
  .purch-period-toggle button.active,.purch-period-toggle button.on,.purch-period-toggle .c-md.on{
    background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .purch-caption{font-size:12px;color:var(--muted);margin-bottom:var(--s2)}
  .purch-total{
    font-size:32px;font-weight:700;color:var(--ink);line-height:1;margin:var(--s1) 0 0;
    font-family:var(--font-num);letter-spacing:-.02em;cursor:pointer;user-select:none;
    display:inline-flex;align-items:flex-start;gap:2px;/* optical */}
  .purch-total-hint{
    width:5px;height:5px;border-radius:50%;background:var(--amber);
    margin-top:4px;/* optical */ opacity:.9;transition:opacity .2s;flex:none}
  .purch-total.open .purch-total-hint{opacity:.25}
  .purch-avg{
    font-size:13px;color:var(--ink-soft);margin-top:var(--s2);
    max-height:0;overflow:hidden;opacity:0;transition:max-height .22s,opacity .22s}
  .purch-avg.show{max-height:40px;opacity:1}
  .purch-avg b{font-family:var(--font-num);font-weight:600;color:var(--ink)}
  .purch-meta{font-size:13px;color:var(--ink-soft);margin-bottom:10px;line-height:1.45}
  .purch-compare{font-size:13px;margin-bottom:12px}
  .purch-compare.up{color:var(--berry)}
  .purch-compare.down{color:var(--sage)}
  .purch-chips-label{
    display:flex;align-items:baseline;gap:9px;/* optical */ flex-wrap:wrap;
    margin-top:var(--s5);font-size:11px;text-transform:uppercase;
    letter-spacing:.07em;color:var(--muted);font-weight:600}
  .purch-chips-cnt{text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:400;color:#A9AEC0}
  .purch-chips-label .purch-filter-reset{text-transform:none;letter-spacing:0;font-weight:500}
  .purch-chips{display:flex;flex-wrap:wrap;gap:6px;/* optical */ margin-top:var(--s2)}
  .purch-chip{
    position:relative;display:inline-flex;align-items:center;gap:6px;overflow:hidden;
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);border-radius:var(--r-pill);
    cursor:pointer;user-select:none;max-width:100%;min-height:0;line-height:1.35;box-sizing:border-box}
  .purch-chip-fill{position:absolute;inset:0 auto 0 0;background:rgba(35,42,92,.14);z-index:0}
  .purch-chip > :not(.purch-chip-fill){position:relative;z-index:1}
  .purch-chip-dot{width:8px;height:8px;border-radius:50%;flex:none}
  .purch-chip b,.purch-chip .num{font-family:var(--font-num);font-weight:500;font-size:12px;white-space:nowrap}
  .purch-store-chip .num,.purch-buyer-chip .num{white-space:nowrap}
  .purch-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
  .purch-chip.on .purch-chip-fill{background:rgba(255,255,255,.18)}
  .purch-stores,.purch-buyers{/* chips containers */}
  .purch-period-toggle button,.purch-period-toggle .c-md{flex:1 1 calc(33.33% - 8px)}
  .purch-fold{margin-top:var(--s3)}
  .purch-day-head{
    font-size:12px;font-weight:500;padding:10px 0 6px;margin-top:var(--s4);
    color:var(--muted);display:flex;justify-content:space-between;gap:var(--s3);
    border-bottom:none}
  .purch-day-total{color:var(--ink-soft);margin-left:6px;font-family:var(--font-num);font-weight:500}
  /* Кассовая лента: без рамки/скругления; перфорация = --card (менять вместе с фоном) */
  .purch-receipt-card{
    --receipt-card:var(--card);
    background:var(--receipt-card);border:0;border-radius:0;padding:var(--s4);
    margin:0 0 var(--s3);position:relative;
    filter:drop-shadow(0 1px 2px rgba(35,42,92,.07));
    -webkit-tap-highlight-color:transparent}
  .purch-receipt-card::after{
    content:'';position:absolute;left:0;right:0;bottom:-7px;height:8px;
    background:radial-gradient(circle at 6px 0,transparent 6px,var(--receipt-card) 6.5px) 0 0/12px 8px repeat-x}
  .purch-receipt-head{
    display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3);cursor:pointer}
  .purch-receipt-main{flex:1;min-width:0}
  .purch-receipt-store{
    display:inline-flex;align-items:center;gap:6px;/* optical */ font-size:13px;font-weight:600}
  .purch-receipt-sum{
    text-align:right;flex:none;white-space:nowrap;color:var(--ink);font-family:var(--font-num)}
  .purch-receipt-sum .purch-paid{font-size:14px;font-weight:600;white-space:nowrap}
  .purch-receipt-sum .purch-paid-free{color:var(--sage)}
  .purch-receipt-sum .purch-was{font-size:11px;color:var(--muted);white-space:nowrap;margin-top:2px}
  .purch-receipt-sum .purch-was s{opacity:.8}
  .purch-pc-note{
    display:inline;margin:0;padding:0;border:0;background:none;
    font-family:inherit;font-size:11px;font-weight:400;color:var(--muted);
    cursor:help;line-height:1.3;white-space:nowrap}
  .leader-row .purch-pc-note-wrap{margin-left:6px;flex:none}
  .purch-pc-note:hover{color:var(--ink-soft)}
  .purch-bonus{display:inline-flex;align-items:center;gap:5px;margin-top:7px;
    font-size:11px;padding:3px 9px 3px 7px;border-radius:var(--r-pill);
    background:#FDF6EC;color:var(--amber);font-weight:500;max-width:100%;
    position:relative}
  .purch-bonus .ico{width:11px;height:11px;margin:0;stroke:currentColor;fill:none;stroke-width:2.2}
  .purch-bonus.free{background:#EDF5EF;color:var(--sage)}
  .purch-full-price{color:var(--ink-soft);font-weight:400}
  .purch-price-warn{margin-top:8px;display:flex;gap:8px;font-size:11.5px;line-height:1.45;
    color:var(--ink-soft);background:#FDF6EC;border:1px solid #F0DCC0;
    border-radius:var(--r-sm);padding:8px 10px}
  .purch-price-warn .ico{width:14px;height:14px;stroke:var(--amber);fill:none;stroke-width:2;
    flex:none;margin:1px 0 0;margin-inline-end:0}
  .purch-price-warn b{color:var(--ink);font-weight:600}
  .purch-price-warn-act{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
  .purch-price-warn-act .c-sm{
    border:1px solid #F0DCC0;background:#fff;color:var(--ink);
    border-radius:var(--r-pill);padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);font-weight:500;cursor:pointer}
  .purch-receipt-meta{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.35}
  .purch-receipt-items{
    display:none;margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--line)}
  .purch-receipt-card.open .purch-receipt-items{display:block}
  .purch-receipt-buyer{margin-top:var(--s2);font-size:13px;line-height:1.35}
  .purch-receipt-buyer:empty{display:none}
  .purch-receipt-buyer-name{color:var(--ink-soft)}
  .purch-receipt-actions{
    display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:var(--s2)}
  .purch-receipt-actions .store-override-sel{
    font-size:12px;max-width:140px;min-height:32px;padding:4px 6px;
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}
  .purch-receipt-actions .pts-spent-inp{
    width:72px;font-size:12px;min-height:32px;padding:4px 6px;
    border:1px solid var(--line);border-radius:var(--r-sm)}
  .purch-receipt-status{font-size:12px;font-weight:600;margin-top:6px;line-height:1.35}
  .purch-receipt-list{margin-top:4px}
  .purch-months{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
  .purch-month-btn{
    padding:var(--ctl-md-pad);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);
    font-size:var(--ctl-md-fs);cursor:pointer;touch-action:manipulation;min-height:0;line-height:1.35;font-weight:500}
  .purch-month-btn:active{background:rgba(35,42,92,.08)}
  @media (min-width:601px){
    #purchases-desktop-wrap{margin-bottom:8px}
  }
  /* Режим 2.0: мобильный ≤600px = просмотр; админка только на десктопе */
  .mobile-only{display:none}
  @media (max-width:600px){
    .desktop-only{display:none!important}
    .mobile-only{display:block!important}
    .header-icon-btn.mobile-only{display:inline-flex!important}
    .view-only-label{display:inline}
  }
  #btnMergePick:disabled{opacity:.45;cursor:default}
  .mail-log-wrap{margin-top:14px;border-top:1px solid #e8e8ef;padding-top:10px}
  .mail-log-toggle{font-size:12px;color:var(--ink-soft);cursor:pointer;user-select:none}
  .mail-log-toggle:hover{color:var(--ink)}
  .mail-log-list{max-height:160px;overflow-y:auto;background:var(--paper);border-radius:var(--r-sm);padding:8px 10px;font-size:11px;line-height:1.55;color:var(--ink-soft)}
  .mail-log-list.collapsed{display:none}
  .mail-log-line{white-space:pre-wrap}
  #mailStatus{font-size:13px;margin:8px 0 4px;min-height:1.4em}
  .mail-debug-block{margin-top:14px;border-top:1px solid #e8e8ef;padding-top:10px}
  .mail-debug-pre{font-size:10px;font-family:Consolas,monospace;white-space:pre-wrap;word-break:break-all;background:var(--paper);padding:8px;border-radius:var(--r-sm);max-height:220px;overflow:auto;margin:6px 0}
  .mail-debug-part{font-size:11px;line-height:1.5;margin-bottom:6px}
  .mail-days-wrap{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);flex-wrap:wrap}
  .mail-days-wrap input[type=range]{width:140px;vertical-align:middle}
  .mail-days-choice.active{background:var(--ink);color:#fff;border-color:var(--ink)}
  .mail-first-hint{font-size:11px;color:#b8860b;max-width:320px;line-height:1.35}
  .mail-mob-progress-wrap{height:10px;background:rgba(35,42,92,.08);border-radius:var(--r-sm);overflow:hidden;margin:18px 0 8px}
  .mail-mob-progress-bar{height:100%;background:var(--ink);border-radius:var(--r-sm);transition:width .3s ease;min-width:2%}
  .mail-mob-pct{text-align:center;font-size:18px;font-weight:700;color:var(--ink);margin-bottom:4px}
  .mail-mob-list{max-height:55vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .mail-mob-row{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.4;cursor:pointer}
  .mail-mob-row:last-child{border-bottom:none}
  .mail-mob-row input{margin-top:4px;min-width:20px;min-height:20px}
  .mail-mob-row-main{flex:1;min-width:0}
  .shop-wrap{max-width:420px;margin:0 auto;padding-bottom:8px}
  .shop-mbody{position:relative;padding-bottom:12px}
  .shop-trip-top{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--s3)}
  .shop-trip-sum{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s3) var(--s4);margin-bottom:var(--s3)}
  .shop-trip-sum-t{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
    font-weight:600;margin-bottom:var(--s2)}
  .shop-trip-done-list{display:flex;flex-direction:column;gap:6px}
  .shop-trip-dr{display:flex;align-items:center;gap:8px;font-size:12.5px}
  .shop-trip-ok{display:inline-flex;color:var(--sage)}
  .shop-trip-ok .ico{width:16px;height:16px}
  .shop-trip-dn{flex:1;min-width:0}
  .shop-trip-ds{font-weight:500}
  .shop-trip-fin{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line);
    display:flex;justify-content:space-between;font-size:13px;font-weight:600}
  .shop-trip-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s2)}
  .shop-trip-link{font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);min-height:0;
    border-radius:var(--r-pill);line-height:1.35;font-weight:500}

  .shop-stores-wrap{position:relative;margin:0 -4px var(--s2)}
  .shop-stores{display:flex;gap:6px;overflow-x:auto;padding:0 4px 8px;
    scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .shop-stores::-webkit-scrollbar{display:none}
  /* затемнение правого края — на фоне карточки (--card), не --paper */
  .shop-stores-wrap::after{content:'';position:absolute;right:0;top:0;bottom:8px;width:40px;
    background:linear-gradient(90deg,rgba(255,255,255,0),var(--card) 55%);pointer-events:none;z-index:1}
  .shop-st{display:inline-flex;align-items:center;gap:6px;flex:none;cursor:pointer;scroll-snap-align:start;
    border:1px solid var(--line);background:var(--paper);border-radius:var(--r-pill);
    padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);white-space:nowrap;
    font-family:inherit;color:var(--ink);min-height:0;line-height:1.35;font-weight:500}
  .shop-st .store-bad{margin:0}
  .shop-st.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .shop-st-cnt{font-size:11px;opacity:.65}

  .shop-prog{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s4);margin:0 0 var(--s3)}
  .shop-prog-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
  .shop-prog-big,.shop-prog-sum{font-size:15px;font-weight:600}
  .shop-prog-track{height:6px;background:var(--paper);border-radius:var(--r-pill);margin-top:10px;overflow:hidden}
  .shop-prog-track i{display:block;height:100%;background:var(--sage);border-radius:var(--r-pill)}
  .shop-prog-sub{display:flex;justify-content:space-between;gap:8px;margin-top:7px;
    font-size:11.5px;color:var(--muted);flex-wrap:wrap}

  .shop-grp{margin-top:var(--s4)}
  .shop-grp:first-child{margin-top:0}
  .shop-grp.closed .shop-glist{display:none}

  .shop-it{display:flex;align-items:center;gap:11px;padding:11px 4px;cursor:pointer;
    border-radius:var(--r-sm);user-select:none;-webkit-tap-highlight-color:transparent}
  .shop-it-box{width:21px;height:21px;border-radius:6px;border:1.8px solid var(--line);
    flex:none;display:grid;place-items:center;background:var(--card)}
  .shop-it-box .ico{width:12px;height:12px;opacity:0;stroke:#fff}
  .shop-it-nm{flex:1;font-size:13.5px;line-height:1.3;min-width:0}
  .shop-it-pr{font-size:13px;font-weight:500;white-space:nowrap}
  .shop-it.cart .shop-it-box{background:var(--sage);border-color:var(--sage)}
  .shop-it.cart .shop-it-box .ico{opacity:1}
  .shop-it.cart .shop-it-nm,.shop-it.cart .shop-it-pr{color:var(--muted);text-decoration:line-through}
  .shop-it.elsewhere .shop-it-nm{color:var(--muted)}
  .shop-it.elsewhere .shop-it-box{opacity:.45}
  .shop-it-note{font-size:11.5px;color:var(--muted);white-space:nowrap;max-width:42%;
    overflow:hidden;text-overflow:ellipsis}

  .shop-add{display:flex;align-items:center;gap:9px;padding:10px 4px;color:var(--ink-soft);
    font-size:12.5px;cursor:pointer}
  .shop-add .ico{width:15px;height:15px}

  .shop-skipped{background:var(--card);border:1px dashed var(--line);border-radius:var(--r-sm);
    padding:10px 12px;margin-top:var(--s3);font-size:12px;color:var(--muted);
    display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
  .shop-skipped b{font-weight:500;color:var(--ink-soft)}
  .shop-skipped span{cursor:pointer;color:var(--ink-soft)}
  .shop-skipped-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .shop-skipped-btn{font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);min-height:0;
    border-radius:var(--r-pill);line-height:1.35;font-weight:500}

  .shop-empty{text-align:center;padding:var(--s5) 0;color:var(--muted);font-size:13px}

  /* кнопка «Купил в…» — всегда над нижней навигацией (как в эскизе) */
  .shop-close-bar{
    position:fixed;left:0;right:0;z-index:850;
    bottom:calc(64px + env(safe-area-inset-bottom, 0px));
    margin:0 auto;max-width:420px;padding:0 16px 10px;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(246,242,238,0),var(--paper) 40%)}
  body:not(.has-mobile-nav) .shop-close-bar{bottom:16px}
  .shop-close-bar .shop-close-btn,.shop-close-bar .shop-close-hint{pointer-events:auto}
  .shop-close-btn{width:100%;display:flex;justify-content:space-between;align-items:center;
    gap:10px;box-shadow:0 4px 14px rgba(35,42,92,.18)}
  .shop-close-btn:disabled{background:var(--line);color:var(--muted);box-shadow:none;cursor:default}
  .shop-close-hint{text-align:center;font-size:11px;color:var(--muted);margin-top:6px;line-height:1.35}

  .shop-history-card{margin-top:var(--s3)}
  .shop-hist-row{padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
  .shop-hist-row:last-child{border-bottom:0}
  .shop-hist-when{font-weight:600;margin-bottom:2px}
  .shop-hist-stores{font-size:12.5px;color:var(--ink-soft);line-height:1.4}
  .shop-hist-meta{font-size:11.5px;margin-top:3px}
  .shop-hist-more{margin-top:8px;text-align:center}

  /* legacy stubs removed from layout */
  .shop-hint,.shop-store-pick,.shop-total{display:none}

  /* постановка №36: дом/работа и пора пополнить */
  .places-body{padding:0 var(--s4) var(--s4)}
  .places-sub{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin:0 0 16px}
  .places-hint{font-size:11.5px;color:var(--ink-soft);line-height:1.5;background:var(--paper);
    border:1px solid var(--line);border-radius:8px;padding:11px 13px;margin-bottom:18px;
    display:flex;gap:9px}
  .places-hint .ico{width:15px;height:15px;stroke:var(--amber);flex:none;margin-top:1px}
  .places-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
    font-weight:600;margin:0 0 8px}
  .pt-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;
    padding:12px 14px;margin-bottom:8px}
  .pt-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
  .pt-mk{flex:none;margin-top:1px}
  .pt-info{flex:1;min-width:0}
  .pt-info b{display:block;font-size:13.5px;font-weight:600}
  .pt-info span{font-size:11.5px;color:var(--muted);line-height:1.4}
  .pt-cnt{font-size:11px;color:var(--muted);white-space:nowrap;flex:none}
  .pt-seg{display:flex;gap:5px}
  .pt-seg button{flex:1;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);
    font-family:inherit;font-size:12px;padding:7px 0;border-radius:8px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:6px;min-height:0}
  .pt-seg button .ico{width:13px;height:13px;margin:0}
  .pt-seg button.pt-home.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .pt-seg button.pt-work.on{background:var(--amber);color:#fff;border-color:var(--amber);font-weight:600}

  .replenish-wrap{max-width:420px;margin:0 auto}
  .replenish-wrap .htop p{font-size:12.5px;color:var(--ink-soft);margin:0 0 var(--s3);line-height:1.5}
  .replenish-stores{display:flex;gap:5px;overflow-x:auto;margin:0 -4px var(--s3);padding:0 4px 8px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .replenish-stores::-webkit-scrollbar{display:none}
  .replenish-stores .sp{display:inline-flex;align-items:center;gap:6px;flex:none;cursor:pointer;
    border:1px solid var(--line);background:var(--card);border-radius:var(--r-pill);
    padding:6px 13px 6px 7px;font-size:12.5px;white-space:nowrap;font-family:inherit;color:var(--ink);
    min-height:0;line-height:1.35}
  .replenish-stores .sp .store-bad{margin:0}
  .replenish-stores .sp.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .replenish-wrap .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
    font-weight:600;margin:var(--s4) 0 var(--s2)}
  .replenish-wrap .lbl:first-child{margin-top:0}
  .need{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
    margin-bottom:var(--s2);overflow:hidden}
  .nh{display:flex;align-items:center;gap:11px;padding:12px 14px;cursor:pointer;user-select:none}
  .nh .dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--line)}
  .nh.urgent .dot{background:var(--berry)}
  .nh.soon .dot{background:var(--amber)}
  .nh .t{flex:1;min-width:0}
  .nh .t b{display:block;font-size:14px;font-weight:600}
  .nh .t span{font-size:11.5px;color:var(--muted)}
  .nh .chk{width:24px;height:24px;border-radius:6px;border:1.8px solid var(--line);
    flex:none;display:grid;place-items:center;background:var(--card);cursor:pointer}
  .nh .chk .ico{width:13px;height:13px;stroke:#fff;opacity:0;margin:0}
  .need.done .nh .chk{background:var(--sage);border-color:var(--sage)}
  .need.done .nh .chk .ico{opacity:1}
  .need.done .nh .t b{color:var(--muted);text-decoration:line-through}
  .need.done .nh .dot{background:var(--line)}
  .nh .car{width:13px;height:13px;stroke:var(--muted);flex:none;transition:transform .18s;margin:0}
  .need.open .car{transform:rotate(180deg)}
  .nb{display:none;padding:0 14px 12px;border-top:1px solid var(--line)}
  .need.open .nb{display:block}
  .nb .cap{font-size:11px;color:var(--muted);margin:12px 0 8px}
  .opt{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12.5px;
    border-top:1px solid var(--line)}
  .opt:first-of-type{border-top:0}
  .opt .bar{flex:none;width:44px;height:5px;background:var(--card);border-radius:var(--r-pill);overflow:hidden}
  .opt .bar i{display:block;height:100%;background:var(--ink);border-radius:var(--r-pill)}
  .opt .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .opt .pr{font-family:var(--font-num);font-size:12px;white-space:nowrap}
  .opt.top .nm{font-weight:600}
  .opt .star{color:var(--amber);font-size:11px;flex:none}
  .okrow{display:flex;align-items:center;gap:9px;padding:11px 14px;font-size:12.5px;
    color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);
    border-radius:var(--r-md);margin-bottom:var(--s2)}
  .okrow .ic{width:22px;height:22px;border-radius:50%;background:#EDF5EF;
    display:grid;place-items:center;flex:none}
  .okrow .ic .ico{width:12px;height:12px;stroke:var(--sage);margin:0}
  .okrow .g{flex:1;min-width:0}
  .okrow .n{font-size:11px;color:var(--muted);white-space:nowrap}
  .fresh{display:flex;align-items:center;gap:9px;padding:10px 12px;font-size:12px;
    background:#EDF5EF;border-radius:var(--r-sm);color:var(--ink-soft);
    margin-bottom:var(--s2);line-height:1.4}
  .fresh .ico{width:15px;height:15px;stroke:var(--sage);flex:none;margin:0}
  .fresh b{color:var(--ink);font-weight:600}

  /* --- Мобильные вкладки (нижнее меню; десктоп без изменений) --- */
  .mobile-tab-bar{
    display:none;position:fixed;left:0;right:0;bottom:0;z-index:900;
    background:var(--card);border-top:1px solid var(--line);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
    box-shadow:0 -2px 12px rgba(0,0,0,.08);
    justify-content:space-around;align-items:stretch;gap:2px}
  .mobile-tab-bar button{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2px;min-height:52px;padding:4px 2px;border:none;border-radius:var(--r-md);
    background:transparent;color:var(--ink-soft);font-size:10px;font-weight:600;line-height:1.15;
    cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .mobile-tab-bar button .mti{display:flex;align-items:center;justify-content:center;line-height:1}
  .mobile-tab-bar button .mti .ico{width:22px;height:22px}
  .mobile-tab-bar button.active{color:var(--ink);background:rgba(35,42,92,.08)}
  @media (max-width:600px){
    body.has-mobile-nav{padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px))}
    .mobile-tab-bar{display:flex}
    .tab-block{display:none!important}
    .tab-block.tab-show{display:block!important}
  }
  @media (min-width:601px){
    .mobile-tab-bar{display:none!important}
    .tab-block{display:block!important}
    .mobile-only{display:none!important}
  }
  /* Ролевой гейт сильнее tab-block !important (иначе admin видит groups/service) */
  .role-hidden,
  .tab-block.role-hidden,
  .tab-block.role-hidden.tab-show{display:none!important}

  /* --- Мобильные таблицы → карточки (≤600px; десктоп без изменений) --- */
  tr.catitems.collapsed,
  tr.prodpurch-wrap.collapsed{display:none}

  @media (max-width:600px){
    .mbody{overflow-x:visible;max-width:100%}
    .subtbl.mob-cards{display:block;overflow:visible;max-width:100%}
    table.mob-cards{width:100%;border-collapse:separate;border-spacing:0;margin:8px 0}
    table.mob-cards tr.mob-head{display:none!important}
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tbody > tr:not(.mob-head):not(.catitems):not(.prodpurch-wrap),
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tr:not(.mob-head):not(.catitems):not(.prodpurch-wrap){
      display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
      padding:12px 14px;margin:0 0 10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tbody > tr.catrow,
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tr.catrow{
      border:2px solid #dde;margin-bottom:4px}
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tbody > tr.catitems:not(.collapsed),
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tr.catitems:not(.collapsed){
      display:block!important;border:none;background:transparent;padding:0 0 8px 10px;
      margin:-2px 0 12px;box-shadow:none;border-left:3px solid var(--ink)}
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tbody > tr.catitems:not(.collapsed) > td,
    table.mob-cards:not(.spending-drill):not(.itemstbl) > tr.catitems:not(.collapsed) > td{padding:0;border:none;display:block}
    table.mob-cards.spending-drill tr:not(.mob-head):not(.prodpurch-wrap){
      display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;
      background:var(--paper);border:1px solid #e0e0ea;border-radius:var(--r-sm);
      padding:7px 10px;margin:0 0 4px;border-left:3px solid #aab4d0;
      box-shadow:none;font-size:13px;line-height:1.35}
    table.mob-cards.spending-drill tr.prodrow{border-left-color:#788;cursor:pointer}
    table.mob-cards.spending-drill tr.prodpurch{border-left-color:#c5cae9}
    table.mob-cards.spending-drill tr.prodpurch-simple{cursor:default;border-left-color:#d0d0dc}
    table.mob-cards.spending-drill tr.prodpurch-simple:active{background:var(--paper)}
    .fc-products{margin:6px 0 2px 14px}
    .fc-products.collapsed{display:none!important}
    .fc-cat-head.fc-toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
    .fc-cat-head.fc-toggle:active{opacity:.85}
    .fc-product-row{
      display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;
      padding:4px 0;font-size:13px;line-height:1.35;border-bottom:1px solid var(--paper)}
    .fc-product-row:last-child{border-bottom:none}
    .fc-product-name{flex:1 1 auto;min-width:0;word-break:break-word}
    .fc-product-sum{font-weight:600;color:var(--ink);white-space:nowrap}
    .shop-item.done{opacity:.45;text-decoration:line-through}
    table.mob-cards.spending-drill tr.prodrow .caret,
    table.mob-cards.spending-drill tr.prodrow .sum-right,
    table.mob-cards.spending-drill tr.prodpurch .sum-right{display:none}
    table.mob-cards.spending-drill tr.prodpurch td,
    table.mob-cards.spending-drill tr.prodrow td{
      display:inline;padding:0;border:none;font-size:13px}
    table.mob-cards.spending-drill tr.prodpurch td:first-child,
    table.mob-cards.spending-drill tr.prodrow td:first-child{
      font-size:11px;color:var(--muted);flex:0 0 auto}
    table.mob-cards.spending-drill tr.prodpurch td:nth-child(2),
    table.mob-cards.spending-drill tr.prodrow td:nth-child(2){
      flex:1 1 auto;min-width:0;word-break:break-word;font-weight:500}
    table.mob-cards.spending-drill tr.prodpurch td.r,
    table.mob-cards.spending-drill tr.prodrow td.r{
      flex:0 0 auto;font-weight:600;color:var(--ink);white-space:nowrap}
    table.mob-cards.spending-drill tr.prodpurch td::before,
    table.mob-cards.spending-drill tr.prodrow td::before{display:none!important}
    table.mob-cards.spending-drill tr.prodpurch .flag{font-size:10px}
    table.mob-cards.spending-drill tr.prodpurch-wrap .subtbl.mob-cards tr.prodpurch{
      padding:5px 8px 5px 12px;margin:0 0 3px;font-size:12px}
    .pricetrend-compact{margin:4px 0}
    .pricetrend-compact .pt-row{
      padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.4}
    .pricetrend-compact .pt-row:last-child{border-bottom:none}
    .pricetrend-compact .pt-up{color:var(--berry);font-weight:600}
    .pricetrend-hint-mobile{font-size:12px;color:var(--ink-soft);margin-bottom:8px;line-height:1.35}
    table.mob-cards.spending-drill tr.prodpurch-wrap{
      display:block!important;border:none;background:transparent;padding:0 0 0 10px;margin:0 0 6px;box-shadow:none}
    table.mob-cards.spending-drill tr.prodpurch-wrap > td{padding:0;border:none}
    table.mob-cards.spending-drill tr.prodpurch-wrap > td:first-child{display:none!important}
    table.mob-cards tr.catrow,
    table.mob-cards tr.prodrow{cursor:pointer;-webkit-tap-highlight-color:transparent}
    table.mob-cards tr.catrow:active,
    table.mob-cards tr.prodrow:active{background:#f5f5fa}
    table.mob-cards tr.catitems.collapsed,
    table.mob-cards tr.prodpurch-wrap.collapsed{display:none!important}
    table.mob-cards tr.catitems > td::before,
    table.mob-cards tr.prodpurch-wrap > td::before{display:none!important}
    table.mob-cards:not(.spending-drill) > tbody > tr.catitems > td.catitems-gap,
    table.mob-cards:not(.spending-drill) > tr.catitems > td.catitems-gap{display:none!important}
    table.mob-cards td{display:block;text-align:left!important;border-bottom:none;padding:5px 0;font-size:13px}
    table.mob-cards td.mob-hide{display:none!important}
    table.mob-cards td.mob-card-title{
      font-size:15px;font-weight:600;line-height:1.35;word-break:break-word;
      padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid #eee}
    table.mob-cards td.mob-card-title::before{display:none!important}
    table.mob-cards td.mob-pre-title{padding-bottom:2px;margin-bottom:0;border-bottom:none;font-size:13px}
    table.mob-cards td.mob-pre-title::before{display:none!important}
    table.mob-cards td[data-label]:not(.mob-card-title):not(.mob-hide)::before{
      content:attr(data-label);display:block;font-size:10px;font-weight:600;color:var(--muted);
      text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
    table.mob-cards td.r{text-align:left!important}
    table.mob-cards .store-override-sel,
    table.mob-cards .pts-spent-inp{max-width:100%;width:100%;font-size:14px;min-height:44px}
    table.mob-cards .sum-wrap{justify-content:flex-start;flex-wrap:wrap}
    table.mob-cards .price-cheap,
    table.mob-cards .price-dear,
    table.mob-cards .price-diff{font-size:14px}
    /* Товары по месяцам — компактный список (eskiz-pozicii-v3, 380) */
    table.itemstbl.mob-cards{
      display:block;width:100%;border:1px solid var(--line);border-radius:var(--r-md);
      background:var(--card);overflow:hidden;margin:8px 0;border-collapse:separate;border-spacing:0}
    table.itemstbl.mob-cards > tbody,
    table.itemstbl.mob-cards > tbody > tr,
    table.itemstbl.mob-cards > tr{display:block;width:100%;box-sizing:border-box}
    table.itemstbl.mob-cards > tbody > tr:not(.mob-head),
    table.itemstbl.mob-cards > tr:not(.mob-head){
      background:transparent;border:none;border-top:1px solid var(--line);
      border-radius:0;box-shadow:none;margin:0;padding:9px var(--s3)}
    table.itemstbl.mob-cards > tbody > tr:not(.mob-head):first-of-type,
    table.itemstbl.mob-cards > tr:not(.mob-head):first-of-type{border-top:0}
    table.itemstbl.mob-cards > tbody > tr.daytotal-row,
    table.itemstbl.mob-cards > tr.daytotal-row{
      background:var(--paper);padding:9px var(--s3);font-size:12.5px}
    table.itemstbl.mob-cards tr.daytotal-row > td,
    table.itemstbl.mob-cards tr.receipt-head > td,
    table.itemstbl.mob-cards tr.receipt-head:not(.first) > td,
    table.itemstbl.mob-cards tr.receipt-head.first > td{
      display:block;padding:0!important;border:none!important;background:transparent!important;
      border-top:none!important;border-bottom:none!important}
    table.itemstbl.mob-cards tr.daytotal-row > td::before,
    table.itemstbl.mob-cards tr.receipt-head > td::before{display:none!important}
    table.itemstbl.mob-cards tr.daytotal-row .daytotal-date{font-weight:600;margin-right:0}
    table.itemstbl.mob-cards tr.daytotal-row .daytotal-amt{font-size:12.5px;font-weight:500}
    /* заголовок чека — полоса 38–42px, клик раскрывает позиции */
    table.itemstbl.mob-cards > tbody > tr.receipt-head,
    table.itemstbl.mob-cards > tr.receipt-head{
      display:flex;align-items:center;background:var(--paper);
      padding:10px var(--s3);font-size:12px;color:var(--ink-soft);
      cursor:pointer;user-select:none;min-height:38px;box-sizing:border-box}
    table.itemstbl.mob-cards tr.receipt-head > td{
      display:flex!important;align-items:center;gap:7px;width:100%;flex-wrap:nowrap}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-car{
      flex:none;display:inline-flex;align-items:center;justify-content:center;
      width:12px;height:12px;color:var(--muted);transition:transform .18s}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-car .ico{width:12px;height:12px}
    table.itemstbl.mob-cards tr.receipt-head.open .rcpt-car{transform:rotate(90deg)}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-mark{display:inline-flex;flex:none;margin:0}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-store{font-weight:600;color:var(--ink);flex:none}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-time{flex:none;white-space:nowrap}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-grow{display:block;flex:1;min-width:4px}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-time::before,
    table.itemstbl.mob-cards tr.receipt-head .rcpt-amt::before{content:none}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-cnt{display:inline;flex:none;font-size:11px;color:var(--muted);white-space:nowrap}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-amt{
      flex:none;font-weight:500;color:var(--ink);white-space:nowrap;
      font-family:var(--font-num);font-variant-numeric:tabular-nums}
    table.itemstbl.mob-cards tr.receipt-head .rcpt-sep,
    table.itemstbl.mob-cards tr.receipt-head .rcpt-buyer{display:none}
    /* позиции скрыты, пока чек не открыт */
    table.itemstbl.mob-cards > tbody > tr.itemrow,
    table.itemstbl.mob-cards > tr.itemrow{display:none!important}
    table.itemstbl.mob-cards > tbody > tr.itemrow.rcpt-open,
    table.itemstbl.mob-cards > tr.itemrow.rcpt-open{
      display:flex!important;flex-wrap:wrap;align-items:center;column-gap:7px;row-gap:0;
      padding:9px var(--s3);background:var(--card);min-height:0}
    table.itemstbl.mob-cards tr.itemrow > td{border:none;padding:0;margin:0;background:transparent}
    table.itemstbl.mob-cards tr.itemrow > td::before{display:none!important}
    table.itemstbl.mob-cards tr.itemrow > td.mob-card-title,
    table.itemstbl.mob-cards tr.itemrow .item-name{
      font-size:13px;font-weight:400;line-height:1.35;cursor:pointer}
    table.itemstbl.mob-cards tr.itemrow > td.mob-card-title{
      flex:1 1 100%;width:100%;max-width:100%;margin:0 0 6px;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
      word-break:normal;overflow-wrap:normal}
    table.itemstbl.mob-cards tr.itemrow.name-full > td.mob-card-title{
      white-space:normal;overflow:visible;text-overflow:clip}
    table.itemstbl.mob-cards tr.itemrow.name-full .item-name{white-space:normal}
    table.itemstbl.mob-cards tr.itemrow > td:nth-child(2),
    table.itemstbl.mob-cards tr.itemrow > td.r{display:contents}
    table.itemstbl.mob-cards tr.itemrow .view-only-label,
    table.itemstbl.mob-cards tr.itemrow .month-cat{
      flex:1;min-width:0;font-size:12px;color:var(--muted);
      overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    table.itemstbl.mob-cards tr.itemrow .catsel,
    table.itemstbl.mob-cards tr.itemrow .catsel-cat{
      flex:1;min-width:0;width:auto;max-width:none;
      min-height:0!important;height:auto;font-size:12px;padding:5px 7px;
      border:1px solid var(--line);border-radius:var(--r-sm);
      background:var(--paper);color:var(--ink-soft);text-overflow:ellipsis}
    table.itemstbl.mob-cards tr.itemrow .sum-wrap.month-sum{display:contents}
    table.itemstbl.mob-cards tr.itemrow .month-desk{display:none!important}
    table.itemstbl.mob-cards tr.itemrow .month-p{
      flex:none;display:inline-flex;align-items:center;gap:5px;
      font-size:13px;font-weight:500;white-space:nowrap;color:var(--ink)}
    table.itemstbl.mob-cards tr.itemrow .month-p.has-det{cursor:pointer}
    table.itemstbl.mob-cards tr.itemrow .month-p .sum-main{
      font-family:var(--font-num);font-size:13px;font-weight:500;white-space:nowrap}
    table.itemstbl.mob-cards tr.itemrow .qty-x{
      font-size:10px;color:var(--muted);background:var(--paper);
      border:1px solid var(--line);border-radius:var(--r-pill);padding:1px 5px;
      font-weight:500;line-height:1.2}
    table.itemstbl.mob-cards tr.itemrow .month-det{
      display:none;flex:1 1 100%;order:20;width:100%;
      font-size:11.5px;color:var(--muted);margin-top:7px;padding-top:7px;
      border-top:1px dashed var(--line)}
    table.itemstbl.mob-cards tr.itemrow.det-on .month-det{display:block}
    table.itemstbl.mob-cards tr.itemrow .month-det-row{
      display:flex;align-items:center;gap:8px;margin-bottom:5px}
    table.itemstbl.mob-cards tr.itemrow .month-det-row:last-child{margin-bottom:0}
    table.itemstbl.mob-cards tr.itemrow .month-det-row .g{flex:1}
    table.itemstbl.mob-cards tr.itemrow .md-det-btn{
      border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
      font-family:inherit;font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);margin:0;
      border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;line-height:1.35;font-weight:500;
      min-width:0!important;min-height:0!important;width:auto!important;height:auto!important}
    table.itemstbl.mob-cards tr.itemrow .md-det-btn.on{
      background:var(--amber);border-color:var(--amber);color:#fff;font-weight:500}
    table.itemstbl.mob-cards tr.itemrow .item-actions,
    table.itemstbl.mob-cards tr.itemrow .md-toggle,
    table.itemstbl.mob-cards tr.itemrow .merge-swipe-btn,
    table.itemstbl.mob-cards tr.itemrow .pts-pay-badge,
    table.itemstbl.mob-cards tr.itemrow .md-badge,
    table.itemstbl.mob-cards tr.itemrow .price-mark,
    table.itemstbl.mob-cards tr.itemrow .promo,
    table.itemstbl.mob-cards tr.itemrow .store-bad{display:none!important}
    table.itemstbl.mob-cards tr.itemrow td:first-child{padding-left:0}
    .store-activity-chart .sa-scroll{overflow:visible;margin:0;padding-bottom:0}
    .store-activity-chart .sa-bars{
      flex-direction:column;align-items:stretch;gap:14px;min-height:0;padding-top:0}
    .store-activity-chart .sa-col{
      flex:0 0 auto;width:100%;max-width:none;display:flex;flex-direction:column;gap:5px}
    .store-activity-chart .sa-label{
      order:1;font-size:14px;font-weight:600;color:var(--ink);max-width:none;text-align:left;margin:0;line-height:1.3}
    .store-activity-chart .sa-bar{
      order:2;display:flex;flex-direction:row;height:22px!important;width:100%;
      border-radius:var(--r-sm);overflow:hidden;background:var(--paper)}
    .store-activity-chart .sa-seg{
      height:100%!important;flex:0 0 calc(var(--sa-pct, 0) * 1%)!important;min-width:3px;width:auto!important}
    .store-activity-chart .sa-pct-row{
      order:3;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;line-height:1.35;color:var(--ink-soft)}
    .store-activity-chart .sa-pct-row span{white-space:nowrap}
    .store-activity-chart .sa-total{order:4;text-align:left;font-size:13px;font-weight:600;margin:0;color:var(--ink)}
    .sa-range-toggle button{flex:1 1 calc(50% - 8px);min-height:0;font-size:var(--ctl-md-fs)}
    body.has-mobile-nav .overview-toolbar.tab-show{display:block}
    .merge-chk{display:none!important}
    tr.merge-swipe-host.merge-pick-active{
      outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-md);width:100%;margin:0 0 8px;padding:10px 12px;background:rgba(35,42,92,.08);color:var(--ink);
      border:1px dashed var(--ink);border-radius:var(--r-sm);font-size:13px;font-weight:600;text-align:center;
      cursor:pointer;touch-action:manipulation;min-height:44px}
    tr.merge-swipe-host.merge-revealed .merge-swipe-action{display:block}
    .buyer-sel{min-height:36px;font-size:13px;max-width:100%}
    .purch-receipt-actions .store-override-sel,
    .purch-receipt-actions .pts-spent-inp{min-height:44px;font-size:14px;max-width:100%}
    .purch-receipt-actions .store-override-sel{flex:1 1 140px}
    .reg-filters{flex-direction:column;align-items:stretch}
    .reg-filters select,.reg-filters input{min-height:44px;font-size:14px;width:100%}
  }

  /* --- Мобильный каркас (узкий экран; десктоп не затронут) --- */
  @media (max-width: 600px) {
    html, body{overflow-x:hidden;max-width:100%}
    body{font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}
    header{padding:14px 16px;font-size:17px;line-height:1.3}
    main{padding:var(--s5) 10px 96px;max-width:100%}
    .st-ms{max-width:38%}
    .st-ms{width:70px}
    .card{padding:14px 12px;margin:12px 0;border-radius:var(--r-md)}
    .card[data-block-id^="st."]{padding:0;margin:0 0 var(--s3);min-height:0}
    button,.toolbar button,.shop-store-btn,.word-pick button,.modal-btns button{
      min-height:44px;padding:var(--ctl-lg-pad);font-size:var(--ctl-lg-fs);touch-action:manipulation}
    .c-sm,.c-md,.buyer-btn,.mi-chip,.st-fbtn,.st-fchip,.mdyn-per button,.sn-tabs button,.sn-sort button,
    .sn-add,.sn-sc,.sn-sc-x,.c-sm.chip .x,.sn-pick button,.purch-chip,.purch-period-toggle button,.sa-range-toggle button,
    .reg-rb .buyer-btn,.reg-act,.pill,.ps-fbtn,.ps-foot .ps-merge,.st-depth-btn,.st-mbtn,.word-pick button,
    .modal-row-actions button,.md-det-btn,.shop-st,.shop-trip-link,.shop-skipped-btn,.ob-chip,
    .settings-logout-btn,.acting-group-banner button,.st-toolbar button{
      min-height:0 !important;touch-action:manipulation}
    .sn-sc-x,.c-sm.chip .x{
      width:16px !important;height:16px !important;min-height:0 !important;padding:0 !important;
      font-size:0 !important;line-height:0 !important}
    .auth-overlay .auth-tabs button,.auth-overlay .auth-more,.auth-overlay .auth-go,.auth-overlay .auth-pin{
      min-height:0;touch-action:manipulation}
    .auth-overlay .auth-tabs button{padding:var(--ctl-md-pad)}
    .auth-overlay .auth-go,.auth-overlay .auth-pin{padding:var(--ctl-lg-pad)}
    .auth-overlay .auth-more{padding:4px 0}
    .st-fbtn{min-height:0;padding:var(--ctl-sm-pad);font-size:var(--ctl-sm-fs);touch-action:manipulation}
    .st-fchip{min-height:0;padding:var(--ctl-md-pad);font-size:var(--ctl-md-fs);touch-action:manipulation}
    button.st-spark-btn,button.st-srow-btn{min-height:0;padding:0}
    /* реестр: компактные кнопки, не touch-target 44px */
    .reg-rb .buyer-btn{
      min-height:0 !important;padding:var(--ctl-sm-pad) !important;font-size:var(--ctl-sm-fs) !important;
      font-weight:500 !important;touch-action:manipulation}
    .reg-act{
      min-height:0 !important;padding:var(--ctl-md-pad) !important;font-size:var(--ctl-md-fs) !important;
      font-weight:500 !important;touch-action:manipulation}
    .card[data-block-id="reg.card"] .bhead-title{max-width:none;overflow:visible}
    .card[data-block-id="reg.card"] .bhead-ctx{max-width:100px}
    .ghost,.primary,.green,.c-lg{font-size:var(--ctl-lg-fs)}
    select.catsel{min-height:44px;font-size:14px;max-width:100%}
    .toolbar{gap:10px}
    .toolbar button{flex:1 1 calc(50% - 10px);min-width:120px}
    .row{gap:8px}
    .mail-days-wrap{width:100%}
    .mail-days-wrap input[type=range]{width:100%;max-width:none;min-height:44px}
    .modal-box{padding:16px;max-width:100%;max-height:92vh}
    .md-toggle,.merge-chk{min-width:44px;min-height:44px;padding:8px}
    .table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:4px 0}
    .table-scroll-wrap table{min-width:520px}
    #out .mbody,.card[data-block-id^="st."] .mbody{overflow-x:hidden;max-width:100%}
    .mbody,.modal-list{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
    #out .itemstbl{min-width:0}
    .subtbl:not(.mob-cards){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
    .shop-wrap{max-width:100%}
    .storefilter{max-width:100%;min-height:44px;margin:6px 0}
    .mi-filters .storefilter{max-width:150px;min-height:0;margin:0;font-size:12px}
    .mi-chip{min-height:0}
    .dyn-grid{gap:12px}
    /* Позиции месяца: перебить touch-target 44px у select/кнопки */
    table.itemstbl.mob-cards tr.itemrow select.catsel,
    table.itemstbl.mob-cards tr.itemrow .catsel-cat{
      min-height:0!important;height:auto;font-size:12px;padding:5px 7px}
    table.itemstbl.mob-cards tr.itemrow .md-det-btn{
      min-width:0!important;min-height:0!important;padding:var(--ctl-sm-pad)!important;
      font-size:var(--ctl-sm-fs)!important}
  }

  /* --- Раздел «Ещё» (постановка №15) --- */
  .wide-only{display:none}
  @media (min-width:601px){
    .wide-only{display:inline-flex!important}
  }
  @media (max-width:600px){
    #btnProfile{display:none!important}
  }
  .more-drill-bar{margin:0 0 var(--s3)}
  .more-me{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s4);display:flex;align-items:center;gap:13px;margin-bottom:var(--s5);
    cursor:pointer}
  .more-av{
    width:46px;height:46px;border-radius:var(--r-pill);background:var(--ink);
    color:#fff;display:grid;place-items:center;font-size:17px;font-weight:600;flex:none}
  .more-nm{font-size:15px;font-weight:600}
  .more-sub{font-size:12px;color:var(--muted);margin-top:2px}
  .more-role{
    display:inline-block;margin-top:5px;font-size:10.5px;padding:2px 8px;
    border-radius:var(--r-pill);background:var(--paper);color:var(--ink-soft)}
  .more-grp{margin-bottom:var(--s5)}
  .more-cap{
    font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
    font-weight:600;margin-bottom:var(--s2);padding-left:2px}
  .more-list{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
  .more-item{
    display:flex;align-items:center;gap:12px;padding:13px var(--s4);cursor:pointer;
    border-bottom:1px solid var(--line);min-height:48px;box-sizing:border-box}
  .more-item:last-child{border-bottom:0}
  .more-item.disabled{opacity:.55;cursor:default}
  .more-item .more-ico,.more-item .ico.more-ico{
    width:18px;height:18px;flex:none;color:var(--ink-soft)}
  .more-item .more-t{flex:1;font-size:13.5px}
  .more-item .more-v{font-size:12px;color:var(--muted);white-space:nowrap}
  .more-item .more-car,.more-item .ico.more-car{
    width:14px;height:14px;flex:none;color:var(--muted)}
  .more-item.danger .more-t{color:var(--berry)}
  .more-item.danger .more-ico,.more-item.danger .ico.more-ico{color:var(--berry)}
  .more-panel-bg{
    position:fixed;inset:0;background:rgba(35,42,92,.35);z-index:80;
    display:flex;justify-content:flex-end;align-items:stretch}
  .more-panel{
    width:min(400px,100%);background:var(--paper);box-shadow:-8px 0 24px rgba(0,0,0,.12);
    display:flex;flex-direction:column;max-height:100%}
  .more-panel-head{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 16px;border-bottom:1px solid var(--line);font-weight:600;background:var(--card)}
  .more-panel-body{padding:var(--s4);overflow:auto;flex:1}
  @media (min-width:601px){
    #moreHost{display:none!important}
  }
  .more-sw{
    width:40px;height:23px;border-radius:var(--r-pill);background:var(--line);
    position:relative;flex:none;transition:background .18s;display:inline-block;vertical-align:middle}
  .more-sw i{
    position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;
    background:#fff;transition:transform .18s;box-shadow:0 1px 3px rgba(0,0,0,.2);display:block}
  .more-sw.on{background:var(--sage)}
  .more-exp-kids{padding-left:22px}
  .more-exp-kids .more-item{padding-top:8px;padding-bottom:8px}
  .more-exp-kids .more-t{font-size:13px;font-weight:400}
  .more-exp-kids.off{opacity:.45;pointer-events:none}
  .more-exp-car{
    display:inline-flex;align-items:center;flex:none;margin-left:4px;color:var(--muted)}
  .more-exp-car .ico{width:14px;height:14px;margin:0;stroke:var(--muted)}
  .more-item[data-block-id="more.experimental"] .more-v{
    font-size:12px;color:var(--muted);white-space:nowrap}
  .more-upd-dot{
    display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--berry);
    margin-right:6px;vertical-align:middle;flex:none}
  .more-item .more-v .more-upd-dot{margin-right:6px}
  .nav-unread-dot{
    display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--berry);
    margin-left:5px;vertical-align:middle;flex:none}
  .mobile-tab-bar button .mtl{display:inline-flex;align-items:center;justify-content:center}
  .more-upd-body{padding:4px 2px 8px}
  .more-upd-grp{margin:0 0 10px}
  .more-upd-grp:last-child{margin-bottom:0}
  .more-upd-glist{padding-top:6px}
  .grp.closed .more-upd-glist{display:none}
  .more-upd-list{margin:0;padding-left:18px;font-size:13px;color:var(--ink);line-height:1.45}
  .more-upd-list li{margin:3px 0}
  .more-upd-more{
    margin-top:8px;border:0;background:transparent;padding:0;cursor:pointer;
    font-size:13px;font-weight:600;color:var(--ink);text-decoration:underline}
  .more-upd-empty{font-size:13px;color:var(--muted);padding:4px 0}
  .word-rule-add{
    display:flex;flex-wrap:wrap;gap:8px;align-items:center;
    margin:0 0 var(--s3);padding:10px;background:var(--paper);
    border:1px solid var(--line);border-radius:var(--r-md)}
  .word-rule-add .modal-input{width:auto;min-width:0}
  .word-rule-add .primary{padding:var(--ctl-md-pad);font-size:var(--ctl-md-fs);
    border-radius:var(--r-pill);min-height:0;font-weight:500}
  .more-sw.on i{transform:translateX(17px)}
  .more-hint{
    padding:0 var(--s4) 12px;font-size:11px;line-height:1.35;color:var(--muted);
    background:var(--card)}
  .stats-exp-cap{
    font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
    font-weight:600;margin:var(--s5) 0 var(--s2);padding:2px 2px;cursor:pointer;
    display:flex;align-items:center;gap:8px;user-select:none}
  .stats-exp-cap .stats-exp-title{flex:1}
  .stats-exp-cap .arrow{display:inline-flex;align-items:center;color:var(--muted)}
  .stats-exp-cap .arrow .ico{width:14px;height:14px;margin:0;stroke:var(--muted)}
  .stats-exp-body{min-width:0}

  /* Постановка №27 — Динамика по месяцам */
  .mdyn-per{display:flex;gap:5px;margin-bottom:var(--s4)}
  .mdyn-per button,.mdyn-per .c-md{
    flex:1;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-md-fs);padding:var(--ctl-md-pad);border-radius:var(--r-pill);cursor:pointer;
    min-height:0;line-height:1.35;justify-content:center}
  .mdyn-per button.on,.mdyn-per .c-md.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .mdyn-wrap{position:relative;min-width:0;width:100%}
  .mdyn-scroll{
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;
    touch-action:pan-x;-webkit-overflow-scrolling:touch;min-width:0;max-width:100%}
  .mdyn-scroll::-webkit-scrollbar{display:none}
  .mdyn-chart{
    position:relative;height:160px;display:flex;align-items:flex-end;gap:4px;
    padding-bottom:2px;border-bottom:1px solid var(--line)}
  .mdyn-wrap.scrolling .mdyn-col{min-width:26px;flex:0 0 26px}
  .mdyn-wrap.scrolling .mdyn-months span{min-width:26px;flex:0 0 26px}
  .mdyn-fade{
    position:absolute;top:0;bottom:0;width:22px;pointer-events:none;display:none;z-index:2}
  .mdyn-wrap.scrolling .mdyn-fade{display:block}
  .mdyn-fade.l{left:0;background:linear-gradient(90deg,var(--card),transparent)}
  .mdyn-fade.r{right:0;background:linear-gradient(270deg,var(--card),transparent)}
  .mdyn-col{
    flex:1;display:flex;flex-direction:column;justify-content:flex-end;
    height:100%;cursor:pointer;min-width:0;position:relative}
  .mdyn-stack{
    display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;
    overflow:hidden;transition:opacity .15s;width:100%}
  .mdyn-stack i{display:block;min-height:1px;width:100%}
  .mdyn-col.dim .mdyn-stack{opacity:.35}
  .mdyn-col.part .mdyn-stack{
    opacity:.5;outline:1px dashed color-mix(in srgb, var(--ink) 40%, transparent);
    outline-offset:-1px}
  .mdyn-val{
    position:absolute;top:-17px;left:50%;transform:translateX(-50%);
    font-size:9.5px;color:var(--ink-soft);white-space:nowrap;display:none}
  .mdyn-col.on .mdyn-val{display:block}
  .mdyn-avg{
    position:absolute;left:0;right:0;border-top:1px dashed color-mix(in srgb, var(--ink) 30%, transparent);
    pointer-events:none;z-index:1}
  .mdyn-avg span{
    position:absolute;right:0;top:-14px;font-size:9.5px;color:var(--muted);
    background:var(--card);padding:0 3px}
  .mdyn-months{display:flex;gap:4px;margin-top:5px}
  .mdyn-months span{
    flex:1;text-align:center;font-size:9px;color:var(--muted);min-width:0}
  .mdyn-months span.on{color:var(--ink);font-weight:600}
  .mdyn-leg{
    display:flex;flex-wrap:wrap;gap:5px 11px;margin-top:var(--s3);
    padding-top:var(--s3);border-top:1px solid var(--line)}
  .mdyn-leg span{
    display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-soft)}
  .mdyn-leg i{width:9px;height:9px;border-radius:2px;flex:none}
  .mdyn-sum{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}
  .mdyn-sr{
    display:flex;justify-content:space-between;align-items:baseline;
    font-size:12.5px;padding:5px 0}
  .mdyn-sr .k{color:var(--ink-soft)}
  .mdyn-sr .v{font-weight:500}
  .mdyn-sr .up{color:var(--amber)}
  .mdyn-sr .down{color:var(--sage)}
  .mdyn-det{
    margin-top:var(--s3);padding:var(--s3);background:var(--paper);
    border-radius:var(--r-sm)}
  .mdyn-det .h{
    font-size:12.5px;font-weight:600;margin-bottom:var(--s2);
    display:flex;justify-content:space-between;gap:8px}
  .mdyn-det .r{
    display:flex;align-items:center;gap:7px;font-size:12px;padding:3px 0;color:var(--ink-soft)}
  .mdyn-det .r i{width:9px;height:9px;border-radius:2px;flex:none}
  .mdyn-det .r .g{flex:1}
  .mdyn-det .r .pct{color:var(--muted)}
  .card[data-block-id="st.mondyn"] > .mbody{overflow-x:visible}

  /* Сезонность категорий (постановка №30/№31) */
  .sn-tabs{display:flex;gap:5px;margin-bottom:var(--s3)}
  .sn-tabs button,.sn-tabs .c-md{
    flex:1;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-md-fs);padding:var(--ctl-md-pad);border-radius:var(--r-pill);cursor:pointer;
    min-height:0;line-height:1.35;justify-content:center}
  .sn-tabs button.on,.sn-tabs .c-md.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
  .sn-sort{
    font-size:var(--ctl-sm-fs);color:var(--muted);margin-bottom:var(--s3);
    display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .sn-sort button,.sn-sort .c-sm{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-family:inherit;font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);border-radius:var(--r-pill);cursor:pointer;
    min-height:0;line-height:1.35}
  .sn-sort button.on,.sn-sort .c-sm.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:500}
  .sn-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
  .sn-mini{
    border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 10px;
    cursor:pointer;background:var(--card);min-width:0}
  .sn-mini.on{border-color:var(--ink);background:rgba(35,42,92,.03)}
  .sn-mini .n{
    font-size:11.5px;font-weight:600;line-height:1.25;margin-bottom:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sn-mini .s{font-size:10.5px;color:var(--muted);margin-bottom:6px}
  .sn-mini svg{width:100%;height:44px;display:block}
  .sn-tag{
    display:inline-block;font-size:9.5px;padding:1px 6px;border-radius:var(--r-pill);margin-top:5px}
  .sn-tag.sum{background:#FDF6EC;color:var(--amber)}
  .sn-tag.win{background:#EAF0F8;color:#3B6EA5}
  .sn-tag.flat{background:var(--paper);color:var(--muted)}
  .sn-tag.one{background:#F7E9EC;color:var(--berry)}
  .sn-big{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--line)}
  .sn-big .h{
    display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--s2);gap:8px}
  .sn-big .h b{font-size:13.5px}
  .sn-big .h span{font-size:12px;color:var(--muted)}
  .sn-big svg{width:100%;height:120px;display:block}
  .sn-months{display:flex;margin-top:4px}
  .sn-months span{flex:1;text-align:center;font-size:9px;color:var(--muted);min-width:0}
  .sn-leg{
    display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:5px;flex-wrap:wrap}
  .sn-leg span{display:inline-flex;align-items:center;gap:5px}
  .sn-leg i{width:14px;height:2px;display:inline-block}
  .sn-peak{font-size:12px;color:var(--ink-soft);margin-top:var(--s2);line-height:1.5}
  .sn-peak b{color:var(--ink);font-weight:600}
  .sn-ref{
    margin-top:var(--s2);border:1px solid var(--line);border-radius:var(--r-sm);
    background:var(--paper);max-height:180px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .sn-ref-r{
    display:grid;grid-template-columns:2.2em 1fr 1fr;gap:6px;align-items:baseline;
    padding:5px 8px;border-bottom:1px solid var(--line);font-size:11px;color:var(--ink-soft)}
  .sn-ref-r:last-child{border-bottom:0}
  .sn-ref-r .m{font-weight:600;color:var(--ink)}
  .sn-ref-r .num{font-variant-numeric:tabular-nums;text-align:right;min-width:0}
  .sn-pick{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:var(--s3)}
  .sn-pick button{
    display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
    background:var(--paper);color:var(--ink-soft);font-family:inherit;font-size:var(--ctl-sm-fs);
    padding:var(--ctl-sm-pad);border-radius:var(--r-pill);cursor:pointer;max-width:100%;
    min-height:0;line-height:1.35;font-weight:500}
  .sn-pick button i{width:8px;height:8px;border-radius:50%;flex:none;opacity:.3}
  .sn-pick button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
  .sn-pick button.on i{opacity:1}
  .sn-sel{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-bottom:var(--s3);max-height:68px;overflow:hidden}
  .sn-sc,.sn-sc.c-sm.chip.on{
    display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:#fff;
    border:1px solid var(--ink);border-radius:var(--r-pill);padding:var(--ctl-sm-pad);
    padding-right:6px;font-size:var(--ctl-sm-fs);font-weight:500;max-width:100%;
    min-height:0;line-height:1.35;box-sizing:border-box}
  .sn-sc i{width:8px;height:8px;border-radius:50%;flex:none}
  .sn-sc-x{
    width:16px;height:16px;min-height:0;border:0;background:rgba(255,255,255,.22);color:#fff;
    border-radius:50%;cursor:pointer;display:grid;place-items:center;padding:0;flex:none;
    font-size:0;line-height:0;box-sizing:border-box}
  .sn-sc-x .ico{width:8px;height:8px;margin:0;stroke:#fff}
  .sn-add,.sn-add.c-sm{
    display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--line);
    background:var(--paper);color:var(--ink-soft);font-family:inherit;font-size:var(--ctl-sm-fs);
    padding:var(--ctl-sm-pad);border-radius:var(--r-pill);cursor:pointer;min-height:0;line-height:1.35}
  .sn-add.on{border-style:solid;border-color:var(--ink);color:var(--ink)}
  .sn-add.off,.sn-add:disabled{opacity:.45;cursor:default}
  .sn-add-plus{font-size:var(--ctl-sm-fs);line-height:1;font-weight:600}
  .sn-picker{
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
    margin-bottom:var(--s3);overflow:hidden}
  .sn-pq{padding:9px 11px;border-bottom:1px solid var(--line);position:relative}
  .sn-pq .ico{
    position:absolute;left:20px;top:50%;transform:translateY(-50%);
    width:13px;height:13px;margin:0;stroke:var(--muted);pointer-events:none}
  .sn-pq input{
    width:100%;font-family:inherit;font-size:var(--fld-fs);padding:var(--fld-pad);padding-left:30px;
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
    color:var(--ink);box-sizing:border-box;min-height:0}
  .sn-plist{max-height:190px;overflow-y:auto}
  .sn-it{
    display:flex;align-items:center;gap:9px;padding:8px 12px;cursor:pointer;
    font-size:12.5px;border-bottom:1px solid var(--line)}
  .sn-it:last-child{border-bottom:0}
  .sn-it i{width:9px;height:9px;border-radius:50%;flex:none}
  .sn-it .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sn-it .v{font-size:11px;color:var(--muted);flex:none}
  .sn-it.on{background:rgba(35,42,92,.05);font-weight:500}
  .sn-it.dis{opacity:.4;cursor:default}
  .sn-pf{
    padding:8px 12px;border-top:1px solid var(--line);font-size:11.5px;
    color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:8px}
  .sn-pf button{
    border:0;background:transparent;color:var(--ink-soft);font-family:inherit;
    font-size:11.5px;cursor:pointer;padding:0;text-decoration:underline}
  .sn-chartbox{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px}
  .sn-chartbox svg{width:100%;height:150px;display:block}
  .sn-chartbox.sn-empty{
    min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;color:var(--muted);font-size:12.5px;line-height:1.5;gap:8px}
  .sn-chartbox.sn-empty .ico{width:26px;height:26px;margin:0;stroke:var(--line)}
  .sn-hint{font-size:11.5px;color:var(--muted);margin-top:var(--s2);line-height:1.45}

  /* Постановка №24 — окно «Поиск товара» */
  .modal-box.ps-box{
    max-width:440px;padding:0;display:flex;flex-direction:column;
    max-height:92vh;overflow:hidden}
  .modal-box.ps-box .modal-head{
    position:static;margin:0;padding:var(--s4);border-bottom:1px solid var(--line);
    flex:none;top:auto;background:var(--card)}
  .modal-box.ps-box .modal-head h3{font-size:15px}
  .ps-q{padding:var(--s3) var(--s4);flex:none}
  .ps-field{position:relative}
  .ps-field input{
    width:100%;font-size:var(--fld-fs);padding:var(--fld-pad);
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
  .ps-field input:focus{outline:none;border-color:var(--ink);background:var(--card)}
  .ps-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s2)}
  .ps-fbtn{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-size:var(--ctl-sm-fs);padding:var(--ctl-sm-pad);border-radius:var(--r-pill);cursor:pointer;
    min-height:0;min-width:0;line-height:1.35;font-weight:500}
  .ps-fbtn.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:500}
  .ps-cnt{font-size:11.5px;color:var(--muted);margin-top:var(--s2);min-height:1.2em}
  .ps-list{flex:1;overflow-y:auto;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}
  .ps-empty{padding:var(--s5) var(--s4);text-align:center;color:var(--muted);font-size:13px}
  .ps-row{padding:11px var(--s4);border-bottom:1px solid var(--line)}
  .ps-row.sel{background:rgba(35,42,92,.04)}
  .ps-top{display:flex;align-items:flex-start;gap:10px}
  .ps-cb{
    width:19px;height:19px;border-radius:5px;border:1.8px solid var(--line);
    flex:none;margin-top:1px;display:grid;place-items:center;cursor:pointer;background:var(--card)}
  .ps-cb .ico{width:11px;height:11px;color:#fff;opacity:0}
  .ps-row.sel .ps-cb{background:var(--ink);border-color:var(--ink)}
  .ps-row.sel .ps-cb .ico{opacity:1}
  .ps-nm{flex:1;font-size:13px;line-height:1.35;min-width:0;overflow-wrap:anywhere;word-break:normal}
  .ps-bot{display:flex;align-items:center;gap:8px;margin-top:8px;padding-left:29px}
  .ps-bot select{
    flex:1;min-width:0;width:auto;font-size:12px;padding:5px 8px;
    border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-soft)}
  .ps-bot select.changed{border-color:var(--amber);color:var(--ink);background:#FDF6EC}
  .ps-word{
    border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);
    font-size:11.5px;padding:5px 10px;border-radius:var(--r-sm);cursor:pointer;
    white-space:nowrap;flex:none;min-height:0;min-width:0}
  .ps-word.on{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:500}
  .ps-buys{
    font-size:11.5px;color:var(--muted);cursor:pointer;white-space:nowrap;flex:none;
    display:inline-flex;align-items:center;gap:4px;user-select:none}
  .ps-buys .ico{width:11px;height:11px;transition:transform .18s}
  .ps-row.open .ps-buys .ico{transform:rotate(90deg)}
  .ps-buys-list{display:none;margin-top:9px;padding:8px 0 2px 29px;border-top:1px dashed var(--line)}
  .ps-row.open .ps-buys-list{display:block}
  .ps-b{display:flex;align-items:center;gap:8px;font-size:11.5px;padding:4px 0;color:var(--ink-soft)}
  .ps-b .store-bad{width:17px;height:17px;border-radius:4px;font-size:8.5px;flex:none;margin:0}
  .ps-b .ps-g,.ps-g{flex:1;min-width:4px}
  .ps-b a{color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--muted)}
  .ps-buys-list:not(.all) .ps-b-extra{display:none}
  .ps-foot{
    padding:var(--s3) var(--s4);border-top:1px solid var(--line);flex:none;
    display:none;gap:8px;align-items:center;background:var(--paper)}
  .ps-foot.show{display:flex}
  .ps-foot-t{flex:1;font-size:12px;color:var(--ink-soft);min-width:0}
  .ps-foot button{
    border:0;font-size:var(--ctl-md-fs);font-weight:500;padding:var(--ctl-md-pad);border-radius:var(--r-pill);
    cursor:pointer;white-space:nowrap;min-height:0;min-width:0;flex:none;line-height:1.35}
  .ps-foot .ps-merge{background:var(--card);border:1px solid var(--line);color:var(--ink-soft)}
  .ps-foot .ps-apply{
    background:var(--ink);color:#fff;border:1px solid var(--ink);
    font-size:var(--ctl-lg-fs);font-weight:600;padding:var(--ctl-lg-pad);border-radius:var(--r-sm)}
  @media (max-width:600px){
    .modal-box.ps-box{max-width:100%}
    .ps-bot{padding-left:0;flex-wrap:wrap}
    .ps-buys-list{padding-left:0}
  }

  /* Онбординг почты (постановка №28) */
  .ob-root{max-width:100%;padding:0 0 8px}
  .ob-hello{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s5) var(--s4);text-align:center;margin-bottom:var(--s4)}
  .ob-logo{width:46px;height:46px;margin-bottom:var(--s3)}
  .ob-hello h2{font-size:17px;font-weight:600;margin:0 0 var(--s2);color:var(--ink)}
  .ob-hello p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0 0 var(--s4)}
  .ob-go{
    border:0;background:var(--ink);color:#fff;font-family:inherit;font-size:13.5px;
    font-weight:600;padding:11px 26px;border-radius:var(--r-sm);cursor:pointer}
  .ob-prog{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    padding:var(--s4);margin-bottom:var(--s3)}
  .ob-prog-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
  .ob-prog-top b{font-size:14px;font-weight:600}
  .ob-prog-top span{font-size:12px;color:var(--muted)}
  .ob-track{height:6px;background:var(--paper);border-radius:var(--r-pill);overflow:hidden}
  .ob-track i{display:block;height:100%;background:var(--sage);border-radius:var(--r-pill);transition:width .3s}
  .ob-step{
    background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
    margin-bottom:var(--s3);overflow:hidden}
  .ob-sh{
    display:flex;align-items:center;gap:11px;padding:var(--s4);cursor:pointer;user-select:none}
  .ob-n{
    width:26px;height:26px;border-radius:50%;border:1.8px solid var(--line);
    display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--muted);
    flex:none;background:var(--paper)}
  .ob-n svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.6}
  .ob-step.done .ob-n{background:var(--sage);border-color:var(--sage);color:#fff}
  .ob-step.now .ob-n{background:var(--ink);border-color:var(--ink);color:#fff}
  .ob-t{flex:1;min-width:0}
  .ob-t b{display:block;font-size:13.5px;font-weight:600;color:var(--ink)}
  .ob-t span{font-size:11.5px;color:var(--muted)}
  .ob-step.done .ob-t b{color:var(--muted);font-weight:500}
  .ob-car{
    width:14px;height:14px;stroke:var(--muted);fill:none;stroke-width:2.2;
    flex:none;transition:transform .18s}
  .ob-step.open .ob-car{transform:rotate(180deg)}
  .ob-sb{display:none;padding:0 var(--s4) var(--s4)}
  .ob-step.open .ob-sb{display:block}
  .ob-li{
    display:flex;gap:10px;font-size:12.5px;line-height:1.5;margin-bottom:11px;
    color:var(--ink-soft)}
  .ob-d{
    width:19px;height:19px;border-radius:50%;background:var(--paper);
    border:1px solid var(--line);display:grid;place-items:center;flex:none;
    font-size:10.5px;font-weight:600;color:var(--ink);margin-top:1px}
  .ob-li b{color:var(--ink);font-weight:600}
  .ob-li a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);word-break:break-word}
  .ob-shot{
    background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-sm);
    min-height:120px;display:grid;place-items:center;font-size:11.5px;color:var(--muted);
    margin:0 0 var(--s3) 29px;text-align:center;padding:var(--s3);box-sizing:border-box}
  .ob-shot-img{padding:0;overflow:hidden}
  .ob-shot-img img{display:block;width:100%;height:auto;max-height:220px;object-fit:contain}
  .ob-warn{
    display:flex;gap:9px;font-size:12px;line-height:1.45;color:var(--ink-soft);
    background:#FDF6EC;border:1px solid #F0DCC0;border-radius:var(--r-sm);
    padding:10px 12px;margin-bottom:var(--s3);text-align:left}
  .ob-warn svg{
    width:15px;height:15px;stroke:var(--amber);fill:none;stroke-width:2;flex:none;margin-top:1px}
  .ob-pick-label{
    font-size:12px;font-weight:600;color:var(--ink);margin:0 0 8px}
  .ob-picks{display:flex;flex-direction:column;gap:8px;margin-bottom:var(--s4)}
  .ob-pick{
    display:block;width:100%;text-align:left;box-sizing:border-box;
    border:1.5px solid var(--line);background:var(--paper);border-radius:var(--r-md);
    padding:12px 14px;cursor:pointer;font-family:inherit;color:var(--ink)}
  .ob-pick.on{border-color:var(--ink);background:var(--card);box-shadow:inset 0 0 0 1px var(--ink)}
  .ob-pick-title{
    display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;line-height:1.35}
  .ob-pick-title em{
    font-style:normal;font-weight:600;font-size:11px;color:var(--sage);
    margin-left:6px;letter-spacing:.01em}
  .ob-pick-pros{
    margin:0;padding-left:18px;font-size:12px;line-height:1.45;color:var(--ink-soft)}
  .ob-pick-pros li{margin:2px 0}
  .ob-pick-note{
    display:block;margin-top:8px;font-size:11.5px;line-height:1.4;color:var(--muted)}
  .ob-pick-note a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
  .ob-f{margin-bottom:var(--s3)}
  .ob-f label{display:block;font-size:11.5px;color:var(--ink-soft);margin-bottom:5px}
  .ob-f input{
    width:100%;max-width:100%;box-sizing:border-box;font-family:inherit;font-size:var(--fld-fs);
    padding:var(--fld-pad);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
    color:var(--ink)}
  .ob-err{font-size:12.5px;color:var(--berry);margin:0 0 var(--s3);line-height:1.4}
  .ob-btn{
    border:0;background:var(--ink);color:#fff;font-family:inherit;font-size:var(--ctl-lg-fs);
    font-weight:600;padding:var(--ctl-lg-pad);border-radius:var(--r-sm);cursor:pointer;
    min-height:0;line-height:1.35;width:100%;box-sizing:border-box}
  .ob-btn:disabled{opacity:.55;cursor:default}
  .ob-btn-sec{
    background:var(--card);border:1px solid var(--line);color:var(--ink-soft);font-weight:500}
  .ob-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 var(--s3) 29px}
  .ob-chip{
    display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);
    background:var(--paper);border-radius:var(--r-pill);padding:var(--ctl-sm-pad);
    font-size:var(--ctl-sm-fs);cursor:pointer;font-family:inherit;color:var(--ink);max-width:100%;
    min-height:0;line-height:1.35;font-weight:500}
  .ob-mk{
    width:19px;height:19px;border-radius:5px;color:#fff;font-size:9.5px;
    font-weight:700;display:grid;place-items:center;flex:none}
  .ob-chip.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:500}
  .ob-ok{
    display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sage);font-weight:500}
  .ob-ok svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.6;flex:none}
  .ob-wait{
    display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--ink-soft);
    background:var(--paper);border-radius:var(--r-sm);padding:11px 13px;line-height:1.4}
  .ob-dots{flex:none;margin-top:5px}
  .ob-dots i{
    display:inline-block;width:5px;height:5px;border-radius:50%;
    background:var(--amber);margin-right:4px;animation:ob-f 1.2s infinite}
  .ob-dots i:nth-child(2){animation-delay:.2s}
  .ob-dots i:nth-child(3){animation-delay:.4s}
  @keyframes ob-f{0%,100%{opacity:.2}50%{opacity:1}}
  @media (max-width:400px){
    .ob-shot,.ob-chips{margin-left:0}
  }

  /* Постановка №34: проверка цен */
  .more-item .more-v .more-price-cnt{color:var(--amber);font-weight:500}
  .purch-item-row.flash-find,.purch-receipt-card.flash-find{
    background:#FFF9C4;border-radius:var(--r-sm)}
  .pc-note{font-size:12px;color:var(--ink-soft);margin:0 0 var(--s3);line-height:1.5}
  .pc-block{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
  .pc-bhead{display:flex;align-items:center;gap:9px;padding:var(--s4)}
  .pc-bhead .ico{width:17px;height:17px;stroke:var(--ink-soft);fill:none;stroke-width:1.9;flex:none}
  .pc-bhead h3{margin:0;font-size:14px;font-weight:600;flex:1}
  .pc-bhead .pc-cnt{font-size:12px;color:var(--amber);font-weight:500}
  .pc-bbody{padding:0 var(--s4) var(--s4)}
  .pc-sus{border-top:1px solid var(--line);padding:var(--s3) 0}
  .pc-sus:first-child{border-top:0;padding-top:var(--s2)}
  .pc-n{font-size:13px;font-weight:600;line-height:1.35;margin-bottom:3px;
    display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}
  .pc-conf{
    display:inline-block;font-size:10.5px;font-weight:500;padding:2px 8px;
    border-radius:var(--r-pill);line-height:1.3;font-weight:500}
  .pc-conf.high{background:#F8E8EC;color:var(--berry)}
  .pc-conf.mid{background:#FDF6EC;color:var(--amber)}
  .purch-price-warn .pc-conf{margin-left:4px;vertical-align:middle}
  .pc-c{font-size:11px;color:var(--muted);margin-bottom:9px}
  .pc-cmp{display:flex;align-items:center;gap:10px;background:var(--paper);
    border-radius:var(--r-sm);padding:10px 12px;margin-bottom:9px}
  .pc-col{flex:1;min-width:0}
  .pc-col .pc-k{font-size:10.5px;color:var(--muted);margin-bottom:2px}
  .pc-col .pc-v{font-size:14px;font-weight:600;white-space:nowrap}
  .pc-col .pc-d{font-size:10.5px;color:var(--muted);margin-top:2px;
    display:flex;align-items:center;gap:5px}
  .pc-mk{width:15px;height:15px;border-radius:3px;color:#fff;font-size:8px;
    font-weight:700;display:grid;place-items:center;flex:none}
  .pc-arr{flex:none;color:var(--muted);font-size:15px}
  .pc-col.low .pc-v{color:var(--berry)}
  .pc-who{font-size:12px;color:var(--ink-soft);margin-bottom:10px}
  .pc-who b{font-weight:600;color:var(--ink)}
  .pc-acts{display:flex;flex-wrap:wrap;gap:6px}
  .pc-acts .pc-ask{background:var(--amber);border-color:var(--amber);color:#fff;font-weight:500}
  .pc-sent{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--sage);
    background:#EDF5EF;border-radius:var(--r-sm);padding:9px 12px}
  .pc-sent .ico{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.6;flex:none}
  .pc-qwrap{margin:0 0 var(--s3)}
  .pc-qcard{background:var(--card);border:1px solid #F0DCC0;border-radius:var(--r-md);
    padding:var(--s4);margin-bottom:var(--s3)}
  .pc-qcard-ok{border-color:#CFE3D6;background:#F4FAF5}
  .pc-qtop{display:flex;align-items:center;gap:8px;margin-bottom:var(--s3)}
  .pc-qtop .ico{width:16px;height:16px;stroke:var(--amber);fill:none;stroke-width:2;flex:none}
  .pc-qtop b{font-size:13px;font-weight:600}
  .pc-q{font-size:13.5px;line-height:1.5;margin-bottom:var(--s3)}
  .pc-q b{font-weight:600}
  .pc-qmeta{font-size:11.5px;color:var(--muted);margin-bottom:var(--s3);
    display:flex;align-items:center;gap:6px}
  .pc-qmeta .pc-mk{width:17px;height:17px;border-radius:4px;font-size:8.5px}
  .pc-qans{display:flex;flex-wrap:wrap;gap:6px}
  .pc-qmore{margin-top:2px}
