/* ============================================================
   PUBLIC ERROR PAGE — ACCESSIBLE FALLBACK ACTIONS

   Purpose:
   Ensure visitors can use recovery links even when the
   customer's theme CSS fails to load.

   WCAG:
   1.4.3 Contrast (Minimum)
   1.4.11 Non-text Contrast
   2.4.7 Focus Visible
   2.5.8 Target Size (Minimum)

   These rules must NOT depend on tenant theme variables.
   ============================================================ */
.public-load-error{background:#ffffff;color:#1d1d1f}

.public-load-actions .public-load-primary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:12px 20px;background:#3d6ab3;border:2px solid #3d6ab3;color:#ffffff !important;border-radius:10px;text-decoration:none;font-weight:650}

.public-load-actions .public-load-secondary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:12px 20px;background:#ffffff;border:2px solid #52647e;color:#142441 !important;border-radius:10px;text-decoration:none;font-weight:650}

    .public-load-actions .public-load-secondary:hover{background:#eef3fa;color:#142441 !important}

.public-load-actions a:focus-visible{outline:3px solid #176a9d;outline-offset:3px}

.public-load-actions a{box-sizing:border-box}

/* Brilliance One:shared minimal accessible boot styles (WCAG 2.2 AA-oriented). */
:root, :root[data-theme="light"]{color-scheme:light;--boot-bg:#f6f8fb;--boot-fg:#142441;--boot-surface:#fff;--boot-border:#dce4f0;--boot-primary:#3d6ab3;--boot-primary-hover:#305894;--boot-focus:#155b91}

@media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){color-scheme:dark;--boot-bg:#111827;--boot-fg:#f0f5ff;--boot-surface:#1b2940;--boot-border:#34445c;--boot-focus:#7dd3fc}
}

:root[data-theme="dark"]{color-scheme:dark;--boot-bg:#111827;--boot-fg:#f0f5ff;--boot-surface:#1b2940;--boot-border:#34445c;--boot-focus:#7dd3fc}

html{scrollbar-gutter:stable}

@supports not (scrollbar-gutter:stable){
    html{overflow-y:scroll}
}

body{margin:0;background:var(--boot-bg);color:var(--boot-fg);font-family:system-ui, -apple-system, sans-serif}

    body.bone-scroll-locked{overflow:hidden}

.bone-skip-link{position:fixed;top:0;left:1rem;z-index:10000;padding:.75rem 1.25rem;background:var(--boot-primary);color:#fff;border-radius:0 0 .5rem .5rem;font-weight:650;text-decoration:none;transform:translateY(-125%)}

    .bone-skip-link:focus-visible{transform:translateY(0);outline:3px solid var(--boot-focus);outline-offset:2px}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--boot-focus);outline-offset:3px}

#main-content:focus:not(:focus-visible){outline:none}

#main-content{scroll-margin-top:5rem}

.boot-shell{box-sizing:border-box;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:clamp(1rem,3vw,2rem)}

.boot-status{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--boot-surface);border:1px solid var(--boot-border);border-radius:.75rem}

.boot-spinner{display:inline-block;flex:none;width:1.25rem;height:1.25rem;border:2px solid var(--boot-border);border-top-color:currentColor;border-radius:50%;animation:boot-spin .8s linear infinite}

@keyframes boot-spin{
    to{transform:rotate(360deg)}
}

.boot-card{box-sizing:border-box;width:min(100%,34rem);padding:clamp(1.5rem,4vw,2.5rem);background:var(--boot-surface);border:1px solid var(--boot-border);border-radius:1rem;text-align:center}

.boot-card--bare{background:transparent;border:0;padding:0}

.boot-card h1{margin:0 0 .85rem;font-size:clamp(1.4rem,3.5vw,2rem);line-height:1.25}

.boot-card p{margin:0 0 1.25rem;line-height:1.6}

.boot-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

.boot-btn{display:inline-block;padding:.8rem 1.35rem;border-radius:.65rem;font-weight:650;text-decoration:none;cursor:pointer;border:1px solid transparent}

.boot-btn--primary{background:var(--boot-primary);color:#fff}

    .boot-btn--primary:hover{background:var(--boot-primary-hover)}

.boot-btn--secondary{background:transparent;border-color:var(--boot-border);color:var(--boot-fg)}

.boot-footnote{margin-top:2.25rem;font-size:.875rem;opacity:.85}

.bone-drawer-backdrop{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.6);animation:bone-fade-in .2s ease-out forwards}

@keyframes bone-fade-in{
    from{opacity:0}

    to{opacity:1}
}

@media (min-width:992px){
    .bone-drawer-backdrop{display:none}
}

@media (max-width:991px){
    /* Mobile state is independent of the user's saved desktop collapse preference. */
    .bone-sidebar.bone-mobile-drawer-closed{visibility:hidden !important;pointer-events:none !important;transform:translateX(-105%) !important}

    .bone-sidebar.bone-mobile-drawer-open{visibility:visible !important;pointer-events:auto !important;transform:translateX(0) !important;position:fixed;z-index:999;top:0;bottom:0;left:0;width:min(85vw, 22rem);max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--boot-surface)}
}

@media (prefers-reduced-motion:reduce){
    .boot-spinner, .bone-drawer-backdrop{animation:none !important}

    :where(.boot-btn,.bone-sidebar){transition-duration:0.01ms !important}
}

.bone-nav-item-dropdown.is-open > .bone-dropdown-list{display:block;visibility:visible;opacity:1;pointer-events:auto}

@media (max-width:991px){
    #bone-primary-navigation.is-open{display:block;visibility:visible;opacity:1;pointer-events:auto}
}
