/* =========================================================================
 * bf-mobnav.css — ЄДИНИЙ нижній плаваючий бар мобільної навігації
 * -------------------------------------------------------------------------
 * Еталон — панель з dashboard.html (Apple HIG / Liquid Glass): плаваюча
 * скляна «пігулка» над контентом, а не приклеєна до низу плита.
 *
 * До цього файлу кожна сторінка малювала свій бар: різні bottom (16/18/20),
 * ширина (100%-32/36/40, max 400/420), радіус (18/22/24/28), blur (40/50/60),
 * фон (чорне скло проти білого), z-index (100/2000/7000) і — найпідступніше —
 * розмір підпису у em від body, який на одних сторінках 16px, на інших 14px.
 * Тому «однакові» бари виглядали різними. Тепер вигляд один на всі сторінки.
 *
 * ПІДКЛЮЧАТИ ОСТАННІМ у <head> (після bf-topbar.css) — щоб перекрити локальні
 * стилі сторінки.
 *
 * Розмітка (не змінюється, лише клас контейнера єдиний):
 *     <nav class="mobile-bottom-nav">
 *         <a href="…" class="mob-nav-btn active">   ← або <button>
 *             <i class="fas fa-home"></i><span>HOME</span>
 *         </a>
 *         …
 *     </nav>
 *
 * Тонке налаштування на сторінці (усі дефолти оголошені через :where(),
 * тобто мають НУЛЬОВУ вагу — будь-яке правило сторінки їх перекриває):
 *     .mobile-bottom-nav { --bf-mn-z: 7000; }                 (над модалками)
 *     .mobile-bottom-nav { --bf-mn-accent-rgb: 255,159,10; }   (акцент сторінки)
 *
 * Брейкпойнт за замовчуванням — 1000px (як у bf-topbar.css). Сторінки, де
 * мобільна верстка вмикається пізніше, додають до <nav> клас-модифікатор:
 *     bf-mn-max-900  — бар лише ≤900px (статистика)
 *     bf-mn-max-640  — бар лише ≤640px (маркет: вище є повний top-bar)
 * ========================================================================= */

/* Дефолтні токени. :where() → вага 0, сторінка перекриває без !important. */
:where(.mobile-bottom-nav) {
    --bf-mn-gap: 18px;      /* зазор «парения» над нижнім краєм */
    --bf-mn-inset: 36px;    /* сумарний бічний відступ (по 18px з боку) */
    --bf-mn-max: 420px;
    --bf-mn-radius: 22px;
    --bf-mn-height: 50px;
    --bf-mn-icon: 12.5px;   /* 0.58em × 1.35 з еталонної панелі — фіксований
                               кегль, щоб іконка не їхала разом із підписом */
    --bf-mn-blur: 40px;
    --bf-mn-z: 2000;
    --bf-mn-accent-rgb: 0, 212, 255;
}

/* На десктопі бару немає — там повноцінний сайдбар. */
.mobile-bottom-nav {
    display: none;
}

@media (max-width: 1000px) {

    .mobile-bottom-nav {
        display: flex;
        position: fixed;
        /* env() — щоб на iPhone бар не сідав на «домашню» смугу */
        bottom: calc(var(--bf-mn-gap) + env(safe-area-inset-bottom, 0px));
        left: 50%;
        transform: translateX(-50%);

        width: calc(100% - var(--bf-mn-inset));
        max-width: var(--bf-mn-max);
        /* висота капсули однакова скрізь — навіть там, де пунктів шість
           і підпис довелося стиснути */
        min-height: var(--bf-mn-height);
        box-sizing: border-box;
        padding: 0;
        gap: 0;

        /* Якір для em усередині бару: підпис і іконка мають бути однакові
           незалежно від того, який font-size у body конкретної сторінки. */
        font-size: 16px;

        background: rgba(8, 8, 8, 0.14);
        backdrop-filter: saturate(200%) blur(var(--bf-mn-blur));
        -webkit-backdrop-filter: saturate(200%) blur(var(--bf-mn-blur));

        border-radius: var(--bf-mn-radius);
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-top: 1px solid rgba(255, 255, 255, 0.18);
        /* активна кнопка підсвічується градієнтом на всю свою висоту —
           overflow ховає його кути під радіусом пігулки */
        overflow: hidden;

        z-index: var(--bf-mn-z);
        box-shadow:
            0 20px 50px rgba(0, 0, 0, 0.9),
            inset 0 1px 0 rgba(255, 255, 255, 0.14),
            inset 0 0 12px rgba(var(--bf-mn-accent-rgb), 0.015);
    }

    .mobile-bottom-nav .mob-nav-btn {
        flex: 1 1 0;
        min-width: 0;
        padding: 11px 0;
        margin: 0;
        background: transparent;
        border: none;
        border-radius: 0;
        position: relative;
        box-sizing: border-box;

        color: rgba(255, 255, 255, 0.38);
        font-family: 'Blastron', sans-serif;
        /* Еталон — 0.58em; 0.55em як старт, бо переклади довші за англійську
           («SOCIAL» → «СОЦИАЛЬНОЕ»). Точне значення підбирає bf-mobnav.js:
           CSS не бачить довжини тексту, а вона різна для кожної мови. */
        font-size: var(--bf-mn-label, 0.55em);
        font-weight: 700;
        letter-spacing: 0.2px;
        text-transform: uppercase;
        text-decoration: none;
        line-height: 1;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;

        cursor: pointer;
        transition: color 0.22s, background 0.22s, opacity 0.12s;
        -webkit-tap-highlight-color: transparent;
        user-select: none;
        -webkit-user-select: none;
        outline: none;
    }

    /* Тактильний відгук на дотик (на десктопі курсора тут немає) */
    .mobile-bottom-nav .mob-nav-btn:active {
        opacity: 0.7;
    }

    .mobile-bottom-nav .mob-nav-btn i {
        font-size: var(--bf-mn-icon);
        line-height: 1;
        transition: filter 0.22s, transform 0.22s;
    }

    /* Підпис не ламається на рядки (інакше капсула виросла б у висоту саме
       на одній сторінці) і НЕ ріжеться трикрапкою: довгі переклади на кшталт
       «СОЦИАЛЬНОЕ» на вузькому телефоні трохи заходять у вільне поле сусідів —
       рівно так, як на еталонній панелі. */
    .mobile-bottom-nav .mob-nav-btn span {
        white-space: nowrap;
        line-height: 1;
    }

    .mobile-bottom-nav .mob-nav-btn.active {
        color: rgb(var(--bf-mn-accent-rgb));
        background: linear-gradient(180deg, rgba(var(--bf-mn-accent-rgb), 0.1) 0%, transparent 100%);
    }

    .mobile-bottom-nav .mob-nav-btn.active i {
        filter: drop-shadow(0 0 5px rgba(var(--bf-mn-accent-rgb), 0.55));
    }

    .mobile-bottom-nav .mob-nav-btn:focus-visible {
        outline: 2px solid rgba(var(--bf-mn-accent-rgb), 0.6);
        outline-offset: -3px;
    }

}

/* Сторінки з пізнішим мобільним брейкпойнтом (див. шапку файлу) */
@media (min-width: 901px) {
    .mobile-bottom-nav.bf-mn-max-900 { display: none; }
}

@media (min-width: 641px) {
    .mobile-bottom-nav.bf-mn-max-640 { display: none; }
}

/* Вузькі телефони — 5–6 підписів у 320px не вміщаються у повний кегль */
@media (max-width: 360px) {
    .mobile-bottom-nav {
        --bf-mn-inset: 24px;
        --bf-mn-radius: 20px;
    }

    .mobile-bottom-nav .mob-nav-btn {
        letter-spacing: 0.1px;
        padding: 10px 0;
    }
}

/* ── Windows «Ефекти прозорості» вимкнено / Reduce Transparency ────────────
   Без blur фон rgba(8,8,8,0.14) — це майже ніщо: бар зник би зі сторінки.
   Тому даємо щільніше — але саме скло, а не чорну плиту: світло сторінки
   має проходити крізь бар так само, як крізь капсулу топбару. */
@media (prefers-reduced-transparency: reduce) {
    .mobile-bottom-nav {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: linear-gradient(180deg, rgba(20, 20, 26, 0.55) 0%, rgba(8, 8, 12, 0.62) 100%);
    }
}

/* Те саме для lite-режиму bf-perf.js: він глушить backdrop-filter глобально
   через !important, тож і фон тут має бути !important. */
html.bf-lite .mobile-bottom-nav {
    background: linear-gradient(180deg, rgba(20, 20, 26, 0.55) 0%, rgba(8, 8, 12, 0.62) 100%) !important;
}

/* ── real shader glass (iOS) ──────────────────────────────────────────────
   When bf-glass.js lands the SVG-displacement lens on the bar it adds .bf-lens
   and writes the frost inline; the bar's own CSS fill would then sit OVER that
   lensed backdrop and flatten it, so it is dropped here. The outer drop shadow
   stays — the lens draws the body and rim but not the cast shadow a floating
   pill needs to read as lifted (HIG). Keyed to .bf-lens, so a browser without
   the lens (Android) keeps the CSS glass above untouched. */
.mobile-bottom-nav.bf-lens {
    background: transparent !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.55) !important;
}
