@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700;800&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; :root { --background: hsl(222, 84%, 4.9%); --foreground: hsl(210, 40%, 98%); --muted: hsl(217, 32.6%, 17.5%); --muted-foreground: hsl(215, 20.2%, 65.1%); --popover: hsl(222, 84%, 4.9%); --popover-foreground: hsl(210, 40%, 98%); --card: hsl(222, 84%, 4.9%); --card-foreground: hsl(210, 40%, 98%); --border: hsl(217, 32.6%, 17.5%); --input: hsl(217, 32.6%, 17.5%); --primary: hsl(217, 91%, 60%); --primary-foreground: hsl(222, 47%, 11%); --secondary: hsl(217, 32.6%, 17.5%); --secondary-foreground: hsl(210, 40%, 98%); --accent: hsl(217, 32.6%, 17.5%); --accent-foreground: hsl(210, 40%, 98%); --destructive: hsl(0, 62.8%, 30.6%); --destructive-foreground: hsl(210, 40%, 98%); --ring: hsl(217, 91%, 60%); --radius: 0.75rem; /* Custom video app colors - Modern gradient theme */ --bunny-dark: hsl(250, 50%, 15%); --bunny-gray: hsl(240, 30%, 25%); --bunny-blue: hsl(200, 100%, 60%); --bunny-purple: hsl(280, 80%, 60%); --bunny-light: hsl(210, 40%, 98%); --bunny-muted: hsl(215, 20.2%, 65.1%); } .dark { --background: hsl(222, 84%, 4.9%); --foreground: hsl(210, 40%, 98%); --muted: hsl(217, 32.6%, 17.5%); --muted-foreground: hsl(215, 20.2%, 65.1%); --popover: hsl(222, 84%, 4.9%); --popover-foreground: hsl(210, 40%, 98%); --card: hsl(222, 84%, 4.9%); --card-foreground: hsl(210, 40%, 98%); --border: hsl(217, 32.6%, 17.5%); --input: hsl(217, 32.6%, 17.5%); --primary: hsl(217, 91%, 60%); --primary-foreground: hsl(222, 47%, 11%); --secondary: hsl(217, 32.6%, 17.5%); --secondary-foreground: hsl(210, 40%, 98%); --accent: hsl(217, 32.6%, 17.5%); --accent-foreground: hsl(210, 40%, 98%); --destructive: hsl(0, 62.8%, 30.6%); --destructive-foreground: hsl(210, 40%, 98%); --ring: hsl(217, 91%, 60%); } @layer base { * { @apply border-border; } body { @apply font-sans antialiased bg-background text-foreground; background: linear-gradient(135deg, hsl(250, 50%, 15%) 0%, hsl(240, 30%, 25%) 50%, hsl(260, 40%, 20%) 100%); color: hsl(210, 40%, 98%); min-height: 100vh; /* iOS PWA optimizacije */ -webkit-touch-callout: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; overscroll-behavior: none; } } @layer utilities { .bunny-dark { background: linear-gradient(135deg, hsl(250, 50%, 15%) 0%, hsl(240, 30%, 25%) 100%); } .bunny-gray { background: linear-gradient(135deg, hsl(240, 30%, 25%) 0%, hsl(235, 25%, 30%) 100%); } .gradient-primary { background: linear-gradient(135deg, hsl(200, 100%, 60%) 0%, hsl(280, 80%, 60%) 100%); } .gradient-card { background: linear-gradient(135deg, rgba(75, 85, 175, 0.1) 0%, rgba(128, 90, 213, 0.1) 100%); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); } .bunny-blue { background-color: hsl(217, 91%, 60%); } .bunny-light { color: hsl(210, 40%, 98%); } .bunny-muted { color: hsl(215, 20.2%, 65.1%); } .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* Hide scrollbars for Netflix-style horizontal scrolling */ .scrollbar-hide { -ms-overflow-style: none; /* Internet Explorer 10+ */ scrollbar-width: none; /* Firefox */ } .scrollbar-hide::-webkit-scrollbar { display: none; /* Safari and Chrome */ } /* Video player volume slider styles */ .slider { -webkit-appearance: none; background: transparent; cursor: pointer; } .slider::-webkit-slider-track { background: rgba(255, 255, 255, 0.2); height: 4px; border-radius: 2px; } .slider::-webkit-slider-thumb { -webkit-appearance: none; height: 12px; width: 12px; border-radius: 50%; background: hsl(217, 91%, 60%); cursor: pointer; border: none; } .slider::-moz-range-track { background: rgba(255, 255, 255, 0.2); height: 4px; border-radius: 2px; border: none; } .slider::-moz-range-thumb { height: 12px; width: 12px; border-radius: 50%; background: hsl(217, 91%, 60%); cursor: pointer; border: none; } /* Animation delays for loading indicators */ .animation-delay-75 { animation-delay: 75ms; } .animation-delay-150 { animation-delay: 150ms; } } /* Video edit modal styles */ .video-edit-modal input, .video-edit-modal textarea, .video-edit-modal select, input[data-testid*="input-video"], textarea[data-testid*="input-video"] { background-color: #374151 !important; color: #ffffff !important; border-color: #6b7280 !important; } .video-edit-modal input::placeholder, .video-edit-modal textarea::placeholder, input[data-testid*="input-video"]::placeholder, textarea[data-testid*="input-video"]::placeholder { color: #d1d5db !important; opacity: 1 !important; } .video-edit-modal { background-color: #1f2937 !important; } .video-edit-modal label, .video-edit-modal .text-gray-700, .video-edit-modal .dark\:text-gray-300 { color: #ffffff !important; } .video-edit-modal select, select[data-testid*="select"], .video-edit-modal [role="combobox"], .video-edit-modal button[role="combobox"] { background-color: #374151 !important; color: #ffffff !important; border-color: #6b7280 !important; } /* Search input styles */ input[type="search"], input[placeholder*="Search"], input[data-testid*="search"] { background-color: rgba(55, 65, 81, 0.8) !important; color: #ffffff !important; border-color: #6b7280 !important; } input[type="search"]::placeholder, input[placeholder*="Search"]::placeholder, input[data-testid*="search"]::placeholder { color: #d1d5db !important; opacity: 1 !important; } /* Video card hover effects with gradients */ .video-card:hover { transform: translateY(-2px); transition: all 0.3s ease; } .video-card { transition: all 0.3s ease; background: linear-gradient(135deg, rgba(75, 85, 175, 0.05) 0%, rgba(128, 90, 213, 0.05) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; } /* Modern button styles */ .gradient-button { background: linear-gradient(135deg, hsl(200, 100%, 60%) 0%, hsl(280, 80%, 60%) 100%); border: none; color: white; font-weight: 600; border-radius: 8px; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3); } .gradient-button:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4); } /* Geometric triangle decorations */ .triangle-decoration-1 { position: absolute; width: 0; height: 0; border-left: 35px solid transparent; border-right: 35px solid transparent; border-bottom: 50px solid rgba(59, 130, 246, 0.08); transform: rotate(15deg); z-index: 1; } .triangle-decoration-2 { position: absolute; width: 0; height: 0; border-left: 25px solid transparent; border-right: 25px solid transparent; border-bottom: 35px solid rgba(147, 51, 234, 0.08); transform: rotate(-25deg); z-index: 1; } .triangle-decoration-3 { position: absolute; width: 0; height: 0; border-left: 30px solid transparent; border-right: 30px solid transparent; border-bottom: 40px solid rgba(6, 182, 212, 0.08); transform: rotate(45deg); z-index: 1; } /* Static triangle decorations - no animations to prevent jumping */ .static-triangles { position: relative; overflow: hidden; } /* Background go4.video logo decorations */ .bg-logo-large { position: absolute; width: clamp(200px, 20vw, 400px); height: clamp(100px, 10vw, 200px); background-image: url('@assets/go4_1756394900352.png'); background-size: contain; background-repeat: no-repeat; background-position: center; pointer-events: none; z-index: 0; user-select: none; opacity: 0.15; filter: blur(1px); } .bg-logo-medium { position: absolute; width: clamp(150px, 15vw, 300px); height: clamp(75px, 7.5vw, 150px); background-image: url('@assets/go4_1756394900352.png'); background-size: contain; background-repeat: no-repeat; background-position: center; pointer-events: none; z-index: 0; user-select: none; opacity: 0.12; filter: blur(0.5px); } .bg-logo-small { position: absolute; width: clamp(100px, 10vw, 200px); height: clamp(50px, 5vw, 100px); background-image: url('@assets/go4_1756394900352.png'); background-size: contain; background-repeat: no-repeat; background-position: center; pointer-events: none; z-index: 0; user-select: none; opacity: 0.08; filter: blur(0.5px); } /* Fixed header */ .header-sticky { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; z-index: 100 !important; backdrop-filter: blur(8px); background: rgba(30, 20, 40, 0.85) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.1); width: 100% !important; } /* Add padding to body to account for fixed header */ .has-fixed-header { padding-top: 80px; } /* Mobile specific adjustments for header */ @media (max-width: 768px) { .header-sticky { background: rgba(30, 20, 40, 0.95) !important; backdrop-filter: blur(10px); } .has-fixed-header { padding-top: 70px; /* Slightly less padding on mobile */ } } /* Container for main content layout */ .container { max-width: 1400px; /* malo večja širina za več kartic */ margin: 0 auto; /* centriranje */ padding: 0 20px; /* malo notranjega roba */ } /* iOS PWA safe area optimizacije */ @supports (padding: max(0px)) { .has-fixed-header { padding-top: max(80px, env(safe-area-inset-top)); } } /* PWA full screen optimizacije za iOS */ @media (display-mode: standalone) { body { /* Prepreči povlečenje za osvežitev na iOS */ overscroll-behavior-y: none; /* Prilagodi safe area */ padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); } .header-sticky { top: env(safe-area-inset-top) !important; } } /* Dodatne mobile optimizacije */ @media (max-width: 768px) { /* Prepreči zoom pri fokusiranju input polj */ input, select, textarea { font-size: 16px !important; } /* Optimiziraj touch targets za iOS */ button, a, [role="button"] { min-height: 44px; min-width: 44px; } /* Premakni video kartice malenkost navzgor na mobil */ [data-testid="grid-videos"] { margin-top: -15px; } /* Specifični selektorji za mobilne razmike */ h2.text-lg.font-medium.text-bunny-light.mb-1 { margin-bottom: -2px !important; } .md\:hidden.flex.justify-center.mt-1 { margin-top: 1px !important; margin-bottom: 1px !important; } } /* Custom animations */ @keyframes slideLeftRight { 0%, 100% { transform: translateX(-50%); } 50% { transform: translateX(150%); } } /* Test grid overlay */ body.show-grid::after { content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999; background-image: linear-gradient(rgba(255, 0, 0, 0.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 0, 0, 0.2) 1px, transparent 1px); background-size: 20px 20px; }