/* File: rod-play.css */ /* Radio On Demand Play Version Styles - DARK THEME ONLY */ /* Program List Styles - DARK THEME - MODIFIED LAYOUT */ .radio-programs-play { margin: 20px 0; } .radio-program-item-play { border: 1px solid #444; border-radius: 12px; padding: 10px; margin-bottom: 15px; background: #1a1a1a; transition: all 0.3s ease; } .radio-program-item-play:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.6); transform: translateY(-2px); border-color: #007cba; background: #222; } .program-header-play { /* Header container styles */ } .program-title-play { margin: 3px 0 5px 0; color: #fff; font-size: 28px; font-weight: 700; line-height: 1.3; width: fit-content; text-shadow: 2px 2px 4px black; } /* MODIFIED: Date and time in one line */ .program-meta-info-play { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; } .program-date-play, .program-time-play { display: flex; align-items: center; gap: 6px; color: #bbb; font-size: 0.9em; font-weight: 500; } .program-date-play i, .program-time-play i { font-size: 16px; } /* MODIFIED: Thumbnail container with duration and play button */ .program-thumbnail-play { position: relative; width: 100%; border-radius: 8px; overflow: hidden; margin-bottom: 0; } .program-thumbnail-play img { width: 100%; height: 250px; object-fit: cover; display: block; } /* MODIFIED: Duration positioned bottom right in thumbnail */ .program-thumbnail-play .program-duration-play { position: absolute; bottom: 7px; right: 7px; background: rgba(0, 0, 0, 0.5); color: #fff; padding: 1px 5px; border-radius: 4px; font-size: 13px; font-weight: 500; align-items: center; backdrop-filter: blur(5px); z-index: 2; } /* MODIFIED: Play button positioned center in thumbnail - TAMPIL DI SEMUA DEVICE */ .program-thumbnail-play .program-play-btn-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.4); color: #fff; border: none; border-radius: 50%; width: 70px; height: 70px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 35px; text-shadow: 3px 3px 6px rgba(0,0,0,0.8); transition: all 0.3s ease; z-index: 2; backdrop-filter: blur(2px); outline: none !important; -webkit-tap-highlight-color: transparent; box-shadow: 0 4px 15px rgba(0, 124, 186, 0.4); } .program-thumbnail-play .program-play-btn-play:hover { background: rgba(0, 0, 0, 0.5); transform: translate(-50%, -50%) scale(1.07); box-shadow: 0 6px 20px rgba(0, 124, 186, 0.6); } /* MODIFIED: Loading icon size for play button */ .program-thumbnail-play .program-play-btn-play.loading i { font-size: 16px !important; animation: rod-spin 1s linear infinite; } /* HIDE mobile play button - TOMBOL PLAY HANYA DI THUMBNAIL */ .program-play-btn-play-mobile { display: none !important; } .program-hosts-play { font-family: Roboto; font-size: 14.5px !important; display: flex; gap: 5px; color: #ccc; flex-wrap: wrap; align-items: center; width: fit-content; } .program-hosts-play i { font-size: 15px; } .program-content-play { display: flex; flex-direction: column; gap: 0; align-items: flex-start; } .program-info-play { flex: 1; width: 100%; display: flex; flex-direction: column; } .program-actions-container-play { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; } .program-excerpt-play { color: #bbb; line-height: 1.6; margin-top: 15px; display: none; } .program-link-play { color: #4da6ff; text-decoration: none; font-weight: 500; padding: 10px 20px; border: 1px solid #4da6ff; border-radius: 6px; transition: all 0.3s ease; font-size: 0.9em; outline: none !important; -webkit-tap-highlight-color: transparent; display: none; order: 3; } .program-link-play:hover { background: #4da6ff; color: #000; } .program-download-btn-play { background: #28a745; color: #fff; border: none; padding: 10px 20px; border-radius: 6px; cursor: pointer; font-size: 0.9em; text-decoration: none; display: inline-block; font-weight: 500; transition: all 0.3s ease; outline: none !important; -webkit-tap-highlight-color: transparent; display: none; order: 4; } .program-download-btn-play:hover { background: #218838; transform: translateY(-2px); } /* Grid Layout */ .rod-layout-grid.radio-programs-play { display: grid; gap: 20px; } .rod-grid-columns-1 { grid-template-columns: 1fr; } .rod-grid-columns-2 { grid-template-columns: repeat(2, 1fr); } .rod-grid-columns-3 { grid-template-columns: repeat(3, 1fr); } .rod-grid-columns-4 { grid-template-columns: repeat(4, 1fr); } .rod-grid-columns-5 { grid-template-columns: repeat(5, 1fr); } .rod-grid-columns-6 { grid-template-columns: repeat(6, 1fr); } .rod-layout-grid .radio-program-item-play { margin-bottom: 0; display: flex; flex-direction: column; height: 100%; } .rod-layout-grid .program-content-play { flex-direction: column; flex: 1; } .rod-layout-grid .program-thumbnail-play { flex: 0 0 auto; margin-bottom: 0; } .rod-layout-grid .program-info-play { display: flex; flex-direction: column; flex: 1; } /* Load More Styles */ .rod-loadmore-wrapper-play { text-align: center; margin-top: 30px; } .rod-loadmore-btn-play { background: #007cba; color: #fff; border: none; padding: 12px 30px; border-radius: 6px; cursor: pointer; font-size: 1em; font-weight: 500; transition: all 0.3s ease; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-loadmore-btn-play:hover { background: #005a87; transform: translateY(-2px); } .rod-loadmore-btn-play:disabled { opacity: 0.7; cursor: not-allowed; transform: none; } .rod-loadmore-btn-play.loading { position: relative; color: transparent; } .rod-loadmore-btn-play.loading::after { content: ""; position: absolute; width: 20px; height: 20px; top: 50%; left: 50%; margin: -10px 0 0 -10px; border: 2px solid #fff; border-top: 2px solid transparent; border-radius: 50%; animation: rod-spin 1s linear infinite; } .rod-loadmore-btn-play:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.5); } /* No programs message */ .rod-no-programs-play { text-align: center; padding: 40px 20px; color: #bbb; font-style: italic; background: #1a1a1a; border-radius: 8px; border: 1px solid #444; } /* Audio Popup Styles - DARK THEME */ .rod-audio-popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; } .rod-popup-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(5px); } .rod-popup-container { position: relative; width: 100%; height: 100%; background: #1a1a1a; display: flex; flex-direction: column; } .rod-popup-close { position: absolute; top: 15px; right: 15px; background: rgba(255, 255, 255, 0.1); color: #fff; border: none; border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 100; transition: all 0.3s ease; backdrop-filter: blur(10px); font-size: 18px; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-popup-close:hover { background: rgba(255, 255, 255, 0.2); transform: scale(1.1); } .rod-popup-close:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } .rod-popup-content { flex: 1; display: flex; flex-direction: column; height: 100%; overflow: hidden; } /* Image Background Section - Mobile First */ .rod-popup-image-section { position: relative; height: 60vh; overflow: hidden; } .rod-popup-image-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .rod-popup-image-bg img { width: 100%; height: 100%; object-fit: cover; } .rod-popup-image-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%); } .rod-popup-info-overlay { position: absolute; bottom: 0; left: 0; width: 100%; padding: 20px 20px 50px 20px; background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, transparent 100%); color: #fff; } .rod-popup-title { font-family: seamstress; text-shadow: 3px 3px 6px rgba(0,0,0,0.8); margin: 0 0 10px 0; font-size: 30px; font-weight: 600; color: #fff; } .rod-popup-meta { display: flex; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; font-size: 0.9em; } /* Styles untuk date dan time di popup */ .rod-popup-meta .program-date-play { color: #fff; font-weight: 500; } .rod-popup-meta .program-time-play { color: #4da6ff; } .rod-popup-duration { color: #28a745; } .rod-popup-hosts { margin-bottom: 15px; color: #ccc; font-size: 0.95em; } /* SCROLLABLE CONTENT TEXT - PERBAIKAN DENGAN EXPANDABLE */ .rod-popup-content-text { color: #bbb; line-height: 1.5; font-size: 0.9em; text-align: justify; max-height: 80px; overflow-y: auto; overflow-x: hidden; margin-top: 8px; scrollbar-width: thin; scrollbar-color: #4da6ff #2a2a2a; transition: max-height 0.3s ease; } /* Custom scrollbar untuk Webkit browsers */ .rod-popup-content-text::-webkit-scrollbar { width: 6px; } .rod-popup-content-text::-webkit-scrollbar-track { background: #2a2a2a; border-radius: 3px; } .rod-popup-content-text::-webkit-scrollbar-thumb { background: #4da6ff; border-radius: 3px; } .rod-popup-content-text::-webkit-scrollbar-thumb:hover { background: #007cba; } .rod-read-more:hover { color: #007cba !important; } /* Audio Player Section - Mobile First */ .rod-popup-player-section { height: 40vh; background: #222; display: flex; flex-direction: column; padding: 15px; } .rod-audio-player-full { flex: 1; display: flex; flex-direction: column; max-width: 100%; margin: 0 10px 5px 10px; } /* Stereo VU Meter */ .rod-vu-container { flex: 1; position: relative; height: 12px; background: #2a2a2a; border-radius: 4px; overflow: hidden; border: 1px solid #444; } .rod-vu-meter { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; background: rgba(0, 0, 0, 0.3); padding: 10px; border-radius: 8px; border: 1px solid #444; } .rod-vu-channel { display: flex; align-items: center; gap: 8px; } .rod-vu-label { color: #fff; font-weight: bold; font-size: 10px; width: 20px; text-align: center; } .rod-vu-left, .rod-vu-right { position: relative; width: 100%; height: 100%; } .rod-vu-level { position: absolute; height: 100%; width: 0%; background: #4da6ff; transition: width 0.1s ease; border-radius: 3px; } /* VU Meter Color States */ .rod-vu-level.rod-vu-low { background: linear-gradient(90deg, #00ff00 0%, #4da6ff 100%); } .rod-vu-level.rod-vu-medium { background: linear-gradient(90deg, #00ff00 0%, #ffff00 50%, #4da6ff 100%); } .rod-vu-level.rod-vu-high { background: linear-gradient(90deg, #00ff00 0%, #ffff00 33%, #ffa500 66%, #4da6ff 100%); } .rod-vu-level.rod-vu-clipping { background: linear-gradient(90deg, #00ff00 0%, #ffff00 25%, #ffa500 50%, #ff0000 75%, #4da6ff 100%); animation: rod-clipping-alert 0.5s infinite alternate; } .rod-vu-peak { position: absolute; top: 0; width: 2px; height: 100%; background: #fff; z-index: 2; transition: left 0.1s ease; } @keyframes rod-clipping-alert { 0% { opacity: 1; } 100% { opacity: 0.5; } } /* Main Controls */ .rod-player-main-controls { display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 20px; } .rod-skip-backward, .rod-skip-forward { background: none; border: 2px solid #4da6ff; color: #4da6ff; border-radius: 8px; padding: 10px 12px; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; gap: 5px; font-size: 0.8em; font-weight: 500; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-skip-backward:hover, .rod-skip-forward:hover { background: #4da6ff; color: #000; transform: scale(1.05); } .rod-skip-backward:focus, .rod-skip-forward:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5); } /* PLAY/PAUSE BUTTON - FIXED NO OUTLINE */ .rod-play-pause { background: linear-gradient(135deg, #007cba 0%, #005a87 100%); color: #fff; border: none; border-radius: 50%; width: 80px; height: 80px; font-size: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0, 124, 186, 0.4); outline: none !important; -webkit-tap-highlight-color: transparent; -webkit-appearance: none; -moz-appearance: none; appearance: none; } .rod-play-pause:hover { transform: scale(1.1); box-shadow: 0 6px 20px rgba(0, 124, 186, 0.6); } .rod-play-pause:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.5), 0 4px 15px rgba(0, 124, 186, 0.4) !important; } .rod-play-pause:active { transform: scale(0.95); } .rod-player-progress-section { margin-bottom: 20px; } .rod-time-display { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; color: #bbb; font-size: 0.85em; font-weight: 500; } .rod-progress-container { width: 100%; } .rod-progress-bar { position: relative; height: 4px; background: #444; border-radius: 3px; cursor: pointer; overflow: hidden; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-progress { position: absolute; height: 100%; background: red !important; border-radius: 3px; width: 0%; transition: width 0.1s ease; } .rod-progress-handle { position: absolute; width: 16px; height: 16px; background: #007cba; border-radius: 50%; top: 50%; transform: translate(-50%, -50%); opacity: 0; transition: opacity 0.3s ease; box-shadow: 0 2px 8px rgba(0, 124, 186, 0.6); } .rod-progress-bar:hover .rod-progress-handle { opacity: 1; } .rod-progress-bar:focus { outline: none !important; } .rod-player-secondary-controls { display: flex; align-items: center; justify-content: center; gap: 15px; flex-wrap: wrap; margin-top: auto; } .rod-volume-control { display: flex; align-items: center; gap: 8px; position: relative; } .rod-volume-btn { background: none; border: none; color: #bbb; cursor: pointer; padding: 6px; border-radius: 4px; transition: all 0.3s ease; font-size: 16px; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-volume-btn:hover { color: #4da6ff; background: rgba(77, 166, 255, 0.1); } .rod-volume-btn:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5); } .rod-volume-slider { width: 80px; } .rod-volume-range { width: 100%; height: 4px; background: #444; border-radius: 2px; outline: none; -webkit-appearance: none; -webkit-tap-highlight-color: transparent; } .rod-volume-range::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; background: #4da6ff; border-radius: 50%; cursor: pointer; box-shadow: 0 2px 6px rgba(77, 166, 255, 0.4); } .rod-volume-range:focus { outline: none; } .rod-speed-control { position: relative; } .rod-speed-btn { background: none; border: 1px solid #444; color: #bbb; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; font-size: 0.85em; font-weight: 500; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-speed-btn:hover { border-color: #4da6ff; color: #4da6ff; } .rod-speed-btn:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5); } .rod-speed-options { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: #222; border: 1px solid #444; border-radius: 6px; padding: 5px; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 10; box-shadow: 0 4px 15px rgba(0,0,0,0.5); display: grid; grid-template-columns: 1fr 1fr; gap: 5px; } .rod-speed-control:hover .rod-speed-options { opacity: 1; visibility: visible; bottom: calc(100% + 10px); } .rod-speed-options button { background: none; border: none; padding: 6px 10px; border-radius: 4px; cursor: pointer; font-size: 0.8em; transition: all 0.3s ease; white-space: nowrap; color: #bbb; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-speed-options button:hover, .rod-speed-options button.active { background: #4da6ff; color: #000; } .rod-speed-options button:focus { outline: none !important; } .rod-replay-control { position: relative; } .rod-replay-btn { background: none; border: 1px solid #444; color: #bbb; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; font-size: 0.85em; font-weight: 500; display: flex; align-items: center; gap: 5px; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-replay-btn:hover { border-color: #4da6ff; color: #4da6ff; } .rod-replay-btn.active { border-color: #28a745; color: #28a745; background: rgba(40, 167, 69, 0.1); } .rod-replay-btn:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.5); } .rod-replay-options { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: #222; border: 1px solid #444; border-radius: 6px; padding: 5px; opacity: 0; visibility: hidden; transition: all 0.3s ease; z-index: 10; box-shadow: 0 4px 15px rgba(0,0,0,0.5); display: grid; grid-template-columns: 1fr 1fr; gap: 5px; min-width: 100px; } .rod-replay-control:hover .rod-replay-options { opacity: 1; visibility: visible; bottom: calc(100% + 10px); } .rod-replay-options button { background: none; border: none; padding: 6px 10px; border-radius: 4px; cursor: pointer; font-size: 0.8em; transition: all 0.3s ease; white-space: nowrap; color: #bbb; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-replay-options button:hover, .rod-replay-options button.active { background: #28a745; color: #000; } .rod-replay-options button:focus { outline: none !important; } .rod-download-btn-popup { background: none; border: 1px solid #28a745; color: #28a745; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; font-size: 16px; outline: none !important; -webkit-tap-highlight-color: transparent; display: none; } .rod-download-btn-popup:hover { background: #28a745; color: #fff; transform: translateY(-1px); } .rod-download-btn-popup:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(40, 167, 69, 0.5); } .rod-fullscreen-btn { background: none; border: 1px solid #444; color: #bbb; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; font-size: 16px; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-fullscreen-btn:hover { border-color: #4da6ff; color: #4da6ff; } .rod-fullscreen-btn:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5); } /* Desktop & Tablet Styles */ @media (min-width: 768px) { .rod-popup-container { width: 90%; height: 90%; max-width: 1000px; max-height: 600px; margin: 2% auto; border-radius: 12px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.8); } .rod-popup-content { flex-direction: row; } .rod-popup-image-section { width: 60%; height: 100%; position: relative; } .rod-popup-info-overlay { padding: 40px 40px 70px 40px; background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, transparent 100%); } .rod-popup-title { font-size: 35px; } /* SCROLLABLE CONTENT TEXT - DESKTOP */ .rod-popup-content-text { max-height: 150px; font-size: 1em; } /* Expanded content on desktop */ .rod-popup-content-text.rod-content-expanded { max-height: calc(100% - 180px) !important; } .rod-popup-player-section { width: 55%; height: 100%; padding: 120px 30px 30px 30px !important; border-left: 1px solid #444; } .rod-audio-player-full { max-width: 100%; } .rod-vu-meter { margin-bottom: 30px; padding: 15px; } .rod-vu-container { height: 20px; } .rod-skip-backward, .rod-skip-forward { padding: 12px 15px; font-size: 0.9em; } .rod-player-main-controls { gap: 30px; } } /* Large Desktop */ @media (min-width: 1200px) { .rod-popup-container { max-width: 1100px; max-height: 650px; } .rod-popup-image-section { width: 40%; } .rod-popup-player-section { width: 45%; } .rod-vu-container { height: 25px; } } /* MODIFIED: Mobile responsive styles - MENGIKUTI DESKTOP LAYOUT */ @media (max-width: 768px) { /* TAMPILAN MOBILE MENGIKUTI DESKTOP - TIDAK ADA PERUBAHAN LAYOUT */ .program-content-play { flex-direction: column; gap: 0; } .program-thumbnail-play img { height: 200px; } .program-title-play { font-size: 24px; } /* MODIFIED: Date and time in one line for mobile */ .program-meta-info-play { gap: 10px; } .program-date-play, .program-time-play { font-size: 0.85em; } /* TOMBOL PLAY TETAP DI THUMBNAIL - TIDAK ADA TOMBOL PLAY TERPISAH */ .program-thumbnail-play .program-play-btn-play { display: flex !important; } .program-play-btn-play-mobile { display: none !important; } .program-actions-container-play { flex-direction: row; align-items: center; gap: 10px; } /* Mobile popup adjustments */ .rod-popup-image-section { height: 50vh; } .rod-popup-player-section { height: 50vh; } /* Grid layout untuk mobile - single column */ .rod-grid-columns-6, .rod-grid-columns-5, .rod-grid-columns-4, .rod-grid-columns-3, .rod-grid-columns-2 { grid-template-columns: 1fr; } } @media (max-width: 576px) { .radio-program-item-play { padding: 15px; } .program-title-play { font-size: 20px; } .program-meta-info-play { font-size: 0.85em; gap: 8px; } .program-thumbnail-play img { height: 180px; } .program-actions-container-play { width: 100%; } /* Mobile small screen adjustments */ .rod-popup-info-overlay { padding: 15px 15px 40px 15px; } .rod-popup-title { font-size: 30px; } .rod-popup-meta { gap: 8px; font-size: 0.8em; } } @keyframes rod-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Loading States */ .program-play-btn-play.loading, .program-play-btn-play-mobile.loading { opacity: 0.7; cursor: not-allowed; } .program-play-btn-play.loading i, .program-play-btn-play-mobile.loading i { animation: rod-spin 1s linear infinite; } .rod-play-pause.loading { opacity: 0.7; cursor: not-allowed; position: relative; } .rod-player-main-controls.loading { opacity: 0.7; } .rod-player-main-controls.loading .rod-play-pause::after { content: ""; position: absolute; width: 30px; height: 30px; top: 50%; left: 50%; margin: -15px 0 0 -15px; border: 2px solid #fff; border-top: 2px solid transparent; border-radius: 50%; animation: rod-spin 1s linear infinite; } /* Fullscreen Styles */ .rod-fullscreen-btn { background: none; border: 1px solid #444; color: #bbb; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; font-size: 16px; outline: none !important; -webkit-tap-highlight-color: transparent; } .rod-fullscreen-btn:hover { border-color: #4da6ff; color: #4da6ff; } .rod-fullscreen-btn:focus { outline: none !important; box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5); } /* Fullscreen mode styles */ body.rod-fullscreen-active { overflow: hidden !important; } #rod-audio-popup:fullscreen { width: 100vw; height: 100vh; background: #000; } #rod-audio-popup:-webkit-full-screen { width: 100vw; height: 100vh; background: #000; } #rod-audio-popup:-moz-full-screen { width: 100vw; height: 100vh; background: #000; } #rod-audio-popup:-ms-fullscreen { width: 100vw; height: 100vh; background: #000; } /* Hide browser UI in fullscreen */ :fullscreen #rod-audio-popup .rod-popup-container { border-radius: 0; max-width: none; max-height: none; width: 100vw; height: 100vh; margin: 0; } :-webkit-full-screen #rod-audio-popup .rod-popup-container { border-radius: 0; max-width: none; max-height: none; width: 100vw; height: 100vh; margin: 0; } :-moz-full-screen #rod-audio-popup .rod-popup-container { border-radius: 0; max-width: none; max-height: none; width: 100vw; height: 100vh; margin: 0; } :-ms-fullscreen #rod-audio-popup .rod-popup-container { border-radius: 0; max-width: none; max-height: none; width: 100vw; height: 100vh; margin: 0; } /* Mobile-specific fullscreen optimizations */ @media (max-width: 768px) { #rod-audio-popup .rod-popup-container { border-radius: 0; } /* Force fullscreen-like appearance on mobile */ body.rod-fullscreen-active #rod-audio-popup .rod-popup-container { width: 100vw !important; height: 100vh !important; max-width: none !important; max-height: none !important; margin: 0 !important; border-radius: 0 !important; } /* Optimize layout for mobile fullscreen */ body.rod-fullscreen-active .rod-popup-image-section { height: 60vh !important; } body.rod-fullscreen-active .rod-popup-player-section { height: 40vh !important; padding: 20px 15px !important; } /* SCROLLABLE CONTENT TEXT - MOBILE FULLSCREEN */ body.rod-fullscreen-active .rod-popup-content-text { max-height: 80px; } /* Expanded content in mobile fullscreen */ body.rod-fullscreen-active .rod-popup-content-text.rod-content-expanded { max-height: calc(100% - 120px) !important; } } /* iOS PWA-like appearance */ @supports (-webkit-touch-callout: none) { body.rod-fullscreen-active { position: fixed; width: 100%; height: 100%; } #rod-audio-popup { -webkit-overflow-scrolling: touch; } } /* Global focus removal for all interactive elements */ button:focus, input:focus, select:focus, textarea:focus { outline: none !important; } /* Specific focus styles for accessibility */ .rod-play-pause:focus-visible { box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.5) !important; } button:focus-visible { box-shadow: 0 0 0 2px rgba(77, 166, 255, 0.5) !important; } /* Pembatasan 2 Baris untuk Konten */ .rod-content-truncated { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 19px; max-height: calc(1.4em * 3); } .rod-popup-content-inner { max-height: 160px; overflow-y: auto; overflow-y: scroll; scrollbar-width: none !important; } /* Custom scrollbar untuk Webkit browsers */ .rod-popup-content-inner::-webkit-scrollbar { width: 6px; scrollbar-width: none !important; } .rod-popup-content-inner::-webkit-scrollbar-track { background: #2a2a2a; border-radius: 3px; } .rod-popup-content-inner::-webkit-scrollbar-thumb { background: #4da6ff; border-radius: 3px; } .rod-popup-content-inner::-webkit-scrollbar-thumb:hover { background: #007cba; } /* Konten yang diperluas */ .rod-popup-content-inner.rod-content-expanded { max-height: 300px !important; -webkit-line-clamp: unset !important; display: block !important; } /* Read More link styling */ .rod-read-more, .rod-back-button { position: absolute; right: 5px; bottom: 5px; font-size: 12px; cursor: pointer; font-weight: 500; display: inline-block; transition: all 0.3s ease; background: rgba(77, 166, 255, 0.2); padding: 0px 6px 2px 6px; border-radius: 4px; color: var(--rod-accent) !important; transition: all 0.5s ease; } .rod-read-more:hover { color: #007cba !important; } /* Back button styles */ .rod-back-container { /* Styles for back container */ } .rod-back-button:hover { color: #007cba !important; } /* Style untuk tampilan tanggal dan waktu di popup */ .rod-popup-date { color: #fff !important; font-weight: 600 !important; background: rgba(0, 124, 186, 0.3); padding: 4px 8px; border-radius: 4px; font-size: 0.9em !important; } .rod-popup-time { color: #4da6ff !important; font-weight: 600 !important; background: rgba(77, 166, 255, 0.2); padding: 4px 8px; border-radius: 4px; font-size: 0.9em !important; } .rod-popup-duration { color: #28a745 !important; font-weight: 600 !important; background: rgba(40, 167, 69, 0.2); padding: 4px 8px; border-radius: 4px; font-size: 0.9em !important; display: none !important; } /* Perbaikan layout meta info */ .rod-popup-meta { display: flex; gap: 8px; margin-bottom: 12px !important; flex-wrap: wrap; align-items: center; } .rod-popup-meta span { display: inline-block; } /* Modern Dot Pulse Animation Styles */ .rod-dot-pulse { display: none; align-items: center; justify-content: center; gap: 4px; margin: 0 8px; height: 20px; } .rod-dot-pulse span { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #4da6ff; animation: rod-dot-pulse 1.4s ease-in-out infinite both; } .rod-dot-pulse span:nth-child(1) { animation-delay: -0.32s; } .rod-dot-pulse span:nth-child(2) { animation-delay: -0.16s; } .rod-dot-pulse span:nth-child(3) { animation-delay: 0s; } @keyframes rod-dot-pulse { 0%, 80%, 100% { transform: scale(0.8); opacity: 0.5; background: #4da6ff; } 40% { transform: scale(1.2); opacity: 1; background: #007cba; box-shadow: 0 0 8px rgba(0, 124, 186, 0.6); } } /* Time display dengan dot pulse */ .rod-time-display { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; color: #bbb; font-size: 0.85em; font-weight: 500; } /* Responsive dot pulse */ @media (max-width: 768px) { .rod-dot-pulse { margin: 0 6px; } .rod-dot-pulse span { width: 5px; height: 5px; } }