/* Общие компоненты «рабочих» страниц (закупки, что взять, приёмка): кто вы, чипы, строки, связь, прогресс. Тап-цели ≥ 44 px. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;border:1.5px solid var(--accent);
  background:var(--accent);color:var(--on-accent);font:600 1rem var(--font-text);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.btn.ghost{background:none;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--panel)}
.btn.wide{width:100%}

/* кто вы */
.who-chip{display:inline-flex;align-items:center;gap:8px;min-height:48px;max-width:100%;padding:0 16px 0 6px;border-radius:999px;
  border:1.5px solid var(--accent);background:var(--accent);color:var(--on-accent);font:600 .98rem var(--font-text);cursor:pointer}
.who-chip.is-set{background:none;color:var(--ink);border-color:var(--hair)}
.wc-ico{flex:none;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--on-accent);color:var(--accent);font-weight:700}
.who-chip.is-set .wc-ico{background:var(--accent);color:var(--on-accent)}
.wc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin:10px 0 4px}
.who-opt{min-height:52px;padding:0 8px;border-radius:var(--r-s);border:1px solid var(--hair);background:var(--card);color:var(--ink);font:600 1rem var(--font-text);cursor:pointer;text-align:center}
.who-opt[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.who-opt.mopt{display:grid;text-align:left;padding:10px 14px;min-height:60px}
.who-opt.mopt small{color:inherit;opacity:.8}
.who-opt:disabled{opacity:.5;cursor:default}

/* чипы фильтров */
.chips{display:flex;gap:6px;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--hair);background:var(--card);color:var(--ink);font:500 .92rem var(--font-text);cursor:pointer;white-space:nowrap}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}

/* связь и сообщения */
.net{display:flex;align-items:center;gap:8px;font-size:.84rem;line-height:1.25;margin:0}
.net:empty{height:0}
.net span{flex:1 1 auto;padding:4px 8px;border-radius:8px;color:var(--warn-ink);background:var(--warn-bg)}
.net.is-queue span,.net.is-none span{background:var(--panel);color:var(--ink)}
.nbtn{flex:none;min-height:44px;padding:0 12px;border-radius:999px;border:1px solid var(--hair);background:var(--card);color:var(--ink);font:600 .85rem var(--font-text);cursor:pointer}
.msg{min-height:0;margin:0;padding-top:4px;font-size:.9rem;font-weight:600}
.msg:empty{padding:0}

/* липкая панель прогресса */
.sticky-top{position:sticky;top:calc(var(--header-h) + var(--sa-t));z-index:30;background:var(--paper);border-bottom:1px solid var(--hair);padding:8px 0}
.prog{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.prog .pg-n{margin:0;font-size:1rem}
.prog .pg-n b{font:600 1.45rem/1 var(--font-display)}
.pg-bar{grid-column:1/-1;height:8px;border-radius:4px;background:var(--panel);border:1px solid var(--hair);overflow:hidden;position:relative}
.pg-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);transition:width .2s}
.pg-bar i.alt{background:color-mix(in oklab,var(--accent) 35%,var(--panel))}
.prog .chip{grid-row:1;grid-column:2}

/* группы и строки */
.cat,.pcat{margin:0 0 10px;border:1px solid var(--hair);border-radius:var(--r);background:var(--card);overflow:hidden}
.cat summary,.pcat summary,.cat .cat-h{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:0 16px;cursor:pointer;list-style:none}
.cat summary::-webkit-details-marker,.pcat summary::-webkit-details-marker{display:none}
.cat .cat-h{cursor:default}
.pc-n{font:600 1.15rem/1.2 var(--font-display)}
.pc-c{flex:none;font-weight:600;color:var(--muted)}
.pc-c.is-done{color:var(--ok)}
.rows,.pis{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.rows>li,.pis>li{border-top:1px solid var(--hair)}
.rows>li:first-child,.pis>li:first-child{border-top:0}
.empty{padding:18px 0;font-weight:600}

/* фото-сетка с подписью вне фото; пустой src — плашка */
.photos{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.photo{margin:0;display:grid;gap:6px}
.photo .frame{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:linear-gradient(135deg,var(--panel),color-mix(in oklab,var(--accent) 18%,var(--panel)));display:grid;place-items:center;color:var(--muted);font-size:.9rem;text-align:center;padding:12px}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{font:italic 400 .95rem/1.35 var(--font-display);color:var(--muted)}

/* факты в две колонки */
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 20px;max-width:var(--narrow)}
.facts dt{color:var(--muted)}
.facts dd{margin:0}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{min-height:56px;display:flex;align-items:center;font:600 1.1rem/1.3 var(--font-display);cursor:pointer;list-style:none;padding:12px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;font:400 1.6rem/1 var(--font-display);color:var(--accent)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 16px}
