.ratlab-auth{box-sizing:border-box;width:100%;max-width:600px;margin:0 auto;padding:24px 20px 40px;color:var(--text,#f4f5f7);font:16px/1.5 system-ui,sans-serif;letter-spacing:0}
.ratlab-auth button[data-action="google-login"]{display:flex;align-items:center;justify-content:center;flex:0 0 64px;align-self:center;width:64px;height:64px;min-height:64px;margin-inline:auto;padding:0;border:0;background:transparent;box-shadow:none}
.ratlab-auth [data-action="google-login"]::before{content:"";display:block;width:48px;height:48px;flex:0 0 48px;background:currentColor;mask:url('/assets/ui-icons/google.png') center/contain no-repeat;transition:transform 180ms ease,color 180ms ease}
@media(hover:hover){.ratlab-auth [data-action="google-login"]:not(:disabled):hover::before{transform:translateY(-2px) scale(1.08);color:var(--primary)}}
.ratlab-auth [data-action="google-login"]:not(:disabled):active::before{transform:scale(.96)}
@media(prefers-reduced-motion:reduce){.ratlab-auth [data-action="google-login"]::before{transition:none;transform:none!important}}
.ratlab-auth *{box-sizing:border-box;min-width:0}.ratlab-auth h1{font-size:28px;line-height:1.2;margin:20px 0}.ratlab-auth .auth-brand{display:block;width:132px;height:auto;margin-bottom:24px}.ratlab-auth form,.ratlab-auth fieldset{display:grid;gap:16px}.ratlab-auth fieldset{border:0;padding:0;margin:0}.ratlab-auth label{display:grid;gap:6px;font-size:14px;font-weight:600}.ratlab-auth input,.ratlab-auth select,.ratlab-auth textarea{width:100%;min-height:48px;border:1px solid var(--input-border);border-radius:6px;padding:10px 12px;font:inherit;background:var(--surface,#151a21);color:inherit}.ratlab-auth input[type=checkbox]{width:20px;height:20px;min-height:20px;flex:none}.ratlab-auth .auth-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400}.ratlab-auth button{min-height:48px;padding:10px 16px;border:1px solid var(--border-soft);border-radius:6px;background:var(--surface,#151a21);color:inherit;font:inherit;cursor:pointer;white-space:normal}.ratlab-auth button[type=submit]{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--primary);font-weight:700}.ratlab-auth button:disabled{opacity:.6;cursor:wait}.ratlab-auth a{color:inherit;text-decoration:underline}.ratlab-auth :focus-visible{outline:3px solid var(--border-default);outline-offset:3px}.ratlab-auth .auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ratlab-auth .auth-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.ratlab-auth .auth-actions>*{flex:1}.ratlab-auth .auth-notice{padding:12px;border-left:3px solid var(--border-default);background:var(--surface,#151a21);overflow-wrap:anywhere;margin:12px 0}.ratlab-auth [role=alert]{border-color:var(--danger)}.ratlab-auth small{font-size:13px;font-weight:400;line-height:1.4}.ratlab-auth .auth-password-row{display:flex;gap:6px}.ratlab-auth .auth-password-row input{flex:1;width:0}.ratlab-auth .auth-password-row button{flex:none;width:48px;padding:10px}.ratlab-auth .auth-password-row svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}.ratlab-auth meter{width:100%;height:10px}.ratlab-auth [hidden]{display:none!important}.ratlab-auth legend{font-size:18px;font-weight:700;margin-bottom:12px}.ratlab-auth textarea{min-height:90px}.ratlab-auth .auth-code{font-size:24px;font-variant-numeric:tabular-nums;text-align:center}.ratlab-auth .auth-secondary-copy{color:inherit;opacity:.85}.ratlab-auth .auth-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-top:24px}
@media(max-width:480px){.ratlab-auth{padding:20px 16px 32px}.ratlab-auth .auth-grid{grid-template-columns:1fr}.ratlab-auth h1{font-size:24px}.ratlab-auth .auth-actions{flex-direction:column}}
.ratlab-auth-entry{display:grid;align-items:center;min-height:100svh;width:100%;padding:24px 0;background:var(--surface)}
.ratlab-auth-entry .ratlab-auth{max-width:440px;padding:24px;color:var(--text-primary);font-family:"Bahnschrift","Arial Narrow","Segoe UI",sans-serif}
.ratlab-auth-entry .auth-brand{width:260px;max-width:80%;aspect-ratio:2 / 1;object-fit:contain;margin:0 auto 40px}
.ratlab-auth-entry .ratlab-auth input{background:var(--input-bg);border-color:var(--input-border);border-radius:6px;min-height:48px}
.ratlab-auth-entry .ratlab-auth input:focus{border-color:var(--primary)}
.ratlab-auth-entry .ratlab-auth input[type=checkbox]{min-height:20px;accent-color:var(--primary)}
.ratlab-auth[data-auth-phase="login"] .auth-consent{align-items:center}
.ratlab-auth[data-auth-phase="login"] input[name="persist"]{margin:0;padding:0}
.ratlab-auth-entry .ratlab-auth button[type=submit]{background:var(--button-primary-bg);border-color:var(--primary);min-height:48px;color:var(--button-primary-text)}
.ratlab-auth-entry .ratlab-auth[data-auth-phase="login"] button[type=submit]{background:var(--button-primary-bg);border-color:var(--primary);font-size:19px;font-weight:700;color:var(--button-primary-text)}
@media(hover:hover){.ratlab-auth-entry .ratlab-auth[data-auth-phase="login"] button[type=submit]:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary)}}
.ratlab-auth .auth-password-row{display:block;position:relative}
.ratlab-auth .auth-password-row input{width:100%;padding-right:56px}
.ratlab-auth .auth-password-row button{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;background:transparent;border-radius:4px}
.ratlab-auth .auth-password-row button:focus-visible{outline-offset:-3px}
.ratlab-auth .auth-password-row svg g{transform-origin:12px 12px;transition:opacity 160ms ease,transform 160ms ease}
.ratlab-auth .auth-eye-open{opacity:0;transform:scaleY(.2)}
.ratlab-auth .auth-eye-closed{opacity:1;transform:scaleY(1)}
.ratlab-auth button[aria-pressed=true] .auth-eye-open{opacity:1;transform:scaleY(1)}
.ratlab-auth button[aria-pressed=true] .auth-eye-closed{opacity:0;transform:scaleY(.2)}
@media(prefers-reduced-motion:reduce){.ratlab-auth .auth-password-row svg g{transition:none}}
.ratlab-auth-entry .auth-recovery-link{margin-top:8px;justify-content:center}
.ratlab-auth-entry .auth-recovery-link button{background:transparent;border:0;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.ratlab-auth .auth-signup-prompt{margin:24px 0 0;text-align:center;font-size:14px;line-height:1.6}
.ratlab-auth .auth-signup-prompt a{display:inline-block;font-weight:700;text-underline-offset:3px;white-space:nowrap}
.ratlab-auth-entry .auth-links{justify-content:center;color:var(--text-secondary);gap:20px;margin-top:32px}
.ratlab-auth [data-cooldown]{font-size:13px;color:var(--text-secondary);min-height:20px;margin:8px 0;font-variant-numeric:tabular-nums}
.auth-legal-dialog{box-sizing:border-box;width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);color:var(--text-primary);font:15px/1.6 system-ui,sans-serif;letter-spacing:0;overflow:hidden}
.auth-legal-dialog[open]{display:flex;flex-direction:column}
.auth-legal-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(5px)}
.auth-legal-dialog header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-soft);flex:none}
.auth-legal-dialog h2{font-size:18px;line-height:1.4;margin:0;overflow-wrap:anywhere}
.auth-legal-dialog header h2{flex:1}
.auth-legal-dialog button{background:transparent;color:inherit;border:1px solid var(--border-soft);border-radius:4px;padding:8px 12px;font:inherit;cursor:pointer;min-height:44px}
.auth-legal-dialog header button{width:44px;height:44px;flex:none;padding:0;border:0;font-size:28px}
.auth-legal-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:20px;overflow-wrap:anywhere}
.auth-legal-content section+section{margin-top:24px}
.auth-legal-meta{font-size:12px;color:var(--text-secondary)}
.auth-legal-dialog :focus-visible{outline:2px solid var(--border-default);outline-offset:-2px}
@media(max-height:600px){.ratlab-auth-entry{align-items:start;padding:8px 0}.ratlab-auth-entry .auth-brand{margin-bottom:24px}}
html[data-theme="light"] .ratlab-auth .auth-brand{filter:invert(1) hue-rotate(180deg)}
.ratlab-auth button[type=submit]:disabled{background:var(--button-disabled-bg);color:var(--button-disabled-text);border-color:var(--border-soft);opacity:1}

/* Shared settings rows: information stays static; only destinations get arrows. */
.settings-auth.ratlab-auth{max-width:760px;margin:0;padding:0;font-family:inherit;font-size:15px;color:var(--text-primary);letter-spacing:0}
.settings-auth.ratlab-auth h1{font-size:20px;line-height:1.4;margin:0 0 24px}
.settings-auth.ratlab-auth[data-auth-phase="account"] form>fieldset{display:block}
.settings-group{margin:0;padding:0;border:0;background:none;box-shadow:none;min-width:0}
.settings-group+.settings-group{margin-top:28px}
.settings-group>h2{margin:0 0 8px;font-size:12px;line-height:1.5;font-weight:600;text-transform:uppercase;letter-spacing:0;color:var(--text-secondary)}
.settings-list{display:block;min-width:0}
.settings-list>.settings-row,.settings-list>.settings-disclosure{border-bottom:1px solid var(--border-soft)}
.settings-list .settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:56px;box-sizing:border-box;margin:0;padding:14px 0;border-top:0;border-left:0;border-right:0;border-radius:0;box-shadow:none;background:transparent;color:var(--text-primary);font:inherit;line-height:1.45;letter-spacing:0;text-align:left;text-decoration:none;white-space:normal;transform:none}
.settings-row-copy{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.settings-row-label{font-weight:500}
.settings-row-value{font-size:13px;color:var(--text-secondary);font-weight:400}
.settings-row-chevron{display:block;flex:0 0 18px;width:18px;height:18px;color:var(--text-secondary)}
.settings-list .settings-row-danger{color:var(--danger);border:0;font-size:14px;font-weight:500}
.settings-disclosure>summary{list-style:none;cursor:pointer;border:0}
.settings-disclosure>summary::-webkit-details-marker{display:none}
.settings-disclosure[open]>summary .settings-row-chevron{transform:rotate(90deg)}
.settings-disclosure-body{padding:0 0 12px}
.settings-disclosure-body p{margin:0;font-size:13px;line-height:1.6;color:var(--text-secondary);overflow-wrap:anywhere}
.settings-list :is(button,summary):focus-visible{outline:2px solid var(--focus-ring,var(--primary));outline-offset:-2px}
@media(hover:hover){.settings-list :is(button,summary):hover{background:var(--surface-hover,var(--surface));color:var(--text-primary)}.settings-list .settings-row-danger:hover{color:var(--danger)}}
.settings-auth .auth-actions button{flex:0 1 auto;border:0;background:transparent;padding-inline:0;text-align:left;text-decoration:underline;text-underline-offset:4px}
