/* ===== Modern CSS Reset & Base Styles ===== */
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
	background-attachment: fixed;
	color: #1565c0;
	min-height: 100vh;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	user-select: none;
	-webkit-overflow-scrolling: touch;
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.hideout {
	position: absolute;
	left: 0;
	top: 0;
	visibility: hidden;
}

/* ===== Header ===== */
.header {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: 1rem;
	border-bottom: 2px solid #2196f3;
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);
}

.header-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.header-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1976d2;
	margin: 0;
}

.header-link {
	color: #1976d2;
	text-decoration: none !important;
	transition: color 0.3s ease;
	display: flex;
	align-items: center;
}

.header-link:hover {
	color: #2196f3;
	text-decoration: none !important;
}

.header-link:focus,
.header-link:active,
.header-link:visited {
	text-decoration: none !important;
}

.header-version-link {
	text-decoration: none !important;
	transition: transform 0.2s ease;
	display: inline-block;
}

.header-version-link:hover {
	transform: translateY(-2px);
	text-decoration: none !important;
}

.header-version-link:focus,
.header-version-link:active,
.header-version-link:visited {
	text-decoration: none !important;
}

.header-version-link:hover .header-version {
	background: rgba(33, 150, 243, 0.25);
	border-color: rgba(33, 150, 243, 0.5);
}

.header-version {
	font-size: 0.875rem;
	color: #1976d2;
	background: rgba(33, 150, 243, 0.15);
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.25rem 0.75rem;
	border-radius: 1rem;
	border: 1px solid rgba(33, 150, 243, 0.3);
	transition: all 0.3s ease;
	cursor: pointer;
}

.header-version-icon {
	width: 16px;
	height: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1976d2;
}

.header-version-icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* ===== Player Section ===== */
.player-section {
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	padding: 1.5rem 1rem;
	border-bottom: 1px solid rgba(33, 150, 243, 0.2);
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.08);
}

.track-info {
	text-align: center;
	margin-bottom: 1rem;
	cursor: pointer;
	padding: 0.75rem;
	border-radius: 0.5rem;
	background: rgba(33, 150, 243, 0.08);
	transition: background 0.3s ease;
	min-height: 4rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border: 1px solid rgba(33, 150, 243, 0.15);
}

.track-info:hover {
	background: rgba(33, 150, 243, 0.15);
	border-color: rgba(33, 150, 243, 0.3);
}

.track-title {
	font-size: 1rem;
	font-weight: 600;
	color: #0d47a1;
	margin-bottom: 0.25rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.track-path {
	font-size: 0.75rem;
	color: #1565c0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.time-info {
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.5rem;
	font-size: 0.875rem;
	color: #1565c0;
	font-weight: 500;
}

.progress-bar {
	margin-bottom: 1.25rem;
	height: 2rem;
	display: flex;
	align-items: center;
}

.progress-track {
	width: 100%;
	height: 0.5rem;
	background: rgba(33, 150, 243, 0.2);
	border-radius: 0.25rem;
	cursor: pointer;
	position: relative;
	transition: height 0.2s ease;
	user-select: none;
	-webkit-user-select: none;
	touch-action: none;
}

.progress-track:hover {
	height: 0.75rem;
}

.progress-track:active {
	height: 0.75rem;
}

.progress-fill {
	height: 100%;
	background: linear-gradient(90deg, #2196f3 0%, #1976d2 100%);
	border-radius: 0.25rem;
	transition: width 0.1s linear;
	box-shadow: 0 0 8px rgba(33, 150, 243, 0.4);
	position: relative;
	pointer-events: none;
}

.progress-fill::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1rem;
	height: 1rem;
	background: #ffffff;
	border: 2px solid #2196f3;
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(33, 150, 243, 0.4);
	transition: all 0.2s ease;
}

/* Hide the thumb when progress is 0% (width: 0) */
.progress-fill[style*="width: 0"]::after {
	display: none;
}

.progress-track:hover .progress-fill::after {
	width: 1.25rem;
	height: 1.25rem;
	box-shadow: 0 3px 10px rgba(33, 150, 243, 0.5);
}

.progress-track:active .progress-fill::after {
	width: 1.25rem;
	height: 1.25rem;
	box-shadow: 0 3px 10px rgba(33, 150, 243, 0.5);
}

.controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.control-btn {
	background: rgba(33, 150, 243, 0.1);
	border: 2px solid #2196f3;
	color: #1976d2;
	font-size: 1.5rem;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.15);
}


/* Only apply hover styles on devices that actually support hover (prevents touch devices
   from sticking hover-state after taps). */
@media (hover: hover) and (pointer: fine) {
	.control-btn:hover {
		background: #2196f3;
		color: #ffffff;
		transform: scale(1.1);
		box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3);
	}

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

.btn-shuffle.active {
	background: #2196f3;
	color: #ffffff;
}

.skip-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-top: 1rem;
}

.skip-btn {
	background: rgba(33, 150, 243, 0.1);
	border: 1px solid rgba(33, 150, 243, 0.3);
	color: #1565c0;
	padding: 0.5rem 1rem;
	border-radius: 1rem;
	cursor: pointer;
	font-size: 0.875rem;
	transition: all 0.2s ease;
	font-weight: 500;
}

.skip-btn:hover {
	background: rgba(33, 150, 243, 0.2);
	color: #0d47a1;
	border-color: rgba(33, 150, 243, 0.5);
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(33, 150, 243, 0.2);
}

/* ===== Navigation Tabs ===== */
.tabs {
	display: flex;
	background: rgba(255, 255, 255, 0.95);
	border-bottom: 2px solid rgba(33, 150, 243, 0.2);
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.08);
}

.tab {
	flex: 1;
	background: transparent;
	border: none;
	color: #1565c0;
	padding: 1rem;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 500;
	transition: all 0.3s ease;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.tab:hover {
	background: rgba(33, 150, 243, 0.08);
	color: #0d47a1;
}

.tab.active {
	color: #1976d2;
	background: rgba(33, 150, 243, 0.15);
	border-bottom: 3px solid #2196f3;
}

.tab-icon {
	font-size: 0.75rem;
	opacity: 0;
	position: absolute;
	left: 0.75rem;
}

.tab-icon.visible {
	opacity: 1;
}

.tab-loader {
	font-size: 1.25rem;
	display: none;
	position: absolute;
	right: 0.75rem;
}

.tab-loader.visible {
	display: block;
	animation: blink 1s linear infinite;
}

@keyframes blink {

	0%,
	100% {
		opacity: 1;
	}

	50% {
		opacity: 0;
	}
}

/* ===== Content Area ===== */
.content {
	position: relative;
	min-height: 400px;
	overflow: hidden;
}

.content-frame {
	display: none;
	height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	padding: 1rem;
	scrollbar-width: thin;
	scrollbar-color: rgba(33, 150, 243, 0.5) rgba(33, 150, 243, 0.1);
}

.content-frame::-webkit-scrollbar {
	width: 8px;
}

.content-frame::-webkit-scrollbar-track {
	background: rgba(33, 150, 243, 0.1);
}

.content-frame::-webkit-scrollbar-thumb {
	background: rgba(33, 150, 243, 0.5);
	border-radius: 4px;
}

.content-frame::-webkit-scrollbar-thumb:hover {
	background: rgba(33, 150, 243, 0.7);
}

.content-frame.active {
	display: block;
}

/* Search tab removed from UI. Related JS/server endpoints remain available. */

/* ===== List Items ===== */
.item-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.list-item {
	background: rgba(255, 255, 255, 0.8);
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	transition: all 0.2s ease;
	border: 1px solid rgba(33, 150, 243, 0.2);
	box-shadow: 0 1px 3px rgba(33, 150, 243, 0.1);
}

.list-item:hover {
	background: rgba(255, 255, 255, 0.95);
	transform: translateX(4px);
	border-color: rgba(33, 150, 243, 0.4);
	box-shadow: 0 2px 6px rgba(33, 150, 243, 0.15);
}

.list-item.active {
	background: rgba(33, 150, 243, 0.15);
	border-color: #2196f3;
	box-shadow: 0 2px 8px rgba(33, 150, 243, 0.25);
}

.list-item.directory {
	background: rgba(33, 150, 243, 0.1);
	font-weight: 600;
	border-color: rgba(33, 150, 243, 0.3);
}

.list-item.directory:hover {
	background: rgba(33, 150, 243, 0.2);
}

.item-content {
	flex: 1;
	overflow: hidden;
}

.item-title {
	font-size: 1rem;
	color: #0d47a1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
}

.item-subtitle {
	font-size: 0.75rem;
	color: #1565c0;
	margin-top: 0.25rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.item-action {
	margin-left: 1rem;
	font-size: 1.25rem;
	color: #2196f3;
	opacity: 0.7;
	transition: opacity 0.2s ease;
}

.item-action:hover {
	opacity: 1;
}

.item-action.in-playlist {
	color: #ff9800;
}

/* ===== Breadcrumb & Filter ===== */
.breadcrumb-filter-container {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin-bottom: 1rem;
	padding: 0.75rem;
	background: rgba(255, 255, 255, 0.8);
	border-radius: 0.5rem;
	border: 1px solid rgba(33, 150, 243, 0.2);
}

.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	flex: 1;
	min-width: 0;
}

.breadcrumb-item-wrapper {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	position: relative;
}

.breadcrumb-item {
	background: rgba(33, 150, 243, 0.15);
	color: #1976d2;
	padding: 0.5rem 1rem;
	border-radius: 1rem;
	cursor: pointer;
	font-size: 0.875rem;
	white-space: nowrap;
	transition: all 0.2s ease;
	border: 1px solid rgba(33, 150, 243, 0.3);
	font-weight: 500;
}

.breadcrumb-item:hover {
	background: #2196f3;
	color: #ffffff;
	box-shadow: 0 2px 6px rgba(33, 150, 243, 0.3);
}

.breadcrumb-add-btn {
	background: transparent;
	border: none;
	color: #1976d2;
	cursor: pointer;
	font-size: 1.25rem;
	font-weight: normal;
	transition: all 0.2s ease;
	padding: 0;
	line-height: 1;
	min-width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.breadcrumb-add-btn:hover {
	color: #4caf50;
	transform: scale(1.2);
}

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

/* ===== Browser Filter ===== */
.browser-filter-container {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	position: relative;
	flex-shrink: 0;
}

.browser-filter-search-btn {
	background: rgba(33, 150, 243, 0.15);
	border: 1px solid rgba(33, 150, 243, 0.3);
	color: #1976d2;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	padding: 0;
	flex-shrink: 0;
}

.browser-filter-search-btn:hover {
	background: #2196f3;
	color: #ffffff;
	box-shadow: 0 2px 6px rgba(33, 150, 243, 0.3);
}

.browser-filter-search-btn:active {
	transform: scale(0.95);
}

.browser-filter-input {
	width: 180px;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	border: 1px solid rgba(33, 150, 243, 0.3);
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.95);
	color: #1565c0;
	font-size: 0.875rem;
	transition: all 0.2s ease;
	outline: none;
	font-weight: 500;
}

.browser-filter-input:focus {
	border-color: #2196f3;
	background: #ffffff;
	box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.15);
	width: 220px;
}

.browser-filter-input::placeholder {
	color: rgba(21, 101, 192, 0.4);
	font-weight: 400;
}

.browser-filter-clear {
	position: absolute;
	right: 0.35rem;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(33, 150, 243, 0.2);
	border: none;
	color: #1976d2;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 12px;
	font-weight: bold;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	padding: 0;
	z-index: 2;
}

.browser-filter-clear:hover {
	background: #f44336;
	color: #ffffff;
	transform: translateY(-50%) scale(1.1);
}

.browser-filter-clear:active {
	transform: translateY(-50%) scale(0.95);
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.breadcrumb-filter-container {
		gap: 0.5rem;
	}

	.browser-filter-input {
		width: 120px;
	}

	.browser-filter-input:focus {
		width: 140px;
	}
}

/* Dedicated Search styles removed with Search tab UI */

/* ===== Info Banner ===== */
.info-banner {
	background: rgba(33, 150, 243, 0.12);
	border: 1px solid rgba(33, 150, 243, 0.3);
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	text-align: center;
	color: #1565c0;
	cursor: pointer;
	transition: all 0.2s ease;
	font-weight: 500;
}

.info-banner:hover {
	background: rgba(33, 150, 243, 0.2);
	border-color: rgba(33, 150, 243, 0.4);
}

/* Add-All button inside info banners (server search results) */
.info-banner {
	position: relative;
}

.info-banner-add {
	position: absolute;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	color: #1976d2;
	font-size: 1.25rem;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.15s ease;
}

@media (hover: hover) and (pointer: fine) {
	.info-banner-add:hover {
		background: rgba(33, 150, 243, 0.12);
		color: #0b63b7;
		transform: translateY(-50%) scale(1.06);
	}
}

/* ===== Playlist Info Banner ===== */
.info-banner-playlist {
	background: rgba(33, 150, 243, 0.12);
	border: 1px solid rgba(33, 150, 243, 0.3);
	border-radius: 0.5rem;
	padding: 0.75rem 1rem;
	margin-bottom: 1rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	cursor: pointer;
	/* make it obvious this banner is clickable */
}

.info-banner-content {
	color: #1565c0;
	font-weight: 500;
	flex: 1;
}

/* clear-playlist-btn removed: banner is clickable so separate button is unnecessary */

.clear-playlist-hint {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	/* stronger, more visible styling */
	color: #0b63b7;
	/* stronger blue for better contrast */
	background: transparent;
	padding: 0.45rem 0.9rem;
	border-radius: 0.375rem;
	border: 1px solid rgba(33, 150, 243, 0.12);
	font-weight: 700;
	font-size: 1.05rem;
	transition: all 0.14s ease;
	/* remove default button chrome */
	appearance: none;
	-webkit-appearance: none;
	outline: none;
}

.info-banner-playlist:hover .clear-playlist-hint {
	/* keep hover subtle: highlight border and text color only */
	background: transparent;
	box-shadow: none;
	border-color: rgba(33, 150, 243, 0.2);
	color: #0d47a1;
	transform: translateY(-1px) scale(1.02);
}

.clear-playlist-hint svg {
	width: 20px;
	height: 20px;
}

.clear-playlist-hint:focus {
	outline: none;
	box-shadow: 0 0 0 4px rgba(33, 150, 243, 0.08);
	border-color: rgba(33, 150, 243, 0.28);
}


/* ===== Custom Confirm Dialog ===== */
.confirm-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10000;
	animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.confirm-dialog {
	background: white;
	border-radius: 0.25rem;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
	max-width: 500px;
	width: 90%;
	animation: slideUp 0.2s ease;
}

@keyframes slideUp {
	from {
		transform: translateY(20px);
		opacity: 0;
	}

	to {
		transform: translateY(0);
		opacity: 1;
	}
}

.confirm-title {
	padding: 1.25rem 1.5rem 0.5rem;
	font-size: 1.125rem;
	font-weight: 600;
	color: #333;
}

.confirm-message {
	padding: 0.5rem 1.5rem 1.25rem;
	color: #666;
	line-height: 1.5;
}

.confirm-buttons {
	display: flex;
	gap: 0.75rem;
	padding: 0 1.5rem 1.25rem;
}

.confirm-btn {
	flex: 1;
	padding: 0.75rem 1.5rem;
	border: none;
	border-radius: 0.5rem;
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
}

.confirm-btn-cancel {
	background: #e0e0e0;
	color: #333;
}

.confirm-btn-cancel:hover {
	background: #d0d0d0;
}

.confirm-btn-ok {
	background: #2196f3;
	color: white;
}

.confirm-btn-ok:hover {
	background: #1976d2;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(33, 150, 243, 0.3);
}

.confirm-btn-ok:active,
.confirm-btn-cancel:active {
	transform: translateY(0);
}

/* ===== Responsive Design ===== */
@media (min-width: 768px) {
	.header-title {
		font-size: 2rem;
	}

	.player-section {
		padding: 2rem;
	}

	.track-title {
		font-size: 1.25rem;
	}

	.track-path {
		font-size: 0.875rem;
	}

	.content {
		height: calc(100vh - 480px);
	}
}

@media (min-width: 1024px) {
	.skip-controls {
		gap: 0.75rem;
	}

	.content {
		height: calc(100vh - 430px);
	}
}

@media (max-width: 480px) {
	.header-title {
		font-size: 1.25rem;
	}

	.header-version {
		font-size: 0.75rem;
		padding: 0.2rem 0.5rem;
	}

	.control-btn {
		width: 3rem;
		height: 3rem;
		font-size: 1.25rem;
	}

	.skip-btn {
		font-size: 0.75rem;
		padding: 0.4rem 0.75rem;
	}

	.content {
		height: calc(100vh - 450px);
	}
}

/* ===== Legacy Support ===== */
smallPath {
	position: relative;
	font-size: 0.75rem;
	color: #1565c0;
	top: -0.8em;
}

.mark {
	font-size: 1.25rem;
}

.third {
	width: 25vw;
	text-align: center;
}

.inp {
	width: 38vw;
	border: none;
	font-size: 90%;
	background: #dddddd;
	margin: 0.2em 0.3em 0 0;
	border-radius: 0.1em;
}

.hideout {
	position: absolute;
	left: 0em;
	top: 0em;
	visibility: hidden;
}

.fixedMenu {
	position: fixed;
	top: 0em;
	left: 0em;
	width: 100%;
	height: 8.3em;
	text-align: left;
	padding: 0em;
	background: #dddddd;
	z-index: 100;
}

.timeBox {
	text-align: center;
	display: inline-block;
	width: 30%;
	background: #eeeeee;
	border-radius: 0.1em;
	margin: 0.4em 1% 0.45em 2%;
}

.bar {
	width: 100%;
	height: 1.65em;
	padding: 0em 0em 0em 0.25em;
	margin: 0em;
	box-sizing: border-box;
}

.barOn,
.barOff,
.barGrey {
	border-radius: 0.1em;
	cursor: pointer;
	display: inline-block;
	background: #000000;
	border: none;
	width: 1.2em;
	height: 1.2em;
	margin: 0% 0% 0% 0.9%;
}

.barOn {
	background: #ffffff;
}

.barGrey {
	background: #808080;
}

.trackName {
	cursor: pointer;
	width: 96%;
	height: 2em;
	text-align: center;
	white-space: nowrap;
	overflow: auto;
	overflow-y: hidden;
	background: #eeeeee;
	border-radius: 0.1em;
	display: inline-block;
	margin: 0em 0em 0.5em 0.4em;
	vertical-align: top;
}

.tabBack {
	background: #dddddd;
	text-align: center;
	position: fixed;
	top: 8.3em;
	left: 0em;
	width: 100%;
	height: 1.9em;
	z-index: 50;
}

.tabBrowser,
.tabPlaylist,
.tabSearch {
	text-align: center;
	cursor: pointer;
	position: absolute;
	bottom: 0em;
	left: 2%;
	width: 30.66%;
	height: 1.5em;
	border-radius: 0.3em 0.3em 0em 0em;
}

.tabPlaylist {
	left: 34.66%;
}

.tabSearch {
	left: 67.33%;
}

.tabFrame,
.tabFrameBack {
	overflow: hidden;
	overflow-y: auto;
	position: absolute;
	top: 10.45em;
	left: 0em;
	bottom: 0em;
	width: 100%;
	background: #ffffff;
	z-index: 10;
}

.tabFrameBack {
	border-radius: 0.1em;
	overflow: hidden;
	top: 10.2em;
	z-index: 0;
	position: fixed;
}

.listContainer,
.pathContainer {
	overflow: hidden;
	white-space: nowrap;
	width: 98%;
	height: 2em;
	margin: 0em 0em 0.2em 0.2em;
}

.pathContainer {
	overflow: auto;
	overflow-y: hidden;
}

.browserPath,
.browserDir,
.browserTitle,
.browserTitleHL,
.browserAction {
	cursor: pointer;
	vertical-align: top;
	border-radius: 0.1em;
	overflow: hidden;
	white-space: nowrap;
	display: inline-block;
	background: #aaaaaa;
	height: 100%;
	margin: 0% 1% 0% 0%;
}

.browserPath {
	background: #bbbbbb;
}

.browserDir {
	background: #bbbbbb;
	width: 100%;
	overflow: auto;
	overflow-y: hidden;
}

.browserTitle,
.browserTitleHL {
	width: 89%;
	overflow: auto;
	overflow-y: hidden;
}

.browserTitleHL {
	background: #dddddd;
}

.browserAction {
	width: 10%;
}

.mark {
	position: relative;
	left: 0.5em;
	top: 0.2em;
}

.markPlay {
	visibility: hidden;
	position: absolute;
	font-size: 50%;
	left: 0.4em;
	top: 0.3em;
}

.markLoad {
	visibility: hidden;
	position: absolute;
	font-size: 100%;
	right: 0.3em;
	top: -0.15em;
	animation: blinker 1s linear infinite;
}

@keyframes blinker {
	50% {
		opacity: 0.0;
	}
}

.button,
.shuffleOn,
.shuffleOff {
	display: inline-block;
	overflow: hidden;
	font-size: 150%;
	height: 1.35em;
	width: 19.5%;
	cursor: pointer;
	background: #aaaaaa;
	border: none;
	border-radius: 0.1em;
	text-align: center;
	padding: 0;
	margin: 0 0 0.3em 2%;
}

.shuffleOn,
.shuffleOff {
	width: 10%;
}

.shuffleOn {
	background: #ffffff;
}

alignPlay {
	line-height: 1.3;
}

alignJumpPause {
	font-size: 90%;
}

alignShuffle {
	font-size: 70%;
	letter-spacing: -0.4em;
	margin: 0 0.3em 0 0;
}

alignJumpTrack {
	font-size: 70%;
	letter-spacing: -0.3em;
	margin: 0 0.3em 0 0;
}

.shuffleOn,
.shuffleOff {
	display: inline-block;
}

.collection {
	display: inline-block;
	overflow: hidden;
	width: 96%;
	background: #cccccc;
	border: none;
	border-radius: 0.1em;
	text-align: center;
	padding: 0.7em 0 0 0;
	margin: 0 0 0.3em 2%;
}

.landscape {
	visibility: hidden;
}

@media all and (orientation:landscape) {
	body {
		font-size: 2.5vw;
	}

	.landscape {
		visibility: visible;
	}

	.fixedMenu {
		width: 50%;
	}

	.tabFrame,
	.tabFrameBack {
		top: 1.9em;
		left: 50%;
		bottom: 0em;
		width: 50%;
	}

	.tabFrame {
		top: 2.15em;
	}

	.tabBack {
		top: 0em;
		left: 50%;
		width: 50%;
	}

	.third {
		width: 12.5vw;
	}

	.inp {
		width: 19vw;
	}
}

/* ===== Toast Notification ===== */
.toast {
	position: fixed;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(33, 150, 243, 0.95);
	color: #ffffff;
	padding: 1rem 1.5rem;
	border-radius: 2rem;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	font-size: 0.9rem;
	font-weight: 500;
	z-index: 10000;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	max-width: 90%;
	text-align: center;
}

.toast.show {
	opacity: 1;
	visibility: visible;
	bottom: 3rem;
}

@media (max-width: 768px) {
	.toast {
		/* keep compact on small devices to avoid overlap */
		margin-left: 0;
		font-size: 0.9rem;
		padding: 0.4rem 0.8rem;
	}

	.toast.show {
		bottom: 6rem;
	}
}

/* clear-playlist-btn related responsive rules removed */