/* Responsive Design */

/* Tablet (768px and below) */
@media (max-width: 768px) {
    .navbar {
        flex-wrap: wrap;
        gap: var(--space-2);
    }

    .navbar-menu {
        order: 3;
        width: 100%;
        justify-content: center;
        gap: var(--space-2);
        padding-top: var(--space-2);
        border-top: 1px solid var(--border-color);
    }

    .menu-toggle {
        display: block;
    }

    .nav-links {
        display: none;
        order: 3;
        width: 100%;
        flex-direction: column;
        gap: var(--space-2);
        padding-top: var(--space-2);
        border-top: 1px solid var(--border-color);
    }

    .nav-links.open {
        display: flex;
    }

    .receipt-detail-grid {
        grid-template-columns: 1fr;
    }

    .receipt-image-panel {
        position: static;
    }

    .form-row {
        flex-direction: column;
        gap: var(--space-3);
    }

    .filter-row {
        flex-direction: column;
    }

    .filter-row .input {
        min-width: 100%;
    }

    .hero h1 {
        font-size: 1.75rem;
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    .hero-actions {
        flex-direction: column;
        align-items: center;
    }

    .stats-grid {
        grid-template-columns: 1fr;
    }

    .page-header {
        flex-wrap: wrap;
    }

    .page-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .upload-options {
        flex-direction: column;
    }

    .modal {
        width: 95%;
    }

    .doc-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    }

    .doc-stats-bar {
        flex-wrap: wrap;
        gap: var(--space-2);
    }

    .doc-stat {
        min-width: 80px;
    }

    .recent-grid {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    }

    .queue-item {
        flex-wrap: wrap;
        gap: var(--space-2);
    }

    .video-capture-modal {
        max-width: 95%;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-6);
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .footer-bottom-links {
        justify-content: center;
    }
}

/* Mobile (480px and below) */
@media (max-width: 480px) {
    .container {
        padding: 0 var(--space-3);
    }

    .navbar {
        padding: var(--space-2) var(--space-3);
    }

    .navbar-brand a {
        font-size: 1.1rem;
    }

    .nav-link {
        font-size: 0.8125rem;
        padding: var(--space-1) var(--space-2);
    }

    .main-content {
        padding: var(--space-4) 0;
    }

    .auth-card {
        padding: var(--space-6);
    }

    .stat-value {
        font-size: 1.5rem;
    }

    .table th,
    .table td {
        padding: var(--space-2) var(--space-3);
        font-size: 0.8125rem;
    }

    .drop-zone {
        padding: var(--space-6);
    }

    .doc-grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-3);
    }

    .doc-card-thumb,
    .doc-card-thumb-placeholder {
        height: 120px;
    }

    .doc-stats-bar {
        gap: var(--space-1);
        padding: var(--space-3);
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .doc-stat-value {
        font-size: 1.25rem;
    }

    .recent-grid {
        grid-template-columns: 1fr 1fr;
    }

    .export-card {
        padding: var(--space-6);
    }

    .section-header {
        flex-direction: column;
        gap: var(--space-3);
        align-items: flex-start;
    }
}

/* Desktop (1024px and above) */
@media (min-width: 1024px) {
    .feature-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Print styles */
@media print {
    .navbar,
    .filter-bar,
    .pagination,
    .page-actions,
    .btn,
    #toast-container {
        display: none !important;
    }

    .main-content {
        padding: 0;
    }

    .table-container {
        box-shadow: none;
    }

    .table th,
    .table td {
        border: 1px solid #ccc;
    }
}

/* ---- Mobile Capture CTA on Upload page ---- */
.mobile-capture-cta {
    text-align: center;
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--border-color);
}

.mobile-capture-link {
    font-size: 1.075rem;
    padding: var(--space-3) var(--space-8);
}

.mobile-capture-hint {
    margin-top: var(--space-2);
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* On desktop, de-emphasize the mobile capture CTA */
@media (min-width: 1024px) {
    .mobile-capture-cta {
        display: none;
    }
}
