/**
 * Ace LMS – front-end styles.
 *
 * Uses the theme's existing design tokens (--ace-*) so the learning platform
 * reads as one product with the marketing site. Loaded only on LMS routes,
 * course pages and the course archive.
 */

/* ── Shared primitives ───────────────────────────────────────────────── */

.ace-lms-notices{display:flex; flex-direction:column; gap:var(--ace-space-sm); margin-bottom:var(--ace-space-lg)}
/* Backgrounds are deliberately opaque: translucent tints let whatever sits
   behind the notice bleed through it. */
.ace-lms-notice{padding:var(--ace-space-md) var(--ace-space-lg); border-radius:var(--ace-radius-md); font-size:var(--ace-text-sm); line-height:1.6; border:1px solid var(--ace-gray-100); border-left:3px solid var(--ace-info); background:var(--ace-gray-50); color:var(--ace-gray-700)}
.ace-lms-notice a{font-weight:600; text-decoration:underline}
.ace-lms-notice--success{border-left-color:var(--ace-success); border-color:#c7ebd5; border-left-color:var(--ace-success); background:#edfaf2; color:#14532d}
.ace-lms-notice--error{border-color:#f5cccc; border-left-color:var(--ace-error); background:#fdf0f0; color:#7f1d1d}
.ace-lms-notice--warning{border-color:#f7e0b5; border-left-color:var(--ace-warning); background:#fef5e7; color:#7c4a03}
.ace-lms-notice--info{border-color:#cfe0fb; border-left-color:var(--ace-info); background:#eff5fe; color:#1e3a8a}

.ace-lms-link{color:var(--ace-secondary-dark); font-weight:600; font-size:var(--ace-text-sm)}
.ace-lms-link:hover{color:var(--ace-primary); text-decoration:underline}
.ace-lms-back{display:inline-flex; align-items:center; gap:4px; margin-bottom:var(--ace-space-xs)}

.ace-lms-panel{background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); padding:var(--ace-space-xl); margin-bottom:var(--ace-space-xl)}
.ace-lms-panel__header{display:flex; align-items:flex-start; justify-content:space-between; gap:var(--ace-space-md); margin-bottom:var(--ace-space-lg); flex-wrap:wrap}
.ace-lms-panel__title{font-size:var(--ace-text-xl); margin:0}
.ace-lms-panel__subtitle{font-size:var(--ace-text-lg); margin:var(--ace-space-xl) 0 var(--ace-space-md)}
.ace-lms-panel__eyebrow{display:block; font-size:var(--ace-text-xs); font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--ace-accent-dark); margin-bottom:var(--ace-space-xs)}
.ace-lms-panel__actions{display:flex; flex-wrap:wrap; gap:var(--ace-space-sm); margin-top:var(--ace-space-lg)}
.ace-lms-panel__note{font-size:var(--ace-text-sm); color:var(--ace-gray-400); margin:var(--ace-space-md) 0 0}

/* Editor output. Scoped deliberately: the theme's .ace-single-content rules
   would otherwise put disc bullets on every list in the LMS panels. */
.ace-lms-prose{line-height:1.8; color:var(--ace-gray-700)}
.ace-lms-prose > *:first-child{margin-top:0}
.ace-lms-prose > *:last-child{margin-bottom:0}
.ace-lms-prose h2{font-size:var(--ace-text-2xl); margin:var(--ace-space-xl) 0 var(--ace-space-sm)}
.ace-lms-prose h3{font-size:var(--ace-text-xl); margin:var(--ace-space-lg) 0 var(--ace-space-sm)}
.ace-lms-prose h4{font-size:var(--ace-text-lg); margin:var(--ace-space-lg) 0 var(--ace-space-xs)}
.ace-lms-prose p{margin-bottom:var(--ace-space-md)}
.ace-lms-prose ul{list-style:disc}
.ace-lms-prose ol{list-style:decimal}
.ace-lms-prose ul, .ace-lms-prose ol{padding-left:1.5em; margin-bottom:var(--ace-space-md)}
.ace-lms-prose li{margin-bottom:.4em}
.ace-lms-prose img{border-radius:var(--ace-radius-md); margin:var(--ace-space-md) 0}
.ace-lms-prose a{text-decoration:underline}
.ace-lms-prose blockquote{margin:var(--ace-space-lg) 0; padding:var(--ace-space-md) var(--ace-space-lg); border-left:4px solid var(--ace-accent); background:var(--ace-off-white); border-radius:0 var(--ace-radius-md) var(--ace-radius-md) 0; font-style:italic; color:var(--ace-gray-600)}
.ace-lms-prose table{width:100%; border-collapse:collapse; margin-bottom:var(--ace-space-md)}
.ace-lms-prose th, .ace-lms-prose td{border:1px solid var(--ace-gray-100); padding:var(--ace-space-sm)}

.ace-lms-empty{text-align:center; padding:var(--ace-space-2xl) var(--ace-space-lg); color:var(--ace-gray-500)}
.ace-lms-empty h1, .ace-lms-empty h2{margin-bottom:var(--ace-space-sm)}
.ace-lms-empty p{margin-bottom:var(--ace-space-lg)}
.ace-lms-empty__actions{display:flex; gap:var(--ace-space-md); justify-content:center; flex-wrap:wrap}

.ace-lms-standalone{padding:calc(100px + var(--ace-space-3xl)) 0 var(--ace-space-4xl)}

.ace-lms-deflist{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:var(--ace-space-md); margin:0 0 var(--ace-space-lg)}
.ace-lms-deflist dt{font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ace-gray-400); margin-bottom:2px}
.ace-lms-deflist dd{font-size:var(--ace-text-sm); font-weight:600; color:var(--ace-primary); margin:0}
.ace-lms-deflist code{font-family:var(--ace-font-mono); font-size:.9em; background:var(--ace-gray-50); padding:2px 6px; border-radius:4px}

.ace-lms-table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.ace-lms-table{width:100%; border-collapse:collapse; font-size:var(--ace-text-sm); min-width:520px}
.ace-lms-table th, .ace-lms-table td{text-align:left; padding:var(--ace-space-sm) var(--ace-space-md); border-bottom:1px solid var(--ace-gray-100)}
.ace-lms-table thead th{font-family:var(--ace-font-heading); font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ace-gray-400)}
.ace-lms-table tfoot th{font-weight:700; color:var(--ace-primary)}
.ace-lms-table code{font-family:var(--ace-font-mono); font-size:.9em}
.ace-lms-table__actions{text-align:right; white-space:nowrap}

.ace-lms-status{display:inline-block; padding:.25em .8em; border-radius:var(--ace-radius-full); font-size:var(--ace-text-xs); font-weight:600; text-transform:uppercase; letter-spacing:.05em; background:var(--ace-gray-100); color:var(--ace-gray-600)}
.ace-lms-status--paid, .ace-lms-status--publish, .ace-lms-status--active, .ace-lms-status--completed{background:rgba(34,197,94,.14); color:#15803d}
.ace-lms-status--pending, .ace-lms-status--awaiting_payment, .ace-lms-status--processing, .ace-lms-status--draft{background:rgba(245,158,11,.16); color:#b45309}
.ace-lms-status--failed, .ace-lms-status--cancelled, .ace-lms-status--refunded, .ace-lms-status--expired{background:rgba(239,68,68,.12); color:#b91c1c}

.ace-lms-progress{position:relative; height:8px; border-radius:var(--ace-radius-full); background:var(--ace-gray-100); overflow:hidden}
.ace-lms-progress--sm{height:6px}
.ace-lms-progress__bar{display:block; height:100%; border-radius:inherit; background:var(--ace-gradient-accent); transition:width var(--ace-transition-slow)}

.ace-lms-stars{display:inline-flex; gap:1px; vertical-align:middle; line-height:0}
.ace-lms-stars__star{color:var(--ace-gray-200); display:inline-flex}
.ace-lms-stars__star.is-full{color:#f5a623}
.ace-lms-stars__star.is-half{color:#f5a623; opacity:.55}
.ace-lms-stars__count{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-left:6px}

.ace-lms-tabs{display:flex; gap:var(--ace-space-xs); border-bottom:1px solid var(--ace-gray-100); margin-bottom:var(--ace-space-lg); overflow-x:auto}
.ace-lms-tabs__tab{padding:.6em 1.1em; font-size:var(--ace-text-sm); font-weight:600; color:var(--ace-gray-500); border-bottom:2px solid transparent; white-space:nowrap}
.ace-lms-tabs__tab.is-active{color:var(--ace-primary); border-bottom-color:var(--ace-accent)}

/* ── Forms ───────────────────────────────────────────────────────────── */

.ace-lms-form{display:flex; flex-direction:column; gap:var(--ace-space-md)}
.ace-lms-form__grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--ace-space-md)}
.ace-lms-form__row{display:flex; align-items:center; justify-content:space-between; gap:var(--ace-space-md); flex-wrap:wrap}
.ace-lms-form__submit{width:100%; margin-top:var(--ace-space-xs)}

.ace-lms-field{display:flex; flex-direction:column; gap:6px}
.ace-lms-field label, .ace-lms-field__label{font-size:var(--ace-text-sm); font-weight:600; color:var(--ace-gray-700)}
.ace-lms-field input[type=text], .ace-lms-field input[type=email], .ace-lms-field input[type=password], .ace-lms-field input[type=search], .ace-lms-field input[type=number], .ace-lms-field input[type=file], .ace-lms-field select, .ace-lms-field textarea{width:100%; padding:.75em 1em; border:1px solid var(--ace-gray-200); border-radius:var(--ace-radius-md); background:var(--ace-white); font-size:var(--ace-text-sm); transition:border-color var(--ace-transition-fast), box-shadow var(--ace-transition-fast)}
.ace-lms-field input:focus, .ace-lms-field select:focus, .ace-lms-field textarea:focus{outline:none; border-color:var(--ace-accent); box-shadow:0 0 0 3px rgba(0,200,224,.15)}
.ace-lms-field textarea{resize:vertical; min-height:90px}
.ace-lms-field__hint{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:0}
.ace-lms-field__password{position:relative; display:flex}
.ace-lms-field__password input{padding-right:3em}
.ace-lms-field__reveal{position:absolute; right:.6em; top:50%; transform:translateY(-50%); color:var(--ace-gray-400); display:flex; padding:4px}
.ace-lms-field__reveal:hover{color:var(--ace-primary)}

.ace-lms-checkbox{display:inline-flex; align-items:center; gap:.55em; font-size:var(--ace-text-sm); color:var(--ace-gray-600); cursor:pointer}
.ace-lms-checkbox--block{align-items:flex-start; line-height:1.5}
.ace-lms-checkbox input{width:18px; height:18px; flex-shrink:0; accent-color:var(--ace-secondary)}

.ace-lms-strength{display:flex; align-items:center; gap:var(--ace-space-sm)}
/* display:flex above beats the UA [hidden] rule, so restore it explicitly. */
.ace-lms-strength[hidden]{display:none}
.ace-lms-strength__bar{flex:1; height:5px; border-radius:var(--ace-radius-full); background:var(--ace-gray-100); overflow:hidden}
.ace-lms-strength__bar span{display:block; height:100%; width:0; border-radius:inherit; transition:width var(--ace-transition-base), background var(--ace-transition-base)}
.ace-lms-strength__label{font-size:var(--ace-text-xs); font-weight:600; color:var(--ace-gray-400); min-width:56px}
.ace-lms-strength.is-weak .ace-lms-strength__bar span{width:33%; background:var(--ace-error)}
.ace-lms-strength.is-fair .ace-lms-strength__bar span{width:66%; background:var(--ace-warning)}
.ace-lms-strength.is-strong .ace-lms-strength__bar span{width:100%; background:var(--ace-success)}

.ace-lms-rating-input{display:inline-flex; flex-direction:row-reverse; gap:2px}
.ace-lms-rating-input input{position:absolute; opacity:0; width:1px; height:1px}
.ace-lms-rating-input label{color:var(--ace-gray-200); cursor:pointer; display:inline-flex; transition:color var(--ace-transition-fast)}
.ace-lms-rating-input label svg{width:26px; height:26px}
.ace-lms-rating-input input:checked ~ label, .ace-lms-rating-input label:hover, .ace-lms-rating-input label:hover ~ label{color:#f5a623}
.ace-lms-rating-input input:focus-visible + label{outline:2px solid var(--ace-accent); outline-offset:2px}

/* ── Profile picture field ───────────────────────────────────────────── */

.ace-lms-avatar-field{display:flex; align-items:center; gap:var(--ace-space-xl); flex-wrap:wrap}
.ace-lms-avatar-field__preview{width:120px; height:120px; border-radius:50%; overflow:hidden; flex-shrink:0; background:var(--ace-gray-50); border:1px solid var(--ace-gray-100)}
.ace-lms-avatar-field__preview img, .ace-lms-avatar-field__img{width:100%; height:100%; object-fit:cover}
.ace-lms-avatar-field__controls{flex:1; min-width:240px; display:flex; flex-direction:column; align-items:flex-start; gap:var(--ace-space-sm)}
.ace-lms-avatar-field__remove{color:var(--ace-error)}
.ace-lms-avatar-field__remove:hover{color:var(--ace-error); text-decoration:underline}
.ace-lms-avatar-field__filename{font-size:var(--ace-text-xs); color:var(--ace-accent-dark); font-weight:600; margin:0}
.ace-lms-avatar-field__filename:empty{display:none}

/* Drag-and-drop upload. The file input is stretched over the zone at zero
   opacity so clicking and native file drops both work without JS, and it is
   never visually hidden — .screen-reader-text would drag it to the top-left
   of the viewport the moment it took focus. */
.ace-lms-dropzone{position:relative; width:100%; border:2px dashed var(--ace-gray-200); border-radius:var(--ace-radius-md); background:var(--ace-gray-50); transition:border-color var(--ace-transition-fast), background var(--ace-transition-fast)}
.ace-lms-dropzone:hover{border-color:var(--ace-gray-300); background:var(--ace-white)}
.ace-lms-dropzone.is-dragover{border-color:var(--ace-accent); background:rgba(0,200,224,.07)}
.ace-lms-dropzone input[type=file]{position:absolute; inset:0; width:100%; height:100%; margin:0; padding:0; border:0; opacity:0; cursor:pointer}
.ace-lms-dropzone__inner{display:flex; flex-direction:column; align-items:center; gap:4px; padding:var(--ace-space-lg) var(--ace-space-md); text-align:center; pointer-events:none}
.ace-lms-dropzone__icon{display:flex; color:var(--ace-gray-300)}
.ace-lms-dropzone__icon svg{width:26px; height:26px}
.ace-lms-dropzone.is-dragover .ace-lms-dropzone__icon{color:var(--ace-accent-dark)}
.ace-lms-dropzone__title{font-family:var(--ace-font-heading); font-size:var(--ace-text-sm); color:var(--ace-primary)}
.ace-lms-dropzone__hint{font-size:var(--ace-text-xs); color:var(--ace-gray-400)}
.ace-lms-dropzone__browse{color:var(--ace-secondary-dark); font-weight:600; text-decoration:underline}
.ace-lms-dropzone input[type=file]:focus-visible ~ .ace-lms-dropzone__inner{outline:2px solid var(--ace-accent); outline-offset:2px; border-radius:var(--ace-radius-sm)}

.ace-lms-account-summary{display:flex; align-items:center; gap:var(--ace-space-md); padding:var(--ace-space-md); background:var(--ace-gray-50); border-radius:var(--ace-radius-md); margin-bottom:var(--ace-space-lg)}
.ace-lms-account-summary__avatar{width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0}
.ace-lms-account-summary__name{display:block; font-size:var(--ace-text-base); color:var(--ace-primary)}
.ace-lms-account-summary__email{display:block; font-size:var(--ace-text-sm); color:var(--ace-gray-400)}

.ace-lms-form__actions{display:flex; align-items:center; gap:var(--ace-space-lg); flex-wrap:wrap; margin-bottom:var(--ace-space-xl)}

/* ── Auth screens ────────────────────────────────────────────────────── */

.ace-lms-auth{background:var(--ace-off-white); padding:calc(100px + var(--ace-space-2xl)) 0 var(--ace-space-4xl); min-height:80vh}
.ace-lms-auth__card{background:var(--ace-white); border-radius:var(--ace-radius-xl); box-shadow:var(--ace-shadow-lg); padding:var(--ace-space-2xl); max-width:520px; margin:0 auto}
.ace-lms-auth__header{text-align:center; margin-bottom:var(--ace-space-xl)}
.ace-lms-auth__title{font-size:var(--ace-text-2xl); margin-bottom:var(--ace-space-xs)}
.ace-lms-auth__subtitle{color:var(--ace-gray-500); font-size:var(--ace-text-sm); margin:0}
.ace-lms-auth__alt{text-align:center; margin:var(--ace-space-lg) 0 0; font-size:var(--ace-text-sm); color:var(--ace-gray-500)}

/* ── Account dashboard ───────────────────────────────────────────────── */

.ace-lms-account{background:var(--ace-off-white); min-height:70vh; padding-bottom:var(--ace-space-4xl)}
.ace-lms-account__hero{background:var(--ace-gradient-primary); padding:calc(100px + var(--ace-space-xl)) 0 var(--ace-space-2xl)}
.ace-lms-account__hero-inner{display:flex; align-items:center; gap:var(--ace-space-lg)}
.ace-lms-account__avatar-img{border-radius:50%; border:3px solid rgba(255,255,255,.2)}
.ace-lms-account__title{color:var(--ace-white); font-size:var(--ace-text-2xl); margin:0}
.ace-lms-account__subtitle{color:rgba(255,255,255,.65); font-size:var(--ace-text-sm); margin:4px 0 0}
.ace-lms-account__body{margin-top:var(--ace-space-xl)}
.ace-lms-account__layout{display:grid; grid-template-columns:260px 1fr; gap:var(--ace-space-xl); align-items:start}
.ace-lms-account__sidebar{position:sticky; top:100px}
.ace-lms-account__nav{background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); padding:var(--ace-space-sm); display:flex; flex-direction:column; gap:2px}
.ace-lms-account__nav-link{display:flex; align-items:center; gap:.7em; padding:.7em 1em; border-radius:var(--ace-radius-md); font-size:var(--ace-text-sm); font-weight:600; color:var(--ace-gray-600)}
.ace-lms-account__nav-link svg{flex-shrink:0; color:var(--ace-gray-300)}
.ace-lms-account__nav-link:hover{background:var(--ace-gray-50); color:var(--ace-primary)}
.ace-lms-account__nav-link.is-active{background:var(--ace-primary); color:var(--ace-white)}
.ace-lms-account__nav-link.is-active svg{color:var(--ace-accent)}
.ace-lms-account__nav-link--logout{margin-top:var(--ace-space-sm); border-top:1px solid var(--ace-gray-100); border-radius:0 0 var(--ace-radius-md) var(--ace-radius-md); color:var(--ace-gray-400)}
.ace-lms-account__nav-toggle{display:none; width:100%; align-items:center; gap:.6em; padding:.8em 1em; background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-md); font-weight:600; font-size:var(--ace-text-sm); color:var(--ace-primary); margin-bottom:var(--ace-space-sm)}
.ace-lms-account__main{min-width:0}

.ace-lms-stats{display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:var(--ace-space-md)}
.ace-lms-stat{text-align:center; padding:var(--ace-space-md); border-radius:var(--ace-radius-md); background:var(--ace-gray-50)}
.ace-lms-stat__value{display:block; font-family:var(--ace-font-heading); font-size:var(--ace-text-2xl); font-weight:800; color:var(--ace-primary); line-height:1.1}
.ace-lms-stat__label{display:block; font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ace-gray-400); margin-top:4px}

.ace-lms-resume{display:grid; grid-template-columns:260px 1fr; gap:var(--ace-space-xl); align-items:center}
.ace-lms-resume__body{min-width:0}
.ace-lms-resume__media img{border-radius:var(--ace-radius-md); width:100%; object-fit:cover}
.ace-lms-resume__title{font-size:var(--ace-text-xl); margin:0 0 var(--ace-space-xs)}
.ace-lms-resume__next{display:flex; align-items:center; gap:.5em; font-size:var(--ace-text-sm); color:var(--ace-gray-500); margin-bottom:var(--ace-space-md)}
.ace-lms-resume__meta{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:6px 0 var(--ace-space-md)}

.ace-lms-certs{display:flex; flex-direction:column; gap:var(--ace-space-md)}
.ace-lms-cert{display:flex; align-items:center; gap:var(--ace-space-lg); padding:var(--ace-space-lg); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); background:var(--ace-gray-50)}
.ace-lms-cert__icon{width:52px; height:52px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border-radius:var(--ace-radius-md); background:var(--ace-gradient-accent); color:var(--ace-white)}
.ace-lms-cert__icon svg{width:26px; height:26px}
.ace-lms-cert__body{flex:1; min-width:0}
.ace-lms-cert__title{font-size:var(--ace-text-base); margin:0}
.ace-lms-cert__meta{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:4px 0 0}
.ace-lms-cert__actions{display:flex; flex-direction:column; align-items:flex-end; gap:6px}

/* ── Course cards & grid ─────────────────────────────────────────────── */

.ace-lms-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:var(--ace-space-lg)}
.ace-lms-grid--compact{grid-template-columns:repeat(auto-fill, minmax(230px, 1fr))}

.ace-lms-card{display:flex; flex-direction:column; background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); overflow:hidden; transition:transform var(--ace-transition-base), box-shadow var(--ace-transition-base)}
.ace-lms-card:hover{transform:translateY(-4px); box-shadow:var(--ace-shadow-lg)}
.ace-lms-card__media{position:relative; display:block; aspect-ratio:16/10; background:var(--ace-gray-50); overflow:hidden}
.ace-lms-card__media img{width:100%; height:100%; object-fit:cover}
.ace-lms-card__media-placeholder{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--ace-gray-200)}
.ace-lms-card__media-placeholder svg{width:42px; height:42px}
.ace-lms-card__badge{position:absolute; top:10px; left:10px; padding:.3em .8em; border-radius:var(--ace-radius-full); font-size:var(--ace-text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.05em; background:var(--ace-primary); color:var(--ace-white)}
.ace-lms-card__badge--sale{background:var(--ace-error)}
.ace-lms-card__badge--free{background:var(--ace-success)}
.ace-lms-card__body{display:flex; flex-direction:column; flex:1; padding:var(--ace-space-lg); gap:var(--ace-space-xs)}
.ace-lms-card__level{font-size:var(--ace-text-xs); font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--ace-accent-dark)}
.ace-lms-card__title{font-size:var(--ace-text-base); line-height:1.35; margin:0}
.ace-lms-card__title a{color:var(--ace-primary)}
.ace-lms-card__title a:hover{color:var(--ace-secondary-dark)}
.ace-lms-card__instructor{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:0}
.ace-lms-card__rating{display:flex; align-items:center; gap:6px; font-size:var(--ace-text-xs)}
.ace-lms-card__rating-value{font-weight:700; color:#b45309}
.ace-lms-card__rating-count{color:var(--ace-gray-400)}
.ace-lms-card__meta{display:flex; flex-wrap:wrap; gap:var(--ace-space-md); font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:var(--ace-space-xs) 0 0}
.ace-lms-card__meta li{display:flex; align-items:center; gap:4px}
.ace-lms-card__meta svg{width:13px; height:13px}
.ace-lms-card__progress{margin-top:var(--ace-space-sm)}
.ace-lms-card__progress-label{display:block; font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-top:5px}
.ace-lms-card__footer{display:flex; align-items:center; justify-content:space-between; gap:var(--ace-space-sm); margin-top:auto; padding-top:var(--ace-space-md)}
.ace-lms-card__price{display:flex; align-items:baseline; gap:8px}
.ace-lms-card__price-now{font-family:var(--ace-font-heading); font-size:var(--ace-text-lg); font-weight:800; color:var(--ace-primary)}
.ace-lms-card__price-was{font-size:var(--ace-text-xs); color:var(--ace-gray-300); text-decoration:line-through}
.ace-lms-card__done{display:inline-flex; align-items:center; gap:4px; font-size:var(--ace-text-xs); font-weight:600; color:var(--ace-success)}

.ace-lms-wishlist-btn{width:38px; height:38px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid var(--ace-gray-100); color:var(--ace-gray-300); transition:color var(--ace-transition-fast), border-color var(--ace-transition-fast), background var(--ace-transition-fast)}
.ace-lms-wishlist-btn:hover{color:var(--ace-error); border-color:var(--ace-error)}
.ace-lms-wishlist-btn.is-saved{color:var(--ace-white); background:var(--ace-error); border-color:var(--ace-error)}
.ace-lms-wishlist-btn svg{width:17px; height:17px}
.ace-lms-wishlist-btn.is-busy{opacity:.5; pointer-events:none}

/* ── Catalog filters ─────────────────────────────────────────────────── */

.ace-lms-catalog{padding:var(--ace-space-2xl) var(--ae-space-md) var(--ace-space-4xl) var(--ae-space-md)}
.ace-lms-filters{display:flex; flex-wrap:wrap; align-items:center; gap:var(--ace-space-md); padding:var(--ace-space-lg); background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); box-shadow:var(--ace-shadow-sm); margin-bottom:var(--ace-space-xl)}
.ace-lms-filters__search{position:relative; flex:1 1 260px; display:flex; align-items:center}
.ace-lms-filters__search svg{position:absolute; left:1em; color:var(--ace-gray-300)}
.ace-lms-filters__search input{width:100%; padding:.75em 1em .75em 2.8em; border:1px solid var(--ace-gray-200); border-radius:var(--ace-radius-full); font-size:var(--ace-text-sm)}
.ace-lms-filters__search input:focus{outline:none; border-color:var(--ace-accent); box-shadow:0 0 0 3px rgba(0,200,224,.15)}
.ace-lms-filters__controls{display:flex; flex-wrap:wrap; align-items:center; gap:var(--ace-space-sm)}
.ace-lms-filters__field select{padding:.6em 2em .6em .9em; border:1px solid var(--ace-gray-200); border-radius:var(--ace-radius-md); font-size:var(--ace-text-sm); background:var(--ace-white)}
.ace-lms-catalog__count{font-size:var(--ace-text-sm); color:var(--ace-gray-400); margin-bottom:var(--ace-space-md)}

/* ── Course sales page ───────────────────────────────────────────────── */

/* White panels on a white page read as flat, so the course pages get a light
   backdrop and the cards separate from it. */
body.single-course-page, body.post-type-archive-course, body.tax-course_category, body.tax-course_level{background:var(--ace-off-white)}

/* Grid children default to min-width:auto, which lets wide tables and the
   curriculum push the column past the sidebar. min-width:0 contains them. */
.ace-course-main{min-width:0}

.ace-course-hero__inner{display:flex; flex-direction:column}
.ace-course-hero__text{max-width:760px}
.ace-course-hero__excerpt{color:rgba(255,255,255,.72); font-size:var(--ace-text-lg); max-width:680px; margin:var(--ace-space-md) 0}
.ace-course-hero__meta{display:flex; flex-wrap:wrap; align-items:center; gap:var(--ace-space-lg); margin-top:var(--ace-space-md)}
.ace-course-hero__rating{display:inline-flex; align-items:center; gap:6px; font-size:var(--ace-text-sm); color:rgba(255,255,255,.85)}
.ace-course-hero__rating strong{color:#f5a623; font-size:var(--ace-text-base)}
.ace-course-hero__rating span{color:rgba(255,255,255,.5)}
.ace-course-hero__instructor{color:rgba(255,255,255,.6); font-size:var(--ace-text-sm); margin:var(--ace-space-md) 0 0}
.ace-course-hero__instructor a, .ace-course-hero__instructor strong{color:var(--ace-white); font-weight:600}
.ace-course-hero__instructor a:hover{color:var(--ace-accent)}
.ace-single-hero__tags .ace-taxonomy-badge{margin-right:6px}

.ace-course-section{scroll-margin-top:120px}
.ace-course-section__title{font-size:var(--ace-text-xl); margin:0 0 var(--ace-space-md)}
.ace-course-section__subtitle{font-size:var(--ace-text-lg); margin:var(--ace-space-xl) 0 var(--ace-space-md)}
.ace-course-section__meta{font-size:var(--ace-text-sm); color:var(--ace-gray-400); margin-bottom:var(--ace-space-lg)}

.ace-course-outcomes{display:grid; grid-template-columns:1fr 1fr; gap:var(--ace-space-md)}
.ace-course-outcomes li{display:flex; align-items:flex-start; gap:.6em; font-size:var(--ace-text-sm); color:var(--ace-gray-600)}
.ace-course-outcomes svg{flex-shrink:0; margin-top:3px; color:var(--ace-success)}
.ace-course-requirements{list-style:disc; padding-left:1.3em; color:var(--ace-gray-600); font-size:var(--ace-text-sm)}
.ace-course-requirements li{margin-bottom:.4em}

.ace-course-curriculum{border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-md); overflow:hidden}
.ace-course-module + .ace-course-module{border-top:1px solid var(--ace-gray-100)}
.ace-course-module__head{display:flex; align-items:center; gap:var(--ace-space-md); width:100%; padding:var(--ace-space-md) var(--ace-space-lg); background:var(--ace-gray-50); text-align:left; font-family:var(--ace-font-heading); font-weight:600; color:var(--ace-primary)}
.ace-course-module__title{flex:1; font-size:var(--ace-text-base)}
.ace-course-module__count{font-size:var(--ace-text-xs); font-weight:400; color:var(--ace-gray-400)}
.ace-course-module__head svg{transition:transform var(--ace-transition-base); color:var(--ace-gray-400)}
.ace-course-module.is-open .ace-course-module__head svg{transform:rotate(180deg)}
.ace-course-module__list{display:none}
.ace-course-module.is-open .ace-course-module__list{display:block}
.ace-course-lesson{border-top:1px solid var(--ace-gray-100)}
.ace-course-lesson a, .ace-course-lesson > span{display:flex; align-items:center; gap:var(--ace-space-sm); padding:.8em var(--ace-space-lg); font-size:var(--ace-text-sm); color:var(--ace-gray-600)}
.ace-course-lesson a:hover{background:var(--ace-gray-50); color:var(--ace-primary)}
.ace-course-lesson__icon{display:flex; color:var(--ace-gray-300)}
.ace-course-lesson.is-open .ace-course-lesson__icon{color:var(--ace-secondary)}
.ace-course-lesson__title{flex:1}
.ace-course-lesson__preview{font-style:normal; font-size:var(--ace-text-xs); font-weight:700; color:var(--ace-success); text-transform:uppercase; letter-spacing:.05em}
.ace-course-lesson__time{font-size:var(--ace-text-xs); color:var(--ace-gray-300)}

.ace-course-instructor{display:flex; gap:var(--ace-space-lg); align-items:flex-start}
.ace-course-instructor__avatar{border-radius:50%; flex-shrink:0}
.ace-course-instructor__name{font-size:var(--ace-text-lg); margin:0 0 4px}
.ace-course-instructor__stats{display:flex; gap:var(--ace-space-md); font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-bottom:var(--ace-space-sm)}
.ace-course-instructor__bio{font-size:var(--ace-text-sm); color:var(--ace-gray-600); margin:0}

.ace-course-reviews__summary{display:grid; grid-template-columns:200px 1fr; gap:var(--ace-space-xl); align-items:center; padding:var(--ace-space-lg); background:var(--ace-gray-50); border-radius:var(--ace-radius-md); margin-bottom:var(--ace-space-lg)}
.ace-course-reviews__score{text-align:center}
.ace-course-reviews__average{display:block; font-family:var(--ace-font-heading); font-size:var(--ace-text-4xl); font-weight:800; color:var(--ace-primary); line-height:1}
.ace-course-reviews__count{display:block; font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-top:4px}
.ace-course-reviews__bars{display:flex; flex-direction:column; gap:6px}
.ace-course-reviews__bars li{display:flex; align-items:center; gap:var(--ace-space-sm); font-size:var(--ace-text-xs); color:var(--ace-gray-400)}
.ace-course-reviews__bar-label{width:56px; flex-shrink:0}
.ace-course-reviews__bar{flex:1; height:7px; border-radius:var(--ace-radius-full); background:var(--ace-gray-100); overflow:hidden}
.ace-course-reviews__bar span{display:block; height:100%; background:#f5a623}
.ace-course-reviews__bar-count{width:34px; text-align:right}
.ace-course-reviews__list{display:flex; flex-direction:column; gap:var(--ace-space-lg); margin-bottom:var(--ace-space-xl)}
.ace-course-review{display:flex; gap:var(--ace-space-md)}
.ace-course-review__avatar{border-radius:50%; flex-shrink:0}
.ace-course-review__head{display:flex; align-items:center; gap:var(--ace-space-sm); flex-wrap:wrap; margin-bottom:4px}
.ace-course-review__head strong{font-size:var(--ace-text-sm); color:var(--ace-primary)}
.ace-course-review__date{font-size:var(--ace-text-xs); color:var(--ace-gray-300)}
.ace-course-review__title{font-size:var(--ace-text-base); margin:0 0 4px}
.ace-course-review__content{font-size:var(--ace-text-sm); color:var(--ace-gray-600); margin:0}
.ace-course-reviews__signin{font-size:var(--ace-text-sm); color:var(--ace-gray-500)}

.ace-course-aside{position:relative; min-width:0}
.ace-course-enroll{position:sticky; top:110px; background:var(--ace-white); border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-lg); overflow:hidden; box-shadow:var(--ace-shadow-lg)}
.ace-course-enroll__media{position:relative}
.ace-course-enroll__media img{width:100%; display:block}
.ace-course-enroll__play{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:rgba(10,26,74,.55); color:var(--ace-white); font-size:var(--ace-text-sm); font-weight:600; transition:background var(--ace-transition-base)}
.ace-course-enroll__play:hover{background:rgba(10,26,74,.7); color:var(--ace-white)}
.ace-course-enroll__play svg{width:34px; height:34px}
.ace-course-enroll__body{padding:var(--ace-space-lg)}
.ace-course-enroll__price{display:flex; align-items:baseline; flex-wrap:wrap; gap:10px; margin-bottom:var(--ace-space-md)}
.ace-course-enroll__price-now{font-family:var(--ace-font-heading); font-size:var(--ace-text-3xl); font-weight:800; color:var(--ace-primary); line-height:1}
.ace-course-enroll__price-was{font-size:var(--ace-text-base); color:var(--ace-gray-300); text-decoration:line-through}
.ace-course-enroll__price-off{font-size:var(--ace-text-xs); font-weight:700; color:var(--ace-error); text-transform:uppercase; letter-spacing:.05em}
.ace-course-enroll__cta{width:100%; margin-bottom:var(--ace-space-sm)}
.ace-course-enroll__wishlist{width:100%; margin-bottom:var(--ace-space-md)}
.ace-course-enroll__wishlist.is-saved{border-color:var(--ace-error); color:var(--ace-error)}
.ace-course-enroll__progress{margin-bottom:var(--ace-space-md)}
.ace-course-enroll__progress span{display:block; font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-top:6px}
.ace-course-enroll__features{display:flex; flex-direction:column; gap:.6em; padding-top:var(--ace-space-md); border-top:1px solid var(--ace-gray-100); font-size:var(--ace-text-sm); color:var(--ace-gray-600)}
.ace-course-enroll__features li{display:flex; align-items:center; gap:.6em}
.ace-course-enroll__features svg{color:var(--ace-accent-dark); flex-shrink:0}

/* ── Checkout ────────────────────────────────────────────────────────── */

.ace-lms-checkout{background:var(--ace-off-white); min-height:70vh; padding-bottom:var(--ace-space-4xl)}
.ace-lms-checkout__hero{background:var(--ace-gradient-primary); padding:calc(100px + var(--ace-space-xl)) 0 var(--ace-space-2xl); text-align:center}
.ace-lms-checkout__title{color:var(--ace-white); font-size:var(--ace-text-2xl); margin:0}
.ace-lms-checkout__body{margin-top:var(--ace-space-xl)}
.ace-lms-checkout__layout{display:grid; grid-template-columns:1fr 380px; gap:var(--ace-space-xl); align-items:start}
.ace-lms-checkout__main{min-width:0}
.ace-lms-checkout__aside{position:sticky; top:110px; min-width:0}
.ace-lms-checkout__guest{max-width:560px; margin:0 auto; background:var(--ace-white); border-radius:var(--ace-radius-lg); padding:var(--ace-space-xl)}
.ace-lms-checkout__secure{display:flex; align-items:flex-start; gap:.6em; font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:var(--ace-space-md) 0 0}
.ace-lms-checkout__secure svg{flex-shrink:0; margin-top:1px; color:var(--ace-success)}

.ace-lms-steps{display:flex; justify-content:center; gap:var(--ace-space-lg); margin-top:var(--ace-space-md); flex-wrap:wrap; counter-reset:ace-step}
.ace-lms-steps li{display:flex; align-items:center; gap:.5em; font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.4); counter-increment:ace-step}
.ace-lms-steps li::before{content:counter(ace-step); display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; border:1px solid currentColor; font-size:11px}
.ace-lms-steps li.is-active{color:var(--ace-white)}
.ace-lms-steps li.is-done{color:var(--ace-accent)}

.ace-lms-gateways{display:flex; flex-direction:column; gap:var(--ace-space-sm)}
.ace-lms-gateway{display:block; cursor:pointer}
.ace-lms-gateway input{position:absolute; opacity:0; width:1px; height:1px}
.ace-lms-gateway__inner{display:flex; align-items:center; gap:var(--ace-space-md); padding:var(--ace-space-md) var(--ace-space-lg); border:2px solid var(--ace-gray-100); border-radius:var(--ace-radius-md); transition:border-color var(--ace-transition-fast), background var(--ace-transition-fast)}
.ace-lms-gateway:hover .ace-lms-gateway__inner{border-color:var(--ace-gray-200)}
.ace-lms-gateway input:checked + .ace-lms-gateway__inner{border-color:var(--ace-secondary); background:rgba(43,125,233,.04)}
.ace-lms-gateway input:focus-visible + .ace-lms-gateway__inner{outline:2px solid var(--ace-accent); outline-offset:2px}
.ace-lms-gateway__icon{display:flex; color:var(--ace-primary); flex-shrink:0}
.ace-lms-gateway__text{flex:1; display:flex; flex-direction:column}
.ace-lms-gateway__text strong{font-size:var(--ace-text-sm); color:var(--ace-primary)}
.ace-lms-gateway__text span{font-size:var(--ace-text-xs); color:var(--ace-gray-400)}
.ace-lms-gateway__tag{font-size:10px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color:var(--ace-warning); border:1px solid currentColor; border-radius:var(--ace-radius-full); padding:.2em .6em}

.ace-lms-summary__items{display:flex; flex-direction:column; gap:var(--ace-space-md); margin-bottom:var(--ace-space-lg)}
.ace-lms-summary__item{display:flex; align-items:center; gap:var(--ace-space-sm)}
.ace-lms-summary__thumb img{width:52px; height:52px; object-fit:cover; border-radius:var(--ace-radius-sm)}
.ace-lms-summary__info{flex:1; min-width:0; display:flex; flex-direction:column}
.ace-lms-summary__info strong{font-size:var(--ace-text-sm); color:var(--ace-primary); line-height:1.3}
.ace-lms-summary__info span{font-size:var(--ace-text-xs); color:var(--ace-gray-400)}
.ace-lms-summary__price{font-weight:700; font-size:var(--ace-text-sm); color:var(--ace-primary); white-space:nowrap}
.ace-lms-summary__remove{color:var(--ace-gray-300); display:flex; padding:4px}
.ace-lms-summary__remove:hover{color:var(--ace-error)}
.ace-lms-summary__totals{border-top:1px solid var(--ace-gray-100); padding-top:var(--ace-space-md); margin-bottom:var(--ace-space-lg)}
.ace-lms-summary__totals > div{display:flex; justify-content:space-between; font-size:var(--ace-text-sm); color:var(--ace-gray-500); margin-bottom:6px}
.ace-lms-summary__totals dd{margin:0}
.ace-lms-summary__grand{font-family:var(--ace-font-heading); font-size:var(--ace-text-lg) !important; font-weight:800; color:var(--ace-primary) !important; padding-top:6px; border-top:1px solid var(--ace-gray-100)}
.ace-lms-summary__submit{width:100%}
.ace-lms-summary__note{font-size:var(--ace-text-xs); color:var(--ace-gray-400); text-align:center; margin:var(--ace-space-sm) 0 0}

.ace-lms-manual-pay__steps{list-style:decimal; padding-left:1.3em; font-size:var(--ace-text-sm); color:var(--ace-gray-600); margin-bottom:var(--ace-space-lg)}
.ace-lms-manual-pay__steps li{margin-bottom:.5em}
.ace-lms-manual-pay__details{background:var(--ace-gray-50); border-radius:var(--ace-radius-md); padding:var(--ace-space-md) var(--ace-space-lg)}
.ace-lms-manual-pay__row{display:flex; justify-content:space-between; gap:var(--ace-space-md); padding:.5em 0; font-size:var(--ace-text-sm); color:var(--ace-gray-500); border-bottom:1px solid var(--ace-gray-100)}
.ace-lms-manual-pay__row:last-child{border-bottom:none}
.ace-lms-manual-pay__row strong{color:var(--ace-primary)}
.ace-lms-copyable{cursor:pointer; border-bottom:1px dashed var(--ace-gray-300)}
.ace-lms-manual-pay__qr{margin:var(--ace-space-lg) 0; text-align:center}
.ace-lms-manual-pay__qr img{display:inline-block; border-radius:var(--ace-radius-md); border:1px solid var(--ace-gray-100)}
.ace-lms-manual-pay__qr figcaption{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin-top:8px}
.ace-lms-manual-pay__note{font-size:var(--ace-text-sm); color:var(--ace-gray-600); margin-top:var(--ace-space-md)}

.ace-lms-received{max-width:640px; margin:0 auto; text-align:center; background:var(--ace-white); border-radius:var(--ace-radius-xl); padding:var(--ace-space-2xl); box-shadow:var(--ace-shadow-lg)}
.ace-lms-received__icon{width:64px; height:64px; margin:0 auto var(--ace-space-lg); display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--ace-gray-100); color:var(--ace-gray-400)}
.ace-lms-received__icon.is-paid{background:rgba(34,197,94,.14); color:var(--ace-success)}
.ace-lms-received__icon svg{width:30px; height:30px}
.ace-lms-received__title{font-size:var(--ace-text-2xl); margin-bottom:var(--ace-space-sm)}
.ace-lms-received__lead{color:var(--ace-gray-500); font-size:var(--ace-text-sm); margin-bottom:var(--ace-space-xl)}
.ace-lms-received__card{text-align:left; background:var(--ace-gray-50); border-radius:var(--ace-radius-md); padding:var(--ace-space-lg); margin-bottom:var(--ace-space-lg)}
.ace-lms-received__items{display:flex; flex-direction:column; gap:var(--ace-space-sm); border-top:1px solid var(--ace-gray-100); padding-top:var(--ace-space-md)}
.ace-lms-received__items li{display:flex; align-items:center; justify-content:space-between; gap:var(--ace-space-md); font-size:var(--ace-text-sm); color:var(--ace-gray-700)}
.ace-lms-received__actions{display:flex; gap:var(--ace-space-sm); justify-content:center; flex-wrap:wrap}

/* ── Course player ───────────────────────────────────────────────────── */

/* The site header stays visible in the player and the lesson bar docks
   directly beneath it. --ace-header-h is measured in JS (it changes with the
   admin bar and the logo height); this is the fallback for the compact,
   scrolled header the player always renders. */
body.ace-lms-player{--ace-header-h:86px}

.ace-lms-learn{background:var(--ace-white); min-height:100vh; padding-top:var(--ace-header-h)}
.ace-lms-learn__bar{position:sticky; top:var(--ace-header-h); z-index:800; background:var(--ace-primary); color:var(--ace-white)}
.ace-lms-learn__bar-inner{display:flex; align-items:center; gap:var(--ace-space-lg); padding:var(--ace-space-sm) var(--ace-gutter); max-width:var(--ace-container-wide); margin:0 auto}
.ace-lms-learn__back{display:flex; align-items:center; gap:.4em; color:rgba(255,255,255,.85); font-size:var(--ace-text-sm); font-weight:600; min-width:0}
.ace-lms-learn__back span{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ace-lms-learn__back:hover{color:var(--ace-white)}
.ace-lms-learn__bar-progress{flex:1; display:flex; align-items:center; gap:var(--ace-space-md); max-width:380px; margin-left:auto}
.ace-lms-learn__bar-progress .ace-lms-progress{flex:1; background:rgba(255,255,255,.15)}
.ace-lms-learn__bar-progress span{font-size:var(--ace-text-xs); color:rgba(255,255,255,.6); white-space:nowrap}
.ace-lms-learn__toc-toggle{display:none; align-items:center; gap:.4em; color:var(--ace-white); font-size:var(--ace-text-sm); font-weight:600}
.ace-lms-learn__layout{display:grid; grid-template-columns:340px 1fr; align-items:start; max-width:var(--ace-container-wide); margin:0 auto}
.ace-lms-learn__sidebar{position:sticky; top:calc(var(--ace-header-h) + 56px); max-height:calc(100vh - var(--ace-header-h) - 56px); overflow-y:auto; border-right:1px solid var(--ace-gray-100); background:var(--ace-gray-50)}
.ace-lms-learn__sidebar-head{padding:var(--ace-space-lg); border-bottom:1px solid var(--ace-gray-100)}
.ace-lms-learn__sidebar-head h2{font-size:var(--ace-text-base); margin:0}
.ace-lms-learn__sidebar-head p{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:4px 0 0}
.ace-lms-learn__main{padding:var(--ace-space-2xl) var(--ace-gutter) var(--ace-space-4xl); min-width:0}

.ace-lms-toc-module__title{font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ace-gray-400); padding:var(--ace-space-md) var(--ace-space-lg) var(--ace-space-xs)}
.ace-lms-toc-item a{display:flex; align-items:flex-start; gap:.7em; padding:.7em var(--ace-space-lg); font-size:var(--ace-text-sm); color:var(--ace-gray-600); border-left:3px solid transparent}
.ace-lms-toc-item a:hover{background:var(--ace-white); color:var(--ace-primary)}
.ace-lms-toc-item.is-current a{background:var(--ace-white); border-left-color:var(--ace-accent); color:var(--ace-primary); font-weight:600}
.ace-lms-toc-item.is-done .ace-lms-toc-item__state{color:var(--ace-success)}
.ace-lms-toc-item.is-locked a{color:var(--ace-gray-300)}
.ace-lms-toc-item__state{display:flex; margin-top:2px; color:var(--ace-gray-300); flex-shrink:0}
.ace-lms-toc-item__text{display:flex; flex-direction:column; gap:2px; min-width:0}
.ace-lms-toc-item__title{line-height:1.35}
.ace-lms-toc-item__meta{display:flex; align-items:center; gap:5px; font-size:var(--ace-text-xs); color:var(--ace-gray-300)}
.ace-lms-toc-item__meta svg{width:12px; height:12px}
.ace-lms-toc-item__preview{font-style:normal; font-weight:700; color:var(--ace-success)}

.ace-lms-lesson{max-width:820px}
.ace-lms-lesson__preview-note{margin-bottom:var(--ace-space-lg)}
.ace-lms-lesson__header{margin-bottom:var(--ace-space-lg)}
.ace-lms-lesson__eyebrow{display:block; font-size:var(--ace-text-xs); font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--ace-accent-dark); margin-bottom:6px}
.ace-lms-lesson__title{font-size:var(--ace-text-2xl); margin:0}
.ace-lms-lesson__content{font-size:var(--ace-text-base); color:var(--ace-gray-700); line-height:1.8}
.ace-lms-lesson__content h2, .ace-lms-lesson__content h3{margin:var(--ace-space-xl) 0 var(--ace-space-sm)}
.ace-lms-lesson__content ul, .ace-lms-lesson__content ol{list-style:revert; padding-left:1.4em; margin-bottom:var(--ace-space-md)}
.ace-lms-lesson__content img{border-radius:var(--ace-radius-md); margin:var(--ace-space-md) 0}

.ace-lms-video{position:relative; aspect-ratio:16/9; border-radius:var(--ace-radius-md); overflow:hidden; background:var(--ace-gray-900); margin-bottom:var(--ace-space-xl)}
.ace-lms-video iframe, .ace-lms-video video{position:absolute; inset:0; width:100%; height:100%; border:0}

.ace-lms-resources{margin-top:var(--ace-space-xl); padding:var(--ace-space-lg); background:var(--ace-gray-50); border-radius:var(--ace-radius-md)}
.ace-lms-resources__title{font-size:var(--ace-text-base); margin:0 0 var(--ace-space-sm)}
.ace-lms-resources__list{display:flex; flex-direction:column; gap:6px}
.ace-lms-resources__list a{display:flex; align-items:center; gap:.6em; font-size:var(--ace-text-sm); color:var(--ace-secondary-dark); font-weight:600}
.ace-lms-resources__list a:hover{color:var(--ace-primary)}

.ace-lms-lesson__complete{margin-top:var(--ace-space-xl); padding:var(--ace-space-lg); border:1px dashed var(--ace-gray-200); border-radius:var(--ace-radius-md)}
.ace-lms-complete-toggle{display:flex; align-items:center; gap:.7em; font-size:var(--ace-text-sm); font-weight:600; color:var(--ace-gray-700); cursor:pointer}
.ace-lms-complete-toggle input{width:20px; height:20px; accent-color:var(--ace-success)}

.ace-lms-lesson__nav{display:flex; justify-content:space-between; gap:var(--ace-space-md); margin-top:var(--ace-space-2xl); padding-top:var(--ace-space-lg); border-top:1px solid var(--ace-gray-100)}
.ace-lms-lesson__nav-link{display:flex; align-items:center; gap:.7em; max-width:48%; color:var(--ace-gray-600)}
.ace-lms-lesson__nav-link:hover{color:var(--ace-primary)}
.ace-lms-lesson__nav-link--next{margin-left:auto; text-align:right}
.ace-lms-lesson__nav-link span{display:flex; flex-direction:column; min-width:0}
.ace-lms-lesson__nav-link em{font-style:normal; font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:var(--ace-gray-300)}
.ace-lms-lesson__nav-link strong{font-size:var(--ace-text-sm); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}

.ace-lms-lesson__finish{margin-top:var(--ace-space-2xl)}
.ace-lms-lesson__finish-inner{display:flex; align-items:center; gap:var(--ace-space-lg); padding:var(--ace-space-lg); border-radius:var(--ace-radius-lg); background:var(--ace-gradient-primary); color:var(--ace-white); flex-wrap:wrap}
.ace-lms-lesson__finish-inner svg{width:32px; height:32px; color:var(--ace-accent); flex-shrink:0}
.ace-lms-lesson__finish-inner h2{color:var(--ace-white); font-size:var(--ace-text-lg); margin:0}
.ace-lms-lesson__finish-inner p{color:rgba(255,255,255,.7); font-size:var(--ace-text-sm); margin:2px 0 0}
.ace-lms-lesson__finish-inner .ace-btn{margin-left:auto}

.ace-lms-locked{max-width:560px; margin:var(--ace-space-3xl) auto; text-align:center}
.ace-lms-locked__icon{width:64px; height:64px; margin:0 auto var(--ace-space-lg); display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--ace-gray-100); color:var(--ace-gray-400)}
.ace-lms-locked__icon svg{width:28px; height:28px}
.ace-lms-locked__title{font-size:var(--ace-text-xl); margin-bottom:var(--ace-space-sm)}
.ace-lms-locked__message{color:var(--ace-gray-500); font-size:var(--ace-text-sm); margin-bottom:var(--ace-space-lg)}
.ace-lms-locked__actions{display:flex; gap:var(--ace-space-sm); justify-content:center; flex-wrap:wrap}

/* ── Quizzes ─────────────────────────────────────────────────────────── */

.ace-lms-quiz__intro{display:flex; align-items:center; gap:var(--ace-space-lg); flex-wrap:wrap; padding:var(--ace-space-lg); background:var(--ace-gray-50); border-radius:var(--ace-radius-md); margin-bottom:var(--ace-space-lg)}
.ace-lms-quiz__badge{display:inline-flex; align-items:center; gap:.5em; padding:.4em 1em; border-radius:var(--ace-radius-full); background:var(--ace-primary); color:var(--ace-white); font-size:var(--ace-text-xs); font-weight:700; text-transform:uppercase; letter-spacing:.06em}
.ace-lms-quiz__facts{display:flex; gap:var(--ace-space-lg); flex-wrap:wrap; font-size:var(--ace-text-xs); color:var(--ace-gray-500)}
.ace-lms-quiz__previous{margin-bottom:var(--ace-space-lg)}
.ace-lms-quiz__result{margin-bottom:var(--ace-space-lg)}

.ace-lms-question{border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-md); padding:var(--ace-space-lg); margin-bottom:var(--ace-space-md)}
.ace-lms-question.is-correct{border-color:var(--ace-success); background:rgba(34,197,94,.04)}
.ace-lms-question.is-incorrect{border-color:var(--ace-error); background:rgba(239,68,68,.04)}
.ace-lms-question__title{display:flex; gap:.7em; font-family:var(--ace-font-heading); font-size:var(--ace-text-base); font-weight:600; color:var(--ace-primary); margin-bottom:var(--ace-space-md); padding:0}
.ace-lms-question__number{flex-shrink:0; width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--ace-gray-100); font-size:var(--ace-text-xs)}
.ace-lms-question__hint{font-size:var(--ace-text-xs); color:var(--ace-gray-400); margin:-8px 0 var(--ace-space-sm) 2.3em}
.ace-lms-question__answers{display:flex; flex-direction:column; gap:8px}
.ace-lms-answer{display:flex; align-items:center; gap:.7em; padding:.7em 1em; border:1px solid var(--ace-gray-100); border-radius:var(--ace-radius-md); font-size:var(--ace-text-sm); color:var(--ace-gray-600); cursor:pointer; transition:border-color var(--ace-transition-fast), background var(--ace-transition-fast)}
.ace-lms-answer:hover{border-color:var(--ace-gray-200); background:var(--ace-gray-50)}
.ace-lms-answer input{width:18px; height:18px; accent-color:var(--ace-secondary); flex-shrink:0}
.ace-lms-answer:has(input:checked){border-color:var(--ace-secondary); background:rgba(43,125,233,.05)}
.ace-lms-quiz__actions{margin-top:var(--ace-space-lg)}
.ace-lms-quiz__explanation{font-size:var(--ace-text-xs); color:var(--ace-gray-500); margin:var(--ace-space-sm) 0 0; padding-left:2.3em}
.ace-lms-quiz__score{display:flex; align-items:center; gap:var(--ace-space-lg); flex-wrap:wrap}
.ace-lms-quiz__score-value{font-family:var(--ace-font-heading); font-size:var(--ace-text-3xl); font-weight:800; line-height:1}

/* ── Certificate verification ────────────────────────────────────────── */

.ace-lms-verify{background:var(--ace-off-white); padding:calc(100px + var(--ace-space-2xl)) 0 var(--ace-space-4xl); min-height:70vh}
.ace-lms-verify__card{background:var(--ace-white); border-radius:var(--ace-radius-xl); box-shadow:var(--ace-shadow-lg); padding:var(--ace-space-2xl); text-align:center; border-top:4px solid var(--ace-gray-200)}
.ace-lms-verify__card.is-valid{border-top-color:var(--ace-success)}
.ace-lms-verify__card.is-invalid{border-top-color:var(--ace-error)}
.ace-lms-verify__icon{width:64px; height:64px; margin:0 auto var(--ace-space-lg); display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--ace-gray-100)}
.ace-lms-verify__card.is-valid .ace-lms-verify__icon{background:rgba(34,197,94,.14); color:var(--ace-success)}
.ace-lms-verify__card.is-invalid .ace-lms-verify__icon{background:rgba(239,68,68,.12); color:var(--ace-error)}
.ace-lms-verify__icon svg{width:30px; height:30px}
.ace-lms-verify__title{font-size:var(--ace-text-2xl); margin-bottom:var(--ace-space-sm)}
.ace-lms-verify__lead{color:var(--ace-gray-500); font-size:var(--ace-text-sm); margin-bottom:var(--ace-space-xl)}
.ace-lms-verify__details{text-align:left; background:var(--ace-gray-50); border-radius:var(--ace-radius-md); padding:var(--ace-space-lg); margin-bottom:var(--ace-space-lg)}
.ace-lms-verify__form{display:flex; gap:var(--ace-space-sm); justify-content:center; flex-wrap:wrap}
.ace-lms-verify__form input{padding:.75em 1em; border:1px solid var(--ace-gray-200); border-radius:var(--ace-radius-md); font-family:var(--ace-font-mono); font-size:var(--ace-text-sm); min-width:240px}

/* ── Instructor profile ──────────────────────────────────────────────── */

.ace-lms-instructor__hero{background:var(--ace-gradient-primary); padding:calc(100px + var(--ace-space-2xl)) 0 var(--ace-space-2xl)}
.ace-lms-instructor__hero-inner{display:flex; align-items:center; gap:var(--ace-space-xl); flex-wrap:wrap}
.ace-lms-instructor__avatar{border-radius:50%; border:4px solid rgba(255,255,255,.15)}
.ace-lms-instructor__eyebrow{display:block; font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.12em; color:var(--ace-accent); margin-bottom:6px}
.ace-lms-instructor__name{color:var(--ace-white); font-size:var(--ace-text-3xl); margin:0 0 var(--ace-space-md)}
.ace-lms-instructor__stats{display:flex; gap:var(--ace-space-xl)}
.ace-lms-instructor__stats strong{display:block; font-family:var(--ace-font-heading); font-size:var(--ace-text-xl); color:var(--ace-white)}
.ace-lms-instructor__stats span{font-size:var(--ace-text-xs); text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.5)}
.ace-lms-instructor__body{padding:var(--ace-space-2xl) 0 var(--ace-space-4xl)}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width:1024px){
	.ace-lms-account__layout{grid-template-columns:1fr}
	.ace-lms-account__sidebar{position:static}
	.ace-lms-account__nav-toggle{display:flex}
	.ace-lms-account__nav{display:none}
	.ace-lms-account__nav.is-open{display:flex}
	.ace-lms-checkout__layout{grid-template-columns:1fr}
	.ace-lms-checkout__aside{position:static}
	.ace-lms-learn__layout{grid-template-columns:1fr}
	.ace-lms-learn__sidebar{display:none; position:static; max-height:none; border-right:none; border-bottom:1px solid var(--ace-gray-100)}
	.ace-lms-learn__sidebar.is-open{display:block}
	.ace-lms-learn__toc-toggle{display:flex}
	.ace-course-reviews__summary{grid-template-columns:1fr}
}

@media (max-width:768px){
	.ace-lms-form__grid{grid-template-columns:1fr}
	.ace-lms-avatar-field{gap:var(--ace-space-lg)}
	.ace-lms-avatar-field__preview{width:88px; height:88px}
	.ace-course-outcomes{grid-template-columns:1fr}
	.ace-lms-resume{grid-template-columns:1fr}
	.ace-lms-resume__media{display:none}
	.ace-lms-panel{padding:var(--ace-space-lg)}
	.ace-lms-auth__card{padding:var(--ace-space-lg)}
	.ace-lms-cert{flex-direction:column; align-items:flex-start}
	.ace-lms-cert__actions{align-items:flex-start; width:100%}
	.ace-lms-learn__bar-progress span{display:none}
	.ace-lms-lesson__nav{flex-direction:column}
	.ace-lms-lesson__nav-link{max-width:100%}
	.ace-lms-lesson__nav-link--next{text-align:left; margin-left:0; flex-direction:row-reverse; justify-content:flex-end}
	.ace-lms-lesson__finish-inner .ace-btn{margin-left:0; width:100%}
	.ace-lms-account__hero-inner{flex-direction:column; text-align:center}
	.ace-lms-instructor__hero-inner{flex-direction:column; text-align:center}
	.ace-lms-instructor__stats{justify-content:center}
	.ace-lms-filters{flex-direction:column; align-items:stretch}
	.ace-lms-received{padding:var(--ace-space-lg)}
}

@media (max-width:480px){
	.ace-lms-grid{grid-template-columns:1fr}
	.ace-lms-stats{grid-template-columns:1fr 1fr}
	.ace-lms-filters__controls{flex-direction:column; align-items:stretch}
	.ace-lms-filters__field select{width:100%}
}

@media (prefers-reduced-motion:reduce){
	.ace-lms-card, .ace-lms-progress__bar, .ace-lms-strength__bar span{transition:none}
	.ace-lms-card:hover{transform:none}
}
