| @ -0,0 +1,954 @@ | |||
| // Mobile Utility Classes and Fixes | |||
| // This file contains mobile-specific utility classes and responsive fixes | |||
| // Mobile text utilities - Only hide theme labels on very small screens | |||
| @media (max-width: 480px) { | |||
| .theme-toggle .form-check-label { | |||
| display: none !important; | |||
| } | |||
| .theme-toggle { | |||
| padding: 0 6px !important; | |||
| height: 60px !important; // Match header height | |||
| justify-content: center !important; | |||
| min-height: 60px !important; | |||
| .form-check { | |||
| height: 100% !important; | |||
| .form-check-label { | |||
| font-size: 11px !important; // Slightly smaller for very small screens | |||
| font-weight: 500 !important; | |||
| i { | |||
| font-size: 14px !important; // Still reasonable for tiny screens | |||
| } | |||
| } | |||
| .form-check-input { | |||
| margin: 0 6px !important; | |||
| width: 38px !important; // Bigger than before but not huge for tiny screens | |||
| height: 22px !important; // Bigger than before but not huge for tiny screens | |||
| border-radius: 11px !important; | |||
| border-width: 2px !important; | |||
| } | |||
| } | |||
| } | |||
| // Very small screen adjustments | |||
| .d-none-xs { | |||
| display: none !important; | |||
| } | |||
| .fs-xs { | |||
| font-size: 10px !important; | |||
| } | |||
| .p-xs { | |||
| padding: 5px !important; | |||
| } | |||
| .m-xs { | |||
| margin: 5px !important; | |||
| } | |||
| } | |||
| // Mobile dropdown improvements | |||
| @media (max-width: 767px) { | |||
| .dropdown-menu { | |||
| // Ensure all dropdowns are mobile-friendly | |||
| &.show { | |||
| position: fixed !important; | |||
| top: 65px !important; | |||
| left: 5px !important; | |||
| right: 5px !important; | |||
| width: auto !important; | |||
| transform: none !important; | |||
| z-index: 1050; | |||
| max-height: calc(100vh - 85px); | |||
| overflow-y: auto; | |||
| } | |||
| } | |||
| // Mobile notification improvements | |||
| .notifications .dropdown-menu { | |||
| .scrollable { | |||
| max-height: 300px; | |||
| overflow-y: auto; | |||
| } | |||
| } | |||
| } | |||
| // Mobile header compact mode | |||
| @media (max-width: 991px) { | |||
| .header .nav-right > li > a { | |||
| padding: 0 6px !important; | |||
| } | |||
| .header .nav-left > li > a { | |||
| padding: 0 8px !important; | |||
| } | |||
| } | |||
| // Ultra-compact mode for very small screens | |||
| @media (max-width: 480px) { | |||
| .header .nav-right > li > a { | |||
| padding: 0 4px !important; | |||
| font-size: 14px !important; | |||
| } | |||
| .header .nav-left > li > a { | |||
| padding: 0 6px !important; | |||
| } | |||
| // Hide search on very small screens when not active | |||
| .search-box:not(.active) { | |||
| display: none !important; | |||
| } | |||
| } | |||
| // Mobile-specific spacing utilities | |||
| .mobile-compact { | |||
| @media (max-width: 767px) { | |||
| padding: 5px !important; | |||
| margin: 2px !important; | |||
| } | |||
| } | |||
| .mobile-hidden { | |||
| @media (max-width: 767px) { | |||
| display: none !important; | |||
| } | |||
| } | |||
| .mobile-only { | |||
| display: none !important; | |||
| @media (max-width: 767px) { | |||
| display: block !important; | |||
| } | |||
| } | |||
| // Prevent horizontal scroll on mobile | |||
| .mobile-no-scroll { | |||
| @media (max-width: 767px) { | |||
| overflow-x: hidden !important; | |||
| } | |||
| } | |||
| // COMPREHENSIVE Mobile Header Fixes | |||
| // Better layout, bigger icons, full-width search, and desktop fixes | |||
| // ============================================================================= | |||
| // DESKTOP FIXES - Remove top spacing issue | |||
| // ============================================================================= | |||
| @media screen and (min-width: 768px) { | |||
| .header { | |||
| margin-top: 0 !important; | |||
| top: 0 !important; | |||
| } | |||
| .page-container { | |||
| padding-top: 61px !important; // Standard header height + 1px border | |||
| } | |||
| .main-content { | |||
| margin-top: 0 !important; | |||
| padding-top: 20px !important; | |||
| } | |||
| // DESKTOP THEME TOGGLE - Make sure it's fully visible | |||
| .theme-toggle { | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| height: 65px !important; | |||
| padding: 0 15px !important; | |||
| .form-check { | |||
| margin: 0 !important; | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| .form-check-label { | |||
| color: var(--c-text-muted) !important; | |||
| font-size: 11px !important; | |||
| font-weight: 500 !important; | |||
| text-transform: uppercase !important; | |||
| letter-spacing: 0.5px !important; | |||
| display: inline !important; | |||
| i { | |||
| font-size: 12px !important; | |||
| } | |||
| } | |||
| .form-check-input { | |||
| width: 2.5rem !important; | |||
| height: 1.25rem !important; | |||
| background-color: var(--c-border) !important; | |||
| border: 1px solid var(--c-border) !important; | |||
| cursor: pointer !important; | |||
| margin: 0 8px !important; | |||
| &:checked { | |||
| background-color: var(--c-primary) !important; | |||
| border-color: var(--c-primary) !important; | |||
| } | |||
| &:focus { | |||
| box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--c-primary) 25%, transparent) !important; | |||
| border-color: var(--c-primary) !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // ============================================================================= | |||
| // HEADER NAVIGATION MOBILE FIXES - ENHANCED LAYOUT | |||
| // ============================================================================= | |||
| // Mobile header fixes with improved spacing and layout | |||
| @media screen and (max-width: 767px) { | |||
| // Force header to be fixed and proper height | |||
| .header { | |||
| position: fixed !important; | |||
| top: 0 !important; | |||
| left: 0 !important; | |||
| right: 0 !important; | |||
| z-index: 1000 !important; | |||
| width: 100% !important; | |||
| height: auto !important; | |||
| min-height: 60px !important; | |||
| padding: 0 !important; | |||
| margin: 0 !important; | |||
| margin-top: 0 !important; // Ensure no top margin on mobile | |||
| } | |||
| // Header container - IMPROVED EDGE-TO-EDGE LAYOUT | |||
| .header .header-container { | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| justify-content: space-between !important; | |||
| flex-wrap: nowrap !important; | |||
| padding: 8px 8px !important; // Reduced side padding for more space | |||
| height: auto !important; | |||
| min-height: 60px !important; | |||
| max-height: 60px !important; | |||
| overflow: visible !important; | |||
| gap: 12px !important; // Larger gap to push items apart | |||
| } | |||
| // LEFT SECTION: Logo + Hamburger + Search - PUSHED MORE LEFT | |||
| .header .nav-left { | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| flex: 1 1 auto !important; | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| float: none !important; | |||
| max-width: 65% !important; // Increased width | |||
| gap: 4px !important; // Tighter spacing between left items | |||
| justify-content: flex-start !important; // Push to left edge | |||
| // Logo first - positioned at far left | |||
| &::before { | |||
| content: "A" !important; | |||
| display: inline-flex !important; | |||
| align-items: center !important; | |||
| justify-content: center !important; | |||
| width: 32px !important; | |||
| height: 32px !important; | |||
| background: #007bff !important; | |||
| color: white !important; | |||
| border-radius: 6px !important; | |||
| font-weight: bold !important; | |||
| font-size: 18px !important; | |||
| flex-shrink: 0 !important; | |||
| order: -1 !important; | |||
| margin-right: 6px !important; // Small margin to separate from hamburger | |||
| } | |||
| > li { | |||
| display: inline-flex !important; | |||
| align-items: center !important; | |||
| margin: 0 !important; | |||
| float: none !important; | |||
| > a { | |||
| padding: 8px 6px !important; // Reduced padding for tighter spacing | |||
| margin: 0 !important; | |||
| min-height: auto !important; | |||
| line-height: 1 !important; | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| border-radius: 4px !important; | |||
| i { | |||
| font-size: 20px !important; | |||
| margin: 0 !important; | |||
| } | |||
| // Hover state for better UX | |||
| &:hover { | |||
| background: rgba(0, 0, 0, 0.05) !important; | |||
| } | |||
| } | |||
| // Sidebar toggle (hamburger) | |||
| &:first-child > a { | |||
| padding: 8px 6px !important; | |||
| i { | |||
| font-size: 22px !important; | |||
| } | |||
| } | |||
| // Search toggle | |||
| &.search-box > a { | |||
| padding: 8px 6px !important; | |||
| i { | |||
| font-size: 20px !important; | |||
| } | |||
| } | |||
| } | |||
| // FULL-WIDTH SEARCH BAR - CLEANER DESIGN | |||
| .search-input { | |||
| display: none !important; // Hidden by default | |||
| position: fixed !important; // Fixed positioning for full control | |||
| top: 60px !important; // Right below header | |||
| left: 0 !important; | |||
| right: 0 !important; | |||
| background: var(--c-bkg-card) !important; | |||
| border-bottom: 1px solid var(--c-border) !important; | |||
| padding: 15px 20px !important; // More padding for better appearance | |||
| z-index: 9999 !important; | |||
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; // Subtle shadow | |||
| &.active { | |||
| display: block !important; | |||
| } | |||
| input { | |||
| width: 100% !important; | |||
| padding: 12px 16px !important; // Better padding | |||
| font-size: 16px !important; | |||
| border: 1px solid var(--c-border) !important; | |||
| border-radius: 8px !important; // Rounded corners | |||
| background: var(--c-bkg-body) !important; | |||
| color: var(--c-text-base) !important; | |||
| margin: 0 !important; | |||
| outline: none !important; | |||
| &::placeholder { | |||
| color: var(--c-text-muted) !important; | |||
| } | |||
| &:focus { | |||
| outline: none !important; | |||
| border-color: var(--c-primary) !important; | |||
| box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25) !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // RIGHT SECTION: Notifications + Messages + Theme Toggle + Profile - PERFECT ALIGNMENT | |||
| .header .nav-right { | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| flex: 0 0 auto !important; | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| float: none !important; | |||
| flex-wrap: nowrap !important; | |||
| gap: 4px !important; // Consistent spacing | |||
| justify-content: flex-end !important; // Push to right edge | |||
| height: 60px !important; // Match header height exactly | |||
| > li { | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| justify-content: center !important; | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| float: none !important; | |||
| flex: 0 0 auto !important; | |||
| position: relative !important; | |||
| height: 60px !important; // Force exact height for all items | |||
| min-height: 60px !important; // Ensure minimum height | |||
| > a { | |||
| padding: 0 !important; // NO padding for perfect alignment | |||
| margin: 0 !important; | |||
| width: 44px !important; // Fixed width for all nav items | |||
| height: 44px !important; // Fixed height for all nav items | |||
| line-height: 1 !important; | |||
| display: flex !important; | |||
| align-items: center !important; // Perfect vertical centering | |||
| justify-content: center !important; // Perfect horizontal centering | |||
| position: relative !important; | |||
| border-radius: 50% !important; // Circular touch targets | |||
| background: transparent !important; | |||
| transition: all 0.2s ease !important; // Smooth transitions | |||
| i { | |||
| font-size: 20px !important; // Consistent icon size for all nav items | |||
| margin: 0 !important; | |||
| display: block !important; | |||
| line-height: 1 !important; | |||
| text-align: center !important; | |||
| } | |||
| // Hide text content, keep only icons | |||
| span:not(.counter) { | |||
| display: none !important; | |||
| } | |||
| // Hide user avatar text | |||
| .peer:last-child { | |||
| display: none !important; | |||
| } | |||
| // Hover state - subtle and theme-consistent | |||
| &:hover { | |||
| background: var(--c-grey-100) !important; | |||
| transform: scale(1.05) !important; | |||
| transition: all 0.2s ease !important; | |||
| } | |||
| } | |||
| // User dropdown - special styling for avatar | |||
| &:last-child > a { | |||
| .peer { | |||
| &:first-child { | |||
| margin-right: 0 !important; | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| justify-content: center !important; | |||
| } | |||
| img { | |||
| width: 36px !important; | |||
| height: 36px !important; | |||
| max-width: 36px !important; | |||
| max-height: 36px !important; | |||
| border-radius: 50% !important; | |||
| object-fit: cover !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // NOTIFICATION COUNTERS - CORRECTLY ANCHORED | |||
| > li { | |||
| position: relative !important; // This is the anchor | |||
| .counter { | |||
| position: absolute !important; | |||
| top: 10px !important; | |||
| right: 10px !important; | |||
| z-index: 10 !important; | |||
| // The design of the counter itself is inherited | |||
| } | |||
| } | |||
| // Theme toggle - perfectly aligned with other nav icons | |||
| .theme-toggle { | |||
| padding: 0 !important; | |||
| display: flex !important; | |||
| align-items: center !important; | |||
| justify-content: center !important; | |||
| height: 60px !important; // Match header height exactly | |||
| min-height: 60px !important; // Force exact height | |||
| width: 44px !important; // Same width as other nav items | |||
| .form-check { | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| align-items: center !important; | |||
| justify-content: center !important; | |||
| display: flex !important; | |||
| height: 44px !important; // Same height as other nav items | |||
| width: 44px !important; // Same width as other nav items | |||
| border-radius: 50% !important; // Match other nav items | |||
| position: relative !important; | |||
| .form-check-label { | |||
| display: none !important; // Hide labels on mobile for consistency | |||
| } | |||
| .form-check-input { | |||
| width: 28px !important; // Smaller switch to fit in circular area | |||
| height: 16px !important; // Smaller switch to fit in circular area | |||
| margin: 0 !important; // No margin for perfect centering | |||
| flex-shrink: 0 !important; | |||
| border-radius: 8px !important; // Proportional border radius | |||
| border-width: 1px !important; // Standard border | |||
| position: absolute !important; | |||
| top: 50% !important; | |||
| left: 50% !important; | |||
| transform: translate(-50%, -50%) !important; // Perfect centering | |||
| } | |||
| // Hover state to match other nav items | |||
| &:hover { | |||
| background: var(--c-grey-100) !important; | |||
| transform: scale(1.05) !important; | |||
| transition: all 0.2s ease !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // Full-screen mobile dropdowns | |||
| .header .nav-right .dropdown-menu { | |||
| position: fixed !important; | |||
| top: 60px !important; | |||
| left: 0 !important; | |||
| right: 0 !important; | |||
| bottom: 0 !important; | |||
| width: 100vw !important; | |||
| height: calc(100vh - 60px) !important; | |||
| max-width: none !important; | |||
| min-width: auto !important; | |||
| transform: none !important; | |||
| border-radius: 0 !important; | |||
| z-index: 9999 !important; | |||
| overflow-y: auto !important; | |||
| border: none !important; | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| // Mobile close button | |||
| &::before { | |||
| content: "✕ Close" !important; | |||
| position: sticky !important; | |||
| top: 0 !important; | |||
| display: block !important; | |||
| background: var(--c-primary) !important; | |||
| color: white !important; | |||
| text-align: center !important; | |||
| padding: 15px !important; | |||
| cursor: pointer !important; | |||
| font-weight: bold !important; | |||
| z-index: 10000 !important; | |||
| font-size: 16px !important; | |||
| } | |||
| // UNIFIED EMAIL/NOTIFICATION MOBILE LAYOUT | |||
| .peers { | |||
| padding: 15px 20px !important; | |||
| flex-wrap: wrap !important; | |||
| align-items: flex-start !important; | |||
| .peer { | |||
| max-width: 100% !important; | |||
| img { | |||
| width: 40px !important; | |||
| height: 40px !important; | |||
| margin-right: 12px !important; | |||
| flex-shrink: 0 !important; | |||
| } | |||
| &.peer-greed { | |||
| flex: 1 !important; | |||
| min-width: 0 !important; | |||
| // NOTIFICATIONS STYLE - Direct content (span > fw-500 + c-grey-600, then p > small) | |||
| > span { | |||
| display: block !important; | |||
| margin-bottom: 4px !important; | |||
| .fw-500 { | |||
| font-size: 14px !important; | |||
| font-weight: 600 !important; | |||
| margin: 0 !important; | |||
| color: var(--c-text-base) !important; | |||
| display: inline !important; | |||
| } | |||
| .c-grey-600 { | |||
| font-size: 13px !important; | |||
| color: var(--c-text-muted) !important; | |||
| line-height: 1.4 !important; | |||
| display: inline !important; | |||
| } | |||
| } | |||
| > p { | |||
| margin: 0 !important; | |||
| small { | |||
| font-size: 12px !important; | |||
| color: var(--c-text-muted) !important; | |||
| } | |||
| } | |||
| // EMAILS STYLE - Match notifications exactly | |||
| > div { | |||
| // Completely restructure emails to match notification layout | |||
| display: block !important; | |||
| .peers { | |||
| display: inline !important; // Make name and action on same line | |||
| margin: 0 !important; | |||
| .peer { | |||
| &:first-child { | |||
| // Name section | |||
| p { | |||
| font-size: 14px !important; | |||
| font-weight: 600 !important; | |||
| margin: 0 !important; | |||
| color: var(--c-text-base) !important; | |||
| display: inline !important; | |||
| } | |||
| // Add action text after name | |||
| &::after { | |||
| content: " sent you a message" !important; | |||
| font-size: 13px !important; | |||
| color: var(--c-text-muted) !important; | |||
| font-weight: normal !important; | |||
| } | |||
| } | |||
| &:last-child { | |||
| // Move timestamp to its own line below (like notifications) | |||
| display: block !important; | |||
| margin-top: 2px !important; | |||
| small { | |||
| font-size: 12px !important; | |||
| color: var(--c-text-muted) !important; | |||
| display: block !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // Hide the email preview text completely to match notifications | |||
| > .c-grey-600, | |||
| .c-grey-600.fsz-sm { | |||
| display: none !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // Header items in dropdown | |||
| .pX-20 { | |||
| padding-left: 20px !important; | |||
| padding-right: 20px !important; | |||
| .fw-600 { | |||
| font-size: 16px !important; | |||
| font-weight: 600 !important; | |||
| } | |||
| } | |||
| // Footer links in dropdown | |||
| .ta-c { | |||
| padding: 15px 20px !important; | |||
| a { | |||
| font-size: 14px !important; | |||
| font-weight: 500 !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // Extra small screens - refined adjustments | |||
| @media screen and (max-width: 479px) { | |||
| .header .header-container { | |||
| padding: 8px 5px !important; // Even less padding for tiny screens | |||
| gap: 8px !important; | |||
| } | |||
| .header .nav-left { | |||
| max-width: 60% !important; | |||
| gap: 2px !important; // Even tighter spacing | |||
| &::before { | |||
| width: 28px !important; | |||
| height: 28px !important; | |||
| font-size: 16px !important; | |||
| margin-right: 4px !important; | |||
| } | |||
| > li > a { | |||
| padding: 8px 4px !important; | |||
| i { | |||
| font-size: 18px !important; | |||
| } | |||
| } | |||
| } | |||
| .header .nav-right { | |||
| gap: 1px !important; // Minimal spacing | |||
| > li > a { | |||
| padding: 8px 4px !important; | |||
| i { | |||
| font-size: 18px !important; // Slightly smaller for tiny screens | |||
| } | |||
| } | |||
| .theme-toggle .form-check-input { | |||
| width: 28px !important; | |||
| height: 16px !important; | |||
| } | |||
| } | |||
| // Full-width search bar on tiny screens | |||
| .header .nav-left .search-input { | |||
| padding: 12px 15px !important; | |||
| input { | |||
| padding: 10px 12px !important; | |||
| font-size: 16px !important; // Prevent zoom on iOS | |||
| } | |||
| } | |||
| } | |||
| // ============================================================================= | |||
| // FOOTER OVERLAP FIXES - MAINTAINING PREVIOUS FIXES | |||
| // ============================================================================= | |||
| // Global layout fixes | |||
| html, body { | |||
| height: 100% !important; | |||
| margin: 0 !important; | |||
| padding: 0 !important; | |||
| overflow-x: hidden !important; | |||
| } | |||
| // Page container - force flexbox layout | |||
| .page-container { | |||
| display: flex !important; | |||
| flex-direction: column !important; | |||
| min-height: 100vh !important; | |||
| margin: 0 !important; | |||
| padding-top: 60px !important; | |||
| } | |||
| // Main content - flexible | |||
| .main-content { | |||
| flex: 1 0 auto !important; | |||
| padding: 20px 10px 40px !important; | |||
| margin: 0 !important; | |||
| min-height: 0 !important; | |||
| overflow-x: hidden !important; | |||
| } | |||
| // Footer - fixed to bottom | |||
| footer { | |||
| flex: 0 0 auto !important; | |||
| margin-top: auto !important; | |||
| padding: 15px 10px !important; | |||
| background: var(--c-bkg-card) !important; | |||
| border-top: 1px solid var(--c-border) !important; | |||
| text-align: center !important; | |||
| font-size: 11px !important; | |||
| line-height: 1.3 !important; | |||
| z-index: 10 !important; | |||
| position: relative !important; | |||
| width: 100% !important; | |||
| clear: both !important; | |||
| // CRITICAL: Override lh-0 class that causes overlap | |||
| &.lh-0 { | |||
| line-height: 1.3 !important; // Force proper line height | |||
| } | |||
| } | |||
| @media screen and (max-width: 767px) { | |||
| .page-container { | |||
| padding-left: 0 !important; | |||
| min-height: 100vh !important; // Ensure full height | |||
| position: relative !important; // Ensure positioning context | |||
| } | |||
| .main-content { | |||
| padding: 15px 8px 60px !important; // Increased bottom padding for footer space | |||
| margin-bottom: 0 !important; | |||
| width: 100% !important; | |||
| box-sizing: border-box !important; | |||
| } | |||
| footer { | |||
| position: relative !important; // Ensure footer stays in flow | |||
| width: 100% !important; | |||
| padding: 15px 10px !important; // Increased padding for better spacing | |||
| font-size: 11px !important; // Slightly larger for readability | |||
| line-height: 1.4 !important; // Better line height for mobile | |||
| background: var(--c-bkg-card) !important; | |||
| border-top: 1px solid var(--c-border) !important; | |||
| margin-top: auto !important; | |||
| box-sizing: border-box !important; | |||
| // CRITICAL MOBILE FIXES: Override all conflicting utility classes | |||
| &.lh-0 { | |||
| line-height: 1.4 !important; // Override line-height: 0 that causes overlap | |||
| } | |||
| &.p-30 { | |||
| padding: 15px 10px !important; // Override desktop padding | |||
| } | |||
| &.fsz-sm { | |||
| font-size: 11px !important; // Ensure readable font size on mobile | |||
| } | |||
| span { | |||
| display: block !important; // Force block for better wrapping | |||
| word-wrap: break-word !important; | |||
| max-width: 100% !important; | |||
| text-align: center !important; | |||
| line-height: 1.4 !important; | |||
| // Handle long text better | |||
| hyphens: auto !important; | |||
| word-break: break-word !important; | |||
| a { | |||
| color: var(--c-primary) !important; | |||
| text-decoration: none !important; | |||
| display: inline !important; // Keep link inline within text | |||
| &:hover { | |||
| text-decoration: underline !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| } | |||
| @media screen and (max-width: 479px) { | |||
| .main-content { | |||
| padding: 10px 8px 50px !important; // Adequate bottom space for footer | |||
| } | |||
| footer { | |||
| padding: 12px 8px !important; | |||
| font-size: 10px !important; | |||
| line-height: 1.5 !important; // Better readability on small screens | |||
| // Override utility classes for small screens | |||
| &.lh-0 { | |||
| line-height: 1.5 !important; // Override line-height: 0 | |||
| } | |||
| &.p-30 { | |||
| padding: 12px 8px !important; // Override desktop padding | |||
| } | |||
| &.fsz-sm { | |||
| font-size: 10px !important; // Ensure readable font size | |||
| } | |||
| span { | |||
| display: block !important; | |||
| margin: 0 !important; // Remove extra margins | |||
| padding: 0 !important; | |||
| text-align: center !important; | |||
| // Split long copyright text into multiple lines if needed | |||
| word-spacing: normal !important; | |||
| letter-spacing: normal !important; | |||
| // Ensure links are readable | |||
| a { | |||
| display: inline !important; | |||
| white-space: nowrap !important; // Keep "Colorlib" as one word | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // Additional mobile footer fixes | |||
| @media screen and (max-width: 360px) { | |||
| footer { | |||
| font-size: 9px !important; | |||
| padding: 10px 5px !important; | |||
| // Override utility classes for extra small screens | |||
| &.lh-0 { | |||
| line-height: 1.6 !important; // Even better line height for tiny screens | |||
| } | |||
| &.p-30 { | |||
| padding: 10px 5px !important; // Override desktop padding | |||
| } | |||
| &.fsz-sm { | |||
| font-size: 9px !important; // Readable font size for tiny screens | |||
| } | |||
| span { | |||
| line-height: 1.6 !important; // Ensure good readability | |||
| // For very small screens, ensure text doesn't overlap | |||
| word-break: break-word !important; | |||
| overflow-wrap: break-word !important; | |||
| // Ensure links are readable | |||
| a { | |||
| font-weight: bold !important; | |||
| color: var(--c-primary) !important; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| // ============================================================================= | |||
| // UTILITY CLASSES FOR MOBILE | |||
| // ============================================================================= | |||
| // Prevent body scroll when mobile menus are open | |||
| body.mobile-menu-open { | |||
| overflow: hidden !important; | |||
| position: fixed !important; | |||
| width: 100% !important; | |||
| } | |||
| // Emergency fixes for any remaining issues | |||
| @media screen and (max-width: 767px) { | |||
| // Ensure dropdowns don't break layout | |||
| .dropdown-menu.show { | |||
| position: fixed !important; | |||
| } | |||
| // Prevent content overflow | |||
| .row { | |||
| margin-left: 0 !important; | |||
| margin-right: 0 !important; | |||
| } | |||
| [class*="col-"] { | |||
| padding-left: 5px !important; | |||
| padding-right: 5px !important; | |||
| } | |||
| // Hide on mobile utility | |||
| .d-none-mobile { | |||
| display: none !important; | |||
| } | |||
| // Force no horizontal scroll | |||
| * { | |||
| max-width: 100% !important; | |||
| box-sizing: border-box !important; | |||
| } | |||
| } | |||