.privacy-dialog{width:min(560px,calc(100vw - 32px));height:min(720px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--account-border,#dde3df);border-radius:14px;background:#fff;color:#18332d;box-shadow:0 20px 60px rgba(14,34,28,.24);overflow:hidden;opacity:0;transform:translateY(7px) scale(.988);transition:opacity 180ms ease,transform 180ms cubic-bezier(.2,.72,.2,1)}
.privacy-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr);opacity:1;transform:translateY(0) scale(1)}
.privacy-dialog[open].is-closing{opacity:0;transform:translateY(7px) scale(.988);pointer-events:none}
.privacy-dialog::backdrop{background:rgba(6,18,14,.52);opacity:0;transition:opacity 180ms ease}
.privacy-dialog[open]::backdrop{opacity:1}
.privacy-dialog[open].is-closing::backdrop{opacity:0}
@starting-style{.privacy-dialog[open]{opacity:0;transform:translateY(7px) scale(.988)}.privacy-dialog[open]::backdrop{opacity:0}}
.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:53px;min-height:53px;padding:10px 16px;border-bottom:1px solid #e5ebe9}
.dialog-header>div{display:flex;min-width:0;align-items:center}
.dialog-header h3{margin:0;font-size:calc(14px * var(--reading-scale,1));font-weight:600}
.dialog-header .dialog-close{position:relative;display:block;align-self:center;flex:0 0 32px;width:32px;min-width:32px;max-width:32px;height:32px;min-height:32px;max-height:32px;margin:0;padding:0;border:1px solid #d7dfdc;border-radius:50%;background:#f8faf9;color:#536862;font-size:0;line-height:1;cursor:pointer;vertical-align:middle;transition:color .16s,border-color .16s,background-color .16s,transform .16s}
.dialog-close::before{position:absolute;top:50%;left:50%;display:block;width:14px;height:14px;background:currentColor;content:"";transform:translate(-50%,-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E") center/14px 14px no-repeat}
.dialog-close:hover{border-color:#1f806b;background:#e8f3ef;color:#1f806b}
.dialog-close:active{transform:scale(.94)}
.privacy-dialog-body{min-height:0;padding:20px 24px max(28px,env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;background:var(--account-field,#f8faf9);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
.privacy-dialog-section+.privacy-dialog-section{margin-top:19px;padding-top:19px;border-top:1px solid #edf1f0}
.privacy-dialog-section h3{margin-bottom:7px;font-size:calc(14px * var(--reading-scale,1));font-weight:600;color:#1f806b}
.privacy-dialog-section p,.privacy-dialog-section li{color:#4f625d;font-size:calc(13px * var(--reading-scale,1));line-height:1.75}
.privacy-dialog-section ul{margin:7px 0 0;padding-left:18px}
.privacy-dialog-note{margin-top:18px;padding:11px 12px;border-radius:8px;background:#f1f7f5;color:#536862;font-size:calc(12px * var(--reading-scale,1));line-height:1.65}

.privacy-dialog .dialog-header>div{gap:12px;flex-wrap:wrap}
.privacy-dialog .login-privacy-link{padding:2px 4px;color:var(--account-accent);font-size:var(--font-secondary);text-decoration:none}
/* Account surfaces reuse the dashboard's light/dark color tokens. */
:root{--account-surface:#fff;--account-field:#f8faf9;--account-text:#18332d;--account-muted:#63756e;--account-accent:#1f806b;--account-soft:#e4f1ed;--account-border:#dde3df}
[data-theme="dark"]{--account-surface:#19231f;--account-field:#222f2a;--account-text:#edf4f1;--account-muted:#b4c2bd;--account-accent:#57b79f;--account-soft:#173c32;--account-border:#2d3d37;--bg-secondary:#19231f;--accent:#57b79f;--accent-soft:#173c32;--border:#2d3d37;--text-secondary:#b4c2bd}
.account-theme-control{position:relative;display:inline-flex}
.login-footer .account-theme-toggle{padding:2px 4px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}
.login-footer .account-theme-toggle:hover{color:#a2b5ae}
.account-theme-menu{position:absolute;z-index:30;display:block;bottom:calc(100% + 8px);right:0;width:140px;padding:6px;border:1px solid var(--account-border);border-radius:var(--menu-radius,10px);background:var(--account-surface);box-shadow:0 12px 28px rgba(0,0,0,.24);opacity:1;transform:translateY(0) scale(1);transition:opacity 140ms ease,transform 140ms cubic-bezier(.2,.72,.2,1),display 140ms allow-discrete}
.account-theme-menu[hidden]{display:none;opacity:0;transform:translateY(-4px) scale(.985)}
@starting-style{.account-theme-menu:not([hidden]){opacity:0;transform:translateY(-4px) scale(.985)}}
.account-theme-menu button{display:flex;width:100%;align-items:center;gap:6px;padding:7px 8px;border:0;border-radius:var(--menu-item-radius,8px);background:transparent;color:var(--account-muted);font:inherit;font-size:calc(14px * var(--reading-scale,1));line-height:calc(20px * var(--reading-scale,1));text-align:left;white-space:nowrap;cursor:pointer}
.account-theme-menu button svg{width:16px;height:16px;flex:none}
.account-theme-menu button.active::after{content:"✓";margin-left:auto;color:var(--account-accent);font-weight:700}
.account-theme-menu button.active{background:transparent;color:var(--account-accent)}
.account-theme-menu button:hover{background:var(--account-soft);color:var(--account-text)}
@media(prefers-reduced-motion:reduce){.account-theme-menu{transition:none}}
[data-theme="dark"] body{background-color:#101816;color:var(--account-text)}
[data-theme="dark"] body.embedded{background:transparent}
[data-theme="dark"] .login-card,[data-theme="dark"] .account-entry-panel,[data-theme="dark"] .register-card,[data-theme="dark"] .recovery-card,[data-theme="dark"] .privacy-dialog{background:var(--account-surface);color:var(--account-text)}
[data-theme="dark"] .login-welcome h1,[data-theme="dark"] .account-entry-header h1,[data-theme="dark"] .login-logo .login-wordmarks,[data-theme="dark"] .register-heading h1,[data-theme="dark"] .register-step h2,[data-theme="dark"] .recovery-header h1{color:var(--account-text)}
[data-theme="dark"] .login-field label,[data-theme="dark"] .login-remember label,[data-theme="dark"] .login-help a,[data-theme="dark"] .login-alternatives,[data-theme="dark"] .login-method-message,[data-theme="dark"] .login-card .login-account-label .login-privacy-link,[data-theme="dark"] .login-history-controls button,[data-theme="dark"] .account-entry-header .login-privacy-link,[data-theme="dark"] #account-entry-note,[data-theme="dark"] .register-field span,[data-theme="dark"] .register-field small,[data-theme="dark"] .register-heading p,[data-theme="dark"] .step-description,[data-theme="dark"] .privacy-point p,[data-theme="dark"] .recovery-field span,[data-theme="dark"] .recovery-header p,[data-theme="dark"] .back-login,[data-theme="dark"] .privacy-dialog-section p,[data-theme="dark"] .privacy-dialog-section li{color:var(--account-muted)}
[data-theme="dark"] .login-field input,[data-theme="dark"] .login-field select,[data-theme="dark"] .register-field input,[data-theme="dark"] .register-field select,[data-theme="dark"] .recovery-field input{background-color:var(--account-field);border-color:var(--account-border);color:var(--account-text)}
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus{border-color:var(--account-accent)}
[data-theme="dark"] input:-webkit-autofill{-webkit-text-fill-color:var(--account-text);box-shadow:0 0 0 1000px var(--account-field) inset}
[data-theme="dark"] .login-actions .register-button,[data-theme="dark"] .step-back,[data-theme="dark"] .privacy-point,[data-theme="dark"] .dialog-header .dialog-close{background:var(--account-field);border-color:var(--account-border);color:var(--account-text)}
[data-theme="dark"] .login-method-icons .button-icon,[data-theme="dark"] .login-register-note a,[data-theme="dark"] .login-privacy-link,[data-theme="dark"] .privacy-dialog-section h3,[data-theme="dark"] .recovery-header a,[data-theme="dark"] .recovery-success a,[data-theme="dark"] .recovery-note a{color:var(--account-accent)}
[data-theme="dark"] .login-footer .login-privacy-link{color:#71837e}
[data-theme="dark"] .login-footer .login-privacy-link:hover{color:#a2b5ae}
[data-theme="dark"] .login-button,[data-theme="dark"] .step-next,[data-theme="dark"] .register-submit,[data-theme="dark"] .recovery-actions button{background:var(--account-accent);border-color:var(--account-accent);color:#101816}
[data-theme="dark"] .terms-check,[data-theme="dark"] .privacy-dialog-note,[data-theme="dark"] .recovery-note,[data-theme="dark"] .privacy-point-icon{background:var(--account-soft);color:var(--account-muted)}
[data-theme="dark"] .register-header,[data-theme="dark"] .recovery-header,[data-theme="dark"] .dialog-header,[data-theme="dark"] .privacy-dialog-section+.privacy-dialog-section{border-color:var(--account-border)}
html:not(.registration-flow)[data-theme="dark"] .register-progress span{background:var(--account-border)}
html:not(.registration-flow)[data-theme="dark"] .register-progress span.active{background:var(--account-accent)}
[data-theme="dark"] .login-error.show,[data-theme="dark"] .register-error.show,[data-theme="dark"] .recovery-error.show{background:#402522;color:#f07b70}
[data-theme="dark"] .recovery-success.show,[data-theme="dark"] .login-history-cleared{background:var(--account-soft);color:var(--account-accent)}

:root{--reading-scale:1;--font-secondary:calc(12px * var(--reading-scale));--font-caption:calc(11px * var(--reading-scale))}
[data-font-size="small"]{--reading-scale:.92}
[data-font-size="large"]{--reading-scale:1.16}
[data-font-size="xlarge"]{--reading-scale:1.3}
.account-theme-control{position:fixed;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));z-index:40}
.account-theme-toggle{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#b9cbc4;background:rgba(255,255,255,.06);cursor:pointer;font-family:inherit}
.account-theme-toggle span{font-size:calc(13px * var(--reading-scale));font-weight:500;line-height:1}
.account-theme-toggle:hover,.account-theme-toggle[aria-expanded="true"]{border-color:rgba(255,255,255,.3);color:#fff;background:rgba(255,255,255,.12)}
.account-theme-menu{top:39px;bottom:auto;width:140px;min-width:140px;max-height:calc(100dvh - 88px);overflow-y:auto}
.account-font-options{padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--account-border)}
.account-theme-control button:focus-visible{outline:2px solid var(--account-accent);outline-offset:2px}
html[data-account-frame] .account-theme-control{display:none}
.login-card .login-actions button{--button-font-size:calc(14px * var(--reading-scale));--button-font-size-small:calc(14px * var(--reading-scale))}
@media(max-width:767px){body:not(.embedded){padding-top:max(64px,env(safe-area-inset-top));padding-bottom:max(64px,env(safe-area-inset-bottom))}}
@media(max-width:767px){.login-field input,.login-field select,.register-field input,.register-field select,.recovery-field input{font-size:max(16px,calc(16px * var(--reading-scale)))}}

/* Recovery follows the login form's existing metrics and text hierarchy. */
.entry-recovery .account-entry-header{padding:36px 50px 24px}
@media(min-width:768px){.entry-recovery .account-entry-panel{padding-top:20px}}
.recovery-header{padding:36px 50px 24px;border-bottom:0;align-items:center}
.recovery-header h1{font-size:calc(25px * var(--reading-scale));line-height:1.35;font-weight:700}
.recovery-header a,.recovery-header p,.recovery-field span,.recovery-note,.recovery-error,.recovery-success{font-family:inherit;font-size:var(--font-secondary);line-height:calc(20px * var(--reading-scale));font-weight:400}
.recovery-body{gap:18px;padding:0 50px 36px}
.recovery-field{gap:6px}
.recovery-field span{color:#555}
.recovery-field input{height:44px;padding:0 14px;font-size:calc(var(--account-input-base,14px) * var(--reading-scale));transition:border-color .2s,box-shadow .2s,background-color .2s}
.recovery-field input:hover{border-color:#b8c9c4;background-color:#fff}
.recovery-note{padding:0;border-radius:0;background:transparent;color:#71837e}
.recovery-error,.recovery-success{padding:10px 14px;border-radius:8px}
.recovery-actions button{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;height:auto;padding:8px 14px;font-size:calc(14px * var(--reading-scale));font-weight:500;line-height:1.35}
.recovery-actions button:focus-visible{outline:2px solid var(--account-accent);outline-offset:2px}
[data-theme="dark"] .recovery-note{background:transparent;color:var(--account-muted)}
[data-theme="dark"] .recovery-field input:hover{background-color:var(--account-field);border-color:#41534c}
html[data-account-frame] .recovery-field input{font-size:calc(var(--account-input-base,14px) * var(--reading-scale))}
@media(max-width:767px){.entry-recovery .account-entry-header,.recovery-header{padding:24px 28px}.recovery-header h1{font-size:calc(22px * var(--reading-scale))}.recovery-body{padding:0 28px 24px}.recovery-field input{font-size:max(16px,calc(16px * var(--reading-scale)))}}

.recovery-actions button:disabled{opacity:.55;cursor:not-allowed;filter:none}

/* Play once on page entry; internal form and step switches keep their own motion. */
@keyframes account-card-enter {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
html.account-entry-ready:not([data-account-frame]) body:not(.embedded) .account-access-shell,
html.registration-flow.account-entry-ready:not([data-account-frame]) body:not(.embedded) .register-card {
  animation: account-card-enter 200ms ease-out;
}
html[data-accessibility-motion="reduce"] .account-access-shell,
html[data-accessibility-motion="reduce"] .register-card { animation: none !important; }
html[data-accessibility-motion="reduce"] .privacy-dialog,
html[data-accessibility-motion="reduce"] .privacy-dialog::backdrop { transition:none !important; }
@media (prefers-reduced-motion: reduce) {
  .account-access-shell, .register-card { animation: none !important; }
  .privacy-dialog, .privacy-dialog::backdrop { transition:none !important; }
}

/* Registration keeps step progress and actions outside the scrolling fields. */
html.registration-flow .register-card{display:flex;flex-direction:column;height:min(520px,calc(100dvh - 80px));min-height:0}
html.registration-flow .register-header{flex:none;padding:18px 28px 16px}
html.registration-flow .register-heading{min-width:0}
html.registration-flow .register-heading img{flex:none}
html.registration-flow .register-heading-title{display:flex;align-items:center;gap:8px;min-width:0}
html.registration-flow .register-heading-title h1{flex:none;white-space:nowrap}
html.registration-flow .register-provider-badge{display:inline-block;min-width:0;max-width:min(210px,42vw);overflow:hidden;padding:3px 7px;border-radius:var(--radius-pill,999px);background:var(--account-soft);color:var(--account-accent);font-size:var(--font-caption);font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
html.registration-flow .register-provider-badge[hidden]{display:none!important}
html.registration-flow .back-login{flex:none}
html.registration-flow .register-progress{flex:none;width:100%;max-width:536px;margin:0 auto;padding:14px 28px 12px;gap:14px}
html.registration-flow .register-progress span{height:auto;background:transparent;color:var(--account-muted);font-size:var(--font-secondary);line-height:1.5;white-space:normal}
html.registration-flow .register-progress span::before{content:"";display:block;height:4px;margin-bottom:8px;border-radius:999px;background:var(--account-border)}
html.registration-flow .register-progress span.active::before{background:var(--account-accent)}
html.registration-flow .register-progress span[aria-current="step"]{color:var(--account-accent);font-weight:600}
html.registration-flow .register-body{display:flex;flex:1;flex-direction:column;min-height:0;width:100%;max-width:536px;margin:0 auto;padding:0;overflow:hidden}
html.registration-flow .register-error{flex:none;margin:0 28px 12px;max-height:80px;overflow:auto}
html.registration-flow .register-step:not([hidden]){display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
html.registration-flow .register-step-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 28px 20px;scroll-padding:12px}
html.registration-flow .register-step-content>.step-description{margin:6px 0 14px;color:var(--account-muted);font-size:calc(13px * var(--reading-scale));line-height:1.65}
html.registration-flow .register-actions{flex:none;align-items:center;margin:0;padding:12px 28px 14px;border-top:1px solid var(--account-border);background:var(--account-surface)}
html.registration-flow .register-actions .register-error.show{flex:1;min-width:0;max-height:none;margin:0;padding:0;overflow:visible;border:0;background:transparent;color:var(--account-danger,#b73a3a);font-size:var(--font-secondary);line-height:1.45}
html.registration-flow .register-actions #register-email-status{flex:1;min-width:0;margin:0;overflow:hidden;color:var(--account-muted);font-size:var(--font-secondary);line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
html.registration-flow .register-actions:has(.register-error.show) #register-email-status{display:none}
html.registration-flow .register-consent-actions:has(.register-error.show) .register-consent-note{display:none}
html.registration-flow .register-actions button:disabled{cursor:not-allowed;opacity:.55}
html.registration-flow .register-actions button{font-family:inherit;min-height:var(--button-height);padding:var(--button-padding);font-size:var(--font-secondary)}
html.registration-flow[data-account-frame],html.registration-flow[data-account-frame] body,html.registration-flow[data-account-frame] body.embedded{height:100%!important;overflow:hidden!important}
html.registration-flow[data-account-frame] .register-shell,html.registration-flow[data-account-frame] .register-card{height:100%;min-height:0}
html.registration-flow[data-account-frame] .register-progress{padding-top:0}
@media(max-width:520px){html.registration-flow .register-progress{padding-left:24px;padding-right:24px;gap:8px}html.registration-flow .register-step-content{padding-left:24px;padding-right:24px}html.registration-flow .register-actions{padding:14px 24px 18px;flex-wrap:wrap}html.registration-flow .register-error{margin-left:24px;margin-right:24px}html.registration-flow .register-actions .register-error.show,html.registration-flow .register-actions #register-email-status{flex-basis:100%;margin:0;white-space:normal}}

html.registration-flow .register-shell{position:relative;max-width:520px}
html.registration-flow .login-footer{position:absolute;top:100%;left:0;width:100%;display:flex;align-items:center;justify-content:center;gap:5px;margin-top:16px;color:#71837e;font-family:inherit;font-size:var(--font-caption);font-weight:400;line-height:calc(18px * var(--reading-scale,1))}
html.registration-flow .login-footer a{padding:2px 4px;color:inherit;text-decoration:none}
html.registration-flow .login-footer a:hover{color:#a2b5ae;text-decoration:underline;text-underline-offset:3px}
html.registration-flow[data-account-frame] .login-footer{display:none}
html.registration-flow[data-account-frame] .register-shell{max-width:none}

html.registration-flow .register-consent-actions{flex-wrap:wrap;align-items:center}
.register-consent-note{flex:1 1 240px;margin:0;color:var(--account-muted);font-size:var(--font-secondary);line-height:1.65}
.registration-privacy-link{color:var(--account-accent);text-decoration:none}

@media(max-width:767px){html.registration-flow:not([data-account-frame]) .register-card{height:min(520px,calc(100dvh - 128px))}}

html.registration-flow{--accent:var(--account-accent);--accent-soft:var(--account-soft);--border:var(--account-border);--bg-secondary:var(--account-surface);--text-secondary:var(--account-muted);--radius-pill:999px;--radius-sm:6px;--radius-md:8px}
html.registration-flow .register-step-content>.step-description{margin-top:0}

html.registration-flow .register-step[data-step="1"] .step-description{margin:8px 0 16px}
html.registration-flow .register-step[data-step="1"] .privacy-points{gap:12px}

.register-account-grid{align-items:start}
.register-account-grid .register-field{min-width:0}
.register-account-grid #register-email-code-field[hidden]{display:none!important}
.register-account-grid #register-email-field.provider-email-verified{grid-column:1 / -1}
.register-account-grid .register-field input{min-width:0}
.register-account-grid .register-password-pair{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-width:0}
body.embedded .register-account-grid #registration-invite-field[hidden]{display:none}
body.embedded .register-account-grid .registration-username-field{grid-column:1 / -1}

.registration-email-fields{display:grid;gap:12px;margin-bottom:18px}
.registration-code-row,.registration-password-row{display:flex;align-items:center;gap:10px;min-width:0}
.registration-code-row input,.registration-password-row input{min-width:0;flex:1}
.registration-code-row button{flex:none;font-family:inherit}
.registration-password-field{grid-column:auto}
.registration-password-row{position:relative}
.registration-password-row input{padding-right:60px}
.registration-password-row button{position:absolute;right:12px;padding:4px 0;border:0;background:transparent;color:var(--account-accent);font:inherit;font-size:var(--font-secondary);cursor:pointer}
.register-field>label{color:var(--account-muted);font-size:var(--font-secondary);line-height:20px}
#register-email-status{color:var(--account-muted);font-size:var(--font-secondary);line-height:1.6}
.registration-code-row button:disabled{opacity:.55;cursor:not-allowed}

.registration-code-label{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:20px;flex-wrap:wrap}
.registration-code-label label{color:var(--account-muted);font-size:var(--font-secondary);line-height:20px}
.registration-code-label button{padding:0;border:0;background:transparent;color:var(--account-accent);font:inherit;font-size:var(--font-secondary);line-height:20px;white-space:nowrap;cursor:pointer}
.registration-code-label button:disabled{color:var(--account-muted);opacity:.55;cursor:default}
.registration-code-label button:focus-visible{outline:2px solid var(--account-accent);outline-offset:3px}

/* Keep paired registration fields on the same label and input baselines. */
html.registration-flow .register-account-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:20px;align-items:start}
html.registration-flow .register-account-grid .register-field{gap:6px}
html.registration-flow .register-account-grid .register-field>span,
html.registration-flow .register-account-grid .register-field>label,
html.registration-flow .register-account-grid .registration-code-label label{font-size:var(--font-secondary);font-weight:500;line-height:calc(20px * var(--reading-scale));color:var(--account-muted)}
html.registration-flow .register-account-grid .registration-code-label{min-height:0;height:auto;flex-wrap:nowrap;gap:4px}
html.registration-flow .registration-code-label button{font-size:var(--font-caption);line-height:calc(20px * var(--reading-scale));flex:none}
html.registration-flow .register-account-grid input{width:100%;min-width:0;max-width:100%;height:44px}
html.registration-flow .register-account-grid small{font-size:var(--font-caption);line-height:1.5;color:var(--account-muted)}
@media(max-width:520px){html.registration-flow .register-account-grid{grid-template-columns:minmax(0,1fr);row-gap:16px}.register-account-grid .register-password-pair{grid-template-columns:minmax(0,1fr);gap:16px}}

.registration-verification-row input{padding-right:calc(6 * var(--font-secondary) + 24px)}
.registration-verification-row button:disabled{color:var(--account-muted);opacity:.55;cursor:default}
.registration-verification-row button:focus-visible{outline:2px solid var(--account-accent);outline-offset:3px}

html.account-entry-pending body:not(.embedded) .account-access-shell,
html.registration-flow.account-entry-pending body:not(.embedded) .register-card { visibility: hidden; }

/* Shared submit action stays still while equal-height form panels switch. */
.login-form-stage { display:grid; min-width:0; }
.login-form-stage > form { grid-area:1 / 1; min-width:0; }
.login-form-stage > form[hidden] { display:block !important; visibility:hidden; pointer-events:none; }

/* First sign-in uses the existing recovery card and account form measures. */
.provider-choice{display:block}
.provider-choice-radio{position:absolute;width:1px;height:1px;opacity:0}
.provider-choice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:18px}
.provider-choice-options label{display:flex;align-items:center;justify-content:center;min-height:38px;padding:8px 10px;border:1px solid var(--account-border,#d7dfdc);border-radius:9px;color:var(--account-muted,#60716d);font-size:var(--font-secondary);line-height:1.35;text-align:center;cursor:pointer}
#provider-choice-create:checked~.provider-choice-options label[for="provider-choice-create"],#provider-choice-link:checked~.provider-choice-options label[for="provider-choice-link"]{border-color:var(--account-accent,#1f806b);background:var(--account-soft,#f1f7f5);color:var(--account-accent,#1f806b);font-weight:600}
#provider-choice-create:focus-visible~.provider-choice-options label[for="provider-choice-create"],#provider-choice-link:focus-visible~.provider-choice-options label[for="provider-choice-link"]{outline:2px solid var(--account-accent,#1f806b);outline-offset:2px}
#provider-choice-create:checked~.provider-choice-link,#provider-choice-link:checked~.provider-choice-create{display:none}
.provider-choice-note{margin-bottom:16px;color:var(--account-muted,#60716d);font-size:var(--font-secondary);line-height:1.55}
.provider-choice-fields{gap:16px;padding:0}
.provider-choice-consent{display:flex;align-items:flex-start;gap:8px;color:var(--account-muted,#60716d);font-size:var(--font-secondary);line-height:1.55}
.provider-choice-consent input{flex:none;width:16px;height:16px;margin-top:2px;accent-color:var(--account-accent,#1f806b)}
.provider-choice-consent a{color:var(--account-accent,#1f806b);text-decoration:none}
.provider-choice-consent a:hover{text-decoration:underline}
.provider-choice-fields .recovery-actions{margin-top:2px}
@media(max-width:520px){.provider-choice-options{gap:6px}.provider-choice-options label{padding:8px 6px}}

/* The chosen provider uses the account page's existing field, button and status styles. */
.account-access-shell.provider-onboarding{height:var(--entry-shell-height,480px);min-height:0;grid-template-rows:minmax(0,1fr)}
.login-card.provider-onboarding{min-height:0}
.login-form-stage>.provider-choice-shell{grid-area:1/1;min-width:0}
.provider-choice-shell[hidden]{display:none!important}
.login-card.provider-onboarding .login-form-stage>#login-form,
.login-card.provider-onboarding .login-form-stage>#email-login-form{visibility:hidden;pointer-events:none}
.provider-choice-shell .login-error.show{margin-bottom:10px}
.provider-onboarding .login-alternatives{display:none}
.provider-choose-stage .login-options,.provider-choose-stage .login-primary-action{display:none}
.provider-choice-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.provider-choice-actions .login-button,.provider-choice-actions .register-button{min-height:40px;font-family:inherit;font-size:calc(14px * var(--reading-scale));text-align:center}
.provider-choice-actions .provider-choice-back{justify-self:center;margin-top:2px;font-size:var(--font-secondary)}
.provider-selected-identity{display:flex;align-items:center;gap:10px;min-width:0;min-height:58px;margin-bottom:19px;padding:10px 12px;border:1px solid var(--account-border);border-radius:9px;background:var(--account-soft);color:var(--account-text)}
.provider-selected-icon{display:flex;flex:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--account-surface);color:var(--account-accent)}
.provider-selected-icon svg{display:block;width:18px;height:18px;fill:currentColor}
.provider-selected-icon img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}
.provider-selected-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.provider-selected-copy span{color:var(--account-muted);font-size:var(--font-caption);line-height:1.3}
.provider-selected-copy strong{overflow:hidden;color:var(--account-text);font-size:calc(14px * var(--reading-scale));font-weight:600;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.provider-selected-status{flex:none;color:var(--account-accent);font-size:var(--font-caption);font-weight:600}
.provider-link-stage .provider-selected-identity{min-height:48px;margin-bottom:14px;padding:7px 10px}
@media(max-width:767px){.provider-selected-identity{margin-bottom:16px}}
/* The official WeChat iframe loads this stylesheet through WxLogin.href.
   Its own 64px body padding makes the 400px embed scroll when modes switch. */
body.web_qrcode_type_iframe {
    height: 400px;
    padding: 0 !important;
    overflow: hidden;
}
.web_qrcode_panel_quick_login .qlogin_mod {
    min-height: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.web_qrcode_panel_quick_login .qlogin_user_avatar {
    width: 80px;
    height: 80px;
}
.web_qrcode_panel_quick_login .qlogin_user_nickname {
    font-size: 22px;
    line-height: 30px;
}
.web_qrcode_panel_quick_login .qlogin_btn {
    width: 220px;
    min-height: 46px;
    font-size: 22px;
    line-height: 46px;
}
.qlogin_mod .qlogin_msg {
    font-size: 22px;
    line-height: 30px;
}
.web_qrcode_panel_quick_login .js_switchToNormal {
    font-size: 19px;
    line-height: 26px;
}
.web_qrcode_panel_normal_login {
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.web_qrcode_panel_normal_login .title {
    display: none;
}
.web_qrcode_panel_normal_login .qrcode {
    width: 268px;
    height: 268px;
    margin-top: 8px;
}
.web_qrcode_panel_normal_login .info p {
    font-size: 21px;
    line-height: 1.4;
}
.web_qrcode_panel_normal_login .web_qrcode_switch_wrp {
    margin-top: 10px;
}
.web_qrcode_panel_normal_login .web_qrcode_switch {
    font-size: 19px;
    line-height: 26px;
}
