.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px;position:relative;z-index:1}.auth-card{width:100%;max-width:420px;background:var(--composer-bg);border:1px solid var(--line);border-radius:var(--radius-l);padding:32px 28px 24px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:16px}.auth-head{display:flex;align-items:center;justify-content:flex-start;margin-bottom:8px}.auth-brand{display:inline-flex;align-items:center;gap:8px;color:var(--fg-0);text-decoration:none;font-weight:600}.auth-brand .mark{width:28px;height:28px;border-radius:8px;background:var(--grad);color:white;display:grid;place-items:center;font-family:var(--font-display);font-size:16px;line-height:1}.auth-brand .wm{font-size:18px;letter-spacing:-.01em}.auth-brand .wm,.auth-title{font-family:var(--font-display)}.auth-title{font-size:clamp(28px,4vw,34px);font-weight:500;letter-spacing:-.02em;margin:0;color:var(--fg-0)}.auth-sub{margin:0 0 8px;color:var(--fg-1);font-size:15px;line-height:1.5}.auth-oauth{display:flex;flex-direction:column;gap:10px}.auth-oauth-btn{appearance:none;border:1px solid var(--line-strong);background:var(--bg-0);color:var(--fg-0);height:48px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);touch-action:manipulation}.auth-oauth-btn:hover{background:var(--bg-1);border-color:var(--line-strong)}.auth-oauth-btn:active{transform:translateY(1px)}.auth-webview-note{margin:0;padding:10px 12px;border-radius:var(--radius-s);background:color-mix(in srgb,var(--fg-2) 12%,transparent);color:var(--fg-1);font-size:13px;line-height:1.5}.auth-oauth-btn--dim{opacity:.55}[data-theme=light] .auth-oauth-github{background:#0d1117;color:#fff;border-color:#0d1117}[data-theme=light] .auth-oauth-github:hover{background:#1d2129;border-color:#1d2129}[data-theme=dark] .auth-oauth-github{background:#20232e;color:#fff;border-color:var(--line-strong)}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--fg-2);font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:4px 0}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--line)}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-label{font-size:13px;font-weight:500;color:var(--fg-1)}.auth-input{height:48px;border-radius:12px;border:1px solid var(--line-strong);background:var(--bg-0);color:var(--fg-0);padding:0 14px;font:inherit;font-size:15px;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);width:100%}.auth-input::placeholder{color:var(--fg-2)}.auth-input:focus-visible{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 30%,transparent)}.auth-submit{appearance:none;border:none;height:48px;border-radius:12px;background:var(--grad);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:4px;transition:filter var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);touch-action:manipulation}.auth-submit:hover:not(:disabled){filter:brightness(1.05)}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-error{margin:0;padding:10px 12px;border-radius:var(--radius-s);background:color-mix(in srgb,var(--err) 12%,transparent);color:var(--err);font-size:13px}.auth-fineprint{margin:4px 0 0;font-size:12px;color:var(--fg-2);text-align:center;line-height:1.5}.auth-fineprint a{color:var(--fg-1);text-decoration:underline;text-underline-offset:2px}.auth-fineprint a:hover{color:var(--fg-0)}.auth-sent-art{align-self:center;width:64px;height:64px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center;color:var(--fg-0);margin:8px 0}.auth-email{color:var(--fg-0);font-weight:600}.auth-link-btn{appearance:none;background:transparent;border:none;color:var(--fg-1);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:14px;cursor:pointer;padding:8px;align-self:center}.auth-link-btn:hover{color:var(--fg-0)}@media (max-width:480px){.auth-shell{align-items:flex-start;padding:48px 16px 16px}.auth-card{padding:24px 20px 20px}}