:focus-visible {
    outline: 3px solid #ffe66d !important;
    outline-offset: 4px !important;
}

.a11y-toolbar {
    position: fixed;
    right: max(14px, env(safe-area-inset-right));
    bottom: max(14px, env(safe-area-inset-bottom));
    z-index: 14000;
    font-size: 1rem;
}

.a11y-toolbar-trigger,
.a11y-toolbar-panel button {
    border: 1px solid rgba(96, 225, 255, .55);
    border-radius: 999px;
    background: rgba(5, 18, 34, .96);
    color: #f7fbff;
    min-height: 44px;
    padding: .7rem 1rem;
    font: inherit;
    cursor: pointer;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
}

.a11y-toolbar-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(330px, calc(100vw - 28px));
    padding: 1rem;
    border: 1px solid rgba(96, 225, 255, .42);
    border-radius: 18px;
    background: rgba(4, 15, 29, .98);
    color: #f7fbff;
    box-shadow: 0 18px 54px rgba(0, 0, 0, .55);
}

.a11y-toolbar-panel[hidden] { display: none; }
.a11y-toolbar-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.a11y-toolbar-heading strong { font-size: 1.05rem; }
.a11y-toolbar-panel > button:not(.a11y-toolbar-close) { width: 100%; margin-top: .55rem; text-align: left; border-radius: 12px; }
.a11y-toolbar-panel button.is-active { background: #0f6f80; border-color: #8df2ff; }
.a11y-toolbar-panel p { margin: .9rem 0 .35rem; color: #c3d8e4; font-size: .88rem; line-height: 1.45; }
.a11y-toolbar-close { min-width: 44px; padding: .35rem .75rem !important; font-size: 1.5rem !important; line-height: 1 !important; }

.a11y-orbit-summary { margin-top: 1rem; scroll-margin-top: 1rem; }
.a11y-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.a11y-summary-grid > div { padding: .85rem; border: 1px solid rgba(96, 225, 255, .2); border-radius: 14px; background: rgba(7, 25, 43, .65); }
.a11y-summary-grid dt { color: #96afbd; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.a11y-summary-grid dd { margin: .35rem 0 0; color: #fff; font-weight: 700; overflow-wrap: anywhere; }

.a11y-large-text { font-size: 118%; }
.a11y-large-text .fine-print,
.a11y-large-text small { font-size: .9em; }

.a11y-high-contrast body { background: #000 !important; color: #fff !important; }
.a11y-high-contrast .panel,
.a11y-high-contrast .quick-access-card,
.a11y-high-contrast .status-page-card,
.a11y-high-contrast .archive-card,
.a11y-high-contrast .object-card { background: #050505 !important; border-color: #7deeff !important; box-shadow: none !important; }
.a11y-high-contrast a { text-decoration-thickness: 2px; text-underline-offset: 3px; }
.a11y-high-contrast .fine-print,
.a11y-high-contrast small,
.a11y-high-contrast p { color: #f2f2f2; }

.a11y-reduced-motion *,
.a11y-reduced-motion *::before,
.a11y-reduced-motion *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
}

@media (max-width: 767px) {
    .a11y-summary-grid { grid-template-columns: 1fr; }
    .a11y-toolbar { right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); }
    .a11y-toolbar-trigger { padding: .65rem .8rem; }
}

@media print {
    .a11y-toolbar { display: none !important; }
}
