#portal-corner-menus {
    position: fixed;
    inset: 0 auto auto 0;
    z-index: 99990;
    pointer-events: none;
    font: 16px/1.4 Arial, sans-serif;
    color: #212121;
}

#portal-corner-menus *,
#portal-corner-menus *::before,
#portal-corner-menus *::after {
    box-sizing: border-box;
}

#portal-corner-menus [hidden] { display: none !important; }

#portal-corner-menus .pcm-corner {
    position: absolute;
    bottom: max(16px, env(safe-area-inset-bottom));
    pointer-events: auto;
}

#portal-corner-menus .pcm-bottom-left { left: max(16px, env(safe-area-inset-left)); }
#portal-corner-menus .pcm-bottom-right { right: max(16px, env(safe-area-inset-right)); }

#portal-corner-menus .pcm-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--pcm-button-size);
    height: var(--pcm-button-size);
    padding: 10px;
    border: var(--pcm-border);
    border-radius: 50%;
    background: var(--pcm-background);
    color: #212121;
    font: bold 24px/1 Arial, sans-serif;
    cursor: pointer;
    box-shadow: 0 4px 16px #0003;
    transition: transform 160ms ease, box-shadow 160ms ease;
}

#portal-corner-menus .pcm-button:hover {
    transform: translateY(-2px) scale(1.08);
    box-shadow: 0 6px 20px #0004;
}

#portal-corner-menus button:focus-visible { outline: 3px solid #2874f0; outline-offset: 3px; }
#portal-corner-menus .pcm-button img { display: block; width: 100%; height: 100%; object-fit: contain; }

#portal-corner-menus .pcm-panel {
    position: absolute;
    bottom: calc(var(--pcm-button-size) + 12px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: var(--pcm-border);
    border-radius: 12px;
    background: var(--pcm-background);
    box-shadow: 0 8px 32px #0004;
}

#portal-corner-menus .pcm-bottom-left .pcm-panel { left: 0; }
#portal-corner-menus .pcm-bottom-right .pcm-panel { right: 0; }
#portal-corner-menus .pcm-content { flex: 1; position: relative; min-height: 0; overflow: auto; }
#portal-corner-menus .pcm-content iframe { display: block; border: 0; width: 100%; height: 100%; }
#portal-corner-menus .pcm-status { margin: 12px; }

.stt-button { bottom: var(--portal-corner-right-clearance, 14px); }

@media (prefers-reduced-motion: reduce) {
    #portal-corner-menus .pcm-button { transition: none; }
    #portal-corner-menus .pcm-button:hover { transform: none; }
}
