@use "sass:color"; $primary-color: #00a346; $background-dark: #1c1f23; $text-white: #ffffff; $text-gray: #667788; $border-color: #2c3038; .selection-recap { margin-top: 5rem; margin-bottom: 3rem; .recap-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 2.5rem; } .recap-back-btn { color: $text-gray !important; &:hover { color: $text-white !important; } } .recap-title { flex: 1; color: $text-white; font-weight: 600; } .recap-download-btn { background-color: $primary-color !important; color: $text-white !important; font-weight: 600; text-transform: none !important; padding: 0.4rem 1rem; border-radius: 4px; font-size: 0.875rem; white-space: nowrap; &:hover { background-color: color.adjust($primary-color, $lightness: -8%) !important; } &--loading { background-color: color.adjust($primary-color, $lightness: -12%) !important; cursor: default !important; min-width: 150px; } &.Mui-disabled { color: $text-white !important; opacity: 0.8 !important; } } .recap-download-progress { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 120px; span { font-size: 0.8rem; font-weight: 600; color: $text-white; line-height: 1; } } .recap-progress-bar { width: 100%; border-radius: 2px; height: 4px !important; .MuiLinearProgress-bar { background-color: $text-white !important; } &.MuiLinearProgress-root { background-color: rgba(255, 255, 255, 0.3) !important; } } .recap-month-section { margin-bottom: 2.5rem; } .recap-month-label { color: $text-gray; font-size: 0.8rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1rem !important; padding-bottom: 0.5rem; border-bottom: 1px solid $border-color; } .recap-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; } .recap-card { cursor: pointer; border-radius: 4px; overflow: hidden; &:hover .recap-overlay { opacity: 1; } &:hover .recap-poster { transform: scale(1.04); } } .recap-poster-wrapper { position: relative; padding-top: 150%; overflow: hidden; border-radius: 4px; background-color: #14181c; } .recap-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.25s ease; } .recap-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.15) 55%, transparent 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 8px; opacity: 0; transition: opacity 0.2s ease; } .recap-movie-title { color: $text-white; font-size: 0.68rem; font-weight: 600; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .recap-movie-year { color: rgba(255, 255, 255, 0.55); font-size: 0.62rem; margin-top: 2px; } .recap-check-badge { position: absolute; top: 6px; right: 6px; background-color: $primary-color; color: $text-white; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 2; } .recap-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 60vh; gap: 1.5rem; color: $text-gray; .MuiTypography-root { color: $text-gray; } } .recap-go-btn { background-color: $primary-color !important; color: $text-white !important; text-transform: none !important; } }