.auth-page{max-width:24rem;padding:var(--space-16) 0 var(--space-20);margin-left:auto;margin-right:auto}.auth-title{font-family:var(--font-display);font-size:var(--text-4xl);text-align:center;margin-bottom:var(--space-8);color:var(--ink-strong)}.auth-providers{margin-top:var(--space-6)}.auth-divider{grid-gap:var(--space-3);align-items:center;gap:var(--space-3);margin:0 0 var(--space-6);color:var(--ink-subtle);font-size:var(--text-sm);grid-template-columns:1fr auto 1fr;display:grid}.auth-divider:before,.auth-divider:after{content:"";border-top:1px solid var(--line)}.auth-provider-stack{flex-direction:column;gap:.75rem;display:flex}.auth-provider-button{border:1px solid var(--line-strong);background:var(--surface-base);width:100%;min-height:2.75rem;color:var(--ink);font-family:var(--font-ui);letter-spacing:0;text-align:center;cursor:pointer;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-press) var(--ease-out);border-radius:9999px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:700;line-height:1.2;display:block;position:relative}.auth-provider-button:hover,.auth-provider-button:focus-visible,.auth-google-shell:hover .auth-provider-button,.auth-google-shell:focus-within .auth-provider-button{background:var(--surface-sunken);border-color:var(--ink-muted);color:var(--ink-strong)}.auth-provider-button:active,.auth-google-shell:active .auth-provider-button{transform:scale(.98)}.auth-provider-button[aria-disabled=true],.auth-provider-button.is-static{pointer-events:none}.auth-provider-mark{left:var(--space-5);display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.auth-provider-label{text-align:center;width:100%;display:block}.auth-google-shell{width:100%;position:relative}.auth-google-overlay{z-index:10;opacity:0;position:absolute;inset:0;overflow:hidden}.auth-switch{margin:var(--space-8) 0 0;text-align:center;font-size:var(--text-sm);color:var(--ink-muted)}.auth-switch a,.auth-field-link{color:var(--ink);-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;font-weight:700;text-decoration-thickness:2px}.auth-aside{margin:var(--space-3) 0 0;text-align:center;font-size:.8125rem}.auth-aside a{color:var(--ink-muted);text-underline-offset:3px;-webkit-text-decoration:underline;text-decoration:underline}.auth-aside a:hover{color:var(--ink)}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}.auth-field-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.auth-field-head .auth-field-label{margin-bottom:0}.auth-field-link{font-size:.8125rem}.auth-field{display:block}.auth-field-label{margin-bottom:var(--space-2);font-family:var(--font-text);color:var(--ink);font-size:.875rem;font-weight:500;display:block}.auth-field-help{margin:var(--space-2) 0 0;font-family:var(--font-text);color:var(--ink-muted,#585858);font-size:.8125rem;line-height:1.4}.auth-field-input{border:1px solid var(--field-border);border-radius:var(--radius-soft);background:var(--surface-raised);width:100%;min-height:2.75rem;color:var(--ink);font-family:var(--font-text);transition:border-color var(--duration-fast) ease;padding:0 .875rem;font-size:.9375rem}.auth-field-input:hover{border-color:var(--ink)}.auth-field-input::placeholder{color:var(--ink-muted)}.auth-field-input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--ink)}.auth-copy{color:var(--ink-muted);font-size:var(--text-sm);text-align:center;margin:0;line-height:1.5}.auth-submit{border:1px solid var(--accent);background:var(--accent);width:100%;min-height:2.75rem;color:var(--accent-ink);font-family:var(--font-ui);letter-spacing:0;cursor:pointer;transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-medium) var(--ease-out), transform var(--duration-press) var(--ease-out);border-radius:9999px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:700;line-height:1.2;box-shadow:0 1px 2px #1717170f,0 6px 14px -6px #1717172e}.auth-submit:hover:not(:disabled){background-color:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 2px 4px #17171714,0 10px 22px -8px #17171738}.auth-submit:active{transform:translateY(1px)}a.auth-submit{justify-content:center;align-items:center;-webkit-text-decoration:none;text-decoration:none;display:flex}.auth-submit:disabled{cursor:default;opacity:.7}.auth-footnote{text-align:center;font-size:var(--text-sm);color:var(--ink-subtle)}.auth-footnote-link{border-bottom:1px solid var(--ink-strong);color:var(--ink-strong);padding-bottom:.125rem}.connect-reader{max-width:28rem;margin:var(--space-16) auto;padding:0 var(--space-4);text-align:center}.connect-reader-title{font-size:var(--text-xl);margin:0 0 var(--space-4)}.connect-reader p{margin:0 0 var(--space-3)}.connect-reader-error{color:var(--danger)}.connect-reader-actions{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.device-pair-input{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.12em;text-align:center;text-transform:uppercase}.device-pair-name{font-size:var(--text-lg);text-align:center;color:var(--ink-strong);word-wrap:anywhere;margin:0}.device-pair-code{margin:var(--space-2) 0 var(--space-6);font-family:var(--font-mono);font-size:var(--text-2xl);letter-spacing:.12em;text-align:center;color:var(--ink-strong)}.device-pair-error{font-size:var(--text-sm);text-align:center;color:var(--danger);margin:0}.device-pair-actions{gap:var(--space-3);margin-top:var(--space-6);flex-direction:column;display:flex}.device-pair-switch{font:inherit;color:var(--ink);-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration-thickness:2px}.device-pair-switch:disabled{cursor:default;opacity:.7}.auth-provider-icon{flex-shrink:0;width:1.125rem;height:1.125rem}.auth-provider-icon--mono{fill:currentColor}.auth-field-input[aria-invalid=true]:focus-visible,.auth-field-input[aria-invalid=true],.auth-field-input[aria-invalid=true]:hover{border-color:var(--danger)}
