/* Course Builder & In-Person Sessions for LearnPress – in-person parts of LearnPress course pages. Uses the LearnPress colour variables so it matches your courses. */
:root {
	--lpc-primary: var(--lp-primary-color, #ffb606);
	--lpc-secondary: var(--lp-secondary-color, #442e66);
	--lpc-text: #333;
	--lpc-muted: #777;
	--lpc-border: #e6e6e6;
	--lpc-bg-soft: #f7f7f7;
	--lpc-radius: 6px;
}

.lpc-wrap { max-width: var(--lp-container-max-width, 1290px); margin: 0 auto; padding: 0 16px; box-sizing: border-box; }
.lpc-wrap *, .lpc-shortcode * { box-sizing: border-box; }

/* Icons (pure CSS / emoji free, inline SVG masks) */
.lpc-ico { display: inline-block; width: 15px; height: 15px; margin-right: 6px; vertical-align: -2px; background: currentColor; -webkit-mask: var(--i) center/contain no-repeat; mask: var(--i) center/contain no-repeat; opacity: .8; }
.lpc-ico-cal   { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm-2 8h14v10H5V10z'/%3E%3C/svg%3E"); }
.lpc-ico-pin   { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.3 7 13 7 13s7-7.7 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.lpc-ico-clock { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10.4 3.5 2.1-1 1.7L11 13V7h2v5.4z'/%3E%3C/svg%3E"); }
.lpc-ico-level { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20h3v-6H4v6zm6.5 0h3V9h-3v11zM17 20h3V4h-3v16z'/%3E%3C/svg%3E"); }

/* Buttons */
.lpc-btn { display: inline-block; padding: 12px 24px; border-radius: var(--lpc-radius); font-weight: 600; text-decoration: none !important; text-align: center; transition: .2s; line-height: 1.2; border: 2px solid transparent; cursor: pointer; }
.lpc-btn-primary { background: var(--lpc-primary); color: #fff !important; }
.lpc-btn-primary:hover { filter: brightness(.92); }
.lpc-btn-outline { border-color: var(--lpc-primary); color: var(--lpc-primary) !important; background: transparent; }
.lpc-btn-outline:hover { background: var(--lpc-primary); color: #fff !important; }
.lpc-btn-disabled { background: #ddd; color: #777 !important; cursor: default; }
.lpc-btn-block { display: block; width: 100%; }

/* Grid of cards */
.lpc-grid { display: grid; gap: 30px; grid-template-columns: repeat(3, 1fr); }
.lpc-cols-1 { grid-template-columns: 1fr; }
.lpc-cols-2 { grid-template-columns: repeat(2, 1fr); }
.lpc-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 991px) { .lpc-cols-3, .lpc-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lpc-grid { grid-template-columns: 1fr !important; } }

.lpc-shortcode-title { margin: 0 0 24px; }
.lpc-more { text-align: center; margin-top: 32px; }
.lpc-empty { color: var(--lpc-muted); }

/* Card – mirrors LearnPress course card */
.lpc-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--lpc-border); border-radius: var(--lpc-radius); overflow: hidden; transition: box-shadow .25s, transform .25s; }
.lpc-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,.08); transform: translateY(-3px); }
.lpc-card.is-past { opacity: .75; }
.lpc-card-thumb { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--lpc-bg-soft); }
.lpc-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.lpc-card:hover .lpc-card-thumb img { transform: scale(1.05); }
.lpc-thumb-placeholder { display: block; width: 100%; height: 100%; min-height: 180px; background: linear-gradient(135deg, var(--lpc-secondary), var(--lpc-primary)); opacity: .85; }
.lpc-badge { position: absolute; top: 12px; left: 12px; background: var(--lpc-secondary); color: #fff; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 3px; text-transform: uppercase; letter-spacing: .5px; }
.lpc-badge-status { left: auto; right: 12px; background: #d63638; }
.lpc-card-body { padding: 18px 20px 10px; flex: 1; }
.lpc-card-cat { font-size: 13px; color: var(--lpc-primary); font-weight: 600; margin-bottom: 6px; }
.lpc-card-title { font-size: 18px; line-height: 1.35; margin: 0 0 12px; }
.lpc-card-title a { color: var(--lpc-text); text-decoration: none; }
.lpc-card-title a:hover { color: var(--lpc-primary); }
.lpc-card-instructor { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--lpc-muted); margin-bottom: 10px; }
.lpc-card-instructor img { border-radius: 50%; }
.lpc-card-meta { list-style: none; margin: 0; padding: 0; font-size: 14px; color: var(--lpc-muted); }
.lpc-card-meta li { margin: 4px 0; }
.lpc-card-footer { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--lpc-border); font-size: 14px; }
.lpc-price { font-weight: 700; color: var(--lpc-text); }
.lpc-seats { color: #d63638; font-size: 13px; }
.lpc-card-link { margin-left: auto; color: var(--lpc-primary); font-weight: 600; text-decoration: none; }

/* Archive */
.lpc-archive { padding-top: 40px; padding-bottom: 60px; }
.lpc-archive-header { margin-bottom: 30px; }
.lpc-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.lpc-filter a { padding: 6px 14px; border: 1px solid var(--lpc-border); border-radius: 20px; text-decoration: none; color: var(--lpc-text); font-size: 14px; }
.lpc-filter a.active, .lpc-filter a:hover { background: var(--lpc-primary); border-color: var(--lpc-primary); color: #fff; }
.lpc-pagination { margin-top: 40px; }

/* Single – hero like LearnPress course header */
.lpc-hero { background: var(--lpc-secondary); color: #fff; padding: 50px 0; }
.lpc-hero-inner { max-width: calc(100% - 400px); }
.lpc-hero-cats a { display: inline-block; color: var(--lpc-primary); font-weight: 600; text-decoration: none; margin-right: 10px; font-size: 14px; }
.lpc-hero-title { color: #fff; margin: 10px 0 14px; font-size: clamp(26px, 4vw, 40px); line-height: 1.2; }
.lpc-hero-excerpt { opacity: .85; margin-bottom: 18px; }
.lpc-hero-excerpt p { margin: 0; }
.lpc-hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; font-size: 15px; }
.lpc-hero-instructor { display: inline-flex; align-items: center; gap: 8px; }
.lpc-hero-instructor img { border-radius: 50%; }
.lpc-hero-instructor a { color: #fff; font-weight: 600; }

.lpc-layout { display: grid; grid-template-columns: 1fr 360px; gap: 40px; padding-top: 40px; padding-bottom: 60px; }
.lpc-tabs { display: flex; border-bottom: 1px solid var(--lpc-border); margin-bottom: 26px; gap: 4px; }
.lpc-tab { background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 20px; font-size: 16px; font-weight: 600; color: var(--lpc-muted); cursor: pointer; margin-bottom: -1px; }
.lpc-tab.active, .lpc-tab:hover { color: var(--lpc-text); border-bottom-color: var(--lpc-primary); background: none; }
.lpc-panel { display: none; }
.lpc-panel.active { display: block; }
.lpc-instructor-box { display: flex; gap: 20px; align-items: flex-start; }
.lpc-instructor-box img { border-radius: 50%; flex-shrink: 0; }
.lpc-instructor-box h3 { margin: 0 0 8px; }

.lpc-register { margin-top: 40px; padding: 30px; border: 1px solid var(--lpc-border); border-radius: var(--lpc-radius); background: var(--lpc-bg-soft); scroll-margin-top: 100px; }
.lpc-register h2 { margin-top: 0; font-size: 24px; }
.lpc-notice { padding: 14px 18px; background: #fff; border-left: 4px solid var(--lpc-primary); margin: 0; }
.lpc-notice-closed { border-left-color: #d63638; }

/* Sidebar box – like LearnPress course sidebar */
.lpc-sidebar { margin-top: -260px; position: relative; }
.lpc-sidebar-box { background: #fff; border: 1px solid var(--lpc-border); border-radius: var(--lpc-radius); box-shadow: 0 10px 30px rgba(0,0,0,.08); overflow: hidden; position: sticky; top: 30px; }
.lpc-sidebar-thumb { aspect-ratio: 16/10; overflow: hidden; }
.lpc-sidebar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lpc-sidebar-inner { padding: 24px; }
.lpc-sidebar-price { font-size: 28px; font-weight: 700; margin-bottom: 16px; color: var(--lpc-text); }
.lpc-sidebar-list { list-style: none; margin: 20px 0 0; padding: 0; font-size: 14px; }
.lpc-sidebar-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--lpc-border); }
.lpc-sidebar-list li:last-child { border-bottom: 0; }
.lpc-sidebar-list span { color: var(--lpc-muted); }
.lpc-sidebar-list strong { text-align: right; }

@media (max-width: 991px) {
	.lpc-hero-inner { max-width: 100%; }
	.lpc-layout { grid-template-columns: 1fr; }
	.lpc-sidebar { margin-top: 0; order: -1; }
	.lpc-sidebar-box { position: static; }
}
.lpc-edit-btn { margin-top: 10px; }

/* Responsive by available width (WPBakery column, sidebar, narrow theme content) */
.lpc-shortcode, .lpc-archive { container-type: inline-size; }
@container (max-width: 1000px) { .lpc-grid.lpc-cols-4 { grid-template-columns: repeat(3, 1fr); } }
@container (max-width: 820px)  { .lpc-grid.lpc-cols-3, .lpc-grid.lpc-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@container (max-width: 520px)  { .lpc-grid { grid-template-columns: 1fr !important; } }
.lpc-card-footer { flex-wrap: wrap; }
.lpc-price, .lpc-card-link { white-space: nowrap; }

/* Sessions on the course page */
.lpc-tab-count { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: var(--lpc-bg-soft); font-size: 12px; text-align: center; }
.lpc-sessions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.lpc-session { display: flex; align-items: center; gap: 18px; padding: 16px; border: 1px solid var(--lpc-border); border-radius: var(--lpc-radius); background: #fff; }
.lpc-session.is-off { opacity: .55; }
.lpc-session-date { flex: 0 0 60px; display: flex; flex-direction: column; align-items: center; padding: 8px 0; border-radius: var(--lpc-radius); background: var(--lpc-secondary); color: #fff; line-height: 1.1; }
.lpc-session-date span { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; opacity: .85; }
.lpc-session-date strong { font-size: 24px; }
.lpc-session-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; font-size: 14px; color: var(--lpc-muted); }
.lpc-session-info strong { color: var(--lpc-text); font-size: 16px; }
.lpc-session-info em { font-size: 13px; }
.lpc-session-cta { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.lpc-pill { display: inline-block; padding: 4px 10px; border-radius: 20px; background: #e8f5e9; color: #2e7d32; font-size: 12px; font-weight: 600; white-space: nowrap; }
.lpc-pill.is-red { background: #fdecea; color: #c62828; }
.lpc-pill.is-orange { background: #fff4e5; color: #b26a00; }
.lpc-btn-sm { padding: 8px 16px; font-size: 14px; }
.lpc-session-field { margin-bottom: 18px; }
@media (max-width: 600px) { .lpc-session { flex-wrap: wrap; } .lpc-session-cta { width: 100%; } }

/* ---------- 1.4: tabs protected from theme button styles ---------- */
.lpc-single .lpc-tabs { gap: 6px; flex-wrap: wrap; }
.lpc-single .lpc-tabs .lpc-tab,
.lpc-single .lpc-tabs .lpc-tab:hover,
.lpc-single .lpc-tabs .lpc-tab:focus {
	background: transparent !important; box-shadow: none !important; border: 0 !important; border-bottom: 3px solid transparent !important;
	border-radius: 0 !important; color: var(--lpc-muted) !important; text-transform: none !important; letter-spacing: normal !important;
	font-family: inherit !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.4 !important;
	padding: 12px 18px !important; margin: 0 0 -1px !important; min-height: 0 !important; height: auto !important; width: auto !important; outline: none;
}
.lpc-single .lpc-tabs .lpc-tab:hover { color: var(--lpc-text) !important; }
.lpc-single .lpc-tabs .lpc-tab.active { color: var(--lpc-text) !important; border-bottom-color: var(--lpc-primary) !important; }
.lpc-single .lpc-tabs .lpc-tab:focus-visible { box-shadow: inset 0 0 0 2px var(--lpc-primary) !important; }

/* Hero */
.lpc-sidebar { z-index: 2; }
.lpc-avatars { display: inline-flex; }
.lpc-avatars img { border: 2px solid var(--lpc-secondary); border-radius: 50%; }
.lpc-avatars img + img { margin-left: -10px; }
.lpc-hero-link { color: #fff !important; text-decoration: none !important; border-bottom: 1px dashed rgba(255,255,255,.5); }
.lpc-hero-link:hover { border-bottom-style: solid; }
.lpc-instructor-box + .lpc-instructor-box { margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--lpc-border); }
.lpc-instructor-role { display: inline-block; margin-bottom: 8px; padding: 2px 10px; border-radius: 20px; background: var(--lpc-bg-soft); color: var(--lpc-muted); font-size: 13px; }
.lpc-sidebar-list strong a { color: inherit; text-decoration: none; border-bottom: 1px dashed currentColor; }
.lpc-sidebar-list strong small { display: block; font-weight: 400; color: var(--lpc-muted); }
.lpc-login-btns { display: flex; gap: 10px; flex-wrap: wrap; margin: 14px 0 0; }

/* Location / organizer */
.lpc-place-head { display: flex; gap: 24px; align-items: flex-start; }
.lpc-place-img { flex: 0 0 260px; width: 260px; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--lpc-radius); }
.lpc-place-img.is-logo { flex-basis: 160px; width: 160px; aspect-ratio: 1; object-fit: contain; padding: 14px; border: 1px solid var(--lpc-border); background: #fff; }
.lpc-place-info { flex: 1; min-width: 0; }
.lpc-place-info h3 { margin: 0 0 8px; font-size: 22px; }
.lpc-place-addr { margin: 0 0 10px; color: var(--lpc-muted); }
.lpc-place-contacts { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.lpc-place-contacts a { color: var(--lpc-primary); text-decoration: none; }
.lpc-place-about { color: var(--lpc-text); margin: 0 0 12px; }
.lpc-place-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.lpc-place-guide { margin-top: 22px; padding: 16px 18px; border-radius: var(--lpc-radius); background: var(--lpc-bg-soft); border-left: 4px solid var(--lpc-primary); }
.lpc-place-guide strong { display: block; margin-bottom: 4px; }
.lpc-place-guide p { margin: 0; }
.lpc-place-map { margin-top: 22px; border-radius: var(--lpc-radius); overflow: hidden; border: 1px solid var(--lpc-border); }
.lpc-place-map iframe { display: block; width: 100%; height: 360px; border: 0; }
@media (max-width: 700px) { .lpc-place-head { flex-direction: column; } .lpc-place-img, .lpc-place-img.is-logo { width: 100%; flex-basis: auto; } }

/* ---------- 1.5: health, FAQ, place options ---------- */
.lpc-health { margin-top: 28px; padding: 20px 22px; border-radius: var(--lpc-radius); background: #f0faf4; border: 1px solid #cdeedb; }
.lpc-health h3 { margin: 0 0 12px; font-size: 18px; display: flex; align-items: center; gap: 8px; }
.lpc-health-ico { color: #e5484d; }
.lpc-health ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 18px; }
.lpc-health li { display: flex; gap: 10px; align-items: center; }
.lpc-health p { margin: 12px 0 0; }
.lpc-faq-intro { color: var(--lpc-muted); margin: 0 0 14px; }
.lpc-faq-item { border: 1px solid var(--lpc-border); border-radius: var(--lpc-radius); margin-bottom: 10px; background: #fff; }
.lpc-faq-item summary { cursor: pointer; padding: 14px 44px 14px 18px; font-weight: 600; list-style: none; position: relative; }
.lpc-faq-item summary::-webkit-details-marker { display: none; }
.lpc-faq-item summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 20px; color: var(--lpc-primary); }
.lpc-faq-item[open] summary::after { content: "–"; }
.lpc-faq-a { padding: 0 18px 14px; color: var(--lpc-text); }
.lpc-faq-a p:first-child { margin-top: 0; }
.lpc-place-locked { padding: 18px; border-radius: var(--lpc-radius); background: var(--lpc-bg-soft); }
.lpc-place.is-over.lpc-place-location .lpc-place-head { position: relative; min-height: 320px; padding: 28px; border-radius: var(--lpc-radius); background-size: cover; background-position: center; align-items: flex-end; overflow: hidden; }
.lpc-place.is-over.lpc-place-location .lpc-place-head::before { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 20%, rgba(0,0,0,.75)); }
.lpc-place.is-over.lpc-place-location .lpc-place-info { position: relative; color: #fff; }
.lpc-place.is-over.lpc-place-location .lpc-place-info h3, .lpc-place.is-over.lpc-place-location .lpc-place-addr { color: #fff; }
.lpc-place.is-over.lpc-place-organizer .lpc-place-img.is-logo { flex-basis: 240px; width: 240px; }
.lpc-single.has-hero-image .lpc-hero { background: linear-gradient(rgba(20,16,40,.72), rgba(20,16,40,.72)), var(--lpc-hero-img) center / cover no-repeat; }

/* ---------- In-person block inside LearnPress course pages ---------- */
.lpc-course-tab, .lpc-course-section, .lpc-inperson, .lpc-infobox { box-sizing: border-box; }
.lpc-course-tab *, .lpc-course-section *, .lpc-infobox * { box-sizing: border-box; }
.lpc-course-section { margin: 32px 0; }
.lpc-course-section > .section-title { margin-bottom: 16px; }
.lpc-inperson .lpc-sessions { margin-top: 0; }
.lpc-inperson .lpc-register { margin-top: 26px; }
.lpc-inperson .lpc-register h3 { margin: 0 0 14px; }
.lpc-course-place { margin-top: 26px; }
.lpc-course-place h3 { margin: 0 0 12px; font-size: 1.15em; }
.lpc-pill.is-green { background: #e8f5e9; color: #2e7d32; }
.lpc-session-info a { color: var(--lpc-primary); }

/* Info box in the LearnPress sidebar */
.lpc-infobox.is-lp-sidebar { position: static; box-shadow: none; margin: 20px 0; }
.lpc-infobox.is-lp-sidebar .lpc-sidebar-inner { padding: 18px; }
.lpc-infobox-title { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 16px; margin-bottom: 8px; }
.lpc-infobox-title .lpc-svg { color: var(--lpc-primary); }
.lpc-infobox .lpc-sidebar-list { margin-bottom: 14px; }
.lpc-infobox-edit { display: block; margin-top: 10px; font-size: 13px; text-align: center; color: var(--lpc-muted) !important; }
.lpc-part .lpc-sidebar-box { position: static; }

/* Exam result sheet (course page + exam review) */
.lpc-sheet { margin: 14px 0 0; }
.lpc-sheet-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 14px; }
.lpc-sheet-sum > div { border-radius: 12px; padding: 12px 14px; background: #f6f7fb; display: flex; flex-direction: column; gap: 2px; }
.lpc-sheet-sum span { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #6b7080; }
.lpc-sheet-sum strong { font-size: 20px; line-height: 1.25; color: #1d2030; }
.lpc-sheet-sum.is-pass > div:nth-child(3) { background: #e8f8ef; }
.lpc-sheet-sum.is-fail > div:nth-child(3) { background: #fdecee; }
.lpc-sheet-list { list-style: none; margin: 0; padding: 0; border: 1px solid #e6e8ef; border-radius: 12px; overflow: hidden; counter-reset: lpcq; }
.lpc-sheet-list li { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #eef0f4; counter-increment: lpcq; margin: 0; }
.lpc-sheet-list li:last-child { border-bottom: 0; }
.lpc-sheet-mark { flex: 0 0 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px; color: #fff; }
.lpc-sheet-list li.is-ok .lpc-sheet-mark { background: #2f9e44; }
.lpc-sheet-list li.is-bad .lpc-sheet-mark { background: #e03131; }
.lpc-sheet-q { flex: 1; min-width: 0; line-height: 1.45; }
.lpc-sheet-q::before { content: counter(lpcq) ". "; font-weight: 600; color: #6b7080; }
.lpc-sheet-q em { display: inline-block; margin-left: 8px; font-size: 12px; color: #e03131; font-style: normal; }
.lpc-sheet-q small { display: block; margin-top: 4px; color: #4b5064; font-size: 13px; }
.lpc-sheet-pts { flex: 0 0 auto; font-weight: 700; white-space: nowrap; color: #1d2030; }

/* Exam box above the quiz */
.lpc-exam-box { border: 1px solid #e6e8ef; border-radius: 16px; padding: 0; margin: 0 0 22px; background: #fff; overflow: hidden; box-shadow: 0 2px 10px rgba(20,24,40,.04); }
.lpc-exam-box > * { margin-left: 20px; margin-right: 20px; }
.lpc-exam-head { display: flex; align-items: center; gap: 12px; margin: 0; padding: 16px 20px; background: linear-gradient(135deg, #fdecef, #f4f1ff); }
.lpc-exam-box > .lpc-exam-head { margin: 0; }
.lpc-exam-ico { flex: 0 0 42px; height: 42px; border-radius: 12px; background: #fff; color: #c0264a; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.lpc-exam-titles { display: flex; flex-direction: column; min-width: 0; }
.lpc-exam-titles small { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #c0264a; font-weight: 700; }
.lpc-exam-titles strong { font-size: 18px; line-height: 1.3; color: #1d2030; }
.lpc-exam-badge { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.lpc-exam-badge.is-pass { background: #2f9e44; } .lpc-exam-badge.is-fail { background: #e03131; } .lpc-exam-badge.is-lock { background: #6b7080; }
.lpc-exam-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-top: 16px; margin-bottom: 4px; }
.lpc-exam-facts > div { background: #f6f7fb; border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.lpc-exam-facts > div.is-wide { grid-column: span 2; }
.lpc-exam-facts span { font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; color: #6b7080; }
.lpc-exam-facts strong { font-size: 15px; color: #1d2030; }
.lpc-exam-rules { margin-top: 14px; border: 1px solid #e6e8ef; border-radius: 10px; padding: 10px 14px; background: #fffdf5; }
.lpc-exam-rules summary { cursor: pointer; font-weight: 700; }
.lpc-exam-rules div { margin-top: 8px; font-size: 14.5px; line-height: 1.55; }
.lpc-exam-rules div p { margin: 0 0 8px; }
.lpc-exam-sheet:empty { display: none; }
.lpc-exam-box > *:last-child { margin-bottom: 18px; }
.lpc-exam-msg { margin-top: 14px; padding: 10px 12px; border-radius: 8px; background: #fff4e5; color: #8a3c00; }
.lpc-exam-msg.is-ok { background: #e8f8ef; color: #136b39; }
.lpc-exam-ticket { display: inline-flex !important; align-items: center; gap: 8px; margin-top: 10px; }
.lpc-exam-warn { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 99999; margin: 0 !important; padding: 12px 18px; border-radius: 12px; background: #e03131; color: #fff; font-weight: 700; box-shadow: 0 10px 30px rgba(224,49,49,.35); max-width: calc(100% - 32px); text-align: center; }
.lpc-sheet-expl { background: #f4f1ff; border-radius: 6px; padding: 6px 8px; }
@media (max-width: 560px) { .lpc-exam-facts > div.is-wide { grid-column: auto; } .lpc-exam-box > * { margin-left: 14px; margin-right: 14px; } }

/* Instructor rating survey (course page) */
.lpc-survey { border: 1px solid #e6e8ef; border-radius: 16px; padding: 18px 20px; margin: 18px 0; background: #fff; }
.lpc-survey-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.lpc-survey-head strong { font-size: 18px; display: block; }
.lpc-survey-head p { margin: 4px 0 0; color: #4b5064; }
.lpc-survey-ico { flex: 0 0 40px; height: 40px; border-radius: 12px; background: #fff6e0; color: #e8a10c; display: inline-flex; align-items: center; justify-content: center; }
.lpc-survey-who { display: flex; align-items: center; gap: 10px; font-weight: 600; margin: 0 0 10px; }
.lpc-survey-who img { border-radius: 50%; }
.lpc-survey-q { border: 0; border-top: 1px solid #eef0f4; margin: 0; padding: 12px 0; display: block; }
.lpc-survey-q legend, .lpc-survey-q > span { font-weight: 600; padding: 0; margin-bottom: 8px; display: block; }
.lpc-survey-q legend i { color: #e03131; font-style: normal; }
.lpc-survey-q textarea, .lpc-survey-q select { width: 100%; border: 1px solid #d8dbe4; border-radius: 8px; padding: 8px 10px; font: inherit; }
.lpc-stars { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.lpc-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lpc-stars label { font-size: 30px; line-height: 1; color: #d9dbe3; cursor: pointer; transition: color .1s, transform .1s; }
.lpc-stars label:hover, .lpc-stars label:hover ~ label, .lpc-stars input:checked ~ label { color: #f5a524; }
.lpc-stars label:hover { transform: scale(1.12); }
.lpc-stars input:focus-visible + label { outline: 2px solid #f5a524; outline-offset: 2px; border-radius: 4px; }
.lpc-yesno { display: flex; gap: 18px; }
.lpc-yesno label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.lpc-survey-note { color: #6b7080; font-size: 13px; margin: 8px 0 12px; }
.lpc-survey-msg { padding: 10px 12px; border-radius: 8px; background: #fff4e5; color: #8a3c00; margin: 0 0 10px; }
.lpc-survey-msg.is-ok { background: #e8f8ef; color: #136b39; }
.lpc-stars-view { position: relative; display: inline-block; line-height: 1; letter-spacing: 1px; color: #d9dbe3; vertical-align: middle; white-space: nowrap; }
.lpc-stars-view .is-on { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f5a524; }
.lpc-survey-form button[type=submit] { display: inline-flex; align-items: center; gap: 8px; padding: 11px 22px; border: 0; border-radius: 10px; background: var(--lp-primary-color, #5b4fe8); color: #fff; font-weight: 700; font-size: 15px; cursor: pointer; }
.lpc-survey-form button[type=submit]:hover { filter: brightness(1.08); }
.lpc-survey-head strong { font-size: 20px; }

/* ===== Advanced question types (quiz / exam) ===== */
.lpc-qt{--lpc-ok:#1e8e3e;--lpc-bad:#d93025;--lpc-line:#d0d5dd;--lpc-soft:#f5f7fa;--lpc-acc:#2563eb;margin:8px 0 4px}
.lpc-qt-help{font-size:.9em;color:#667085;margin:0 0 8px}
.lpc-qt button{font:inherit}
.lpc-qt .is-ok{border-color:var(--lpc-ok)!important;background:#e6f4ea!important}
.lpc-qt .is-bad{border-color:var(--lpc-bad)!important;background:#fce8e6!important}
.lpc-qt .is-missed{border-style:dashed!important;border-color:var(--lpc-ok)!important}
.lpc-qt .question-response{margin-top:10px}
.lpc-opt,.lpc-chip{display:block;width:100%;text-align:left;padding:8px 12px;margin:0 0 6px;border:1px solid var(--lpc-line);border-radius:8px;background:#fff;cursor:pointer;color:inherit;line-height:1.4}
.lpc-opt.is-on,.lpc-chip:hover:not(:disabled){border-color:var(--lpc-acc);background:#eff4ff}
.lpc-opt:disabled,.lpc-chip:disabled{cursor:default}
/* bowtie */
.lpc-bt-diagram{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;align-items:center;margin:0 0 14px;padding:14px;background:var(--lpc-soft);border-radius:10px;position:relative}
.lpc-bt-side .lpc-bt-slots{display:flex;flex-direction:column;gap:8px}
.lpc-bt-center{display:flex;justify-content:center;position:relative}
.lpc-bt-center:before,.lpc-bt-center:after{content:"";position:absolute;top:50%;width:18%;border-top:2px solid #98a2b3}
.lpc-bt-center:before{left:0}.lpc-bt-center:after{right:0}
.lpc-bt-center .lpc-bt-slots{width:60%}
.lpc-bt-slot{min-height:38px;padding:8px;border:2px dashed #98a2b3;border-radius:8px;background:#fff;font-size:.9em;text-align:center}
.lpc-bt-slot.is-filled{border-style:solid;border-color:var(--lpc-acc)}
.lpc-bt-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.lpc-bt-head{display:flex;justify-content:space-between;gap:6px;margin:0 0 6px}
.lpc-bt-head small{color:#667085}
@media(max-width:640px){.lpc-bt-cols{grid-template-columns:1fr}.lpc-bt-diagram{grid-template-columns:1fr;gap:8px}.lpc-bt-center:before,.lpc-bt-center:after{display:none}.lpc-bt-center .lpc-bt-slots{width:100%}}
/* drag & drop */
.lpc-dd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lpc-dd-box{min-height:120px;padding:10px;border:1px solid var(--lpc-line);border-radius:10px;background:var(--lpc-soft)}
.lpc-dd-box.is-resp{border:2px dashed var(--lpc-acc);background:#fff}
.lpc-dd-title{font-weight:600;margin:0 0 8px}
.lpc-dd-empty{color:#98a2b3;font-size:.9em;margin:0}
.lpc-chip{cursor:grab}
@media(max-width:640px){.lpc-dd{grid-template-columns:1fr}}
/* highlight */
.lpc-hl{line-height:1.9}
.lpc-hl-seg{cursor:pointer;border-bottom:1px dotted #98a2b3;border-radius:3px;padding:1px 2px;border:1px solid transparent}
.lpc-hl-seg:hover{background:#fff8c5}
.lpc-hl-seg.is-on{background:#fde047}
.lpc-hl-seg.is-ok{background:#c6efce!important}
/* hot spot */
.lpc-hs{position:relative;display:inline-block;max-width:100%;user-select:none;border-radius:8px;overflow:hidden;outline-offset:2px}
.lpc-hs.is-active{cursor:crosshair}
.lpc-hs img{display:block;max-width:100%;height:auto}
.lpc-hs-zone{position:absolute;border:2px solid var(--lpc-ok);background:rgba(30,142,62,.18);border-radius:4px}
.lpc-hs-pin{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--lpc-acc);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}
.lpc-hs-pin.is-ok{background:var(--lpc-ok)}.lpc-hs-pin.is-bad{background:var(--lpc-bad)}
/* matching */
.lpc-mt-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--lpc-line);border-radius:8px;margin:0 0 6px}
.lpc-mt-row select{width:100%}
.lpc-mt-sol{grid-column:2;color:var(--lpc-ok)}
@media(max-width:640px){.lpc-mt-row{grid-template-columns:1fr}.lpc-mt-sol{grid-column:1}}
/* matrix */
.lpc-mx-wrap{overflow-x:auto}
.lpc-mx{border-collapse:collapse;width:100%}
.lpc-mx th,.lpc-mx td{border:1px solid var(--lpc-line);padding:8px;text-align:center}
.lpc-mx tbody th{text-align:left;font-weight:normal}
.lpc-mx thead th{background:var(--lpc-soft)}
/* ordering */
.lpc-or{list-style:decimal;margin:0;padding:0 0 0 28px}
.lpc-or-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;margin:0 0 6px;border:1px solid var(--lpc-line);border-radius:8px;background:#fff}
.lpc-or-item[draggable=true]{cursor:grab}
.lpc-or-h{color:#98a2b3}
.lpc-or-text{flex:1}
.lpc-or-btns button{border:1px solid var(--lpc-line);background:#fff;border-radius:6px;padding:2px 8px;cursor:pointer;margin-left:2px}
.lpc-or-sol{flex-basis:100%;color:var(--lpc-ok)}
/* essay */
.lpc-es{width:100%;box-sizing:border-box;padding:10px;border:1px solid var(--lpc-line);border-radius:8px;font:inherit}
.lpc-es-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.85em;color:#667085;margin-top:4px}
.lpc-es-meta.is-short span:first-child{color:var(--lpc-bad)}
/* rich question content */
.question-content table,.lpc-qcontent table{border-collapse:collapse;margin:8px 0;max-width:100%}
.question-content table td,.question-content table th,.lpc-qcontent table td,.lpc-qcontent table th{border:1px solid var(--lpc-line,#d0d5dd);padding:6px 10px}
.question-content table th,.lpc-qcontent table th{background:#f5f7fa}
.question-content img,.lpc-qcontent img{max-width:100%;height:auto}
.question-content pre:not(.mermaid),.lpc-qcontent pre:not(.mermaid){background:#f5f7fa;padding:10px;border-radius:6px;overflow:auto}
.question-content pre.mermaid,.lpc-qcontent pre.mermaid{background:none;text-align:center}
.lpc-qt .question-response{display:flex;gap:10px;align-items:center}
.lpc-bt-slot{display:flex;align-items:center;justify-content:center}
.lpc-sheet-list li.is-part .lpc-sheet-mark { background: #f08c00; }
.lpc-sheet-list li.is-wait .lpc-sheet-mark { background: #868e96; }
.lpc-essay-grade { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; font-size: 14px; }
.lpc-essay-grade input[type=number] { width: 80px; padding: 4px 6px; }
.lpc-qt .lpc-hs-pin.is-ok{background:var(--lpc-ok)!important;border-color:#fff!important}.lpc-qt .lpc-hs-pin.is-bad{background:var(--lpc-bad)!important;border-color:#fff!important}
.lpc-sidebar-price + .lpc-pp { margin: -10px 0 14px; } .lpc-price .lpc-pp { white-space: normal; font-size: 12px; }

/* ===== Built-in assignments (student view) ===== */
.lpc-asg { --lpc-ok:#2b8a3e; --lpc-bad:#c92a2a; --lpc-line:#e3e6ec; --lpc-soft:#f6f7fb; max-width: 900px; }
.lpc-asg-title { margin: 0 0 14px; }
.lpc-asg-facts { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.lpc-asg-facts li { background: var(--lpc-soft); border-radius: 10px; padding: 8px 14px; display: flex; flex-direction: column; min-width: 110px; }
.lpc-asg-facts span { font-size: 12px; color: #6b7083; text-transform: uppercase; letter-spacing: .03em; }
.lpc-asg-facts strong { font-size: 16px; }
.lpc-asg-h { display: block; font-size: 16px; font-weight: 600; margin: 20px 0 8px; }
.lpc-asg-intro, .lpc-asg-content { line-height: 1.65; }
.lpc-asg-box { background: var(--lpc-soft); border-radius: 10px; padding: 12px 16px; line-height: 1.6; }
.lpc-asg-box p:first-child { margin-top: 0; } .lpc-asg-box p:last-child { margin-bottom: 0; }
.lpc-asg-files { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lpc-asg-files li { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid var(--lpc-line); border-radius: 8px; }
.lpc-asg-files li::before { content: "📎"; }
.lpc-asg-files small { color: #6b7083; margin-left: auto; }
.lpc-asg-del { margin-left: auto; border: 0; background: #fff5f5; color: var(--lpc-bad); border-radius: 6px; width: 26px; height: 26px; cursor: pointer; font-size: 16px; line-height: 1; }
.lpc-asg-form textarea { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid var(--lpc-line); border-radius: 10px; font: inherit; line-height: 1.6; }
.lpc-asg-form input[type=file] { margin: 6px 0; }
.lpc-asg-note { color: #6b7083; font-size: 14px; }
.lpc-asg-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.lpc-asg-btn.is-primary { background: var(--lpc-primary, #5b4ae4); color: #fff; border-color: transparent; }
.lpc-asg-timer { display: inline-flex; gap: 6px; align-items: center; padding: 8px 14px; border-radius: 999px; background: #e7f5ff; color: #1864ab; font-size: 14px; margin-bottom: 6px; }
.lpc-asg-timer.is-low { background: #fff5f5; color: var(--lpc-bad); }
.lpc-asg-msg { padding: 12px 16px; border-radius: 10px; margin: 0 0 16px; background: #ebfbee; color: var(--lpc-ok); }
.lpc-asg-msg.is-error { background: #fff5f5; color: var(--lpc-bad); }
.lpc-asg-msg.is-info { background: #e7f5ff; color: #1864ab; }
.lpc-asg-result { display: flex; align-items: baseline; gap: 14px; padding: 14px 18px; border-radius: 12px; margin: 16px 0; }
.lpc-asg-result strong { font-size: 28px; }
.lpc-asg-result.is-pass { background: #ebfbee; color: var(--lpc-ok); }
.lpc-asg-result.is-fail { background: #fff5f5; color: var(--lpc-bad); }
.lpc-asg-retake { margin-top: 16px; }

/* ===== Built-in announcements (course page) ===== */
.lpc-ann-list { display: flex; flex-direction: column; gap: 14px; }
.lpc-ann { border: 1px solid #e3e6ec; border-radius: 12px; padding: 16px 18px; background: #fff; }
.lpc-ann-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.lpc-ann-head h4 { margin: 0; font-size: 17px; }
.lpc-ann-head time { color: #6b7083; font-size: 13px; }
.lpc-ann-body { margin-top: 8px; line-height: 1.6; }
.lpc-ann-body p:last-child { margin-bottom: 0; }
.lpc-ann details { margin-top: 10px; }
.lpc-ann summary { cursor: pointer; color: var(--lpc-primary, #5b4ae4); font-size: 14px; }
.lpc-ann-comments { list-style: none; margin: 10px 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lpc-ann-comments li { display: flex; gap: 10px; font-size: 14px; }
.lpc-ann-comments img { border-radius: 50%; }
.lpc-ann-comments small { color: #6b7083; }
.lpc-ann-reply textarea { width: 100%; box-sizing: border-box; border: 1px solid #e3e6ec; border-radius: 8px; padding: 8px 10px; font: inherit; }
.lpc-ann-reply button { margin-top: 6px; }

/* ===== LearnPress profile – plugin tabs ===== */
.lpc-pf { --pf-ok:#2b8a3e; --pf-ok-bg:#ebfbee; --pf-bad:#c92a2a; --pf-bad-bg:#fff5f5; --pf-warn:#a85d00; --pf-warn-bg:#fff4e0; --pf-info:#1864ab; --pf-info-bg:#e7f5ff; --pf-line:#e3e6ec; --pf-soft:#f6f7fb; --pf-muted:#6b7083; --pf-acc:var(--lpc-primary, #5b4ae4); font-size: 15px; line-height: 1.5; }
.lpc-pf *, .lpc-pf *::before, .lpc-pf *::after { box-sizing: border-box; }
.lpc-pf-title { font-size: 18px; margin: 28px 0 12px; display: flex; align-items: center; gap: 8px; }
.lpc-pf-title:first-child { margin-top: 0; }
.lpc-pf-count { background: var(--pf-soft); border-radius: 999px; padding: 1px 10px; font-size: 13px; color: var(--pf-muted); }
.lpc-pf-help, .lpc-pf-muted { color: var(--pf-muted); }
.lpc-pf-help { font-size: 14px; margin: 12px 0 0; }
.lpc-pf-small { font-size: 13px; margin: 8px 0 0; }
.lpc-pf-empty { border: 1px dashed var(--pf-line); border-radius: 12px; padding: 22px; text-align: center; color: var(--pf-muted); background: #fff; }
.lpc-pf-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--pf-soft); color: #3b3f4e; white-space: nowrap; text-decoration: none; }
.lpc-pf-chip.is-ok { background: var(--pf-ok-bg); color: var(--pf-ok); }
.lpc-pf-chip.is-bad { background: var(--pf-bad-bg); color: var(--pf-bad); }
.lpc-pf-chip.is-warn { background: var(--pf-warn-bg); color: var(--pf-warn); }
.lpc-pf-chip.is-info { background: var(--pf-info-bg); color: var(--pf-info); }
.lpc-pf-chip.is-muted { color: var(--pf-muted); }
a.lpc-pf-chip:hover { filter: brightness(.96); }
.lpc-pf-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.lpc-pf-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--pf-line); background: #fff; color: #1d2130; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; line-height: 1.2; }
.lpc-pf-btn:hover { border-color: var(--pf-acc); color: var(--pf-acc); }
.lpc-pf-btn.is-primary { background: var(--pf-acc); border-color: var(--pf-acc); color: #fff; }
.lpc-pf-btn.is-primary:hover { color: #fff; filter: brightness(1.05); }
.lpc-pf-btn svg { flex: none; }
.lpc-pf-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.lpc-pf-course { font-weight: 700; color: #1d2130; text-decoration: none; font-size: 16px; }
.lpc-pf-course:hover { color: var(--pf-acc); }

/* Sessions */
.lpc-pf-sessions { display: flex; flex-direction: column; gap: 10px; }
.lpc-pf-session { display: flex; gap: 14px; align-items: center; border: 1px solid var(--pf-line); border-radius: 12px; padding: 12px 14px; background: #fff; }
.lpc-pf-date { flex: none; width: 58px; text-align: center; border-radius: 10px; background: var(--pf-soft); padding: 6px 0; display: flex; flex-direction: column; line-height: 1.1; }
.lpc-pf-date span { font-size: 12px; text-transform: uppercase; color: var(--pf-acc); font-weight: 700; }
.lpc-pf-date strong { font-size: 22px; }
.lpc-pf-date small { font-size: 11px; color: var(--pf-muted); }
.lpc-pf-session-main { flex: 1; min-width: 0; }
.lpc-pf-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--pf-muted); font-size: 14px; margin-top: 2px; }
.lpc-pf-meta span { display: inline-flex; align-items: center; gap: 5px; }
.lpc-pf-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Tables */
.lpc-pf-table-wrap { border: 1px solid var(--pf-line); border-radius: 12px; overflow: hidden; background: #fff; }
.lpc-pf-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14px; }
.lpc-pf-table th { background: var(--pf-soft); text-align: left; font-size: 12.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--pf-muted); padding: 10px 12px; border: 0; font-weight: 600; }
.lpc-pf-table td { padding: 10px 12px; border: 0; border-top: 1px solid var(--pf-line); vertical-align: middle; }
.lpc-pf-table a { text-decoration: none; }
.lpc-pf-links { text-align: right; white-space: nowrap; }
.lpc-pf-links a + a { margin-left: 10px; }

/* Cards */
.lpc-pf-list { display: flex; flex-direction: column; gap: 12px; }
.lpc-pf-card { border: 1px solid var(--pf-line); border-radius: 12px; padding: 14px 16px; background: #fff; margin-bottom: 14px; }
.lpc-pf-list .lpc-pf-card { margin-bottom: 0; }
.lpc-pf-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.lpc-pf-card-head > div:first-child { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.lpc-pf-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lpc-pf-row-main { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.lpc-pf-progress { height: 6px; border-radius: 999px; background: var(--pf-soft); overflow: hidden; width: min(320px, 100%); margin-top: 6px; }
.lpc-pf-progress span { display: block; height: 100%; background: var(--pf-acc); border-radius: inherit; }
.lpc-pf-grade { flex: none; text-align: center; border-radius: 12px; padding: 6px 14px; background: var(--pf-soft); display: flex; flex-direction: column; line-height: 1.1; }
.lpc-pf-grade strong { font-size: 26px; }
.lpc-pf-grade span { font-size: 12px; color: var(--pf-muted); }
.lpc-pf-grade.is-g1 { background: var(--pf-bad-bg); color: var(--pf-bad); }
.lpc-pf-grade.is-g4, .lpc-pf-grade.is-g5 { background: var(--pf-ok-bg); color: var(--pf-ok); }
.lpc-pf-items { list-style: none; margin: 12px 0 0; padding: 0; }
.lpc-pf-items li { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--pf-line); }
.lpc-pf-type { flex: none; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 8px; border-radius: 6px; background: var(--pf-soft); color: var(--pf-muted); min-width: 78px; text-align: center; }
.lpc-pf-type.is-exam { background: #f3f0ff; color: #5f3dc4; }
.lpc-pf-type.is-assignment { background: var(--pf-info-bg); color: var(--pf-info); }
.lpc-pf-item { flex: 1; min-width: 0; color: inherit; text-decoration: none; }
.lpc-pf-item:hover { color: var(--pf-acc); }
.lpc-pf-result { font-weight: 600; white-space: nowrap; }
.lpc-pf-facts { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lpc-pf-facts li { background: var(--pf-soft); border-radius: 10px; padding: 6px 12px; display: flex; flex-direction: column; min-width: 110px; }
.lpc-pf-facts span { font-size: 11.5px; color: var(--pf-muted); text-transform: uppercase; letter-spacing: .03em; }
.lpc-pf-note { margin-top: 12px; background: var(--pf-info-bg); border-radius: 10px; padding: 10px 14px; }
.lpc-pf-note p { margin: 4px 0 0; }
.lpc-pf-asg .lpc-pf-actions { margin-top: 12px; }

/* Instructor stats */
.lpc-pf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 8px; }
.lpc-pf-stat { border: 1px solid var(--pf-line); border-radius: 12px; padding: 12px 14px; background: #fff; display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.lpc-pf-stat span { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--pf-muted); }
.lpc-pf-stat strong { font-size: 26px; line-height: 1.2; }
.lpc-pf-stat small { color: var(--pf-muted); font-size: 12.5px; }
.lpc-pf-stat.is-warn { border-color: #ffd8a8; background: var(--pf-warn-bg); }
a.lpc-pf-stat:hover { border-color: var(--pf-acc); }
.lpc-pf-alert { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: var(--pf-warn-bg); color: var(--pf-warn); border-radius: 12px; padding: 12px 16px; margin-bottom: 16px; font-weight: 600; }
.lpc-pf-alert span { display: inline-flex; align-items: center; gap: 8px; }

@media (max-width: 640px) {
	.lpc-pf-session { flex-wrap: wrap; }
	.lpc-pf-actions { width: 100%; }
	.lpc-pf-table thead { display: none; }
	.lpc-pf-table tr { display: block; border-top: 1px solid var(--pf-line); padding: 8px 12px; }
	.lpc-pf-table tr:first-child { border-top: 0; }
	.lpc-pf-table td { display: flex; justify-content: space-between; gap: 10px; border: 0; padding: 4px 0; text-align: right; }
	.lpc-pf-table td::before { content: attr(data-label); color: var(--pf-muted); font-size: 13px; text-align: left; }
	.lpc-pf-table td.lpc-pf-links { justify-content: flex-end; }
	.lpc-pf-items li { flex-wrap: wrap; }
	.lpc-pf-item { flex-basis: calc(100% - 100px); }
}
.lpc-pf-more summary { cursor: pointer; color: var(--pf-acc); font-weight: 600; font-size: 14px; padding: 4px 0; }
.lpc-pf-more .lpc-pf-sessions { margin-top: 10px; }
