/* Shared auth controls: pages, auth modal and profile settings. */
.tt-password { display: block; position: relative; width: 100%; min-width: 0; }
.tt-password > input { width: 100%; padding-right: 52px !important; }
.tt-password > input::-ms-reveal,
.tt-password > input::-ms-clear { display: none; }
.tt-password__toggle {
    position: absolute; inset: 0 4px 0 auto; display: grid; place-items: center;
    width: 44px; min-height: 44px; padding: 0; border: 0; background: transparent;
    color: #64748b; cursor: pointer; border-radius: 6px; font: inherit;
}
.tt-password__toggle:hover, .tt-password__toggle[aria-pressed="true"] { color: #c2410c; }
.tt-password__toggle:focus-visible { outline: 2px solid #f97316; outline-offset: -3px; }
.tt-password__toggle svg { width: 20px; height: 20px; pointer-events: none; }
.tt-password__toggle .tt-password__slash { display: none; }
.tt-password__toggle[aria-pressed="true"] .tt-password__slash { display: block; }
.tt-password-rules { display: grid; gap: 5px; margin: 9px 0 0; }
.tt-password-rules > .tt-password-rule {
    display: flex; align-items: start; gap: 7px; font: 500 12px/1.45 Inter, sans-serif;
    color: #64748b; letter-spacing: normal; text-transform: none;
}
.tt-password-rule::before { content: '○'; flex: 0 0 13px; text-align: center; font-weight: 700; }
.tt-password-rule[data-state="valid"] { color: #16704c; }
.tt-password-rule[data-state="valid"]::before { content: '✓'; }
.tt-password-rule[data-state="invalid"] { color: #be123c; }
.tt-password-rule[data-state="invalid"]::before { content: '×'; }
.tt-password-rule[data-state="checking"]::before { content: '…'; }
.tt-password-status, .auth-modal__field .tt-password-status {
    display: block; margin-top: 7px; font: 500 12px/1.45 Inter, sans-serif;
    letter-spacing: normal; text-transform: none; color: #64748b;
}
.tt-password-status[data-state="invalid"] { color: #be123c; }
.tt-password-status[data-state="valid"] { color: #16704c; }
.tt-password > input[aria-invalid="true"] { outline: 2px solid #e11d48; outline-offset: -1px; }
.auth-modal__grid:has(.tt-password-rules) { grid-template-columns: minmax(0, 1fr); }
.auth-consent {
    display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; row-gap: 4px;
    padding: 12px 14px; border: 1px solid #e5e7eb; border-radius: 12px;
    background: #fafaf9; text-align: left; font-family: inherit;
}
.auth-consent__label { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; cursor: pointer; }
.auth-consent__label > input[type="checkbox"] {
    flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin: 0;
    accent-color: #ff6a1a; cursor: pointer;
}
.auth-consent .auth-consent__label strong { font: 600 14px/1.4 Inter, sans-serif; color: #1f2937; }
.auth-consent__summary { grid-column: 2; font: 400 12px/1.45 Inter, sans-serif; color: #64748b; }
.auth-consent .auth-consent__open {
    grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: 5px;
    min-height: 32px; margin: 0; padding: 3px 0; border: 0; background: transparent;
    color: #b9470a; font: 600 12px/1.4 Inter, sans-serif; text-align: left; cursor: pointer;
}
.auth-consent__open:hover { text-decoration: underline; }
.auth-consent__open:focus-visible { outline: 2px solid #f97316; outline-offset: 3px; }
[data-theme="dark"] .auth-consent { background: #17232c; border-color: #344451; }
[data-theme="dark"] .auth-consent .auth-consent__label strong { color: #f1f5f9; }
[data-theme="dark"] .auth-consent__summary, [data-theme="dark"] .tt-password-rule { color: #cbd5e1; }
[data-theme="dark"] .tt-password-rule[data-state="valid"] { color: #6ee7b7; }
[data-theme="dark"] .tt-password-rule[data-state="invalid"] { color: #fda4af; }
