/* Shared interaction constraints. Page palettes, component widths and business states stay owned by their surfaces. */
:where(button, [role="button"], summary) {
    box-sizing: border-box;
    min-height: 44px !important;
    min-width: 44px !important;
    touch-action: manipulation;
}
:where(header a, nav a, footer a, a[class], .back-link, .back-btn, .back-button, .btn, .button, .action-btn, .mfa-resend-link) {
    display: inline-flex;
    align-items: center;
    min-height: 44px !important;
    min-width: 44px !important;
    box-sizing: border-box;
    touch-action: manipulation;
}
:where(label:has(input[type="checkbox"]), label:has(input[type="radio"])) {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
:where(label.checkbox-label) { min-height: 44px; display: inline-flex; align-items: center; }
:where(label.toggle-switch) { padding: 0; min-height: 44px; }
:where(label.toggle-switch) .toggle-slider { top: 8px; bottom: 8px; }
:where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}
:where(input[type="email"], input[type="tel"], input[type="url"]) {
    direction: ltr;
    unicode-bidi: plaintext;
}
:where(button):disabled { cursor: not-allowed; }
:where(input, textarea)::placeholder { color: #64748b; opacity: 1; }
:where([role="dialog"]) { overscroll-behavior: contain; }
:where([role="dialog"]) :where(.modal-content, .wizard-modal-content, .info-modal-content, .share-modal, .cardcom-modal-content) {
    position: relative;
    box-sizing: border-box;
}
@media (max-width: 768px), (pointer: coarse) {
    :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]), select, textarea) {
        font-size: 16px !important;
        min-height: 44px;
    }
    :where(button, [role="button"], summary, nav a, footer a, .back-link, .btn, .button, .action-btn) {
        min-height: 44px !important;
        min-width: 44px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    :where([role="dialog"]), :where([role="dialog"]) * {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
