/* Production states extend, rather than redesign, the user's v5 prototype. */
.app-loading{min-height:70vh;display:grid;place-items:center;color:#6987a3;font-size:14px}
#connection-status:empty{display:none}
#connection-status{position:fixed;top:0;left:0;right:0;padding:7px 15px;background:#fff4d8;color:#71572d;text-align:center;font-size:12px;z-index:100}
button[aria-busy=true]{opacity:.65;cursor:wait}
.loading-copy{display:block;color:#7d96ac;padding:24px 0;font-size:14px}
.request-error{padding:9px 0;color:#a93d49;font-size:12px}
.profile[role=button]:focus-visible{outline:2px solid #527da5;outline-offset:4px;border-radius:12px}
.switch-toggle:has(input:focus-visible){outline:2px solid #527da5;outline-offset:4px;border-radius:999px}
.login-card input{user-select:text}
.history-load{display:flex;justify-content:center;margin:14px 0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* The explicit preview URL stays phone-sized even inside a desktop browser. */
@media(min-width:761px){
  body[data-device=mobile]{max-width:430px;margin:0 auto;box-shadow:0 0 70px #8daac22b}
  body[data-device=mobile] .bottom-tabs{left:50%;right:auto;transform:translateX(-50%);width:430px;max-width:100vw}
}
/* Real links remain available before login and in both navigation layouts. */
.download-entry { text-decoration:none; }
.login-download { display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:12px;text-decoration:none; }
