/* Касса: пополнение игрового баланса */
.cashier-head{
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;
  padding:clamp(22px,3vw,32px);
  background:linear-gradient(150deg,rgba(41,32,66,.9),rgba(14,11,22,.92));
  border:1px solid var(--line);
}
.cashier-head:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 55% 120% at 88% 0,rgba(139,92,246,.3),transparent 62%);
}
.cashier-head>*{position:relative}
.cashier-head h1{margin:6px 0 0;font:800 clamp(24px,2.6vw,34px)/1.1 Manrope,sans-serif;letter-spacing:-.03em}

/* Платформа виртуальная — говорим это прямо, а не мелким шрифтом внизу. */
.cashier-note{
  margin:14px 0 0;padding:14px 16px;
  background:rgba(139,92,246,.09);border:1px solid rgba(139,92,246,.28);
  color:var(--muted);font-size:13px;line-height:1.55;
}

.amount-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.amount-tile{
  padding:20px 14px;text-align:center;cursor:pointer;
  background:var(--surface-2,rgba(255,255,255,.03));border:1px solid var(--line);
  color:inherit;transition:border-color .15s,background .15s,transform .15s;
}
.amount-tile:hover{border-color:rgba(139,92,246,.55);transform:translateY(-1px)}
.amount-tile b{font:800 20px Manrope,sans-serif;letter-spacing:-.02em}
.amount-tile.chosen{
  border-color:var(--violet-2,#8b5cf6);
  background:rgba(139,92,246,.16);
  box-shadow:inset 0 0 0 1px rgba(139,92,246,.4);
}

.cashier-submit{margin-top:16px;width:100%;justify-content:center}
.cashier-open-game{
  margin:14px 0 0;color:var(--lime);font-size:13px;
}

@media (max-width:640px){
  .cashier-head{flex-direction:column;align-items:flex-start}
  .profile-balance{text-align:left}
}

/* ——— Крипто-пополнение и заявки на выплату ——— */

/* Поля стоят колонкой: подписи по-русски длинные, а в строку они ломают вёрстку на телефоне. */
.cashier-amount{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.cashier-amount>span{font-size:12px;color:var(--muted)}
.cashier-amount .admin-input{width:100%;min-height:44px;padding:10px 12px;background:rgba(255,255,255,.04);border:1px solid var(--line);color:#fff;font:inherit;outline:0}
.cashier-amount .admin-input:focus{border-color:var(--accent,#7c5cff)}

.history-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px}
.history-row:last-child{border-bottom:0}
.history-row b{margin-left:auto;font-variant-numeric:tabular-nums}
.history-row .muted{color:var(--muted);font-size:12px}
.history-row .glass-button{padding:6px 12px;font-size:12px}

/* Сообщение об успехе и об ошибке — один узел, поэтому цвет переключается модификатором. */
.form-message.is-ok{color:#5fd39b}

/* ——— Возврат с оплаты ——— */
/* Игрок приходит сюда со страницы провайдера и должен сразу понять, что всё получилось.
   Раньше его встречала обычная касса, по которой ничего не ясно. */
.paid-banner{
  display:flex;align-items:center;gap:18px;
  margin:0 0 22px;padding:20px 22px;
  background:linear-gradient(135deg,rgba(163,230,53,.12),rgba(124,58,237,.1));
  border:1px solid rgba(163,230,53,.32);
  animation:paidIn .5s cubic-bezier(.2,.7,.2,1) both;
}
.paid-banner[hidden]{display:none}
.paid-mark{
  width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:50%;
  background:rgba(163,230,53,.16);border:1px solid rgba(163,230,53,.45);
}
.paid-mark svg{width:22px;fill:none;stroke:var(--lime);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:26;stroke-dashoffset:26;animation:paidTick .45s .2s ease forwards}
.paid-text{flex:1 1 auto;min-width:0}
.paid-text h2{margin:0;font:700 19px Manrope,sans-serif}
.paid-text p{margin:5px 0 0;color:var(--muted);font-size:13px}
.paid-banner .glass-button{flex:none;padding:11px 16px}
@keyframes paidIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes paidTick{to{stroke-dashoffset:0}}
@media(max-width:650px){
  .paid-banner{flex-wrap:wrap;gap:12px}
  .paid-banner .glass-button{width:100%}
}

/* ——— Способ пополнения ——— */
/* Появляется, только когда способов больше одного: выбор из единственного пункта ничего не
   даёт игроку и лишь удлиняет путь до оплаты. */
.method-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:16px}
.method-row[hidden]{display:none}
.method-tile{
  display:flex;flex-direction:column;gap:4px;align-items:flex-start;
  padding:14px 16px;text-align:left;
  background:var(--surface);border:1px solid var(--line);color:#fff;
  transition:border-color .2s,background .2s;
}
.method-tile:hover{border-color:rgba(183,136,255,.4)}
.method-tile.chosen{border-color:rgba(183,136,255,.75);background:#211735}
.method-tile b{font-size:14px}
.method-tile small{color:var(--muted);font-size:11px;line-height:1.4}

/* ——— Отыгрыш бонуса ——— */
/* Стоит перед формой вывода: игрок должен узнать об ограничении до того, как введёт сумму,
   которую всё равно не получит. */
.wager-box{
  margin:0 0 18px;padding:14px 16px;
  background:rgba(183,136,255,.07);border:1px solid rgba(183,136,255,.24);
}
.wager-box[hidden]{display:none}
.wager-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.wager-head b{font-size:14px}
.wager-head span{font-weight:700;color:var(--violet-2);font-variant-numeric:tabular-nums}
.wager-bar{height:6px;background:rgba(255,255,255,.07);overflow:hidden}
.wager-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--violet-2),var(--lime));transition:width .5s}
.wager-box .field-hint{margin:10px 0 0;line-height:1.5}
