// Song Submission Screen styles .song-submission-screen display: flex flex-direction: column min-height: 100% padding: 1.5rem .song-submission-header display: flex justify-content: space-between align-items: center margin-bottom: 2rem flex-wrap: wrap gap: 1rem h1 margin: 0 color: $primary display: flex align-items: center gap: 0.5rem font-family: 'Press Start 2P', monospace font-size: 1.8rem text-transform: uppercase letter-spacing: 2px svg filter: drop-shadow(2px 2px 0 #000) .songs-counter background-color: $card-bg border: 4px solid #000 box-shadow: 4px 4px 0 #000 padding: 0.75rem 1rem font-size: 1rem font-family: 'Press Start 2P', monospace .counter font-weight: bold color: $secondary text-shadow: 1px 1px 0 #000 .submission-content display: flex flex-direction: column flex-grow: 1 gap: 1.5rem @media (min-width: 768px) flex-direction: row .songs-list flex: 1.5 background-color: $card-bg border: 4px solid #000 box-shadow: 8px 8px 0 #000 padding: 1.5rem h2 margin-top: 0 color: $secondary font-family: 'Press Start 2P', monospace font-size: 1.2rem text-transform: uppercase margin-bottom: 1.5rem text-shadow: 2px 2px 0 #000 &:after content: '' display: block width: 100% height: 4px background-color: $secondary margin-top: 0.5rem box-shadow: 2px 2px 0 #000 image-rendering: pixelated .song-item margin-bottom: 1.5rem padding: 1rem background-color: rgba(0, 0, 0, 0.3) border: 3px solid #000 position: relative box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.5) transition: transform 0.2s ease &:hover transform: translateX(2px) translateY(-2px) box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.5) .song-title font-weight: bold font-family: 'Press Start 2P', monospace font-size: 0.9rem color: $text margin-bottom: 0.75rem text-shadow: 1px 1px 0 #000 letter-spacing: 0.5px .song-channel font-size: 0.8rem color: $text-muted font-family: 'Press Start 2P', monospace letter-spacing: 0.5px text-shadow: 1px 1px 0 rgba(0,0,0,0.5) .remove-song position: absolute top: 0.75rem right: 0.75rem background: $danger color: #fff border: 2px solid #000 width: 28px height: 28px font-family: 'Press Start 2P', monospace font-size: 0.7rem display: flex align-items: center justify-content: center cursor: pointer box-shadow: 2px 2px 0 #000 image-rendering: pixelated &:hover transform: translateY(-2px) box-shadow: 2px 4px 0 #000 display: flex align-items: center gap: 0.5rem color: $primary .songs-grid display: grid grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) gap: 1rem .song-card background-color: rgba(255, 255, 255, 0.05) border-radius: 0.5rem box-sizing: border-box padding: 1rem position: relative transition: transform 0.2s, box-shadow 0.2s &:hover transform: translateY(-3px) box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3) h3 margin: 0 0 0.25rem 0 font-size: 1.2rem p margin: 0 0 1rem 0 color: $text-muted .song-link font-size: 0.85rem display: inline-flex align-items: center gap: 0.25rem color: $secondary .remove-btn position: absolute top: 0.75rem right: 0.75rem background: none border: none color: $text-muted cursor: pointer padding: 0.25rem border-radius: 50% &:hover color: $danger background-color: rgba(255, 255, 255, 0.1) .add-song-btn display: flex align-items: center justify-content: center padding: 1rem background-color: rgba(255, 255, 255, 0.05) border: 2px dashed rgba(255, 255, 255, 0.2) border-radius: 0.5rem color: $text-muted cursor: pointer gap: 0.5rem transition: all 0.2s margin-top: 1.5rem margin-bottom: 1rem clear: both &:hover background-color: rgba($primary, 0.1) border-color: rgba($primary, 0.4) color: $text .status-section flex: 1 display: flex flex-direction: column gap: 1.5rem .ready-section background-color: $card-bg border-radius: 1rem padding: 1.5rem display: flex flex-direction: column align-items: center text-align: center h3 margin-top: 0 color: $success .ready-btn margin-top: 1rem padding: 1rem 2rem .player-status background-color: $card-bg border-radius: 1rem padding: 1.5rem flex-grow: 1 h4 margin-top: 0 color: $secondary .players-ready-list list-style: none padding: 0 margin: 0 li padding: 0.75rem 1rem margin-bottom: 0.5rem border-radius: 0.5rem background-color: rgba(255, 255, 255, 0.05) display: flex align-items: center &.ready border-left: 3px solid $success &.not-ready border-left: 3px solid $warning .ready-icon margin-left: auto color: $success .songs-count margin-left: auto font-size: 0.9rem color: $warning // Song submission form modal .song-form background-color: $card-bg border-radius: 1rem padding: 1.5rem margin-top: 1.5rem h3 margin-top: 0 color: $primary .search-group margin-bottom: 2rem .search-container position: relative .spinner-icon position: absolute right: 1rem top: 50% transform: translateY(-50%) color: $secondary .search-input width: 100% padding-right: 2.5rem .search-results position: absolute top: 100% left: 0 right: 0 max-height: 300px overflow-y: auto background: rgba($card-bg, 0.95) border-radius: 0.5rem box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) z-index: 10 backdrop-filter: blur(5px) .search-result display: flex align-items: center padding: 0.75rem cursor: pointer border-bottom: 1px solid rgba($text, 0.1) transition: background-color 0.2s &:hover background: rgba($primary, 0.1) .result-thumbnail width: 60px height: 45px object-fit: cover border-radius: 0.25rem margin-right: 1rem .result-info flex: 1 h4 margin: 0 font-size: 0.9rem color: $text p margin: 0.25rem 0 0 font-size: 0.8rem color: $text-muted .spinner-icon margin-left: 0.5rem color: $secondary