/* Shared campaign ribbon and the space reserved by fixed page chrome. */
:root { --z-announcement-height: 44px; }
:root.z-announcement-dismissed { --z-announcement-height: 0px; }
html body { padding-top: var(--z-announcement-height); }
html body > .min-h-screen { min-height: calc(100vh - var(--z-announcement-height)); }
.z-announcement {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1002;
    display: flex;
    align-items: center;
    height: 44px;
    padding-left: 44px;
    background: #a85544;
    color: #fffaf6;
    font-family: Inter, system-ui, sans-serif;
    box-sizing: border-box;
}
html.z-announcement-dismissed .z-announcement, .z-announcement[hidden] { display: none; }
.z-announcement-link {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 0;
    height: 44px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    color: inherit;
    text-decoration: none;
}
.z-announcement-link:hover { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.z-announcement-link svg { flex-shrink: 0; }
.z-announcement-mobile { display: none; }
.z-announcement-close {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: background .18s ease;
}
.z-announcement-close:hover { background: #ffffff18; }
.z-announcement a:focus-visible, .z-announcement button:focus-visible { outline: 2px solid #fffaf6; outline-offset: -4px; }
html .landing-nav, html .app-topbar, html #sidebar { top: var(--z-announcement-height); }
html #sidebar { height: calc(100% - var(--z-announcement-height)); min-height: calc(100dvh - var(--z-announcement-height)); }
html .scroll-progress { top: var(--z-announcement-height); }
html .mobile-nav-drawer { top: var(--z-announcement-height); height: calc(100dvh - var(--z-announcement-height)); }
html #toast-container { top: calc(5rem + var(--z-announcement-height)); }
@media (max-width: 600px) {
    .z-announcement { padding-left: 10px; }
    .z-announcement-desktop { display: none; }
    .z-announcement-mobile { display: inline; }
    .z-announcement-link { font-size: 12px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .z-announcement-close { transition: none; }
}
