:root{--js-bg:var(--wf-bg);--js-panel:var(--wf-menu);--js-soft:var(--wf-chip);--js-text:var(--wf-ink);--js-muted:var(--wf-dim);--js-line:var(--wf-rim-hi);--js-accent:#ffc107;--js-ink:#1a1a1a;--js-mark:#e8590c}
.js-shop{padding-bottom:100px;color:var(--js-text);font-family:var(--jasper-font);font-size:14px;line-height:1.55}.js-shop a{color:inherit;text-decoration:none}.js-shop button,.js-shop input,.js-shop select{font:inherit}.js-shop *{box-sizing:border-box}
.js-staff{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:6px 0;border-top:1px solid var(--js-line);border-bottom:1px solid var(--js-line);font-size:12px;color:var(--js-muted)}.js-staff>span{color:var(--js-text);font-weight:700}.js-staff p{margin:0}
.js-link{border:0;background:none;padding:0;color:inherit;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.js-link:hover{text-decoration-thickness:2px}
.js-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 12px;font-weight:600;line-height:1.3;cursor:pointer;text-decoration:none}.js-btn:disabled{opacity:.55;cursor:wait}
.js-shop :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--wf-amber);outline-offset:4px}
.js-eyebrow{display:block;color:var(--js-muted);text-transform:uppercase;letter-spacing:1.6px;font-size:12px;font-weight:700;margin-bottom:12px}
.js-section{padding:34px 0;border-bottom:1px solid var(--js-line);scroll-margin-top:calc(var(--nav-h,70px) + 4px)}.js-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.js-section h2,.js-custom h2{font-size:25px;letter-spacing:-.5px;margin:0;font-weight:600}.js-section-head>a{font-size:13px;color:var(--js-muted);margin:0 0 4px;white-space:nowrap}
/* Группы: ряд категорий и под ним ряд групп открытой категории; выбранное — цветом выбора темы. Категории крупнее групп (владелец 16.10) */
.js-group-bar{display:grid;gap:8px;margin-bottom:14px}.js-chips{display:flex;flex-wrap:wrap;gap:6px}.js-chips[hidden]{display:none}
.js-shop .js-chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:7px 15px;border:1px solid var(--js-line);border-radius:999px;background:var(--wf-chip);color:var(--js-text);font-size:14px;font-weight:600;line-height:1.2;white-space:nowrap;cursor:pointer}.js-shop .js-chip:hover{border-color:var(--js-muted)}
.js-shop .js-chip:is([aria-pressed="true"],[aria-current="page"]){border-color:var(--wf-pick-rim-hi);background:var(--wf-pick-bg);color:var(--wf-pick-ink)}.js-subs .js-chip{min-height:30px;padding:4px 11px;gap:5px;font-size:12px;font-weight:500}.js-chip .js-category-icon{width:16px;height:16px}
.js-gap{margin:0;font-size:13px;color:var(--js-muted);max-width:90ch}
.js-filters{display:grid;grid-template-columns:minmax(180px,1fr) 145px auto 180px;gap:11px;align-items:center;margin-bottom:10px}.js-filters input,.js-filters select{border:1px solid var(--js-line);background:var(--wf-check);color:var(--js-text);border-radius:5px;min-height:40px;padding:8px 12px;width:100%;font-size:13px}.js-filters select{cursor:pointer}.js-filters input::placeholder{color:var(--js-muted)}
.js-search{position:relative}.js-search>input{padding-left:39px}.js-search svg{position:absolute;left:12px;top:11px;fill:none;stroke:var(--js-muted);stroke-width:1.7;width:18px;height:18px}.js-check{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px}.js-check input{accent-color:#ffc107;width:16px;height:16px;min-height:0;padding:0}
.js-count{margin:0 0 10px;font-size:12px;color:var(--js-muted)}
.js-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.js-card{min-width:0;border:1px solid var(--js-line);background:var(--wf-glass);box-shadow:var(--wf-inset);border-radius:var(--ctr-radius);overflow:hidden;display:flex;flex-direction:column}.js-card[hidden],.js-empty[hidden]{display:none!important}
.js-card-preview{position:relative;height:205px;display:flex;align-items:center;justify-content:center;background:#e9ecef;overflow:hidden;padding:33px 20px 17px}.js-card-preview img{object-fit:contain;max-height:100%;width:100%;height:100%;filter:drop-shadow(0 3px 3px #0003)}.js-card-size{position:absolute;left:12px;top:7px;color:var(--js-ink);font-size:17px;font-weight:700;line-height:1.2;letter-spacing:.2px}
.js-card-body{padding:15px 14px;display:flex;flex-direction:column;flex:1}.js-category-icon{display:inline-block;flex-shrink:0;width:24px;height:24px;background:currentColor;-webkit-mask:var(--js-category-icon) center/contain no-repeat;mask:var(--js-category-icon) center/contain no-repeat}
.js-card-category{font-size:24px;font-weight:700;line-height:1.25;margin:0 0 8px;color:var(--js-text)}.js-card-category a{display:flex;align-items:flex-start;gap:8px}.js-card-category span{min-width:0;overflow-wrap:anywhere;hyphens:auto}.js-card-title{font-size:13px;line-height:1.4;color:var(--js-muted);min-height:36px;margin:0 0 14px}.js-card :is(h3,p) a:hover{text-decoration:underline}
.js-card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.js-price{font-size:22px;font-weight:700;line-height:1.2;white-space:nowrap}.js-price small{font-size:15px;font-weight:400;color:var(--js-muted)}.js-price[hidden],.js-owned-chip[hidden]{display:none}
.js-owned-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--wf-amber) 16%,transparent);color:var(--js-text);font-size:13px;font-weight:700;white-space:nowrap}
.js-card .js-btn{font-size:12px;min-height:35px;padding:7px 10px}.js-add{white-space:nowrap}.js-note{font-size:12px;line-height:1.6;color:var(--js-muted);max-width:90ch;margin:18px 0 0}
.js-empty{padding:55px 16px;text-align:center;border:1px dashed var(--js-line);border-radius:var(--ctr-radius)}.js-empty h3{font-size:19px;margin-bottom:10px}.js-empty p{color:var(--js-muted);margin-bottom:20px}.js-empty .js-btn{margin:5px}
/* Инструкция «Как загрузить шаблон в ЧЗ» (16.10): шаг — номер, текст, снимок кабинета ЧЗ; <i>N</i> в тексте — те же номера, что на снимке (цвет колец снимков) */
.js-guide-head{max-width:640px}.js-guide-head p{color:var(--js-muted);margin:10px 0 0}
.js-steps{list-style:none;margin:8px 0 0;padding:0}.js-steps>li{display:grid;grid-template-columns:36px minmax(0,300px) minmax(0,1fr);gap:12px 24px;align-items:start;padding:24px 0;border-top:1px solid var(--js-line)}.js-steps>li:first-child{border-top:0}.js-steps>li:not(:has(.js-shot))>.js-step-text{grid-column:2/-1}
.js-step-n{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--js-accent);color:var(--js-ink);font-weight:700;font-size:15px}
.js-steps h3{font-size:17px;font-weight:600;margin:4px 0 6px}.js-steps p{color:var(--js-muted);margin:0;line-height:1.65}
.js-fill{list-style:none;margin:2px 0 0;padding:0}.js-fill li{margin:4px 0;padding-left:24px;text-indent:-24px;color:var(--js-muted);line-height:1.5}.js-steps p+.js-fill{margin-top:6px}.js-fill+p{margin-top:8px}
.js-steps :is(p,.js-fill li) i{text-indent:0;display:inline-grid;place-items:center;width:18px;height:18px;margin:0 4px 0 1px;border-radius:50%;background:var(--js-mark);color:#fff;font:700 11px/1 var(--jasper-font);font-style:normal;vertical-align:1px}
.js-shot{max-width:700px;margin:0;border:1px solid var(--js-line);border-radius:var(--ctr-radius);overflow:hidden;box-shadow:0 6px 22px #0003}.js-shot a{display:block}.js-shot img{display:block;width:100%;height:auto}
.js-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.js-files>span{padding:5px 10px;border:1px solid var(--js-line);border-radius:6px;background:var(--js-soft);color:var(--js-text);font:12px/1.4 ui-monospace,Consolas,monospace}
.js-guide-note{margin:4px 0 0;font-size:13px;color:var(--js-muted)}.js-shop .js-howto{align-self:center;margin-left:4px;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.js-faq{max-width:800px;margin:auto;border:0}.js-faq h2{margin-bottom:20px}.js-faq details{border-bottom:1px solid var(--js-line);font-size:14px}.js-faq summary{padding:15px 0;cursor:pointer;font-weight:600;list-style:disclosure-closed}.js-faq details[open] summary{list-style:disclosure-open}.js-faq details p{color:var(--js-muted);margin:0 0 17px;line-height:1.7}.js-faq details a{color:var(--js-text);text-decoration:underline;text-underline-offset:3px}
.js-custom{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--js-soft);padding:28px 34px;border-radius:var(--ctr-radius);margin-top:15px}.js-custom p{max-width:520px;font-size:13px;color:var(--js-muted);margin:10px 0 0}.js-custom .js-eyebrow{margin-bottom:7px}.js-custom-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;flex-shrink:0;font-size:13px}
.js-breadcrumb{display:flex;align-items:center;gap:10px;color:var(--js-muted);font-size:13px;flex-wrap:wrap}.js-breadcrumb a{display:inline-flex;align-items:center;color:var(--js-muted)}.js-breadcrumb a:hover{color:var(--js-text);text-decoration:underline}
.js-product{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:10px 0 25px}.js-product-preview{min-height:420px;background:#e9ecef;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 30px 18px;border-radius:var(--ctr-radius);gap:25px}.js-product-preview img{width:100%;max-height:410px;object-fit:contain;filter:drop-shadow(0 6px 5px #0003)}.js-product-preview>span{font-size:12px;color:#495057}
.js-product-info>h1{display:flex;align-items:center;gap:12px;font-size:32px;line-height:1.16;letter-spacing:-.7px;margin:0 0 12px}.js-product-category .js-category-icon{width:32px;height:32px}.js-product-info>.js-product-title{font-size:16px;color:var(--js-text);margin-bottom:18px}.js-product-info>p{font-size:14px;color:var(--js-muted);margin:0 0 20px;line-height:1.65}.js-product-info .js-note{font-size:12px;margin:14px 0 0}
.js-tags{display:flex;flex-wrap:wrap;gap:7px}.js-tags>span{border:1px solid var(--js-line);padding:4px 9px;border-radius:4px;font-size:12px;color:var(--js-muted)}
.js-spec{margin:22px 0}.js-spec>div{display:grid;grid-template-columns:140px 1fr;gap:15px;border-bottom:1px solid var(--js-line);padding:9px 0;font-size:13px}.js-spec dt{font-weight:400;color:var(--js-muted)}.js-spec dd{margin:0}
.js-product-buy{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:23px 0 14px}.js-product-buy .js-price{font-size:30px;margin-right:6px}.js-product-buy .js-owned-chip{font-size:15px;padding:6px 12px}.js-product-buy .js-btn,.js-product-actions .js-btn{font-size:13px}.js-product-actions{display:flex;flex-wrap:wrap;gap:9px}.js-related{grid-template-columns:repeat(3,minmax(0,1fr));max-width:880px}
.js-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Корзина: окно .gm-modal (base.html) — тёмное в обеих темах, список листается внутри */
.js-cart-dialog{max-width:520px}.js-cart .gm-title{font-size:18px;margin:0 28px 10px}.js-cart-items{max-height:min(46vh,430px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:0 -6px;padding:0 6px;text-align:left}
.js-cart-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1)}.js-cart-row>img{width:58px;height:65px;object-fit:contain;background:#e9ecef;border-radius:4px;padding:4px}
.js-cart-row h3{font-size:15px;line-height:1.3;margin:0 0 3px}.js-cart-row h3 a{display:flex;align-items:center;gap:6px;color:#fff;text-decoration:none}.js-cart-row .js-category-icon{width:20px;height:20px}.js-cart-row p{font-size:12px;color:#b9c6bd;margin:0;overflow-wrap:anywhere}.js-cart-row p b{color:#fff}.js-cart-row .js-cart-paid{color:var(--gm-ink)}.js-cart-row .js-link{margin-top:4px;color:#b9c6bd}
/* Оплата в окне покупки (16.10): плашки-радио «Картой или СБП» / «С баланса», гостю — почта вместо регистрации */
.js-pay{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.js-pay[hidden],.js-pay-email[hidden],.js-pay-legal[hidden]{display:none}
.js-pay-opt{position:relative;display:flex;flex-direction:column;gap:1px;margin:0;padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:var(--ctr-radius);background:rgba(0,0,0,.22);text-align:left;cursor:pointer}
.js-pay-opt input{position:absolute;opacity:0;width:0;height:0}.js-pay-opt b{font-size:13px;line-height:1.35;color:#fff}.js-pay-opt small{font-size:12px;line-height:1.35;color:#b9c6bd}.js-pay-opt small a{color:var(--gm-ink)}
.js-pay-opt:has(input:checked){border-color:var(--gm-ink);box-shadow:inset 0 0 0 1px var(--gm-ink);background:color-mix(in srgb,var(--gm-ink) 9%,transparent)}.js-pay-opt:has(input:disabled){cursor:default}.js-pay-opt:has(input:disabled) b{color:#b9c6bd}.js-pay-opt:has(input:focus-visible){outline:2px solid var(--gm-ink);outline-offset:2px}
.js-pay-email{display:block;margin:10px 0 0;text-align:left;font-size:12px;color:#b9c6bd}.js-pay-email input{display:block;width:100%;min-height:42px;margin-top:5px;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:var(--ctr-radius);background:rgba(0,0,0,.28);color:#fff;font-size:16px}
.js-pay-email input:focus{outline:none;border-color:var(--gm-ink)}.js-pay-email.is-bad input{border-color:#ff9b9b}.js-pay-email.is-bad+.gm-sub{color:#ff9b9b}.js-cart .js-pay-legal{margin-top:8px}.js-pay-legal a{color:var(--gm-ink)}
@media(max-width:400px){.js-pay{grid-template-columns:1fr}}
/* Страница заказа (16.10): статус, состав, итог, файлы; токены темы /workflow/ — обе темы */
.js-order{max-width:640px;margin:8px auto 40px;padding:24px 26px;border:1px solid var(--js-line);border-radius:var(--ctr-radius);background:var(--wf-glass);box-shadow:var(--wf-inset)}
.js-order h1{font-size:1.5rem;line-height:1.2;letter-spacing:-.4px;margin:12px 0 6px;font-weight:650}.js-order-lead{margin:0;color:var(--js-muted)}
.js-order-state{display:inline-flex;align-items:center;gap:8px;padding:4px 11px;border-radius:999px;background:color-mix(in srgb,var(--wf-ok) 20%,transparent);color:var(--js-text);font-size:13px;font-weight:700}.js-order-state.is-wait{background:color-mix(in srgb,var(--wf-amber) 18%,transparent)}.js-order-state.is-off{background:var(--js-soft)}
.js-order-items{list-style:none;margin:18px 0 0;padding:0}.js-order-items li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--js-line)}
.js-order-items img{width:52px;height:56px;object-fit:contain;background:#e9ecef;border-radius:2px;padding:4px}.js-order-items a{display:flex;align-items:center;gap:6px;font-weight:600}.js-order-items a:hover{text-decoration:underline}.js-order-items .js-category-icon{width:18px;height:18px}
.js-order-items span{display:block;font-size:12px;color:var(--js-muted)}.js-order-items b{font-size:13px;white-space:nowrap}.js-order-items em{font-style:normal;font-weight:700;color:var(--js-text)}
.js-order-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:12px;border-top:1px solid var(--js-line);color:var(--js-muted);font-size:13px}.js-order-total strong{font-size:1.5rem;color:var(--js-text)}
.js-order-acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:18px}.js-order-acts .js-btn{font-size:13px;min-height:42px;padding:9px 18px}.js-order-acts .js-howto{margin-left:0}.js-order-acts .btn-3d{color:#fff}.js-order-acts .btn-3d-yellow{color:var(--js-ink)}
.js-order-note{margin:16px 0 0;font-size:13px;line-height:1.6;color:var(--js-muted)}.js-order-note b{color:var(--js-text)}.js-order-note a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.js-order{padding:18px 16px;margin-top:4px}}
.js-cart-empty{font-size:13px;color:#b9c6bd;text-align:center;margin:12px 0}.js-cart-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;font-size:13px;color:#b9c6bd;text-align:left}.js-cart-total strong{font-size:22px;color:#fff}.js-cart .gm-sub a{color:var(--gm-ink)}.js-cart .js-clear{display:block;margin:10px auto 0;color:#b9c6bd}.js-cart .js-clear[hidden]{display:none}
@media(max-width:1050px){.js-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.js-filters{grid-template-columns:1fr 130px auto 170px}.js-product{gap:30px}.js-card-preview{height:210px}}
@media(max-width:760px){.js-shop{padding-bottom:110px}.js-staff{align-items:flex-start}.js-section{padding:27px 0}.js-section h2,.js-custom h2{font-size:22px}.js-section-head{align-items:flex-start;margin-bottom:12px}
 .js-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 2px;scrollbar-width:none}.js-chips::-webkit-scrollbar{display:none}.js-shop .js-chip{flex-shrink:0}.js-group-bar{margin-bottom:10px}.js-gap{font-size:12px}.js-gap-more{display:none}
 .js-filters{grid-template-columns:1fr 145px;gap:9px}.js-search{display:none}.js-check{font-size:13px;grid-row:2;grid-column:1/-1}.js-filters>label:last-child{grid-row:1;grid-column:2}
 .js-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.js-card-preview{height:160px;padding:30px 11px 12px}.js-card-size{left:10px;top:6px;font-size:16px}.js-card-body{padding:11px 10px}.js-card-category{font-size:18px;min-height:45px}.js-card-category a{gap:6px}.js-card-category .js-category-icon{width:20px;height:20px}.js-card-title{font-size:12px;min-height:32px;margin-bottom:12px}
 .js-card-bottom{align-items:flex-start;flex-direction:column;gap:9px}.js-price{font-size:17px}.js-card .js-btn{width:100%;min-height:36px;font-size:12px;justify-content:space-between}
 .js-steps>li{grid-template-columns:32px minmax(0,1fr);gap:12px 14px;padding:20px 0}.js-steps>li>.js-shot{grid-column:1/-1}.js-step-n{width:30px;height:30px;font-size:14px}.js-custom{align-items:flex-start;flex-direction:column;padding:23px;gap:18px}
 .js-product{grid-template-columns:1fr;gap:25px}.js-product-preview{min-height:280px;padding:25px 22px 15px;max-height:450px}.js-product-preview img{max-height:320px}.js-product-info>h1{font-size:28px}.js-product-buy .js-price{font-size:26px}.js-spec>div{grid-template-columns:110px 1fr}.js-related{grid-template-columns:repeat(2,minmax(0,1fr))}
 .js-cart-row{gap:10px;grid-template-columns:50px minmax(0,1fr)}.js-cart-row>img{width:50px;height:58px}}
@keyframes jsPulse{40%{transform:scale(1.18)}}
@media(prefers-reduced-motion:no-preference){.js-basket.is-pulse .js-basket-icon{animation:jsPulse .45s ease-out}.js-btn,.js-chip{transition:background .12s,border-color .12s}.js-card-preview img{transition:transform .18s}.js-card-preview:hover img{transform:translateY(-3px)}}
#catalog{padding-top:10px}
.js-basket{position:fixed;right:24px;bottom:24px;z-index:1040;display:flex;align-items:center;gap:12px;min-width:228px;padding:12px 16px 12px 12px;border:1px solid var(--js-line);border-radius:12px;background:var(--js-panel);color:var(--js-text);box-shadow:0 8px 28px #0004;font:600 14px var(--jasper-font);cursor:pointer;text-align:left}.js-basket:hover{border-color:var(--js-accent)}.js-basket-icon{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:var(--js-accent);color:var(--js-ink);flex-shrink:0}.js-basket-count{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--js-text);color:var(--js-bg);font-size:12px;font-weight:700;line-height:20px;text-align:center}.js-basket-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.js-basket-label{flex:1;line-height:1.3}.js-basket-label small{display:block;margin-top:5px;color:var(--js-muted);font-size:12px;font-weight:400}.js-basket-arrow{color:var(--js-muted);font-size:19px}
/* Телефон: корзина — круглая кнопка со счётчиком у правого края, над нижним меню: не закрывает кнопки левой колонки */
@media(max-width:760px){#catalog{padding-top:8px}.js-custom-actions{width:100%}.js-staff-more{display:none}.js-basket{right:12px;bottom:calc(64px + env(safe-area-inset-bottom));min-width:0;padding:6px;border-radius:999px;gap:0}.js-basket-label,.js-basket-arrow{display:none}.js-basket-icon{width:46px;height:46px;border-radius:999px}}
