Spaces:
Sleeping
Sleeping
| /* ================================================ */ | |
| /* MOBILE RESPONSIVE STYLES FOR INFRAVISION AI */ | |
| /* ================================================ */ | |
| /* Mobile Breakpoints: | |
| - Small (< 480px): Phones | |
| - Medium (480-768px): Tablets (portrait) | |
| - Large (768-1024px): Tablets (landscape) | |
| - XL (> 1024px): Desktop | |
| */ | |
| /* ================================================ */ | |
| /* SMALL DEVICES (< 480px) - PHONES */ | |
| /* ================================================ */ | |
| @media (max-width: 479px) { | |
| /* Base Adjustments */ | |
| html { | |
| font-size: 14px; | |
| } | |
| body { | |
| overflow-x: hidden; | |
| } | |
| /* App Container */ | |
| .app-container { | |
| padding: 0; | |
| } | |
| /* Hero Section */ | |
| .hero-section { | |
| min-height: auto; | |
| padding: 1rem 0; | |
| background-size: 20px 20px, 20px 20px, 15px 15px, 15px 15px; | |
| display: flex; | |
| align-items: stretch; | |
| justify-content: center; | |
| } | |
| .hero-overlay { | |
| display: none; | |
| } | |
| .hero-content { | |
| grid-template-columns: 1fr; | |
| gap: 1.5rem; | |
| padding: 1rem; | |
| max-width: 100%; | |
| width: 100%; | |
| overflow: hidden; | |
| } | |
| .hero-title { | |
| font-size: 2rem; | |
| gap: 0.5rem; | |
| margin-bottom: 1rem; | |
| text-shadow: 0 2px 10px rgba(59, 130, 246, 0.3); | |
| } | |
| .hero-subtitle { | |
| font-size: 0.95rem; | |
| margin-bottom: 1rem; | |
| line-height: 1.4; | |
| } | |
| .hero-features { | |
| gap: 1rem; | |
| } | |
| .hero-feature { | |
| display: flex; | |
| flex-direction: row; | |
| align-items: flex-start; | |
| gap: 0.75rem; | |
| padding: 1rem; | |
| overflow: visible; | |
| } | |
| .hero-feature h3 { | |
| font-size: 1rem; | |
| margin: 0 0 0.25rem 0; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| line-height: 1.2; | |
| } | |
| .hero-feature p { | |
| font-size: 0.85rem; | |
| margin: 0; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| line-height: 1.3; | |
| } | |
| .feature-icon { | |
| min-width: 32px; | |
| width: 32px; | |
| height: 32px; | |
| flex-shrink: 0; | |
| } | |
| .feature-icon svg { | |
| width: 32px; | |
| height: 32px; | |
| } | |
| .hero-visual { | |
| display: none; | |
| } | |
| /* Status Bar */ | |
| .status-bar { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| padding: 0.75rem; | |
| width: 100%; | |
| overflow: visible; | |
| } | |
| .status-item { | |
| font-size: 0.75rem; | |
| padding: 0.75rem; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| white-space: normal; | |
| overflow: visible; | |
| } | |
| /* Content Area */ | |
| .content-area { | |
| padding: 1rem; | |
| } | |
| .content-area h1, | |
| .content-area h2 { | |
| font-size: 1.5rem; | |
| margin-bottom: 1rem; | |
| } | |
| .content-area h3 { | |
| font-size: 1.1rem; | |
| margin-bottom: 0.75rem; | |
| } | |
| /* Tab Navigation */ | |
| .tab-navigation { | |
| padding: 0.5rem; | |
| gap: 0.5rem; | |
| overflow-x: auto; | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| .tab-button { | |
| padding: 0.5rem 1rem; | |
| font-size: 0.85rem; | |
| white-space: nowrap; | |
| flex-shrink: 0; | |
| } | |
| /* Metric Cards */ | |
| .metric-card { | |
| padding: 1rem; | |
| gap: 0.75rem; | |
| } | |
| .metric-icon { | |
| width: 40px; | |
| height: 40px; | |
| min-width: 40px; | |
| } | |
| .metric-icon svg { | |
| width: 18px; | |
| height: 18px; | |
| } | |
| .metric-content { | |
| gap: 0.25rem; | |
| } | |
| .metric-title { | |
| font-size: 0.8rem; | |
| } | |
| .metric-value { | |
| font-size: 0.95rem; | |
| } | |
| .metric-subtitle { | |
| font-size: 0.75rem; | |
| } | |
| /* Metric Grid */ | |
| .metrics-grid { | |
| grid-template-columns: 1fr; | |
| gap: 0.75rem; | |
| } | |
| /* Buttons */ | |
| .btn, | |
| .btn-primary, | |
| .btn-secondary { | |
| padding: 0.65rem 1rem; | |
| font-size: 0.9rem; | |
| width: 100%; | |
| } | |
| .btn-group { | |
| flex-direction: column; | |
| } | |
| .btn-group > button { | |
| width: 100%; | |
| } | |
| /* Forms */ | |
| .form-group { | |
| margin-bottom: 1rem; | |
| } | |
| label { | |
| font-size: 0.85rem; | |
| margin-bottom: 0.3rem; | |
| } | |
| input, | |
| select, | |
| textarea { | |
| padding: 0.65rem; | |
| font-size: 0.9rem; | |
| } | |
| /* Image Preview */ | |
| .image-preview, | |
| .preview-container { | |
| max-width: 100%; | |
| height: auto; | |
| max-height: 300px; | |
| } | |
| /* Upload Area */ | |
| .upload-area { | |
| padding: 1.5rem 1rem; | |
| gap: 1rem; | |
| } | |
| .upload-icon { | |
| font-size: 36px; | |
| } | |
| .upload-text-main { | |
| font-size: 0.95rem; | |
| } | |
| .upload-text-sub { | |
| font-size: 0.75rem; | |
| } | |
| /* Alert Messages */ | |
| .alert { | |
| padding: 0.75rem; | |
| font-size: 0.85rem; | |
| } | |
| /* Badge */ | |
| .badge { | |
| padding: 0.3rem 0.6rem; | |
| font-size: 0.75rem; | |
| } | |
| /* Image Grid */ | |
| .image-grid { | |
| grid-template-columns: 1fr; | |
| gap: 0.75rem; | |
| } | |
| .image-card { | |
| max-height: 300px; | |
| } | |
| /* Settings Panel */ | |
| .settings-panel { | |
| padding: 1rem; | |
| } | |
| .setting-item { | |
| margin-bottom: 1rem; | |
| } | |
| /* 3D Canvas */ | |
| .canvas-container { | |
| height: 300px; | |
| border-radius: 8px; | |
| margin: 1rem 0; | |
| } | |
| /* Model Info */ | |
| .model-info-grid { | |
| grid-template-columns: 1fr; | |
| gap: 0.75rem; | |
| padding: 0.75rem; | |
| margin-top: 1rem; | |
| } | |
| /* Dropdowns and Menus */ | |
| .dropdown-menu { | |
| position: fixed; | |
| left: 0; | |
| right: 0; | |
| max-height: 50vh; | |
| border-radius: 12px 12px 0 0; | |
| } | |
| /* Modals */ | |
| .modal { | |
| padding: 1rem; | |
| max-width: 95vw; | |
| } | |
| .modal-header { | |
| font-size: 1.25rem; | |
| } | |
| .modal-body { | |
| font-size: 0.9rem; | |
| } | |
| /* Charts and Data Viz */ | |
| .chart-container { | |
| height: 250px; | |
| } | |
| svg { | |
| max-width: 100%; | |
| height: auto; | |
| } | |
| /* Loader */ | |
| .loader { | |
| width: 30px; | |
| height: 30px; | |
| } | |
| /* Animations - Reduce on mobile for performance */ | |
| @media (prefers-reduced-motion: reduce) { | |
| * { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| } | |
| } | |
| } | |
| /* ================================================ */ | |
| /* MEDIUM DEVICES (480px - 768px) - TABLETS */ | |
| /* ================================================ */ | |
| @media (min-width: 480px) and (max-width: 767px) { | |
| /* Base Adjustments */ | |
| html { | |
| font-size: 15px; | |
| } | |
| /* App Container */ | |
| .app-container { | |
| padding: 0; | |
| } | |
| /* Hero Section */ | |
| .hero-section { | |
| min-height: auto; | |
| padding: 2rem 0; | |
| } | |
| .hero-content { | |
| grid-template-columns: 1fr; | |
| gap: 2rem; | |
| padding: 1.5rem; | |
| } | |
| .hero-title { | |
| font-size: 2.5rem; | |
| } | |
| .hero-subtitle { | |
| font-size: 1.1rem; | |
| margin-bottom: 1.5rem; | |
| } | |
| .hero-visual { | |
| display: none; | |
| } | |
| .floating-elements { | |
| display: none; | |
| } | |
| /* Content Area */ | |
| .content-area { | |
| padding: 1.5rem; | |
| } | |
| .content-area h1, | |
| .content-area h2 { | |
| font-size: 1.75rem; | |
| } | |
| .content-area h3 { | |
| font-size: 1.2rem; | |
| } | |
| /* Tab Navigation */ | |
| .tab-navigation { | |
| padding: 0.75rem; | |
| gap: 0.5rem; | |
| overflow-x: auto; | |
| -webkit-overflow-scrolling: touch; | |
| } | |
| .tab-button { | |
| padding: 0.6rem 1.2rem; | |
| font-size: 0.9rem; | |
| white-space: nowrap; | |
| } | |
| /* Metric Cards */ | |
| .metric-card { | |
| padding: 1.25rem; | |
| } | |
| .metrics-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| /* Forms */ | |
| input, | |
| select, | |
| textarea { | |
| font-size: 1rem; | |
| padding: 0.75rem; | |
| } | |
| /* Image Preview */ | |
| .image-preview, | |
| .preview-container { | |
| max-height: 400px; | |
| } | |
| /* Image Grid */ | |
| .image-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| /* 3D Canvas */ | |
| .canvas-container { | |
| height: 400px; | |
| } | |
| /* Model Info */ | |
| .model-info-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1rem; | |
| } | |
| /* Buttons */ | |
| .btn, | |
| .btn-primary, | |
| .btn-secondary { | |
| padding: 0.75rem 1.5rem; | |
| font-size: 0.95rem; | |
| } | |
| } | |
| /* ================================================ */ | |
| /* LARGE DEVICES (768px - 1024px) - LANDSCAPE TAB */ | |
| /* ================================================ */ | |
| @media (min-width: 768px) and (max-width: 1023px) { | |
| /* Hero Content */ | |
| .hero-content { | |
| grid-template-columns: 1fr 1fr; | |
| gap: 2rem; | |
| padding: 2rem; | |
| } | |
| .hero-title { | |
| font-size: 3rem; | |
| } | |
| .hero-subtitle { | |
| font-size: 1.2rem; | |
| } | |
| .floating-elements { | |
| height: 300px; | |
| } | |
| /* Content Area */ | |
| .content-area { | |
| padding: 2rem; | |
| } | |
| /* Metric Cards - 3 columns on tablet landscape */ | |
| .metrics-grid { | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 1.5rem; | |
| } | |
| /* Image Grid */ | |
| .image-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 1.5rem; | |
| } | |
| /* 3D Canvas */ | |
| .canvas-container { | |
| height: 500px; | |
| } | |
| .model-info-grid { | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 1.25rem; | |
| } | |
| /* Buttons */ | |
| .btn, | |
| .btn-primary, | |
| .btn-secondary { | |
| padding: 0.75rem 2rem; | |
| font-size: 0.95rem; | |
| } | |
| } | |
| /* ================================================ */ | |
| /* XL DEVICES (1024px+) - DESKTOP */ | |
| /* ================================================ */ | |
| @media (min-width: 1024px) { | |
| /* Desktop styles - mostly keep defaults */ | |
| .hero-content { | |
| grid-template-columns: 1fr 1fr; | |
| gap: 4rem; | |
| } | |
| .hero-title { | |
| font-size: 4.5rem; | |
| } | |
| .metrics-grid { | |
| grid-template-columns: repeat(4, 1fr); | |
| gap: 2rem; | |
| } | |
| .image-grid { | |
| grid-template-columns: repeat(3, 1fr); | |
| gap: 2rem; | |
| } | |
| .canvas-container { | |
| height: 700px; | |
| } | |
| .model-info-grid { | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| } | |
| } | |
| /* ================================================ */ | |
| /* TOUCH DEVICE OPTIMIZATIONS */ | |
| /* ================================================ */ | |
| @media (hover: none) and (pointer: coarse) { | |
| /* Increase touch target sizes */ | |
| button, | |
| .btn, | |
| .tab-button, | |
| input[type="button"], | |
| input[type="submit"] { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| /* Reduce hover effects on touch devices */ | |
| .metric-card:hover, | |
| .hero-feature:hover, | |
| .floating-card:hover { | |
| transform: none; | |
| } | |
| /* Better spacing for touch */ | |
| .tab-navigation { | |
| gap: 0.75rem; | |
| } | |
| /* Optimize scrolling */ | |
| .content-area { | |
| -webkit-touch-callout: none; | |
| } | |
| } | |
| /* ================================================ */ | |
| /* LANDSCAPE MODE OPTIMIZATIONS */ | |
| /* ================================================ */ | |
| @media (orientation: landscape) and (max-height: 600px) { | |
| .hero-section { | |
| min-height: auto; | |
| padding: 1rem 0; | |
| } | |
| .hero-content { | |
| gap: 1rem; | |
| padding: 1rem; | |
| } | |
| .hero-title { | |
| font-size: 1.75rem; | |
| margin-bottom: 0.5rem; | |
| } | |
| .hero-subtitle { | |
| font-size: 0.9rem; | |
| margin-bottom: 0.75rem; | |
| } | |
| .hero-features { | |
| display: none; | |
| } | |
| .floating-elements { | |
| display: none; | |
| } | |
| .content-area { | |
| padding: 1rem; | |
| } | |
| .canvas-container { | |
| height: 300px; | |
| } | |
| .metrics-grid { | |
| grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); | |
| gap: 0.75rem; | |
| } | |
| } | |
| /* ================================================ */ | |
| /* MODERN VIEWPORT OPTIMIZATION */ | |
| /* ================================================ */ | |
| @supports (viewport-fit: cover) { | |
| body { | |
| padding-left: env(safe-area-inset-left); | |
| padding-right: env(safe-area-inset-right); | |
| padding-top: env(safe-area-inset-top); | |
| padding-bottom: env(safe-area-inset-bottom); | |
| } | |
| } | |
| /* ================================================ */ | |
| /* KEYBOARD SAFE AREAS (Mobile Keyboards) */ | |
| /* ================================================ */ | |
| @media (max-height: 500px) and (orientation: landscape) { | |
| input, | |
| textarea, | |
| select { | |
| font-size: 16px; /* Prevents zoom on iOS */ | |
| } | |
| } | |
| /* ================================================ */ | |
| /* 9-IMAGE UNIFIED GRID RESPONSIVE STYLES */ | |
| /* ================================================ */ | |
| /* Mobile Phones (< 480px) - Single Column */ | |
| @media (max-width: 479px) { | |
| .image-grid-unified { | |
| grid-template-columns: 1fr ; | |
| gap: 1rem ; | |
| } | |
| .image-card img { | |
| height: 200px ; | |
| } | |
| } | |
| /* Tablets Portrait (480-768px) - 2 Columns */ | |
| @media (min-width: 480px) and (max-width: 767px) { | |
| .image-grid-unified { | |
| grid-template-columns: repeat(2, 1fr) ; | |
| gap: 1.25rem ; | |
| } | |
| .image-card img { | |
| height: 250px ; | |
| } | |
| } | |
| /* Tablets Landscape (768-1024px) - 3 Columns */ | |
| @media (min-width: 768px) and (max-width: 1023px) { | |
| .image-grid-unified { | |
| grid-template-columns: repeat(3, 1fr) ; | |
| gap: 1.5rem ; | |
| } | |
| .image-card img { | |
| height: 280px ; | |
| } | |
| } | |
| /* Desktop (> 1024px) - 3 Columns */ | |
| @media (min-width: 1024px) { | |
| .image-grid-unified { | |
| grid-template-columns: repeat(3, 1fr) ; | |
| gap: 1.5rem ; | |
| } | |
| .image-card img { | |
| height: 300px ; | |
| } | |
| } | |
| /* Image Card Responsive Adjustments */ | |
| .image-card-title { | |
| font-size: 0.95rem; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| line-height: 1.3; | |
| } | |
| @media (max-width: 479px) { | |
| .image-card { | |
| padding: 0.75rem ; | |
| } | |
| .image-card-title { | |
| font-size: 0.85rem; | |
| margin-bottom: 0.75rem ; | |
| } | |
| .image-card img { | |
| border-radius: var(--border-radius) ; | |
| } | |
| } | |
| /* ================================================ */ | |
| /* PRINT STYLES */ | |
| /* ================================================ */ | |
| @media print { | |
| .tab-navigation, | |
| .floating-elements, | |
| .hero-visual { | |
| display: none; | |
| } | |
| .content-area { | |
| padding: 0; | |
| box-shadow: none; | |
| } | |
| * { | |
| box-shadow: none ; | |
| text-shadow: none ; | |
| } | |
| } | |