.login-root{background:var(--bg);min-height:100dvh;font-family:var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;justify-content:center;align-items:center;padding:1.5rem;display:flex}.login-switch{cursor:pointer;font-family:inherit;font-size:var(--text-xs);color:var(--ink-muted);background:0 0;border:none;align-items:center;gap:5px;margin:-.75rem 0 1.25rem;padding:0;font-weight:600;display:inline-flex}.login-switch:hover{color:var(--accent)}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-sizing:border-box;z-index:1;background:#fffffff7;border:1px solid #fff9;border-radius:20px;width:100%;max-width:420px;padding:2.5rem 2.25rem;position:relative;box-shadow:0 30px 80px -20px #00000080,0 8px 24px #00000038}.login-brand{flex-direction:column;align-items:center;gap:.85rem;margin-bottom:1.75rem;display:flex}.login-logo{border-radius:var(--r-md);background:var(--accent-soft);width:52px;height:52px;color:var(--accent);justify-content:center;align-items:center;display:flex}.login-title{font-size:var(--text-xl);letter-spacing:-.02em;text-align:center;margin:0;font-weight:700}.login-sub{color:var(--ink-soft);font-size:var(--text-sm);text-align:center;margin:.25rem 0 0}.login-label{font-size:var(--text-sm);color:var(--ink-soft);margin:1rem 0 .4rem;font-weight:500;display:block}.login-input{border:1px solid var(--line-strong);border-radius:var(--r-sm);width:100%;font-size:var(--text-sm);box-sizing:border-box;background:var(--surface);color:var(--ink);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:.75rem .85rem;font-family:inherit}.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.login-field-wrap{position:relative}.login-input--tickable{padding-right:2.25rem}.login-field-tick{color:var(--success);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);position:absolute;top:50%;right:.75rem;transform:translateY(-50%)scale(.7)}.login-field-tick.is-visible{opacity:1;filter:drop-shadow(0 0 4px var(--success-soft));transform:translateY(-50%)scale(1)}.login-pw-wrap{position:relative}.login-eye{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;padding:.3rem;display:flex;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.login-eye:hover{color:var(--ink)}.login-error{color:var(--danger);font-size:var(--text-sm);background:var(--danger-soft);border-radius:var(--r-sm);margin:.85rem 0 0;padding:.6rem .8rem}.login-btn{border-radius:var(--r-sm);background:var(--accent);color:#fff;width:100%;font-family:inherit;font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow-accent);transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none;margin-top:1.5rem;padding:.85rem;font-weight:600}.login-btn:hover{background:var(--accent-hover)}.login-btn:active{transform:scale(.99)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.auth-divider{color:var(--ink-muted);font-size:var(--text-xs);align-items:center;gap:.75rem;margin:1.25rem 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.google-btn{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:.6rem;padding:.8rem;font-weight:600;display:flex}.google-btn:hover{background:var(--surface-hover,var(--accent-soft));border-color:var(--line-strong)}.google-btn:active{transform:scale(.99)}.login-foot{text-align:center;font-size:var(--text-xs);color:var(--ink-muted);margin:1.5rem 0 0}.demo-confirm__notice{background:var(--warning-soft,#fef3c7);color:var(--warning-ink,#92400e);border-radius:var(--r-sm);font-size:var(--text-xs);align-items:flex-start;gap:.6rem;margin-top:.5rem;padding:.75rem .85rem;line-height:1.5;display:flex}.demo-confirm__notice svg{flex-shrink:0;margin-top:1px}.demo-confirm__cancel{text-align:center;font-size:var(--text-sm);color:var(--ink-muted);margin-top:.85rem;text-decoration:none;display:block}.demo-confirm__cancel:hover{color:var(--ink-soft);text-decoration:underline}