.auth-page{justify-content:center;align-items:center;gap:var(--sp-6);min-height:100dvh;padding:var(--sp-8) var(--sp-4);background:radial-gradient(60rem 30rem at 50% -10%, var(--c-accent-soft), transparent 70%), var(--c-page);color:var(--c-ink);font-size:var(--fs-base);flex-direction:column;display:flex;position:relative}.auth-page-top{padding-top:var(--sp-4);justify-content:flex-start}.auth-topbar{top:var(--sp-4);right:var(--sp-4);position:absolute}.auth-card{gap:var(--sp-5);width:min(400px,100%);padding:var(--sp-8) var(--sp-6) var(--sp-6);border-radius:var(--r-xl);border:1px solid var(--c-line);background:var(--c-card);box-shadow:var(--shadow-pop);flex-direction:column;display:flex}.auth-card-wide{width:100%;padding:var(--sp-6);box-shadow:var(--shadow-sm)}.auth-brand{align-items:center;gap:var(--sp-3);display:flex}.auth-brand p{margin:0}.auth-logo{border-radius:var(--r-md);background:linear-gradient(145deg, var(--c-accent-hover), var(--c-accent-deep));width:40px;height:40px;color:var(--c-on-accent);font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:.02em;box-shadow:0 6px 18px -6px var(--c-accent-line);flex-shrink:0;place-items:center;display:inline-grid}.auth-brand-name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-ink);line-height:var(--lh-tight)}.auth-brand-sub{font-size:var(--fs-xs);color:var(--c-muted)}.auth-intro{gap:var(--sp-1);flex-direction:column;display:flex}.auth-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.01em;line-height:var(--lh-tight);color:var(--c-ink);margin:0}.auth-subtitle{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-ink);margin:0}.auth-muted{font-size:var(--fs-sm);color:var(--c-muted);margin:0}.auth-form{gap:var(--sp-4);flex-direction:column;display:flex}.auth-grid{gap:var(--sp-4) var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.auth-field{flex-direction:column;gap:6px;min-width:0;display:flex}.auth-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--c-muted)}.auth-input{width:100%;height:40px;padding:0 var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--c-line);background:var(--c-soft);color:var(--c-ink);font:inherit;font-size:var(--fs-base);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.auth-input::placeholder{color:var(--c-faint)}.auth-input:hover:not(:disabled){border-color:var(--c-line-2)}.auth-input:focus,.auth-input:focus-visible{border-color:var(--c-accent-ink);box-shadow:0 0 0 3px var(--c-accent-soft);outline:none}.auth-input[aria-invalid=true]{border-color:var(--c-red)}.auth-input:disabled{opacity:.6}.auth-pw{position:relative}.auth-pw .auth-input{padding-right:44px}.auth-pw-toggle{border-radius:var(--r-xs);width:34px;height:34px;color:var(--c-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.auth-pw-toggle:hover{color:var(--c-ink);background:var(--c-hover)}.auth-inline{gap:var(--sp-2);display:flex}.auth-inline .auth-input{flex:1}.auth-hint{font-size:var(--fs-xs);color:var(--c-muted)}.auth-hint-warn{color:var(--c-amber)}.auth-hint-err{color:var(--c-red)}.auth-hint-ok{color:var(--c-green)}.auth-alert{padding:10px var(--sp-3);border-radius:var(--r-sm);font-size:var(--fs-sm);border:1px solid var(--c-line)}.auth-alert-err{background:var(--c-red-bg);border-color:var(--st-red-line);color:var(--st-red-ink)}.auth-alert-ok{background:var(--c-green-bg);border-color:var(--st-green-line);color:var(--st-green-ink)}.auth-btn{height:40px;padding:0 var(--sp-4);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.auth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-btn-primary{background:var(--c-accent);color:var(--c-on-accent)}.auth-btn-primary:hover:not(:disabled){background:var(--c-accent-hover)}.auth-btn-secondary{background:var(--c-soft);border-color:var(--c-line);color:var(--c-ink)}.auth-btn-secondary:hover:not(:disabled){background:var(--c-soft-2);border-color:var(--c-line-2)}.auth-btn-ghost{color:var(--c-ink-2);background:0 0}.auth-btn-ghost:hover:not(:disabled){background:var(--c-hover);color:var(--c-ink)}.auth-btn-sm{height:30px;padding:0 var(--sp-2);font-size:var(--fs-sm)}.auth-btn-block{width:100%}.auth-icon-btn{border-radius:var(--r-pill);border:1px solid var(--c-line);background:var(--c-card);width:36px;height:36px;color:var(--c-ink-2);cursor:pointer;place-items:center;display:inline-grid}.auth-icon-btn:hover{color:var(--c-ink);border-color:var(--c-line-2)}.auth-actions{justify-content:flex-end;display:flex}.auth-foot{text-align:center;font-size:var(--fs-xs);color:var(--c-muted);margin:0}.auth-header{justify-content:space-between;align-items:center;gap:var(--sp-3);width:min(640px,100%);padding:var(--sp-2) 0;display:flex}.auth-header-brand{align-items:center;gap:var(--sp-2);color:inherit;text-decoration:none;display:inline-flex}.auth-header-brand .auth-logo{border-radius:var(--r-sm);width:32px;height:32px;font-size:var(--fs-xs)}.auth-header-actions{align-items:center;gap:var(--sp-2);display:flex}.auth-stack{gap:var(--sp-4);flex-direction:column;width:min(640px,100%);display:flex}.auth-user{align-items:center;gap:var(--sp-4);display:flex}.auth-user-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.auth-avatar{border-radius:var(--r-pill);background:var(--st-gray-bg);width:48px;height:48px;color:var(--st-gray-ink);font-size:var(--fs-base);font-weight:var(--fw-semibold);box-shadow:inset 0 0 0 1px var(--st-gray-line);flex-shrink:0;place-items:center;display:inline-grid}.auth-avatar-blue{background:var(--st-blue-bg);color:var(--st-blue-ink);box-shadow:inset 0 0 0 1px var(--st-blue-line)}.auth-avatar-purple{background:var(--st-purple-bg);color:var(--st-purple-ink);box-shadow:inset 0 0 0 1px var(--st-purple-line)}.auth-avatar-amber{background:var(--st-amber-bg);color:var(--st-amber-ink);box-shadow:inset 0 0 0 1px var(--st-amber-line)}.auth-section-head{justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:calc(var(--sp-1) * -1);display:flex}.auth-skeleton{background:linear-gradient(90deg, var(--c-card), var(--c-soft), var(--c-card));background-size:200% 100%;width:100%;height:220px;animation:1.2s linear infinite auth-shimmer}@keyframes auth-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=640px){.auth-page{padding:var(--sp-6) var(--sp-4);justify-content:flex-start;padding-top:72px}.auth-page-top{padding-top:var(--sp-3)}.auth-card{padding:var(--sp-6) var(--sp-5) var(--sp-5)}.auth-card-wide{padding:var(--sp-5) var(--sp-4)}.auth-input,.auth-btn{height:44px;font-size:var(--fs-md)}.auth-btn-sm{height:44px;font-size:var(--fs-sm)}.auth-pw-toggle{width:40px;height:40px}.auth-icon-btn{width:44px;height:44px}.auth-grid{grid-template-columns:minmax(0,1fr)}.auth-user{flex-wrap:wrap}.auth-logout,.auth-actions .auth-btn{width:100%}.auth-header .auth-btn-ghost{padding:0 var(--sp-2)}}[data-theme=light] .auth-input::placeholder{color:var(--c-muted);opacity:.75}
