html { font-size: 14px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }
body { display: flex; flex-direction: column; min-height: 100vh; }
main { flex: 1; }
.page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--bs-border-color); }
.page-header h1 { font-size: 1.5rem; margin: 0; }
.table-actions .btn { padding: 0.25rem 0.5rem; font-size: 0.8rem; }

/* App cards on dashboard */
.card.shadow-sm:hover { transform: translateY(-3px); box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important; }

/* Busy state for buttons/forms */
.btn-busy, form.busy button[type="submit"] {
    pointer-events: none;
    opacity: 0.7;
}
.btn-busy .fa-spinner { display: inline-block !important; }
