@ -20560,6 +20560,194 @@ body.helper-mode-active #dashboard-activity-feed:hover {
display : none ;
}
/* ── Watch All Unwatched Modal ──────────────────────────── */
. watch-all-modal {
width : 880px ; max-width : 95vw ; max-height : 85vh ;
background : linear-gradient ( 135deg , rgba ( 20 , 20 , 20 , 0 . 97 ) 0 % , rgba ( 12 , 12 , 12 , 0 . 99 ) 100 % ) ;
backdrop-filter : blur ( 20px ) saturate ( 1 . 2 ) ;
border-radius : 20px ;
border : 1px solid rgba ( 255 , 255 , 255 , 0 . 1 ) ;
border-top : 1px solid rgba ( 255 , 255 , 255 , 0 . 15 ) ;
box-shadow : 0 20px 60px rgba ( 0 , 0 , 0 , 0 . 6 ) , 0 8px 32px rgba ( 0 , 0 , 0 , 0 . 4 ) ,
0 0 40px rgba ( var ( --accent-rgb ) , 0 . 08 ) , inset 0 1px 0 rgba ( 255 , 255 , 255 , 0 . 1 ) ;
display : flex ; flex-direction : column ; overflow : hidden ;
}
. watch-all-header {
display : flex ; align-items : center ; justify-content : space-between ;
padding : 20px 24px ;
background : linear-gradient ( 90deg , rgba ( var ( --accent-rgb ) , 0 . 06 ) 0 % , transparent 60 % ) ;
border-bottom : 1px solid rgba ( var ( --accent-rgb ) , 0 . 12 ) ;
}
. watch-all-header-content { display : flex ; align-items : center ; gap : 14 px ; }
. watch-all-header-icon { font-size : 28 px ; opacity : 0.9 ; }
. watch-all-title {
font-size : 20px ; font-weight : 700 ; color : # fff ; letter-spacing : -0 . 3px ;
font-family : 'SF Pro Display' , -apple-system , BlinkMacSystemFont , sans-serif ;
}
. watch-all-subtitle { font-size : 13 px ; color : rgba ( 255 , 255 , 255 , 0.45 ) ; margin-top : 2 px ; }
. watch-all-close {
background : rgba ( 255 , 255 , 255 , 0 . 08 ) ; border : none ; color : rgba ( 255 , 255 , 255 , 0 . 5 ) ;
width : 36px ; height : 36px ; border-radius : 50 % ; font-size : 20px ; cursor : pointer ;
display : flex ; align-items : center ; justify-content : center ; transition : all 0 . 2s ;
}
. watch-all-close : hover { background : rgba ( 255 , 255 , 255 , 0.15 ) ; color : #fff ; transform : scale ( 1.1 ) ; }
. watch-all-body {
flex : 1 ; overflow-y : auto ; padding : 0 ;
scrollbar-width : thin ; scrollbar-color : rgba ( 255 , 255 , 255 , 0 . 15 ) transparent ;
}
. watch-all-body :: -webkit-scrollbar { width : 6 px ; }
. watch-all-body :: -webkit-scrollbar-thumb { background : rgba ( 255 , 255 , 255 , 0.15 ) ; border-radius : 3 px ; }
. watch-all-footer {
display : flex ; justify-content : flex-end ; gap : 10px ;
padding : 16px 24px ;
border-top : 1px solid rgba ( 255 , 255 , 255 , 0 . 06 ) ;
background : rgba ( 0 , 0 , 0 , 0 . 2 ) ;
}
. watch-all-btn {
padding : 10px 24px ; border-radius : 10px ; font-size : 14px ; font-weight : 600 ;
border : none ; cursor : pointer ; transition : all 0 . 2s ;
}
. watch-all-btn-cancel {
background : rgba ( 255 , 255 , 255 , 0 . 08 ) ; color : rgba ( 255 , 255 , 255 , 0 . 7 ) ;
}
. watch-all-btn-cancel : hover { background : rgba ( 255 , 255 , 255 , 0.12 ) ; color : #fff ; }
. watch-all-btn-primary {
background : rgb ( var ( --accent-rgb ) ) ; color : # fff ;
box-shadow : 0 4px 12px rgba ( var ( --accent-rgb ) , 0 . 3 ) ;
}
. watch-all-btn-primary : hover : not ( : disabled ) {
transform : translateY ( -1px ) ;
box-shadow : 0 6px 20px rgba ( var ( --accent-rgb ) , 0 . 4 ) ;
}
. watch-all-btn-primary : disabled { opacity : 0.4 ; cursor : default ; }
/* Loading state */
. watch-all-loading-state {
display : flex ; flex-direction : column ; align-items : center ; justify-content : center ;
padding : 64px 24px ; gap : 16px ;
}
. watch-all-loading-spinner {
width : 36px ; height : 36px ; border-radius : 50 % ;
border : 3px solid rgba ( 255 , 255 , 255 , 0 . 1 ) ; border-top-color : rgb ( var ( --accent-rgb ) ) ;
animation : watch-all-spin 0 . 8s linear infinite ;
}
@ keyframes watch-all-spin { to { transform : rotate ( 360 deg ) ; } }
. watch-all-loading-text { color : rgba ( 255 , 255 , 255 , 0.6 ) ; font-size : 14 px ; }
. watch-all-loading-count { color : rgba ( 255 , 255 , 255 , 0.3 ) ; font-size : 13 px ; }
/* Stats cards */
. watch-all-stats {
display : flex ; gap : 12px ; padding : 16px 20px ;
position : sticky ; top : 0 ; z-index : 2 ;
background : linear-gradient ( 135deg , rgba ( 20 , 20 , 20 , 0 . 98 ) 0 % , rgba ( 16 , 16 , 16 , 0 . 98 ) 100 % ) ;
border-bottom : 1px solid rgba ( 255 , 255 , 255 , 0 . 06 ) ;
}
. watch-all-stat-card {
flex : 1 ; padding : 12px 16px ; border-radius : 12px ;
background : rgba ( 255 , 255 , 255 , 0 . 03 ) ;
border : 1px solid rgba ( 255 , 255 , 255 , 0 . 06 ) ;
text-align : center ; transition : all 0 . 2s ;
}
. watch-all-stat-card : hover { border-color : rgba ( 255 , 255 , 255 , 0.1 ) ; background : rgba ( 255 , 255 , 255 , 0.05 ) ; }
. watch-all-stat-card . eligible { border-color : rgba ( var ( - - accent - rgb ) , 0.2 ) ; }
. watch-all-stat-card . eligible . watch-all-stat-value { color : rgb ( var ( - - accent - rgb ) ) ; }
. watch-all-stat-card . ineligible . watch-all-stat-value { color : rgba ( 255 , 180 , 80 , 0.8 ) ; }
. watch-all-stat-value { font-size : 22 px ; font-weight : 700 ; color : #fff ; }
. watch-all-stat-label { font-size : 11 px ; color : rgba ( 255 , 255 , 255 , 0.4 ) ; margin-top : 2 px ; text-transform : uppercase ; letter-spacing : 0.5 px ; }
/* Search */
. watch-all-search-wrap { padding : 8 px 20 px 4 px ; position : sticky ; top : 78 px ; z-index : 2 ; background : rgba ( 16 , 16 , 16 , 0.95 ) ; }
. watch-all-search {
width : 100 % ; padding : 10px 16px ; border-radius : 10px ;
background : rgba ( 255 , 255 , 255 , 0 . 06 ) ; border : 1px solid rgba ( 255 , 255 , 255 , 0 . 08 ) ;
color : # fff ; font-size : 14px ; outline : none ; transition : border-color 0 . 2s ;
box-sizing : border-box ;
}
. watch-all-search : focus { border-color : rgba ( var ( - - accent - rgb ) , 0.4 ) ; }
. watch-all-search :: placeholder { color : rgba ( 255 , 255 , 255 , 0.3 ) ; }
/* Section labels */
. watch-all-section-label {
padding : 12px 20px 6px ; font-size : 11px ; font-weight : 600 ;
color : rgba ( 255 , 255 , 255 , 0 . 35 ) ; text-transform : uppercase ; letter-spacing : 1px ;
}
/* Artist grid — two columns */
. watch-all-grid {
display : grid ; grid-template-columns : 1fr 1fr ; gap : 2px ;
padding : 4px 12px 12px ;
}
. watch-all-cell {
display : flex ; align-items : center ; gap : 10px ;
padding : 8px 12px ; border-radius : 10px ;
transition : background 0 . 15s ;
}
. watch-all-cell : hover { background : rgba ( 255 , 255 , 255 , 0.04 ) ; }
. watch-all-cell . dimmed { opacity : 0.4 ; }
. watch-all-cell-img {
width : 38px ; height : 38px ; flex-shrink : 0 ; border-radius : 50 % ; overflow : hidden ;
background : rgba ( 255 , 255 , 255 , 0 . 06 ) ;
}
. watch-all-cell-img img { width : 100 % ; height : 100 % ; object-fit : cover ; display : block ; }
. watch-all-cell-placeholder {
width : 38px ; height : 38px ; border-radius : 50 % ;
background : rgba ( 255 , 255 , 255 , 0 . 06 ) ;
display : flex ; align-items : center ; justify-content : center ; font-size : 16px ;
}
. watch-all-cell-name {
font-size : 13px ; font-weight : 500 ; color : # fff ;
white-space : nowrap ; overflow : hidden ; text-overflow : ellipsis ;
flex : 1 ; min-width : 0 ;
}
. watch-all-cell-meta { font-size : 11 px ; color : rgba ( 255 , 255 , 255 , 0.3 ) ; white-space : nowrap ; }
/* Ineligible collapsible section */
. watch-all-ineligible {
border-top : 1px solid rgba ( 255 , 255 , 255 , 0 . 06 ) ; margin-top : 8px ;
}
. watch-all-ineligible-header {
display : flex ; justify-content : space-between ; align-items : center ;
padding : 12px 20px ; cursor : pointer ; transition : background 0 . 15s ;
}
. watch-all-ineligible-header : hover { background : rgba ( 255 , 255 , 255 , 0.03 ) ; }
. watch-all-ineligible-label { display : flex ; align-items : center ; gap : 8 px ; font-size : 13 px ; color : rgba ( 255 , 180 , 80 , 0.7 ) ; }
. watch-all-ineligible-icon { font-size : 14 px ; }
. watch-all-chevron { font-size : 10 px ; color : rgba ( 255 , 255 , 255 , 0.3 ) ; transition : transform 0.25 s ; }
. watch-all-ineligible . expanded . watch-all-chevron { transform : rotate ( 180 deg ) ; }
. watch-all-ineligible-body {
max-height : 0 ; overflow : hidden ; transition : max-height 0 . 35s ease ;
}
. watch-all-ineligible . expanded . watch-all-ineligible-body { max-height : 400 px ; overflow-y : auto ; }
. watch-all-ineligible-hint {
padding : 8px 20px 4px ; font-size : 12px ; color : rgba ( 255 , 255 , 255 , 0 . 3 ) ;
border-left : 3px solid rgba ( 255 , 180 , 80 , 0 . 3 ) ; margin : 0 20px 8px ; padding-left : 12px ;
}
/* Results state */
. watch-all-results {
display : flex ; flex-direction : column ; align-items : center ; justify-content : center ;
padding : 64px 24px ; gap : 8px ;
}
. watch-all-results-icon {
width : 64px ; height : 64px ; border-radius : 50 % ;
background : rgba ( var ( --accent-rgb ) , 0 . 12 ) ; color : rgb ( var ( --accent-rgb ) ) ;
display : flex ; align-items : center ; justify-content : center ;
font-size : 32px ; margin-bottom : 8px ;
box-shadow : 0 0 24px rgba ( var ( --accent-rgb ) , 0 . 15 ) ;
}
. watch-all-results-title { font-size : 20 px ; font-weight : 600 ; color : #fff ; }
. watch-all-results-detail { font-size : 13 px ; color : rgba ( 255 , 255 , 255 , 0.4 ) ; }
/* Empty / error state */
. watch-all-empty-state {
display : flex ; flex-direction : column ; align-items : center ; justify-content : center ;
padding : 64px 24px ; gap : 8px ; color : rgba ( 255 , 255 , 255 , 0 . 5 ) ; font-size : 14px ;
}
. watch-all-empty-icon { font-size : 36 px ; margin-bottom : 4 px ; opacity : 0.5 ; }
. watch-all-empty-hint { font-size : 12 px ; color : rgba ( 255 , 255 , 255 , 0.3 ) ; margin-top : 4 px ; }
. watch-all-retry-link { color : rgb ( var ( - - accent - rgb ) ) ; text-decoration : none ; margin-top : 8 px ; }
. watch-all-retry-link : hover { text-decoration : underline ; }
. alphabet-selector {
overflow-x : auto ;
-webkit-overflow-scrolling : touch ;