/* Player-only layout: readable labels and clear, consistent controls. */
#features-1 > .container { max-width: 1440px; }
#features-1 .row > [class*="col-"] { min-width: 0; }
#features-1 h2.display-7 { font-size: clamp(1.2rem, 1.65vw, 1.5rem); line-height: 1.25; margin-bottom: 16px; overflow-wrap: anywhere; hyphens: none; }
#features-1 #customerConfig summary { font-size: clamp(1.15rem, 1.7vw, 1.55rem); line-height: 1.35; }
#features-1 .player_play_kachel_pro.p-4 { padding: 22px !important; border-radius: 18px; }
#features-1 .small, #features-1 label, #features-1 .source-label { font-size: 13px; line-height: 1.55; }
#features-1 label, #features-1 .source-label { display: block; margin-bottom: 6px; font-weight: 600; }
#features-1 p { overflow-wrap: anywhere; }
#features-1 button, #features-1 .form-control, #features-1 .form-select { font-size: 13px; line-height: 1.45; }
#features-1 button { white-space: normal; overflow-wrap: anywhere; height: auto; max-width: 100%; border-radius: 9px; padding: 9px 11px; }
#features-1 button:focus-visible, #features-1 summary:focus-visible { outline: 3px solid #57bcff; outline-offset: 3px; }
#features-1 button:disabled { opacity: .48; cursor: not-allowed; }
#features-1 .badge { white-space: normal; line-height: 1.4; }
#nowPlaying { font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
#features-1 .muted { color: #b8c3d4; font-size: 13px; }

/* Announcement panel requested in white, with black buttons. */
#features-1 #infoAnnouncements { background: #fff !important; color: #17212d; border: 1px solid #dce2e8; box-shadow: 0 8px 26px #00000020; }
#infoAnnouncements h2, #infoAnnouncements label { color: #17212d; }
#features-1 #infoAnnouncements .row > .col-6 { padding: 0 6px; margin-bottom: 10px !important; display: flex; }
#features-1 #infoAnnouncements button { background: #171a1e; color: #fff; border: 1px solid #171a1e; font-size: 12px; line-height: 1.45; min-height: 58px; height: auto !important; margin: 0 !important; padding: 12px 8px; hyphens: none !important; word-break: normal; overflow-wrap: anywhere; }
#features-1 #infoAnnouncements button:hover { background: #303943; }
#features-1 #infoAnnouncements button.playing { background: #0877b9; border-color: #0877b9; }
#infoVolumeBar { accent-color: #0877b9; }

/* Single-purpose file selectors; the native split file control stays hidden. */
.file-choice-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
#features-1 .file-choice { display: flex; align-items: center; justify-content: flex-start; gap: 10px; width: 100%; background: #edf4fb; color: #132334; border-color: #d9e7f5; text-align: left; font-weight: 600; }
#features-1 .file-choice:hover { background: #dbeafa; }
.source-notes { font-size: 12px; color: #c2d0df; }
.source-notes summary { cursor: pointer; line-height: 1.6; }
.source-notes p:last-child { margin-bottom: 0; }
#musicSources .wdg_liste { height: auto; max-height: 190px; }
#localMusicStatus, #playerStatus, #programQueueStatus { color: #c2d0df; font-size: 12px !important; line-height: 1.55; }
#clearLocalMusic { margin-top: 2px; }

/* Fixed action columns keep every title readable, even with long filenames. */
#programQueue { counter-reset: queue; padding-left: 0 !important; max-height: 380px !important; }
#programQueue > li { counter-increment: queue; display: grid; grid-template-columns: 16px minmax(0, 1fr) repeat(3, 28px); gap: 4px; align-items: center; padding: 10px 0; margin: 0; border-bottom: 1px solid #ffffff16; }
#programQueue > li::before { content: counter(queue) "."; color: #a9bfd3; font-size: 11px; }
#features-1 #programQueue > li > button { min-width: 0; padding: 5px 0; min-height: 30px; font-size: 14px; }
#features-1 #programQueue > li > button:first-of-type { text-align: left; line-height: 1.5; font-size: 12px; padding: 8px; border-color: transparent; background: #ffffff06; }
#programQueuePanel > button { margin: 0 4px 7px 0; }
#playlistMusic li, #playlistLocal li { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
#playlistMusic a, #playlistLocal a { flex: 1; min-width: 0; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
#playlistMusic button, #playlistLocal button { flex: 0 0 28px; margin-left: 0 !important; }
#playlistAds a { color: #a8cafa; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
#radioResults button { text-align: left; }
#radioToMusic, #radioReturn, #addRadioToQueue { width: 100%; margin-top: 8px; }
#radioSelection { margin-top: 10px; }

/* High-contrast scrollbar, visible against the dark panel. */
#programQueue, .wdg_liste, #radioResults { scrollbar-width: auto; scrollbar-color: #54b8ff #071421; scrollbar-gutter: stable; padding-right: 8px; }
#programQueue::-webkit-scrollbar, .wdg_liste::-webkit-scrollbar, #radioResults::-webkit-scrollbar { width: 12px; }
#programQueue::-webkit-scrollbar-track, .wdg_liste::-webkit-scrollbar-track, #radioResults::-webkit-scrollbar-track { background: #071421; border-radius: 8px; }
#programQueue::-webkit-scrollbar-thumb, .wdg_liste::-webkit-scrollbar-thumb, #radioResults::-webkit-scrollbar-thumb { background: #54b8ff; border: 2px solid #071421; border-radius: 8px; min-height: 40px; }
#programQueue::-webkit-scrollbar-thumb:hover, .wdg_liste::-webkit-scrollbar-thumb:hover, #radioResults::-webkit-scrollbar-thumb:hover { background: #a4dcff; }
#features-1 .custom-audio-player { padding: 15px !important; }
.player-duration { flex-wrap: wrap; gap: 8px; }
#features-1 .audio-btn { flex: 0 0 36px; width: 36px; height: 36px; padding: 0; }
#progressBar { flex: 1 1 70px; min-width: 50px; }
#volumeBar { width: 52px; }
@media (max-width: 575px) {
    #features-1 > .container { padding-left: 14px !important; padding-right: 14px !important; }
    #features-1 .player_play_kachel_pro.p-4 { padding: 18px !important; }
    #customerConfigForm > .row { --bs-gutter-x: 16px; }
}

/* Balanced columns and a shared, full-width operations area. */
.player-column { display: flex; flex-direction: column; gap: 16px; }
#features-1 .player-column > .mb-4 { margin-bottom: 0 !important; }
.transport-actions, .playlist-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
#features-1 .transport-actions button, #features-1 .playlist-actions button { width: 100% !important; margin: 0 !important; }
.announcement-microphone { border-top: 1px solid #dce2e8; padding-top: 16px; margin-top: 6px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
#features-1 #infoAnnouncements .announcement-microphone > button { width: 240px; max-width: 100%; min-height: 48px; }
.announcement-microphone > button[hidden] { display: none !important; }
#features-1 #infoAnnouncements #micStop { background: #a32929; border-color: #a32929; }
.announcement-microphone p { margin: 0; }
.mic-options { width: 100%; font-size: 12px; }
.mic-options summary { cursor: pointer; padding: 4px; }
.mic-options[open] summary { margin-bottom: 10px; }
.mic-options input { width: 180px; max-width: 100%; accent-color: #0877b9; }
.mic-options p { margin-top: 10px; text-align: left; }
#playerOperations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0 16px 24px; }
#playerOperations > h2 { grid-column: 1 / -1; margin-bottom: 0; }
#playerOperations .operation-section { min-width: 0; padding: 18px; border: 1px solid #ffffff20; border-radius: 12px; }
#playerOperations summary, .player-statistics summary { cursor: pointer; font-size: 16px; font-weight: 600; }
.player-statistics[open] summary { margin-bottom: 16px; }
@media (max-width: 767px) { #playerOperations { grid-template-columns: 1fr; margin-left: 0; margin-right: 0; } }
#features-1 .player-column > .player_play_kachel_pro { flex: 0 0 auto; }

#customerGenres .genre-percentage { display:block; font-weight:700; color:#9bd6ff; margin-bottom:6px; }
#customerGenres input[type="range"] { width:100%; accent-color:#54b8ff; cursor:pointer; }

#demoProFeatures { margin: 0 16px 60px; }
.demo-pro-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.demo-pro-grid > section { padding:18px; border:1px solid #ffffff25; border-radius:12px; min-width:0; }
.demo-pro-grid h3 { font-size:18px; line-height:1.4; }
.demo-pro-grid p { font-size:13px; line-height:1.6; }
.demo-pro-grid fieldset { opacity:.6; }
.demo-pro-grid label { margin-bottom:12px !important; }
.demo-pro-grid input[type=range] { display:block; width:100%; }
.pro-preview-notice { background:#25384d; padding:14px; border-radius:10px; }
@media(max-width:991px) { .demo-pro-grid { grid-template-columns:1fr; } }

/* Shared horizontal edges across all three columns. */
.player-grid-group { display:flex; flex-direction:column; gap:16px; min-width:0; }
#features-1 .player-grid-group > .mb-4 { margin-bottom:0 !important; }
#features-1 .player-grid-group > .player_play_kachel_pro { min-height:0; }
#features-1 .player-grid-group > .player_play_kachel_pro:last-of-type { flex:1; }
#features-1 #playerOperations, #features-1 #demoProFeatures { margin-left:0; margin-right:0; }
@media(min-width:992px) {
 #features-1 .player-layout { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0 0 24px; }
 #features-1 .player-column { display:contents; }
 .player-column:nth-child(1) .group-top { grid-area:1 / 1; }
 .player-column:nth-child(1) .group-bottom { grid-area:2 / 1; }
 .player-column:nth-child(2) .group-top { grid-area:1 / 2; }
 .player-column:nth-child(2) .group-bottom { grid-area:2 / 2; }
 #features-1 #musicSources { grid-area:1 / 3; margin:0 !important; }
 #features-1 #musicSources + div { grid-area:2 / 3; margin:0 !important; }
 .player-grid-group > .player_play_kachel { margin:0 !important; }
}
@media(min-width:992px) {
 .group-bottom { display:grid; grid-template-rows:repeat(2,minmax(0,1fr)); gap:16px; }
 .group-bottom > script { display:none; }
 .group-bottom > .player_play_kachel_pro { height:100%; }
}
/* Align the outside of each column, without imposing equal-height inner rows. */
@media(min-width:992px) {
 #features-1 .player-layout { align-items:stretch; }
 #features-1 .player-column { display:flex; width:auto; padding:0 !important; margin:0 !important; min-width:0; gap:16px; }
 #features-1 .player-grid-group { display:contents; }
 #features-1 .player-column > .player-grid-group > .player_play_kachel_pro,
 #features-1 .player-column > .player-grid-group > .player_play_kachel,
 #features-1 #musicSources, #features-1 #musicSources + div {
  height:auto; min-height:0; flex:0 0 auto;
 }
 #features-1 .player-column > .group-bottom > .player_play_kachel_pro:last-child { flex:1 0 auto; }
 #features-1 .player-column > #musicSources + div { flex:1 0 auto; }
}
#features-1 .group-bottom .wdg_liste { height:auto; max-height:280px; }
