/* ============================================================
   Article Reader - Supplemental styles (Bootstrap 5 base)
   ============================================================ */

/* iOS Safari: 100vh includes address bar, dvh doesn't */
body {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
}

main { flex: 1; }

/* Processing status pulse animation */
.status-pulse { animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .6; } }

/* Ensure audio player doesn't overflow on tiny screens */
audio { max-width: 100%; }

/* Mobile touch targets: ensure buttons are at least 44px tall */
@media (pointer: coarse) {
    .btn { min-height: 44px; }
    .btn-sm { min-height: 38px; }
    .form-check-input { width: 1.25em; height: 1.25em; }
}

/* Safe area padding for notched phones */
@supports (padding: env(safe-area-inset-bottom)) {
    .navbar { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
    footer { padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
}
