.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-camera-card { max-width: 480px; width: 100%; }
.avva-camera-tutorial { background: #f4f7ff; border: 1px solid #dbe6ff; border-radius: var(--avva-radius-sm); color: var(--avva-charcoal); margin: 0 0 1rem; padding: 1rem 1.1rem; }
.avva-camera-tutorial h2 { color: var(--avva-navy); font-size: 1rem; margin: 0 0 .55rem; }
.avva-camera-tutorial ul { line-height: 1.5; margin: 0; padding-left: 1.1rem; }
.avva-camera-tutorial li + li { margin-top: .35rem; }
.avva-camera-orientation { color: var(--avva-gray); font-size: .9rem; line-height: 1.5; margin: 0 0 1rem; }
.avva-camera-preview { align-items: center; aspect-ratio: 4 / 3; background: #dfe7f2; border-radius: var(--avva-radius-md); display: flex; justify-content: center; min-height: 220px; overflow: hidden; position: relative; }
.avva-camera-preview video, .avva-camera-preview img { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.avva-camera-preview video { transform: scaleX(-1); }
.avva-camera-preview span { color: #52627a; padding: 1rem; position: relative; text-align: center; z-index: 1; }
.avva-camera-status { color: var(--avva-gray-dark); font-size: .875rem; line-height: 1.45; min-height: 1.45rem; }
.avva-camera-controls { display: grid; gap: .65rem; margin-top: 1rem; }
.avva-camera-controls .avva-btn { width: 100%; }
.avva-camera-fallback { margin-top: 1rem; }
.avva-camera-fallback .avva-field { margin-bottom: 0; }
.avva-camera-fallback input { min-height: 44px; }
.avva-camera-preview [hidden], .avva-camera-controls [hidden], .avva-camera-fallback[hidden] { display: none !important; }
.avva-photo-help { color: var(--avva-gray); font-size: .9rem; line-height: 1.5; margin: 0 0 1.25rem; }
.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; } }
@media (max-width: 400px) { .avva-auth-page { padding-left: .75rem; padding-right: .75rem; } .avva-card { padding: 1.25rem; } .avva-camera-preview { min-height: 0; } }
