.avva-auth-shell { min-height: 100vh; margin: 0; }
.avva-auth-page { display: flex; flex-direction: column; gap: 2rem; margin: 0 auto; max-width: 480px; min-height: 100vh; padding: 2rem 1.25rem; }
.avva-brand { align-items: center; color: var(--avva-navy); display: inline-flex; gap: .7rem; text-decoration: none; width: fit-content; }
.avva-brand:hover { color: var(--avva-navy); text-decoration: none; }
.avva-brand-mark { align-items: center; background: linear-gradient(135deg, var(--avva-blue), var(--avva-purple)); border-radius: 12px; color: #fff; display: inline-flex; font-size: 1.4rem; font-weight: 800; height: 42px; justify-content: center; width: 42px; }
.avva-brand strong, .avva-brand small { display: block; line-height: 1.1; }
.avva-brand strong { font-size: 1.25rem; letter-spacing: .08em; }
.avva-brand small { color: var(--avva-gray); font-size: .52rem; font-weight: 700; letter-spacing: .08em; margin-top: .25rem; }
.avva-auth-card { margin: auto 0; }
.avva-auth-card h1 { font-size: clamp(1.75rem, 7vw, 2.4rem); line-height: 1.08; margin: 0 0 .75rem; }
.avva-auth-subtitle { color: var(--avva-gray); line-height: 1.55; margin: 0 0 1.75rem; }
.avva-field { display: block; margin-bottom: 1rem; }
.avva-field span { display: block; font-size: .875rem; font-weight: 700; margin-bottom: .45rem; }
.avva-password { position: relative; }
.avva-password .avva-input { padding-right: 4.5rem; }
.avva-password button { background: transparent; border: 0; color: var(--avva-blue); cursor: pointer; min-height: 44px; padding: .5rem; position: absolute; right: .25rem; top: 0; }
.avva-auth-submit { margin-top: .5rem; width: 100%; }
.avva-auth-links { display: flex; justify-content: center; margin-top: 1rem; }
.avva-auth-links a { color: var(--avva-blue); font-size: .9rem; font-weight: 700; }
.avva-error { background: #fff0f2; border: 1px solid #ffc6d0; border-radius: var(--avva-radius-sm); color: #a51d39; margin-bottom: 1rem; padding: .9rem 1rem; }
.avva-photo-preview { background: #dfe7f2; border-radius: var(--avva-radius-md); min-height: 220px; overflow: hidden; position: relative; }
.avva-photo-preview img { display: block; height: 100%; min-height: 220px; object-fit: cover; width: 100%; }
.avva-photo-help { color: var(--avva-gray); font-size: .9rem; line-height: 1.5; margin: 0 0 1.25rem; }
.avva-photo-input { margin: 1rem 0; }
.avva-input-error { border-color: #ffc6d0; }
.avva-input-error:focus { border-color: #a51d39; box-shadow: 0 0 0 3px rgba(165, 29, 57, .12); }
.avva-success { background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: var(--avva-radius-sm); color: #065f46; margin-bottom: 1rem; padding: .9rem 1rem; }
@media (min-width: 640px) { .avva-auth-page { padding: 3rem 1.5rem; } .avva-auth-card { padding: 2rem; } }
