/* The phone sign-in and recovery surfaces share the phone product's neutral UI.
   This stylesheet changes presentation, never authentication or navigation. */
.login-phone-brand{display:none}
html.phone-login{--auth-bg:#f5f7f8;--auth-surface:#fff;--auth-ink:#17272d;--auth-muted:#576b73;--auth-line:#dce3e6;--auth-accent:#07695e;--auth-action-ink:#fff;--auth-tint:#e6f3ef;color-scheme:light;height:100%;overflow:hidden}
html.phone-login body.login-page{height:100vh;height:var(--login-viewport-height,100dvh);min-height:0;margin:0;overflow:hidden;background:var(--auth-bg);color:var(--auth-ink);font-family:inherit;-webkit-text-size-adjust:100%}
html.phone-login .login-stage{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:var(--auth-bg);padding:0;scroll-padding-block:1rem}
html.phone-login .login-main{min-height:100%;padding:max(1.5rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));align-items:center;box-sizing:border-box}
html.phone-login body.login-page .login-shell{display:block;width:100%;max-width:28rem;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible}
html.phone-login .login-shell::before,html.phone-login .login-story,html.phone-login .login-orb,html.phone-login .login-panel-header,html.phone-login .web-app-install{display:none!important}
html.phone-login body.login-page .login-panel{display:block;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}
html.phone-login body.login-page .login-welcome{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin:0 0 1rem;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
html.phone-login body.login-page .login-logo{width:3.5rem;height:3.5rem;border:0;border-radius:1rem;background:var(--auth-tint);box-shadow:none}
html.phone-login .login-logo img{width:2.25rem;height:2.25rem}
html.phone-login .login-phone-brand{display:block;margin:0 0 .5rem;color:var(--auth-muted);font-size:.875rem;font-weight:500;overflow-wrap:anywhere}
html.phone-login .login-welcome h2{color:var(--auth-ink);font:inherit;font-size:1.75rem;line-height:1.15;letter-spacing:-.04em;font-weight:700}
html.phone-login .login-welcome p:not(.login-phone-brand){margin-top:.5rem;color:var(--auth-muted);font-size:.875rem;line-height:1.5}
html.phone-login .login-instruction{margin:1rem 0;color:var(--auth-muted);font-size:.875rem;line-height:1.5}
html.phone-login .login-form{gap:1rem;margin-top:1rem}
html.phone-login .login-field{gap:.4rem;color:var(--auth-ink);font-size:.875rem;font-weight:500}
html.phone-login .login-input-wrap>i{color:var(--auth-muted);font-size:1rem}
html.phone-login body.login-page .login-input-wrap input{min-height:3.125rem;padding:.75rem .75rem .75rem 2.5rem;border:1px solid var(--auth-line);border-radius:.625rem;background:var(--auth-surface);color:var(--auth-ink);font-family:inherit;font-size:1rem;font-weight:400;box-shadow:none}
html.phone-login .login-input-wrap input:focus{border-color:var(--auth-accent);outline:2px solid var(--auth-accent);outline-offset:2px;box-shadow:none}
html.phone-login body.login-page .login-submit,html.phone-login body.login-page .login-passkey--primary .login-passkey-button{min-height:3.125rem;border:0;border-radius:.625rem;background:var(--auth-accent);color:var(--auth-action-ink);font:inherit;font-size:1rem;font-weight:600;box-shadow:none;transform:none}
html.phone-login body.login-page .login-passkey-button{min-height:3.125rem;border:1px solid var(--auth-line);border-radius:.625rem;background:var(--auth-surface);color:var(--auth-ink);font:inherit;font-size:1rem;font-weight:600;box-shadow:none;transform:none}
html.phone-login body.login-page .login-passkey-button i,html.phone-login .login-submit i{color:inherit;font-size:1rem}
html.phone-login .login-passkey-status{color:var(--auth-muted);font-size:.75rem;line-height:1.5;min-height:1.25rem}
html.phone-login .login-passkey{gap:.75rem}
html.phone-login .login-divider{color:var(--auth-muted);font-size:.75rem;font-weight:400;letter-spacing:0;text-transform:none}
html.phone-login .login-divider::before,html.phone-login .login-divider::after{background:var(--auth-line)}
html.phone-login .login-trust{margin-top:1.5rem;color:var(--auth-muted);font-size:.75rem;font-weight:400;line-height:1.5;text-align:center;flex-wrap:wrap}
html.phone-login .login-trust i{color:var(--auth-accent)}
html.phone-login .login-error{font-size:.875rem;font-weight:400;line-height:1.5;border-radius:.625rem}
html.phone-login :is(button,a):focus-visible{outline:2px solid var(--auth-accent);outline-offset:3px}
html.phone-login .page-help-button{background:var(--auth-accent);color:var(--auth-action-ink);box-shadow:none}
html.phone-login .web-app-connection{bottom:max(.5rem,env(safe-area-inset-bottom));font-size:.875rem}
/* One full-screen recovery surface. The embedded login owns the scroll area,
   with original-user errors and explicit recovery controls kept outside it. */
body[data-phone-app] .web-app-session{inset:0;margin:0;width:100%;max-width:none;height:var(--phone-keyboard-height,100dvh);max-height:var(--phone-keyboard-height,100dvh);border:0;border-radius:0;padding:max(1.25rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:var(--phone-bg);color:var(--phone-ink);box-sizing:border-box}
body[data-phone-app] .web-app-session:not(.web-app-reauth){align-content:center}
body[data-phone-app] .web-app-session.web-app-reauth{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr) auto auto;gap:.5rem;overflow:hidden;padding-top:env(safe-area-inset-top)}
body[data-phone-app] .web-app-session.web-app-reauth>h2,body[data-phone-app] .web-app-session.web-app-reauth>p:not([data-session-status]){display:none}
body[data-phone-app] .web-app-session [data-session-status]:empty{display:none}
body[data-phone-app] .web-app-session.web-app-reauth>[data-session-status]{grid-row:1;grid-column:1 / -1;margin:0;font-size:.875rem;color:var(--phone-warning)}
body[data-phone-app] .web-app-session.web-app-reauth>iframe{grid-row:2;grid-column:1 / -1;display:block;width:100%;height:100%;min-height:0;margin:0;border:0;border-radius:0;background:var(--phone-bg)}
body[data-phone-app] .web-app-session.web-app-reauth>button{grid-row:3;margin:0;font-size:.875rem}
body[data-phone-app] .web-app-session.web-app-reauth>a{grid-row:4;grid-column:1 / -1;margin:0;font-size:.75rem;background:transparent}
body[data-phone-app] .web-app-session :focus-visible{outline-color:var(--phone-accent)}
@media(prefers-color-scheme:dark){
    html.phone-login{--auth-bg:#10191d;--auth-surface:#19262c;--auth-ink:#f0f5f6;--auth-muted:#aec0c7;--auth-line:#34464f;--auth-accent:#75d9c5;--auth-action-ink:#10251f;--auth-tint:#193d38;color-scheme:dark}
    html.phone-login .login-error{background:#3d2029;color:#ffc0ca;border-color:#a45e6c}
}
@media(max-height:600px){html.phone-login .login-main{align-items:flex-start;padding-block:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-bottom))}html.phone-login .login-logo{width:2.75rem;height:2.75rem}html.phone-login .login-welcome{gap:.75rem}}
html.phone-login .page-help-overlay{z-index:100;background:#101d28cc}
html.phone-login .page-help-content{width:100%;max-width:28rem;padding:1.25rem;border:1px solid var(--auth-line);border-radius:.75rem;background:var(--auth-surface);color:var(--auth-ink);box-shadow:none;font-size:.875rem;line-height:1.5}
html.phone-login .page-help-content button{min-height:44px;background:var(--auth-accent);color:var(--auth-action-ink)}
/* The full-site Paper canvas uses !important; the dedicated phone surface owns
   its own light/dark canvas even when that per-device desktop choice is saved. */
html.phone-login body.login-page{background:var(--auth-bg)!important;color:var(--auth-ink)!important}
html.phone-login .page-help-button,html.phone-login .page-help-content button{background:var(--auth-accent)!important;color:var(--auth-action-ink)!important}
html.phone-login .login-stage{background:var(--auth-bg)!important}
html.phone-login body.login-page .login-panel{background:transparent!important}
html.phone-login .page-help-content{background:var(--auth-surface)!important;color:var(--auth-ink)!important}
html.phone-login .page-help-button{position:static;display:flex;align-items:center;justify-content:center;width:auto;height:auto;min-height:44px;padding:.5rem 1rem;margin:.75rem auto 0;border:0;border-radius:.5rem;font-size:.875rem;background:transparent!important;color:var(--auth-accent)!important}
