/* LP LAB: подписка (07.10) */
body.sub-locked .shell > main > :not(#sub-gate) { display: none !important; }
#sub-gate { padding: 32px 0; }
#sub-gate .sub-card { max-width: 860px; margin: 0 auto; background: #fff; border: 1px solid #e3e6ec; border-radius: 14px; padding: 28px; }
#sub-gate h2 { margin: 0 0 10px; font-size: 22px; }
#sub-gate p { line-height: 1.5; }
#sub-gate code { overflow-wrap: anywhere; font-size: 12px; background: #f3f5f8; padding: 2px 6px; border-radius: 6px; }
.sub-muted { color: #667085; font-size: 14px; }
.sub-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 18px 0; }
.sub-plan { border: 1px solid #e3e6ec; border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.sub-plan span { color: #667085; font-size: 13px; }
.sub-plan strong { font-size: 20px; }
.sub-status { font-weight: 600; }
.sub-manual { margin: 12px 0; }
.sub-manual > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sub-manual input { flex: 1 1 320px; min-width: 0; padding: 8px 10px; border: 1px solid #d0d5dd; border-radius: 8px; font-family: monospace; }
.sub-manual select { padding: 8px; border: 1px solid #d0d5dd; border-radius: 8px; }
.sub-safe { margin-top: 18px; font-size: 14px; }
.sub-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
@media (max-width: 600px) { #sub-gate .sub-card { padding: 18px; } }

/* admin shortcut (shown only for an admin wallet) */
.sidebar .sub-admin { margin-top: 8px; width: 100%; justify-content: center; }
.sidebar .sub-admin[hidden] { display: none; }

/* 07.10 Telegram VIP (кнопка видна вошедшему кошельку, если группа настроена на сервере) */
.sidebar .tg-vip-open { margin-top: 8px; width: 100%; justify-content: center; }
.sidebar .tg-vip-open[hidden] { display: none; }
#tg-vip-dialog .dialog-body > * { margin: 12px 0; }
#tg-vip-dialog .tg-vip-state { font-weight: 600; color: #c6ed9d; }
#tg-vip-dialog .tg-vip-actions { display: flex; gap: 8px; flex-wrap: wrap; }
