/* ============================================================
   Магазин — кабинет продавца. Наследует токены журнала (переменные цвета,
   типографику, отступы), своих красок не заводит — чтобы кабинет продавца
   выглядел частью того же издания, а не приложением сбоку.
   ============================================================ */
.shop-seller { max-width: 860px; margin: 0 auto; padding: 1.5rem 1rem 4rem; }
.shop-seller__bar { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.shop-seller__home {
  font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.06em; text-transform: uppercase;
  background: transparent; border: 1px solid var(--line-strong); padding: 0.5rem 0.9rem; min-height: 44px; cursor: pointer;
}
.shop-seller__home:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-seller__title { font-size: var(--t-h2); margin: 0; }
.shop-seller__shop { margin-bottom: 2.5rem; }
.shop-seller__name { font-size: var(--t-h3); margin: 0 0 1rem; padding-bottom: 0.4rem; border-bottom: var(--rule) solid var(--line-strong); }
.shop-seller__empty { color: var(--ink-faint); }
.shop-seller__new { display: flex; flex-direction: column; gap: 0.7rem; max-width: 420px; }

/* добавление товара — ряд кнопок по видам */
.shop-add { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.2rem; }
.shop-add__btn {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.04em;
  background: var(--paper); border: 1px solid var(--line-strong); padding: 0.6rem 1rem; min-height: 44px; cursor: pointer;
}
.shop-add__btn:hover { border-color: var(--accent); color: var(--accent-deep); }

/* панель товара */
.shop-prod { border: 1px solid var(--line); padding: 1.1rem; margin-bottom: 1.2rem; background: var(--paper); }
.shop-prod__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.9rem; }
.shop-prod__kind { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); }
.shop-prod__status {
  font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.06em; text-transform: uppercase;
  padding: 0.2rem 0.6rem; border: 1px solid var(--line-strong);
}
.shop-prod__status--live { color: var(--accent-deep); border-color: var(--accent); }
.shop-prod__status--review { color: var(--ink); }
.shop-prod__status--blocked { color: #b00; border-color: #b00; }
.shop-prod__status--sunset { color: var(--ink-faint); }

/* форма */
.shop-form { display: flex; flex-direction: column; gap: 0.8rem; }
.shop-form__field { display: flex; flex-direction: column; gap: 0.3rem; }
.shop-form__lbl { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-faint); }
.shop-form__in {
  font: inherit; padding: 0.6rem 0.7rem; min-height: 44px;
  background: var(--paper-sink); border: 1px solid var(--line-strong); color: var(--ink); width: 100%;
}
.shop-form__in--area { min-height: 80px; resize: vertical; }
.shop-form__sel { font: inherit; padding: 0.55rem 0.6rem; min-height: 44px; background: var(--paper-sink); border: 1px solid var(--line-strong); color: var(--ink); width: 100%; }
.shop-form__facets { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.7rem; }

/* загрузчик */
.shop-prod__files { display: flex; flex-direction: column; gap: 0.5rem; margin: 1rem 0; }
.shop-up { display: flex; flex-direction: column; gap: 0.35rem; }
.shop-up__btn {
  font-family: var(--mono); font-size: var(--t-small); text-align: left;
  background: transparent; border: 1px dashed var(--line-strong); padding: 0.7rem 0.9rem; min-height: 44px; cursor: pointer; color: var(--ink);
}
.shop-up__btn:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-up__btn:disabled { opacity: 0.5; cursor: default; }
.shop-up__bar { height: 4px; background: var(--line); overflow: hidden; }
.shop-up__fill { display: block; height: 100%; width: 0; background: var(--accent); transition: width 0.2s; }

/* чего не хватает + подвал */
.shop-prod__miss { margin: 0.6rem 0; }
.shop-prod__miss-t { font-family: var(--mono); font-size: var(--t-micro); text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-faint); }
.shop-prod__miss-l { font-size: var(--t-small); color: #b00; margin-top: 0.2rem; }
.shop-prod__foot { display: flex; gap: 0.6rem; }
.shop-prod__submit {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.05em; text-transform: uppercase;
  background: var(--ink); color: var(--paper); border: 1px solid var(--ink); padding: 0.65rem 1.4rem; min-height: 44px; cursor: pointer;
}
.shop-prod__submit:disabled { background: var(--paper); color: var(--ink-faint); border-color: var(--line-strong); cursor: default; }
.shop-prod__del {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.05em; text-transform: uppercase;
  background: transparent; border: 1px solid var(--line-strong); padding: 0.65rem 1.2rem; min-height: 44px; cursor: pointer; color: var(--ink-faint);
}
.shop-prod__del:hover { border-color: #b00; color: #b00; }

/* ── кабинет роли shop: карточки модерации (оболочка — ed-* из editor.css) ── */
.shopmod__count { font-family: var(--mono); font-size: var(--t-micro); text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-faint); }

.shopmod__lookup { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 1.4rem; }
.shopmod__find { flex: 1 1 260px; font: inherit; padding: 0.55rem 0.7rem; min-height: 44px; background: var(--paper-sink); border: 1px solid var(--line-strong); color: var(--ink); }
.shopmod__find-go { font-family: var(--mono); font-size: var(--t-small); background: var(--paper); border: 1px solid var(--line-strong); padding: 0.55rem 1rem; min-height: 44px; cursor: pointer; }
.shopmod__found:not(:empty) { margin-bottom: 1.4rem; }

.shopmod__list { display: flex; flex-direction: column; gap: 1rem; }
.shopmod__card { border: 1px solid var(--line-strong); padding: 1.1rem; background: var(--paper); }
.shopmod__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.shopmod__kind { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); }
.shopmod__shop { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.shopmod__title { font-size: var(--t-h3); margin: 0 0 0.3rem; }
.shopmod__dek { margin: 0 0 0.5rem; color: var(--ink); }
.shopmod__meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: var(--t-small); margin-bottom: 0.7rem; }
.shopmod__facets { color: var(--ink-faint); }
.shopmod__dup { font-size: var(--t-small); color: #b00; border: 1px solid #b00; padding: 0.4rem 0.6rem; margin-bottom: 0.7rem; }

.shopmod__files { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.9rem; }
.shopmod__file {
  display: flex; align-items: center; gap: 0.6rem; text-align: left;
  background: var(--paper-sink); border: 1px solid var(--line); padding: 0.5rem 0.7rem; min-height: 40px; cursor: pointer; font: inherit;
}
.shopmod__file:hover { border-color: var(--accent); }
.shopmod__file-role { font-family: var(--mono); font-size: var(--t-micro); text-transform: uppercase; color: var(--ink-faint); min-width: 68px; }
.shopmod__file-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shopmod__file-size { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.shopmod__payload { font-family: var(--mono); font-size: var(--t-small); color: var(--ink-faint); padding: 0.4rem 0; }
.shopmod__manifest-list { font-family: var(--mono); font-size: var(--t-micro); max-height: 10rem; overflow: auto; border: 1px solid var(--line); margin-bottom: 0.5rem; }
.shopmod__manifest-row { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.2rem 0.45rem; border-bottom: 1px solid var(--line); }

.shopmod__act { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.shopmod__ok {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.05em; text-transform: uppercase;
  background: var(--ink); color: var(--paper); border: 1px solid var(--ink); padding: 0.6rem 1.3rem; min-height: 44px; cursor: pointer;
}
.shopmod__ok:disabled, .shopmod__back:disabled, .shopmod__block:disabled { opacity: 0.5; cursor: default; }
.shopmod__back, .shopmod__block, .shopmod__freeze {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.05em; text-transform: uppercase;
  background: transparent; border: 1px solid var(--line-strong); padding: 0.6rem 1.1rem; min-height: 44px; cursor: pointer; color: var(--ink);
}
.shopmod__block:hover { border-color: #b00; color: #b00; }
.shopmod__freeze.is-on { border-color: var(--accent); color: var(--accent-deep); }

/* ── витрина покупателя ── */
.shop-front { max-width: 1080px; margin: 0 auto; padding-bottom: 4rem; }
.shop-front__bar { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.shop-front__home { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.06em; text-transform: uppercase; background: transparent; border: 1px solid var(--line-strong); padding: 0.5rem 0.9rem; min-height: 44px; cursor: pointer; }
.shop-front__home:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-front__title { font-size: var(--t-h2); margin: 0; }
.shop-front__h2 { font-size: var(--t-h3); margin: 2rem 0 1rem; padding-bottom: 0.4rem; border-bottom: var(--rule) solid var(--line-strong); }
.shop-front__empty { color: var(--ink-faint); }

/* подборки — горизонтальные полосы */
.shop-row { margin: 1.6rem 0; }
.shop-row__head { display: flex; align-items: baseline; gap: 0.7rem; margin-bottom: 0.7rem; }
.shop-row__title { font-size: var(--t-h3); margin: 0; }
.shop-row__sub { font-size: var(--t-small); color: var(--ink-faint); }
.shop-row__strip { display: flex; gap: 0.8rem; overflow-x: auto; padding-bottom: 0.5rem; scroll-snap-type: x mandatory; }
.shop-row__strip > * { scroll-snap-align: start; flex: 0 0 240px; }

/* фильтры */
.shop-front__filter { margin-bottom: 1.4rem; }
.shop-filter { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.7rem; }
.shop-filter__field { display: flex; flex-direction: column; gap: 0.3rem; }
.shop-filter__lbl { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-faint); }
.shop-filter__sel, .shop-filter__in { font: inherit; padding: 0.5rem 0.6rem; min-height: 44px; background: var(--paper-sink); border: 1px solid var(--line-strong); color: var(--ink); width: 100%; }

/* сетка каталога */
.shop-front__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.9rem; }
/* legacy chip-карточка; афишные (.ticket) и альбомные (.shop-card--music) — в shop-v2 */
.shop-card:not(.ticket):not(.shop-card--music) { border: 1px solid var(--line-strong); padding: 1rem; background: var(--paper); cursor: pointer; display: flex; flex-direction: column; gap: 0.35rem; }
.shop-card:not(.ticket):not(.shop-card--music):hover { border-color: var(--accent); }
.shop-card__kind { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); }
.shop-card__title { font-size: var(--t-h4, 1.05rem); margin: 0; }
.shop-card__dek { font-size: var(--t-small); color: var(--ink); margin: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.shop-card__facets { font-size: var(--t-micro); color: var(--ink-faint); }
.shop-card__price { font-family: var(--mono); font-size: var(--t-small); margin-top: auto; color: var(--accent-deep); }

/* чип магазина в подборке */
.shop-chip {
  display: flex; align-items: center; justify-content: space-between; gap: 0.6rem;
  text-align: left; background: var(--paper-raise, var(--paper));
  border: var(--rule) solid var(--line); border-radius: var(--radius-card);
  padding: 0.9rem 1rem; min-height: 64px; cursor: pointer; font: inherit;
  box-shadow: var(--shadow-surface);
  transition: border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.shop-chip:hover { border-color: var(--accent); transform: translateY(-1px); }
.shop-chip__name { font-weight: 600; }
.shop-chip__n { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }

/* карточка товара */
.shop-item { max-width: 720px; margin: 0 auto; padding: 1.2rem 1rem 4rem; }
.shop-item__kind { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin: 1rem 0 0.3rem; }
.shop-item__title { font-size: var(--t-h1, 1.8rem); margin: 0 0 0.5rem; }
.shop-item__dek { color: var(--ink); margin: 0 0 0.8rem; }
.shop-item__nodl { font-size: var(--t-small); color: var(--ink-faint); margin: 0 0 1rem; padding: 0.65rem 0.85rem; border: 1px solid var(--line); background: var(--paper-sink); }
.shop-item__trailer { width: 100%; max-height: 360px; margin: 0 0 1rem; background: var(--ink); }
.shop-item__facets { font-size: var(--t-small); color: var(--ink-faint); margin-bottom: 1rem; }
.shop-item__previews { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.4rem; }
.shop-item__prev { font-family: var(--mono); font-size: var(--t-small); background: var(--paper-sink); border: 1px solid var(--line-strong); padding: 0.55rem 1rem; min-height: 44px; cursor: pointer; }
.shop-item__prev:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-item__buy { border: 1px solid var(--line-strong); padding: 1.1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.shop-item__price { font-family: var(--mono); font-size: var(--t-h3); color: var(--accent-deep); }
.shop-item__size, .shop-item__lic { font-size: var(--t-small); color: var(--ink-faint); }

/* лицо магазина на его странице */
.shop-front__face { margin: 1rem 0 1.5rem; padding-bottom: 1rem; border-bottom: var(--rule) solid var(--line-strong); }
.shop-front__shopname { font-size: var(--t-h2); margin: 0 0 0.3rem; }
.shop-front__shopdek { color: var(--ink-faint); margin: 0; }

/* кнопка магазина в ряду создания страниц наследует .u-new — своих стилей не нужно */

/* ---- покупка на карточке товара ---- */
.shop-front__buys { margin-left: auto; font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.06em; text-transform: uppercase; background: transparent; border: 1px solid var(--line-strong); padding: 0.5rem 0.9rem; min-height: 44px; cursor: pointer; }
.shop-front__buys:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-item__cta { margin-top: 0.4rem; font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.04em; text-transform: uppercase; color: var(--paper); background: var(--accent-deep); border: 1px solid var(--accent-deep); padding: 0.7rem 1.2rem; min-height: 48px; cursor: pointer; }
.shop-item__cta:hover:not(:disabled) { background: var(--accent); border-color: var(--accent); }
.shop-item__cta:disabled { opacity: 0.55; cursor: default; }
.shop-item__owned { font-size: var(--t-small); color: var(--ink); }
.shop-item__tobuys { margin-top: 0.4rem; align-self: flex-start; font-family: var(--mono); font-size: var(--t-small); background: transparent; border: 1px solid var(--line-strong); padding: 0.55rem 1rem; min-height: 44px; cursor: pointer; }
.shop-item__tobuys:hover { border-color: var(--accent); color: var(--accent-deep); }
.shop-item__status { font-size: var(--t-small); color: var(--ink-faint); min-height: 1.2em; }
.shop-item__status.is-ok { color: var(--accent-deep); }
.shop-item__status.is-wait { color: var(--ink); }
.shop-item__status.is-err { color: oklch(0.55 0.18 25); }

/* ---- экран «мои покупки» ---- */
.shop-buys { display: flex; flex-direction: column; gap: 1rem; max-width: 720px; margin: 0 auto; }
.shop-buy { border: 1px solid var(--line-strong); padding: 1.1rem; }
.shop-buy__kind { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 0.3rem; }
.shop-buy__title { font-size: var(--t-h3); margin: 0 0 0.6rem; }
.shop-buy__sunset { font-size: var(--t-small); color: oklch(0.55 0.16 55); border: 1px solid oklch(0.75 0.12 55); background: oklch(0.97 0.03 75); padding: 0.5rem 0.7rem; margin-bottom: 0.7rem; }
.shop-buy__empty { font-size: var(--t-small); color: var(--ink-faint); }
.shop-buy__files { display: flex; flex-direction: column; gap: 0.5rem; }
.shop-buy__dl { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; text-align: left; font-family: var(--mono); font-size: var(--t-small); background: var(--paper-sink); border: 1px solid var(--line-strong); padding: 0.7rem 1rem; min-height: 48px; cursor: pointer; }
.shop-buy__dl:hover:not(:disabled) { border-color: var(--accent); color: var(--accent-deep); }
.shop-buy__dl:disabled { opacity: 0.55; cursor: default; }
.shop-buy__fn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shop-buy__fs { flex-shrink: 0; color: var(--ink-faint); }

/* ---- файловый UI продавца (проход A) ---- */
.shop-prod__files { gap: 0.9rem; }
.shop-files__g { display: flex; flex-direction: column; gap: 0.35rem; padding: 0.6rem 0.7rem; border: 1px solid var(--line); }
.shop-files__glabel { display: flex; align-items: baseline; gap: 0.5rem; }
.shop-files__gname { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink); }
.shop-files__gcount { font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.shop-files__gcount.is-ok { color: var(--accent-deep); }
.shop-files__ghint { font-size: var(--t-micro); color: var(--ink-faint); }
.shop-files__file { display: flex; align-items: center; gap: 0.6rem; font-size: var(--t-small); background: var(--paper-sink); border: 1px solid var(--line); padding: 0.4rem 0.6rem; }
.shop-files__fn { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shop-files__fs { flex: 0 0 auto; font-family: var(--mono); font-size: var(--t-micro); color: var(--ink-faint); }
.shop-files__x { flex: 0 0 auto; width: 32px; height: 32px; line-height: 1; font-size: 1.1rem; background: transparent; border: 1px solid var(--line-strong); color: var(--ink-faint); cursor: pointer; border-radius: 3px; }
.shop-files__x:hover:not(:disabled) { border-color: #b00; color: #b00; }
.shop-files__x:disabled { opacity: 0.5; cursor: default; }
.shop-prod__view {
  font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.05em; text-transform: uppercase;
  background: transparent; border: 1px solid var(--line-strong); padding: 0.65rem 1.2rem; min-height: 44px; cursor: pointer; color: var(--ink);
}
.shop-prod__view:hover { border-color: var(--accent); color: var(--accent-deep); }

/* ---- музыка: инлайн-плеер полного трека + скачивание альбома ---- */
.shop-item__track { display: flex; flex-direction: column; gap: 0.3rem; margin: 0.5rem 0; }
.shop-item__trackname { font-family: var(--mono); font-size: var(--t-small); color: var(--ink); }
.shop-item__audio { width: 100%; min-height: 40px; }
.shop-buy__album { justify-content: center; font-family: var(--mono); font-size: var(--t-small); letter-spacing: 0.03em; }

/* ---- тарифы-лицензии: выбор в карточке + редактор в кабинете ---- */
.shop-item__tiers { display: flex; flex-direction: column; gap: 0.4rem; margin: 0.5rem 0; }
.shop-item__tier { display: flex; align-items: center; gap: 0.6rem; font-size: var(--t-small); cursor: pointer; padding: 0.5rem 0.6rem; border: 1px solid var(--line); min-height: 44px; }
.shop-item__tier:hover { border-color: var(--accent); }
.shop-item__tlbl { flex: 1 1 auto; }
.shop-form__tiers { display: flex; flex-direction: column; gap: 0.4rem; }
.shop-form__tier { display: flex; align-items: center; gap: 0.6rem; padding: 0.5rem 0.6rem; border: 1px solid var(--line); min-height: 44px; }
.shop-form__tlbl { flex: 1 1 auto; font-size: var(--t-small); }
.shop-form__tprice { max-width: 120px; }

/* ---- деньги продавца: баланс и заявка на выплату ---- */
.shop-money { border: 1px solid var(--line-strong); padding: 0.9rem 1rem; margin: 0 0 1.2rem; }
.shop-money__head { font-family: var(--mono); font-size: var(--t-micro); letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 0.5rem; }
.shop-money__row { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--t-small); padding: 0.2rem 0; }
.shop-money__row--dim { color: var(--ink-faint); }
.shop-money__req { font-size: var(--t-small); color: var(--accent-deep); padding: 0.3rem 0; }
.shop-money__hint { font-size: var(--t-small); color: var(--ink-faint); margin-top: 0.4rem; }
.shop-money__form { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.7rem; }
.shop-money__amt { max-width: 140px; }
.shop-money__go { font-family: var(--mono); font-size: var(--t-small); text-transform: uppercase; letter-spacing: 0.04em; color: var(--paper); background: var(--accent-deep); border: 1px solid var(--accent-deep); padding: 0.6rem 1.1rem; min-height: 44px; cursor: pointer; }
.shop-money__go:disabled { opacity: 0.55; cursor: default; }
.shop-money__wait { font-size: var(--t-small); color: var(--ink-faint); }
