.puspa-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 20px;
}

/* Badges & levels */
.puspa-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
	background: #2271b1;
}
.puspa-badge-free { background: #2a9d5c; }
.puspa-badge-paid { background: #b5762b; }

.puspa-level {
	display: inline-block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 3px 8px;
	border-radius: 3px;
	background: #eef1f4;
	color: #50575e;
	margin-bottom: 8px;
}

/* Archive grid */
.puspa-category-filters { margin: 15px 0 25px; }
.puspa-category-filters a {
	display: inline-block;
	padding: 6px 14px;
	margin-right: 8px;
	border-radius: 20px;
	background: #f0f0f1;
	color: #1d2327;
	text-decoration: none;
	font-size: 13px;
}
.puspa-category-filters a.active,
.puspa-category-filters a:hover { background: #2271b1; color: #fff; }

.puspa-course-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px;
}

.puspa-course-card {
	border: 1px solid #e2e4e7;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow .2s ease;
}
.puspa-course-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }

.puspa-course-card-thumb {
	position: relative;
	display: block;
}
.puspa-course-card-thumb img { width: 100%; height: 160px; object-fit: cover; display: block; }
.puspa-course-card-thumb-placeholder { width: 100%; height: 160px; background: linear-gradient(135deg,#667eea,#764ba2); }

.puspa-course-card-body { padding: 16px; }
.puspa-course-card-body h3 { margin: 4px 0 8px; font-size: 18px; }
.puspa-course-card-body h3 a { text-decoration: none; color: inherit; }
.puspa-course-excerpt { color: #50575e; font-size: 14px; margin-bottom: 10px; }

.puspa-course-meta { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #646970; margin-bottom: 14px; }

/* Buttons */
.puspa-btn {
	display: inline-block;
	background: #2271b1;
	color: #fff;
	padding: 10px 18px;
	border-radius: 6px;
	text-decoration: none;
	border: none;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
}
.puspa-btn:hover { background: #135e96; color: #fff; }
.puspa-btn-block { display: block; text-align: center; }
.puspa-btn-large { padding: 14px 26px; font-size: 16px; }
.puspa-btn-secondary { background: #f0f0f1; color: #1d2327; }
.puspa-btn-secondary:hover { background: #dcdcde; color: #1d2327; }
.puspa-btn-done { background: #2a9d5c; }
.puspa-btn[disabled] { opacity: .8; cursor: default; }

/* Progress bar */
.puspa-progress-bar {
	background: #e2e4e7;
	border-radius: 20px;
	height: 8px;
	width: 100%;
	max-width: 320px;
	overflow: hidden;
	margin: 10px 0 6px;
}
.puspa-progress-bar-large { max-width: 100%; height: 10px; }
.puspa-progress-bar-fill { background: #2a9d5c; height: 100%; border-radius: 20px; }

/* Single course */
.puspa-course-hero {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	background: #f6f7f7;
	border-radius: 10px;
	padding: 30px;
	margin-bottom: 30px;
}
.puspa-course-hero-content { flex: 1.3; }
.puspa-course-hero-content h1 { margin: 6px 0 10px; }
.puspa-course-hero-image { flex: 1; }
.puspa-course-hero-image img { width: 100%; border-radius: 8px; }

.puspa-notice { padding: 12px 16px; border-radius: 6px; margin-bottom: 20px; }
.puspa-notice-success { background: #eafaf0; border: 1px solid #2a9d5c; color: #1f6b3f; }
.puspa-notice-error { background: #fdeeee; border: 1px solid #d63638; color: #9a2222; }

.puspa-course-body { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; }
@media (max-width: 800px) { .puspa-course-body { grid-template-columns: 1fr; } }

.puspa-syllabus-module {
	border: 1px solid #e2e4e7;
	border-radius: 6px;
	margin-bottom: 10px;
	padding: 12px 16px;
}
.puspa-syllabus-module summary { cursor: pointer; font-weight: 600; }
.puspa-syllabus-module ul { list-style: none; margin: 10px 0 0; }
.puspa-syllabus-module li {
	display: flex;
	justify-content: space-between;
	padding: 8px 0;
	border-top: 1px solid #f0f0f1;
	font-size: 14px;
}
.puspa-lesson-check { margin-right: 8px; }
.puspa-lesson-done a { color: #2a9d5c; }
.puspa-lesson-duration { color: #8c8f94; font-size: 12px; }

/* Lesson player */
.puspa-lesson-page { display: grid; grid-template-columns: 280px 1fr; gap: 30px; }
@media (max-width: 800px) { .puspa-lesson-page { grid-template-columns: 1fr; } }

.puspa-lesson-sidebar { border-right: 1px solid #e2e4e7; padding-right: 20px; }
.puspa-back-to-course { display: block; margin-bottom: 16px; text-decoration: none; font-size: 13px; }
.puspa-sidebar-module h4 { font-size: 13px; text-transform: uppercase; color: #8c8f94; margin: 16px 0 6px; }
.puspa-sidebar-module ul { list-style: none; margin: 0; }
.puspa-sidebar-module li a {
	display: block;
	padding: 6px 8px;
	border-radius: 4px;
	text-decoration: none;
	color: #1d2327;
	font-size: 14px;
}
.puspa-sidebar-module li.puspa-current a { background: #e7f2fa; font-weight: 600; }
.puspa-sidebar-module li.puspa-lesson-done a { color: #2a9d5c; }

.puspa-video-wrap { position: relative; padding-top: 56.25%; margin: 16px 0; }
.puspa-video-wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 8px; }

.puspa-lesson-actions { display: flex; gap: 12px; margin-top: 30px; }

/* My courses dashboard */
.puspa-my-courses-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
}
.puspa-my-course-card {
	border: 1px solid #e2e4e7;
	border-radius: 8px;
	padding: 14px;
}
.puspa-my-course-card img { width: 100%; border-radius: 6px; margin-bottom: 8px; }
