/* ================================================================
   DispatchDB — Mobile App Feel
   Touch targets, safe areas, momentum scrolling, reduced motion.
   ================================================================ */

a, button, select, input[type="submit"], input[type="button"],
.incident-card, .region-card, .county-card, .tab-item {
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(255,140,50,0.1);
}

.bottom-tab-bar, .site-header nav, button {
    -webkit-user-select: none;
    user-select: none;
}

@media (max-width: 768px) {
    .main-nav a,
    .main-nav button,
    .btn,
    .btn-sm,
    .pagination a,
    .footer-links a {
        min-height: 44px;
        min-width: 44px;
        display: inline-flex;
        align-items: center;
    }

    input, select, textarea {
        font-size: 16px !important;
    }

    .incident-list,
    .region-grid,
    .county-grid {
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }

    .incident-card:active,
    .region-card:active,
    .county-card:active {
        transform: scale(0.99);
        transition-duration: 0.1s;
    }

    .btn:active,
    .tab-item:active {
        transform: scale(0.97);
        transition-duration: 0.1s;
    }
}

@supports (padding: env(safe-area-inset-bottom)) {
    .site-header {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }

    .bottom-tab-bar {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }
}

.bottom-tab-bar,
.site-header {
    will-change: transform;
    transform: translateZ(0);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
