/* course-frontend.css — 前台「我的課程」與「課程播放」樣式 */

.zzcm-frontend-wrap {
	max-width: 1100px;
	margin: 24px auto 0;
}

.zzcm-empty-message {
	color: #555;
	padding: 24px;
	background: #f6f7f7;
	border-radius: 6px;
	text-align: center;
}

.zzcm-btn {
	display: inline-block;
	padding: 10px 22px;
	border-radius: 4px;
	text-decoration: none;
	font-weight: 600;
	transition: opacity .15s ease;
}
.zzcm-btn:hover {
	opacity: .85;
}
.zzcm-btn-primary {
	background: #2271b1;
	color: #fff;
}
.zzcm-btn-secondary {
	background: #e2e4e7;
	color: #1d2327;
}

/* ── 隱藏瀏覽器原生 video 控制項自動加上的浮動小圖示 ──
   Chrome 會在 <video> 上自動疊加「投放到裝置（Cast）」與「子母畫面」按鈕，
   即使 HTML 屬性（disablePictureInPicture、controlsList）已設定，仍可能因瀏覽器版本而顯示。
   這裡透過瀏覽器私有 pseudo-element 強制隱藏，Safari／iOS 的 AirPlay 圖示屬於系統層級 UI，
   無法透過網頁端 CSS 或 HTML 屬性關閉，此為瀏覽器本身限制，非外掛可處理範圍。 */
video::-webkit-media-controls-overlay-cast-button,
video::-internal-media-controls-overlay-cast-button,
video::-webkit-media-controls-picture-in-picture-button {
	display: none !important;
}

/* ── 我的課程列表 ── */

.zzcm-course-section-title {
	font-size: 18px;
	margin: 0 0 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid #2271b1;
}

.zzcm-course-section-title:not(:first-child) {
	margin-top: 32px;
}

.zzcm-course-section-title-tutor {
	border-bottom-color: #999;
}

.zzcm-course-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
}

.zzcm-course-card {
	border: 1px solid #dcdcde;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}

.zzcm-course-card-thumb img {
	width: 100%;
	height: auto;
	display: block;
}

.zzcm-course-card-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1 1 auto;
}

.zzcm-course-card-title {
	margin: 0;
	font-size: 17px;
	line-height: 1.5;
}

.zzcm-course-card-notice {
	color: #888;
	font-size: 14px;
	margin: 0;
}

/* ── 課程播放頁 ── */

.zzcm-player-course-title {
	margin-bottom: 16px;
}

.zzcm-player-layout {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}

.zzcm-player-sidebar {
	flex: 0 0 280px;
	max-width: 280px;
	border: 1px solid #dcdcde;
	border-radius: 8px;
	padding: 12px;
	background: #f9f9f9;
}

.zzcm-sidebar-section {
	margin-bottom: 16px;
}
.zzcm-sidebar-section:last-child {
	margin-bottom: 0;
}

.zzcm-sidebar-section-title {
	font-weight: 700;
	padding: 6px 4px;
	border-bottom: 2px solid #2271b1;
	margin-bottom: 4px;
}

.zzcm-sidebar-empty {
	color: #999;
	font-size: 13px;
	padding: 4px;
	margin: 0;
}

.zzcm-sidebar-lessons {
	list-style: none;
	margin: 0;
	padding: 0;
}

.zzcm-sidebar-lesson a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	padding: 8px 6px;
	text-decoration: none;
	color: #1d2327;
	border-radius: 4px;
}

.zzcm-sidebar-lesson a:hover {
	background: #eef3f8;
}

.zzcm-sidebar-lesson.is-active a {
	background: #2271b1;
	color: #fff;
}

.zzcm-sidebar-lesson-title {
	font-size: 14px;
	line-height: 1.4;
}

.zzcm-sidebar-lesson-duration {
	font-size: 12px;
	opacity: .8;
	white-space: nowrap;
}

.zzcm-player-main {
	flex: 1 1 auto;
	min-width: 0;
}

.zzcm-player-lesson-title {
	margin-top: 0;
}

.zzcm-video-wrap {
	background: #000;
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 20px;
}

.zzcm-video-wrap video {
	display: block;
}

.zzcm-lesson-summary {
	margin-bottom: 20px;
	line-height: 1.8;
}

.zzcm-lesson-summary h4 {
	margin-bottom: 8px;
}

.zzcm-lesson-resource {
	margin-bottom: 12px;
}

/* ── 手機版：側邊欄改為上方，避免主內容被擠壓 ── */
@media (max-width: 782px) {
	/* 架構調整：手機版左右留白統一歸屬整個課程頁（wrap），而不是分散在
	   側邊欄、主內容各自處理。之後新增任何區塊都會自動套用同一份留白，
	   不用每個元件都重新加一次 padding。 */
	.zzcm-frontend-wrap {
		margin-top: 16px;
		padding-left: 12px;
		padding-right: 12px;
		box-sizing: border-box;
	}
	.zzcm-player-layout {
		flex-direction: column;
		/* flex-direction 變成 column 後，align-items 控制的軸向會變成「寬度」。
		   桌面版沿用的 flex-start 會讓子項目縮成內容的自然寬度而非撐滿容器，
		   改回 stretch（flexbox 預設值）讓側邊欄與主內容都確實撐滿容器寬度。 */
		align-items: stretch;
	}
	.zzcm-player-sidebar {
		flex: 1 1 auto;
		max-width: none;
		width: 100%;
		box-sizing: border-box;
	}
	.zzcm-player-main {
		width: 100%;
		box-sizing: border-box;
	}
	/* 保險修正：部分 WordPress 主題會對文章內容裡的 <video>/<img>/<iframe> 在手機版
	   套用「滿版負 margin」樣式（讓內嵌媒體貼齊螢幕邊緣做電影感效果），這類規則會直接
	   蓋過 wrap 的 padding。這裡用 !important 直接鎖死 video 標籤本身的寬度與 margin，
	   確保無論主題怎麼處理，留白設定都不會被覆蓋。 */
	.zzcm-video-wrap,
	.zzcm-video-wrap video {
		margin-left: 0 !important;
		margin-right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}
