.bs-radio-player{
	--bsr-bg:#ffffff;
	--bsr-fg:#222222;
	--bsr-muted:#777777;
	--bsr-accent:#e63946;
	--bsr-accent-fg:#ffffff;
	--bsr-btn-bg:var(--bsr-accent);
	--bsr-border:#e5e5e5;
	--bsr-radius:14px;
	--bsr-shadow:0 2px 10px rgba(0,0,0,.08);
	--bsr-font:inherit;

	box-sizing:border-box;
	max-width:420px;
	width:100%;
	position:relative;
	background:var(--bsr-bg);
	color:var(--bsr-fg);
	border:1px solid var(--bsr-border);
	border-radius:var(--bsr-radius);
	box-shadow:var(--bsr-shadow);
	padding:18px;
	font-family:var(--bsr-font);
}
.bs-radio-player *{box-sizing:border-box;}
.bs-radio-player.bs-radio-error{color:#b00020;padding:12px;font-size:13px;}

.bsr-header{display:flex;align-items:center;gap:12px;}
.bsr-art-wrap{position:relative;flex:0 0 auto;}
.bsr-logo{width:64px;height:64px;border-radius:10px;overflow:hidden;background:var(--bsr-border);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.bsr-logo img{width:100%;height:100%;object-fit:cover;}
.bsr-logo-fallback{font-size:28px;}
.bsr-albumart{width:64px;height:64px;border-radius:10px;object-fit:cover;position:absolute;top:0;left:0;}

.bsr-cd{width:64px;height:64px;position:relative;}
.bsr-cd-disc{
	width:64px;height:64px;border-radius:50%;
	background:
		conic-gradient(from 0deg,
			rgba(255,255,255,.10) 0deg 8deg, rgba(0,0,0,0) 8deg 90deg,
			rgba(255,255,255,.07) 90deg 98deg, rgba(0,0,0,0) 98deg 180deg,
			rgba(255,255,255,.10) 180deg 188deg, rgba(0,0,0,0) 188deg 270deg,
			rgba(255,255,255,.07) 270deg 278deg, rgba(0,0,0,0) 278deg 360deg
		),
		radial-gradient(circle at center, #1a1a1a 0 18%, #2b2b2b 18% 20%, #111 20% 55%, #1a1a1a 55% 100%);
	display:flex;align-items:center;justify-content:center;overflow:hidden;
	box-shadow:0 2px 8px rgba(0,0,0,.4);
	transition:transform .3s linear;
}
.bsr-cd-disc.bsr-spinning{animation:bsr-spin 3s linear infinite;}
@keyframes bsr-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.bsr-cd-label{width:34px;height:34px;border-radius:50%;object-fit:cover;position:relative;z-index:1;}
.bsr-cd-hole{
	width:6px;height:6px;border-radius:50%;background:#ccc;
	position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
	box-shadow:0 0 0 1px rgba(255,255,255,.15);
}

.bsr-info{flex:1 1 auto;min-width:0;}
.bsr-station-name{margin:0;font-size:16px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bsr-frequency{font-size:12px;color:var(--bsr-muted);margin-top:2px;}
.bsr-status{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px;color:var(--bsr-muted);}
.bsr-status-dot{width:8px;height:8px;border-radius:50%;background:#bbb;flex:0 0 auto;}
.bs-radio-player[data-live="1"] .bsr-status-dot{background:#2ecc71;box-shadow:0 0 0 0 rgba(46,204,113,.6);animation:bsr-pulse 1.6s infinite;}
.bs-radio-player[data-live="0"] .bsr-status-dot{background:#e63946;}
@keyframes bsr-pulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.5);}70%{box-shadow:0 0 0 6px rgba(46,204,113,0);}100%{box-shadow:0 0 0 0 rgba(46,204,113,0);}}

.bsr-nowplaying{margin-top:12px;padding:8px 10px;border-radius:8px;background:rgba(0,0,0,.03);}
.bsr-np-title{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bsr-np-artist{font-size:11px;color:var(--bsr-muted);margin-top:2px;}

.bsr-visualizer-wrap{margin-top:12px;height:48px;}
.bsr-visualizer{width:100%;height:100%;display:block;}

.bsr-controls{display:flex;align-items:center;gap:10px;margin-top:14px;}
.bs-radio-player .bsr-btn{
	width:40px;height:40px;border-radius:50%;border:none;
	background:var(--bsr-btn-bg);color:var(--bsr-accent-fg);
	display:flex;align-items:center;justify-content:center;cursor:pointer;
	flex:0 0 auto;transition:transform .15s ease, opacity .15s ease;
	padding:0;margin:0;box-shadow:none;font:inherit;line-height:normal;
}
.bs-radio-player .bsr-btn:hover{opacity:.9;}
.bs-radio-player .bsr-btn:active{transform:scale(.94);}
.bs-radio-player .bsr-btn svg{width:18px;height:18px;fill:currentColor;}
.bs-radio-player .bsr-play-pause{width:48px;height:48px;}
.bs-radio-player .bsr-play-pause svg{width:22px;height:22px;}
.bs-radio-player .bsr-stop svg{width:16px;height:16px;}
.bs-radio-player .bsr-controls .bsr-volume-wrap .bsr-mute{width:34px;height:34px;}
.bs-radio-player .bsr-mute svg{width:18px;height:18px;}

.bsr-volume-wrap{display:flex;align-items:center;gap:6px;flex:1 1 auto;}
.bs-radio-player .bsr-volume{flex:1 1 auto;accent-color:var(--bsr-btn-bg);padding:0;}

.bsr-description{
	font-size:12px;color:var(--bsr-muted);line-height:1.5;
	margin-top:12px;padding:10px 12px;
	border:1px solid var(--bsr-border);border-radius:10px;
	background:rgba(0,0,0,.015);
}

.bsr-youtube-live{margin-top:12px;}
.bsr-youtube-live-label{font-size:11px;font-weight:700;color:var(--bsr-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;}
.bs-radio-player .bsr-youtube-embed-wrap{
	position:relative !important;
	width:100% !important;
	height:0 !important;
	padding:0 0 56.25% 0 !important; /* rasio 16:9 */
	border-radius:10px;overflow:hidden;background:#000;
}
.bs-radio-player .bsr-youtube-embed-wrap iframe{
	position:absolute !important;
	top:0 !important;left:0 !important;
	width:100% !important;height:100% !important;
	max-width:100%;max-height:none !important;
	border:0;margin:0;padding:0;
}
.bsr-address{
	font-size:12px;color:var(--bsr-muted);
	margin-top:8px;padding:10px 12px;
	border:1px solid var(--bsr-border);border-radius:10px;
	background:rgba(0,0,0,.015);
}

.bsr-announcers{margin-top:12px;}
.bsr-announcers-label{font-size:11px;font-weight:700;color:var(--bsr-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;}

.bsr-announcers-slider{position:relative;padding:0 22px;}
.bsr-announcers-viewport{overflow:hidden;}
.bsr-announcers-track{display:flex;transition:transform .3s ease;}
.bsr-announcer-slide{flex:0 0 100%;display:flex;gap:8px;}

.bsr-announcer-card{
	flex:1 1 50%;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;
	padding:8px 4px;border-radius:12px;cursor:pointer;
	transition:transform .1s ease;
}
.bsr-announcer-card:hover{transform:translateY(-1px);}
.bsr-announcer-card-photo{
	width:70px;height:70px;border-radius:50%;overflow:hidden;margin-bottom:6px;
	background:var(--bsr-border);display:flex;align-items:center;justify-content:center;
	box-shadow:0 2px 6px rgba(0,0,0,.12);
}
.bsr-announcer-card-photo img{width:100%;height:100%;object-fit:cover;}
.bsr-announcer-photo-fallback{font-size:18px;}
.bsr-announcer-card-name{font-size:12px;font-weight:700;color:var(--bsr-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.bsr-announcer-card-role{font-size:10.5px;color:var(--bsr-accent);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}

.bs-radio-player .bsr-announcers-nav-btn{
	position:absolute;top:50%;transform:translateY(-50%);
	width:24px;height:24px;border-radius:50%;border:none;
	background:var(--bsr-btn-bg);color:var(--bsr-accent-fg);
	cursor:pointer;display:flex;align-items:center;justify-content:center;
	font-size:13px;line-height:1;padding:0;z-index:5;
	box-shadow:0 2px 6px rgba(0,0,0,.2);
	opacity:.9;
}
.bs-radio-player .bsr-announcers-nav-btn:hover{opacity:1;}
.bsr-announcers-prev{left:0;}
.bsr-announcers-next{right:0;}

/* Popup detail biodata penyiar - overlay & center di dalam kotak .bs-radio-player saja */
.bsr-announcer-popup-overlay{
	position:absolute;inset:0;
	background:rgba(0,0,0,.6);
	display:none;align-items:center;justify-content:center;
	z-index:999;padding:16px;
	border-radius:var(--bsr-radius,14px);
	overflow-y:auto;
}
.bsr-announcer-popup-overlay.bsr-active{display:flex;}
.bsr-announcer-popup{
	position:relative;
	background:var(--bsr-bg,#fff);color:var(--bsr-fg,#222);
	border-radius:16px;padding:24px 18px 18px;
	width:100%;max-width:320px;
	max-height:100%;overflow-y:auto;
	box-shadow:0 20px 50px rgba(0,0,0,.4);
	margin:auto;
}
.bsr-announcer-popup-close{
	position:absolute;top:8px;right:8px;
	width:26px;height:26px;border-radius:50%;border:none;
	background:rgba(0,0,0,.08);color:var(--bsr-fg);
	cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;
}
.bsr-announcer-popup-photo{
	width:130px;height:130px;border-radius:50%;overflow:hidden;margin:0 auto 10px;
	background:var(--bsr-border);display:flex;align-items:center;justify-content:center;
	font-size:26px;
}
.bsr-announcer-popup-photo img{width:100%;height:100%;object-fit:cover;}
.bsr-announcer-popup-name{text-align:center;font-size:15px;font-weight:800;color:var(--bsr-fg);}
.bsr-announcer-popup-role{text-align:center;font-size:12px;color:var(--bsr-accent);font-weight:700;margin-top:2px;}
.bsr-announcer-popup-schedule{text-align:center;font-size:11.5px;color:var(--bsr-muted);margin-top:4px;}
.bsr-announcer-popup-bio{font-size:12.5px;line-height:1.6;color:var(--bsr-fg);margin-top:12px;}
.bsr-announcer-popup-bio p{margin:0 0 8px;}
.bsr-announcer-popup-social{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px;}
.bsr-announcer-popup-social-link{
	width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.06);
	display:flex;align-items:center;justify-content:center;color:var(--bsr-fg);text-decoration:none;
}
.bsr-announcer-popup-social-link svg{width:14px;height:14px;}
.bsr-announcer-popup-social-link:hover{background:var(--bsr-accent);color:var(--bsr-accent-fg);}

.bsr-schedule{margin-top:12px;}
.bsr-schedule-label{font-size:11px;font-weight:700;color:var(--bsr-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;}

/* ---- Tab pilih hari ---- */
.bsr-schedule-tabs{
	display:flex;gap:6px;overflow-x:auto;
	margin-bottom:8px;padding:2px 2px 8px;
	cursor:grab;
}
.bsr-schedule-tabs.bsr-dragging{cursor:grabbing;user-select:none;}
.bsr-schedule-tabs::-webkit-scrollbar{height:4px;}
.bsr-schedule-tabs::-webkit-scrollbar-thumb{background:var(--bsr-border);border-radius:10px;}
.bsr-schedule-tabs::-webkit-scrollbar-track{background:transparent;}
.bs-radio-player .bsr-schedule-tab-btn{
	flex:0 0 auto;position:relative;
	border:1px solid var(--bsr-border);background:transparent;color:var(--bsr-muted);
	font-size:11px;font-weight:700;
	padding:6px 13px;border-radius:20px;
	cursor:pointer;white-space:nowrap;
	transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.bs-radio-player .bsr-schedule-tab-btn:hover{border-color:var(--bsr-accent);color:var(--bsr-accent);}
.bs-radio-player .bsr-schedule-tab-btn.bsr-active{
	background:var(--bsr-accent);border-color:var(--bsr-accent);color:var(--bsr-accent-fg);
}
.bsr-schedule-tab-dot{
	display:inline-block;width:5px;height:5px;border-radius:50%;
	background:#2ecc71;margin-left:5px;vertical-align:middle;
}
.bsr-schedule-tab-btn.bsr-active .bsr-schedule-tab-dot{background:#fff;}

/* ---- Tabel jadwal (per panel hari) ---- */
.bsr-schedule-table-wrap{
	max-height:300px;
	overflow-y:auto;
	overflow-x:hidden;
	border:1px solid var(--bsr-border);
	border-radius:12px;
	background:var(--bsr-bg);
}

.bsr-schedule-table{
	display:none;
	width:100%;
	margin:0;padding:0;
	border-collapse:collapse;
	border-spacing:0;
	font-size:12px;
	background:var(--bsr-bg);
}
.bsr-schedule-table.bsr-active{display:table;}

.bsr-schedule-table thead th{
	background:var(--bsr-bg);
	color:var(--bsr-muted);
	font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
	text-align:left;
	padding:9px 10px;
	border-bottom:1px solid var(--bsr-border);
}
.bsr-schedule-th-time{width:64px;}

.bsr-schedule-row td{
	padding:8px 10px;
	border-bottom:1px solid var(--bsr-border);
	vertical-align:middle;
	background:var(--bsr-bg);
}
.bsr-schedule-row:last-child td{border-bottom:none;}
.bsr-schedule-row:hover td{background:rgba(128,128,128,.08);background:color-mix(in srgb, var(--bsr-fg) 6%, var(--bsr-bg));}

.bsr-schedule-row-live td{background:rgba(230,57,70,.06);background:color-mix(in srgb, var(--bsr-accent) 10%, var(--bsr-bg));}
.bsr-schedule-row-live:hover td{background:rgba(230,57,70,.1);background:color-mix(in srgb, var(--bsr-accent) 16%, var(--bsr-bg));}

.bsr-schedule-time-cell{
	font-weight:700;color:var(--bsr-accent);
	font-size:11px;line-height:1.4;
	white-space:nowrap;
}

.bsr-schedule-program-inner{display:flex;align-items:center;gap:8px;}
.bsr-schedule-thumb{
	flex:0 0 auto;width:32px;height:32px;border-radius:8px;object-fit:cover;
	box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.bsr-schedule-text{min-width:0;flex:1 1 auto;}
.bsr-schedule-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bsr-schedule-title{font-weight:700;color:var(--bsr-fg);font-size:12px;line-height:1.3;}
.bsr-schedule-announcer{font-size:10.5px;color:var(--bsr-muted);margin-top:2px;}

.bsr-schedule-live-badge{
	display:inline-flex;align-items:center;gap:3px;
	font-size:8.5px;font-weight:800;letter-spacing:.3px;
	background:#e63946;color:#fff;
	padding:2px 7px;border-radius:20px;
	animation:bsr-live-pulse 1.6s infinite;
	flex:0 0 auto;
}
@keyframes bsr-live-pulse{
	0%{box-shadow:0 0 0 0 rgba(230,57,70,.55);}
	70%{box-shadow:0 0 0 5px rgba(230,57,70,0);}
	100%{box-shadow:0 0 0 0 rgba(230,57,70,0);}
}

/* Scrollbar tipis khusus di area tabel jadwal, biar tetap rapi kalau isinya panjang */
.bsr-schedule-table-wrap::-webkit-scrollbar{width:6px;height:6px;}
.bsr-schedule-table-wrap::-webkit-scrollbar-thumb{background:var(--bsr-border);border-radius:10px;}
.bsr-schedule-table-wrap::-webkit-scrollbar-track{background:transparent;}

.bsr-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.bsr-social-link{
	width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.06);
	display:flex;align-items:center;justify-content:center;
	color:var(--bsr-fg);text-decoration:none;
}
.bsr-social-link svg{width:15px;height:15px;display:block;}
.bsr-social-link:hover{background:var(--bsr-accent);color:var(--bsr-accent-fg);}

.bsr-stores{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.bsr-store-badge{
	font-size:11px;padding:7px 12px;border-radius:8px;background:#111;color:#fff;
	text-decoration:none;display:inline-flex;align-items:center;gap:6px;
}
.bsr-store-badge svg{width:15px;height:15px;flex:0 0 auto;}
.bsr-store-badge:hover{opacity:.85;}
