.tb-auth { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.tb-auth__main { flex: 1; display: grid; place-items: center; padding: 40px 20px; }
.tb-auth__card { width: min(100%, 440px); padding: 32px; background: var(--tb-color-surface); border: 1px solid var(--tb-color-border); border-radius: var(--tb-card-radius); box-shadow: var(--tb-shadow-card); }
.tb-auth__brand { display: flex; margin-bottom: 32px; font-size: 22px; }
.tb-auth__card h1 { margin: 0 0 12px; font-size: 26px; line-height: 1.25; letter-spacing: -.035em; }
.tb-auth__description { color: var(--tb-color-text-muted); margin: 0 0 28px; line-height: 1.5; }
.tb-auth__form { display: grid; gap: 20px; }
.tb-auth__form .tb-input { min-height: 44px; font-size: 16px; }
.tb-auth__form .tb-button { width: 100%; min-height: 44px; }
.tb-auth__remember { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 14px; cursor: pointer; }
.tb-auth__remember input { width: 18px; height: 18px; accent-color: var(--tb-color-primary); }
.tb-auth__error { margin-bottom: 24px; padding: 12px 16px; border-radius: var(--tb-radius-xs); background: var(--tb-color-danger-bg); color: var(--tb-color-danger-text); }
.tb-auth__recovery { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--tb-color-border); }
.tb-auth__recovery summary { color: var(--tb-color-primary); cursor: pointer; min-height: 44px; padding: 12px 0; font-size: 14px; }
.tb-auth__recovery .tb-auth__form { margin-top: 16px; }
@media (max-width: 480px) { .tb-auth__main { padding: 24px 16px; } .tb-auth__card { padding: 24px; } .tb-auth__brand { margin-bottom: 24px; } }
