/* Мелочи поверх остального: заглушки меню, тост, мини-кнопка. */

.nav-item.stub { opacity: .5; cursor: not-allowed; }

.notif-empty { padding: 16px; font-size: 0.82rem; color: var(--text-secondary); }

.mini-btn {
    border: 1px solid var(--input-border);
    background: var(--input-bg);
    color: var(--text-secondary);
    border-radius: var(--r-sm);
    padding: 4px 10px;
    font-size: 0.72rem;
    cursor: pointer;
    font-family: inherit;
    transition: all .15s;
}
.mini-btn:hover { border-color: var(--accent); color: var(--accent); }
.mini-btn[disabled] { opacity: .55; cursor: not-allowed; }
.result-actions { display: flex; gap: 6px; }

.toast {
    position: fixed;
    left: 50%;
    bottom: 28px;
    transform: translateX(-50%);
    z-index: 9999;
    background: var(--card-bg);
    color: var(--text-primary);
    border: 1px solid var(--border-light);
    border-left: 3px solid var(--accent);
    border-radius: var(--r-sm);
    padding: 12px 18px;
    font-size: 0.85rem;
    box-shadow: 0 8px 28px var(--shadow-heavy);
    max-width: min(520px, 92vw);
}

/* ── Кабинет рефовода ── */
/* Пять цифр в ряд на широком экране, по две на телефоне (правило для
   .stats-section в base.css). Отступы у кабинета свои: там секция —
   блок настроек, а не отдельный экран лендинга. */
.stats-section--ref { margin: 4px 0 0; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.stats-section--ref .stat-card { padding: 18px 12px; }
.stats-section--ref .stat-number { font-size: clamp(1.3rem, 2vw, 1.9rem); }

.utm-summary { cursor: pointer; list-style: none; align-items: center; }
.utm-summary::-webkit-details-marker { display: none; }
.utm-summary i { color: var(--accent); transition: transform .15s; }
.utm-block[open] .utm-summary i { transform: rotate(180deg); }
.utm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-top: 10px; }
.utm-field { display: flex; flex-direction: column; gap: 4px; font-size: 0.75rem; color: var(--text-secondary); }

.utm-table-wrap { overflow-x: auto; }
.utm-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.utm-table th, .utm-table td { padding: 8px 10px; text-align: right; border-bottom: 1px solid var(--border-light); white-space: nowrap; }
.utm-table th { color: var(--text-secondary); font-weight: 600; }
.utm-table th:first-child, .utm-table td:first-child { text-align: left; white-space: normal; min-width: 150px; }
.utm-table td:first-child { color: var(--text-primary); overflow-wrap: anywhere; }
.utm-table .utm-none { color: var(--text-secondary); font-style: italic; }
.utm-empty { font-size: 0.85rem; color: var(--text-secondary); }

.ref-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.terms-body { font-size: 0.9rem; color: var(--text-secondary); line-height: 1.5; }

/* ── Баланс ── */
.balance-amount { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; color: var(--accent); }
.balance-amount.negative { color: var(--danger); }
.topup-packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.topup-package {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    padding: 14px 10px; border-radius: var(--r-sm); cursor: pointer; font: inherit;
    background: var(--input-bg); border: 1px solid var(--input-border); color: var(--text-primary);
    transition: border-color .15s;
}
.topup-package:hover, .topup-package.selected { border-color: var(--accent); }
.topup-sum { font-size: 1.05rem; font-weight: 700; }
.topup-bonus { font-size: 0.75rem; color: var(--accent); }
.topup-custom { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 10px; }
.topup-custom .cta-register-btn { width: auto; padding: 12px 22px; }
.topup-custom .cta-register-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
@media (max-width: 480px) { .topup-custom { grid-template-columns: 1fr; } .topup-custom .cta-register-btn { width: 100%; } }
.stat-sub { font-size: 0.72rem; color: var(--text-secondary); margin-top: 4px; }
