/* Checkbox Styling - Improved for Dark Mode */ .form-checkbox { cursor: pointer; transition: all 0.2s ease-in-out; } .form-checkbox:checked { background-color: rgb(37, 99, 235); /* blue-600 */ border-color: rgb(37, 99, 235); } .dark .form-checkbox { background-color: rgb(55, 65, 81); /* gray-700 */ border-color: rgb(75, 85, 99); /* gray-600 */ } .dark .form-checkbox:checked { background-color: rgb(59, 130, 246); /* blue-500 */ border-color: rgb(59, 130, 246); } .dark .form-checkbox:hover { border-color: rgb(96, 165, 250); /* blue-400 */ } .form-checkbox:focus { outline: none; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5); } .dark .form-checkbox:focus { box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.5); } /* Admin Dashboard - Recent Activity Styles */ .activity-item { transition: background-color 0.2s ease-in-out, transform 0.2s ease-in-out; } .activity-item:hover { transform: translateX(2px); } /* Activity refresh animation */ @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .activity-item { animation: fadeIn 0.3s ease-in-out; } /* Recent activity loading state */ #recent-activity-container.loading { opacity: 0.6; pointer-events: none; } /* Last updated timestamp subtle animation */ #activity-last-updated { transition: color 0.3s ease-in-out; } #activity-last-updated:hover { color: rgb(99, 102, 241); /* indigo-500 */ } /* Chart Container Responsive Sizing */ .chart-container { position: relative; height: 16rem; /* 256px - updated for profile charts */ width: 100%; } /* Ensure canvas fills container properly */ .chart-container canvas { max-height: 100%; } /* Admin dashboard specific chart height */ #adminDashboard .chart-container { height: 250px; } /* Smooth transitions for metric updates */ [data-metric] { transition: color 0.3s ease-in-out, transform 0.3s ease-in-out; } [data-metric].metric-updated { animation: pulse 0.5s ease-in-out; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } /* Quick Links hover effects */ .quick-link-item { transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; } .quick-link-item:hover { transform: translateY(-2px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } /* Profile Charts - Progress Bars */ .progress-bar { transition: width 0.3s ease-in-out; width: 0; /* Start at 0 for animation */ } /* Profile Charts - API Token Scrollbar */ code.api-token { overflow-x: auto; word-break: break-all; } code.api-token::-webkit-scrollbar { height: 6px; } code.api-token::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.1); border-radius: 3px; } code.api-token::-webkit-scrollbar-thumb { background: rgba(0, 255, 0, 0.3); border-radius: 3px; } code.api-token::-webkit-scrollbar-thumb:hover { background: rgba(0, 255, 0, 0.5); } /* Profile Page Styles */ /* Tab content visibility */ .tab-content.hidden-by-default { display: none; } /* Toast Notifications */ #toast-container { position: fixed; top: 5rem; right: 1rem; z-index: 99999; max-width: 420px; pointer-events: none; } @media (max-width: 640px) { #toast-container { top: 1rem; right: 0.5rem; left: 0.5rem; max-width: none; } } .toast-notification { display: flex; align-items: center; min-width: 320px; padding: 1rem 1.25rem; margin-bottom: 0.75rem; border-radius: 0.5rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); animation: slideIn 0.3s ease-out; transition: all 0.3s ease-in-out; pointer-events: auto; border: 1px solid rgba(255, 255, 255, 0.1); } @media (max-width: 640px) { .toast-notification { min-width: auto; } } .toast-notification.removing { opacity: 0; transform: translateX(100%); } .toast-notification.success { background: linear-gradient(135deg, rgb(16, 185, 129) 0%, rgb(5, 150, 105) 100%); color: white; } .dark .toast-notification.success { background: linear-gradient(135deg, rgb(5, 150, 105) 0%, rgb(4, 120, 87) 100%); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } .toast-notification.error { background: linear-gradient(135deg, rgb(239, 68, 68) 0%, rgb(220, 38, 38) 100%); color: white; } .dark .toast-notification.error { background: linear-gradient(135deg, rgb(220, 38, 38) 0%, rgb(185, 28, 28) 100%); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } .toast-notification.info { background: linear-gradient(135deg, rgb(59, 130, 246) 0%, rgb(37, 99, 235) 100%); color: white; } .dark .toast-notification.info { background: linear-gradient(135deg, rgb(29, 78, 216) 0%, rgb(30, 64, 175) 100%); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } .toast-notification.warning { background: linear-gradient(135deg, rgb(245, 158, 11) 0%, rgb(217, 119, 6) 100%); color: white; } .dark .toast-notification.warning { background: linear-gradient(135deg, rgb(217, 119, 6) 0%, rgb(180, 83, 9) 100%); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.2); } .toast-icon { flex-shrink: 0; margin-right: 0.75rem; font-size: 1.25rem; } .toast-message { flex: 1; font-size: 0.875rem; font-weight: 500; } .toast-close { flex-shrink: 0; margin-left: 0.75rem; background: transparent; border: none; color: white; font-size: 1.5rem; line-height: 1; cursor: pointer; opacity: 0.8; padding: 0; width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; transition: opacity 0.2s ease-in-out; } .toast-close:hover { opacity: 1; } @keyframes slideIn { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } } /* Confirmation Modal - Cart Delete Confirmation */ .confirmation-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 0, 0, 0.75); backdrop-filter: blur(4px); animation: fadeIn 0.2s ease-out; padding: 1rem; } .dark .confirmation-modal { background-color: rgba(0, 0, 0, 0.85); } .confirmation-modal-content { background-color: white; border-radius: 0.75rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); max-width: 28rem; width: 100%; overflow: hidden; animation: modalSlideIn 0.3s ease-out; } .dark .confirmation-modal-content { background-color: rgb(31, 41, 55); /* gray-800 */ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); } .confirmation-modal-header { display: flex; align-items: center; padding: 1.5rem; border-bottom: 1px solid rgb(229, 231, 235); /* gray-200 */ } .dark .confirmation-modal-header { border-bottom-color: rgb(55, 65, 81); /* gray-700 */ } .confirmation-modal-icon { flex-shrink: 0; width: 3rem; height: 3rem; border-radius: 50%; background: linear-gradient(135deg, rgb(254, 226, 226) 0%, rgb(254, 202, 202) 100%); /* red-100 to red-200 */ display: flex; align-items: center; justify-content: center; margin-right: 1rem; } .dark .confirmation-modal-icon { background: linear-gradient(135deg, rgb(127, 29, 29) 0%, rgb(153, 27, 27) 100%); /* red-900 to red-800 */ } .confirmation-modal-icon i { color: rgb(220, 38, 38); /* red-600 */ font-size: 1.5rem; } .dark .confirmation-modal-icon i { color: rgb(248, 113, 113); /* red-400 */ } .confirmation-modal-title { font-size: 1.25rem; font-weight: 600; color: rgb(17, 24, 39); /* gray-900 */ margin: 0; } .dark .confirmation-modal-title { color: rgb(243, 244, 246); /* gray-100 */ } .confirmation-modal-body { padding: 1.5rem; color: rgb(55, 65, 81); /* gray-700 */ font-size: 0.9375rem; line-height: 1.625; } .dark .confirmation-modal-body { color: rgb(209, 213, 219); /* gray-300 */ } .confirmation-modal-body strong { color: rgb(17, 24, 39); /* gray-900 */ font-weight: 600; } .dark .confirmation-modal-body strong { color: rgb(243, 244, 246); /* gray-100 */ } .confirmation-modal-footer { display: flex; justify-content: flex-end; gap: 0.75rem; padding: 1.25rem 1.5rem; background-color: rgb(249, 250, 251); /* gray-50 */ } .dark .confirmation-modal-footer { background-color: rgb(17, 24, 39); /* gray-900 */ } .confirmation-modal-footer .btn-cancel { padding: 0.625rem 1.25rem; background-color: white; border: 1px solid rgb(209, 213, 219); /* gray-300 */ border-radius: 0.375rem; color: rgb(55, 65, 81); /* gray-700 */ font-weight: 500; font-size: 0.875rem; cursor: pointer; transition: all 0.2s ease-in-out; } .dark .confirmation-modal-footer .btn-cancel { background-color: rgb(55, 65, 81); /* gray-700 */ border-color: rgb(75, 85, 99); /* gray-600 */ color: rgb(229, 231, 235); /* gray-200 */ } .confirmation-modal-footer .btn-cancel:hover { background-color: rgb(249, 250, 251); /* gray-50 */ border-color: rgb(156, 163, 175); /* gray-400 */ } .dark .confirmation-modal-footer .btn-cancel:hover { background-color: rgb(75, 85, 99); /* gray-600 */ border-color: rgb(107, 114, 128); /* gray-500 */ } .confirmation-modal-footer .btn-cancel:focus { outline: none; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5); } .dark .confirmation-modal-footer .btn-cancel:focus { box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.5); } .confirmation-modal-footer .btn-confirm { padding: 0.625rem 1.25rem; background: linear-gradient(135deg, rgb(220, 38, 38) 0%, rgb(185, 28, 28) 100%); /* red-600 to red-700 */ border: 1px solid rgb(220, 38, 38); border-radius: 0.375rem; color: white; font-weight: 500; font-size: 0.875rem; cursor: pointer; transition: all 0.2s ease-in-out; } .dark .confirmation-modal-footer .btn-confirm { background: linear-gradient(135deg, rgb(185, 28, 28) 0%, rgb(153, 27, 27) 100%); /* red-700 to red-800 */ border-color: rgb(185, 28, 28); } .confirmation-modal-footer .btn-confirm:hover { background: linear-gradient(135deg, rgb(185, 28, 28) 0%, rgb(153, 27, 27) 100%); transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } .dark .confirmation-modal-footer .btn-confirm:hover { background: linear-gradient(135deg, rgb(153, 27, 27) 0%, rgb(127, 29, 29) 100%); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2); } .confirmation-modal-footer .btn-confirm:focus { outline: none; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.5); } .dark .confirmation-modal-footer .btn-confirm:focus { box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.5); } /* Image Modal Styles */ .image-modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 99999; background-color: rgba(0, 0, 0, 0.9); backdrop-filter: blur(4px); align-items: center; justify-content: center; padding: 2rem; } .image-modal-backdrop.hidden { display: none !important; } .image-modal-backdrop:not(.hidden) { display: flex; animation: fadeIn 0.3s ease-out; } .image-modal-backdrop:not(.hidden) .image-modal-container { animation: modalSlideIn 0.3s ease-out; } .image-modal-container { position: relative; max-width: 90vw; max-height: 90vh; } .image-modal-close { position: absolute; top: -3rem; right: 0; background-color: rgba(255, 255, 255, 0.1); border: 2px solid rgba(255, 255, 255, 0.3); color: white; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease-in-out; font-size: 1.25rem; } .image-modal-close:hover { background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.5); transform: scale(1.1); } /* NFO Modal Styles */ #nfoModal { display: none; } #nfoModal.hidden { display: none !important; } #nfoModal:not(.hidden) { display: block; } /* Header Dropdown Menu Styles - Prevent flash on page load */ .dropdown-menu { display: none; } .confirmation-modal-footer .btn-confirm:active { transform: translateY(0); } @keyframes modalSlideIn { from { opacity: 0; transform: translateY(-20px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } /* Mobile responsiveness for confirmation modal */ @media (max-width: 640px) { .confirmation-modal-content { margin: 0 1rem; } .confirmation-modal-header { padding: 1.25rem 1rem; } .confirmation-modal-body { padding: 1.25rem 1rem; } .confirmation-modal-footer { padding: 1rem; flex-direction: column-reverse; } .confirmation-modal-footer .btn-cancel, .confirmation-modal-footer .btn-confirm { width: 100%; justify-content: center; } } /* Tmux Edit - Remove Crap Types Container Styles */ #crap_types_container { transition: opacity 0.3s ease, display 0.3s ease; } /* Checkbox hover effects for crap types */ .hover\:bg-gray-100:hover { transition: background-color 0.2s ease; } .dark .hover\:bg-gray-700:hover { transition: background-color 0.2s ease; } /* Form checkbox focus ring */ .form-checkbox:focus-visible { outline: 2px solid transparent; outline-offset: 2px; } /* Content Toggle Button Styles */ .content-toggle-status { background: none; border: none; cursor: pointer; padding: 0; transition: all 0.2s ease-in-out; } .content-toggle-status:hover { transform: scale(1.1); } .content-toggle-status:active { transform: scale(0.95); } .content-toggle-status:disabled { cursor: not-allowed; opacity: 0.6; } .content-toggle-status i { font-size: 1.125rem; /* 18px */ } /* Admin Theme Selector Styles */ .admin-theme-selector .theme-option { border-color: rgb(55, 65, 81); /* gray-700 */ background-color: rgba(31, 41, 55, 0.5); /* gray-800/50 */ } .admin-theme-selector .theme-option:hover { background-color: rgb(31, 41, 55); /* gray-800 */ } .admin-theme-selector .theme-option.theme-option-active { border-color: rgb(59, 130, 246); /* blue-500 */ background-color: rgba(30, 64, 175, 0.3); /* blue-900/30 */ } /* Fallback for browsers that support :has() */ .admin-theme-selector .theme-option:has(.theme-radio:checked) { border-color: rgb(59, 130, 246); /* blue-500 */ background-color: rgba(30, 64, 175, 0.3); /* blue-900/30 */ } /* User Area Theme Selector Styles (for consistency) */ .theme-option { border-color: rgb(209, 213, 219); /* gray-300 */ background-color: rgb(249, 250, 251); /* gray-50 */ } .dark .theme-option { border-color: rgb(75, 85, 99); /* gray-600 */ background-color: rgb(55, 65, 81); /* gray-700 */ } .theme-option:hover { background-color: rgb(243, 244, 246); /* gray-100 */ } .dark .theme-option:hover { background-color: rgb(31, 41, 55); /* gray-800 */ } .theme-option.theme-option-active { border-color: rgb(59, 130, 246); /* blue-500 */ background-color: rgb(239, 246, 255); /* blue-50 */ } .dark .theme-option.theme-option-active { background-color: rgba(30, 64, 175, 0.2); /* blue-900/20 */ } /* Fallback for browsers that support :has() */ .theme-option:has(.theme-radio:checked) { border-color: rgb(59, 130, 246); /* blue-500 */ background-color: rgb(239, 246, 255); /* blue-50 */ } .dark .theme-option:has(.theme-radio:checked) { background-color: rgba(30, 64, 175, 0.2); /* blue-900/20 */ } /* Group Selection Styles */ .group-checkbox { cursor: pointer; transition: all 0.15s ease-in-out; } .group-row.selected { background-color: rgba(59, 130, 246, 0.1); /* blue-500/10 */ } .dark .group-row.selected { background-color: rgba(59, 130, 246, 0.15); /* blue-500/15 */ } /* Selection counter animation */ #selection-counter { transition: opacity 0.2s ease-in-out; } #selection-counter.hidden { opacity: 0; } /* Reset selected button animation */ #reset-selected-btn { transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out; } #reset-selected-btn:not(.hidden) { animation: slideIn 0.2s ease-in-out; } @keyframes slideIn { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } } /* Indeterminate checkbox styling */ #select-all-groups:indeterminate { background-color: rgb(156, 163, 175); /* gray-400 */ border-color: rgb(156, 163, 175); } .dark #select-all-groups:indeterminate { background-color: rgb(107, 114, 128); /* gray-500 */ border-color: rgb(107, 114, 128); } /* Reset selected modal list styling */ #reset-selected-list { max-height: 150px; overflow-y: auto; } #reset-selected-list::-webkit-scrollbar { width: 6px; } #reset-selected-list::-webkit-scrollbar-track { background: rgb(243, 244, 246); /* gray-100 */ border-radius: 3px; } .dark #reset-selected-list::-webkit-scrollbar-track { background: rgb(55, 65, 81); /* gray-700 */ } #reset-selected-list::-webkit-scrollbar-thumb { background: rgb(156, 163, 175); /* gray-400 */ border-radius: 3px; } .dark #reset-selected-list::-webkit-scrollbar-thumb { background: rgb(107, 114, 128); /* gray-500 */ } /* ------------------------------------------------------------------ */ /* Movies library */ /* ------------------------------------------------------------------ */ .movies-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary-950) 92%, #020617), var(--color-primary-700)); } .movies-hero__glow { position: absolute; border-radius: 9999px; background: rgb(255 255 255 / 0.12); filter: blur(1px); pointer-events: none; } .movies-hero__glow--one { width: 18rem; height: 18rem; top: -11rem; right: 8%; } .movies-hero__glow--two { width: 11rem; height: 11rem; right: -4rem; bottom: -6rem; background: rgb(255 255 255 / 0.08); } .movies-hero__icon { display: inline-flex; width: 3.25rem; height: 3.25rem; flex-shrink: 0; align-items: center; justify-content: center; border: 1px solid rgb(255 255 255 / 0.18); border-radius: 1rem; background: rgb(255 255 255 / 0.12); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.12); font-size: 1.25rem; } .movies-hero__stat, .movies-hero__action { display: inline-flex; align-items: center; gap: 0.5rem; border: 1px solid rgb(255 255 255 / 0.16); border-radius: 9999px; background: rgb(15 23 42 / 0.24); color: rgb(255 255 255 / 0.88); backdrop-filter: blur(8px); } .movies-hero__stat { padding: 0.4rem 0.75rem; } .movies-hero__action { min-height: 2.75rem; padding: 0.65rem 1rem; font-size: 0.875rem; font-weight: 600; transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease; } .movies-hero__action:hover { border-color: rgb(255 255 255 / 0.3); background: rgb(255 255 255 / 0.16); transform: translateY(-1px); } .movies-hero__action:focus-visible { outline: 2px solid rgb(255 255 255 / 0.9); outline-offset: 2px; } .movies-hero__action--accent { border-color: rgb(251 146 60 / 0.45); background: linear-gradient(135deg, rgb(249 115 22 / 0.94), rgb(220 38 38 / 0.94)); color: #fff; } .movie-filter-control { width: 100%; min-height: 2.75rem; border: 1px solid rgb(209 213 219); border-radius: 0.75rem; background-color: #fff; color: rgb(17 24 39); font-size: 0.875rem; transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; } .movie-filter-control:focus { border-color: var(--color-primary-500); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-500) 20%, transparent); outline: none; } .dark .movie-filter-control { border-color: rgb(75 85 99); background-color: rgb(31 41 55); color: rgb(243 244 246); } .movie-filter-chip { display: inline-flex; align-items: center; gap: 0.25rem; border: 1px solid color-mix(in srgb, var(--color-primary-500) 24%, transparent); border-radius: 9999px; background-color: color-mix(in srgb, var(--color-primary-500) 9%, white); padding: 0.35rem 0.65rem; color: var(--color-primary-800); font-size: 0.75rem; } .dark .movie-filter-chip { background-color: color-mix(in srgb, var(--color-primary-500) 16%, rgb(15 23 42)); color: var(--color-primary-200); } .movies-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; } .movie-card { position: relative; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; } .movie-card:hover { border-color: color-mix(in srgb, var(--color-primary-500) 38%, var(--border-default)); box-shadow: 0 16px 36px -24px rgb(15 23 42 / 0.55); transform: translateY(-2px); } .dark .movie-card:hover { border-color: color-mix(in srgb, var(--color-primary-400) 45%, var(--border-default-dark)); box-shadow: 0 18px 42px -24px rgb(0 0 0 / 0.8); } .movie-card__layout { display: flex; flex-direction: column; min-width: 0; } .movie-card__poster-wrap { position: relative; flex-shrink: 0; overflow: hidden; background: var(--surface-panel-alt); } .dark .movie-card__poster-wrap { background: var(--surface-panel-alt-dark); } .movie-card__poster-link { display: block; } .movies-grid .movie-cover { display: block; width: 100%; height: 15rem; object-fit: cover; transition: transform 240ms ease; } .movie-card:hover .movie-cover { transform: scale(1.015); } .movie-card__poster-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; color: var(--text-muted); } .dark .movie-card__poster-placeholder { color: var(--text-muted-dark); } .movie-card__poster-placeholder i { font-size: 2rem; } .movie-card__poster-placeholder span { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; } .movie-card__release-count { position: absolute; right: 0.75rem; bottom: 0.75rem; display: inline-flex; align-items: center; gap: 0.35rem; border: 1px solid rgb(255 255 255 / 0.18); border-radius: 9999px; background: rgb(15 23 42 / 0.84); padding: 0.35rem 0.6rem; color: #fff; font-size: 0.7rem; font-weight: 700; backdrop-filter: blur(6px); } .movie-card__content { display: flex; flex-direction: column; padding: 1.25rem; } .movie-card__title { overflow-wrap: anywhere; } .movie-meta-chip { display: inline-flex; align-items: center; gap: 0.35rem; border-radius: 9999px; background: var(--surface-panel-alt); padding: 0.35rem 0.6rem; color: var(--text-muted); } .dark .movie-meta-chip { background: var(--surface-panel-alt-dark); color: var(--text-muted-dark); } .movie-meta-chip--rating { background: rgb(254 249 195); color: rgb(161 98 7); } .dark .movie-meta-chip--rating { background: rgb(113 63 18 / 0.45); color: rgb(253 224 71); } .movie-card__metadata-row { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 0.65rem; min-width: 0; } .movie-card__metadata-row dt { display: flex; align-items: baseline; gap: 0.4rem; color: var(--text-muted); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; } .dark .movie-card__metadata-row dt { color: var(--text-muted-dark); } .movie-card__metadata-row dd { min-width: 0; color: rgb(55 65 81); } .dark .movie-card__metadata-row dd { color: rgb(209 213 219); } .movie-card__metadata-row dd a { color: var(--color-primary-600); } .dark .movie-card__metadata-row dd a { color: var(--color-primary-400); } .movie-source-link { display: inline-flex; min-height: 2rem; align-items: center; gap: 0.35rem; border-radius: 0.5rem; padding: 0.35rem 0.6rem; font-size: 0.75rem; font-weight: 700; transition: filter 160ms ease, transform 160ms ease; } .movie-source-link:hover { filter: brightness(0.96); transform: translateY(-1px); } .movie-source-link:focus-visible { outline: 2px solid var(--color-primary-500); outline-offset: 2px; } .movie-source-link--imdb { background: rgb(254 240 138); color: rgb(113 63 18); } .movie-source-link--tmdb { background: color-mix(in srgb, var(--color-primary-500) 13%, white); color: var(--color-primary-800); } .movie-source-link--trakt { background: rgb(254 226 226); color: rgb(153 27 27); } .dark .movie-source-link--imdb { background: rgb(113 63 18 / 0.6); color: rgb(254 240 138); } .dark .movie-source-link--tmdb { background: color-mix(in srgb, var(--color-primary-500) 20%, rgb(15 23 42)); color: var(--color-primary-200); } .dark .movie-source-link--trakt { background: rgb(127 29 29 / 0.5); color: rgb(254 202 202); } .movies-grid .release-card-container { display: flex; flex-direction: column; gap: 0.75rem; } .movies-grid .release-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; } .movies-grid .release-actions .release-action-sm { gap: 0.35rem; min-height: 2rem; border-radius: 0.5rem; } .movie-release-row { transition: border-color 160ms ease, background-color 160ms ease; } .movie-release-row:hover { border-color: color-mix(in srgb, var(--color-primary-500) 28%, var(--border-default)); } @media (min-width: 640px) { .movie-card__layout { flex-direction: row; } .movie-card__poster-wrap, .movies-grid .movie-cover { width: 10rem; } .movies-grid .movie-cover { height: 15rem; } } @media (min-width: 1024px) { .movies-grid[data-layout="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .movies-grid[data-layout="1"] .movie-card__poster-wrap, .movies-grid[data-layout="1"] .movie-cover { width: 12rem; } .movies-grid[data-layout="1"] .movie-cover { height: 18rem; } .movies-grid[data-layout="1"] .release-card-container { flex-direction: row; align-items: flex-start; justify-content: space-between; } .movies-grid[data-layout="1"] .release-actions { flex-shrink: 0; justify-content: flex-end; } } @media (prefers-reduced-motion: reduce) { .movie-card, .movie-cover, .movies-hero__action, .movie-source-link { transition: none; } .movie-card:hover, .movie-card:hover .movie-cover, .movies-hero__action:hover, .movie-source-link:hover { transform: none; } } /* Sidebar - Useful Links Content Styling */ .useful-link-content { max-width: 100%; overflow-wrap: break-word; word-wrap: break-word; } .useful-link-content img { max-width: 100%; height: auto; border-radius: 0.375rem; margin: 0.5rem 0; display: block; } .useful-link-content p { margin-bottom: 0.5rem; line-height: 1.5; } .useful-link-content p:last-child { margin-bottom: 0; } .useful-link-content a { color: #60a5fa; text-decoration: underline; } .useful-link-content a:hover { color: #93c5fd; } .useful-link-content ul, .useful-link-content ol { margin: 0.5rem 0; padding-left: 1.5rem; } .useful-link-content li { margin-bottom: 0.25rem; } .useful-link-content h1, .useful-link-content h2, .useful-link-content h3, .useful-link-content h4, .useful-link-content h5, .useful-link-content h6 { font-weight: 600; margin-top: 0.75rem; margin-bottom: 0.5rem; color: #e5e7eb; } .useful-link-content h1 { font-size: 1.25rem; } .useful-link-content h2 { font-size: 1.125rem; } .useful-link-content h3 { font-size: 1rem; } .useful-link-content h4, .useful-link-content h5, .useful-link-content h6 { font-size: 0.875rem; } .useful-link-content blockquote { border-left: 3px solid #4b5563; padding-left: 1rem; margin: 0.5rem 0; font-style: italic; color: #9ca3af; } .useful-link-content code { background-color: #374151; padding: 0.125rem 0.25rem; border-radius: 0.25rem; font-size: 0.875em; font-family: monospace; } .useful-link-content pre { background-color: #1f2937; padding: 0.75rem; border-radius: 0.375rem; overflow-x: auto; margin: 0.5rem 0; } .useful-link-content pre code { background-color: transparent; padding: 0; } /* ------------------------------------------------------------------ */ /* Detail pages: shared card and image shadows */ /* ------------------------------------------------------------------ */ .release-detail-page { @apply shadow-md; } .release-detail-page .surface-panel-alt, .release-detail-page .detail-password-card, .release-detail-page .detail-file-list, .release-detail-page .detail-info-sidebar, .release-detail-page .detail-empty-comments { @apply shadow-sm; } .release-detail-page .detail-comment-card { @apply shadow-sm hover:shadow-md transition-shadow duration-300; } .release-detail-page .detail-cover-image { @apply rounded-xl shadow-xl; } .release-detail-page .detail-gallery-image { @apply shadow-md hover:shadow-lg transition-shadow duration-300; } .movie-detail-page { @apply shadow-md; } .movie-detail-page .movie-detail-poster { @apply rounded-xl shadow-xl; } .movie-detail-page .movie-detail-trailer { @apply overflow-hidden rounded-xl shadow-lg; } .movie-detail-page .movie-release-card { @apply shadow-sm hover:shadow-md transition-shadow duration-300; } .series-detail-page { @apply shadow-md; } .series-detail-page .series-main-card, .series-detail-page .series-episodes-card { @apply shadow-md; } .series-detail-page .series-stat-card, .series-detail-page .series-episode-card { @apply shadow-sm hover:shadow-md transition-shadow duration-300; } .series-detail-page .series-detail-poster { @apply rounded-xl shadow-xl transition-shadow duration-300; }