/* «Прошивка фото» (photoseo.js). Поля, кнопки, чипы и метки — общие pw-*, pft-tag из theme.css/promotion.css; здесь раскладка. Префикс pso- свободен. */
.pso{display:grid;gap:14px}
.pso>div:empty{display:none}
.pso-up{cursor:pointer}
.pso-set summary{cursor:pointer;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;list-style:none}
.pso-set summary::-webkit-details-marker{display:none}
.pso-set[open] summary{margin-bottom:10px}
.pso-setgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.pso-f{display:grid;gap:6px;min-width:0}
.pso-f>span{font-size:12.5px;color:var(--muted2)}
.pso-f em{font-style:normal;opacity:.8}
.pso-f .pw-field{min-width:0;width:100%}
.pso-warn{color:var(--warn)}
.pso-item{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:16px;align-items:start}
.pso-pic{position:relative;border-radius:12px;overflow:hidden;background:var(--panel)}
.pso-pic img{display:block;width:100%;height:auto}
.pso-pic .pft-tag{position:absolute;left:8px;top:8px}
.pso-body{display:grid;gap:10px;min-width:0}
.pso-add{background:var(--panel);border:1px dashed var(--line);border-radius:999px;padding:5px 10px;font-size:12.5px;color:var(--muted2);max-width:220px}
.pso-name{display:flex;align-items:center;gap:6px}
.pso-name b{font-weight:500;color:var(--muted2)}
.pso-check{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;font-size:12.5px;background:var(--panel);border-radius:10px;padding:10px 12px;margin:0}
.pso-check dt{color:var(--muted2)}.pso-check dd{margin:0;overflow-wrap:anywhere}
.pso a.pw-chipbtn,.pso-dlg a.pw-chipbtn{text-decoration:none}
.pso-empty{padding:24px 0}
.pso-pick{gap:10px}
.pso-pick-h{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.pso-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:360px;overflow:auto}
.pso-pick-ph{display:grid;gap:4px;padding:4px;border-radius:12px;border:2px solid transparent;background:var(--panel);text-align:left;font-size:11.5px;color:var(--muted2)}
.pso-pick-ph img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
.pso-pick-ph span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pso-pick-ph[aria-pressed="true"]{border-color:var(--fg);color:var(--fg)}
/* сотни фото: плитки с ключами, фильтры, отметка, окно фото */
.pso.pso-drop{outline:2px dashed var(--fg);outline-offset:4px;border-radius:var(--r-panel)}
.pso-prog{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted2)}
.pso-prog progress{flex:1 1 220px;max-width:420px;height:8px;accent-color:var(--fg)}
.pso-dl{align-items:center}
.pso-fails{font-size:12.5px;color:var(--muted2)}
.pso-fails ul{margin:6px 0 8px;padding-left:18px;max-height:180px;overflow:auto}
.pso-findrow .pso-q{max-width:420px}
.pso-filters{gap:6px}
.pso-sel{align-items:center;gap:8px}
.pso-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.pso-tile{background:var(--inset);border-radius:14px;overflow:hidden;cursor:pointer;display:grid;align-content:start;border:2px solid transparent;min-width:0}
.pso-tile:hover,.pso-tile:focus-visible{border-color:var(--line)}
.pso-tile.on{border-color:var(--fg)}
.pso-tile-pic{position:relative;background:var(--panel)}
.pso-tile-pic img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.pso-tile-pic .pft-tag{position:absolute;left:6px;top:6px}
.pso-tick{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:#0006;color:transparent;font-size:14px;line-height:1;padding:0;display:grid;place-items:center}
.pso-tick[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--panel)}
.pso-tile-b{display:grid;gap:6px;padding:8px 10px 10px;min-width:0}
.pso-tile-b>b{font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pso-tile-k{display:flex;flex-wrap:wrap;gap:4px}
.pso-tile-k span{font-size:11.5px;line-height:1.3;padding:2px 7px;border-radius:999px;background:var(--panel);color:var(--muted2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pso-tile-k .more{color:var(--fg)}
.pso-tile-b .pw-note{margin:0;font-size:12px}
.pso-err{color:var(--warn);font-size:12px;margin:0}
.pso-dirty{color:var(--warn);font-size:12px;margin:0;font-weight:500}
.pso-pager{justify-content:center;align-items:center}
dialog.pso-dlg{max-width:min(1100px,calc(100vw - 24px));width:100%;max-height:calc(100vh - 24px);overflow:auto;padding:16px;display:grid;gap:12px}
dialog.pso-dlg:not([open]){display:none}
.pso-dlg-h{display:flex;gap:8px;align-items:center}
.pso-dlg-h .pw-note{flex:1;text-align:center}
@media (max-width:760px){.pso-item{grid-template-columns:1fr}.pso-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
.pso-dlg .pw-field,.pso-dlg .pso-add{background:var(--inset)}
