.auth-root{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--line);box-shadow:6px 6px 0 var(--ink);padding:40px}.auth-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:-.01em;margin-bottom:32px;color:var(--ink);text-decoration:none}.auth-logo .logo-mark{width:26px;height:26px;background:var(--ink);color:var(--lime);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:16px;flex-shrink:0}.auth-title{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px;line-height:1.2}.auth-sub{font-size:14px;color:var(--ink-soft);margin:0 0 28px}.auth-oauth-group{display:grid;gap:8px;margin-bottom:20px}.btn-oauth{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-card);font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s;line-height:1}.btn-oauth:hover:not(:disabled){background:var(--bg-sub);border-color:var(--ink)}.btn-oauth:disabled{opacity:.5;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:12px;margin-bottom:20px;font-family:var(--font-mono);font-size:11px;color:var(--ink-mute);text-transform:uppercase;letter-spacing:.1em}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--line)}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}.auth-field .field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.auth-field .field-row a{font-size:12px;color:var(--violet);text-decoration:none;font-family:var(--font-display);font-weight:500}.auth-field .field-row a:hover{text-decoration:underline}.auth-field input{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-family:var(--font-display);font-size:14px;outline:none;transition:border-color .15s}.auth-field input:focus{border-color:var(--violet)}.auth-field input::-moz-placeholder{color:var(--ink-mute)}.auth-field input::placeholder{color:var(--ink-mute)}.auth-submit{width:100%;padding:12px 16px;background:var(--ink);color:var(--bg);border:none;border-radius:var(--radius);font-family:var(--font-display);font-size:14px;font-weight:600;cursor:pointer;margin-top:8px;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:8px;line-height:1}.auth-submit:hover:not(:disabled){background:var(--violet)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-error{padding:10px 12px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger);line-height:1.4}.auth-error,.auth-success{font-size:13px;margin-bottom:16px;overflow-wrap:anywhere}.auth-success{padding:12px;background:var(--lime-soft);border:1px solid var(--lime-deep);border-radius:var(--radius);color:var(--ink);line-height:1.5}.auth-footer{margin-top:20px;text-align:center;font-size:13px;color:var(--ink-soft)}.auth-footer a{color:var(--violet);font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-footer button{color:var(--violet);font-weight:600;cursor:pointer;background:none;border:none;font-size:inherit;padding:0;font-family:inherit}.auth-footer button:hover{text-decoration:underline}