body:not(.pb-song-mode) #pbPracticeCenter { display: none !important; }

.pbPracticeCenter {
	--pc-blue: #0a84ff;
	--pc-blue-dark: #0068c9;
	--pc-ink: #1d1d1f;
	--pc-muted: #6e6e73;
	--pc-line: rgba(0,0,0,.09);
	display: block;
	margin: 10px 12px 8px;
	color: var(--pc-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.pbPracticeCenter [hidden] { display: none !important; }
.pbPracticeCenter button { font: inherit; }

.pbPracticeCenterLoading {
	min-height: 124px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	border: 1px solid var(--pc-line);
	border-radius: 20px;
	background: #fff;
}

.pbPracticeCenterLoading > span {
	width: 24px;
	height: 24px;
	border: 3px solid #d9e9fb;
	border-top-color: var(--pc-blue);
	border-radius: 50%;
	animation: pbPcSpin .8s linear infinite;
}

.pbPracticeCenterLoading div { display: flex; flex-direction: column; gap: 3px; }
.pbPracticeCenterLoading small { color: var(--pc-muted); }
@keyframes pbPcSpin { to { transform: rotate(360deg); } }

.pbPracticeCenterOverview { display: block; }
.pbPcSongBar {
	display: grid;
	grid-template-columns: minmax(190px,1.15fr) minmax(188px,.72fr) minmax(170px,.72fr) auto;
	align-items: center;
	gap: 14px;
	min-height: 72px;
	box-sizing: border-box;
	padding: 8px 16px;
	border-bottom: 1px solid var(--pc-line);
	background: rgba(255,255,255,.96);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

.pbPcSongIdentity,
.pbPcSongPlan { min-width: 0; }
.pbPcSongIdentity h1 {
	margin: 0;
	overflow: hidden;
	font-size: clamp(16px,1.5vw,21px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.025em;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.pbPcSongIdentity p {
	margin: 4px 0 0;
	overflow: hidden;
	color: #3f4650;
	font-size: 12px;
	font-weight: 650;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pbPcSongPrimary,
.pbPcPrimaryButton {
	min-height: 44px;
	padding: 10px 15px;
	border: 0;
	border-radius: 11px;
	background: linear-gradient(180deg,#178bff 0%,#0675e7 100%);
	color: #fff;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 7px 18px rgba(10,132,255,.22);
}
.pbPcSongPrimary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-width: 0;
}
.pbPcSongPrimary:hover,
.pbPcPrimaryButton:hover { background: var(--pc-blue-dark); }
.pbPcSongPrimaryIcon { font-size: 15px; }
.pbPcSongPrimaryLabel {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pbPcSongPlan { display: grid; gap: 4px; }
.pbPcSongPlanLine {
	display: flex;
	min-width: 0;
	gap: 4px;
	font-size: 11px;
	line-height: 1.25;
}
.pbPcSongPlanLine span { flex: none; color: var(--pc-muted); }
.pbPcSongPlanLine b {
	overflow: hidden;
	font-weight: 750;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pbPcHeaderTools {
	display: grid;
	grid-template-columns: repeat(3,minmax(54px,auto));
	align-items: stretch;
	gap: 5px;
}
.pbPcHeaderToolWrap { position: relative; min-width: 0; }
.pbPcHeaderTool {
	width: 100%;
	min-height: 52px;
	padding: 5px 7px;
	border: 0;
	border-radius: 11px;
	background: #f5f6f8;
	color: #20252d;
	cursor: pointer;
}
.pbPcHeaderTool:hover,
.pbPcHeaderTool[aria-expanded="true"] { background: #e9f3ff; color: #056bc7; }
.pbPcHeaderTool i,
.pbPcHeaderTool span { display: block; }
.pbPcHeaderTool i { margin-bottom: 5px; font-size: 17px; }
.pbPcHeaderTool span { font-size: 10px; font-weight: 750; line-height: 1.05; white-space: nowrap; }
.pbPcFragmentTool span { max-width: 76px; white-space: normal; }

.pbPcHeaderPopover {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	z-index: 12;
	width: 226px;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid var(--pc-line);
	border-radius: 14px;
	background: rgba(255,255,255,.98);
	box-shadow: 0 18px 44px rgba(15,32,54,.2);
}
.pbPcViewMenu { width: 240px; }
.pbPcZoomControls {
	display: grid;
	grid-template-columns: 40px minmax(72px,1fr) 40px;
	gap: 5px;
	margin-bottom: 6px;
}
.pbPcZoomButton,
.pbPcZoomValue,
.pbPcPopoverAction {
	min-height: 38px;
	border: 0;
	border-radius: 9px;
	background: #f1f3f6;
	color: #20252d;
	cursor: pointer;
}
.pbPcZoomButton { font-size: 20px !important; }
.pbPcZoomValue { font-size: 12px !important; font-weight: 800; }
.pbPcPopoverAction {
	display: flex;
	align-items: center;
	width: 100%;
	gap: 9px;
	padding: 9px 11px;
	text-align: left;
}
.pbPcPopoverAction + .pbPcPopoverAction { margin-top: 4px; }
.pbPcZoomButton:hover,
.pbPcZoomValue:hover,
.pbPcPopoverAction:hover { background: #e4effb; color: #056bc7; }
.pbPcPopoverAction i { width: 17px; text-align: center; }
.pbPcSectionHead {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 18px;
	margin: 0 2px 9px;
}
.pbPcSectionHead h2 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
.pbPcSectionHead p { margin: 0; max-width: 560px; color: var(--pc-muted); font-size: 12px; line-height: 1.4; }
.pbPcPartButton,
.pbPcTextAction {
	min-height: 36px;
	padding: 8px 10px;
	border: 1px solid #cfe3f9;
	border-radius: 10px;
	background: #f5faff;
	color: #075da9;
	font-weight: 750;
	cursor: pointer;
}
.pbPcPartButton:hover,
.pbPcTextAction:hover { background: #eaf4ff; }

.pbPracticeCenterChooser {
	position: fixed;
	inset: 0;
	z-index: 4860;
	display: grid;
	place-items: center;
	padding: 22px;
	box-sizing: border-box;
}

.pbPcChooserBackdrop {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: rgba(15,20,28,.58);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	cursor: default;
}

.pbPcChooserPanel {
	position: relative;
	z-index: 1;
	width: min(760px,100%);
	max-height: min(86dvh,860px);
	box-sizing: border-box;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.38);
	border-radius: 22px;
	background: #f6f7f9;
	box-shadow: 0 24px 80px rgba(0,0,0,.28);
	outline: none;
}

.pbPcChooserPanel > header {
	position: sticky;
	top: 0;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px 15px;
	border-bottom: 1px solid var(--pc-line);
	background: rgba(255,255,255,.95);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
}

.pbPcChooserPanel > header span { color: #356fae; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pbPcChooserPanel > header h2 { margin: 3px 0 2px; font-size: 23px; letter-spacing: -.025em; }
.pbPcChooserPanel > header p { margin: 0; color: var(--pc-muted); font-size: 13px; }
.pbPcChooserClose {
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #ececf0;
	color: #4f4f53;
	font-size: 24px !important;
	line-height: 1;
	cursor: pointer;
}

.pbPcChooserBody {
	max-height: calc(min(86dvh,860px) - 106px);
	overflow: auto;
	padding: 14px 18px 24px;
}
.pbPcChooserBody > div + div { margin-top: 16px; }

.pbPcWholeSong,
.pbPcAssistance,
.pbPcPart,
.pbPcDifficult {
	border: 1px solid var(--pc-line);
	background: #fff;
}

.pbPcWholeSong {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 16px;
	border-radius: 15px;
}
.pbPcWholeSong h3 { margin: 0 0 3px; font-size: 15px; }
.pbPcWholeSong p { margin: 0; color: var(--pc-muted); font-size: 12px; }

.pbPcAssistance {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 12px 14px;
	border-radius: 15px;
}
.pbPcAssistanceCopy { display: flex; flex-direction: column; gap: 2px; }
.pbPcAssistanceCopy small { color: #356fae; font-weight: 750; }
.pbPcAssistanceCopy span { color: var(--pc-muted); font-size: 12px; }
.pbPcAssistanceRecommendation { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid var(--pc-line); }
.pbPcAssistanceRecommendation p { margin: 0 0 8px; font-size: 13px; }
.pbPcAssistanceRecommendation > div { display: flex; flex-wrap: wrap; gap: 6px; }

.pbPcPartList,
.pbPcDifficultList { display: grid; gap: 7px; }
.pbPcPart,
.pbPcDifficult {
	display: grid;
	grid-template-columns: minmax(0,1fr) auto auto;
	gap: 10px;
	align-items: center;
	padding: 11px 13px;
	border-radius: 13px;
}
.pbPcPart h3,
.pbPcDifficult h3 { margin: 0 0 2px; font-size: 14px; }
.pbPcPart p,
.pbPcDifficult p { margin: 0; color: var(--pc-muted); font-size: 12px; }
.pbPcDifficult small { display: block; margin-top: 3px; color: #8a8a8f; }
.pbPcPartStatus { padding: 5px 8px; border-radius: 999px; background: #f2f2f7; color: #5c5c61; font-size: 11px; font-weight: 700; }
.pbPcDifficultActions { display: flex; gap: 6px; }

body.pb-practice-center-chooser-open { overflow: hidden; }
body.pb-song-mode.pb-skin-light:not(.pb-admin) #pbTrainerLaunchCard { display: none !important; }

@media (min-width: 900px) {
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) #pbLightTitle {
		visibility: hidden;
		pointer-events: none;
	}
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) #pbSongTools .pbSongZoom {
		display: none !important;
	}
	body.pb-song-mode.pb-skin-light:not(.pb-admin) #RightHandContent > .Printable {
		display: flex;
		flex-direction: column;
		height: 100%;
		min-height: 0;
	}
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) #pbPracticeCenter {
		position: fixed;
		top: 0;
		right: 0;
		left: var(--pbStudentRailW,112px);
		z-index: 219;
		height: var(--pbStudentHeaderH,72px);
		margin: 0;
	}
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) #pbPracticeCenter .pbPracticeCenterOverview,
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) #pbPracticeCenterSongBar,
	body.pb-song-mode.pb-skin-light.pb-song-screen-compact:not(.pb-admin) .pbPcSongBar { height: 100%; }
	body.pb-song-mode.pb-skin-light:not(.pb-admin) #pbSheetScroll {
		flex: 1 1 auto;
		height: 100%;
		min-height: 220px;
	}
	body.pb-song-mode.pb-skin-light:not(.pb-admin) #pbStudentSheetActions {
		top: var(--pbSongSheetActionTop,90px);
	}
}

body.pb-student-dark .pbPracticeCenter {
	--pc-ink: #f5f5f7;
	--pc-muted: #a1a1a6;
	--pc-line: rgba(255,255,255,.11);
}
.pb-student-dark .pbPcSongBar,
.pb-student-dark .pbPracticeCenterLoading,
.pb-student-dark .pbPcWholeSong,
.pb-student-dark .pbPcAssistance,
.pb-student-dark .pbPcPart,
.pb-student-dark .pbPcDifficult { border-color: var(--pc-line); background: #1c1c1e; }
.pb-student-dark .pbPcSongIdentity p { color: #c7c7cc; }
.pb-student-dark .pbPcHeaderTool,
.pb-student-dark .pbPcHeaderPopover,
.pb-student-dark .pbPcZoomButton,
.pb-student-dark .pbPcZoomValue,
.pb-student-dark .pbPcPopoverAction,
.pb-student-dark .pbPcPartStatus { background: #2c2c2e; color: #d1d1d6; }
.pb-student-dark .pbPcHeaderTool:hover,
.pb-student-dark .pbPcHeaderTool[aria-expanded="true"],
.pb-student-dark .pbPcZoomButton:hover,
.pb-student-dark .pbPcZoomValue:hover,
.pb-student-dark .pbPcPopoverAction:hover { background: #173653; color: #8ac8ff; }
.pb-student-dark .pbPcHeaderPopover { border-color: var(--pc-line); box-shadow: 0 18px 44px rgba(0,0,0,.45); }
.pb-student-dark .pbPcPartButton,
.pb-student-dark .pbPcTextAction { background: #173653; border-color: #285779; color: #8ac8ff; }
.pb-student-dark .pbPcChooserPanel { border-color: rgba(255,255,255,.12); background: #111114; }
.pb-student-dark .pbPcChooserPanel > header { border-color: var(--pc-line); background: rgba(28,28,30,.96); }
.pb-student-dark .pbPcChooserClose { background: #3a3a3c; color: #f5f5f7; }

@media (min-width: 900px) and (max-width: 1120px) {
	.pbPcSongBar { grid-template-columns: minmax(160px,1fr) minmax(164px,.7fr) minmax(130px,.62fr) auto; gap: 7px; padding-inline: 10px; }
	.pbPcSongPlanNext { display: none; }
	.pbPcHeaderTools { grid-template-columns: repeat(3,minmax(48px,auto)); gap: 3px; }
	.pbPcHeaderTool { padding-inline: 4px; }
	.pbPcHeaderTool span { font-size: 9px; }
}

@media (min-width: 641px) and (max-width: 899px) {
	.pbPracticeCenter { margin: 8px 10px; }
	.pbPcSongBar {
		grid-template-columns: minmax(190px,.72fr) minmax(240px,1fr);
		gap: 8px 12px;
		padding: 10px 12px;
		border: 1px solid var(--pc-line);
		border-radius: 16px;
	}
	.pbPcSongIdentity { display: none; }
	.pbPcSongPlan { align-self: center; }
	.pbPcHeaderTools { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); justify-self: stretch; }
}

@media (max-width: 640px) {
	body.pb-song-mode.pb-skin-light.pb-mobile-minus-collapsed:not(.pb-admin) #RightHandContent {
		bottom: calc(var(--drumix-nav-mobile-height,62px) + 56px + env(safe-area-inset-bottom,0px));
		padding-bottom: 8px !important;
	}
	.pbPracticeCenter { margin: 6px 8px 7px; }
	.pbPcSongBar { grid-template-columns: 1fr; gap: 7px; padding: 10px; border: 1px solid var(--pc-line); border-radius: 16px; }
	.pbPcSongIdentity { display: none; }
	.pbPcSongPrimary { min-height: 44px; }
	.pbPcSongPlan { padding: 0 3px; }
	.pbPcHeaderTools { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.pbPcHeaderTool { min-height: 48px; padding: 5px 3px; }
	.pbPcHeaderTool span { font-size: 9px; }
	.pbPcFragmentTool span { max-width: none; }
	.pbPcViewMenu { right: auto; left: 0; }
	.pbPcSectionHead { display: block; margin-bottom: 7px; }
	.pbPcSectionHead p { margin-top: 3px; }
	.pbPracticeCenterChooser { padding: 0; place-items: end center; }
	.pbPcChooserPanel { width: 100%; max-height: 92dvh; border-width: 1px 0 0; border-radius: 20px 20px 0 0; }
	.pbPcChooserPanel > header { padding: 15px 14px 12px; }
	.pbPcChooserPanel > header h2 { font-size: 20px; }
	.pbPcChooserBody { max-height: calc(92dvh - 98px); padding: 11px 10px calc(22px + env(safe-area-inset-bottom,0px)); }
	.pbPcWholeSong { align-items: stretch; flex-direction: column; gap: 10px; }
	.pbPcWholeSong .pbPcPrimaryButton { width: 100%; }
	.pbPcPart,
	.pbPcDifficult { grid-template-columns: minmax(0,1fr) auto; }
	.pbPcPartStatus { grid-row: 2; grid-column: 1; justify-self: start; }
	.pbPcPartButton { grid-row: 1 / 3; grid-column: 2; min-height: 44px; }
	.pbPcDifficultActions { grid-column: 1 / -1; }
	.pbPcDifficultActions button { width: 100%; min-height: 42px; }
}

@media (max-width: 360px) {
	.pbPcSongBar { padding: 8px; }
	.pbPcSongPlanNext { display: none; }
	.pbPcHeaderTools { gap: 3px; }
	.pbPcHeaderTool { min-height: 45px; }
	.pbPcHeaderTool i { margin-bottom: 3px; font-size: 15px; }
	.pbPcSectionHead { margin-bottom: 5px; }
	.pbPcSectionHead h2 { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.pbPracticeCenterLoading > span { animation: none; }
}
