/* Shared public CTA, aligned to the current reading/writing column. */
body.public-layout a.directory-fab {
    position: fixed;
    z-index: 30;
    left: var(--directory-fab-left, 50%);
    bottom: var(--directory-fab-bottom, max(20px, env(safe-area-inset-bottom)));
    width: var(--directory-fab-width, min(720px, calc(100% - 32px)));
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 15px 20px;
    border: 1px solid #7527fb;
    border-radius: 16px;
    background: #7527fb;
    color: #fff;
    font-size: 16px;
    font-weight: 750;
    line-height: 1.5;
    text-decoration: none;
    box-shadow: 0 8px 28px #5520a638;
    transform: translateX(-50%);
    transition: background-color .15s, box-shadow .15s;
}
body.public-layout a.directory-fab.is-aligned { transform: none; }
body.public-layout a.directory-fab:hover {
    background: #6420d9;
    border-color: #6420d9;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 30px #5520a647;
}
body.public-layout a.directory-fab:focus-visible {
    outline: 3px solid #1d2634;
    outline-offset: 3px;
}
body.v5-layout .app-layout {
    padding-bottom: max(100px, var(--directory-fab-clearance, 100px));
}
body.v5-layout .reader-scroll { padding-bottom: 84px; }
body.v5-layout .editor-workspace {
    padding-bottom: max(110px, calc(var(--directory-fab-clearance, 84px) + 24px));
}
body.public-layout:has(dialog[open]:not(#v5-reader)) a.directory-fab { visibility: hidden; }
@media (max-width: 720px) {
    body.public-layout a.directory-fab { min-height: 54px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    body.public-layout a.directory-fab { transition: none; }
}
