/* Shared password and support flows; existing Lamsa design tokens are authoritative. */
:root { --auth-space-xs: .35rem; --auth-space-sm: .75rem; --auth-space-md: 1rem; --auth-space-lg: 1.5rem; --auth-text-sm: .8125rem; --auth-text-md: .875rem; --auth-overlay: rgba(45, 58, 66, .65); --auth-success-bg: rgba(27, 94, 32, .08); --auth-error-bg: rgba(156, 29, 29, .08); }
.auth-stack { display: flex; flex-direction: column; gap: var(--auth-space-md); }
.auth-heading { text-align: center; margin-block-end: var(--auth-space-lg); }
.auth-heading h1 { font-size: 1.4rem; color: var(--foreground); }
.auth-heading p { margin-block-start: var(--auth-space-xs); font-size: var(--auth-text-md); line-height: 1.7; }
.auth-field-label { display: block; margin-block-end: var(--auth-space-xs); color: var(--secondary-foreground); font-size: var(--auth-text-md); font-weight: 600; }
.auth-help { font-size: var(--auth-text-sm); line-height: 1.7; color: var(--secondary-foreground); }
.auth-link { color: var(--secondary-foreground); font-size: var(--auth-text-sm); font-weight: 600; text-decoration: underline; }
.auth-alert { padding: var(--auth-space-sm) var(--auth-space-md); border-radius: var(--radius-sm); margin-block-end: var(--auth-space-md); font-size: var(--auth-text-sm); line-height: 1.7; overflow-wrap: anywhere; }
.auth-alert.is-error { background: var(--auth-error-bg); color: var(--color-danger) !important; }
.auth-alert.is-success { background: var(--auth-success-bg); color: var(--color-success) !important; }
.password-rules { list-style: none; display: grid; gap: var(--auth-space-xs); padding: 0; margin-block: var(--auth-space-sm); font-size: var(--auth-text-sm); color: var(--secondary-foreground); }
.password-rules li { display: flex; align-items: center; gap: var(--auth-space-xs); }
.password-rules li.is-valid { color: var(--color-success); }
.password-rules li.is-missing, body .card-sand p.password-limit { color: var(--color-danger) !important; }
.password-rule-icon { inline-size: 1.15rem; flex-shrink: 0; font-weight: 700; text-align: center; }
.password-limit { font-size: var(--auth-text-sm); line-height: 1.6; }
.auth-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: var(--auth-space-md); background: var(--auth-overlay); }
.auth-modal[hidden] { display: none !important; }
.auth-modal-card { inline-size: 100%; max-inline-size: 440px; max-block-size: calc(100dvh - 2rem); overflow-y: auto; box-shadow: var(--shadow-lift); }
.auth-modal-header { display: flex; align-items: center; justify-content: space-between; gap: var(--auth-space-sm); margin-block-end: var(--auth-space-md); }
.auth-modal-header h3 { font-size: 1.15rem; }
.auth-modal-close { border: 0; background: transparent; color: var(--secondary-foreground); font-size: 1.5rem; cursor: pointer; min-inline-size: 2.75rem; min-block-size: 2.75rem; }
.auth-checkbox { display: flex; align-items: flex-start; gap: var(--auth-space-sm); font-size: var(--auth-text-md); line-height: 1.7; }
.auth-checkbox input { margin-block-start: .3rem; accent-color: var(--secondary-foreground); inline-size: 1rem; block-size: 1rem; }
.bank-support-prompt { display: flex; align-items: center; justify-content: space-between; gap: var(--auth-space-sm); flex-wrap: wrap; border: 1px dashed var(--border-strong); border-radius: var(--radius-md); padding: var(--auth-space-md); margin-block-end: var(--auth-space-md); background: var(--secondary); }
.bank-support-prompt .btn-ink { background: var(--secondary-foreground); color: var(--secondary); inline-size: auto; min-block-size: 2.75rem; font-size: var(--auth-text-sm); }
.auth-result[hidden], .password-limit[hidden], .auth-alert[hidden] { display: none !important; }
.admin-reset-trigger { background: var(--secondary); color: var(--secondary-foreground); border: 1px solid var(--border-strong); border-radius: var(--radius-pill); padding: .4rem .75rem; font-size: .75rem; cursor: pointer; white-space: nowrap; }
@media (max-width: 480px) { .bank-support-prompt .btn-ink { inline-size: 100%; } .auth-modal-card { padding: var(--auth-space-md); } }

.password-input-wrap { position: relative; inline-size: 100%; }
.password-input-wrap input { padding-inline-end: 3.25rem !important; inline-size: 100%; }
.password-eye { position: absolute; inset-inline-end: .25rem; inset-block-start: 50%; transform: translateY(-50%); inline-size: 2.75rem; block-size: 2.75rem; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: var(--radius-sm); color: var(--secondary-foreground); cursor: pointer; }
.password-eye:focus-visible { outline: 2px solid var(--secondary-foreground); outline-offset: -3px; }
.password-eye .eye-slash { display: none; }
.password-eye[aria-pressed="true"] .eye-slash { display: block; }
