.cflms {
    --cflms-primary: #2457a6;
    --cflms-secondary: #f59e0b;
    --cflms-text: #17212b;
    --cflms-muted: #52606d;
    --cflms-border: #c7d0d9;
    --cflms-surface: #fff;
    --cflms-soft: #f4f7f9;
    --cflms-teal: #087f5b;
    --cflms-purple: #6d28d9;
    --cflms-coral: #b4234d;
    --cflms-sun: #f3a600;
    box-sizing: border-box;
    color: var(--cflms-text);
    font-size: 1rem;
    line-height: 1.55;
    margin: 1rem auto;
    max-width: 1200px;
    overflow-wrap: anywhere;
}
.cflms *, .cflms *::before, .cflms *::after { box-sizing: inherit; }
.cflms-player { background: linear-gradient(135deg, #f6fbff 0%, #fffaf0 52%, #faf7ff 100%); border: 1px solid #d8e2ea; border-radius: 1rem; box-shadow: 0 12px 35px rgb(23 74 110 / 9%); max-width: 1520px; padding: 1rem; width: min(1520px, calc(100% - 1rem)); }
.cflms h1, .cflms h2, .cflms h3 { color: var(--cflms-text); line-height: 1.25; }
.cflms a { color: #0b527d; text-decoration-thickness: .1em; text-underline-offset: .16em; }
.cflms :focus-visible { outline: 3px solid #8a4b00; outline-offset: 3px; }
.cflms img, .cflms video, .cflms iframe { height: auto; max-width: 100%; }
.cflms iframe { aspect-ratio: 16/9; width: 100%; }
.cflms-grid, .cflms-dashboard-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(var(--cflms-columns, 3), minmax(0, 1fr)); }
.cflms-card { background: var(--cflms-surface); border: 1px solid var(--cflms-border); border-radius: .85rem; box-shadow: 0 5px 20px rgb(23 33 43 / 10%); overflow: hidden; }
.cflms-grid .cflms-card:nth-child(4n+1), .cflms-dashboard-grid .cflms-card:nth-child(4n+1) { border-top: 5px solid var(--cflms-primary); }
.cflms-grid .cflms-card:nth-child(4n+2), .cflms-dashboard-grid .cflms-card:nth-child(4n+2) { border-top: 5px solid var(--cflms-teal); }
.cflms-grid .cflms-card:nth-child(4n+3), .cflms-dashboard-grid .cflms-card:nth-child(4n+3) { border-top: 5px solid var(--cflms-purple); }
.cflms-grid .cflms-card:nth-child(4n), .cflms-dashboard-grid .cflms-card:nth-child(4n) { border-top: 5px solid var(--cflms-sun); }
.cflms-card > img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.cflms-card-body { padding: 1.25rem; }
.cflms-catalogue > h2,
.cflms-dashboard > header h1 {
    font-size: clamp(1.8rem, 2.4vw, 2.1rem) !important;
    line-height: 1.2;
    margin: 0 0 1rem;
}
.cflms-dashboard > section > h2 {
    font-size: clamp(1.5rem, 2vw, 1.75rem) !important;
    line-height: 1.25;
    margin: 1.5rem 0 .85rem;
}
.cflms-catalogue .cflms-card h3,
.cflms-dashboard .cflms-card h2 {
    font-size: clamp(1.2rem, 1.5vw, 1.4rem) !important;
    line-height: 1.3;
    margin: .55rem 0 .9rem;
    overflow-wrap: break-word;
    word-break: normal;
}
.cflms-button, .cflms input[type=submit] { align-items: center; background: var(--cflms-primary); border: 2px solid var(--cflms-primary); border-radius: .55rem; box-shadow: 0 3px 0 rgb(0 0 0 / 16%); color: #fff !important; cursor: pointer; display: inline-flex; font: inherit; font-weight: 700; justify-content: center; min-height: 44px; padding: .62rem 1rem; text-decoration: none; }
.cflms-button:hover, .cflms-button:focus { background: #0d3855; border-color: #0d3855; color: #fff !important; }
.cflms-button-small { min-height: 38px; padding: .35rem .7rem; }
.cflms-inline-meta { display: grid; grid-template-columns: max-content 1fr; gap: .25rem .75rem; }
.cflms-inline-meta dt, .cflms-course-details dt, .cflms dl dt { font-weight: 700; }
.cflms-inline-meta dd, .cflms-course-details dd, .cflms dl dd { margin: 0 0 .5rem; }
.cflms-course-header { align-items: center; background: linear-gradient(115deg, #e9f7ff 0%, #fff3cf 100%); border: 1px solid #b9d6e8; border-left: 8px solid var(--cflms-primary); border-radius: .85rem; display: flex; gap: 2rem; justify-content: space-between; margin-bottom: 1.25rem; padding: 1.5rem; }
.cflms-course-header img { border-radius: .5rem; max-width: 280px; }
.cflms-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(205px, 255px) minmax(0, 1fr); }
.cflms-course-nav { background: linear-gradient(180deg, #fff 0%, #f1f8fb 100%); border: 1px solid var(--cflms-border); border-top: 6px solid var(--cflms-teal); border-radius: .75rem; box-shadow: 0 6px 18px rgb(23 74 110 / 8%); padding: 1rem; position: sticky; top: 2rem; }
.cflms-course-nav h2 { color: var(--cflms-primary); font-size: 1.08rem; margin: .25rem 0 .75rem; }
.cflms-course-nav ol { margin: .5rem 0; padding-left: 1.5rem; }
.cflms-course-nav li { margin: .35rem 0; }
.cflms-course-nav [aria-current=step] { background: #fff2c9; border-left: 4px solid var(--cflms-sun); border-radius: .3rem; padding: .4rem; }
.cflms-module-jump-nav { display: grid; gap: .45rem; grid-template-columns: 1fr; margin: 0 0 .85rem; }
.cflms-module-jump { align-items: center; background: #eef7fb; border: 1px solid #8fb6ca; border-radius: 999px; color: #123e59 !important; display: flex; font-size: .82rem; font-weight: 800; gap: .45rem; justify-content: center; line-height: 1.2; min-height: 40px; padding: .4rem .75rem; text-decoration: none !important; white-space: nowrap; }
.cflms-module-jump > span[aria-hidden] { font-size: 1rem; line-height: 1; }
.cflms-module-jump-next { background: #eaf8f1; border-color: #65a982; }
.cflms-module-jump:hover, .cflms-module-jump:focus { background: #fff2c9; border-color: var(--cflms-sun); color: #17212b !important; }
.cflms-module-position { background: #e6f6f1; border-radius: 999px; color: #075f45; display: inline-block; font-size: .8rem; font-weight: 800; margin: 0 0 .4rem; padding: .2rem .65rem; text-transform: uppercase; }
.cflms-module-progress { background: #dfe8e5; border-radius: 999px; height: 9px; overflow: hidden; }
.cflms-module-progress span { background: linear-gradient(90deg, var(--cflms-teal), var(--cflms-sun)); display: block; height: 100%; }
.cflms-module-progress-text { color: var(--cflms-muted); font-size: .82rem; margin: .35rem 0 .7rem; }
.cflms-module-completed { background: #e6f6ea; border: 1px solid #6eaa7a; border-radius: .45rem; color: #165a2b; font-weight: 800; padding: .45rem .6rem; }
.cflms-activity { background: #fff; border: 1px solid #dbe3e9; border-radius: .85rem; box-shadow: 0 7px 22px rgb(23 33 43 / 8%); min-width: 0; padding: clamp(1rem, 2.4vw, 2rem); }
.cflms-progress { background: #dfe6eb; border: 1px solid #8e9ca8; border-radius: 999px; height: 16px; overflow: hidden; }
.cflms-progress span { background: linear-gradient(90deg, var(--cflms-primary), var(--cflms-teal), var(--cflms-sun)); display: block; height: 100%; }
.cflms-progress-text { color: var(--cflms-muted); font-size: .95rem; }
.cflms-form { background: linear-gradient(145deg, #f5fbff, #fffaf0); border: 1px solid var(--cflms-border); border-radius: .7rem; max-width: 720px; padding: 1.25rem; }
.cflms-quiz-form { max-width: none; width: 100%; }
.cflms-correction-details { background: #f8fafc; border: 1px solid var(--cflms-border); border-radius: .7rem; margin: 1rem 0 1.5rem; overflow: hidden; }
.cflms-correction-details > summary { background: #eaf2f8; color: #143f5a; cursor: pointer; font-weight: 800; min-height: 48px; padding: .8rem 1rem; }
.cflms-correction-details[open] > summary { border-bottom: 1px solid var(--cflms-border); }
.cflms-correction-legend { display: flex; flex-wrap: wrap; gap: .55rem; padding: 1rem 1rem 0; }
.cflms-review-key, .cflms-review-status { border: 1px solid currentColor; border-radius: 999px; display: inline-flex; font-size: .82rem; font-weight: 800; gap: .25rem; line-height: 1.25; padding: .25rem .65rem; }
.cflms-review-key-correct, .cflms-review-status-correct { background: #dcfce7; color: #14532d; }
.cflms-review-key-wrong, .cflms-review-status-wrong { background: #fee2e2; color: #8a1722; }
.cflms-review-key-pending, .cflms-review-status-pending { background: #fff3cd; color: #5f4300; }
.cflms-correction-list { display: grid; gap: 1rem; list-style: none; margin: 0; padding: 1rem; }
.cflms-correction-item { background: #fff; border: 1px solid var(--cflms-border); border-left: 7px solid #657987; border-radius: .65rem; box-shadow: 0 3px 12px rgb(23 33 43 / 7%); padding: 1rem; }
.cflms-correction-item-correct { border-left-color: #15803d; }
.cflms-correction-item-wrong { border-left-color: #b91c1c; }
.cflms-correction-item-pending { border-left-color: #9a6700; }
.cflms-review-question-heading { align-items: center; display: flex; flex-wrap: wrap; gap: .6rem; justify-content: space-between; }
.cflms-review-question-number { color: var(--cflms-muted); font-size: .82rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.cflms-review-question { color: var(--cflms-text); font-size: 1.08rem; font-weight: 800; margin: .75rem 0 .35rem; }
.cflms-review-score { color: var(--cflms-muted); font-size: .9rem; margin: 0 0 .75rem; }
.cflms-review-answer { border: 2px solid; border-radius: .5rem; margin: .65rem 0; padding: .65rem .75rem; }
.cflms-review-answer-correct { background: #f0fdf4; border-color: #3f9b5f; color: #14532d; }
.cflms-review-answer-wrong { background: #fef2f2; border-color: #d35b64; color: #7f1d1d; }
.cflms-review-answer-pending { background: #fff8e1; border-color: #bb8300; color: #5f4300; }
.cflms-review-answer > strong { display: block; }
.cflms-review-answer ul { list-style: disc; margin: .35rem 0 0; padding-left: 1.35rem; }
.cflms-review-answer li { margin: .15rem 0; }
.cflms-review-feedback { background: #eef6fb; border-left: 5px solid #17658f; border-radius: .4rem; color: #143f5a; margin-top: .75rem; padding: .65rem .75rem; }
.cflms-review-feedback p { margin: .25rem 0 0; }
.cflms-form label:not(.cflms-choice) { display: block; font-weight: 700; margin-bottom: .3rem; }
.cflms-form input:not([type=checkbox]):not([type=radio]), .cflms-form select, .cflms-form textarea { background: #fff; border: 2px solid #73808c; border-radius: .25rem; color: var(--cflms-text); font: inherit; max-width: 100%; min-height: 44px; padding: .55rem; width: 100%; }
.cflms-form input[readonly] { background: #e9eef2; color: #394956; cursor: not-allowed; }
.cflms-form textarea { min-height: 110px; resize: vertical; }
.cflms-form input[type=checkbox], .cflms-form input[type=radio] { height: 1.25rem; margin-right: .5rem; width: 1.25rem; }
.cflms-login-form { max-width: 520px; }
.cflms-login-form p { margin: 0 0 1rem; }
.cflms-login-remember label { align-items: center; display: inline-flex !important; font-weight: 400 !important; }
.cflms-choice { align-items: flex-start; background: #fff; border: 1px solid var(--cflms-border); border-radius: .35rem; display: flex; margin: .5rem 0; min-height: 44px; padding: .65rem; }
.cflms-form fieldset { border: 1px solid #8e9ca8; border-radius: .5rem; margin: 1.2rem 0; padding: 1rem; }
.cflms-form legend { font-weight: 700; padding: 0 .35rem; }
.cflms-interactive { background: linear-gradient(145deg, #f7fbff, #fff9e8); border-width: 2px !important; box-shadow: 0 5px 16px rgb(23 33 43 / 7%); }
.cflms-game-instruction { background: #e9f7ff; border-left: 5px solid var(--cflms-primary); border-radius: .3rem; font-weight: 700; padding: .65rem .8rem; }
.cflms-hotspot-widget { max-width: 900px; }
.cflms-hotspot-image { background: #eef2f5; border: 2px solid #6f7e8a; border-radius: .65rem; display: grid; overflow: hidden; position: relative; }
.cflms-hotspot-image > img, .cflms-hotspot-surface { grid-area: 1 / 1; height: auto; width: 100%; }
.cflms-hotspot-image > img { display: block; pointer-events: none; }
.cflms-hotspot-surface { appearance: none; background: transparent; border: 0; cursor: crosshair; min-height: 44px; padding: 0; position: relative; }
.cflms-hotspot-marker { background: #fff; border: 5px solid #b4234d; border-radius: 50%; box-shadow: 0 0 0 4px rgb(255 255 255 / 85%); height: 24px; opacity: 0; position: absolute; transform: translate(-50%, -50%); width: 24px; }
.cflms-hotspot-marker.is-visible { opacity: 1; }
.cflms-hotspot-status { color: var(--cflms-muted); font-weight: 700; }
.cflms-coordinate-grid { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: .7rem; }
.cflms-matching-grid { display: grid; gap: .75rem; }
.cflms-matching-grid label { align-items: center; background: #fff; border: 1px solid var(--cflms-border); border-radius: .45rem; display: grid !important; gap: .8rem; grid-template-columns: minmax(0, 1fr) minmax(180px, 1fr); margin: 0 !important; padding: .75rem; }
.cflms-ordering-list { display: grid; gap: .55rem; list-style: none; margin: 0; padding: 0; }
.cflms-ordering-list li { align-items: center; background: #fff; border: 2px solid #8ba0af; border-left: 7px solid var(--cflms-purple); border-radius: .45rem; cursor: grab; display: grid; gap: .65rem; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 54px; padding: .55rem .65rem; }
.cflms-ordering-list li.is-dragging { opacity: .55; }
.cflms-drag-handle { font-size: 1.4rem; }
.cflms-order-controls { display: inline-flex; gap: .3rem; }
.cflms-order-controls button { background: #edf4f8; border: 1px solid #657987; border-radius: .3rem; color: #17212b; cursor: pointer; font-size: 1.15rem; min-height: 40px; min-width: 40px; }
.cflms-fill-text { background: #fff; border: 1px solid var(--cflms-border); border-radius: .5rem; font-size: 1.08rem; line-height: 2.7; padding: 1rem; }
.cflms-fill-text label { display: inline !important; }
.cflms-fill-text input { display: inline-block; margin: 0 .25rem; min-width: 120px; width: min(220px, 90%) !important; }
.cflms-memory-grid { display: grid; gap: .65rem; grid-template-columns: repeat(4, minmax(90px, 1fr)); }
.cflms-memory-card { background: linear-gradient(135deg, var(--cflms-primary), #6d28d9); border: 3px solid #fff; border-radius: .65rem; box-shadow: 0 3px 9px rgb(23 33 43 / 18%); color: #fff; cursor: pointer; font: inherit; font-weight: 800; min-height: 92px; padding: .65rem; }
.cflms-memory-card .cflms-card-face { display: none; }
.cflms-memory-card.is-flipped, .cflms-memory-card.is-matched { background: #fff; border-color: var(--cflms-teal); color: var(--cflms-text); }
.cflms-memory-card.is-flipped .cflms-card-back, .cflms-memory-card.is-matched .cflms-card-back { display: none; }
.cflms-memory-card.is-flipped .cflms-card-face, .cflms-memory-card.is-matched .cflms-card-face { display: inline; }
.cflms-memory-card.is-matched { background: #e7f8ee; }
.cflms-memory-card.is-matched.cflms-match-color-1 { background: #d8f3dc; border-color: #2d6a4f; color: #143b2d; }
.cflms-memory-card.is-matched.cflms-match-color-2 { background: #dbeafe; border-color: #2563a9; color: #173f6b; }
.cflms-memory-card.is-matched.cflms-match-color-3 { background: #fef3c7; border-color: #a16207; color: #5f3b00; }
.cflms-memory-card.is-matched.cflms-match-color-4 { background: #fce7f3; border-color: #a83b75; color: #642046; }
.cflms-memory-card.is-matched.cflms-match-color-5 { background: #ede9fe; border-color: #6d4cc4; color: #402a78; }
.cflms-memory-card.is-matched.cflms-match-color-6 { background: #cffafe; border-color: #0e7490; color: #164e63; }
.cflms-memory-card.is-matched.cflms-match-color-7 { background: #ffedd5; border-color: #b45309; color: #6b3005; }
.cflms-memory-card.is-matched.cflms-match-color-8 { background: #e2e8f0; border-color: #475569; color: #27364a; }
.cflms-memory-card:disabled { cursor: default; opacity: 1; }
.cflms-memory-status { background: #f3edff; border-radius: .4rem; color: #4b2688; font-weight: 800; padding: .6rem .75rem; }
.cflms-memory-game.is-complete .cflms-memory-status { background: #d8f3dc; border: 2px solid #2d6a4f; color: #143b2d; }
.cflms-message { border: 2px solid #52606d; border-left-width: 7px; border-radius: .3rem; margin: 1rem 0; padding: .85rem 1rem; }
.cflms-info { background: #edf6fb; border-color: #17658f; }
.cflms-success, .cflms-completed { background: #e9f7ee; border-color: #237a40; color: #154e2a; padding: .75rem; }
.cflms-warning { background: #fff5d6; border-color: #8a5a00; color: #4f3400; }
.cflms-error { background: #fcebec; border-color: #9f1d2d; color: #68131d; }
.cflms-help { color: var(--cflms-muted); display: block; font-size: .9rem; }
.cflms-honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 0; }
.cflms-video { margin: 1.25rem 0; width: 100%; }
.cflms-video > iframe, .cflms-video > video, .cflms-video .wp-video, .cflms-video .mejs-container { display: block; max-width: none !important; width: 100% !important; }
.cflms-video figcaption { color: var(--cflms-muted); font-size: .95rem; }
.cflms-video-confirmation { background: #fff7dc; border: 2px solid #d08a00; border-left-width: 7px; border-radius: .65rem; color: #3f2a00; margin: 1rem 0 1.5rem; padding: .85rem 1rem; }
.cflms-video-confirmation p { margin: 0 0 .7rem; }
.cflms-video-confirmation-form { margin: 0; }
.cflms-video-confirmation-button { background: #175f84 !important; border-color: #175f84 !important; color: #fff !important; }
.cflms-illustration { background: #f7f9fb; border: 1px solid var(--cflms-border); border-radius: .65rem; box-shadow: 0 4px 18px rgb(23 33 43 / 8%); margin: 1.25rem 0; overflow: hidden; }
.cflms-illustration img { aspect-ratio: 16/9; display: block; object-fit: contain; width: 100%; }
.cflms-illustration figcaption { background: #fff; color: var(--cflms-muted); font-size: .95rem; padding: .65rem .85rem; }
.cflms-resources ul, .cflms-certificate-list { list-style: none; padding: 0; }
.cflms-resources li, .cflms-certificate-list li { align-items: center; border-bottom: 1px solid var(--cflms-border); display: flex; flex-wrap: wrap; gap: .75rem; padding: .75rem 0; }
.cflms-pdf-viewer { aspect-ratio: auto; background: #eef2f5; border: 1px solid var(--cflms-border); border-radius: .35rem; height: 72vh; min-height: 560px; width: 100%; }
.cflms-resource-range { background: var(--cflms-soft); border-left: 4px solid var(--cflms-primary); padding: .65rem .8rem; }
.cflms-activity-navigation { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-top: 2rem; }
.cflms-arrow { align-items: center; background: #eef7fb; border: 2px solid #8fb6ca; border-radius: .7rem; color: #123e59 !important; display: flex; font-weight: 800; gap: .75rem; justify-content: space-between; min-height: 68px; padding: .7rem 1rem; text-decoration: none !important; }
.cflms-arrow small { color: #52606d; display: block; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.cflms-arrow > span[aria-hidden] { font-size: 1.65rem; line-height: 1; }
.cflms-arrow-next { background: #eaf8f1; border-color: #65a982; text-align: right; }
.cflms-arrow:hover, .cflms-arrow:focus { background: #fff2c9; border-color: var(--cflms-sun); color: #17212b !important; }
.cflms-arrow-disabled { background: #f0f2f4; border-color: #c3cbd1; color: #66727d !important; cursor: not-allowed; }
.cflms-arrow-finished { background: #f3edff; border-color: #9b7ad6; color: #4b2688 !important; }
.cflms-status { background: #e7eef3; border: 1px solid #8ba0af; border-radius: 999px; color: #203746; display: inline-block; font-size: .85rem; padding: .15rem .6rem; }
.cflms-table-scroll { max-width: 100%; overflow-x: auto; }
.cflms table { border-collapse: collapse; min-width: 600px; width: 100%; }
.cflms th, .cflms td { border: 1px solid var(--cflms-border); padding: .65rem; text-align: left; }
.cflms th { background: #eaf0f4; color: var(--cflms-text); }
.cflms-tutor-dashboard { background: linear-gradient(145deg, #f3faff 0%, #fff9e9 55%, #f6f1ff 100%); border: 1px solid #d5e0e8; border-radius: 1rem; box-shadow: 0 12px 36px rgb(23 74 110 / 10%); max-width: 1450px; padding: clamp(1rem, 2.5vw, 2rem); }
.cflms-tutor-header, .cflms-section-heading { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.cflms-tutor-header { background: linear-gradient(115deg, var(--cflms-primary), #087f5b); border-radius: .85rem; color: #fff; margin-bottom: 1.5rem; padding: clamp(1rem, 3vw, 2rem); }
.cflms-tutor-header h1, .cflms-tutor-header a { color: #fff; }
.cflms-tutor-header h1 { margin: .25rem 0; }
.cflms-tutor-header p { margin: .4rem 0; }
.cflms-eyebrow { font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cflms-tutor-dashboard section { margin: 2rem 0; }
.cflms-tutor-summary { display: grid; gap: 1rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.cflms-stat-card { background: #fff; border: 1px solid var(--cflms-border); border-radius: .7rem; box-shadow: 0 4px 14px rgb(23 33 43 / 8%); min-height: 110px; padding: 1rem; }
.cflms-stat-card:nth-child(3n+1) { border-top: 5px solid var(--cflms-primary); }
.cflms-stat-card:nth-child(3n+2) { border-top: 5px solid var(--cflms-teal); }
.cflms-stat-card:nth-child(3n) { border-top: 5px solid var(--cflms-sun); }
.cflms-stat-card strong, .cflms-stat-card span { display: block; }
.cflms-stat-card strong { color: var(--cflms-primary); font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.1; margin-bottom: .55rem; }
.cflms-stat-card span { color: var(--cflms-muted); font-size: .9rem; font-weight: 700; }
.cflms-tutor-course-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cflms-tutor-course { background: #fff; border: 1px solid var(--cflms-border); border-left: 7px solid var(--cflms-purple); border-radius: .75rem; box-shadow: 0 5px 18px rgb(23 33 43 / 8%); padding: 1.1rem; }
.cflms-tutor-course:nth-child(3n+2) { border-left-color: var(--cflms-teal); }
.cflms-tutor-course:nth-child(3n) { border-left-color: var(--cflms-sun); }
.cflms-tutor-course h3 { margin-top: 0; }
.cflms-tutor-course dl { display: grid; gap: .25rem .75rem; grid-template-columns: 1fr auto; }
.cflms-tutor-course dd { font-weight: 800; }
.cflms-tutor-actions { border-top: 1px solid var(--cflms-border); display: flex; flex-wrap: wrap; gap: .8rem; margin-top: .8rem; padding-top: .8rem; }
.cflms-tutor-actions a { font-weight: 700; }
.cflms-tutor-dashboard table { background: #fff; font-size: .92rem; }
.cflms-tutor-dashboard tbody tr:nth-child(even) { background: #f7fafc; }
.cflms .screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
@media (max-width: 900px) {
    .cflms-grid, .cflms-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cflms-tutor-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cflms-tutor-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cflms-layout { grid-template-columns: 1fr; }
    .cflms-course-nav { position: static; }
}
@media (max-width: 600px) {
    .cflms { font-size: 1rem; margin: .5rem auto; }
    .cflms-catalogue > h2, .cflms-dashboard > header h1 { font-size: 1.65rem !important; }
    .cflms-dashboard > section > h2 { font-size: 1.4rem !important; }
    .cflms-catalogue .cflms-card h3, .cflms-dashboard .cflms-card h2 { font-size: 1.15rem !important; }
    .cflms-grid, .cflms-dashboard-grid { grid-template-columns: 1fr; }
    .cflms-tutor-summary, .cflms-tutor-course-grid { grid-template-columns: 1fr; }
    .cflms-tutor-header, .cflms-section-heading { flex-direction: column; }
    .cflms-course-header { align-items: flex-start; flex-direction: column; padding: 1rem; }
    .cflms-course-header img { max-width: 100%; }
    .cflms-form { padding: 1rem; }
    .cflms-button { width: 100%; }
    .cflms-pdf-viewer { height: 65vh; min-height: 440px; }
    .cflms-player { border-radius: .6rem; padding: .55rem; width: calc(100% - .25rem); }
    .cflms-activity { padding: 1rem; }
    .cflms-correction-list { padding: .7rem; }
    .cflms-correction-item { padding: .8rem; }
    .cflms-correction-legend, .cflms-review-question-heading { align-items: flex-start; flex-direction: column; }
    .cflms-activity-navigation { grid-template-columns: 1fr; }
    .cflms-coordinate-grid, .cflms-matching-grid label { grid-template-columns: 1fr; }
    .cflms-memory-grid { grid-template-columns: repeat(2, minmax(90px, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .cflms *, .cflms *::before, .cflms *::after { scroll-behavior: auto !important; transition: none !important; }
}
