/*
Theme Name: Avada Child
Description: Child theme for Avada theme with custom Rotaract District 7030 functionality
Author: ThemeFusion
Author URI: https://theme-fusion.com
Template: Avada
Version: 2.0.0
Text Domain: Avada
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

This child theme extends the Avada parent theme with custom features for:
- Gravity Forms integration
- GravityView customizations
- User management workflows
- Rotaract-specific form handling
- Beautiful mobile-responsive reports page styling
- Modern gradient UI with purple theme
*/

/* ========================================
   Table Styles - GravityView Tables
   ======================================== */

/**
 * General table layout
 * Ensures consistent table display across devices
 */
.gv-table-view {
    table-layout: auto;
    width: fit-content;
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    clear: both;
    margin: 1em auto 0;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.gv-table-view th,
.gv-table-view td {
    padding: 1em 0.75em;
    text-align: left;
    vertical-align: middle;
    border-bottom: 1px solid #f0f0f0;
}

.gv-table-view th {
    font-weight: 600;
    background: #f8f9fa;
    color: #333;
    text-transform: uppercase;
    font-size: 0.85em;
    letter-spacing: 0.5px;
    padding: 1.2em 0.75em;
    border-bottom: 2px solid #dee2e6;
}

.gv-table-view thead th:first-child {
    border-top-left-radius: 8px;
}

.gv-table-view thead th:last-child {
    border-top-right-radius: 8px;
}

.gv-table-view tbody tr {
    transition: all 0.3s ease;
}

.gv-table-view tbody tr:hover,
.gv-table-view tbody tr.alt:hover {
    background-color: #f8f9fa;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.gv-table-view tbody tr:last-child td {
    border-bottom: none;
}

.gv-table-view tbody tr.alt {
    background-color: #fafbfc;
}

/* Action column styling */
.gv-table-view .gv-field-action {
    text-align: center;
}

.gv-table-view .gv-field-action a,
.gv-table-view .gv-field-action i {
    display: inline-block;
    padding: 0.5em;
    margin: 0 0.25em;
    transition: all 0.2s ease;
    border-radius: 4px;
}

.gv-table-view .gv-field-action a:hover,
.gv-table-view .gv-field-action i:hover,
.approve-user:hover,
.block-user:hover {
    opacity: 0.7;
}

.gv-table-view .gv-field-action a:hover,
.gv-table-view .gv-field-action i:hover {
    background-color: #e9ecef;
    transform: scale(1.2);
}

/* Ensure table container clears floats */
.gv-table-container,
.gv-view-content {
    clear: both;
    width: 100%;
    overflow-x: auto;
    padding: 1em 0;
}

/* ========================================
   Responsive Table Styles
   ======================================== */

/**
 * Tablet-specific styles (medium screens)
 * Adjusts padding and font sizes for better tablet experience
 */
@media screen and (max-width: 991.98px) {
    .gv-table-view {
        font-size: 0.95em;
    }

    .gv-table-view th,
    .gv-table-view td {
        padding: 0.6em 0.5em;
    }

    /* Ensure action buttons are touch-friendly */
    .gv-table-view a,
    .gv-table-view button {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding: 0.5em 0.75em;
    }

    .gv-table-view i,
    .gv-table-view .fa {
        font-size: 1.2em;
        padding: 0.5em;
    }
}

/**
 * Mobile-specific styles for responsive behavior
 * Transforms table into stacked card layout on small screens
 */
@media screen and (max-width: 767.98px) {
    .gv-table-view thead,
    .gv-table-view tfoot {
        /* Hide table headers and footers on small screens */
        display: none;
    }

    .gv-table-view {
        border: 0;
        clear: both;
        margin-top: 2em;
        display: block;
        width: 100%;
    }

    .gv-table-view tbody {
        display: block;
        width: 100%;
    }

    /* Ensure table wrapper clears everything above */
    .gv-table-container {
        clear: both !important;
        margin-top: 1em;
        padding-top: 1em;
    }

    .gv-table-view tr {
        /* Treat each row as a block for card-style layout */
        display: block;
        position: relative;
        padding: 1.5em;
        margin-bottom: 1.5em;
        border: 1px solid #dee2e6;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
        transition: all 0.3s ease;
    }

    .gv-table-view tr:hover {
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
        transform: translateY(-2px);
    }

    .gv-table-view tr:first-of-type {
        border-top: none;
    }

    .gv-table-view tr td {
        /* Display table data as flex rows in mobile view */
        display: flex;
        align-items: flex-start;
        padding: 0.875em 0;
        border: 0;
        border-bottom: 1px solid rgba(224, 224, 224, 0.5);
        text-align: left;
    }

    .gv-table-view tr td:last-child {
        border-bottom: 0;
        padding-top: 1.2em;
    }

    .gv-table-view tr td:before {
        /* Display the column label before each cell's content */
        content: attr(data-label);
        font-weight: 600;
        flex: 0 0 40%;
        max-width: 40%;
        padding-right: 1em;
        color: #495057;
        word-wrap: break-word;
        font-size: 0.875em;
    }

    .gv-table-view tr td > * {
        flex: 1;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

    /* Better action button spacing on mobile */
    .gv-table-view .gv-field-action a {
        margin: 0 0.5em 0.5em 0;
        display: inline-block;
    }
}

/* ========================================
   User Approval Table Styles
   ======================================== */

/**
 * Styles for the user approval interface
 */
.approve-user,
.block-user {
    display: inline-block;
    margin: 0 0.25em;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.approve-user {
    color: #28a745 !important;
}

.block-user {
    color: #dc3545 !important;
}

/* Loading spinner for AJAX operations */
.loading-spinner {
    display: none;
    margin: 0 auto;
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-top: 4px solid #d81c5c;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ========================================
   Custom Scrollbar - Override Avada Theme Colors
   ======================================== */

/**
 * Override Avada's scrollbar CSS variables to match our theme color
 * This works with Avada's existing scrollbar styling
 */
html.awb-scroll {
    --scrollbar_handle: #d81c5c !important;
    --scrollbar_background: #f1f1f1 !important;
}

/* Hover effect for scrollbar thumb */
html.awb-scroll::-webkit-scrollbar-thumb:hover {
    background-color: #b91749 !important;
}

/* ========================================
   Accessibility Improvements
   ======================================== */

/**
 * Focus states for better keyboard navigation
 */
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid #d81c5c;
    outline-offset: 2px;
}

/* Screen reader only class */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ========================================
   Reports Page - Overall Styling
   ======================================== */

/**
 * Page background and container
 */
.gv-view-container,
.gv-container {
    background: #f5f7fa;
    padding: 2em;
    border-radius: 12px;
}

/* Loading state */
.gv-loading,
.gform_ajax_spinner {
    border: 3px solid #f3f3f3;
    border-top: 3px solid #d81c5c;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
}

/* Links styling */
.gv-view a:not(.gv-search-button):not(.gv-search-clear):not(.gv-widget-add-entry a):not(button) {
    color: #333;
    text-decoration: underline;
}

.gv-view a:not(.gv-search-button):not(.gv-search-clear):not(.gv-widget-add-entry a):not(button):hover {
    color: #000;
}

/* Empty state */
.gv-no-results,
.gv-empty-view {
    text-align: center;
    padding: 3em 2em;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    color: #6c757d;
    font-size: 1.1em;
}

.gv-no-results:before {
    content: "📋";
    display: block;
    font-size: 3em;
    margin-bottom: 0.5em;
    opacity: 0.5;
}

/* ========================================
   Mobile-Friendly Reports Page Styles
   ======================================== */

/**
 * GravityView header widgets (Add button, page size, etc.)
 */
@media screen and (max-width: 767.98px) {
    /* GravityView header area */
    .gv-widget-container,
    .gv-widgets-header,
    .gv-layout-header {
        display: flex !important;
        flex-direction: column;
        width: 100%;
        margin-bottom: 1.5em;
        clear: both;
    }

    /* Individual widgets in header */
    .gv-widget-container > *,
    .gv-widgets-header > *,
    .gv-layout-header > * {
        width: 100% !important;
        float: none !important;
        display: block;
        margin-bottom: 1em;
        clear: both;
    }

    /* Add Entry button */
    .gv-widget-add-entry,
    .gv-add-entry {
        width: 100% !important;
        margin-bottom: 1em;
    }

    .gv-widget-add-entry a,
    .gv-add-entry a {
        display: block;
        width: 100%;
        padding: 0.875em 1em;
        text-align: center;
        min-height: 48px;
        box-sizing: border-box;
    }

    /* Page size selector */
    .gv-widget-page-size,
    .gv-page-size {
        width: 100% !important;
        margin-bottom: 1em;
    }

    .gv-widget-page-size select,
    .gv-page-size select {
        width: 100%;
        padding: 0.75em;
        font-size: 16px;
        min-height: 48px;
    }

    .gv-widget-page-size label,
    .gv-page-size label {
        display: block;
        margin-bottom: 0.5em;
        font-weight: 600;
    }
}

/**
 * Page size selector - general styling
 */
select#gv-page_size {
    max-width: 100px;
    width: 100%;
}

/* ========================================
   Mobile Menu Toggle Button - Centered Icons
   ======================================== */

/**
 * Center hamburger and X icons inside the mobile menu button
 * Button stays on the right, icons are centered within
 * Hide on desktop, show only on tablet and mobile
 */
/* Hide hamburger menu on desktop */
@media screen and (min-width: 992px) {
    .awb-menu__m-toggle,
    .fusion-mobile-menu-icons {
        display: none !important;
    }
}

/* Show and style hamburger menu on tablet and mobile */
@media screen and (max-width: 991.98px) {
    .awb-menu__m-toggle,
    .awb-menu__m-toggle-inner {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
    }
}

/* Mobile/Tablet menu icon styling */
@media screen and (max-width: 991.98px) {
    /* Hide the text label that's pushing the icon off-center */
    .collapsed-nav-text {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
    }

    .awb-menu__m-collapse-icon {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .awb-menu__m-collapse-icon-open,
    .awb-menu__m-collapse-icon-close {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
    }

    .awb-menu__m-collapse-icon-open:before,
    .awb-menu__m-collapse-icon-close:before,
    .digital-menu:before,
    .digital-close:before {
        margin: 0 !important;
        padding: 0 !important;
        text-align: center !important;
        display: block !important;
    }
}

/**
 * Search filter widgets - unified box
 */
.gv-widget-search {
    background: #fff;
    padding: 1.25em;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    margin-bottom: 0.75em;
}

.gv-search-box,
.gv-search-form {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    margin: 0 !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    line-height: 1;
}

/* Section layout - clean and organized */
.gv-search-box > div,
.gv-search-box fieldset {
    border: none !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.gv-search-box > div {
    padding-bottom: 0.5em;
    margin-bottom: 0.65em;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.gv-search-box > div:nth-child(1) {
    margin-bottom: 0.85em;
}

.gv-search-box > div:last-child {
    margin-top: 0.25em;
    margin-bottom: 0;
}

.gv-search-box hr {
    display: none !important;
}

/* Radio buttons - modern styling */
.gv-search-box fieldset {
    padding-top: 0;
}

.gv-search-box fieldset legend {
    margin-right: 0.85em;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 0;
    color: #555;
}

.gv-search-box fieldset label {
    display: inline-flex;
    align-items: center;
    margin-right: 1.25em;
    font-weight: normal;
    font-size: 13px;
    min-width: auto !important;
    cursor: pointer;
    padding: 0.15em 0;
}

.gv-search-box fieldset label:hover {
    color: #333;
}

.gv-search-box input[type="radio"] {
    width: 18px;
    height: 18px;
    margin-right: 0.45em;
    cursor: pointer;
}

.gv-search-box input[type="radio"]:checked {
    accent-color: #d81c5c;
}

.gv-search-box input[type="radio"]:focus {
    outline: 2px solid #d81c5c;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(216, 28, 92, 0.2);
}

/* Filter fields - inline layout */
.gv-search-box .gv-search-field {
    display: inline-flex !important;
    align-items: center;
    margin-right: 1em;
    margin-bottom: 0;
}

/* Ensure all input wrappers are inline */
.gv-search-box > div > * {
    margin-bottom: 0;
}

/* Labels - better visual distinction */
.gv-search-box label {
    margin-right: 0.65em;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    color: #555;
}

/* Input fields - base styling */
.gv-search-box input[type="text"],
.gv-search-box input[type="search"],
.gv-search-box input[type="date"],
.gv-search-box select {
    height: 36px;
    padding: 0.45em 0.75em;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    display: inline-block !important;
    transition: all 0.2s ease;
    background: #fafafa;
    color: #333;
}

/* Date inputs - half width of search */
.gv-search-box input[type="date"],
.gv-search-box select {
    width: 210px !important;
}

/* Search entries - full width */
.gv-search-box input[type="text"],
.gv-search-box input[type="search"] {
    width: 420px !important;
}

/* Placeholder text */
.gv-search-box input::placeholder {
    color: var(--pagination-disabled-text);
    opacity: 1;
}

.gv-search-box input:hover,
.gv-search-box select:hover,
.gv-widget-add-entry a:hover {
    border-color: #bbb;
    background: #f5f5f5;
}

.gv-search-box input:focus,
.gv-search-box select:focus {
    border-color: #d81c5c;
    outline: none;
    box-shadow: 0 0 0 3px rgba(216, 28, 92, 0.15);
    background: #fff;
}

/* Buttons - match input height and modern styling */
.gv-search-box input[type="submit"],
.gv-search-box button {
    min-width: 95px !important;
    height: 36px !important;
    padding: 0.45em 1.2em !important;
    margin-right: 0.65em;
    margin-top: 0;
    border-radius: 4px;
    font-size: 13px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    cursor: pointer;
    display: inline-block !important;
    transition: all 0.15s ease;
    border: none;
}

.gv-search-box input[type="submit"]:hover,
.gv-search-box button:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.12);
    opacity: 0.95;
}

.gv-search-box input[type="submit"]:active,
.gv-search-box button:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Add Entry button */
.gv-widget-add-entry a {
    display: inline-block;
    padding: 0.5em 1em;
    border: 1px solid #ccc;
    background: #f5f5f5;
    color: #333;
    text-decoration: none;
    font-size: 14px;
    transition: all 0.2s ease;
}

/**
 * GravityView search and filter widgets - Mobile
 */
@media screen and (max-width: 767.98px) {
    /* Search box containers */
    .gv-search-box,
    .gv-widget-search,
    .gv-search-form {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-bottom: 1em;
        clear: both;
    }

    /* Make all filter fields full width on mobile */
    .gv-search-box .gv-search-field,
    .gv-search-box .gv-search-field-select,
    .gv-search-box .gv-search-field-text,
    .gv-search-box .gv-search-field-date {
        width: 100% !important;
        margin-right: 0;
        margin-bottom: 0.75em;
    }

    .gv-search-box input[type="text"],
    .gv-search-box input[type="search"],
    .gv-search-box input[type="email"],
    .gv-search-box input[type="date"],
    .gv-search-box select {
        width: 100% !important;
        height: 48px;
        padding: 0.5em;
        font-size: 16px; /* Prevents zoom on iOS */
        margin-bottom: 0.5em;
        box-sizing: border-box;
    }

    /* Search field labels */
    .gv-search-box label {
        display: block;
        width: 100%;
        margin-bottom: 0.5em;
        font-weight: 600;
    }

    /* Search button - Equal width on mobile */
    .gv-search-button,
    .gv-search-clear {
        width: calc(50% - 0.25em);
        height: 48px;
        padding: 0.5em;
        margin: 0.5em 0.25em 0.5em 0;
        font-size: 16px;
        display: inline-block;
        box-sizing: border-box;
    }
    
    .gv-search-clear {
        margin-right: 0;
    }

    /* Multi-column search forms */
    .gv-grid,
    .gv-search-horizontal {
        display: block !important;
    }

    .gv-grid > div,
    .gv-search-horizontal > div {
        width: 100% !important;
        float: none !important;
        margin-bottom: 1em;
    }
}

/**
 * Tab navigation for mobile
 */
@media screen and (max-width: 767.98px) {
    .tab-link,
    .fusion-tabs .fusion-tab-heading,
    .nav-tabs .nav-link {
        font-size: 14px;
        padding: 0.75em 0.5em;
        min-height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .fusion-tabs-nav,
    .nav-tabs {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .fusion-tabs-nav li,
    .nav-tabs .nav-item {
        flex: 1 1 auto;
        min-width: 120px;
        max-width: 100%;
    }
}

/* ========================================
   PAGINATION CONTROLS
   ========================================
   Beautiful, responsive pagination with the following features:
   - CSS custom properties for easy theming
   - Transparent container (no border box)
   - Centered layout with minimal spacing
   - Touch-friendly mobile design
   - Progressive enhancement for different screen sizes
   ======================================== */

:root {
    --pagination-primary-color: #d81c5c;
    --pagination-primary-dark: #b91749;
    --pagination-border-color: #e0e0e0;
    --pagination-text-color: #333;
    --pagination-disabled-bg: #f5f5f5;
    --pagination-disabled-text: #999;
}

.gv-pagination,
.pagination,
.fusion-pagination,
.gv-widget-pagination,
.gv-widget-page-links,
.page-numbers {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 0.5em auto;
    padding: 0.25em;
    clear: both;
    width: fit-content;
    max-width: 100%;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Ensure pagination wrapper containers are centered and transparent */
.gv-pagination-container,
.gv-footer-left,
.gv-footer-right,
.gv-layout-footer,
.gv-layout-footer .gv-widget-pagination,
.gv-footer .gv-widget-pagination {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Individual pagination button styles */
.gv-pagination a,
.gv-pagination span,
.pagination a,
.pagination span,
a.page-numbers,
span.page-numbers {
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    vertical-align: middle;
    background: #fff !important;
    border: 2px solid var(--pagination-border-color) !important;
    border-radius: 8px;
    color: var(--pagination-text-color);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95em;
    line-height: 1;
    margin: 0;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
    cursor: pointer;
}

/* Button hover state */

.gv-pagination a:hover,
.pagination a:hover,
a.page-numbers:hover {
    background: linear-gradient(145deg, #fff 0%, #f8f8f8 100%) !important;
    border-color: var(--pagination-primary-color) !important;
    color: var(--pagination-primary-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(216, 28, 92, 0.2) !important;
}

/* Button active state */
.gv-pagination a:active,
.pagination a:active,
a.page-numbers:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

/* Current page indicator */
.gv-pagination .current,
.gv-pagination span.current,
.pagination .current,
span.page-numbers.current {
    background: linear-gradient(145deg, var(--pagination-primary-color) 0%, var(--pagination-primary-dark) 100%) !important;
    color: #fff;
    border-color: var(--pagination-primary-color) !important;
    box-shadow: 0 4px 12px rgba(216, 28, 92, 0.3) !important;
    font-weight: 700;
    cursor: default;
}

/* Previous/Next navigation buttons */
.gv-pagination .prev,
.gv-pagination .next,
.pagination .prev,
.pagination .next,
.page-numbers.prev,
.page-numbers.next {
    font-weight: 700;
    padding: 0.6em 1.2em;
    background: linear-gradient(145deg, #f8f8f8 0%, #fff 100%) !important;
    border-color: #d0d0d0 !important;
}

.gv-pagination .prev:hover,
.gv-pagination .next:hover,
.pagination .prev:hover,
.pagination .next:hover,
.page-numbers.prev:hover,
.page-numbers.next:hover {
    background: linear-gradient(145deg, var(--pagination-primary-color) 0%, var(--pagination-primary-dark) 100%) !important;
    border-color: var(--pagination-primary-color) !important;
    color: #fff;
}

/* Ellipsis/dots indicator */
.gv-pagination .dots,
.pagination .dots,
span.page-numbers.dots {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--pagination-disabled-text);
    cursor: default;
    padding: 0.6em 0.4em;
    font-weight: 700;
}

/* Disabled pagination items */
.gv-pagination span:not(.current):not(.dots),
.pagination span:not(.current):not(.dots) {
    background: var(--pagination-disabled-bg) !important;
    border-color: var(--pagination-border-color) !important;
    color: var(--pagination-disabled-text);
    cursor: not-allowed;
}

/**
 * Responsive Pagination: Tablet (768px - 991px)
 * Slightly smaller buttons and reduced spacing
 */
@media screen and (max-width: 991.98px) {
    .gv-pagination,
    .pagination,
    .fusion-pagination {
        gap: 0.4em;
        padding: 0.25em;
        margin: 0.5em 0;
    }

    .gv-pagination a,
    .gv-pagination span,
    .pagination a,
    .pagination span,
    a.page-numbers,
    span.page-numbers {
        min-width: 40px;
        min-height: 40px;
        padding: 0.5em 0.75em;
        font-size: 0.9em;
    }

    .gv-pagination .prev,
    .gv-pagination .next,
    .pagination .prev,
    .pagination .next,
    .page-numbers.prev,
    .page-numbers.next {
        padding: 0.5em 1em;
    }
}

/**
 * Responsive Pagination: Mobile (480px - 767px)
 * Touch-friendly sizing with optimized spacing
 */
@media screen and (max-width: 767.98px) {
    .gv-pagination,
    .pagination,
    .fusion-pagination {
        gap: 0.35em;
        margin: 0.5em 0;
        padding: 0.25em;
    }

    .gv-pagination a,
    .gv-pagination span,
    .pagination a,
    .pagination span,
    a.page-numbers,
    span.page-numbers {
        min-width: 44px;
        min-height: 44px;
        padding: 0.5em 0.65em;
        font-size: 0.9em;
        border-radius: 6px;
    }

    .gv-pagination .prev,
    .gv-pagination .next,
    .pagination .prev,
    .pagination .next,
    .page-numbers.prev,
    .page-numbers.next {
        padding: 0.5em 0.85em;
        flex-shrink: 0;
    }

    /**
     * Extra Small Screens (< 480px)
     * Show only current page, prev/next, and dots
     */
    @media screen and (max-width: 479.98px) {
        .gv-pagination .page-numbers:not(.current):not(.prev):not(.next):not(.dots),
        .pagination .page-numbers:not(.current):not(.prev):not(.next):not(.dots) {
            display: none;
        }
        
        .gv-pagination .current,
        .gv-pagination .prev,
        .gv-pagination .next,
        .gv-pagination .dots,
        .pagination .current,
        .pagination .prev,
        .pagination .next,
        .pagination .dots,
        span.page-numbers.current,
        .page-numbers.prev,
        .page-numbers.next,
        span.page-numbers.dots {
            display: inline-flex;
        }

        .gv-pagination,
        .pagination,
        .fusion-pagination {
            gap: 0.25em;
            padding: 0.25em;
        }

        .gv-pagination a,
        .gv-pagination span,
        .pagination a,
        .pagination span,
        a.page-numbers,
        span.page-numbers {
            min-width: 42px;
            min-height: 42px;
            padding: 0.45em 0.6em;
            font-size: 0.85em;
        }
    }
}

/**
 * GravityView main layout structure
 */
@media screen and (max-width: 767.98px) {
    /* Ensure main view container displays properly */
    .gv-view,
    .gv-container,
    .gv-view-container {
        display: block;
        width: 100%;
    }

    /* Clear any floating elements */
    .gv-view::after,
    .gv-container::after,
    .gv-view-container::after {
        content: "";
        display: table;
        clear: both;
    }
}

/**
 * GravityView entry detail/single entry page
 */
@media screen and (max-width: 767.98px) {
    .gv-container,
    .gv-view-container {
        padding: 0.5em;
    }

    .gv-fields {
        display: block;
    }

    .gv-field-label {
        display: block;
        font-weight: 600;
        margin-bottom: 0.5em;
        color: #555;
    }

    .gv-field-value {
        display: block;
        margin-bottom: 1.5em;
        word-wrap: break-word;
    }

    /* Edit/Delete links */
    .gv-edit-entry-link,
    .gv-delete-entry-link {
        display: block;
        width: 100%;
        margin: 0.5em 0;
        padding: 0.875em;
        text-align: center;
        min-height: 48px;
    }
}

/**
 * Gravity Forms on mobile (embedded in reports page)
 */
@media screen and (max-width: 767.98px) {
    /* Form fields */
    .gform_wrapper input[type="text"],
    .gform_wrapper input[type="email"],
    .gform_wrapper input[type="tel"],
    .gform_wrapper input[type="url"],
    .gform_wrapper input[type="number"],
    .gform_wrapper textarea,
    .gform_wrapper select {
        width: 100% !important;
        font-size: 16px; /* Prevents zoom on iOS */
        padding: 0.75em;
        box-sizing: border-box;
    }

    /* Form labels */
    .gform_wrapper .gfield_label {
        font-size: 14px;
        margin-bottom: 0.5em;
    }

    /* Radio and checkboxes */
    .gform_wrapper .gfield_radio li,
    .gform_wrapper .gfield_checkbox li {
        margin-bottom: 0.75em;
    }

    .gform_wrapper .gfield_radio label,
    .gform_wrapper .gfield_checkbox label {
        padding-left: 0.5em;
        font-size: 14px;
    }

    /* Submit buttons */
    .gform_wrapper .gform_footer,
    .gform_wrapper .gform_page_footer {
        text-align: center;
        padding: 1em 0;
    }

    .gform_wrapper input[type="submit"],
    .gform_wrapper .gform_button,
    .gform_wrapper .gform_next_button,
    .gform_wrapper .gform_previous_button {
        width: 100%;
        max-width: 400px;
        padding: 0.875em 1em;
        font-size: 16px;
        margin: 0.5em 0;
    }

    /* Multi-column layouts */
    .gform_wrapper .gfield_list,
    .gform_wrapper .ginput_complex {
        display: block !important;
    }

    .gform_wrapper .gfield_list td,
    .gform_wrapper .ginput_complex span {
        display: block;
        width: 100% !important;
        margin-bottom: 0.5em;
    }

    /* Progress bar for multi-page forms */
    .gform_wrapper .gf_progressbar_wrapper {
        margin: 1em 0;
    }

    .gform_wrapper .gf_progressbar {
        height: 30px;
        font-size: 14px;
    }
}

/**
 * Modal/Lightbox improvements for mobile
 */
@media screen and (max-width: 767.98px) {
    .gv-lightbox,
    .gv-modal,
    .modal-dialog {
        width: 95% !important;
        max-width: 95% !important;
        margin: 1em auto;
    }

    .gv-lightbox-content,
    .modal-content {
        padding: 1em;
        max-height: 90vh;
        overflow-y: auto;
    }

    .gv-lightbox-close,
    .modal-close {
        font-size: 1.5em;
        padding: 0.5em;
        min-width: 44px;
        min-height: 44px;
    }
}

/**
 * Beautiful status messages and alerts
 */
.gv-notice,
.gform_confirmation_message,
.alert,
.fusion-alert {
    padding: 1.25em 1.5em;
    margin: 1.5em 0;
    border-radius: 8px;
    border-left: 4px solid;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    font-weight: 500;
}

.gv-notice.success,
.gform_confirmation_message,
.alert-success {
    border-left-color: #28a745;
    background: linear-gradient(145deg, #ffffff 0%, #f0f9f4 100%);
    color: #155724;
}

.gv-notice.error,
.alert-error,
.alert-danger {
    border-left-color: #dc3545;
    background: linear-gradient(145deg, #ffffff 0%, #fef5f5 100%);
    color: #721c24;
}

.gv-notice.info,
.alert-info {
    border-left-color: #17a2b8;
    background: linear-gradient(145deg, #ffffff 0%, #f0f8fa 100%);
    color: #0c5460;
}

.gv-notice.warning,
.alert-warning {
    border-left-color: #ffc107;
    background: linear-gradient(145deg, #ffffff 0%, #fffcf5 100%);
    color: #856404;
}

/**
 * Status messages and alerts for mobile
 */
@media screen and (max-width: 767.98px) {
    .gv-notice,
    .gform_confirmation_message,
    .alert,
    .fusion-alert {
        padding: 1em;
        font-size: 14px;
        margin: 1em 0;
        border-radius: 8px;
    }
}

/**
 * Tablet responsive styles (768px - 992px)
 */
@media screen and (max-width: 991.98px) {
    /* Filter box - proportional sizing for tablets */
    .gv-search-box input[type="text"],
    .gv-search-box input[type="search"] {
        width: 320px !important;
    }
    
    .gv-search-box input[type="date"],
    .gv-search-box select {
        width: 155px !important;
    }
    
    .gv-widget-search {
        padding: 0.85em 1em;
    }
    
    /* Mobile menu button sizing for tablet */
    .awb-menu__m-toggle {
        min-width: 50px !important;
        min-height: 50px !important;
        width: 50px !important;
        height: 50px !important;
    }
    
    .awb-menu__m-collapse-icon-open,
    .awb-menu__m-collapse-icon-close {
        font-size: 22px !important;
    }
}

/**
 * Mobile responsive styles (< 768px)
 */
@media screen and (max-width: 767.98px) {
    /* Filter box - full width stacked layout */
    .gv-search-box input[type="text"],
    .gv-search-box input[type="search"],
    .gv-search-box input[type="date"],
    .gv-search-box select {
        width: 100% !important;
        max-width: 100%;
    }
    
    .gv-search-box > div {
        flex-direction: column;
        align-items: stretch;
    }
    
    .gv-search-box .gv-search-field {
        width: 100%;
        margin-right: 0;
        margin-bottom: 0.75em;
    }
    
    .gv-search-box label {
        display: block;
        margin-bottom: 0.35em;
        margin-right: 0;
    }
    
    .gv-search-box fieldset {
        flex-direction: row;
    }
    
    .gv-search-box fieldset legend {
        display: block;
        width: 100%;
        margin-bottom: 0.5em;
    }
    
    .gv-search-box input[type="submit"],
    .gv-search-box button {
        width: 100% !important;
        min-width: 100% !important;
        margin-right: 0;
        margin-bottom: 0.5em;
    }
    
    .gv-widget-search {
        padding: 0.85em;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    
    /* Table content overflow */
    .gv-table-view td,
    .gv-field-value {
        word-break: break-word;
        overflow-wrap: break-word;
        hyphens: auto;
    }

    .gv-table-view img,
    .gv-field-value img {
        max-width: 100%;
        height: auto;
    }

    .gv-table-container {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* Touch targets and spacing - consolidated */
    a, button, 
    input[type="submit"], 
    input[type="button"], 
    .btn,
    .gform_wrapper input[type="submit"],
    .gform_wrapper .gform_button,
    .gform_wrapper .gform_next_button,
    .gform_wrapper .gform_previous_button {
        min-height: 44px;
        min-width: 44px;
        touch-action: manipulation;
    }
    
    /* Mobile menu button sizing */
    .awb-menu__m-toggle {
        min-width: 44px !important;
        min-height: 44px !important;
        width: 44px !important;
        height: 44px !important;
    }
    
    .awb-menu__m-collapse-icon-open,
    .awb-menu__m-collapse-icon-close {
        font-size: 20px !important;
    }

    .fusion-body .fusion-row {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* Responsive headings */
    h1 { font-size: 1.75em; }
    h2 { font-size: 1.5em; }
    h3 { font-size: 1.25em; }
    h4 { font-size: 1.1em; }
    h5 { font-size: 1em; }
    h6 { font-size: 0.9em; }

    /* Better line height for readability */
    body, p, li {
        line-height: 1.6;
    }

    /* Reduce excessive margins on mobile */
    .fusion-body .fusion-column-wrapper {
        padding-left: 10px;
        padding-right: 10px;
    }

    /* Stack columns on mobile */
    .fusion-body .fusion-columns {
        display: block;
    }

    .fusion-body .fusion-column {
        width: 100% !important;
        margin-bottom: 1em;
    }
}

/**
 * Very small screens (< 480px) - phones in portrait
 */
@media screen and (max-width: 479.98px) {
    /* Even more compact for small phones */
    body {
        font-size: 14px;
    }

    .gv-table-view tr {
        padding: 0.75em;
        margin-bottom: 1em;
    }

    .gv-table-view tr td {
        padding: 0.5em 0;
        font-size: 14px;
    }

    .gv-table-view tr td:before {
        font-size: 13px;
        flex: 0 0 45%;
        max-width: 45%;
    }

    /* Compact buttons */
    .gform_wrapper input[type="submit"],
    .gform_wrapper .gform_button {
        padding: 0.75em;
        font-size: 14px;
    }
    
    /* Search buttons maintain their styling from desktop */

    /* Reduce heading sizes further */
    h1 { font-size: 1.5em; }
    h2 { font-size: 1.35em; }
    h3 { font-size: 1.15em; }
}

/**
 * Landscape orientation optimizations
 */
@media screen and (max-width: 991.98px) and (orientation: landscape) {
    /* Make better use of horizontal space */
    .gv-table-view tr td:before {
        flex: 0 0 30%;
        max-width: 30%;
    }

    .gv-table-view tr {
        padding: 0.75em;
    }

    /* Two-column layout for forms in landscape */
    .gform_wrapper .gfield {
        width: 48% !important;
        display: inline-block;
        vertical-align: top;
        margin-right: 2%;
    }

    .gform_wrapper .gfield:nth-child(even) {
        margin-right: 0;
    }

    .gform_wrapper .gfield.gfield_contains_required,
    .gform_wrapper .gfield.large {
        width: 100% !important;
    }
}
