/* ===== токены ===== */
:root{
  --bg:#f4f2ee;--card:#fff;--ink:#15171c;--muted:#6b6e76;--line:#e6e3dc;
  --accent:#e8590c;--accent2:#c2410c;--ok:#e8590c;
  --fill-soft:#fff4ea;--fill-line:#f3cdaa;
  --danger:#c0392b;--danger-soft:#fdf2f2;--danger-line:#f0cccc;
  --ring:#e8590c;
  --shadow:0 1px 2px rgba(21,23,28,.05),0 8px 24px rgba(21,23,28,.06);
  --safe-b:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.35;overscroll-behavior-y:none;touch-action:manipulation}
button{font-family:inherit;cursor:pointer}
/* ===== иконки (SVG-спрайт) ===== */
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.18em}
/* ===== фокус и нажатия ===== */
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
input:focus-visible{outline:none}
button,.card,.hit,.sugg>div,.popover>div{transition:transform .12s ease}
button:active,.card:active,.hit:active,.sugg>div:active,.popover>div:active{transform:scale(.97)}
.kit:active{transform:none;filter:brightness(.94)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* ===== каркас ===== */
.app{max-width:520px;margin:0 auto;min-height:100%;position:relative}
.screen{display:none;min-height:100vh;min-height:100dvh}.screen.active{display:block}
.bar{position:sticky;top:0;z-index:20;background:rgba(244,242,238,.9);backdrop-filter:saturate(180%) blur(12px);display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.bar h1{font-size:20px;margin:0;font-weight:800;letter-spacing:-.02em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar h1 .logo{width:19px;height:19px;vertical-align:-3px}
.bar h1 .ic{width:14px;height:14px;color:var(--muted)}
.bar h1 input{width:100%;font:inherit;font-weight:800;border:none;border-bottom:2px solid var(--accent);background:none;outline:none;padding:0;color:inherit}
.bar .sub{font-size:12.5px;color:var(--muted);font-weight:600}
.back{font-size:26px;background:none;border:none;color:var(--ink);width:44px;height:44px;display:grid;place-items:center;margin-left:-12px}
.tbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 13px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;min-height:40px}
.tbtn.accent{background:var(--ink);color:#fff;border:none}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:12px 16px;color:var(--muted)}
.search input{border:none;outline:none;flex:1;font-size:16px;background:none;color:var(--ink);min-width:0}
/* ===== карточки заходов ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:14px 15px;margin:12px 16px;display:flex;gap:12px;align-items:center}
.card .thumb{width:56px;height:56px;border-radius:12px;background:#f0ede7;display:grid;place-items:center;color:#b7b2a6;flex:none;overflow:hidden}
.card .thumb .ic{width:24px;height:24px}
.card .thumb img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.card .grow{flex:1;min-width:0}
.card .name{font-weight:700;font-size:17px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .meta{color:var(--muted);font-size:13px;margin-top:2px}
.card .stat{font-size:13.5px;margin-top:4px;font-weight:600;font-variant-numeric:tabular-nums}
.dot-on{color:var(--ok)}.dot-off{color:var(--muted)}
.chev{color:#c7c4bc;display:grid;place-items:center}
.card.in,.hit.in{animation:up .25s ease-out backwards}
@keyframes up{from{opacity:0;transform:translateY(6px)}}
/* skeleton при загрузке */
.skel{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:12px 16px;padding:14px 15px;display:flex;gap:12px;align-items:center}
.skel .b{background:linear-gradient(90deg,#eeece6 25%,#f7f5f0 50%,#eeece6 75%);background-size:200% 100%;animation:sh 1.2s infinite;border-radius:8px}
@keyframes sh{to{background-position:-200% 0}}
.fab{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + var(--safe-b));z-index:30;width:min(488px,calc(100% - 32px));background:var(--accent);color:#fff;border:none;border-radius:16px;padding:18px;font-size:18px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.22);display:flex;gap:8px;align-items:center;justify-content:center}
.fab:active{transform:translateX(-50%) scale(.98)}
#visitList{padding-bottom:calc(104px + var(--safe-b))} /* чтобы плавающая кнопка не перекрывала последний магазин */
.label{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:18px 16px 6px}
.field{margin:0 16px;position:relative}
.orig{margin:6px 16px 0;font-size:12.5px;font-weight:600;color:var(--muted)}
.field input{width:100%;font-size:19px;padding:15px 16px;border:1.5px solid var(--line);border-radius:14px;background:#fff;outline:none;font-weight:600}
.field input:focus{border-color:var(--accent)}
.sugg{margin:6px 16px 0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.sugg:empty{display:none}
.sugg div{padding:15px 16px;border-bottom:1px solid var(--line);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:48px}
.sugg div:last-child{border-bottom:none}.sugg .new{color:var(--accent)}.sugg .tag{font-size:12px;color:var(--muted);font-weight:600;flex:none}
.geo{display:flex;align-items:center;gap:10px;margin:12px 16px;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:14px;color:#55524c;font-weight:600;font-size:14.5px}
.geo.wait{background:#fff6ed;border-color:#f3d9c0;color:#9a4d12}.geo.err{background:#fdecec;border-color:#f3c3c3;color:#a12626}
.photobtn{margin:14px 16px 0;width:calc(100% - 32px);padding:16px;border:1.5px dashed var(--line);background:#fff;border-radius:14px;font-size:16px;font-weight:700;color:var(--muted);display:flex;gap:8px;align-items:center;justify-content:center;cursor:pointer}
.photobtn.has{border-style:solid;color:var(--ok);border-color:var(--fill-line);background:var(--fill-soft)}
/* ===== шапка магазина ===== */
.shophead{padding:6px 16px 2px;display:flex;flex-direction:column;gap:6px}
.shophead .meta{color:var(--muted);font-size:13.5px;display:flex;gap:12px;align-items:center}
#shopDate{font-variant-numeric:tabular-nums}
.signth{height:38px;width:54px;object-fit:cover;border-radius:8px;border:1px solid var(--line);vertical-align:middle;display:block;cursor:pointer}
.maplink{display:inline-flex;align-items:center;gap:4px;color:var(--accent2);font-weight:700;text-decoration:none;min-height:32px}
/* просмотр фото */
.pv{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:80;display:grid;place-items:center;overscroll-behavior:contain}
.pv img{max-width:96vw;max-height:92vh;border-radius:10px}
.pvx{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;z-index:81}
/* модалка «поделиться ссылкой» */
.sharemodal{padding:20px;align-items:end}
@media(min-width:520px){.sharemodal{align-items:center}}
.sharebox{background:var(--card,#fff);color:var(--ink,#15171c);border-radius:18px;padding:20px 18px 18px;width:100%;max-width:460px;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.shttl{font-weight:800;font-size:16px;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.shttl .ic{width:19px;height:19px;color:var(--accent,#e8590c)}
.shurl{background:#f4f2ee;border:1px solid var(--line,#e6e3dc);border-radius:11px;padding:11px 12px;font-size:13.5px;word-break:break-all;color:#55524c;font-family:ui-monospace,Menlo,monospace;-webkit-user-select:all;user-select:all}
.shbtns{display:flex;gap:10px;margin-top:14px}
.shb{flex:1;height:48px;border-radius:12px;border:1px solid var(--line,#e6e3dc);background:#fff;color:var(--ink,#15171c);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}
.shb .ic{width:18px;height:18px}
.shb.accent{background:var(--accent,#e8590c);border-color:var(--accent,#e8590c);color:#fff}
.shhint{margin:12px 2px 0;font-size:12.5px;color:var(--muted,#6b6e76);line-height:1.4}
/* ===== карточка магазина (bottom sheet) ===== */
.sheet{align-items:end;padding:0}
@media(min-width:520px){.sheet{align-items:center;padding:20px}}
.sheetbox{background:var(--card,#fff);color:var(--ink,#15171c);width:100%;max-width:520px;border-radius:20px 20px 0 0;max-height:90vh;overflow-y:auto;box-shadow:0 -8px 40px rgba(0,0,0,.35);animation:sheetin .28s cubic-bezier(.2,.7,.3,1)}
@media(min-width:520px){.sheetbox{border-radius:20px}}
@keyframes sheetin{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheeth{position:sticky;top:0;background:var(--card,#fff);display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--line,#e6e3dc)}
.sheeth b{display:flex;align-items:center;gap:8px;font-size:17px}
.sheeth b .ic{width:19px;height:19px;color:var(--accent,#e8590c)}
.pvx.sm{position:static;width:34px;height:34px;background:#f0eee9;color:var(--muted,#6b6e76);border:none;flex:none}
.pvx.sm .ic{width:18px;height:18px}
.sheetbody{padding:16px 16px calc(20px + env(safe-area-inset-bottom,0px))}
.linked{background:#f7f6f2;border:1px solid var(--line,#e6e3dc);border-radius:14px;padding:13px 14px;margin-bottom:16px}
.lk-name{font-weight:700;display:flex;align-items:center;gap:7px}
.lk-name .ic{width:16px;height:16px;color:var(--accent,#e8590c)}
.lk-meta{color:var(--muted,#6b6e76);font-size:13.5px;margin-top:4px}
.phrow{margin-top:9px;display:flex;flex-wrap:wrap;gap:8px}
.phchip,.infomap{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line,#e6e3dc);border-radius:999px;padding:7px 12px;font-size:14px;font-weight:600;color:var(--accent2,#c2410c);text-decoration:none}
.phchip .ic,.infomap .ic{width:15px;height:15px}
.lk-un{margin-top:11px;background:none;border:none;color:var(--muted,#6b6e76);font-size:13px;text-decoration:underline;padding:0}
.lk-btn{width:100%;height:50px;border-radius:13px;border:1px dashed var(--fill-line,#f0b487);background:#fdf3ec;color:var(--accent2,#c2410c);font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:14px}
.lk-btn .ic{width:18px;height:18px}
.linkinp{width:100%;height:46px;border:1px solid var(--line,#e6e3dc);border-radius:12px;padding:0 13px;font-size:15px;margin:2px 0 8px;background:#fff}
#linkSearch .sugg div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line,#e6e3dc);border-radius:10px;margin-bottom:6px;font-weight:600}
#linkSearch .sugg .tag{color:var(--muted,#6b6e76);font-weight:500;font-size:12.5px}
.sgempty{color:var(--muted,#6b6e76);font-size:13.5px;padding:6px 2px}
.fld{display:block;margin-bottom:14px}
.fld>span{display:block;font-size:12.5px;font-weight:700;color:var(--muted,#6b6e76);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}
.fld input,.fld textarea{width:100%;border:1px solid var(--line,#e6e3dc);border-radius:12px;padding:12px 13px;font-size:16px;font-family:inherit;background:#fff;color:var(--ink,#15171c);resize:vertical}
.savebtn{width:100%;height:50px;border-radius:13px;border:none;background:var(--accent,#e8590c);color:#fff;font-weight:700;font-size:16px;margin-top:2px}
.fldhint{margin:12px 2px 0;font-size:12.5px;color:var(--muted,#6b6e76);line-height:1.45}
/* ===== результаты поиска по позициям ===== */
.hit{background:#fff;border:1px solid var(--line);border-radius:14px;margin:8px 16px;padding:11px 13px;display:flex;gap:10px;align-items:center;box-shadow:var(--shadow)}
.hit .hn{font-weight:700;font-size:15px}
.hit .hm{color:var(--muted);font-size:12.5px;margin-top:2px}
.hit .hp{font-weight:800;font-size:16px;color:var(--accent2);flex:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.delshop{border:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);border-radius:11px;width:40px;height:40px;display:grid;place-items:center;margin-left:auto;flex:none}
.badge-new{font-size:10.5px;font-weight:800;color:#9a4d12;background:#fff1e2;border:1px solid #f3d9c0;border-radius:999px;padding:2px 7px;flex:none}
.item.pending{opacity:.6}.item.failed{border-color:#f0c4c4;background:#fdf4f4}
.pstate{font-size:13px;font-weight:600;color:var(--muted);margin-top:8px}.pstate.fail{color:var(--danger)}
.price.perr{border-color:#e3a0a0;background:var(--danger-soft)}
.offbar{position:fixed;top:0;left:0;right:0;z-index:70;background:var(--danger);color:#fff;text-align:center;font-size:13px;font-weight:700;padding:7px}
/* ===== карточка позиции ===== */
.item{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin:10px 16px;overflow:hidden}
/* свёрнутая шапка */
.item .ihead{display:flex;align-items:center;gap:10px;padding:14px 14px;cursor:pointer;min-height:52px}
.item .ihl{flex:1;min-width:0}
.item .iname{font-weight:700;font-size:16px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}
.item .idesc{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .ipx{font-size:16px;font-weight:800;color:var(--ink);flex:none;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.item .ipx.muted{color:#b7b2a6;font-weight:600;font-size:14px}
.item .ipx.ok{color:var(--accent2)}
.item .ipx .ic{width:15px;height:15px}
.item .ib{color:#b7b2a6;flex:none;display:inline-flex;align-items:center;font-size:12px;font-weight:700;gap:1px}
.item .ib .ic{width:15px;height:15px}
.item .ichev{color:#c7c4bc;flex:none;display:grid;place-items:center;transition:transform .2s}
.item .ichev .ic{width:18px;height:18px}
.item.open .ichev{transform:rotate(90deg)}
/* раскрытая часть */
.item .ibody{padding:0 14px 14px;animation:up .18s ease-out}
.item .ibody>*+*{margin-top:9px}
.item .isubrow{display:flex;align-items:center;gap:8px;margin-top:2px!important}
.item .isub{flex:1;min-width:0;font-size:13px;color:var(--muted);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .isubdel{width:34px;height:34px;flex:none;border:none;background:none;color:#c4c0b8;display:grid;place-items:center;margin:-6px -8px -6px 0}
.item .isubdel .ic{width:17px;height:17px}
.item .isub{font-size:13px;color:var(--muted);font-weight:600;margin:0 0 2px;cursor:pointer}
.item .idel{margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);border-radius:11px;padding:11px;font-size:14px;font-weight:700}
.item .idel .ic{width:16px;height:16px}
.item .note{margin-top:8px;background:#f7f6f2;border:1px solid var(--line);border-radius:10px;padding:8px 11px;font-size:14px;color:#55524c;font-weight:500;display:flex;gap:7px;align-items:baseline}
/* комплектация: сегмент-контрол во всю ширину */
.item .kits{display:flex;margin-top:10px;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}
.item .kit{flex:1;min-height:44px;font-size:13.5px;font-weight:700;padding:8px 4px;border:none;border-right:1.5px solid var(--line);border-radius:0;background:#fff;color:#6f6b63}
.item .kit:last-child{border-right:none}
.item .kit.on{background:var(--accent2);color:#fff}
.item .row2{display:flex;align-items:stretch;gap:9px;margin-top:10px}
/* инлайн-исправление названия позиции */
.rn{margin-top:8px;padding:0 14px}
.rn .rnrow{display:flex;gap:8px}
.rn input{flex:1;font-size:16px;padding:11px 12px;border:1.5px solid var(--accent);border-radius:11px;outline:none;font-weight:600;min-width:0}
.rn .rncl{width:44px;border:1.5px solid var(--line);background:#fff;border-radius:11px;color:var(--muted);flex:none;display:grid;place-items:center}
.rn .sugg{margin:6px 0 0}
/* цена — главный элемент карточки */
.price{display:flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:11px;padding:0 12px;flex:1;height:48px}
.price input{border:none;outline:none;font-size:20px;font-weight:800;width:100%;background:none;color:var(--ink);font-variant-numeric:tabular-nums}
.price .cur{color:var(--muted);font-weight:700;font-size:13px}
.price.filled{border-color:var(--fill-line);background:var(--fill-soft)}
.mini{width:48px;height:48px;border-radius:11px;border:1.5px solid var(--line);background:#fff;display:grid;place-items:center;color:#6f6b63;flex:none;cursor:pointer}
.mini.has{border-color:var(--fill-line);background:var(--fill-soft);color:var(--accent2)}
/* ===== панель добавления ===== */
.addwrap{position:sticky;bottom:0;z-index:25;background:linear-gradient(transparent,var(--bg) 24%);padding:10px 16px calc(14px + var(--safe-b))}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 12px;font-weight:700;font-size:14.5px;box-shadow:var(--shadow);min-height:36px}
.chip.part{border-color:#f0c9ac;background:#fff5ec}
.chip.car{border-color:#d8d5cd;background:#faf9f6}
.chip x{color:#b9b6ae;font-style:normal;font-weight:800;padding:2px 4px;margin:-2px -4px;cursor:pointer}
.addbox{position:relative}
.addbox input{width:100%;font-size:18px;padding:15px 56px 15px 16px;border:1.5px solid var(--accent);border-radius:14px;outline:none;font-weight:600;background:#fff;box-shadow:var(--shadow)}
.addbox .go{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:11px;background:var(--accent);color:#fff;display:grid;place-items:center}
.addbox .go:active{transform:translateY(-50%) scale(.94)}
.popover{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);max-height:50vh;overflow-y:auto;overscroll-behavior:contain}
.popover div{padding:13px 15px;border-bottom:1px solid var(--line);font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:48px}
.popover div:last-child{border-bottom:none}.popover .new{color:var(--accent)}
.popover .tag{font-size:12px;color:var(--muted);font-weight:700;flex:none;text-align:right}
.popover .en{color:var(--accent2);font-weight:600}
.empty{text-align:center;color:var(--muted);padding:54px 30px;font-size:16px}
/* ===== экран босса ===== */
#boss .bar{background:var(--ink)}#boss .bar h1{color:#fff}#boss .back{color:#fff}
.boss-i{background:#fff;border:1px solid var(--line);border-radius:14px;margin:9px 16px;padding:13px 14px}
.boss-i .bn{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:3px;display:flex;gap:9px;align-items:center}
.boss-i .bn .d{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center;flex:none;font-variant-numeric:tabular-nums}
.boss-i .bru{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 0 9px 31px}
.boss-i .bnote{display:flex;gap:6px;align-items:flex-start;font-size:13px;color:#55524c;background:#f7f6f2;border:1px solid var(--line);border-radius:9px;padding:7px 10px;margin:0 0 9px 31px}
.boss-i .bnote .ic{width:14px;height:14px;color:var(--muted);flex:none;margin-top:2px}
.boss-i .price{border-width:1.5px;padding:9px 13px;height:auto;min-height:46px}.boss-i .price input{font-size:20px;font-weight:800}.boss-i .price.filled{border-color:var(--ok)}
.enadd{margin:2px 0 10px 31px}
.enadd button{border:none;background:none;color:var(--accent2);padding:2px 0;font-weight:700;font-size:13px;text-decoration:underline;text-underline-offset:2px}
.enrow{display:flex;gap:8px;margin:2px 0 10px 31px}
.enrow input{flex:1;border:1.5px solid var(--accent2);border-radius:10px;padding:9px 12px;font-size:16px;font-weight:600;outline:none;min-width:0}
.enrow button{border:none;background:var(--accent2);color:#fff;border-radius:10px;padding:0 16px;font-weight:700;min-height:44px}
.boss-total{margin:12px 16px;padding:12px 16px;background:var(--ink);color:#fff;border-radius:12px;font-weight:700;font-size:14.5px;display:flex;justify-content:space-between;align-items:center;font-variant-numeric:tabular-nums}
.savedtick{font-size:13px;color:var(--ok);font-weight:700;margin-left:6px;opacity:0;transition:.2s}.savedtick.show{opacity:1}
.toast{position:fixed;left:50%;bottom:calc(110px + var(--safe-b));transform:translateX(-50%);background:#15171c;color:#fff;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:600;opacity:0;transition:.25s;z-index:120;pointer-events:none;max-width:88vw;text-align:center}
.toast.show{opacity:1}
.spin{display:inline-block;width:15px;height:15px;border:2px solid #d8d5cd;border-top-color:var(--accent);border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
/* ===== команда ===== */
.tbtn.wide{width:calc(100% - 32px);margin:0 16px;justify-content:center}
.tcard{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);margin:12px 16px;padding:16px}
.tcard .th{font-size:18px;font-weight:800;letter-spacing:-.01em}
.tcard .ts{color:var(--muted);font-size:13.5px;line-height:1.45;margin:6px 0 14px}
.inviterow{display:flex;gap:8px;align-items:stretch}
.inviteurl{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:11px;padding:0 12px;font-size:13px;color:var(--muted);background:#faf9f6;height:44px;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.tlist{margin:0 16px}
.trow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;font-weight:600}
.trow .tbadge{font-size:11px;font-weight:800;color:var(--accent2);background:#fdeadd;border-radius:999px;padding:2px 8px;margin-left:4px}
.tx{width:36px;height:36px;border:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);border-radius:10px;display:grid;place-items:center;flex:none}
.tbtn.danger{color:var(--danger);border-color:var(--danger-line);background:var(--danger-soft)}
/* плашка «только просмотр» */
.robanner{display:flex;align-items:center;gap:7px;background:#fff6ed;border:1px solid #f3d9c0;color:#9a4d12;border-radius:12px;padding:9px 13px;font-size:13.5px;font-weight:600;margin-top:8px;width:100%}
/* read-only список позиций сокомандника */
#itemList.ro .del,#itemList.ro .mini,#itemList.ro .kits{display:none}
#itemList.ro .iname{pointer-events:none}
#itemList.ro .price input{pointer-events:none;color:var(--ink)}
/* оверлей цены команды */
.tphint{display:flex;align-items:center;gap:5px 8px;color:#3a5a8c;font-size:12.5px;font-weight:600;flex-wrap:wrap}
.tphint .tpl{opacity:.8}
.tphint .tpv{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}
.tphint b{color:#2b4a78;font-variant-numeric:tabular-nums}
.tphint .tpk{color:#7d9bc4;font-weight:600;font-size:11.5px}
.tphint .tpby{color:#7d9bc4;font-weight:500;white-space:nowrap}
.tphint .ic{color:#7d9bc4;width:15px;height:15px;flex:none}
/* ===== авто-обновление / pull-to-refresh ===== */
.updbar{position:fixed;left:50%;transform:translateX(-50%);top:calc(9px + env(safe-area-inset-top,0px));z-index:75;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-size:13px;font-weight:700;box-shadow:0 4px 14px rgba(21,23,28,.1);animation:updin .25s ease}
.updbar .upddot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none;box-shadow:0 0 0 0 rgba(232,89,12,.5);animation:updpulse 1.8s infinite}
@keyframes updin{from{opacity:0;transform:translateX(-50%) translateY(-8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes updpulse{0%{box-shadow:0 0 0 0 rgba(232,89,12,.5)}70%{box-shadow:0 0 0 6px rgba(232,89,12,0)}100%{box-shadow:0 0 0 0 rgba(232,89,12,0)}}
.ptr{position:fixed;left:50%;top:calc(6px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:15;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);display:grid;place-items:center;color:var(--muted);opacity:0;pointer-events:none}
.ptr .ic{width:20px;height:20px;transition:transform .2s}
.ptr.ready{color:var(--accent);border-color:var(--fill-line)}
.ptr.ready .ic{transform:rotate(180deg)}
.ptr.spin{color:var(--accent)}
.ptr.spin .ic{animation:sp .7s linear infinite}
/* ===== фото позиции: строка миниатюр + галерея ===== */
.photos{display:flex;gap:7px;margin-top:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.photos .ph{width:56px;height:56px;border-radius:10px;object-fit:cover;border:1px solid var(--line);flex:none;cursor:pointer;position:relative;display:inline-block}
.photos .ph.up{display:grid;place-items:center;background:#f0ede7;overflow:hidden}
.photos .ph.up img{width:100%;height:100%;object-fit:cover;border-radius:10px;opacity:.5;position:absolute;inset:0}
.photos .ph.up .spin{position:relative;z-index:1}
#itemList.ro .mini{display:none}
.pvcount{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:81;color:#fff;font-size:14px;font-weight:700;background:rgba(0,0,0,.4);padding:4px 12px;border-radius:999px;font-variant-numeric:tabular-nums}
.pvnav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;z-index:81}
.pvnav.l{left:12px}.pvnav.r{right:12px}
.pvdel{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:81;display:flex;align-items:center;gap:7px;background:rgba(192,57,43,.92);color:#fff;border:none;border-radius:12px;padding:11px 18px;font-size:14px;font-weight:700}
.pvdel .ic{width:16px;height:16px}
/* ===== купить / количество / цена покупки ===== */
.buyrow{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:nowrap}
.buybtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--line);background:#fff;color:#6f6b63;border-radius:11px;padding:0 16px;height:42px;font-size:14px;font-weight:700;flex:1}
.buyrow.on .buybtn{width:42px;padding:0;flex:none}
.buybtn .ic{width:16px;height:16px}
.buybtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.qty{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:11px;overflow:hidden;height:42px}
.qty .qb{width:36px;height:100%;border:none;background:#fff;font-size:21px;font-weight:700;color:var(--ink);display:grid;place-items:center}
.qty .qn{min-width:26px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums;font-size:16px}
.price.sm{height:42px;min-height:0;flex:1 1 88px;min-width:0}
.price.sm input{font-size:16px;font-weight:700}
.item.bought{border-color:var(--fill-line);background:var(--fill-soft);box-shadow:inset 3px 0 0 var(--accent),var(--shadow)}
#itemList.ro .buybtn,#itemList.ro .qty .qb,#itemList.ro .price.sm input{pointer-events:none;opacity:.75}
/* бэйдж «куплено» на экране босса */
.bbadge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;color:#fff;background:var(--accent);border-radius:999px;padding:2px 7px;white-space:nowrap;font-variant-numeric:tabular-nums}
.bbadge .ic{width:13px;height:13px}
.boss-i.bought{border-color:var(--fill-line);background:var(--fill-soft)}
/* read-only заход сокомандника: раскрытие для просмотра, без правок */
#itemList.ro .idel,#itemList.ro .buyrow{display:none}
#itemList.ro .kit,#itemList.ro .price input,#itemList.ro .isub{pointer-events:none}
/* ===== инвойсы захода ===== */
#invoices:empty{display:none}
#invoices{margin:10px 16px 0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:12px 13px}
.invhead{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:9px}
.invhead .ic{width:17px;height:17px;color:var(--accent2)}
#invoices .photos{margin-top:0}
.photos .ph.add{display:grid;place-items:center;background:#fff;border:1.5px dashed var(--line);color:var(--muted);cursor:pointer}
.photos .ph.add .ic{width:22px;height:22px}
/* заметка в результате поиска */
.hit .hnote{margin-top:4px;font-size:12.5px;color:#55524c;font-weight:500;display:flex;gap:5px;align-items:baseline}
.hit .hnote .ic{width:13px;height:13px;color:var(--muted);flex:none}
/* ===== список купленного ===== */
#bought .btotal,.boss-total{}
.btotal{margin:12px 16px;padding:15px 18px;background:var(--ink);color:#fff;border-radius:14px;font-weight:800;font-size:17px;display:flex;justify-content:space-between;align-items:center;font-variant-numeric:tabular-nums}
.bgroup{margin:12px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.bshop{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#faf9f6;border-bottom:1px solid var(--line);font-weight:700;font-size:14px}
.bshop .ic{width:17px;height:17px;color:var(--accent2);flex:none}
.bshopn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bshopsum{flex:none;font-weight:800;color:var(--accent2);font-variant-numeric:tabular-nums}
.brow{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line)}
.brow:last-child{border-bottom:none}
.bl{flex:1;min-width:0}
.blab{font-weight:600;font-size:15px}
.bnote{font-size:12.5px;color:#55524c;margin-top:3px;display:flex;gap:5px;align-items:baseline}
.bnote .ic{width:12px;height:12px;color:var(--muted);flex:none}
.bwho{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);font-weight:600;margin-top:3px}
.bwho .ic{width:12px;height:12px}
.bqp{flex:none;text-align:right;white-space:nowrap}
.bq{display:block;font-size:12px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.bsum{display:block;font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
/* кнопка «поделиться ценами» в шапке захода */
.sharebtn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;color:var(--accent2);border-radius:10px;padding:6px 11px;font-size:13px;font-weight:700}
.sharebtn .ic{width:15px;height:15px}
/* архив прошлых отгрузок на экране «Купленное» */
.barch{margin:24px 16px 40px}
.barch-h{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;color:var(--muted);padding:10px 2px;font:inherit;font-weight:700}
.barch-h .ic{width:17px;height:17px}
.barch-h span{flex:1;text-align:left}
.barch-b{margin-top:6px}
.archrow{align-items:center}
.archrow .tbtn{padding:8px 10px;flex:none}
.archrow .tbtn .ic{width:16px;height:16px}
/* плашка демо-режима */
.demobar{display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--ink);color:#e8e6e2;padding:11px 14px}
.demobar span{flex:1;font-size:12.5px;line-height:1.35}
.demobar span b{color:#fff}
.demobtn{flex:none;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;padding:9px 13px;border-radius:10px;font-size:13px;white-space:nowrap}
.demobtn:active{background:var(--accent2)}
/* поиск: акцент поля + сводка «прайс по рынку» + сортировка */
.search:focus-within{border-color:var(--accent);color:var(--ink)}
.srch-sum{margin:10px 16px 0;background:var(--ink);color:#fff;border-radius:14px;padding:12px 15px}
.srch-sum .ss-t{font-weight:800;font-size:15px;margin-bottom:5px}
.srch-sum .ss-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:#c7cad1;font-variant-numeric:tabular-nums}
.srch-sum .ss-avg b{color:#fff;font-size:16px}
.srch-sort{display:flex;gap:6px;margin:10px 16px 2px}
.srch-sort button{flex:1;background:#fff;border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:8px;font-size:13px;font-weight:700}
.srch-sort button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.hit.cheapest{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}
.cheaptag{display:block;font-size:10px;font-weight:800;color:var(--ok);text-transform:uppercase;letter-spacing:.03em;margin-top:2px;text-align:right}
