/* Resident LMS — front end. Palette follows MEDAPTLY: navy, cyan/teal, slate, amber accent. */

.rlms {
	--rlms-navy: #0f172a;
	--rlms-navy-dark: #0c1d39;
	--rlms-navy-2: #162d50;
	--rlms-primary: #00bcd4;
	--rlms-primary-dk: #0097a7;
	--rlms-primary-50: #e6f8fb;
	--rlms-primary-100: #b9ebf2;
	--rlms-accent: #f59e0b;
	--rlms-success: #15803d;
	--rlms-success-50: #ecfdf3;
	--rlms-danger: #dc2626;
	--rlms-danger-50: #fef2f2;
	--rlms-slate-900: #0f172a;
	--rlms-slate-700: #334155;
	--rlms-slate-600: #475569;
	--rlms-slate-500: #64748b;
	--rlms-slate-400: #94a3b8;
	--rlms-slate-300: #cbd5e1;
	--rlms-slate-200: #e2e8f0;
	--rlms-slate-100: #f1f5f9;
	--rlms-slate-50: #f8fafc;
	--rlms-radius: 14px;
	--rlms-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px -12px rgba(15, 23, 42, .12);
	--rlms-sans: "Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--rlms-serif: "Libre Baskerville", Georgia, "Times New Roman", serif;
	font-family: var(--rlms-sans);
	color: var(--rlms-slate-900);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
.rlms *, .rlms *::before, .rlms *::after { box-sizing: border-box; }
.rlms a { color: var(--rlms-primary-dk); text-decoration: none !important; }
.rlms a:hover { color: var(--rlms-navy); }
.rlms h1, .rlms h2, .rlms h3, .rlms h4 { color: var(--rlms-navy); margin: 0; line-height: 1.25; letter-spacing: normal; text-transform: none; }
.rlms p { margin: 0 0 .75em; }
.rlms button { font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; line-height: 1.3; }
.rlms .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.rlms-ic { width: 1.15em; height: 1.15em; flex: none; display: inline-block; vertical-align: -.2em; }
.rlms-muted { color: var(--rlms-slate-500); }
.rlms-eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rlms-primary-dk); margin: 0 0 .4rem; }
.rlms-h2 { font-family: var(--rlms-serif); font-size: 1.35rem; font-weight: 700; margin-bottom: 1rem !important; }

/* Page wrapper (works inside Astra's flex .ast-container and most themes) */
.rlms-page { flex: 1 1 100%; width: 100%; min-width: 0; padding: 28px 0 64px; }

/* ---------- Buttons ---------- */
.rlms .rlms-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .45em;
	padding: .7em 1.25em; border-radius: 10px; border: 1px solid transparent;
	font-size: .975rem; font-weight: 600; line-height: 1.2; cursor: pointer;
	background: #fff; color: var(--rlms-navy); text-decoration: none;
	transition: background .15s, border-color .15s, color .15s, transform .05s, box-shadow .15s;
}
.rlms .rlms-btn:active { transform: translateY(1px); }
.rlms .rlms-btn:focus-visible { outline: 3px solid var(--rlms-primary-100); outline-offset: 2px; }
.rlms .rlms-btn--primary { background: var(--rlms-primary-dk); color: #fff; box-shadow: 0 6px 16px -8px rgba(0, 151, 167, .7); }
.rlms .rlms-btn--primary:hover { background: #00838f; color: #fff; }
.rlms .rlms-btn--ghost { background: #fff; border-color: var(--rlms-slate-200); color: var(--rlms-navy); }
.rlms .rlms-btn--ghost:hover { border-color: var(--rlms-primary); color: var(--rlms-primary-dk); background: var(--rlms-primary-50); }
.rlms .rlms-btn--success { background: var(--rlms-success); color: #fff; }
.rlms .rlms-btn--success:hover { background: #166534; color: #fff; }
.rlms .rlms-btn--link { background: none; border: 0; padding: .25em .4em; color: var(--rlms-primary-dk); font-weight: 600; }
.rlms .rlms-btn--link:hover { background: none; color: var(--rlms-navy); text-decoration: underline; }
.rlms .rlms-btn--danger { color: var(--rlms-danger); }
.rlms .rlms-btn--danger:hover { color: #991b1b; }
.rlms .rlms-btn--sm { padding: .45em .85em; font-size: .875rem; border-radius: 8px; }
.rlms .rlms-btn--block { display: flex; width: 100%; }
.rlms .rlms-btn[disabled], .rlms .rlms-btn.is-disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.rlms .rlms-btn.is-loading { position: relative; color: transparent !important; }
.rlms .rlms-btn.is-loading::after { content: ""; position: absolute; width: 1.1em; height: 1.1em; border: 2px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: rlms-spin .7s linear infinite; }
@keyframes rlms-spin { to { transform: rotate(360deg); } }
.rlms .rlms-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border-radius: 9px; border: 1px solid var(--rlms-slate-200); background: #fff; color: var(--rlms-slate-600); cursor: pointer; font-size: 1.2rem; }
.rlms .rlms-icon-btn:hover { background: var(--rlms-slate-100); color: var(--rlms-navy); }

.rlms-pill { display: inline-flex; align-items: center; gap: .35em; padding: .25em .7em; border-radius: 999px; font-size: .8rem; font-weight: 700; background: var(--rlms-slate-100); color: var(--rlms-slate-600); margin: 0; }
.rlms-pill--success { background: var(--rlms-success-50); color: var(--rlms-success); }
.rlms-pill--danger { background: var(--rlms-danger-50); color: var(--rlms-danger); }
.rlms-pill--lg { font-size: .95rem; padding: .55em 1em; }
.rlms-count { display: inline-flex; min-width: 1.5em; height: 1.5em; padding: 0 .4em; align-items: center; justify-content: center; border-radius: 999px; background: var(--rlms-primary-50); color: var(--rlms-primary-dk); font-size: .75rem; font-weight: 700; }

/* ---------- Progress ---------- */
.rlms-progress { margin: .4rem 0 1rem; }
.rlms-progress__bar { height: 8px; border-radius: 999px; background: var(--rlms-slate-100); overflow: hidden; }
.rlms-progress__bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rlms-primary), var(--rlms-primary-dk)); transition: width .5s ease; }
.rlms-progress__label { margin-top: .4rem; font-size: .85rem; color: var(--rlms-slate-500); font-weight: 600; }

/* ---------- Boxes ---------- */
.rlms-box { background: #fff; border: 1px solid var(--rlms-slate-200); border-radius: var(--rlms-radius); padding: 1.5rem; box-shadow: var(--rlms-shadow); }
.rlms-box h3 { font-size: 1.1rem; margin-bottom: .6rem; display: flex; align-items: center; gap: .4em; }
.rlms-box .rlms-btn--block + .rlms-btn--block { margin-top: .6rem; }
.rlms-sticky { position: sticky; top: 24px; }
.admin-bar .rlms-sticky { top: 56px; }
.rlms-side-stat { display: flex; justify-content: space-between; align-items: baseline; padding: .6rem 0; border-top: 1px solid var(--rlms-slate-100); margin-bottom: .9rem; }
.rlms-side-stat span { color: var(--rlms-slate-500); }
.rlms-side-stat strong { font-size: 1.2rem; color: var(--rlms-navy); }
.rlms-empty { text-align: center; padding: 3rem 1.5rem; border: 1px dashed var(--rlms-slate-300); border-radius: var(--rlms-radius); color: var(--rlms-slate-500); background: var(--rlms-slate-50); }
.rlms-empty .rlms-ic { width: 40px; height: 40px; color: var(--rlms-primary); margin-bottom: .5rem; }

/* ---------- Hero ---------- */
.rlms-hero {
	position: relative; overflow: hidden; border-radius: 20px; color: #fff; margin-bottom: 28px;
	background:
		radial-gradient(900px 300px at 100% 0%, rgba(0, 188, 212, .28), transparent 60%),
		radial-gradient(500px 240px at 0% 100%, rgba(245, 158, 11, .12), transparent 60%),
		linear-gradient(160deg, var(--rlms-navy-dark), var(--rlms-navy));
}
.rlms-hero::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 32px 32px; mask-image: linear-gradient(90deg, transparent, #000 70%); pointer-events: none; }
.rlms-hero__inner { position: relative; z-index: 1; padding: 40px 44px 36px; max-width: 860px; }
.rlms-hero .rlms-eyebrow { color: var(--rlms-primary); }
.rlms .rlms-hero__title { font-family: var(--rlms-serif); color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.4rem); font-weight: 700; margin-bottom: .6rem; }
.rlms-hero__lead { color: #cbd5e1; font-size: 1.1rem; max-width: 640px; }
.rlms-hero__meta { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.rlms-hero__meta li { margin: 0; padding: .3em .8em; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); font-size: .875rem; font-weight: 600; color: #e2e8f0; }
.rlms .rlms-crumb { display: inline-flex; align-items: center; gap: .3em; color: #94a3b8; font-size: .875rem; font-weight: 600; margin-bottom: 1rem; }
.rlms .rlms-crumb:hover { color: #fff; }
.rlms-hero--compact .rlms-hero__inner { padding: 30px 40px; }

/* ---------- Course page ---------- */
.rlms-course__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.rlms-section { margin-bottom: 2rem; }
.rlms-prose { font-size: 1.05rem; color: var(--rlms-slate-700); }
.rlms-prose img { max-width: 100%; height: auto; }

/* ---------- Curriculum ---------- */
.rlms-curriculum { display: flex; flex-direction: column; gap: 12px; }
.rlms-chapter { border: 1px solid var(--rlms-slate-200); border-radius: 12px; background: #fff; overflow: hidden; }
.rlms .rlms-chapter__head {
	display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .75rem; width: 100%;
	padding: .9rem 1.1rem; border: 0; border-radius: 0; background: var(--rlms-slate-50); color: var(--rlms-navy);
	text-align: left; cursor: pointer; font-size: 1rem;
}
.rlms .rlms-chapter__head:hover, .rlms .rlms-chapter__head:focus { background: var(--rlms-slate-100); color: var(--rlms-navy); }
.rlms-chapter__num { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rlms-primary-dk); background: var(--rlms-primary-50); border-radius: 6px; padding: .2em .55em; white-space: nowrap; }
.rlms-chapter__title { font-weight: 700; }
.rlms-chapter__meta { font-size: .85rem; color: var(--rlms-slate-500); font-weight: 600; }
.rlms-chapter__head .rlms-ic-chevron { transition: transform .2s; color: var(--rlms-slate-400); }
.rlms-chapter.is-open .rlms-ic-chevron { transform: rotate(180deg); }
.rlms-chapter__lessons { list-style: none; margin: 0; padding: 0; display: none; }
.rlms-chapter.is-open .rlms-chapter__lessons { display: block; }
.rlms-lesson-item { margin: 0; border-top: 1px solid var(--rlms-slate-100); }
.rlms-lesson-item > a, .rlms-lesson-item__inner { display: flex; align-items: center; gap: .75rem; padding: .7rem 1.1rem; color: var(--rlms-slate-700); }
.rlms .rlms-lesson-item > a { color: var(--rlms-slate-700); }
.rlms .rlms-lesson-item > a:hover { background: var(--rlms-primary-50); color: var(--rlms-navy); }
.rlms-lesson-item__status { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; flex: none; border: 1.5px solid var(--rlms-slate-300); color: var(--rlms-slate-400); }
.rlms-lesson-item__status .rlms-ic { width: 15px; height: 15px; }
.rlms-lesson-item.is-available .rlms-lesson-item__status { border-color: var(--rlms-primary); color: var(--rlms-primary-dk); }
.rlms-lesson-item.is-completed .rlms-lesson-item__status { background: var(--rlms-success); border-color: var(--rlms-success); color: #fff; }
.rlms-lesson-item.is-locked { opacity: .65; }
.rlms-lesson-item.is-locked .rlms-lesson-item__inner { cursor: not-allowed; }
.rlms-lesson-item__title { flex: 1; min-width: 0; }
.rlms-lesson-item__badge { display: inline-flex; align-items: center; gap: .25em; font-size: .78rem; font-weight: 700; color: var(--rlms-slate-500); background: var(--rlms-slate-100); padding: .15em .5em; border-radius: 6px; }
.rlms-lesson-item__badge .rlms-ic { width: 13px; height: 13px; }
.rlms-lesson-item.is-current > a { background: var(--rlms-primary-50); color: var(--rlms-navy); font-weight: 700; box-shadow: inset 3px 0 0 var(--rlms-primary); }
.rlms-draft { font-style: normal; font-size: .72rem; color: var(--rlms-accent); font-weight: 700; text-transform: uppercase; }

/* ---------- Cards / grid ---------- */
.rlms-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.rlms-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rlms-slate-200); border-radius: var(--rlms-radius); overflow: hidden; box-shadow: var(--rlms-shadow); transition: transform .15s, box-shadow .15s; }
.rlms-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(15,23,42,.05), 0 16px 32px -16px rgba(15,23,42,.25); }
.rlms .rlms-card__media { position: relative; display: block; aspect-ratio: 16 / 7; background: linear-gradient(140deg, var(--rlms-navy-dark), var(--rlms-navy-2)); background-size: cover; background-position: center; }
.rlms-card__mark { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--rlms-primary); }
.rlms-card__mark .rlms-ic { width: 44px; height: 44px; opacity: .9; }
.rlms-card__done { position: absolute; top: 12px; right: 12px; display: inline-flex; gap: .3em; align-items: center; background: var(--rlms-success); color: #fff; font-size: .78rem; font-weight: 700; padding: .3em .7em; border-radius: 999px; }
.rlms-card__body { padding: 1.1rem 1.2rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
.rlms .rlms-card__title { font-family: var(--rlms-serif); font-size: 1.12rem; margin-bottom: .3rem; }
.rlms .rlms-card__title a { color: var(--rlms-navy); }
.rlms-card__meta { font-size: .875rem; color: var(--rlms-slate-500); margin-bottom: .6rem !important; }
.rlms-card__excerpt { font-size: .95rem; color: var(--rlms-slate-600); }
.rlms-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .5rem; }
.rlms-card__score { font-size: .85rem; color: var(--rlms-slate-500); font-weight: 600; }

/* ---------- Dashboard ---------- */
.rlms-dash-hero { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; padding: 32px 36px; border-radius: 20px; color: #fff; margin-bottom: 24px; background: radial-gradient(700px 260px at 100% 0%, rgba(0,188,212,.3), transparent 60%), linear-gradient(160deg, var(--rlms-navy-dark), var(--rlms-navy)); }
.rlms .rlms-dash-hero h2 { color: #fff; font-family: var(--rlms-serif); font-size: clamp(1.4rem, 2.6vw, 2rem); }
.rlms-dash-hero .rlms-eyebrow { color: var(--rlms-primary); }
.rlms-stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.rlms-stats > div { min-width: 112px; padding: .75rem 1rem; border-radius: 12px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); }
.rlms-stats dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: #94a3b8; margin: 0; }
.rlms-stats dd { margin: .15rem 0 0; font-size: 1.6rem; font-weight: 700; color: #fff; }
.rlms-stats small { font-size: .9rem; color: #94a3b8; font-weight: 600; }
/* ---------- Gate / login ---------- */
.rlms-gate { display: flex; justify-content: center; }
.rlms-box--gate, .rlms-box--login { max-width: 520px; width: 100%; text-align: center; padding: 2.5rem 2rem; }
.rlms-box--gate h2, .rlms-box--login h2 { font-family: var(--rlms-serif); font-size: 1.5rem; margin-bottom: .5rem; }
.rlms-gate__icon { display: inline-flex; width: 56px; height: 56px; border-radius: 16px; align-items: center; justify-content: center; background: var(--rlms-primary-50); color: var(--rlms-primary-dk); margin-bottom: 1rem; }
.rlms-gate__icon .rlms-ic { width: 28px; height: 28px; }
.rlms-box--login form { text-align: left; margin-top: 1rem; }
.rlms-box--login input[type=text], .rlms-box--login input[type=password] { width: 100%; padding: .65em .8em; border: 1px solid var(--rlms-slate-300); border-radius: 8px; }
.rlms-box--login .button-primary, .rlms-box--login input[type=submit] { background: var(--rlms-primary-dk); border: 0; color: #fff; padding: .7em 1.4em; border-radius: 10px; font-weight: 700; cursor: pointer; }

/* ---------- Lesson view ---------- */
/* The lesson view breaks out of the theme's content container so it can use more of the screen. */
body.rlms-lesson-page { overflow-x: clip; overflow-anchor: none; }
.rlms-lesson-view {
	--rlms-max: 1600px;
	--rlms-side: 300px;
	display: grid; grid-template-columns: var(--rlms-side) minmax(0, 1fr); gap: 24px; align-items: start;
	width: 100vw; max-width: none;
	margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
	padding: 20px max(24px, calc((100vw - var(--rlms-max)) / 2)) 64px;
}
body.rlms-sidebar-collapsed .rlms-lesson-view { grid-template-columns: minmax(0, 1fr); }
body.rlms-sidebar-collapsed .rlms-lesson-view .rlms-sidebar { display: none; }
.rlms-sidebar { position: sticky; top: 20px; max-height: calc(100vh - 40px); overflow: auto; background: #fff; border: 1px solid var(--rlms-slate-200); border-radius: var(--rlms-radius); box-shadow: var(--rlms-shadow); scrollbar-width: thin; }
.admin-bar .rlms-sidebar { top: 52px; max-height: calc(100vh - 72px); }
.rlms-sidebar__head { position: sticky; top: 0; z-index: 2; background: #fff; padding: .9rem 1rem .3rem 1.1rem; border-bottom: 1px solid var(--rlms-slate-100); }
.rlms-sidebar__row { display: flex; align-items: flex-start; gap: .5rem; }
.rlms .rlms-sidebar__course { flex: 1; min-width: 0; font-family: var(--rlms-serif); font-weight: 700; color: var(--rlms-navy); font-size: 1rem; line-height: 1.35; padding-top: .35rem; }
.rlms .rlms-sidebar__course:hover { color: var(--rlms-primary-dk); }
.rlms .rlms-sidebar__hide { flex: none; width: 32px; height: 32px; }
.rlms-sidebar__hide .rlms-ic-close { display: none; }
.rlms-sidebar .rlms-curriculum { gap: 0; }
.rlms-sidebar .rlms-chapter { border: 0; border-radius: 0; border-bottom: 1px solid var(--rlms-slate-100); }
.rlms-sidebar .rlms-chapter__head { grid-template-columns: 1fr auto auto; padding: .8rem 1.1rem; background: #fff; font-size: .95rem; }
.rlms-sidebar .rlms-chapter__num { grid-column: 1 / -1; justify-self: start; margin-bottom: -.35rem; }
.rlms-sidebar .rlms-lesson-item > a, .rlms-sidebar .rlms-lesson-item__inner { padding: .55rem 1.1rem; font-size: .93rem; }
.rlms-sidebar .rlms-lesson-item__status { width: 22px; height: 22px; }
.rlms-sidebar-scrim { display: none; }
.rlms-lesson-main { min-width: 0; }

.rlms-topbar { display: flex; align-items: center; gap: .75rem; margin-bottom: 18px; }
.rlms .rlms-topbar__menu { flex: none; }
body:not(.rlms-sidebar-collapsed) .rlms-topbar__menu-label { display: none; }
.rlms-topbar__where { flex: 1; display: flex; flex-wrap: wrap; gap: .25rem .75rem; font-size: .9rem; font-weight: 600; color: var(--rlms-slate-700); min-width: 0; }
.rlms-lesson { background: #fff; border: 1px solid var(--rlms-slate-200); border-radius: var(--rlms-radius); box-shadow: var(--rlms-shadow); overflow: hidden; }
.rlms-lesson__head { padding: 28px 36px 4px; }
.rlms .rlms-lesson__title { font-family: var(--rlms-serif); font-size: clamp(1.5rem, 2.6vw, 2.05rem); font-weight: 700; margin-top: .4rem; }
.rlms-frame-wrap { padding: 8px 0 0; }
.rlms-frame { display: block; width: 100%; height: 150px; border: 0; background: #fff; }
.rlms-lesson > .rlms-prose { padding: 20px 36px 32px; }
.rlms-lesson-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin: 22px 0 0; padding: 16px 18px; background: #fff; border: 1px solid var(--rlms-slate-200); border-radius: var(--rlms-radius); }
.rlms-lesson-nav__next { justify-self: end; }
.rlms-lesson-nav__mid { justify-self: center; text-align: center; }
.rlms-hint { font-size: .9rem; font-weight: 600; }

/* ---------- Quiz ---------- */
.rlms-quiz { padding: 0 36px 36px; scroll-margin-top: 90px; overflow-anchor: none; }
.rlms-quiz__card { min-width: 0; border: 1px solid var(--rlms-slate-200); border-radius: 16px; background: linear-gradient(180deg, #fff, var(--rlms-slate-50)); padding: 26px 28px; position: relative; }
.rlms-quiz__top { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .75rem; }
.rlms-quiz__label { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rlms-primary-dk); }
.rlms-quiz__tally { font-size: .85rem; font-weight: 700; color: var(--rlms-slate-500); background: var(--rlms-slate-100); border-radius: 999px; padding: .2em .7em; }
.rlms-quiz__counter { font-size: .95rem; color: var(--rlms-slate-500); white-space: nowrap; }
.rlms-quiz__counter strong { color: var(--rlms-navy); }
.rlms-quiz__intro { color: var(--rlms-slate-600); max-width: 640px; }
.rlms-quiz__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; align-items: center; margin-top: 1.25rem; }
.rlms-quiz__actions--start { justify-content: flex-start; }
.rlms-quiz__stats { display: flex; flex-wrap: wrap; gap: 10px; margin: .5rem 0; }
.rlms-quiz__stat { padding: .65rem 1rem; border-radius: 12px; background: #fff; border: 1px solid var(--rlms-slate-200); min-width: 110px; }
.rlms-quiz__stat span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--rlms-slate-500); }
.rlms-quiz__stat strong { font-size: 1.35rem; color: var(--rlms-navy); }
.rlms-quiz__stat small { margin-left: .4rem; color: var(--rlms-slate-500); font-weight: 600; }
.rlms-dots { display: flex; flex-wrap: wrap; gap: 5px; margin: -.25rem 0 1.2rem; }
.rlms-dot { width: 22px; height: 6px; border-radius: 999px; background: var(--rlms-slate-200); }
.rlms-dot.is-ok { background: var(--rlms-success); }
.rlms-dot.is-bad { background: var(--rlms-danger); }
.rlms-dot.is-cur { box-shadow: 0 0 0 2px var(--rlms-primary); background: var(--rlms-primary-100); }
.rlms-dot.is-cur.is-ok { background: var(--rlms-success); }
.rlms-dot.is-cur.is-bad { background: var(--rlms-danger); }
.rlms-quiz__q { font-size: 1.1rem; line-height: 1.6; color: var(--rlms-navy); font-weight: 600; font-family: var(--rlms-sans); overflow-wrap: anywhere; word-break: normal; }
.rlms-choice__text img { max-width: 100%; height: auto; }
.rlms-rich { display: block; min-width: 0; max-width: 100%; }
/* Explanations with their own design: no extra box, the author's styling is shown as written. */
.rlms .rlms-explanation.rlms-explanation--rich { background: none; border: 0; border-radius: 0; padding: 0; }
.rlms .rlms-explanation--rich h4 { margin-bottom: .6rem !important; }
.rlms-quiz__q p:last-child { margin-bottom: 0; }
.rlms-quiz__q img, .rlms-choice__text img, .rlms-explanation img { max-width: 100%; height: auto; border-radius: 8px; }
.rlms-quiz__hint { font-size: .85rem; color: var(--rlms-slate-500); font-weight: 600; margin: .5rem 0 .9rem !important; }
.rlms-choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; }
.rlms-choice { position: relative; display: flex; align-items: flex-start; gap: .8rem; padding: .85rem 1rem; border: 1.5px solid var(--rlms-slate-200); border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; margin: 0; font-weight: 500; }
.rlms-choice:hover { border-color: var(--rlms-primary); }
.rlms-choice input { position: absolute; opacity: 0; pointer-events: none; }
.rlms-choice__letter { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; background: var(--rlms-slate-100); color: var(--rlms-slate-600); font-weight: 700; font-size: .9rem; }
.rlms-choice__text { flex: 1; min-width: 0; padding-top: .15rem; color: var(--rlms-slate-700); overflow-wrap: anywhere; }
.rlms-choice__text p { margin: 0; }
.rlms-choice:has(input:focus-visible) { box-shadow: 0 0 0 3px var(--rlms-primary-100); }
.rlms-choice.is-picked { border-color: var(--rlms-primary); background: var(--rlms-primary-50); }
.rlms-choice.is-picked .rlms-choice__letter { background: var(--rlms-primary-dk); color: #fff; }
.rlms-choice:has(input:disabled) { cursor: default; }
.rlms-choice:has(input:disabled):hover { border-color: var(--rlms-slate-200); }
.rlms-choice.is-correct, .rlms-choice.is-correct:hover { border-color: var(--rlms-success) !important; background: var(--rlms-success-50); }
.rlms-choice.is-correct .rlms-choice__letter { background: var(--rlms-success); color: #fff; }
.rlms-choice.is-wrong, .rlms-choice.is-wrong:hover { border-color: var(--rlms-danger) !important; background: var(--rlms-danger-50); }
.rlms-choice.is-wrong .rlms-choice__letter { background: var(--rlms-danger); color: #fff; }
.rlms-choice.is-missed { border-style: dashed; }
.rlms-choice__mark:empty { visibility: hidden; }
.rlms-choice__mark { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; font-weight: 800; color: #fff; margin-top: .1rem; }
.rlms-choice__mark--ok { background: var(--rlms-success); }
.rlms-choice__mark--bad { background: var(--rlms-danger); font-size: 1.1rem; line-height: 1; }
.rlms-choice__mark .rlms-ic { width: 15px; height: 15px; }
.rlms-quiz__feedback:empty { display: none; }
.rlms-quiz__feedback { margin-top: 1.1rem; animation: rlms-rise .25s ease; }
@keyframes rlms-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.rlms-verdict { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .9rem; border-radius: 10px; font-size: 1rem; margin-bottom: .8rem; }
.rlms-verdict.is-ok { background: var(--rlms-success-50); color: var(--rlms-success); }
.rlms-verdict.is-bad { background: var(--rlms-danger-50); color: var(--rlms-danger); }
.rlms-x { font-size: 1.3rem; font-weight: 800; line-height: 1; }
.rlms-explanation { overflow-wrap: anywhere; background: #fff; border: 1px solid var(--rlms-slate-200); border-left: 4px solid var(--rlms-primary); border-radius: 10px; padding: 1rem 1.2rem; color: var(--rlms-slate-700); }
.rlms .rlms-explanation h4 { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--rlms-primary-dk); margin-bottom: .4rem; }
.rlms-explanation p:last-child { margin-bottom: 0; }

.rlms-results { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.rlms-ring { position: relative; width: 150px; height: 150px; flex: none; }
.rlms-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rlms-ring circle { fill: none; stroke-width: 10; }
.rlms-ring__bg { stroke: var(--rlms-slate-200); }
.rlms-ring__fg { stroke: var(--rlms-primary-dk); stroke-linecap: round; transition: stroke-dashoffset 1s ease; }
.rlms-ring.is-ok .rlms-ring__fg { stroke: var(--rlms-success); }
.rlms-ring.is-bad .rlms-ring__fg { stroke: var(--rlms-danger); }
.rlms-ring__label { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rlms-ring__label strong { font-size: 2rem; color: var(--rlms-navy); line-height: 1; }
.rlms-ring__label span { font-size: .9rem; color: var(--rlms-slate-500); font-weight: 600; margin-top: .25rem; }
.rlms-results__text { flex: 1; min-width: 220px; }
.rlms .rlms-results__text h3 { font-family: var(--rlms-serif); font-size: 1.3rem; margin-bottom: .5rem; }
.rlms-results__done { display: flex; align-items: center; gap: .4rem; color: var(--rlms-success); font-weight: 700; }
.rlms-review { display: grid; gap: 16px; }
.rlms-review__item { border: 1px solid var(--rlms-slate-200); border-radius: 12px; padding: 1rem 1.2rem; background: #fff; }
.rlms-review__item header { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.rlms-review__num { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 8px; background: var(--rlms-navy); color: #fff; font-weight: 700; font-size: .9rem; }
.rlms-review .rlms-choices { margin: .8rem 0; }
.rlms-review .rlms-choice { padding: .6rem .8rem; }

.rlms-toast { position: fixed; z-index: 99999; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; padding: .75rem 1.2rem; border-radius: 12px; background: var(--rlms-navy); color: #fff; font-weight: 600; box-shadow: 0 12px 30px -10px rgba(15,23,42,.5); transition: opacity .2s, transform .2s; max-width: calc(100% - 32px); }
.rlms-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.rlms-toast.is-success { background: var(--rlms-success); }
.rlms-toast.is-error { background: var(--rlms-danger); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.rlms-lesson-view { --rlms-side: 260px; gap: 20px; }
}
@media (max-width: 960px) {
	.rlms-course__layout { grid-template-columns: 1fr; }
	.rlms-course__side { order: -1; }
	.rlms-sticky { position: static; }
	.rlms-lesson-view, body.rlms-sidebar-collapsed .rlms-lesson-view { grid-template-columns: minmax(0, 1fr); padding-left: 16px; padding-right: 16px; }
	body.rlms-sidebar-collapsed .rlms-lesson-view .rlms-sidebar { display: block; }
	.rlms-sidebar { position: fixed; z-index: 99991; top: 0; left: 0; bottom: 0; width: 320px; max-width: 88vw; max-height: none; border-radius: 0; transform: translateX(-105%); transition: transform .25s ease; }
	.admin-bar .rlms-sidebar { top: 46px; max-height: none; }
	.rlms-sidebar-open .rlms-sidebar { transform: none; }
	.rlms-sidebar-open .rlms-sidebar-scrim { display: block; position: fixed; inset: 0; z-index: 99990; background: rgba(15,23,42,.45); }
	.rlms-sidebar__hide .rlms-ic-close { display: inline-block; }
	.rlms-sidebar__hide .rlms-ic-collapse { display: none; }
	.rlms-topbar__menu-label { display: none; }
}
@media (max-width: 640px) {
	.rlms-page { padding: 16px 0 40px; }
	.rlms-lesson-view, body.rlms-sidebar-collapsed .rlms-lesson-view { padding: 12px 10px 40px; }
	.rlms-hero, .rlms-dash-hero { border-radius: 14px; }
	.rlms-hero__inner { padding: 28px 22px 24px; }
	.rlms-dash-hero { padding: 24px 20px; }
	.rlms-stats > div { min-width: calc(50% - 5px); flex: 1; }
	.rlms-lesson { border-radius: 12px; }
	.rlms-lesson__head { padding: 18px 16px 4px; }
	.rlms .rlms-lesson__title { font-size: 1.45rem; }
	.rlms-quiz { padding: 0 0 8px; }
	.rlms-quiz__card { border: 0; border-top: 1px solid var(--rlms-slate-200); border-radius: 0; background: #fff; padding: 18px 14px 16px; }
	.rlms-quiz__q { font-size: 1.02rem; }
	.rlms-choice { gap: .6rem; padding: .7rem .7rem; }
	.rlms-choice__letter { width: 24px; height: 24px; font-size: .8rem; }
	.rlms-choice__mark { width: 20px; height: 20px; }
	.rlms-dot { width: 14px; }
	.rlms-explanation { padding: .85rem .9rem; }
	.rlms-lesson > .rlms-prose { padding: 16px 16px 24px; }
	.rlms-lesson-nav { grid-template-columns: 1fr 1fr; padding: 12px; }
	.rlms-lesson-nav__mid { grid-column: 1 / -1; grid-row: 1; }
	.rlms-results { flex-direction: column; text-align: center; }
	.rlms-results .rlms-quiz__stats { justify-content: center; }
	.rlms-quiz__actions { justify-content: stretch; }
	.rlms-quiz__actions .rlms-btn { flex: 1; }
}

/* MCQ-only lessons: questions sit directly under the lesson title, no extra box. */
.rlms-quiz--solo { padding-top: 14px; }
.rlms-quiz--solo .rlms-quiz__card { border: 0; background: none; padding: 0; border-radius: 0; }
@media (max-width: 640px) {
	.rlms-quiz--solo { padding: 4px 16px 16px; }
	.rlms-quiz--solo .rlms-quiz__card { border: 0; padding: 0; }
}

/* ---------- Distraction-free lessons (no theme header/footer) ---------- */
body.rlms-focus { margin: 0; background: #eef2f6; }
body.rlms-focus .rlms-lesson-view {
	width: auto; margin: 0;
	padding: 18px max(24px, calc((100% - var(--rlms-max)) / 2)) 48px;
}
body.rlms-focus .rlms-gate { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px 16px; }
.rlms .rlms-topbar__exit { flex: none; margin-left: auto; }
.rlms-gate__exit { margin: 1.25rem 0 0 !important; }
.rlms .rlms-gate__exit a { display: inline-flex; align-items: center; gap: .35em; font-weight: 600; color: var(--rlms-slate-500); }
.rlms .rlms-gate__exit a:hover { color: var(--rlms-navy); }
@media (max-width: 960px) {
	body.rlms-focus .rlms-lesson-view { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 640px) {
	body.rlms-focus .rlms-lesson-view { padding: 10px 10px 32px; }
	.rlms-topbar { gap: .5rem; }
	.rlms-topbar__where { font-size: .82rem; }
}
