/* Mobile-specific enhancements for Kayal Aqua */ /* Touch-friendly interactions */ @media (max-width: 767px) { /* Ensure all clickable elements meet minimum touch target size */ .btn, .nav-link, .form-control, input[type="checkbox"], input[type="radio"] { min-height: 44px; min-width: 44px; } /* Improve form usability on mobile */ .form-control { font-size: 16px; /* Prevents zoom on iOS */ padding: 0.75rem; } /* Stack form elements on mobile */ .form-row { flex-direction: column; } .form-row .col { width: 100%; margin-bottom: var(--space-md); } /* Mobile-specific table styling */ .table-mobile { border: 0; } .table-mobile thead { border: none; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .table-mobile tr { border-bottom: 3px solid var(--light-gray); display: block; margin-bottom: var(--space-md); background: var(--white); border-radius: var(--border-radius); padding: var(--space-md); box-shadow: var(--shadow-sm); } .table-mobile td { border: none; display: block; font-size: var(--font-size-sm); text-align: right; padding: var(--space-sm) 0; border-bottom: 1px solid #eee; } .table-mobile td:last-child { border-bottom: none; } .table-mobile td:before { content: attr(data-label) ": "; float: left; font-weight: bold; color: var(--primary-navy); } /* Mobile navigation improvements */ .mobile-nav-item { border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .mobile-nav-item:last-child { border-bottom: none; } /* Quick action buttons for mobile */ .mobile-quick-actions { position: fixed; bottom: 20px; right: 20px; z-index: 999; } .quick-action-btn { width: 56px; height: 56px; border-radius: 50%; background: var(--primary-yellow); color: var(--primary-navy); border: none; box-shadow: var(--shadow-lg); margin-bottom: var(--space-sm); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; cursor: pointer; transition: all 0.3s ease; } .quick-action-btn:hover { transform: scale(1.1); box-shadow: var(--shadow-lg); } /* Mobile-specific stats layout */ .stats-mobile { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); } .stat-card-mobile { padding: var(--space-md); text-align: center; } .stat-card-mobile .stat-value { font-size: var(--font-size-lg); } .stat-card-mobile .stat-label { font-size: 0.7rem; } /* Mobile form enhancements */ .mobile-form-group { position: relative; } .mobile-form-group .form-label { position: absolute; top: 50%; left: var(--space-md); transform: translateY(-50%); color: var(--gray); pointer-events: none; transition: all 0.3s ease; } .mobile-form-group .form-control:focus + .form-label, .mobile-form-group .form-control:not(:placeholder-shown) + .form-label { top: -8px; left: var(--space-sm); font-size: var(--font-size-xs); color: var(--primary-navy); background: var(--white); padding: 0 var(--space-xs); } /* Mobile card layouts */ .mobile-card-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-md); } .mobile-card { background: var(--white); border-radius: var(--border-radius); padding: var(--space-md); box-shadow: var(--shadow-sm); } .mobile-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-md); padding-bottom: var(--space-sm); border-bottom: 1px solid var(--light-gray); } .mobile-card-title { font-size: var(--font-size-base); font-weight: 600; color: var(--primary-navy); margin: 0; } .mobile-card-action { background: none; border: none; color: var(--primary-yellow); font-size: 1.2rem; cursor: pointer; padding: var(--space-xs); } /* Mobile-specific utility classes */ .mobile-only { display: block !important; } .desktop-only { display: none !important; } .mobile-center { text-align: center; } .mobile-hidden { display: none; } /* Swipe gestures for mobile tables */ .swipe-container { overflow-x: auto; -webkit-overflow-scrolling: touch; } .swipe-item { min-width: 280px; display: inline-block; vertical-align: top; } /* Mobile dropdown menus */ .mobile-dropdown { position: relative; } .mobile-dropdown-content { display: none; position: absolute; background: var(--white); min-width: 200px; box-shadow: var(--shadow-md); border-radius: var(--border-radius); z-index: 1000; top: 100%; right: 0; } .mobile-dropdown.active .mobile-dropdown-content { display: block; } .mobile-dropdown-item { display: block; padding: var(--space-md); color: var(--dark-gray); text-decoration: none; border-bottom: 1px solid var(--light-gray); } .mobile-dropdown-item:last-child { border-bottom: none; } .mobile-dropdown-item:hover { background: var(--light-gray); } /* Mobile pagination */ .mobile-pagination { display: flex; justify-content: center; margin-top: var(--space-lg); } .mobile-pagination .btn { margin: 0 var(--space-xs); padding: var(--space-sm); min-width: 40px; } /* Mobile search bar */ .mobile-search { position: relative; margin-bottom: var(--space-lg); } .mobile-search-input { width: 100%; padding: var(--space-md); padding-right: 50px; border: 2px solid var(--primary-yellow); border-radius: 25px; font-size: var(--font-size-base); } .mobile-search-btn { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: var(--primary-yellow); border: none; border-radius: 50%; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: var(--primary-navy); } /* Pull-to-refresh indicator */ .pull-refresh { text-align: center; padding: var(--space-lg); color: var(--gray); font-size: var(--font-size-sm); } /* Mobile-specific animations */ .mobile-slide-in { animation: slideInFromRight 0.3s ease; } @keyframes slideInFromRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .mobile-fade-in { animation: fadeIn 0.5s ease; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Bottom sheet for mobile */ .bottom-sheet { position: fixed; bottom: 0; left: 0; right: 0; background: var(--white); border-top-left-radius: 20px; border-top-right-radius: 20px; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1); transform: translateY(100%); transition: transform 0.3s ease; z-index: 1002; max-height: 80vh; overflow-y: auto; } .bottom-sheet.active { transform: translateY(0); } .bottom-sheet-handle { width: 40px; height: 4px; background: var(--gray); border-radius: 2px; margin: var(--space-md) auto var(--space-lg); } .bottom-sheet-content { padding: 0 var(--space-lg) var(--space-lg); } } /* Tablet-specific adjustments */ @media (min-width: 768px) and (max-width: 991px) { .mobile-only { display: none !important; } .tablet-cols-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); } .tablet-cols-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-md); } } /* Desktop view - hide mobile elements */ @media (min-width: 768px) { .mobile-only { display: none !important; } .desktop-only { display: block !important; } .mobile-quick-actions { display: none; } }