/* Mobile usability fixes */
* { box-sizing: border-box; max-width: 100%; }
html, body { overflow-x: hidden; width: 100%; -webkit-text-size-adjust: 100%; }
body { font-size: 16px; line-height: 1.5; }
img, video, iframe, table { max-width: 100%; height: auto; }

/* Tap target sizing (min 48x48px per Google) */
a, button, input[type="button"], input[type="submit"], .btn {
    min-height: 48px;
    min-width: 48px;
    padding: 12px 16px;
    display: inline-block;
    line-height: 1.4;
}

/* Adequate spacing between tap targets */
a + a, button + button, .nav-link { margin: 8px; }

/* Readable font sizes on mobile */
@media (max-width: 768px) {
    body { font-size: 16px; }
    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.5rem; }
    h3 { font-size: 1.25rem; }
    p, li, td { font-size: 16px; }
    input, select, textarea { font-size: 16px; } /* prevents iOS zoom */
    .container, .row, .col { width: 100%; padding-left: 15px; padding-right: 15px; margin-left: 0; margin-right: 0; }
    table { display: block; overflow-x: auto; }
}

@media (max-width: 480px) {
    .container { padding-left: 10px; padding-right: 10px; }
}