/* 06.11.2026: стекло как в «Рыбалке» (просьба владельца).
   Рецепт: заливка 60 % (тёмная 56 %) + blur(22px) saturate(180%) + мягкая тень + рамка 1 px, которая светится
   только в левом верхнем и правом нижнем углу (градиент 135° через маску в ::before).
   Файл подключается ПОСЛЕДНИМ в <head> каждого мини-приложения: перебивает --lg-* и --glass-bg из inline <style>.
   Новому стеклянному элементу — класс .lg-glass (или .lg-glass-sheet для листов/модалок), либо добавить его в списки ниже
   (проверить, что у него свободен ::before и что он не fixed/sticky/absolute, прежде чем ставить position: relative). */

/* ---------- токены ----------
   html body / html body.tg-dark — специфичнее, чем body {} и body.tg-dark {} в страницах, поэтому порядок не важен. */
html body {
    --lg-bg: rgba(255,255,255,0.6);
    --lg-sheet: rgba(250,250,252,0.8);
    --lg-blur: blur(22px) saturate(180%);
    --lg-rim1: rgba(255,255,255,0.95);
    --lg-rim2: rgba(255,255,255,0.28);
    /* рамка тенью (у полей ввода нет ::before): левый верх ≈ 70 % от rim1 */
    --lg-rim-in: rgba(255,255,255,0.66);
    --lg-shadow: 0 10px 34px rgba(0,0,0,0.13), 0 0 0 0.5px rgba(0,0,0,0.05);
    /* нажатие — белый слой поверх заливки, а не плотнее заливка (в тёмной теме та темнела) */
    --lg-hi: rgba(255,255,255,0.32);
    --lg-pill: rgba(120,120,128,0.17);
    --lg-seg: #ffffff;
    --lg-track: rgba(120,120,128,0.12);
    /* пунктир зоны выбора файла: рамка стекла теперь прозрачная, а пунктиру нужен цвет */
    --lg-line: rgba(255,255,255,0.65);
    /* ширина рамки остаётся (вёрстка не сдвигается), вместо неё — блик ::before */
    --lg-border: transparent;
    /* модальные карточки и шапки — плотное стекло, как шторка «Рыбалки» */
    --glass-bg: rgba(250,250,252,0.8);
}
html body.tg-dark {
    --lg-bg: rgba(32,32,35,0.56);
    --lg-sheet: rgba(36,36,38,0.8);
    --lg-rim1: rgba(255,255,255,0.36);
    --lg-rim2: rgba(255,255,255,0.07);
    --lg-rim-in: rgba(255,255,255,0.25);
    --lg-shadow: 0 10px 34px rgba(0,0,0,0.42);
    --lg-hi: rgba(255,255,255,0.07);
    --lg-pill: rgba(255,255,255,0.12);
    --lg-seg: rgba(255,255,255,0.18);
    --lg-track: rgba(118,118,128,0.24);
    --lg-line: rgba(255,255,255,0.24);
    --lg-border: transparent;
    --glass-bg: rgba(36,36,38,0.8);
}
/* murcon_web_login.html — не Telegram: тема по системе, токены там на :root. Всё стекло страницы внутри .page > .card,
   поэтому тёмные значения ставим на саму карточку (у Telegram-страниц такой разметки нет, им это правило не мешает). */
@media (prefers-color-scheme: dark) {
    html body .page > .card {
        --lg-bg: rgba(32,32,35,0.56);
        --lg-sheet: rgba(36,36,38,0.8);
        --lg-rim1: rgba(255,255,255,0.36);
        --lg-rim2: rgba(255,255,255,0.07);
        --lg-rim-in: rgba(255,255,255,0.25);
        --lg-shadow: 0 10px 34px rgba(0,0,0,0.42);
        --lg-hi: rgba(255,255,255,0.07);
        --lg-border: transparent;
        --glass-bg: rgba(36,36,38,0.8);
    }
}

/* ---------- готовые классы для новых элементов ---------- */
.lg-glass, .lg-glass-sheet {
    background: var(--lg-bg);
    -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur);
    box-shadow: var(--lg-shadow);
    border-color: transparent;
}
.lg-glass-sheet { background: var(--lg-sheet); }
/* :where — нулевая специфичность: fixed/absolute/sticky самого элемента всегда перебьёт relative */
:where(.lg-glass, .lg-glass-sheet) { position: relative; }
button.lg-glass:active, button.lg-glass-sheet:active { background-image: linear-gradient(var(--lg-hi), var(--lg-hi)); }

/* ---------- рамка-блик: светлая в левом верхнем и правом нижнем углу, почти прозрачная посередине ----------
   inset 0 (не отрицательный): у многих карточек overflow: hidden — рамку снаружи padding-box обрезало бы. */
.lg-glass::before, .lg-glass-sheet::before,
/* шапки и тосты */
.header-pill::before, #homeView > .header::before, #profileView > .header::before,
.glass-toast::before, .deleted-info-toast::before, .follow-success-card::before,
/* модальные карточки и листы */
.scam-modal-card::before, .spy-modal-card::before, .prime-lock-card::before, .state-card::before,
.page > .card::before, .delete-countdown-card::before, .unfollow-countdown-card::before,
.loading-subtitle::before, .prime-required-card::before, .easter-egg-card::before, .edit-history-card::before,
.delete-modal-content::before,
/* панели и карточки */
.profile-summary::before, .category-card::before, .info-card::before,
.intro-card:not(#introCard)::before, .shortlist-card::before, .variant-card::before,
.settings-card::before, .controls-panel::before, .file-group::before, .glass-group::before,
.spy-modal-lastseen::before, .spy-demo-modal-lastseen::before,
.hero ~ #categoriesRoot .feature-subitem::before,
.mw-guide-step-body::before, .edit-history-entry::before, .mw-reply-bar-body::before,
.pinned-bar::before, .mini-audio-player::before, .profile-hero-nametag-bg::before,
.aidemo-phone::before, .aidemo-chat-info::before, .aidemo-bizbar::before, .aidemo-reaction::before, .aidemo-msg-btn::before,
/* кнопки */
.main-menu-btn::before, .category-label.clickable::before, .profile-hero-action-btn::before,
.scam-modal-close::before, .spy-modal-close::before, .prime-lock-close::before, .demo-modal-close::before, .edit-history-close::before,
.spy-chart-type-btn::before, .spy-demo-chart-type-btn::before, .spy-estimate-info-btn::before,
.chip-btn::before, .tts-mic-btn::before, .pin-key::before, .aidemo-back-btn::before,
.delete-countdown-cancel::before, .unfollow-countdown-cancel::before, .cancel-button::before,
.back-btn::before, .back-button::before, .select-all-btn::before,
.follows-search-toggle-btn::before, .follow-unfollow-btn::before, .follow-bell-btn::before,
.action-sheet-option::before, .action-sheet-cancel::before,
.profile-follow-btn.following::before, .profile-bell-btn::before, .profile-copy-btn::before, .search-paste-btn::before,
.chevron-btn::before, .header-search-box::before, .manage-btn::before,
.chat-search-box::before, .chat-search-close::before, .chat-search-btn::before, .chat-header-profile-trigger::before,
.easter-egg-promo::before, .profile-hero-back::before, .profile-hero-edit-btn::before,
.profile-voice-item::before, .profile-links-item::before, .scroll-to-bottom::before,
.mw-reply-bar-close::before, .mw-msg-reply-icon::before, .mw-composer-icon-btn::before, .mw-composer-field-wrap::before, .mw-mic-lock::before,
.mini-audio-playbtn::before, .mini-audio-gotobtn::before, .mini-audio-closebtn::before, .mini-audio-speedbtn::before,
/* у ключа Murcon Web ::before занят бегущим бликом — рамка в ::after */
.murcon-web-key-box::after {
    content: ""; position: absolute; z-index: 2; top: 0; right: 0; bottom: 0; left: 0;
    padding: 1px; border-radius: inherit; pointer-events: none;
    background: linear-gradient(135deg, var(--lg-rim1) 0%, var(--lg-rim2) 28%, var(--lg-rim2) 68%, var(--lg-rim1) 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
    mask-composite: exclude;
}
/* шапка висит от верхнего края экрана, лист — от нижнего: с той стороны рамки нет */
.header-pill::before, #homeView > .header::before, #profileView > .header::before { padding: 0 1px 1px; }
.delete-modal-content::before { padding: 1px 1px 0; }

/* ::before с position: absolute нужен позиционированный родитель. Только тем, кто статичен во ВСЕХ страницах
   (у fixed/sticky/absolute — модалки, тосты, шапки, индикаторы сегментов — своё position не трогаем). */
.header-pill, .profile-summary, .category-card, .info-card, .state-card,
.intro-card:not(#introCard), .shortlist-card,
.settings-card, .controls-panel, .file-group, .glass-group,
.spy-modal-lastseen, .spy-demo-modal-lastseen, .hero ~ #categoriesRoot .feature-subitem,
.mw-guide-step-body, .edit-history-entry, .mw-reply-bar-body, .mini-audio-player, .aidemo-bizbar, .aidemo-msg-btn,
.prime-required-card, .easter-egg-card, .delete-countdown-card, .unfollow-countdown-card, .delete-modal-content,
.follow-success-card,
.main-menu-btn, .category-label.clickable, .profile-hero-action-btn,
.spy-chart-type-btn, .spy-demo-chart-type-btn, .spy-estimate-info-btn,
.chip-btn, .tts-mic-btn, .pin-key, .aidemo-back-btn,
.delete-countdown-cancel, .unfollow-countdown-cancel, .cancel-button,
.back-btn, .back-button, .select-all-btn,
.follows-search-toggle-btn, .follow-unfollow-btn, .follow-bell-btn,
.action-sheet-option, .action-sheet-cancel,
.profile-follow-btn.following, .profile-bell-btn, .profile-copy-btn, .search-paste-btn,
.chevron-btn, .header-search-box, .manage-btn,
.chat-search-box, .chat-search-close, .chat-search-btn,
.easter-egg-promo, .profile-voice-item, .profile-links-item,
.mw-reply-bar-close, .mw-composer-icon-btn, .mw-composer-field-wrap,
.mini-audio-playbtn, .mini-audio-gotobtn, .mini-audio-closebtn, .mini-audio-speedbtn {
    position: relative;
}
/* у плеера списка чатов z-index: 98 до сих пор не работал (элемент был статичным) — не даём ему ожить */
.mini-audio-player { z-index: auto; }

/* ---------- поля ввода: у <input> нет ::before — рамка внутренней тенью ---------- */
.private-search-wrap input, .fake-timeout-custom-wrap input, .tts-voice-name-input, .tts-add-form input[type="text"],
.search-input {
    box-shadow: inset 1px 1px 0 var(--lg-rim-in), inset -1px -1px 0 var(--lg-rim2);
}
/* у этих была тень стекла; :focus со своей акцентной обводкой специфичнее и по-прежнему её заменяет */
.field, .pin-security-input {
    box-shadow: inset 1px 1px 0 var(--lg-rim-in), inset -1px -1px 0 var(--lg-rim2), var(--lg-shadow);
}

/* ---------- шапки-«таблетки» (заливка была своя, мимо токенов) ---------- */
html body .header-pill, html body.tg-dark .header-pill,
html body #homeView > .header, html body.tg-dark #homeView > .header,
html body #profileView > .header, html body.tg-dark #profileView > .header {
    background: var(--lg-bg);
    -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur);
    box-shadow: var(--lg-shadow);
}

/* ---------- панели-группы со своей заливкой (iOS-списки) — то же стекло ---------- */
html body .settings-card, html body.tg-dark .settings-card,
html body .controls-panel, html body.tg-dark .controls-panel,
html body .file-group, html body.tg-dark .file-group,
html body .glass-group, html body.tg-dark .glass-group,
html body #profileView .profile-summary, html body.tg-dark #profileView .profile-summary {
    background: var(--lg-bg);
    border-color: transparent;
    -webkit-backdrop-filter: var(--lg-blur); backdrop-filter: var(--lg-blur);
    box-shadow: var(--lg-shadow);
}

/* ---------- тосты — плотное стекло, как тост «Рыбалки»: текст поверх любого содержимого ----------
   .glass-toast.error специфичнее и остаётся красным. */
.glass-toast, .deleted-info-toast, .follow-success-card { background: var(--lg-sheet); }

/* ---------- модальные карточки: заливка уже плотная через --glass-bg; рамка --glass-border уступает блику ----------
   (сам --glass-border не трогаем — им же нарисованы тонкие разделители). */
.scam-modal-card, .spy-modal-card, .prime-lock-card, .state-card, .page > .card,
.delete-countdown-card, .unfollow-countdown-card, .prime-required-card, .easter-egg-card, .edit-history-card {
    border-color: transparent;
    box-shadow: var(--lg-shadow);
}
.loading-subtitle { border-color: transparent; }

/* ---------- сегменты: дорожка — серая подложка, выбранное — сплошная «таблетка», как .seg/.seg-pill «Рыбалки» ---------- */
html body .segment-control, html body.tg-dark .segment-control,
html body .profile-segment-control, html body.tg-dark .profile-segment-control,
html body .spy-period-control, html body.tg-dark .spy-period-control,
html body .spy-demo-period-control, html body.tg-dark .spy-demo-period-control {
    background: var(--lg-track);
}
.segment-indicator, .profile-segment-indicator, .spy-period-indicator, .spy-demo-period-indicator {
    background: var(--lg-seg);
    -webkit-backdrop-filter: none; backdrop-filter: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

/* пунктир зоны файла (настройки озвучки) — свой цвет; .has-file специфичнее и красит акцентом */
.tts-file-label { border-color: var(--lg-line); }

/* ---------- нажатие: светлее белым слоем (background-image поверх заливки) ----------
   Не box-shadow, как в rk: в backup.html button:focus { box-shadow: none !important } съел бы его на Android,
   а у полей/пин-клавиш тень занята акцентной обводкой. scale/transform из страниц не трогаем.
   Без кнопок с градиентной/акцентной заливкой: слой заменил бы градиент (.chip-btn.active, отправка, пин-клавиши, «Выбрать всё»). */
.main-menu-btn:active, .category-label.clickable:active, .profile-hero-action-btn:active,
.scam-modal-close:active, .spy-modal-close:active, .prime-lock-close:active, .demo-modal-close:active, .edit-history-close:active,
.spy-chart-type-btn:active, .spy-demo-chart-type-btn:active, .spy-estimate-info-btn:active,
.chip-btn:not(.active):active, .tts-mic-btn:not(.recording):active, .aidemo-back-btn:active,
.delete-countdown-cancel:active, .unfollow-countdown-cancel:active, .cancel-button:active,
.back-btn:active, .back-button:active,
.follows-search-toggle-btn:active, .follow-unfollow-btn:active, .follow-bell-btn:active,
.action-sheet-option:active, .action-sheet-cancel:active,
.profile-follow-btn.following:active, .profile-bell-btn:active, .profile-copy-btn:active, .search-paste-btn:active,
.chevron-btn:active, .manage-btn:active,
.chat-search-close:active, .chat-search-btn:active, .chat-header-profile-trigger:active,
.easter-egg-promo:active, .profile-hero-back:active, .profile-hero-edit-btn:active,
.profile-voice-item:active, .profile-links-item:active, .scroll-to-bottom:active, .pinned-bar:active,
.mw-reply-bar-close:active, .mw-composer-icon-btn:not(.mw-composer-send):active,
.mini-audio-playbtn:active, .mini-audio-gotobtn:active, .mini-audio-closebtn:active, .mini-audio-speedbtn:active {
    background-image: linear-gradient(var(--lg-hi), var(--lg-hi));
}
/* пункты листа действий при нажатии серели (плотнее заливка) — оставляем стекло, светлеет слоем выше */
.action-sheet-option:active { background-color: var(--lg-bg); }

/* ---------- 06.11.2026: без цветного «неонового» свечения у кнопок (просьба владельца) ----------
   Цветной ореол вокруг градиентных кнопок/плашек выглядел «ИИшно». Оставляем лёгкий блик
   сверху и короткую нейтральную тень — кнопка остаётся выпуклой, но не светится.
   !important — чтобы перебить и keyframes пульсации (btnPulse, badgeGlow…), которые
   анимируют box-shadow; масштаб/перелив из тех же анимаций продолжают работать. */
html body :is(.action-button, .cta-btn, .primary-btn, .prime-lock-buy-btn, .category-cta button,
    .delete-button, .search-btn, .profile-follow-btn, .karma-btn.primary,
    .badge, .plan-tariff-badge, .profile-prime-badge, .aidemo-stopbtn, .aidemo-sendbtn,
    .plan-method-free, .plan-method-row.method-card, .plan-method-row.method-stars, .plan-method-row.method-crypto) {
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 1px 3px rgba(0,0,0,0.12) !important;
}
html body :is(.plan-tariff-card.plan-tariff-best, .plan-tariff-card.plan-tariff-popular) {
    box-shadow: var(--lg-shadow) !important;
}
html body :is(.prime-lock-icon, .karma-reset-hero) { box-shadow: none !important; }
