/* Shared public forms: touch targets and readable fields without changing desktop layouts. */
:root { scroll-padding-bottom: 32px; }
:is(input, select, textarea, button, [tabindex]) { scroll-margin-block: 24px; }
:is(.upload-page, .registration-page, .auth-page, .privacy-page) { overflow-wrap: anywhere; }
@media (max-width: 680px) {
    :is(input, select, textarea):not([type=hidden]):not([type=checkbox]):not([type=radio]) {
        font-size: 16px;
        min-height: 44px;
    }
    :is(button, .button, .icon-button, .password-toggle) { min-height: 44px; }
    :is(.icon-button, .password-toggle) { min-width: 44px; }
    :is(input, textarea) { line-height: 1.5; }
    :is(.registration-page, .auth-page) header { flex-wrap: wrap; gap: 12px; }
    :is(.registration-page, .auth-page) :is(.login-link, footer a, .public-topbar > a:last-child) {
        display: inline-flex; align-items: center; min-height: 44px;
    }
    html[data-theme] .upload-page :is(.language-control select, .segment > span) { font-size: 14px; }
    html[data-theme] .upload-page .language-control select { font-size: 16px; }
    html[data-theme] .upload-page .text-button { font-size: 13px; }
    html[data-theme] .upload-page .sidebar .nav-link { font-size: 13px; min-height: 44px; }
    html[data-theme] .upload-page .segment > span { min-height: 48px; }
    html[data-theme] .upload-page .dialog-actions { flex-wrap: wrap; }
    .privacy-page .bar { flex-wrap: wrap; gap: 8px; }
    .privacy-page .back { white-space: normal; min-height: 44px; display: inline-flex; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
