/* ==========================================================
   ps-payment — модальные окна результата оплаты
   (успех / ошибка). Переиспользуемый блок для всех страниц.
   Стилистика и затемнение фона повторяют .ps-bright__modal.
   ========================================================== */

.ps-bright .ps-pay-modal{
  position:fixed;
  inset:0;
  z-index:1200;                 /* выше checkout-модалки (1000) */
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
  font-family:"Manrope",system-ui,-apple-system,sans-serif;
  color:var(--ps-ink,#1f140a);
}
.ps-bright .ps-pay-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* Затемнение — то же, что у существующих окон */
.ps-pay-modal__backdrop{
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 50%, rgba(76,30,5,.55), rgba(31,20,10,.7));
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  cursor:pointer;
}

/* Белая карточка с мягким скруглением */
.ps-pay-modal__dialog{
  position:relative;
  width:100%;
  max-width:440px;
  background:#fff;
  border-radius:24px;
  box-shadow:0 40px 80px -28px rgba(43,12,2,.5), 0 16px 32px -12px rgba(176,74,38,.28);
  padding:40px 32px 32px;
  text-align:center;
  transform:translateY(14px) scale(.96);
  transition:transform .28s cubic-bezier(.2,.8,.25,1);
}
.ps-bright .ps-pay-modal.is-open .ps-pay-modal__dialog{
  transform:translateY(0) scale(1);
}

/* Крестик закрытия */
.ps-pay-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#fff;
  border:1.5px solid var(--ps-line,#f3dcb6);
  color:var(--ps-ink-soft,#5a3e25);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .15s, color .15s, border-color .15s, transform .15s;
}
.ps-pay-modal__close:hover{
  background:var(--ps-orange,#ff6a1a);
  border-color:var(--ps-orange,#ff6a1a);
  color:#fff;
  transform:rotate(90deg);
}
.ps-pay-modal__close svg{width:14px;height:14px;}

/* Иконка результата */
.ps-pay-modal__icon{
  width:84px;
  height:84px;
  margin:4px auto 22px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ps-pay-modal__icon svg{width:40px;height:40px;}
/* Успех — фирменный оранжевый */
.ps-pay-modal--success .ps-pay-modal__icon{
  background:linear-gradient(135deg,#ffd6a8,#ffb072);
  color:var(--ps-orange-deep,#e54a00);
  box-shadow:0 14px 28px -12px rgba(229,74,0,.55);
}
/* Ошибка — приглушённый терракот (в одной палитре с брендом) */
.ps-pay-modal--error .ps-pay-modal__icon{
  background:linear-gradient(135deg,#ffd9cf,#ffb7a6);
  color:var(--ps-terra,#b04a26);
  box-shadow:0 14px 28px -12px rgba(176,74,38,.5);
}

.ps-pay-modal__title{
  font-family:"Unbounded","Manrope",sans-serif;
  font-size:25px;
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.02em;
  margin:0 0 12px;
  color:var(--ps-ink,#1f140a);
}
.ps-pay-modal__text{
  font-size:15px;
  line-height:1.55;
  color:var(--ps-ink-soft,#5a3e25);
  margin:0 auto 26px;
  max-width:340px;
  text-wrap:pretty;
}

/* Кнопки */
.ps-pay-modal__actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.ps-pay-modal__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  padding:14px 22px;
  border-radius:14px;
  border:none;
  cursor:pointer;
  font-family:inherit;
  font-size:15px;
  font-weight:800;
  letter-spacing:.01em;
  transition:transform .15s, box-shadow .2s, background .2s, color .2s, border-color .2s;
}
.ps-pay-modal__btn--primary{
  background:linear-gradient(135deg,var(--ps-orange,#ff6a1a),var(--ps-orange-deep,#e54a00));
  color:#fff;
  box-shadow:0 14px 26px -10px rgba(229,74,0,.55), inset 0 1px 0 rgba(255,255,255,.3);
}
.ps-pay-modal__btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 34px -10px rgba(229,74,0,.65), inset 0 1px 0 rgba(255,255,255,.3);
}
.ps-pay-modal__btn--ghost{
  background:#fff;
  color:var(--ps-ink-soft,#5a3e25);
  border:1.5px solid var(--ps-line,#f3dcb6);
}
.ps-pay-modal__btn--ghost:hover{
  background:#fff3e0;
  color:var(--ps-orange-deep,#e54a00);
  border-color:var(--ps-orange,#ff6a1a);
}

@media (max-width: 480px){
  .ps-bright .ps-pay-modal{padding:16px;}
  .ps-pay-modal__dialog{padding:34px 22px 24px;border-radius:22px;}
  .ps-pay-modal__title{font-size:22px;}
  .ps-pay-modal__icon{width:74px;height:74px;margin-bottom:18px;}
}
/* === Pravki 2.2.2: карточки превью фото + анимация загрузки + обрезка имени === */
.ps-photo-previews{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:8px;
}
.ps-photo-previews--multi{
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
}
.ps-photo-card{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 36px 8px 8px;
  background:#fff;
  border:1px solid #f1c98a;
  border-radius:12px;
  box-shadow:0 4px 12px -8px rgba(229,74,0,.25);
  opacity:0;
  transform:translateY(4px);
  transition:opacity .25s ease, transform .25s ease;
  min-width:0; /* ключ к корректному ellipsis */
}
.ps-photo-card.is-loaded{opacity:1; transform:translateY(0);}
.ps-photo-card.is-loading{opacity:.85;}
.ps-photo-card__thumb{
  position:relative;
  width:48px;height:48px;
  flex:0 0 48px;
  border-radius:8px;
  overflow:hidden;
  background:linear-gradient(135deg,#fff8ec 0%, #ffe6c0 100%);
  display:flex;align-items:center;justify-content:center;
}
.ps-photo-card__img{width:100%;height:100%;object-fit:cover;display:block;}
.ps-photo-card__spinner{
  width:22px;height:22px;
  border:2.5px solid rgba(255,138,26,.25);
  border-top-color:#ff6a1a;
  border-radius:50%;
  animation:ps-spin 0.85s linear infinite;
}
@keyframes ps-spin{ to{ transform:rotate(360deg); } }
.ps-photo-card__meta{
  display:flex; flex-direction:column; gap:2px;
  min-width:0; /* критично для truncation в flex-children */
  flex:1 1 auto;
}
.ps-photo-card__name{
  font-size:13px; font-weight:600; color:#2b2118;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  line-height:1.25;
}
.ps-photo-card__size{
  font-size:11px; color:#7A6452; font-weight:500;
}
.ps-photo-card__remove{
  position:absolute; top:6px; right:6px;
  width:24px; height:24px;
  display:inline-flex; align-items:center; justify-content:center;
  border:none;
  background:rgba(255,255,255,.95);
  border-radius:50%;
  color:#c8302b;
  cursor:pointer;
  padding:0;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.18);
  transition:background .15s, color .15s, transform .12s;
}
.ps-photo-card__remove:hover{ background:#c8302b; color:#fff; transform:scale(1.06); }
.ps-photo-card__remove svg{width:10px; height:10px;}
/* Слотовый вариант (внутри upsell-карточки) — компактнее */
.ps-photo-card--slot{ padding:8px 32px 8px 8px; }
/* Скрытие основного label, когда лимит достигнут */
.ps-bright__upload.is-hidden{ display:none; }
/* В загруженном слоте input не должен перехватывать клики — иначе кнопка × недоступна */
.ps-bright__upload.is-loaded > input[type="file"]{ pointer-events:none; }
.ps-bright__upload.is-loaded .ps-photo-card__remove{ z-index:2; }

/* === Pravki 2.2.9: активная иконка плеера трека (играет сейчас) === */
.ps-bright__dd-play.is-playing{
  background:#ff6a1a;
  color:#fff;
  box-shadow:0 0 0 3px rgba(255,138,26,.25);
}
.ps-bright__dd-play{
  transition:background .15s, color .15s, box-shadow .15s;
}

/* === Toast-уведомления валидации === */
.ps-toast-root{
  position:fixed;
  top:24px; right:24px;
  z-index:99999;
  display:flex; flex-direction:column; gap:10px;
  pointer-events:none;
}
.ps-toast{
  pointer-events:auto;
  display:flex; align-items:flex-start; gap:10px;
  min-width:240px; max-width:380px;
  padding:12px 16px;
  background:#fff;
  border-left:4px solid #ff8a1a;
  border-radius:10px;
  box-shadow:0 12px 32px -10px rgba(229,74,0,.35), 0 4px 10px -4px rgba(0,0,0,.18);
  font:600 14px/1.4 Manrope, system-ui, sans-serif;
  color:#2b2118;
  opacity:0;
  transform:translateX(20px);
  transition:opacity .25s ease, transform .25s ease;
}
.ps-toast.is-visible{ opacity:1; transform:translateX(0); }
.ps-toast--error{ border-left-color:#c8302b; }
.ps-toast--success{ border-left-color:#2c7a3a; }
.ps-toast__icon{
  flex:0 0 22px; width:22px; height:22px;
  color:#ff6a1a;
  display:inline-flex; align-items:center; justify-content:center;
}
.ps-toast--error .ps-toast__icon{ color:#c8302b; }
.ps-toast__icon svg{ width:22px; height:22px; }
.ps-toast__msg{ flex:1 1 auto; min-width:0; }
@media (max-width:560px){
  .ps-toast-root{ top:12px; right:12px; left:12px; align-items:stretch; }
  .ps-toast{ min-width:0; max-width:none; }
}
