@import "https://fonts.googleapis.com/css2?family=Nunito+Sans:opsz,wght@6..12,300;6..12,400;6..12,500;6..12,600;6..12,700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{-webkit-font-smoothing:antialiased;color:#18181b;background:#fafafa;justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;font-family:Nunito Sans,sans-serif;display:flex}:root{--accent:#5b5bd6;--accent-hover:#4a4ab8;--accent-light:#efeffd;--text:#18181b;--text-soft:#3f3f46;--muted:#71717a;--faint:#a1a1aa;--border:#e4e4e7;--white:#fff}.auth-wrap{flex-direction:column;gap:28px;width:100%;max-width:400px;display:flex}.auth-logo{flex-direction:column;align-items:center;gap:10px;text-decoration:none;display:flex}.auth-logo svg{width:36px;height:36px}.auth-head{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.auth-title{color:var(--text);letter-spacing:-.03em;font-size:1.7rem;font-weight:700}.auth-subtitle{color:var(--muted);font-size:.9rem}.auth-field.has-error input{border-color:#f87171;box-shadow:0 0 0 3px #f871711f}.auth-field-error{color:#dc2626;margin-top:2px;font-size:.78rem;font-weight:500}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field label{color:var(--text-soft);font-size:.8rem;font-weight:600}.auth-field input{width:100%;color:var(--text);background:var(--white);border:1.5px solid var(--border);border-radius:10px;outline:none;padding:11px 14px;font-family:inherit;font-size:.95rem;transition:border-color .18s,box-shadow .18s}.auth-field input::placeholder{color:var(--faint);font-weight:400}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b5bd617}.auth-password-wrap{position:relative}.auth-password-wrap input{padding-right:70px}.auth-password-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:color .18s,background .18s;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-password-icon{width:18px;height:18px}.auth-password-icon.is-hidden,.auth-password-toggle-text{display:none}.auth-password-toggle:hover,.auth-password-toggle:focus-visible{color:var(--text);outline:none}.auth-names{grid-template-columns:1fr 1fr;gap:12px;display:grid}.auth-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:4px;padding:13px;font-family:inherit;font-size:.95rem;font-weight:700;transition:background .18s}.auth-submit:hover{background:var(--accent-hover)}.auth-submit:active{opacity:.9}.auth-forgot{text-align:center;color:var(--muted);font-size:.85rem;text-decoration:none;transition:color .15s}.auth-forgot:hover{color:var(--text)}.auth-sep{color:var(--faint);align-items:center;gap:12px;font-size:.8rem;display:flex}.auth-sep:before,.auth-sep:after{content:"";background:var(--border);flex:1;height:1px}.auth-alt{flex-direction:column;align-items:center;gap:10px;display:flex}.auth-alt-text{color:var(--muted);font-size:.875rem}.auth-alt-btn{background:var(--white);width:100%;color:var(--text);border:1.5px solid var(--border);cursor:pointer;text-align:center;border-radius:10px;padding:12px;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:block}.auth-alt-btn:hover{background:var(--accent-light);border-color:#c4c4f4}@media (width<=480px){body{align-items:flex-start;padding:48px 16px 24px}}.auth-google-btn{background:var(--white);width:100%;color:var(--text);border:1.5px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:11px 16px;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.auth-google-btn svg{flex-shrink:0;width:18px;height:18px}.auth-google-btn:hover{background:var(--accent-light);border-color:#c4c4f4;box-shadow:0 1px 6px #00000012}.auth-error-msg{text-align:center;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 12px;font-size:.85rem}.auth-success-msg{text-align:center;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:8px 12px;font-size:.85rem}
