Add massive collection of CSS, JavaScript and theme assets that were previously excluded: **CSS Files (681 total):** - HVAC plugin-specific styles (hvac-*.css): 34 files including dashboard, certificates, registration, mobile nav, accessibility fixes, animations, and welcome popup - Theme framework files (Astra, builder systems, layouts): 200+ files - Plugin compatibility styles (WooCommerce, WPForms, Elementor, Contact Form 7): 150+ files - WordPress core and editor styles: 50+ files - Responsive and RTL language support: 200+ files **JavaScript Files (400+ total):** - HVAC plugin functionality (hvac-*.js): 27 files including menu systems, dashboard enhancements, profile sharing, mobile responsive features, accessibility, and animations - Framework and library files: jQuery plugins, GSAP, AOS, Swiper, Chart.js, Lottie, Isotope - Plugin compatibility scripts: WPForms, WooCommerce, Elementor, Contact Form 7, LifterLMS - WordPress core functionality: customizer, admin, block editor compatibility - Third-party integrations: Stripe, SMTP, analytics, search functionality **Assets:** - Certificate background images and logos - Comprehensive theme styling infrastructure - Mobile-responsive design systems - Cross-browser compatibility assets - Performance-optimized minified versions **Updated .gitignore:** - Fixed asset directory whitelisting patterns to properly include CSS/JS/images - Added proper directory structure recognition (!/assets/css/, !/assets/js/, etc.) - Maintains security by excluding sensitive files while including essential assets This commit provides the complete frontend infrastructure needed for: - Full theme functionality and styling - Plugin feature implementations - Mobile responsiveness and accessibility - Cross-browser compatibility - Performance optimization - Developer workflow support
		
			
				
	
	
		
			1001 lines
		
	
	
		
			No EOL
		
	
	
		
			26 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			1001 lines
		
	
	
		
			No EOL
		
	
	
		
			26 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
| /*
 | |
|  * HVAC Mobile Responsive Optimizations
 | |
|  * Comprehensive mobile-first responsive design improvements
 | |
|  * 
 | |
|  * Addresses critical mobile usability issues:
 | |
|  * - Non-responsive tables converted to card layouts
 | |
|  * - Touch-friendly interactions (44x44px minimum)
 | |
|  * - Improved form layouts and spacing
 | |
|  * - Enhanced navigation for mobile devices
 | |
|  * 
 | |
|  * @version 1.0.0
 | |
|  * @author HVAC Community Events Plugin
 | |
|  */
 | |
| 
 | |
| /* ====================================
 | |
|    CRITICAL MOBILE PADDING FIXES
 | |
|    ==================================== */
 | |
| 
 | |
| /* Fix cramped mobile layout - ensure minimum 20px padding on all sides */
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Global mobile container padding */
 | |
|     .hvac-page-wrapper,
 | |
|     .hvac-trainer-dashboard-page,
 | |
|     .hvac-trainer-profile-page,
 | |
|     .hvac-trainer-registration-page,
 | |
|     .hvac-community-login-wrapper,
 | |
|     .hvac-certificate-reports-page,
 | |
|     .hvac-generate-certificates-page,
 | |
|     .hvac-venue-page,
 | |
|     .hvac-organizer-page,
 | |
|     .hvac-training-leads-page {
 | |
|         padding-left: max(20px, env(safe-area-inset-left)) !important;
 | |
|         padding-right: max(20px, env(safe-area-inset-right)) !important;
 | |
|         box-sizing: border-box !important;
 | |
|     }
 | |
|     
 | |
|     /* Container elements that need proper mobile spacing */
 | |
|     .container,
 | |
|     .hvac-content,
 | |
|     .site-main,
 | |
|     #primary,
 | |
|     #main {
 | |
|         padding-left: max(20px, env(safe-area-inset-left)) !important;
 | |
|         padding-right: max(20px, env(safe-area-inset-right)) !important;
 | |
|         box-sizing: border-box !important;
 | |
|         width: 100% !important;
 | |
|         max-width: none !important;
 | |
|     }
 | |
|     
 | |
|     /* Override theme constraints that cause narrow content */
 | |
|     .ast-container,
 | |
|     .ast-single-post .entry-content,
 | |
|     .ast-page-content,
 | |
|     .entry-content {
 | |
|         padding-left: max(20px, env(safe-area-inset-left)) !important;
 | |
|         padding-right: max(20px, env(safe-area-inset-right)) !important;
 | |
|         margin-left: 0 !important;
 | |
|         margin-right: 0 !important;
 | |
|         width: 100% !important;
 | |
|         max-width: none !important;
 | |
|     }
 | |
|     
 | |
|     /* Plugin-specific content areas */
 | |
|     .hvac-dashboard-content,
 | |
|     .hvac-profile-content,
 | |
|     .hvac-certificate-content,
 | |
|     .hvac-venue-content,
 | |
|     .hvac-organizer-content,
 | |
|     .hvac-registration-content {
 | |
|         padding: 20px !important;
 | |
|         margin: 0 !important;
 | |
|         box-sizing: border-box !important;
 | |
|     }
 | |
|     
 | |
|     /* Cards and panels need internal padding while maintaining outer spacing */
 | |
|     .hvac-stat-card,
 | |
|     .hvac-event-card,
 | |
|     .hvac-profile-card,
 | |
|     .hvac-form-card {
 | |
|         margin-left: 10px !important;
 | |
|         margin-right: 10px !important;
 | |
|         padding: 15px !important;
 | |
|         box-sizing: border-box !important;
 | |
|     }
 | |
|     
 | |
|     /* Ensure form containers have proper spacing */
 | |
|     .hvac-form-container,
 | |
|     .hvac-registration-form-container {
 | |
|         padding: 20px !important;
 | |
|         margin: 0 !important;
 | |
|         box-sizing: border-box !important;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Extra small mobile devices need more conservative spacing */
 | |
| @media screen and (max-width: 375px) {
 | |
|     
 | |
|     /* Reduce padding slightly on very small screens but maintain minimum 15px */
 | |
|     .hvac-page-wrapper,
 | |
|     .hvac-trainer-dashboard-page,
 | |
|     .hvac-trainer-profile-page,
 | |
|     .hvac-trainer-registration-page {
 | |
|         padding-left: max(15px, env(safe-area-inset-left)) !important;
 | |
|         padding-right: max(15px, env(safe-area-inset-right)) !important;
 | |
|     }
 | |
|     
 | |
|     .container,
 | |
|     .hvac-content,
 | |
|     .site-main,
 | |
|     #primary,
 | |
|     #main {
 | |
|         padding-left: max(15px, env(safe-area-inset-left)) !important;
 | |
|         padding-right: max(15px, env(safe-area-inset-right)) !important;
 | |
|     }
 | |
|     
 | |
|     /* Smaller internal card padding on tiny screens */
 | |
|     .hvac-stat-card,
 | |
|     .hvac-event-card,
 | |
|     .hvac-profile-card {
 | |
|         margin-left: 5px !important;
 | |
|         margin-right: 5px !important;
 | |
|         padding: 12px !important;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    MOBILE-FIRST RESPONSIVE TABLES
 | |
|    ==================================== */
 | |
| 
 | |
| /* Dashboard Events Table - Mobile Card Layout */
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Hide table structure on mobile */
 | |
|     .hvac-events-table-wrapper .events-table,
 | |
|     .hvac-events-table-wrapper .events-table thead,
 | |
|     .hvac-events-table-wrapper .events-table tbody,
 | |
|     .hvac-events-table-wrapper .events-table th,
 | |
|     .hvac-events-table-wrapper .events-table td,
 | |
|     .hvac-events-table-wrapper .events-table tr {
 | |
|         display: block;
 | |
|     }
 | |
|     
 | |
|     /* Hide table headers on mobile */
 | |
|     .hvac-events-table-wrapper .events-table thead tr {
 | |
|         position: absolute;
 | |
|         top: -9999px;
 | |
|         left: -9999px;
 | |
|     }
 | |
|     
 | |
|     /* Style each table row as a card */
 | |
|     .hvac-events-table-wrapper .events-table tbody tr {
 | |
|         background: #fff;
 | |
|         border: 1px solid #e0e0e0;
 | |
|         border-radius: 8px;
 | |
|         margin-bottom: 15px;
 | |
|         padding: 15px;
 | |
|         position: relative;
 | |
|         box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
 | |
|     }
 | |
|     
 | |
|     /* Style table cells as stacked content */
 | |
|     .hvac-events-table-wrapper .events-table td {
 | |
|         border: none;
 | |
|         padding: 8px 0;
 | |
|         position: relative;
 | |
|         padding-left: 35% !important;
 | |
|         word-wrap: break-word;
 | |
|         hyphens: auto;
 | |
|     }
 | |
|     
 | |
|     /* Add labels to each cell using pseudo-elements */
 | |
|     .hvac-events-table-wrapper .events-table td:before {
 | |
|         content: attr(data-label) ": ";
 | |
|         position: absolute;
 | |
|         left: 6px;
 | |
|         width: 30%;
 | |
|         padding-right: 10px;
 | |
|         white-space: nowrap;
 | |
|         font-weight: 600;
 | |
|         color: #333;
 | |
|         text-align: left;
 | |
|     }
 | |
|     
 | |
|     /* Specific labels for each column */
 | |
|     .hvac-events-table-wrapper .events-table .column-status:before {
 | |
|         content: "Status";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-title:before {
 | |
|         content: "Event";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-date:before {
 | |
|         content: "Date";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-organizer:before {
 | |
|         content: "Organizer";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-capacity:before {
 | |
|         content: "Capacity";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-sold:before {
 | |
|         content: "Sold";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-revenue:before {
 | |
|         content: "Revenue";
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-actions:before {
 | |
|         content: "Actions";
 | |
|     }
 | |
|     
 | |
|     /* Make actions more touch-friendly */
 | |
|     .hvac-events-table-wrapper .events-table .column-actions {
 | |
|         padding-left: 10px !important;
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-actions a {
 | |
|         display: inline-block;
 | |
|         margin: 2px 5px;
 | |
|         padding: 8px 12px;
 | |
|         background: #0073aa;
 | |
|         color: white !important;
 | |
|         text-decoration: none;
 | |
|         border-radius: 4px;
 | |
|         min-height: 44px;
 | |
|         min-width: 60px;
 | |
|         text-align: center;
 | |
|         line-height: 1.4;
 | |
|         font-size: 14px;
 | |
|         box-sizing: border-box;
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table .column-actions a:hover {
 | |
|         background: #005a87;
 | |
|         color: white !important;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Certificate Reports Table - Mobile Card Layout */
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Certificate table responsive styling */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table thead,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table tbody,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table th,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table tr {
 | |
|         display: block;
 | |
|     }
 | |
|     
 | |
|     /* Hide certificate table headers */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table thead tr {
 | |
|         position: absolute;
 | |
|         top: -9999px;
 | |
|         left: -9999px;
 | |
|     }
 | |
|     
 | |
|     /* Certificate cards styling */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table tbody tr {
 | |
|         background: #fff;
 | |
|         border: 1px solid #e0e0e0;
 | |
|         border-radius: 8px;
 | |
|         margin-bottom: 15px;
 | |
|         padding: 15px;
 | |
|         position: relative;
 | |
|         box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
 | |
|     }
 | |
|     
 | |
|     /* Certificate table cells */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td {
 | |
|         border: none;
 | |
|         padding: 8px 0;
 | |
|         position: relative;
 | |
|         padding-left: 35% !important;
 | |
|     }
 | |
|     
 | |
|     /* Certificate labels */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td:before {
 | |
|         content: attr(data-label) ": ";
 | |
|         position: absolute;
 | |
|         left: 6px;
 | |
|         width: 30%;
 | |
|         padding-right: 10px;
 | |
|         white-space: nowrap;
 | |
|         font-weight: 600;
 | |
|         color: #333;
 | |
|     }
 | |
|     
 | |
|     /* Certificate action buttons */
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-actions button {
 | |
|         display: inline-block;
 | |
|         margin: 2px 5px;
 | |
|         padding: 8px 12px;
 | |
|         min-height: 44px;
 | |
|         min-width: 60px;
 | |
|         font-size: 14px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    REGISTRATION FORM MOBILE UX
 | |
|    ==================================== */
 | |
| 
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Registration form container improvements */
 | |
|     .hvac-trainer-registration-page .container,
 | |
|     .hvac-registration-form-container {
 | |
|         padding: 10px;
 | |
|         max-width: 100%;
 | |
|     }
 | |
|     
 | |
|     /* Form sections as collapsible cards */
 | |
|     .hvac-registration-section {
 | |
|         background: #fff;
 | |
|         border: 1px solid #e0e0e0;
 | |
|         border-radius: 8px;
 | |
|         margin-bottom: 20px;
 | |
|         overflow: hidden;
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section-header {
 | |
|         background: #f8f9fa;
 | |
|         padding: 15px 20px;
 | |
|         border-bottom: 1px solid #e0e0e0;
 | |
|         cursor: pointer;
 | |
|         display: flex;
 | |
|         justify-content: space-between;
 | |
|         align-items: center;
 | |
|         user-select: none;
 | |
|         -webkit-tap-highlight-color: transparent;
 | |
|         min-height: 44px;
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section-header h3 {
 | |
|         margin: 0;
 | |
|         font-size: 18px;
 | |
|         color: #333;
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section-toggle {
 | |
|         font-size: 20px;
 | |
|         color: #666;
 | |
|         transition: transform 0.2s ease;
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section.collapsed .hvac-registration-section-toggle {
 | |
|         transform: rotate(-90deg);
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section-content {
 | |
|         padding: 20px;
 | |
|         max-height: 2000px;
 | |
|         overflow: hidden;
 | |
|         transition: max-height 0.3s ease;
 | |
|     }
 | |
|     
 | |
|     .hvac-registration-section.collapsed .hvac-registration-section-content {
 | |
|         max-height: 0;
 | |
|         padding-top: 0;
 | |
|         padding-bottom: 0;
 | |
|     }
 | |
|     
 | |
|     /* Form fields mobile styling */
 | |
|     .hvac-form-field,
 | |
|     .hvac-registration-form .form-field {
 | |
|         margin-bottom: 20px;
 | |
|     }
 | |
|     
 | |
|     .hvac-form-field label,
 | |
|     .hvac-registration-form label {
 | |
|         display: block;
 | |
|         margin-bottom: 8px;
 | |
|         font-weight: 600;
 | |
|         color: #333;
 | |
|         font-size: 16px;
 | |
|     }
 | |
|     
 | |
|     .hvac-form-field input,
 | |
|     .hvac-form-field select,
 | |
|     .hvac-form-field textarea,
 | |
|     .hvac-registration-form input,
 | |
|     .hvac-registration-form select,
 | |
|     .hvac-registration-form textarea {
 | |
|         width: 100%;
 | |
|         padding: 12px 15px;
 | |
|         font-size: 16px; /* Prevent zoom on iOS */
 | |
|         border: 2px solid #e0e0e0;
 | |
|         border-radius: 6px;
 | |
|         background: #fff;
 | |
|         box-sizing: border-box;
 | |
|         min-height: 44px;
 | |
|         -webkit-appearance: none;
 | |
|         transition: border-color 0.2s ease;
 | |
|     }
 | |
|     
 | |
|     .hvac-form-field input:focus,
 | |
|     .hvac-form-field select:focus,
 | |
|     .hvac-form-field textarea:focus,
 | |
|     .hvac-registration-form input:focus,
 | |
|     .hvac-registration-form select:focus,
 | |
|     .hvac-registration-form textarea:focus {
 | |
|         outline: none;
 | |
|         border-color: #0073aa;
 | |
|         box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.1);
 | |
|     }
 | |
|     
 | |
|     /* File upload styling */
 | |
|     .hvac-form-field input[type="file"] {
 | |
|         padding: 10px;
 | |
|         background: #f8f9fa;
 | |
|     }
 | |
|     
 | |
|     /* Checkbox and radio improvements */
 | |
|     .hvac-form-field input[type="checkbox"],
 | |
|     .hvac-form-field input[type="radio"] {
 | |
|         width: auto;
 | |
|         margin-right: 10px;
 | |
|         min-height: 20px;
 | |
|         min-width: 20px;
 | |
|     }
 | |
|     
 | |
|     /* Multi-select checkboxes */
 | |
|     .hvac-checkbox-group {
 | |
|         display: flex;
 | |
|         flex-direction: column;
 | |
|         gap: 12px;
 | |
|     }
 | |
|     
 | |
|     .hvac-checkbox-item {
 | |
|         display: flex;
 | |
|         align-items: center;
 | |
|         padding: 12px;
 | |
|         background: #f8f9fa;
 | |
|         border-radius: 6px;
 | |
|         min-height: 44px;
 | |
|     }
 | |
|     
 | |
|     .hvac-checkbox-item label {
 | |
|         margin: 0 0 0 12px;
 | |
|         font-weight: normal;
 | |
|         cursor: pointer;
 | |
|         flex: 1;
 | |
|     }
 | |
|     
 | |
|     /* Submit button */
 | |
|     .hvac-form-submit,
 | |
|     .hvac-registration-form input[type="submit"],
 | |
|     .hvac-registration-form button[type="submit"] {
 | |
|         width: 100%;
 | |
|         padding: 15px 20px;
 | |
|         font-size: 18px;
 | |
|         font-weight: 600;
 | |
|         background: #0073aa;
 | |
|         color: white;
 | |
|         border: none;
 | |
|         border-radius: 6px;
 | |
|         cursor: pointer;
 | |
|         min-height: 52px;
 | |
|         margin-top: 20px;
 | |
|         transition: background-color 0.2s ease;
 | |
|         -webkit-tap-highlight-color: transparent;
 | |
|     }
 | |
|     
 | |
|     .hvac-form-submit:hover,
 | |
|     .hvac-registration-form input[type="submit"]:hover,
 | |
|     .hvac-registration-form button[type="submit"]:hover {
 | |
|         background: #005a87;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    MOBILE NAVIGATION ENHANCEMENTS
 | |
|    ==================================== */
 | |
| 
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Trainer navigation mobile improvements */
 | |
|     .hvac-trainer-navigation {
 | |
|         background: #fff;
 | |
|         border-bottom: 2px solid #e0e0e0;
 | |
|         padding: 0;
 | |
|         position: relative;
 | |
|     }
 | |
|     
 | |
|     /* Mobile menu toggle */
 | |
|     .hvac-mobile-menu-toggle {
 | |
|         display: block;
 | |
|         background: none;
 | |
|         border: none;
 | |
|         padding: 15px 20px;
 | |
|         font-size: 18px;
 | |
|         cursor: pointer;
 | |
|         width: 100%;
 | |
|         text-align: left;
 | |
|         color: #333;
 | |
|         min-height: 54px;
 | |
|         position: relative;
 | |
|         -webkit-tap-highlight-color: transparent;
 | |
|     }
 | |
|     
 | |
|     .hvac-mobile-menu-toggle:after {
 | |
|         content: "☰";
 | |
|         float: right;
 | |
|         font-size: 20px;
 | |
|         line-height: 1.2;
 | |
|     }
 | |
|     
 | |
|     .hvac-mobile-menu-toggle.active:after {
 | |
|         content: "✕";
 | |
|     }
 | |
|     
 | |
|     /* Navigation menu mobile layout */
 | |
|     .hvac-trainer-nav-menu {
 | |
|         display: none;
 | |
|         background: #fff;
 | |
|         border-top: 1px solid #e0e0e0;
 | |
|         position: absolute;
 | |
|         top: 100%;
 | |
|         left: 0;
 | |
|         right: 0;
 | |
|         z-index: 1000;
 | |
|         box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu.active {
 | |
|         display: block;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu ul {
 | |
|         list-style: none;
 | |
|         margin: 0;
 | |
|         padding: 0;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu > ul > li {
 | |
|         border-bottom: 1px solid #f0f0f0;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu a {
 | |
|         display: block;
 | |
|         padding: 15px 20px;
 | |
|         color: #333;
 | |
|         text-decoration: none;
 | |
|         font-size: 16px;
 | |
|         min-height: 54px;
 | |
|         line-height: 1.5;
 | |
|         box-sizing: border-box;
 | |
|         -webkit-tap-highlight-color: transparent;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu a:hover,
 | |
|     .hvac-trainer-nav-menu a:focus {
 | |
|         background: #f8f9fa;
 | |
|         color: #0073aa;
 | |
|     }
 | |
|     
 | |
|     /* Submenu styling */
 | |
|     .hvac-trainer-nav-menu .has-submenu > a:after {
 | |
|         content: "▸";
 | |
|         float: right;
 | |
|         transition: transform 0.2s ease;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu .has-submenu.active > a:after {
 | |
|         transform: rotate(90deg);
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu .submenu {
 | |
|         display: none;
 | |
|         background: #f8f9fa;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu .has-submenu.active .submenu {
 | |
|         display: block;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-menu .submenu a {
 | |
|         padding-left: 40px;
 | |
|         font-size: 15px;
 | |
|         color: #666;
 | |
|     }
 | |
|     
 | |
|     /* Help menu positioning */
 | |
|     .hvac-trainer-nav-help {
 | |
|         position: absolute;
 | |
|         top: 15px;
 | |
|         right: 20px;
 | |
|         z-index: 1001;
 | |
|     }
 | |
|     
 | |
|     .hvac-trainer-nav-help a {
 | |
|         display: block;
 | |
|         width: 44px;
 | |
|         height: 44px;
 | |
|         line-height: 44px;
 | |
|         text-align: center;
 | |
|         background: #0073aa;
 | |
|         color: white;
 | |
|         border-radius: 22px;
 | |
|         text-decoration: none;
 | |
|         font-size: 18px;
 | |
|         font-weight: bold;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    DASHBOARD STATS MOBILE LAYOUT
 | |
|    ==================================== */
 | |
| 
 | |
| @media screen and (max-width: 480px) {
 | |
|     
 | |
|     /* Single column layout on very small screens */
 | |
|     .hvac-stats-row {
 | |
|         flex-direction: column;
 | |
|         margin: 0;
 | |
|     }
 | |
|     
 | |
|     .hvac-stat-col {
 | |
|         padding: 5px 0;
 | |
|         min-width: 100%;
 | |
|         flex: none;
 | |
|     }
 | |
|     
 | |
|     .hvac-stat-card {
 | |
|         margin-bottom: 15px;
 | |
|         padding: 20px 15px;
 | |
|     }
 | |
|     
 | |
|     .hvac-stat-card .metric-value,
 | |
|     .hvac-stat-card p {
 | |
|         font-size: 28px;
 | |
|     }
 | |
|     
 | |
|     .hvac-stat-card h3 {
 | |
|         font-size: 16px;
 | |
|         margin-bottom: 10px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    FORM CONTROLS MOBILE LAYOUT
 | |
|    ==================================== */
 | |
| 
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Table controls responsive */
 | |
|     .hvac-table-controls {
 | |
|         flex-direction: column;
 | |
|         align-items: stretch;
 | |
|         padding: 15px;
 | |
|         gap: 15px;
 | |
|     }
 | |
|     
 | |
|     .hvac-search-box input,
 | |
|     .hvac-date-filters input,
 | |
|     .hvac-per-page select {
 | |
|         width: 100%;
 | |
|         padding: 12px 15px;
 | |
|         font-size: 16px;
 | |
|         border: 2px solid #e0e0e0;
 | |
|         border-radius: 6px;
 | |
|         min-height: 44px;
 | |
|         box-sizing: border-box;
 | |
|     }
 | |
|     
 | |
|     .hvac-date-filters {
 | |
|         display: flex;
 | |
|         flex-direction: column;
 | |
|         gap: 10px;
 | |
|     }
 | |
|     
 | |
|     .hvac-date-filters label {
 | |
|         font-weight: 600;
 | |
|         margin-bottom: 5px;
 | |
|     }
 | |
|     
 | |
|     /* Event filters mobile */
 | |
|     .hvac-event-filters {
 | |
|         flex-direction: column;
 | |
|         align-items: stretch;
 | |
|         gap: 10px;
 | |
|     }
 | |
|     
 | |
|     .hvac-event-filters span {
 | |
|         margin-bottom: 10px;
 | |
|     }
 | |
|     
 | |
|     .hvac-filter {
 | |
|         width: 100%;
 | |
|         text-align: center;
 | |
|         padding: 12px 15px !important;
 | |
|         margin: 2px 0 !important;
 | |
|         min-height: 44px;
 | |
|         box-sizing: border-box;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    MODAL AND POPUP MOBILE STYLES
 | |
|    ==================================== */
 | |
| 
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Modal responsive adjustments */
 | |
|     .hvac-modal,
 | |
|     .hvac-popup {
 | |
|         position: fixed;
 | |
|         top: 0;
 | |
|         left: 0;
 | |
|         right: 0;
 | |
|         bottom: 0;
 | |
|         max-width: none;
 | |
|         max-height: none;
 | |
|         border-radius: 0;
 | |
|         margin: 0;
 | |
|     }
 | |
|     
 | |
|     .hvac-modal-content,
 | |
|     .hvac-popup-content {
 | |
|         height: 100%;
 | |
|         overflow-y: auto;
 | |
|         padding: 20px;
 | |
|         box-sizing: border-box;
 | |
|     }
 | |
|     
 | |
|     .hvac-modal-header {
 | |
|         position: sticky;
 | |
|         top: 0;
 | |
|         background: #fff;
 | |
|         border-bottom: 1px solid #e0e0e0;
 | |
|         padding: 15px 0;
 | |
|         z-index: 10;
 | |
|     }
 | |
|     
 | |
|     .hvac-modal-close {
 | |
|         position: absolute;
 | |
|         top: 15px;
 | |
|         right: 15px;
 | |
|         width: 44px;
 | |
|         height: 44px;
 | |
|         line-height: 44px;
 | |
|         text-align: center;
 | |
|         font-size: 20px;
 | |
|         background: #f0f0f0;
 | |
|         border-radius: 22px;
 | |
|         text-decoration: none;
 | |
|         color: #333;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    ACCESSIBILITY IMPROVEMENTS
 | |
|    ==================================== */
 | |
| 
 | |
| /* Enhanced focus styles for mobile */
 | |
| @media screen and (max-width: 768px) {
 | |
|     
 | |
|     /* Larger focus indicators for touch devices */
 | |
|     *:focus {
 | |
|         outline: 3px solid #0073aa;
 | |
|         outline-offset: 2px;
 | |
|     }
 | |
|     
 | |
|     /* Button focus improvements */
 | |
|     .hvac-button:focus,
 | |
|     .hvac-form-submit:focus,
 | |
|     button:focus,
 | |
|     input[type="submit"]:focus {
 | |
|         outline: 3px solid #0073aa;
 | |
|         outline-offset: 3px;
 | |
|         box-shadow: 0 0 0 6px rgba(0, 115, 170, 0.2);
 | |
|     }
 | |
|     
 | |
|     /* Link focus improvements */
 | |
|     a:focus {
 | |
|         outline: 3px solid #0073aa;
 | |
|         outline-offset: 2px;
 | |
|         background-color: rgba(0, 115, 170, 0.1);
 | |
|         border-radius: 3px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    UTILITY CLASSES FOR MOBILE
 | |
|    ==================================== */
 | |
| 
 | |
| /* Touch-friendly sizing */
 | |
| .hvac-touch-target {
 | |
|     min-height: 44px;
 | |
|     min-width: 44px;
 | |
|     padding: 12px 15px;
 | |
|     box-sizing: border-box;
 | |
| }
 | |
| 
 | |
| /* Mobile-only visibility */
 | |
| .hvac-mobile-only {
 | |
|     display: none;
 | |
| }
 | |
| 
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-mobile-only {
 | |
|         display: block;
 | |
|     }
 | |
|     
 | |
|     .hvac-desktop-only {
 | |
|         display: none !important;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Text sizing for mobile */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-mobile-text-sm {
 | |
|         font-size: 14px;
 | |
|     }
 | |
|     
 | |
|     .hvac-mobile-text-base {
 | |
|         font-size: 16px;
 | |
|     }
 | |
|     
 | |
|     .hvac-mobile-text-lg {
 | |
|         font-size: 18px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Mobile spacing utilities */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-mobile-p-0 { padding: 0 !important; }
 | |
|     .hvac-mobile-p-1 { padding: 10px !important; }
 | |
|     .hvac-mobile-p-2 { padding: 20px !important; }
 | |
|     
 | |
|     .hvac-mobile-m-0 { margin: 0 !important; }
 | |
|     .hvac-mobile-m-1 { margin: 10px !important; }
 | |
|     .hvac-mobile-m-2 { margin: 20px !important; }
 | |
|     
 | |
|     .hvac-mobile-mb-0 { margin-bottom: 0 !important; }
 | |
|     .hvac-mobile-mb-1 { margin-bottom: 10px !important; }
 | |
|     .hvac-mobile-mb-2 { margin-bottom: 20px !important; }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    ADDITIONAL MOBILE FIXES
 | |
|    ==================================== */
 | |
| 
 | |
| /* Touch feedback styling */
 | |
| .hvac-touch-active {
 | |
|     opacity: 0.7;
 | |
|     transform: scale(0.98);
 | |
|     transition: opacity 0.1s ease, transform 0.1s ease;
 | |
| }
 | |
| 
 | |
| /* Prevent body scrolling when modal is open on mobile */
 | |
| body.hvac-modal-open {
 | |
|     overflow: hidden;
 | |
|     position: fixed;
 | |
|     width: 100%;
 | |
|     height: 100%;
 | |
| }
 | |
| 
 | |
| /* Swipe feedback for mobile modals */
 | |
| .hvac-swipe-feedback {
 | |
|     opacity: 0.8;
 | |
|     transition: opacity 0.2s ease;
 | |
| }
 | |
| 
 | |
| /* Horizontal scroll indicator for tables */
 | |
| .has-horizontal-scroll::after {
 | |
|     content: "← Scroll to see more →";
 | |
|     display: block;
 | |
|     text-align: center;
 | |
|     padding: 10px;
 | |
|     background: #f8f9fa;
 | |
|     color: #666;
 | |
|     font-size: 12px;
 | |
|     border-top: 1px solid #e0e0e0;
 | |
| }
 | |
| 
 | |
| /* Enhanced button sizing for mobile */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-button,
 | |
|     .hvac-form-submit,
 | |
|     button,
 | |
|     input[type="submit"],
 | |
|     input[type="button"] {
 | |
|         min-height: 48px;
 | |
|         font-size: 16px;
 | |
|         padding: 12px 16px;
 | |
|         border-radius: 6px;
 | |
|     }
 | |
|     
 | |
|     /* Ensure select dropdowns are large enough */
 | |
|     select {
 | |
|         min-height: 48px;
 | |
|         font-size: 16px;
 | |
|         padding: 10px 12px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Fix for iOS Safari form element styling */
 | |
| @supports (-webkit-appearance: none) {
 | |
|     input[type="text"],
 | |
|     input[type="email"],
 | |
|     input[type="password"],
 | |
|     input[type="url"],
 | |
|     input[type="tel"],
 | |
|     input[type="number"],
 | |
|     select,
 | |
|     textarea {
 | |
|         -webkit-appearance: none;
 | |
|         border-radius: 6px;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* WordPress admin bar mobile adjustments */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .admin-bar .hvac-page-wrapper {
 | |
|         padding-top: 20px; /* Account for mobile admin bar */
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Better handling of long content in mobile cards */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-events-table-wrapper .events-table td,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td {
 | |
|         word-break: break-word;
 | |
|         hyphens: auto;
 | |
|         -webkit-hyphens: auto;
 | |
|         -ms-hyphens: auto;
 | |
|     }
 | |
|     
 | |
|     /* Truncate very long URLs or content */
 | |
|     .hvac-events-table-wrapper .events-table .column-title a,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td a {
 | |
|         max-width: 200px;
 | |
|         display: inline-block;
 | |
|         white-space: nowrap;
 | |
|         overflow: hidden;
 | |
|         text-overflow: ellipsis;
 | |
|         vertical-align: middle;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* Improved focus handling for touch devices */
 | |
| @media screen and (max-width: 768px) {
 | |
|     .hvac-touch-device *:focus {
 | |
|         outline: 3px solid #0073aa;
 | |
|         outline-offset: 3px;
 | |
|     }
 | |
|     
 | |
|     /* Remove focus on tap for touch devices */
 | |
|     .hvac-touch-device button:focus:not(:focus-visible),
 | |
|     .hvac-touch-device input:focus:not(:focus-visible),
 | |
|     .hvac-touch-device select:focus:not(:focus-visible),
 | |
|     .hvac-touch-device textarea:focus:not(:focus-visible) {
 | |
|         outline: none;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /* ====================================
 | |
|    PRINT STYLES OPTIMIZATION
 | |
|    ==================================== */
 | |
| 
 | |
| @media print {
 | |
|     /* Hide mobile-specific elements when printing */
 | |
|     .hvac-mobile-menu-toggle,
 | |
|     .hvac-trainer-nav-help,
 | |
|     .hvac-mobile-only {
 | |
|         display: none !important;
 | |
|     }
 | |
|     
 | |
|     /* Restore table layout for printing */
 | |
|     .hvac-events-table-wrapper .events-table,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table {
 | |
|         display: table !important;
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table tr,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table tr {
 | |
|         display: table-row !important;
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table td,
 | |
|     .hvac-events-table-wrapper .events-table th,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table th {
 | |
|         display: table-cell !important;
 | |
|         padding: 5px !important;
 | |
|     }
 | |
|     
 | |
|     .hvac-events-table-wrapper .events-table td:before,
 | |
|     .hvac-certificate-table-wrapper .hvac-certificate-table td:before {
 | |
|         display: none !important;
 | |
|     }
 | |
| } |