/* ============================================================
   NetAdmin - Responsive Styles
   ============================================================ */

/* Tablet (≤ bp-md) */
@media (max-width: var(--bp-md)) {
    .stats-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }

    .form-row {
        grid-template-columns: 1fr 1fr;
    }
}

/* Mobile (≤ bp-sm) */
@media (max-width: var(--bp-sm)) {
    /* Sidebar collapses off-screen */
    .sidebar {
        transform: translateX(-100%);
        z-index: 1000; /* Sidebar above header and content */
        box-shadow: none;
        width: 280px; /* Slightly wider on mobile for better visibility */
    }

    .sidebar.open {
        transform: translateX(0);
        box-shadow: 10px 0 30px rgba(0, 0, 0, 0.3);
    }

    .sidebar-close-btn {
        display: flex; /* Only show on mobile */
        align-items: center;
        justify-content: center;
        background: rgba(255, 255, 255, 0.1);
        border: none;
        color: white;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        cursor: pointer;
        transition: background var(--transition-fast);
        margin-left: auto;
    }

    .sidebar-close-btn:hover {
        background: rgba(255, 255, 255, 0.2);
    }

    .main-content { margin-left: 0 !important; }
    .sidebar-toggle {
        display: flex;
    }

    .top-header {
        padding: 0 var(--spacing-4);
        z-index: 900; /* Below sidebar menu on mobile */
    }

    .page-content { padding: var(--spacing-4); }
    .page-title { font-size: var(--font-size-lg); }

    /* Stats */
    .stats-grid {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
        gap: var(--spacing-3);
    }

    .stat-card {
        padding: var(--spacing-4);
    }

    .stat-value {
        font-size: var(--font-size-2xl);
    }

    /* Tables */
    .data-table thead th,
    .data-table tbody td {
        padding: var(--spacing-2) var(--spacing-3);
    }

    /* Toolbar */
    .page-toolbar { flex-direction: column; align-items: stretch; }
    .search-box { max-width: 100%; }
    .filter-grid { grid-template-columns: 1fr; }
    .filter-actions { width: 100%; }
    .filter-actions .btn { flex: 1; }

    /* Forms */
    .form-row {
        grid-template-columns: 1fr;
    }

    /* Cards */
    .card-header {
        padding: var(--spacing-4);
    }

    .card-body {
        padding: var(--spacing-4);
    }

    /* Auth */
    .auth-card {
        padding: var(--spacing-6);
    }

    /* Detail List */
    .detail-list {
        grid-template-columns: 1fr;
    }

    /* Modal */
    .modal {
        width: 95%;
    }
}

/* Small Mobile (≤ bp-xs) */
@media (max-width: var(--bp-xs)) {
    .stats-grid {
        grid-template-columns: 1fr 1fr;
    }

    .stat-icon {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    .table-actions {
        flex-direction: column;
        gap: 4px;
    }

    .pagination a,
    .pagination span {
        min-width: 32px;
        height: 32px;
        font-size: var(--font-size-xs);
    }
}

/* Sidebar overlay for mobile */
.sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(4px);
    z-index: 999; /* Below sidebar, above header */
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-base);
}

.sidebar-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* ============================================================
   Branch Index Header & Filter Bar Precision Response
   ============================================================ */
@media (max-width: 768px) {
    /* Step 1: Page Header (Title & Add Button) */
    .branch-page-header {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
        text-align: center !important;
        align-items: stretch !important;
    }

    .branch-page-header > div:first-child {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        display: flex !important;
    }

    .branch-page-header a.btn-primary {
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
    }

    /* Step 2: Filter Form (Search & Filters) */
    .branch-filter-form {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        grid-template-columns: 1fr !important; /* Force override of inline grid */
    }

    /* Expand all form elements to 100% and 44px+ height */
    .branch-filter-form .form-group,
    .branch-filter-form input,
    .branch-filter-form select,
    .branch-filter-form button {
        width: 100% !important;
        min-height: 48px !important; /* Standard safe touch target height */
        display: block !important;
    }

    /* Surgical target for Filter/Clear button footer stacking */
    .branch-filter-form > div:last-child {
        flex-direction: column !important;
        width: 100% !important;
        gap: 10px !important;
        display: flex !important;
    }

    /* Ensure every button in filters is a full-width touch target */
    .branch-filter-form .btn {
        width: 100% !important;
        min-height: 48px !important;
        justify-content: center !important;
    }

    /* Step 3: Data Tables & Card Containers */
    .table-wrapper {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        margin-bottom: var(--spacing-4);
        border: 1px solid var(--border-color);
        border-radius: var(--radius-md);
    }

    .data-table {
        min-width: 900px;
        white-space: nowrap;
    }

    .detail-list,
    .form-row {
        grid-template-columns: 1fr !important;
        gap: var(--spacing-2) !important;
    }

    /* Safe Touch Target Targets for common buttons/inputs */
    .btn, .form-control {
        min-height: 48px !important;
    }

    .btn-icon {
        width: 48px;
        height: 48px;
    }
}

/* Print styles */
@media print {
    .sidebar,
    .top-header,
    .sidebar-overlay,
    .page-toolbar .btn,
    .table-actions {
        display: none !important;
    }

    .main-content {
        margin-left: 0;
    }

    .page-content {
        padding: 0;
    }

    .card {
        box-shadow: none;
        border: 1px solid #ddd;
    }
}
