.app.visible {
    opacity: 1;
}

.app {
    --hdr-h: 5.14rem;
    --footer-row-h: 4.57rem;
    --chat-panel-w: min(28.57rem, calc(100vw - 32px));
    --chat-rail: 0px;
    --chat-sheet-h: min(55.71rem, calc(66.667vh + env(safe-area-inset-bottom, 0px)));
    --chat-v-inset: 0.86rem;
    position: relative;
    z-index: 2;
    height: 100vh;
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-rows: var(--hdr-h) 1fr var(--footer-row-h);
}

body.chat-open .app {
    --chat-rail: calc(var(--chat-panel-w) + 1.14rem);
}

/* Комнату смещаем влево, шапку — никогда: toggle остаётся в углу экрана. */
body.chat-open .stage,
body.chat-open .footer.footer-meta {
    padding-right: var(--chat-rail);
    transition: padding-right var(--t-med);
}

.app>main {
    min-height: 0;
}
