/* Keep the dock clear of a phone's home indicator, in Safari and when installed.
   Reserve matching content space so the last row/button can scroll above it. */
:root{
    --fcc-safe-top:env(safe-area-inset-top,0px);
    --fcc-safe-bottom:env(safe-area-inset-bottom,0px);
    --fcc-safe-left:env(safe-area-inset-left,0px);
    --fcc-safe-right:env(safe-area-inset-right,0px);
    --fcc-dock-gap:16px;
    --fcc-bottom-space:calc(92px + var(--fcc-safe-bottom));
}
html{scrollbar-gutter:stable}
body{
    box-sizing:border-box;
    padding-top:var(--fcc-safe-top);
    padding-right:var(--fcc-safe-right);
    padding-bottom:var(--fcc-bottom-space);
    padding-left:var(--fcc-safe-left);
}
#app{min-height:calc(100vh - var(--fcc-safe-top) - var(--fcc-bottom-space))}
@supports(height:100svh){
    #app{min-height:calc(100svh - var(--fcc-safe-top) - var(--fcc-bottom-space))}
}
.bottom-nav{
    box-sizing:border-box;
    bottom:calc(var(--fcc-dock-gap) + var(--fcc-safe-bottom));
    width:calc(100% - 24px - var(--fcc-safe-left) - var(--fcc-safe-right));
    margin-left:calc((var(--fcc-safe-left) - var(--fcc-safe-right)) / 2);
}
/* Prevent browser text inflation changing one control independently of another. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* The first visible state is neutral, never a Home screen behind sign-in. */
body[data-app-state="loading"] .bottom-nav,
body[data-app-state="error"] .bottom-nav{display:none!important}
.r28-startup-screen,.r28-startup-error{
    box-sizing:border-box;
    margin:0 auto;
    min-height:65svh;
    padding:40px 24px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
}
.r28-startup-screen h1,.r28-startup-error h1{margin:0;font-size:22px;letter-spacing:-.5px;color:#111827}
.r28-startup-brand{padding:15px 22px;border-radius:14px;background:#111827;color:#fff;font-size:24px;font-weight:900;letter-spacing:-.5px}
.r28-startup-brand em{color:#c8f060;font-style:normal}
.r28-startup-error h1{margin-top:20px}
.r28-startup-screen p,.r28-startup-error p{margin:10px 0 0;font-size:13px;color:#69778a;max-width:310px}
.r28-startup-error button{margin-top:18px;min-height:44px;padding:0 22px;border:0;border-radius:11px;background:#111827;color:#fff;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}
.r28-startup-error button:focus-visible{outline:3px solid #ed2554;outline-offset:3px}
.r28-noscript{padding:16px;text-align:center;font-size:14px}
