/* Навигация FLUORITE 03.11 (cmp-shell.js): телефон до 767px — компактная шапка и нижняя панель из 4 пунктов,
   «Ещё» открывает существующую шторку; 768–1023px — прежняя шторка с бургером; от 1024px — рейка 64px и панель
   контекста 208px вместо широкого меню. Текст только белый/серый (правило владельца: без золотого шрифта).
   Наведение — только внутри @media (hover: hover). Перекрытия cmp.css через body-префикс: файл может
   подключаться в любом порядке относительно cmp.css. */

.cmp-rail, .cmp-ctx, .cmp-tabbar { display: none; }
.cmp-nav-group { margin: 0; padding: 0 var(--cmp-s-3) var(--cmp-s-2); color: #a1a1aa; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.cmp-acc__item--project { padding-top: var(--cmp-s-3); }
.cmp-nav-sub { display: grid; gap: 2px; padding-bottom: var(--cmp-s-3); }
.cmp-nav-sub .cmp-acc__link { padding-left: var(--cmp-s-3); }
.cmp-side__account { justify-content: flex-start; }
.cmp-rail__item, .cmp-tab { position: relative; }
.cmp-nav-badge { position: absolute; top: 4px; right: 6px; pointer-events: none; }

/* ---------- ПК: рейка + панель контекста ---------- */
@media (min-width: 1024px) {
    body .cmp-app { grid-template-columns: 64px minmax(0, 1fr); }
    body .cmp-app.has-ctx { grid-template-columns: 64px 208px minmax(0, 1fr); }
    .cmp-app > .cmp-side { display: none; }
    .cmp-rail, .cmp-ctx {
        position: sticky;
        top: 0;
        align-self: start;
        z-index: var(--cmp-z-side);
        height: 100vh;
        height: 100dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-right: 1px solid rgba(255, 255, 255, .08);
    }
    .cmp-rail {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--cmp-s-2);
        padding: var(--cmp-s-4) 8px;
        overflow-x: hidden;
        background: var(--cmp-side);
        backdrop-filter: blur(22px) saturate(1.2);
        -webkit-backdrop-filter: blur(22px) saturate(1.2);
    }
    .cmp-ctx:not([hidden]) {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: var(--cmp-s-6) var(--cmp-s-3);
        background: rgba(8, 9, 12, .35);
        min-width: 0;
        overflow-x: hidden;
    }
}
@media (min-width: 1024px) and (any-hover: hover) {
    body .cmp-app.has-ctx { grid-template-columns: 64px minmax(0, 1fr); }
    .cmp-rail { z-index: calc(var(--cmp-z-side) + 1); }
    .cmp-ctx:not([hidden]) {
        position: fixed;
        left: 64px;
        width: 208px;
        visibility: hidden;
        opacity: 0;
        transform: translateX(-24px);
        pointer-events: none;
        transition: opacity 140ms ease, transform 180ms ease, visibility 180ms;
    }
    .cmp-rail:is(:hover, :has(:focus-visible)) + .cmp-ctx:not([hidden]),
    .cmp-ctx:not([hidden]):is(:hover, :has(:focus-visible)) {
        visibility: visible;
        opacity: 1;
        transform: none;
        pointer-events: auto;
        transition: opacity 140ms ease, transform 180ms ease;
    }
}
@media (prefers-reduced-motion: reduce) {
    .cmp-ctx:not([hidden]) { transition: none !important; }
}
.cmp-rail__brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-bottom: var(--cmp-s-4);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 12px;
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
}
.cmp-rail__list, .cmp-rail__end { display: flex; flex-direction: column; align-items: center; gap: var(--cmp-s-2); }
.cmp-rail__end { margin-top: auto; }
.cmp-rail__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    color: #a1a1aa;
    text-decoration: none;
}
.cmp-rail__item > span:not(.cmp-nav-badge) {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.cmp-rail__item.is-current { color: #ffffff; background: rgba(255, 255, 255, .1); }
.cmp-ctx__title { margin: 0 0 var(--cmp-s-3); padding: 0 var(--cmp-s-3); color: #a1a1aa; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.cmp-ctx__link {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 8px var(--cmp-s-3);
    border-radius: 10px;
    color: #c7c7ce;
    font-size: 13px;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.cmp-ctx__link.is-current { color: #ffffff; background: rgba(255, 255, 255, .08); font-weight: 600; }
.cmp-rail__item:focus-visible, .cmp-ctx__link:focus-visible, .cmp-rail__brand:focus-visible, .cmp-tab:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}
@media (hover: hover) {
    .cmp-rail__item:hover, .cmp-rail__brand:hover { color: #ffffff; background: rgba(255, 255, 255, .06); }
    .cmp-ctx__link:hover { color: #ffffff; background: rgba(255, 255, 255, .05); }
    .cmp-tab:hover { color: #ffffff; }
}

/* ---------- Телефон: компактная шапка и нижняя панель ---------- */
@media (max-width: 767px) {
    body .cmp-top { min-height: calc(52px + env(safe-area-inset-top)); }
    body .cmp-top__start .cmp-burger, body .cmp-top__end { display: none; }
    body .cmp-main { padding-bottom: calc(var(--cmp-s-12) + 72px + env(safe-area-inset-bottom)); }
    body .cmp-toasts { bottom: calc(84px + env(safe-area-inset-bottom)); }
    .cmp-tabbar {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: var(--cmp-z-side);
        padding: 6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
        background: rgba(5, 5, 6, .94);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        border-top: 1px solid rgba(255, 255, 255, .08);
    }
}
.cmp-tabbar__list { display: grid; grid-template-columns: repeat(var(--cmp-tabs, 4), minmax(0, 1fr)); gap: 6px; }
.cmp-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
    min-height: 56px;
    padding: 6px 4px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #a1a1aa;
    font: inherit;
    font-size: 12px;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.cmp-tab__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmp-tab.is-current { color: #ffffff; background: rgba(255, 255, 255, .1); }
.cmp-tab__icon--up { transform: rotate(180deg); }
.cmp-tab .cmp-nav-badge { right: calc(50% - 22px); }

/* Owner 04.11: More is a centered black-glass dialog on phones. */
@media (max-width: 767px) {
    body .cmp-side {
        top: 50%;
        left: 50%;
        width: min(420px, calc(100vw - 32px));
        height: auto;
        max-height: calc(100vh - 32px);
        max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        padding: 16px;
        overflow: hidden;
        border: 1px solid var(--cmp-black-glass-line);
        border-radius: 22px;
        background: rgba(0, 0, 0, .96);
        box-shadow: var(--cmp-black-glass-shadow);
        opacity: 0;
        transform: translate(-50%, -50%) scale(.975);
        visibility: hidden;
        transition: opacity 180ms ease, transform 220ms var(--cmp-ease-out), visibility 0s linear 220ms;
    }
    body .cmp-side.is-open {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
        visibility: visible;
        transition: opacity 180ms ease, transform 220ms var(--cmp-ease-out), visibility 0s;
    }
    body .cmp-side__head { flex: none; padding: 0 0 12px; margin-bottom: 12px; }
    body .cmp-side__logo { flex-wrap: wrap; gap: 2px 6px; font-size: 14px; }
    body .cmp-side__logo-suffix { font-size: 10px; letter-spacing: .08em; }
    body .cmp-side__nav { min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin-bottom: 12px; padding-right: 2px; }
    body .cmp-side__nav > .cmp-acc__item { flex-shrink: 0; }
    body .cmp-side__foot { flex: none; margin-top: 0; padding-top: 12px; gap: 6px; }
    body .cmp-side__user-login { margin-bottom: 4px; }
    body .cmp-side__version { font-size: 11px; }
    /* Milana has no second dark veil: preserve the scene for the glass to sample. */
    body .cmp-scrim { background: transparent; }
    body .cmp-scrim.is-open { animation: cmpMoreScrimIn 180ms ease both; }
    @supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
        body .cmp-side {
            background: var(--cmp-black-glass-bg);
            backdrop-filter: blur(var(--cmp-black-glass-blur));
            -webkit-backdrop-filter: blur(var(--cmp-black-glass-blur));
        }
    }
    @media (prefers-reduced-motion: reduce) {
        body .cmp-side, body .cmp-scrim.is-open { transition: none; animation: none; }
    }
}
@keyframes cmpMoreScrimIn { from { opacity: 0; } to { opacity: 1; } }

/* More: independent compact views in the SAME Milana-glass modal; overflow is reserved for short/zoomed screens. */
@media (max-width: 767px) {
    body .cmp-side { padding: 14px; }
    body .cmp-side__head { padding-bottom: 8px; margin-bottom: 10px; }
    body .cmp-side__nav.cmp-more-nav {
        display: block;
        flex: 0 1 auto;
        min-height: 0;
        margin-bottom: 0;
        padding: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .cmp-more__view { min-width: 0; }
    body .cmp-more__view[hidden] { display: none; }
    .cmp-more__grid, .cmp-more__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .cmp-more__grid > .cmp-acc__item { min-width: 0; padding: 0; margin: 0; border: 0; background: none; }
    .cmp-more__grid .cmp-acc__trigger, .cmp-more__tile {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        width: 100%;
        min-width: 0;
        min-height: 64px;
        padding: 8px;
        border: 1px solid rgba(255, 255, 255, .1);
        border-radius: 12px;
        background: rgba(255, 255, 255, .025);
        color: #f4f4f5;
        font: inherit;
        font-size: 12px;
        line-height: 1.25;
        font-weight: 500;
        text-align: center;
        text-decoration: none;
        cursor: pointer;
    }
    .cmp-more__grid .cmp-acc__title { display: contents; }
    .cmp-more__grid .cmp-acc__title > span, .cmp-more__tile > span {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
        text-align: center;
        letter-spacing: 0;
    }
    .cmp-more__grid .cmp-icon, .cmp-more__tile > .cmp-icon { flex: 0 0 auto; color: #c7c7ce; opacity: 1; }
    .cmp-more__grid .cmp-acc__trigger[aria-current='page'], .cmp-more__tile.is-current {
        border-color: rgba(255, 255, 255, .24);
        background: rgba(255, 255, 255, .075);
        color: #ffffff;
    }
    .cmp-more__head { display: flex; align-items: center; gap: 8px; min-width: 0; margin-bottom: 10px; }
    .cmp-more__back {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-height: 44px;
        padding: 6px 8px;
        border: 1px solid rgba(255, 255, 255, .1);
        border-radius: 10px;
        background: transparent;
        color: #f4f4f5;
        font: inherit;
        font-size: 12px;
        cursor: pointer;
    }
    .cmp-more__title { min-width: 0; overflow-wrap: anywhere; margin: 0; font-size: 14px; line-height: 1.35; font-weight: 600; color: #f4f4f5; }
    .cmp-more__links .cmp-more__link {
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 0;
        min-height: 54px;
        padding: 8px;
        border: 1px solid rgba(255, 255, 255, .1);
        border-radius: 10px;
        background: rgba(255, 255, 255, .025);
        color: #d4d4d8;
        font-size: 12px;
        line-height: 1.35;
        text-align: center;
        text-decoration: none;
        overflow-wrap: anywhere;
    }
    .cmp-more__links .cmp-more__link[aria-current='page'] { color: #ffffff; border-color: rgba(255, 255, 255, .24); background: rgba(255, 255, 255, .075); }
    .cmp-more__tile:focus-visible, .cmp-more__back:focus-visible, .cmp-more__links .cmp-more__link:focus-visible,
    .cmp-more__grid .cmp-acc__trigger:focus-visible { outline: 2px solid #ffffff; outline-offset: -3px; }
    body .cmp-side__foot { padding-top: 10px; gap: 4px; }
    body .cmp-side__user { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'name logout' 'login logout'; column-gap: 8px; }
    body .cmp-side__user[hidden] { display: none; }
    body .cmp-side__user-name { grid-area: name; align-self: end; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; color: #f4f4f5; }
    body .cmp-side__user-login { grid-area: login; align-self: start; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; font-size: 11px; line-height: 16px; color: #a1a1aa; }
    body .cmp-side__user [data-cmp='drawer-logout'] { grid-area: logout; min-height: 44px; padding: 6px 8px; font-size: 12px; color: #d4d4d8; }
    body .cmp-side__version { font-size: 10px; line-height: 14px; }
}
@media (max-width: 767px) and (max-height: 380px) {
    /* At extreme zoom/short landscape let the WHOLE dialog scroll, rather than clipping its fixed header/footer. */
    body .cmp-side { overflow-y: auto; }
    body .cmp-side__nav.cmp-more-nav { flex: 0 0 auto; overflow: visible; }
}
