.ab-lms-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin:1.5rem 0}
.ab-lms-course-card{border:1px solid #ddd;border-radius:12px;padding:1rem;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.ab-lms-course-card img{width:100%;height:auto;border-radius:8px}
.ab-lms-progress{height:12px;background:#eee;border-radius:999px;overflow:hidden;margin:.75rem 0 .25rem}
.ab-lms-progress span{display:block;height:100%;background:currentColor}
.ab-lms-progress-label{font-size:.9rem;margin-top:0}
.ab-lms-outline{border:1px solid #ddd;border-radius:12px;padding:1rem;margin:1.5rem 0;background:#fff}
.ab-lms-outline li.is-complete{font-weight:700}
.ab-lms-outline li.is-complete::marker{content:'✓ '}
.ab-lms-question{padding:1rem;border:1px solid #ddd;border-radius:8px;margin:1rem 0;background:#fff}
.ab-lms-quiz-result,.ab-lms-quiz-limit,.ab-lms-quiz-timer{padding:.75rem 1rem;border:1px solid #ddd;border-radius:8px;margin:.75rem 0;background:#f8f8f8;font-weight:700}
.ab-lms-notes,.ab-lms-auto-ui,.ab-lms-assignment-form{margin:1.5rem 0}
.ab-lms-notes{border:1px solid #ddd;border-radius:12px;padding:1rem;background:#fff}
.ab-lms-leaderboard{width:100%;border-collapse:collapse;margin:1rem 0}
.ab-lms-leaderboard th,.ab-lms-leaderboard td{border:1px solid #ddd;padding:.5rem;text-align:left}
.ab-lms-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0}
.ab-lms-admin-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem}
.ab-lms-admin-card strong{display:block;font-size:2rem}
.ab-lms-certificate-valid{padding:1rem;border:1px solid #0a0;border-radius:8px}
.ab-lms-certificate-invalid{padding:1rem;border:1px solid #a00;border-radius:8px}

.ab-lms-notice,
.ab-lms-timer-lock,
.ab-lms-assignment-due,
.ab-lms-assignment-overdue {
	border-left: 4px solid currentColor;
	padding: .75rem 1rem;
	margin: 1rem 0;
	background: rgba(0,0,0,.04);
}
.ab-lms-quiz-feedback,
.ab-lms-reviews,
.ab-lms-review {
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid rgba(0,0,0,.12);
	background: rgba(255,255,255,.7);
}
.ab-lms-review + .ab-lms-review {
	margin-top: .75rem;
}
.ab-lms-review-summary {
	font-weight: 600;
}

/* v0.5.0 learning experience additions */
.ab-lms-profile-header{display:flex;gap:1rem;align-items:center;margin:1rem 0 1.5rem;padding:1rem;border:1px solid #ddd;border-radius:10px;background:#fff}.ab-lms-profile-header img{border-radius:50%}.ab-lms-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0}.ab-lms-course-card{border:1px solid #ddd;border-radius:10px;padding:1rem;background:#fff}.ab-lms-course-card img{max-width:100%;height:auto;border-radius:8px}.ab-lms-table{width:100%;border-collapse:collapse;margin:1rem 0}.ab-lms-table th,.ab-lms-table td{border:1px solid #ddd;padding:.55rem;text-align:left}.ab-lms-focus-entry{margin:1rem 0}.ab-lms-focus-template{margin:0;background:#f7f7f7}.ab-lms-focus-shell{display:grid;grid-template-columns:minmax(220px,300px) 1fr;min-height:100vh}.ab-lms-focus-sidebar{padding:1.25rem;background:#111;color:#fff;overflow:auto}.ab-lms-focus-sidebar a{color:#fff}.ab-lms-focus-main{padding:2rem;max-width:900px;background:#fff}.ab-lms-focus-outline ol{margin-left:1rem}.ab-lms-focus-outline .is-current>a{font-weight:700;text-decoration:underline}.ab-lms-challenge,.ab-lms-challenge-result,.ab-lms-package{border:1px solid #ddd;border-radius:10px;padding:1rem;margin:1rem 0;background:#fff}.ab-lms-challenge-result.passed{border-left:5px solid #008a20}.ab-lms-challenge-result.failed{border-left:5px solid #b32d2e}.ab-lms-matrix{width:100%;border-collapse:collapse}.ab-lms-matrix th,.ab-lms-matrix td{border:1px solid #ddd;padding:.5rem;text-align:center}.ab-lms-assessment-scale label{display:inline-block;margin-right:.75rem}.ab-lms-package iframe{border:0;border-radius:8px;background:#fff}@media(max-width:800px){.ab-lms-focus-shell{grid-template-columns:1fr}.ab-lms-focus-sidebar{position:relative}.ab-lms-focus-main{padding:1rem}}

/* v0.6.0 visual builder and organization dashboard */
.ab-lms-visual-builder .ab-lms-vb-toolbar{margin:18px 0;padding:12px;background:#fff;border:1px solid #dcdcde;display:flex;gap:12px;align-items:center}.ab-lms-vb-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:18px}.ab-lms-vb-panel{background:#fff;border:1px solid #dcdcde;padding:16px}.ab-lms-vb-outline{margin:0}.ab-lms-vb-row{padding:10px;border:1px solid #dcdcde;background:#f6f7f7;margin-bottom:8px;display:flex;gap:8px;align-items:center}.ab-lms-vb-row small{margin-left:auto;color:#646970}.ab-lms-vb-handle{cursor:move;color:#646970}.ab-lms-vb-status{font-weight:600}.ab-lms-org-dashboard table{margin-bottom:24px}.ab-lms-inline-form{background:#fff;border:1px solid #dcdcde;padding:16px;margin:16px 0}.ab-lms-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:18px 0}.ab-lms-admin-card{background:#fff;border:1px solid #dcdcde;padding:16px}
@media(max-width:900px){.ab-lms-vb-grid{grid-template-columns:1fr}.ab-lms-vb-row{display:block}.ab-lms-vb-row small{display:block;margin:6px 0 0}}

/* v0.7.0 org invites, question authoring, transcripts */
.ab-lms-transcript .ab-lms-table,.ab-lms-my-certificates{width:100%;border-collapse:collapse;margin:1rem 0}.ab-lms-transcript .ab-lms-table th,.ab-lms-transcript .ab-lms-table td,.ab-lms-my-certificates th,.ab-lms-my-certificates td{border:1px solid #ddd;padding:.55rem;text-align:left}.ab-lms-invite-wrap .button,.ab-lms-transcript .button{display:inline-block}.ab-lms-inline-form textarea{max-width:100%}.ab-lms-admin-card span{display:block;color:#555}

.ab-lms-front-dashboard,.ab-lms-sync-conflicts{margin:1.5rem 0;padding:1rem;border:1px solid rgba(0,0,0,.12);border-radius:12px;background:#fff}.ab-lms-dashboard-section{margin:1rem 0;padding:1rem;border:1px solid rgba(0,0,0,.1);border-radius:10px}.ab-lms-dashboard-metrics{display:flex;gap:1rem;flex-wrap:wrap;margin:.75rem 0}.ab-lms-dashboard-metrics span{display:inline-block;padding:.5rem .75rem;border:1px solid rgba(0,0,0,.12);border-radius:999px}.ab-lms-table{width:100%;border-collapse:collapse;margin:1rem 0}.ab-lms-table th,.ab-lms-table td{border:1px solid rgba(0,0,0,.15);padding:.55rem;text-align:left}.ab-lms-certificate-qr{margin:1rem auto;text-align:center}.ab-lms-certificate-qr img{max-width:100%;height:auto;border:1px solid rgba(0,0,0,.2);background:#fff;padding:.35rem}.ab-lms-rb-app{margin-top:1rem}.ab-lms-rb-toolbar{display:flex;align-items:end;gap:1rem;flex-wrap:wrap;margin:1rem 0}.ab-lms-rb-status{padding:.35rem .65rem;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.15)}.ab-lms-rb-manifest{padding:.75rem 1rem;border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:8px;margin-bottom:1rem}.ab-lms-rb-grid{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(280px,1fr) minmax(280px,1fr);gap:1rem}.ab-lms-rb-panel{background:#fff;border:1px solid #dcdcde;border-radius:8px;padding:1rem}.ab-lms-rb-list{margin-left:1.25rem}.ab-lms-rb-list li{padding:.45rem;border-bottom:1px solid rgba(0,0,0,.08)}.ab-lms-rb-list li.is-selected{outline:2px solid currentColor}.ab-lms-rb-list button{margin-right:.35rem}.ab-lms-rb-row-actions{display:inline-block;margin-left:.5rem}.ab-lms-rb-two{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:.75rem}@media(max-width:1100px){.ab-lms-rb-grid{grid-template-columns:1fr}}

/* v0.9.0 video progression, BuddyBoss learning tabs, and mobile/offline polish */
.ab-lms-video-wrap{border:1px solid rgba(0,0,0,.14);border-radius:12px;background:#fff;padding:1rem;margin:1.25rem 0}.ab-lms-video-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.75rem}.ab-lms-video-status{font-size:.9rem;border:1px solid rgba(0,0,0,.16);border-radius:999px;padding:.25rem .55rem}.ab-lms-video-player{width:100%;max-height:70vh;background:#000;border-radius:10px}.ab-lms-video-embed{position:relative;padding-top:56.25%;background:#000;border-radius:10px;overflow:hidden}.ab-lms-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.ab-lms-video-requirement,.ab-lms-video-lock{border-left:4px solid currentColor;padding:.75rem 1rem;background:rgba(0,0,0,.04);margin:1rem 0}.ab-lms-video-wrap.is-video-complete{box-shadow:0 0 0 2px rgba(0,0,0,.08) inset}.ab-lms-buddyboss-learning{padding:1rem 0}.ab-lms-buddyboss-learning .ab-lms-table{width:100%;border-collapse:collapse}.ab-lms-buddyboss-learning .ab-lms-table th,.ab-lms-buddyboss-learning .ab-lms-table td{border:1px solid rgba(0,0,0,.15);padding:.55rem;text-align:left}

/* v0.10.0 learning paths, points, announcements, notifications */
.ab-lms-path,
.ab-lms-path-card,
.ab-lms-points-card,
.ab-lms-achievements,
.ab-lms-announcements,
.ab-lms-notification-center {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1rem;
	margin: 1rem 0;
	background: #fff;
}
.ab-lms-path-courses {
	margin-left: 1.4rem;
}
.ab-lms-path-courses li.complete {
	font-weight: 700;
}
.ab-lms-points-balance {
	font-size: 2rem;
	font-weight: 700;
	margin: .25rem 0 1rem;
}
.ab-lms-achievement-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: .75rem;
}
.ab-lms-achievement {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: .75rem;
}
.ab-lms-achievement span,
.ab-lms-notification-center small {
	display: block;
	opacity: .75;
	font-size: .85em;
}
.ab-lms-announcement {
	border-bottom: 1px solid #eee;
	padding: .75rem 0;
}
.ab-lms-announcement:last-child {
	border-bottom: 0;
}
.ab-lms-announcement.is-unread h4,
.ab-lms-notification-center .is-unread strong {
	font-weight: 800;
}
.ab-lms-notification-center ul {
	list-style: none;
	padding: 0;
}
.ab-lms-notification-center li {
	padding: .75rem 0;
	border-bottom: 1px solid #eee;
}

/* v0.11.0 course access, discovery, instructor portal, and learner preferences */
.ab-lms-enrollment-box,
.ab-lms-enrollment-status,
.ab-lms-notification-preferences,
.ab-lms-instructor-dashboard {
	border: 1px solid rgba(0,0,0,.14);
	border-radius: 12px;
	padding: 1rem;
	margin: 1rem 0;
	background: #fff;
}
.ab-lms-enrollment-message { margin: 0 0 .75rem; }
.ab-lms-enrollment-box .button { display: inline-block; }
.ab-lms-catalog-filters {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(150px,1fr));
	gap: .75rem;
	align-items: end;
	padding: 1rem;
	margin: 0 0 1rem;
	border: 1px solid rgba(0,0,0,.12);
	border-radius: 12px;
	background: #fff;
}
.ab-lms-catalog-filters label { display: grid; gap: .3rem; font-size: .9rem; }
.ab-lms-catalog-filters input,
.ab-lms-catalog-filters select { width: 100%; min-height: 40px; }
.ab-lms-catalog-summary { margin: .5rem 0 1rem; font-weight: 600; }
.ab-lms-course-grid-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
	gap: 1.25rem;
}
.ab-lms-course-grid-list { display: grid; gap: 1rem; }
.ab-lms-course-grid-list .ab-lms-catalog-card {
	display: grid;
	grid-template-columns: minmax(180px,280px) minmax(0,1fr);
}
.ab-lms-catalog-card {
	border: 1px solid rgba(0,0,0,.14);
	border-radius: 12px;
	background: #fff;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,.05);
}
.ab-lms-course-card-image { display: block; aspect-ratio: 16/9; overflow: hidden; background: rgba(0,0,0,.05); }
.ab-lms-course-card-image img { width: 100%; height: 100%; object-fit: cover; }
.ab-lms-course-card-body { padding: 1rem; }
.ab-lms-course-card-body h3 { margin: .35rem 0 .6rem; }
.ab-lms-course-badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.ab-lms-course-mode,
.ab-lms-course-subject {
	display: inline-flex;
	align-items: center;
	padding: .2rem .55rem;
	border: 1px solid rgba(0,0,0,.14);
	border-radius: 999px;
	font-size: .8rem;
}
.ab-lms-course-instructor,
.ab-lms-course-meta,
.ab-lms-course-excerpt { opacity: .82; }
.ab-lms-course-meta { display: flex; flex-wrap: wrap; gap: .75rem; font-size: .9rem; }
.ab-lms-pagination { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1.25rem 0; }
.ab-lms-pagination .page-numbers { padding: .4rem .7rem; border: 1px solid rgba(0,0,0,.15); border-radius: 6px; }
.ab-lms-dashboard-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ab-lms-dashboard-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: .75rem; margin: 1rem 0; }
.ab-lms-dashboard-card { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 1rem; }
.ab-lms-dashboard-card strong { display: block; font-size: 1.8rem; line-height: 1.1; }
.ab-lms-instructor-create { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 1rem; margin: 1rem 0; }
.ab-lms-instructor-create form { display: grid; gap: .75rem; }
.ab-lms-instructor-create input,
.ab-lms-instructor-create textarea,
.ab-lms-instructor-create select { width: 100%; }
.ab-lms-table-wrap { overflow-x: auto; }
.ab-lms-front-table { width: 100%; border-collapse: collapse; min-width: 680px; }
.ab-lms-front-table th,
.ab-lms-front-table td { padding: .65rem; border: 1px solid rgba(0,0,0,.13); text-align: left; vertical-align: top; }
.ab-lms-notification-preferences fieldset { border: 1px solid rgba(0,0,0,.12); border-radius: 8px; padding: .8rem 1rem; margin: 1rem 0; }
.ab-lms-notification-preferences legend { font-weight: 700; padding: 0 .35rem; }
.ab-lms-notification-event { display: inline-flex; align-items: center; gap: .4rem; width: min(100%,320px); margin: .3rem 0; }
.ab-lms-success { padding: .7rem 1rem; border-left: 4px solid currentColor; background: rgba(0,0,0,.04); }
@media(max-width:720px){
	.ab-lms-course-grid-list .ab-lms-catalog-card{grid-template-columns:1fr}
	.ab-lms-catalog-filters{grid-template-columns:1fr}
}

/* v0.12.0 analytics, gradebook, resources, and compliance surfaces */
.ab-lms-analytics .ab-lms-filter-form,
.ab-lms-gradebook-pro .ab-lms-inline-form,
.ab-lms-resource-form,
.ab-lms-inline-form {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: .5rem;
	background: rgba(255,255,255,.75);
}
.ab-lms-dashboard-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1rem;
	margin: 1rem 0 1.5rem;
}
.ab-lms-dashboard-card {
	padding: 1rem;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: .75rem;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.ab-lms-dashboard-card strong {
	display: block;
	font-size: 1.55rem;
	line-height: 1.2;
}
.ab-lms-dashboard-card span {
	display: block;
	margin-top: .25rem;
	opacity: .75;
}
.ab-lms-table-wrap {
	overflow-x: auto;
	margin: 1rem 0;
}
.ab-lms-front-table {
	width: 100%;
	border-collapse: collapse;
}
.ab-lms-front-table th,
.ab-lms-front-table td {
	padding: .6rem .7rem;
	border-bottom: 1px solid rgba(0,0,0,.08);
	vertical-align: top;
}
.ab-lms-resources ul {
	margin-left: 1.25rem;
}
.ab-lms-resources small {
	opacity: .75;
}

/* v0.13.0 rubrics and learning scheduler */
.ab-lms-rubric,
.ab-lms-assignment-feedback,
.ab-lms-schedule {
	margin: 1.5rem 0;
	padding: 1rem;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #fff;
}
.ab-lms-rubric table,
.ab-lms-assignment-feedback table,
.ab-lms-schedule table {
	width: 100%;
	border-collapse: collapse;
}
.ab-lms-rubric th,
.ab-lms-rubric td,
.ab-lms-assignment-feedback th,
.ab-lms-assignment-feedback td,
.ab-lms-schedule th,
.ab-lms-schedule td {
	padding: .65rem;
	border-bottom: 1px solid #eee;
	text-align: left;
	vertical-align: top;
}
.ab-lms-feedback-note {
	padding: .75rem;
	background: #f7f7f7;
	border-left: 4px solid #222;
	margin: .75rem 0;
}
.ab-lms-scheduler-form {
	max-width: 760px;
	padding: 1rem;
	background: #fff;
	border: 1px solid #ccd0d4;
}

/* v0.14.0 discussions and live sessions */
.ab-lms-discussions,
.ab-lms-ask-instructor,
.ab-lms-my-questions,
.ab-lms-live-sessions,
.ab-lms-my-live-sessions,
.ab-lms-live-checkin {
	margin: 1.5rem 0;
	padding: 1rem;
	border: 1px solid rgba(0,0,0,.12);
	border-radius: 10px;
	background: #fff;
}
.ab-lms-discussion-form,
.ab-lms-discussion-reply-form,
.ab-lms-live-checkin {
	margin: 1rem 0;
	padding: 1rem;
	background: rgba(0,0,0,.03);
	border-radius: 8px;
}
.ab-lms-discussion-thread,
.ab-lms-live-session {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid rgba(0,0,0,.1);
	border-radius: 10px;
}
.ab-lms-discussion-meta,
.ab-lms-session-time {
	font-size: .92rem;
	opacity: .72;
}
.ab-lms-discussion-replies {
	margin-top: 1rem;
	padding-left: 1rem;
	border-left: 3px solid rgba(0,0,0,.08);
}
.ab-lms-discussion-reply {
	margin: .75rem 0;
	padding: .75rem;
	background: rgba(0,0,0,.025);
	border-radius: 8px;
}
.ab-lms-discussion-solution {
	border-left: 4px solid #222;
}
.ab-lms-badge {
	display: inline-block;
	padding: .15rem .45rem;
	border-radius: 999px;
	background: #222;
	color: #fff;
	font-size: .78rem;
	line-height: 1.35;
}
.ab-lms-discussion-status-resolved,
.ab-lms-discussion-status-answered {
	border-color: rgba(0,0,0,.22);
}

/* v0.14 learner engagement, charts, and template manager */
.ab-lms-inline-form { display: inline-block; margin: 0.25rem 0; }
.ab-lms-engagement-list { margin: 1.5rem 0; }
.ab-lms-engagement-card .ab-lms-muted,
.ab-lms-muted { opacity: 0.72; font-size: 0.92em; }
.ab-lms-hub-grid,
.ab-lms-template-grid,
.ab-lms-analytics-charts { display: grid; gap: 1rem; }
.ab-lms-hub-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.ab-lms-template-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.ab-lms-hub-panel,
.ab-lms-template-card,
.ab-lms-chart-card { border: 1px solid rgba(0,0,0,0.12); border-radius: 10px; padding: 1rem; background: #fff; }
.ab-lms-template-card textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.ab-lms-bar-row { display: grid; grid-template-columns: minmax(100px, 220px) 1fr auto; gap: 0.65rem; align-items: center; margin: 0.45rem 0; }
.ab-lms-bar { display: block; min-height: 0.85rem; border-radius: 99px; background: rgba(0,0,0,0.08); overflow: hidden; }
.ab-lms-bar span { display: block; min-height: 0.85rem; background: currentColor; opacity: 0.7; }
.ab-lms-line-chart { width: 100%; max-width: 680px; min-height: 220px; }
.ab-lms-calendar-feed { margin: 1rem 0; }
@media (max-width: 640px) {
	.ab-lms-bar-row { grid-template-columns: 1fr; }
}
