
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

#wrapper {
	min-height: 100%;
	position: relative;
}

#content {
	padding-bottom: 100px;
}

/*.title {
	font-weight: bold;
	font-size: 32px;
}

img {
    max-width: 110%;
    height: auto;
}

.clearfix {
    clear:both;
}

.rowcolor {
    background-color:#CCCCCC;
}

.padall {
    padding:10px;
}

.icon {
    font-size:23px;
    color:#197BB5;
}*/

.letters-bar {
	margin-top: 13px;
	margin-left: 20px;
}

#navbarSearch {
	width: 250px;
}

/* Responsive Design */
@media (max-width: 768px) {
	/* Mobile navbar adjustments */
	.navbar-header {
		float: none;
	}

	.navbar-toggle {
		display: block;
		margin-right: 0;
		margin-top: 8px;
	}

	.navbar-collapse {
		border-top: 1px solid transparent;
		box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
		overflow: visible !important;
	}

	.navbar-collapse.collapse {
		display: none !important;
	}

	.navbar-collapse.collapse.in {
		display: block !important;
		overflow: visible !important;
	}

	.navbar-nav {
		float: none !important;
		margin: 7.5px -15px;
	}

	.navbar-nav > li {
		float: none;
	}

	.navbar-nav > li > a {
		padding-top: 10px;
		padding-bottom: 10px;
	}

	/* Mobile search bar */
	.navbar-form {
		margin: 10px 0;
		padding: 0 15px;
		width: 100%;
	}

	.navbar-form .form-group {
		width: 100%;
	}

	.navbar-form .autocomplete-container {
		width: 100%;
	}

	#navbarSearch {
		width: 100%;
	}

	/* Mobile language switcher */
	.navbar-right {
		float: none !important;
		display: block !important;
		width: 100%;
		padding: 10px 15px;
	}

	.lang-switcher {
		margin-right: 0 !important;
		margin-bottom: 10px;
		width: 100%;
		position: relative;
		overflow: visible;
	}

	.lang-switcher .btn {
		width: 100%;
	}

	.lang-switcher .dropdown-menu {
		position: absolute !important;
		left: 0 !important;
		right: 0 !important;
		z-index: 1050 !important;
		width: 100%;
	}

	/* Mobile letters bar - horizontal scroll */
	.letters-bar {
		margin-left: 0;
		margin-top: 10px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		white-space: nowrap;
		padding-bottom: 5px;
	}

	.letters-bar .btn-toolbar {
		display: inline-block;
		margin: 0;
	}

	.letters-bar .btn-group {
		display: inline-flex;
		flex-wrap: nowrap;
	}

	.letters-bar .btn {
		flex-shrink: 0;
	}

	/* Mobile pagination - horizontal scroll */
	.pagination {
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		white-space: nowrap;
		display: block;
		width: 100%;
		margin: 10px 0;
		float: none !important;
	}

	.pagination > ul {
		display: inline-flex;
		flex-wrap: nowrap;
		margin: 0;
		padding: 0;
		list-style: none;
		white-space: nowrap;
	}

	.pagination li {
		display: inline-block;
		flex-shrink: 0;
		float: none;
	}

	.pagination li > a,
	.pagination li > span {
		padding: 6px 10px;
		font-size: 12px;
		min-width: 32px;
		text-align: center;
		display: inline-block;
	}

	/* Mobile content adjustments */
	#content {
		padding-bottom: 50px;
	}

	#content .row {
		margin-left: 0;
		margin-right: 0;
	}

	#content .col-md-9,
	#content .col-md-2 {
		padding-left: 15px;
		padding-right: 15px;
		width: 100%;
		margin-left: 0;
	}

	/* Mobile autocomplete results */
	.autocomplete-results {
		position: fixed !important;
		left: 15px !important;
		right: 15px !important;
		width: auto !important;
		max-width: none !important;
		z-index: 1050;
	}
}

@media (max-width: 480px) {
	/* Extra small devices */
	.navbar-brand img {
		max-height: 30px;
	}

	.pagination li > a,
	.pagination li > span {
		padding: 4px 8px;
		font-size: 11px;
		min-width: 28px;
	}

	.letters-bar .btn {
		padding: 4px 8px;
		font-size: 11px;
		min-width: 28px;
	}
}

.artist-list {
	list-style-type: none;
	padding: 0;
}

.artist-list li {
	/*float: left;*/
	width: 100%;
	margin-bottom: 20px;
	padding: 14px;
	background-color: #eff0f2;
	border-radius: 6px;
}

.artist-list li .icon {
	width: 20px;
	float: left;
	margin-top: 2px;
}

.artist-list li .title {
	margin: 0 120px 10px 30px;
	font-size: 24px;
}

.artist-list li .picture {
	float: right;
	width: 100px;
}

@media(max-width: 400px) {

	.artist-list li .title {
		margin-right: 85px;
	}

	.artist-list li .picture {
		width: 75px;
	}
}

.artist-list li .description {
	min-height: 31px;
	margin-right: 110px;
}

.btn-tabs {
	min-width: 150px;
}

.tile-title {
	min-height: 44px;
}

#main-google-search .gsc-input-box {
	height: 34px;
	border-radius: 4px;
}

#main-google-search .gsc-search-button {
	height: 34px;
	margin-top: 4px;
	width: 50px;
	padding: 10px 17px;
	border-radius: 4px;
}

footer {
	bottom: 0;
	position: absolute;
	left: 0;
	height: 100px;
	width: 100%;
	text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.6);
}

/* Footer layout: vertically center text, smaller on mobile */
footer > .container,
footer .row,
footer .col-xs-12 {
	height: 100%;
}

footer .col-xs-12 {
	display: flex;
	align-items: center;
	justify-content: center;
}

footer .col-xs-12 .copyright {
	margin-top: 0 !important;
}

@media (max-width: 768px) {
	footer {
		height: 60px;
	}
}

/* SEO-friendly H1 styling */
h1.page-title {
	font-size: 24px;
	font-weight: 600;
	margin: 0 0 20px 0;
	color: #2c3e50;
}

/* Home hero layout (landing page) */
.home-hero {
	padding: 30px 0 50px;
	text-align: center;
}

.home-title {
	font-size: 40px;
	font-weight: 600;
	margin-bottom: 60px;
}

.home-metronome-inline {
	margin-top: 8px;
	margin-bottom: 20px;
	font-size: 13px;
}

.home-metronome-inline-link {
	color: var(--primary-color);
	font-weight: 600;
}

.home-metronome-inline-link:hover,
.home-metronome-inline-link:focus {
	text-decoration: underline;
}

.home-letters {
	margin-bottom: 24px;
	overflow-x: auto;
}

.home-letters .btn-group {
	white-space: nowrap;
	float: none;
}

.home-search {
	margin-bottom: 20px;
}

.home-trending-list li {
	margin: 2px 0;
}

/* ── Metronome App ── */
.metronome-app {
	max-width: 480px;
	margin: 0 auto;
	padding: 0 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: calc(100vh - 120px);
	min-height: calc(100dvh - 120px);
	justify-content: center;
	gap: 0;
}

/* Beat dots */
.metronome-beats-visual {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-bottom: 20px;
	min-height: 20px;
}

.metronome-beat-dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #2a2a2a;
	transition: background 0.08s, transform 0.08s, box-shadow 0.08s;
	flex-shrink: 0;
}

.metronome-beat-dot.metronome-beat-active {
	background: var(--primary-color);
	transform: scale(1.3);
	box-shadow: 0 0 12px rgba(58, 185, 238, 0.5);
}

.metronome-beat-dot.metronome-beat-accent {
	background: #e74c3c;
	box-shadow: 0 0 14px rgba(231, 76, 60, 0.6);
}

/* Hero BPM display */
.metronome-bpm-display {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 16px;
	user-select: none;
}

.metronome-bpm-value {
	font-size: 72px;
	font-weight: 800;
	color: var(--text-light);
	line-height: 1;
	letter-spacing: -2px;
	font-variant-numeric: tabular-nums;
}

.metronome-bpm-unit {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-top: 2px;
}

/* BPM slider */
.metronome-slider-wrap {
	width: 100%;
	padding: 0 4px;
	margin-bottom: 16px;
}

.metronome-slider {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 6px;
	border-radius: 3px;
	background: #2a2a2a;
	outline: none;
	cursor: pointer;
}

.metronome-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--primary-color);
	cursor: pointer;
	border: 3px solid #1a1a1a;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

.metronome-slider::-moz-range-thumb {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--primary-color);
	cursor: pointer;
	border: 3px solid #1a1a1a;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* Quick adjust buttons */
.metronome-adjust-row {
	display: flex;
	gap: 10px;
	margin-bottom: 24px;
}

.metronome-adjust-btn {
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	color: var(--text-light);
	font-size: 15px;
	font-weight: 600;
	padding: 8px 16px;
	border-radius: 10px;
	cursor: pointer;
	touch-action: manipulation;
	transition: border-color 0.15s, background 0.15s;
	min-width: 52px;
	text-align: center;
}

.metronome-adjust-btn:hover,
.metronome-adjust-btn:focus {
	border-color: var(--primary-color);
	background: #222;
}

.metronome-adjust-btn:active {
	background: var(--primary-color);
	color: #fff;
}

/* Large play/stop button */
.metronome-play-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 24px;
}

.metronome-play-btn {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--primary-color);
	border: none;
	color: #fff;
	font-size: 28px;
	cursor: pointer;
	touch-action: manipulation;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 20px rgba(58, 185, 238, 0.3);
	transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
}

.metronome-play-btn:hover {
	background: var(--primary-hover);
	transform: scale(1.05);
}

.metronome-play-btn:active {
	transform: scale(0.95);
}

.metronome-play-btn.metronome-playing {
	background: #e74c3c;
	box-shadow: 0 4px 20px rgba(231, 76, 60, 0.35);
}

.metronome-play-btn.metronome-playing:hover {
	background: #c0392b;
}

.metronome-play-btn .fa {
	margin-left: 3px;
}

.metronome-play-btn.metronome-playing .fa {
	margin-left: 0;
}

.metronome-status {
	font-size: 12px;
	color: var(--text-muted);
	margin-top: 8px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Compact settings row */
.metronome-settings {
	width: 100%;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 14px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.metronome-setting {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.metronome-setting-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--text-muted);
	margin: 0;
	white-space: nowrap;
	flex-shrink: 0;
}

/* Beats per bar stepper */
.metronome-beats-select {
	display: flex;
	align-items: center;
	gap: 0;
	background: #222;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid #333;
}

.metronome-beats-step {
	background: transparent;
	border: none;
	color: var(--primary-color);
	font-size: 18px;
	font-weight: 700;
	padding: 6px 14px;
	cursor: pointer;
	touch-action: manipulation;
	transition: background 0.12s;
	line-height: 1;
}

.metronome-beats-step:hover {
	background: rgba(58, 185, 238, 0.1);
}

.metronome-beats-step:active {
	background: rgba(58, 185, 238, 0.25);
}

.metronome-beats-value {
	font-size: 18px;
	font-weight: 700;
	color: var(--text-light);
	min-width: 30px;
	text-align: center;
	padding: 4px 0;
}

/* Volume slider */
.metronome-vol-slider {
	-webkit-appearance: none;
	appearance: none;
	flex: 1;
	max-width: 140px;
	height: 4px;
	border-radius: 2px;
	background: #2a2a2a;
	outline: none;
	cursor: pointer;
}

.metronome-vol-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--primary-color);
	cursor: pointer;
	border: 2px solid #1a1a1a;
}

.metronome-vol-slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--primary-color);
	cursor: pointer;
	border: 2px solid #1a1a1a;
}

/* Accent checkbox label */
.metronome-accent-label {
	display: flex !important;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-weight: 400 !important;
}

.metronome-accent-label input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--primary-color);
	cursor: pointer;
	flex-shrink: 0;
}

.metronome-accent-label span {
	font-size: 13px;
	color: var(--text-muted);
}

/* Mobile adjustments for metronome */
@media (max-width: 480px) {
	.metronome-app {
		padding: 0 8px;
		min-height: calc(100vh - 100px);
		min-height: calc(100dvh - 100px);
	}

	.metronome-bpm-value {
		font-size: 60px;
	}

	.metronome-play-btn {
		width: 72px;
		height: 72px;
		font-size: 24px;
	}

	.metronome-adjust-btn {
		padding: 8px 12px;
		font-size: 14px;
		min-width: 44px;
	}

	.metronome-beats-visual {
		gap: 10px;
	}

	.metronome-beat-dot {
		width: 14px;
		height: 14px;
	}
}

/* Full-screen feel: dark background, remove content padding & hide footer when metronome is active */
#content:has(.metronome-app) {
	padding-bottom: 0;
	background: var(--background-dark);
}

#content:has(.metronome-app) .content-top-spacer {
	height: 56px;
}

#content:has(.metronome-app) + footer {
	display: none;
}

/* Hide the ad sidebar on metronome (give it full width) */
#content:has(.metronome-app) .col-md-2 {
	display: none;
}

#content:has(.metronome-app) .col-md-8 {
	width: 100%;
}

@media (min-width: 992px) {
	.home-hero {
		padding: 80px 0 90px;
	}

	.home-title {
		font-size: 48px;
	}
}

/* Language switcher */
.lang-switcher {
	display: inline-block;
	position: relative;
}

.lang-switcher .dropdown-menu {
	min-width: 120px;
	z-index: 1050;
	position: absolute;
}

.lang-switcher .dropdown-menu li.active a {
	background-color: var(--primary-color);
	color: var(--background-dark);
}

.navbar-metronome-btn {
	background-color: #e67e22;
	border-color: #d35400;
	color: #fff;
}

.navbar-metronome-btn:hover,
.navbar-metronome-btn:focus {
	background-color: #d35400;
	border-color: #b34700;
	color: #fff;
}

.lang-switcher .dropdown-menu li a {
	padding: 8px 15px;
}

.lang-switcher .dropdown-menu li a:hover {
	background-color: var(--primary-hover);
	color: var(--text-light);
}

/* Social Share Buttons */
.share-buttons {
	margin-top: 15px;
	padding-top: 15px;
	border-top: 1px solid #e0e0e0;
}

.share-title {
	font-size: 12px;
	text-transform: uppercase;
	color: #7f8c8d;
	margin: 0 0 10px 0;
	font-weight: 600;
	letter-spacing: 0.5px;
}

.btn-share {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	margin: 3px;
	border-radius: 50%;
	border: none;
	color: #fff;
	font-size: 16px;
	cursor: pointer;
	transition: transform 0.15s ease, opacity 0.15s ease;
}

.btn-share:hover {
	transform: scale(1.1);
	opacity: 0.9;
	color: #fff;
	text-decoration: none;
}

.btn-share:active {
	transform: scale(0.95);
}

.btn-native-share {
	background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%);
}

.btn-twitter {
	background: #1da1f2;
}

.btn-facebook {
	background: #1877f2;
}

.btn-whatsapp {
	background: #25d366;
}

.btn-reddit {
	background: #ff4500;
}

.btn-copy {
	background: #7f8c8d;
}

.btn-copy.copied {
	background: #27ae60;
}

/* Hide native share on browsers that don't support it */
.no-share-api .btn-native-share {
	display: none;
}

/* ============================
   Tab Page: Action Buttons (Favorite + Practice)
   ============================ */

.tab-action-buttons {
	display: flex;
	gap: 8px;
	margin-top: 10px;
	flex-wrap: wrap;
}

.tab-action-form {
	flex: 1;
	min-width: 0;
}

.tab-action-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex: 1;
	min-width: 0;
	padding: 10px 12px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.18s ease;
	text-decoration: none;
	border: 2px solid transparent;
	white-space: nowrap;
}

.tab-action-btn .fa {
	font-size: 16px;
}

/* Favorite button (default state) */
.tab-action-fav {
	background: #1a1a1a;
	color: #f1c40f;
	border-color: #f1c40f;
}

.tab-action-fav:hover,
.tab-action-fav:focus {
	background: #f1c40f;
	color: #1a1a1a;
	text-decoration: none;
}

/* Favorite button (active / already favorited) */
.tab-action-fav.active {
	background: #f1c40f;
	color: #1a1a1a;
	border-color: #f1c40f;
}

.tab-action-fav.active:hover,
.tab-action-fav.active:focus {
	background: #d4a900;
	border-color: #d4a900;
	text-decoration: none;
}

/* Practice button */
.tab-action-practice {
	background: var(--primary-color);
	color: #fff;
	border-color: var(--primary-color);
}

.tab-action-practice:hover,
.tab-action-practice:focus {
	background: var(--primary-hover);
	border-color: var(--primary-hover);
	color: #fff;
	text-decoration: none;
}

/* Hint for logged-out users */
.tab-action-hint {
	width: 100%;
	text-align: center;
	font-size: 13px;
	color: var(--text-muted);
	margin: 6px 0 0 0;
}

.tab-action-hint a {
	color: var(--primary-color);
	text-decoration: underline;
}

.tab-action-hint a:hover {
	color: var(--primary-hover);
}

/* Mobile: stack vertically on very small screens */
@media (max-width: 400px) {
	.tab-action-buttons {
		flex-direction: column;
	}
}

/* Toast notification for copy */
.share-toast {
	position: fixed;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--background-dark);
	color: var(--text-light);
	padding: 12px 24px;
	border-radius: 8px;
	font-size: 14px;
	z-index: 9999;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
	border: 1px solid var(--primary-color);
}

:root {
    /* Guitar Pro Tablatures Theme Colors */
    --primary-color: #3ab9ee;
    --primary-hover: #2980b9;
    --background-dark: #010101;
    --text-light: #fefefe;
    --text-muted: #cccccc;
}

/* Accessibility: Screen Reader Only Content */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    padding: inherit;
    margin: inherit;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* Skip Links for Keyboard Navigation */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--primary-color);
    color: var(--background-dark);
    padding: 8px 16px;
    text-decoration: none;
    z-index: 10000;
    font-weight: bold;
}

.skip-link:focus {
    top: 0;
    outline: 3px solid var(--text-light);
    outline-offset: 2px;
}

/* Enhanced Focus Indicators for Accessibility */
*:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

button:focus,
a:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 3px solid var(--primary-color);
    outline-offset: 2px;
}

/* Remove outline for mouse users but keep for keyboard */
.js-focus-visible *:focus:not(.focus-visible) {
    outline: none;
}

/* Autocomplete Results - Keyboard Accessible */
.autocomplete-results[aria-hidden="false"],
.autocomplete-results:not([aria-hidden="true"]) {
    display: block !important;
}

.autocomplete-results[role="listbox"] [role="option"] {
    cursor: pointer;
    padding: 8px 12px;
    display: block;
}

.autocomplete-results[role="listbox"] [role="option"]:hover,
.autocomplete-results[role="listbox"] [role="option"][aria-selected="true"],
.autocomplete-results[role="listbox"] [role="option"].keyboard-selected {
    background-color: var(--primary-color);
    color: var(--background-dark);
}

.autocomplete-results[role="listbox"] [role="option"]:focus {
    background-color: var(--primary-hover);
    color: var(--text-light);
    outline: 3px solid var(--text-light);
    outline-offset: -2px;
}

/* Ensure autocomplete options can receive focus */
.autocomplete-results[role="listbox"] [role="option"][tabindex="0"] {
    outline: none;
}

.autocomplete-results[role="listbox"] [role="option"][tabindex="0"]:focus {
    background-color: var(--primary-hover);
    color: var(--text-light);
    outline: 3px solid var(--text-light);
    outline-offset: -2px;
}

/* Ensure autocomplete results container is visible when not hidden */
.autocomplete-results:not([aria-hidden="true"]) {
    display: block;
}

/* Custom theme elements - Flat UI components now use correct colors from modified flat-ui.css */

/* Custom dark navbar */
.navbar-inverse {
    background-color: var(--background-dark) !important;
    border-color: var(--primary-color) !important;
}

.navbar-inverse .navbar-nav > li > a {
    color: var(--text-light) !important;
}

.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
    color: var(--primary-color) !important;
    background-color: transparent !important;
}

.navbar-inverse .navbar-brand {
    color: var(--text-light) !important;
}

.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
    color: var(--primary-color) !important;
}

.navbar-inverse .navbar-toggle {
    border-color: var(--primary-color) !important;
}

.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
    background-color: var(--primary-color) !important;
}

.navbar-inverse .navbar-toggle .icon-bar {
    background-color: var(--text-light) !important;
}

/* Custom dark theme body */
body {
    background-color: var(--background-dark);
    color: var(--text-light);
}

/* Links use Flat UI colors (now blue-cyan) - no override needed */

/* Button hover states - ensure blue-cyan theme */
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--text-light) !important;
}

/* Pagination - match letters-bar styling */
.pagination li > a,
.pagination li > span {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-light) !important;
}

.pagination li > a:hover,
.pagination li > span:hover,
.pagination li > a:focus,
.pagination li > span:focus {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--text-light) !important;
}

.pagination li.active > a,
.pagination li.active > span,
.pagination li.active > a:hover,
.pagination li.active > span:hover,
.pagination li.active > a:focus,
.pagination li.active > span:focus {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--text-light) !important;
}

/* Pagination container background */
.pagination > ul {
    background: var(--background-dark) !important;
}

/* Pagination ellipsis styling */
.pagination li.disabled {
    pointer-events: none;
    cursor: default;
}

.pagination li.disabled span {
    color: var(--text-muted) !important;
    background-color: transparent !important;
    border: none !important;
    padding: 6px 12px;
}

/* Navbar fixes - compact height, light button colors */
.navbar-brand {
    color: var(--text-light) !important;
    padding: 8px 15px !important;
    display: flex !important;
    align-items: center !important;
}

.navbar-brand img {
    height: auto;
    max-height: 40px;
    width: auto;
    display: block;
}

.navbar-brand:hover,
.navbar-brand:focus {
    text-decoration: none;
}

.navbar-brand:hover,
.navbar-brand:focus {
    color: var(--primary-color) !important;
}

.letters-bar .btn-primary {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-light) !important;
    margin-bottom: 2px !important;
}

.letters-bar .btn-primary:hover,
.letters-bar .btn-primary:focus,
.letters-bar .btn-primary:active {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--text-light) !important;
}

/* Language Selector fixes - aligned, light colors */
.lang-switcher .btn-default {
    background-color: rgba(254, 254, 254, 0.1) !important;
    border-color: rgba(254, 254, 254, 0.2) !important;
    color: var(--text-light) !important;
    margin-top: 0 !important;
}

.lang-switcher .btn-default:hover,
.lang-switcher .btn-default:focus,
.lang-switcher .btn-default:active {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: var(--background-dark) !important;
}

.lang-switcher .btn-default .caret {
    border-top-color: var(--text-light) !important;
}

.lang-switcher .btn-default:hover .caret {
    border-top-color: var(--background-dark) !important;
}

.lang-switcher {
    position: relative;
}

.lang-switcher .dropdown-menu {
    background-color: var(--background-dark) !important;
    border-color: var(--primary-color) !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3) !important;
    z-index: 1050 !important;
    position: absolute !important;
}

.lang-switcher .dropdown-menu > li > a {
    color: var(--text-light) !important;
    background-color: transparent !important;
}

.lang-switcher .dropdown-menu > li > a:hover,
.lang-switcher .dropdown-menu > li > a:focus {
    background-color: var(--primary-color) !important;
    color: var(--background-dark) !important;
}

/* Ensure navbar doesn't clip dropdown */
.navbar-collapse {
    overflow: visible !important;
}

.navbar {
    overflow: visible !important;
}

.navbar-header {
    overflow: visible !important;
}

.navbar-right {
    overflow: visible !important;
}

/* Search Form fixes - compact size, light colors */
.navbar-form .form-control {
    background-color: rgba(254, 254, 254, 0.1) !important;
    border-color: rgba(254, 254, 254, 0.2) !important;
    color: var(--text-light) !important;
    height: 30px !important; /* More compact */
    font-size: 13px !important;
}

.navbar-form .form-control::placeholder {
    color: rgba(254, 254, 254, 0.6) !important;
}

.navbar-form .input-group-btn .btn {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-light) !important; /* LIGHT TEXT instead of black */
    height: 30px !important; /* Match input height */
    padding: 4px 10px !important; /* Smaller padding */
}

.navbar-form .input-group-btn .btn:hover,
.navbar-form .input-group-btn .btn:focus {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: var(--text-light) !important; /* Keep light on hover */
}

.share-toast.show {
	opacity: 1;
}

/* Overlay top-right: suggest registering (guests only) - compact, doesn't block content */
#navbar-register-overlay.navbar-register-overlay,
.navbar-register-overlay {
	position: fixed !important;
	top: 60px !important; /* under fixed navbar, with extra visual separation */
	right: 15px !important;
	left: auto !important;
	width: 280px !important;
	max-width: calc(100vw - 30px) !important;
	z-index: 1029 !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	background: #2c3e50 !important;
	color: #ecf0f1 !important;
	padding: 12px 14px !important;
	font-size: 12px !important;
	line-height: 1.35 !important;
	box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
	border-radius: 6px !important;
}

/* Hidden state when user closes the overlay (persisted with localStorage)
   Use both id+class and class selector so we override the more specific
   #navbar-register-overlay.navbar-register-overlay rule above. */
#navbar-register-overlay.navbar-register-overlay.is-hidden,
.navbar-register-overlay.is-hidden {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
}

.navbar-register-overlay .navbar-register-close {
	position: absolute;
	top: 4px;
	right: 6px;
	border: 0;
	background: transparent;
	color: #bdc3c7;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.navbar-register-overlay .navbar-register-close:hover,
.navbar-register-overlay .navbar-register-close:focus {
	color: #ecf0f1;
	outline: none;
}

.navbar-register-overlay .navbar-register-text {
	margin: 0 0 10px 0 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

.navbar-register-overlay .navbar-register-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.navbar-register-overlay .btn {
	margin: 0 !important;
}

.navbar-register-overlay .btn-default {
	background: rgba(255,255,255,0.2) !important;
	color: #ecf0f1 !important;
	border-color: rgba(255,255,255,0.4) !important;
}

.navbar-register-overlay .btn-primary {
	background: #3498db !important;
	color: #fff !important;
	border-color: #2980b9 !important;
}

/* Top spacer: navbar only (overlay is top-right, doesn't need extra space) */
.content-top-spacer {
	height: 80px; /* navbar */
}

/* Main content: centered 2-8-2 grid (spacer | content | sidebar ad) in main.volt */
#main-content .container-fluid {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}

/* ── Auth pages (login / register) ── */
.auth-page {
	max-width: 420px;
	margin: 0 auto;
	padding: 0 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-height: calc(100vh - 200px);
	min-height: calc(100dvh - 200px);
	justify-content: center;
}

.auth-card {
	width: 100%;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 16px;
	padding: 32px 28px;
	text-align: center;
}

.auth-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(58, 185, 238, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
}

.auth-icon .fa {
	font-size: 24px;
	color: var(--primary-color);
}

.auth-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--text-light);
	margin: 0 0 24px 0;
}

.auth-form {
	text-align: left;
}

.auth-field {
	margin-bottom: 18px;
}

.auth-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--text-muted);
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

.auth-input {
	display: block;
	width: 100%;
	padding: 12px 14px;
	font-size: 15px;
	color: var(--text-light);
	background: #222;
	border: 1px solid #333;
	border-radius: 10px;
	outline: none;
	transition: border-color 0.15s;
	-webkit-appearance: none;
	appearance: none;
}

.auth-input:focus {
	border-color: var(--primary-color);
	box-shadow: 0 0 0 3px rgba(58, 185, 238, 0.15);
}

.auth-input::placeholder {
	color: #555;
}

.auth-hint {
	display: block;
	font-size: 12px;
	color: #666;
	margin-top: 5px;
}

.auth-captcha-row {
	display: flex;
	align-items: center;
	gap: 10px;
}

.auth-captcha-question {
	font-size: 16px;
	font-weight: 700;
	color: var(--primary-color);
	background: #222;
	border: 1px solid #333;
	border-radius: 10px;
	padding: 12px 14px;
	white-space: nowrap;
	flex-shrink: 0;
}

.auth-captcha-row .auth-input {
	flex: 1;
}

.auth-submit {
	display: block;
	width: 100%;
	padding: 14px;
	font-size: 16px;
	font-weight: 600;
	color: #fff;
	background: var(--primary-color);
	border: none;
	border-radius: 12px;
	cursor: pointer;
	touch-action: manipulation;
	transition: background 0.15s, transform 0.1s;
	margin-top: 4px;
}

.auth-submit:hover {
	background: var(--primary-hover);
}

.auth-submit:active {
	transform: scale(0.98);
}

.auth-switch {
	font-size: 14px;
	color: var(--text-muted);
	margin: 20px 0 0 0;
	text-align: center;
}

.auth-switch a {
	color: var(--primary-color);
	font-weight: 600;
	text-decoration: none;
}

.auth-switch a:hover {
	text-decoration: underline;
}

@media (max-width: 480px) {
	.auth-card {
		padding: 24px 18px;
		border-radius: 14px;
	}

	.auth-title {
		font-size: 20px;
	}
}

/* Flat UI colors are now updated in flat-ui.css source - no overrides needed! */
/* Only keeping custom theme elements below */

/* ============================
   Account Dashboard
   ============================ */

.account-dashboard {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 8px;
}

/* Profile header */
.account-header {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
	padding: 20px;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 16px;
}

.account-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%);
	color: #fff;
	font-size: 24px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.account-header-info {
	flex: 1;
	min-width: 0;
}

.account-name {
	font-size: 22px;
	font-weight: 700;
	color: var(--text-light);
	margin: 0 0 2px 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.account-meta {
	font-size: 13px;
	color: var(--text-muted);
}

/* Stats row */
.account-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin-bottom: 20px;
}

.account-stat-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 14px 6px;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 12px;
	text-decoration: none;
	transition: border-color 0.15s;
	touch-action: manipulation;
}

.account-stat-card:hover,
.account-stat-card:focus {
	border-color: var(--primary-color);
	text-decoration: none;
}

.account-stat-number {
	font-size: 22px;
	font-weight: 700;
	color: var(--primary-color);
	line-height: 1.1;
}

.account-stat-label {
	font-size: 11px;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.3px;
	margin-top: 4px;
	text-align: center;
}

/* Nav grid */
.account-nav-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-bottom: 24px;
}

.account-nav-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 16px 8px;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 12px;
	text-decoration: none;
	color: var(--text-light);
	font-size: 13px;
	font-weight: 600;
	transition: border-color 0.15s, background 0.15s;
	touch-action: manipulation;
}

.account-nav-card:hover,
.account-nav-card:focus {
	border-color: var(--primary-color);
	color: var(--text-light);
	text-decoration: none;
}

.account-nav-card .fa {
	font-size: 20px;
	color: var(--primary-color);
}

.account-nav-practice {
	background: var(--primary-color);
	border-color: var(--primary-color);
	color: #fff;
}

.account-nav-practice .fa {
	color: #fff;
}

.account-nav-practice:hover,
.account-nav-practice:focus {
	background: var(--primary-hover);
	border-color: var(--primary-hover);
	color: #fff;
}

.account-nav-mod {
	border-color: #f39c12;
}

.account-nav-mod .fa {
	color: #f39c12;
}

/* Activity sections — side by side on desktop */
.account-sections-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

.account-section {
	margin-bottom: 20px;
}

.account-section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}

.account-section-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0;
}

.account-section-title .fa {
	margin-right: 6px;
	color: var(--primary-color);
}

.account-section-link {
	font-size: 13px;
	color: var(--primary-color);
	text-decoration: none;
	white-space: nowrap;
}

.account-section-link:hover {
	text-decoration: underline;
}

/* Tab item cards (shared between dashboard and sub-pages) */
.account-tab-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.account-tab-item {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 10px;
	padding: 12px 14px;
	text-decoration: none;
	transition: border-color 0.15s;
	touch-action: manipulation;
}

.account-tab-item:hover,
.account-tab-item:focus {
	border-color: var(--primary-color);
	text-decoration: none;
}

/* Desktop: wider layout for account dashboard */
@media (min-width: 769px) {
	.account-nav-grid {
		grid-template-columns: repeat(4, 1fr);
	}

	.account-sections-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 16px;
	}

	.account-nav-card {
		flex-direction: row;
		justify-content: flex-start;
		gap: 8px;
		padding: 14px 16px;
	}
}

.account-tab-info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.account-tab-artist {
	font-size: 12px;
	color: var(--text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.account-tab-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-light);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.account-tab-meta {
	font-size: 12px;
	color: var(--text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}

.account-tab-arrow {
	color: var(--text-muted);
	font-size: 13px;
	flex-shrink: 0;
}

.account-empty {
	color: var(--text-muted);
	font-size: 14px;
	padding: 10px 0;
}

/* Logout */
.account-footer {
	margin-top: 30px;
	margin-bottom: 20px;
	text-align: center;
}

.account-logout-btn {
	display: inline-block;
	padding: 10px 28px;
	background: transparent;
	border: 1px solid #3a3a3a;
	border-radius: 10px;
	color: var(--text-muted);
	font-size: 14px;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}

.account-logout-btn:hover,
.account-logout-btn:focus {
	border-color: #e74c3c;
	color: #e74c3c;
	text-decoration: none;
}

/* ── Sub-pages (favorites, downloads, recent) ── */

.account-subpage {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 8px;
}

.account-subpage-header {
	margin-bottom: 20px;
}

.account-back-link {
	display: inline-block;
	font-size: 13px;
	color: var(--primary-color);
	text-decoration: none;
	margin-bottom: 8px;
}

.account-back-link:hover {
	text-decoration: underline;
}

.account-back-link .fa {
	margin-right: 4px;
}

.account-subpage-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--text-light);
	margin: 0;
}

.account-subpage-title .fa {
	color: var(--primary-color);
	margin-right: 8px;
}

/* Empty state */
.account-empty-state {
	text-align: center;
	padding: 40px 20px;
}

.account-empty-icon {
	font-size: 48px;
	color: #3a3a3a;
	margin-bottom: 12px;
}

.account-empty-state p {
	color: var(--text-muted);
	font-size: 15px;
	margin-bottom: 16px;
}

.account-empty-btn {
	background: var(--primary-color) !important;
	border-color: var(--primary-color) !important;
	color: #fff !important;
	border-radius: 10px;
	padding: 10px 24px;
	font-weight: 600;
}

.account-empty-btn:hover {
	background: var(--primary-hover) !important;
}

/* Mobile tweaks */
@media (max-width: 768px) {
	.account-dashboard {
		padding: 0 4px;
	}

	.account-subpage {
		padding: 0 4px;
	}

	.account-header {
		padding: 16px;
	}

	.account-avatar {
		width: 48px;
		height: 48px;
		font-size: 20px;
	}

	.account-name {
		font-size: 18px;
	}

	.account-stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.account-nav-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.account-stat-card {
		padding: 10px 4px;
	}

	.account-stat-number {
		font-size: 20px;
	}

	.account-nav-card {
		padding: 12px 6px;
	}
}

/* ============================
   Practice Dashboard
   ============================ */

.practice-dashboard {
	max-width: 700px;
	margin: 0 auto;
	padding: 0 8px;
}

.practice-greeting {
	font-size: 22px;
	font-weight: 600;
	margin: 0 0 16px 0;
	color: var(--text-light);
}

/* Stat cards row */
.practice-stats {
	margin-bottom: 16px;
}

.practice-stat-card {
	background: #1a1a1a;
	border-radius: 12px;
	padding: 16px 8px;
	text-align: center;
	border: 1px solid #2a2a2a;
}

.practice-stat-number {
	display: block;
	font-size: 28px;
	font-weight: 700;
	color: var(--primary-color);
	line-height: 1.1;
}

.practice-stat-label {
	display: block;
	font-size: 12px;
	color: var(--text-muted);
	margin-top: 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Streak card + calendar heatmap */
.streak-card {
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 14px;
	padding: 16px;
	margin-bottom: 20px;
}

.streak-summary {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 14px;
}

.streak-fire {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #2a2a2a;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.streak-fire .fa {
	font-size: 20px;
	color: #555;
}

.streak-fire-active {
	background: linear-gradient(135deg, #e67e22 0%, #e74c3c 100%);
}

.streak-fire-active .fa {
	color: #fff;
}

.streak-info {
	display: flex;
	align-items: baseline;
	gap: 6px;
	flex: 1;
	min-width: 0;
}

.streak-count {
	font-size: 26px;
	font-weight: 700;
	color: var(--text-light);
	line-height: 1;
}

.streak-label {
	font-size: 14px;
	color: var(--text-muted);
}

.streak-today-badge {
	font-size: 12px;
	font-weight: 600;
	color: #27ae60;
	background: rgba(39, 174, 96, 0.12);
	padding: 4px 10px;
	border-radius: 20px;
	white-space: nowrap;
	flex-shrink: 0;
}

.streak-today-badge .fa {
	margin-right: 3px;
}

.streak-today-hint {
	font-size: 12px;
	color: var(--text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}

/* Calendar heatmap grid */
.streak-calendar {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.streak-cal-header {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}

.streak-cal-day-label {
	text-align: center;
	font-size: 10px;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	padding-bottom: 2px;
}

.streak-cal-row {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}

.streak-cal-cell {
	aspect-ratio: 1;
	border-radius: 4px;
	background: #2a2a2a;
	min-width: 0;
	transition: background 0.15s;
}

.streak-cal-active {
	background: var(--primary-color);
}

.streak-cal-today {
	outline: 2px solid var(--text-light);
	outline-offset: -1px;
}

.streak-cal-future {
	background: #1a1a1a;
	opacity: 0.3;
}

/* Primary action button */
.practice-actions {
	margin-bottom: 24px;
}

.practice-btn-start {
	background: var(--primary-color) !important;
	border-color: var(--primary-color) !important;
	color: #fff !important;
	font-size: 18px;
	font-weight: 600;
	padding: 16px 24px;
	border-radius: 12px;
	min-height: 56px;
	touch-action: manipulation;
}

.practice-btn-start:hover,
.practice-btn-start:focus {
	background: var(--primary-hover) !important;
	border-color: var(--primary-hover) !important;
}

.practice-btn-start:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.practice-btn-start .fa {
	margin-right: 8px;
}

/* Section titles */
.practice-section-title {
	font-size: 16px;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 0 10px 0;
}

/* Continue card */
.practice-continue {
	margin-bottom: 20px;
}

.practice-continue-card {
	display: flex;
	align-items: center;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 12px;
	padding: 14px 16px;
	text-decoration: none;
	transition: border-color 0.15s;
	touch-action: manipulation;
}

.practice-continue-card:hover,
.practice-continue-card:focus {
	border-color: var(--primary-color);
	text-decoration: none;
}

.practice-continue-artist {
	font-size: 14px;
	color: var(--text-muted);
	margin-right: 8px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.practice-continue-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--text-light);
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.practice-continue-arrow {
	color: var(--text-muted);
	margin-left: 8px;
	font-size: 14px;
}

/* Favorites list */
.practice-favorites {
	margin-bottom: 20px;
}

.practice-fav-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 8px;
}

.practice-fav-item {
	display: flex;
	align-items: center;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 10px;
	padding: 10px 14px;
	text-decoration: none;
	transition: border-color 0.15s;
	touch-action: manipulation;
}

.practice-fav-item:hover,
.practice-fav-item:focus {
	border-color: var(--primary-color);
	text-decoration: none;
}

.practice-fav-artist {
	font-size: 13px;
	color: var(--text-muted);
	margin-right: 8px;
	white-space: nowrap;
}

.practice-fav-title {
	font-size: 14px;
	color: var(--text-light);
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.practice-link-all {
	font-size: 13px;
	color: var(--primary-color);
}

.practice-link-all:hover,
.practice-link-all:focus {
	color: var(--primary-hover);
}

/* Quick nav cards (Tools / Discover / Account) */
.practice-nav {
	margin-bottom: 30px;
}

.practice-nav-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 12px;
	padding: 18px 8px;
	text-decoration: none;
	color: var(--text-light);
	transition: border-color 0.15s;
	touch-action: manipulation;
	min-height: 80px;
}

.practice-nav-card:hover,
.practice-nav-card:focus {
	border-color: var(--primary-color);
	text-decoration: none;
	color: var(--text-light);
}

.practice-nav-card .fa {
	font-size: 22px;
	margin-bottom: 6px;
	color: var(--primary-color);
}

.practice-nav-card span {
	font-size: 13px;
	text-align: center;
}

/* Navbar practice button */
.navbar-practice-btn {
	background: transparent !important;
	border: 1px solid var(--primary-color) !important;
	color: var(--primary-color) !important;
	border-radius: 4px;
}

.navbar-practice-btn:hover,
.navbar-practice-btn:focus {
	background: var(--primary-color) !important;
	color: #fff !important;
}

/* Today's items detail on dashboard */
.practice-today-detail {
	margin-bottom: 20px;
}

.practice-today-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.practice-today-item {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 10px;
	padding: 10px 14px;
	flex-wrap: wrap;
}

.practice-today-item .fa {
	color: var(--primary-color);
	font-size: 16px;
	width: 20px;
	text-align: center;
}

.practice-today-tab {
	font-size: 14px;
	color: var(--text-light);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
	min-width: 0;
}

.practice-today-section {
	font-size: 12px;
	color: var(--text-muted);
	background: #2a2a2a;
	padding: 2px 8px;
	border-radius: 8px;
}

.practice-today-bpm {
	font-size: 13px;
	font-weight: 600;
	color: var(--primary-color);
	white-space: nowrap;
}

/* ============================
   Practice Log Form
   ============================ */

.practice-log {
	max-width: 540px;
	margin: 0 auto;
	padding: 0 8px;
}

/* Add-item buttons row */
.log-add-buttons {
	display: flex;
	gap: 8px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.log-add-btn {
	flex: 1;
	min-width: 0;
	background: #1a1a1a !important;
	border: 2px dashed #3a3a3a !important;
	color: var(--text-light) !important;
	border-radius: 12px;
	padding: 14px 8px;
	font-size: 14px;
	font-weight: 600;
	touch-action: manipulation;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.log-add-btn:hover,
.log-add-btn:focus {
	border-color: var(--primary-color) !important;
	color: var(--primary-color) !important;
}

.log-add-btn .fa {
	font-size: 20px;
}

/* Individual log item card */
.log-item {
	background: #1a1a1a;
	border: 1px solid #2a2a2a;
	border-radius: 12px;
	padding: 16px;
	margin-bottom: 14px;
}

.log-item-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
}

.log-item-type-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--primary-color);
}

.log-item-type-label .fa {
	margin-right: 6px;
}

.log-item-remove {
	background: transparent;
	border: none;
	color: var(--text-muted);
	font-size: 22px;
	cursor: pointer;
	padding: 0 4px;
	line-height: 1;
}

.log-item-remove:hover {
	color: #e74c3c;
}

/* Labels */
.log-label {
	display: block;
	font-size: 12px;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 6px;
	margin-top: 10px;
}

.log-label small {
	text-transform: none;
	letter-spacing: 0;
}

/* Chip selectors (tab, section, exercise) */
.log-tab-chips,
.log-section-chips,
.log-exercise-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 4px;
}

.log-chip {
	background: #2a2a2a !important;
	border: 1px solid #3a3a3a !important;
	color: var(--text-light) !important;
	border-radius: 20px;
	padding: 7px 14px;
	font-size: 13px;
	cursor: pointer;
	touch-action: manipulation;
	white-space: nowrap;
	transition: border-color 0.15s, background 0.15s;
}

.log-chip:hover,
.log-chip:focus {
	border-color: var(--primary-color) !important;
}

.log-chip.active {
	background: var(--primary-color) !important;
	border-color: var(--primary-color) !important;
	color: #fff !important;
}

/* BPM stepper */
.log-bpm-row {
	display: flex;
	gap: 12px;
	margin-top: 10px;
}

.log-bpm-group {
	flex: 1;
}

.log-stepper {
	display: flex;
	align-items: center;
	gap: 0;
	background: #2a2a2a;
	border-radius: 10px;
	overflow: hidden;
}

.log-stepper-btn {
	background: transparent !important;
	border: none !important;
	color: var(--text-light) !important;
	font-size: 14px;
	font-weight: 600;
	padding: 10px 8px;
	cursor: pointer;
	touch-action: manipulation;
	min-width: 40px;
	text-align: center;
}

.log-stepper-btn:hover,
.log-stepper-btn:focus {
	background: #3a3a3a !important;
}

.log-stepper-value {
	flex: 1;
	text-align: center;
	font-size: 18px;
	font-weight: 700;
	color: var(--primary-color);
	padding: 8px 4px;
	min-width: 48px;
}

/* Submit button reuses .practice-btn-start */
#log-submit-btn {
	margin-top: 10px;
}

/* Mobile refinements */
@media (max-width: 768px) {
	.practice-dashboard {
		padding: 0 4px;
	}

	.practice-log {
		padding: 0 4px;
	}

	.practice-greeting {
		font-size: 20px;
	}

	.practice-stat-card {
		padding: 12px 4px;
	}

	.practice-stat-number {
		font-size: 24px;
	}

	.practice-stat-label {
		font-size: 11px;
	}

	.practice-nav-card {
		padding: 14px 6px;
		min-height: 70px;
	}

	.log-add-btn {
		padding: 12px 6px;
		font-size: 13px;
	}

	.log-chip {
		padding: 6px 10px;
		font-size: 12px;
	}

	.log-stepper-btn {
		padding: 8px 6px;
		font-size: 13px;
		min-width: 34px;
	}

	.log-stepper-value {
		font-size: 16px;
		min-width: 40px;
	}

	.log-bpm-row {
		flex-direction: column;
		gap: 8px;
	}
}
