.ProgressMapModule{--map-bg:var(--app-color-bg);--map-panel:var(--app-color-surface);--map-panel-2:var(--app-color-surface-raised);--map-line:var(--app-color-border);--map-ink:var(--app-color-text);--map-muted:var(--app-color-text-muted);--map-accent:var(--app-color-primary);display:flex;height:100%;min-height:620px;flex-direction:column;box-sizing:border-box;color:var(--map-ink);background:var(--app-page-background);font-family:Inter,"Segoe UI",sans-serif}
.ProgressMapModule *{box-sizing:border-box}.ProgressMapHeader{display:grid;grid-template-columns:1fr auto auto;gap:28px;align-items:center;padding:20px clamp(20px,3vw,42px);border-bottom:1px solid var(--map-line);background:color-mix(in srgb,var(--map-panel) 93%,transparent)}
.ProgressMapHeader>div:first-child p{color:var(--map-accent);font-size:9px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.ProgressMapHeader h1{margin-top:4px;font-size:24px;letter-spacing:-.035em}
.ProgressMapHeaderStats{display:flex;gap:22px}.ProgressMapHeaderStats span{color:var(--map-muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.ProgressMapHeaderStats strong{display:block;margin-bottom:3px;color:var(--map-ink);font-size:17px;letter-spacing:-.03em}
.ProgressMapTeachingLink{padding:10px 14px;border:1px solid rgba(109,148,255,.38);border-radius:10px;background:rgba(109,148,255,.1);color:#94afff;text-decoration:none;font-size:10px;font-weight:800}
.ProgressMapWorkspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:auto minmax(0,1fr);min-height:0;flex:1}
.ProgressMapToolbar{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:10px 16px;border-bottom:1px solid var(--map-line);background:var(--map-panel)}
.ProgressMapToolbar label{display:flex;align-items:center;gap:9px}.ProgressMapToolbar label span{color:var(--map-muted);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.ProgressMapToolbar select{min-width:180px;padding:8px 10px;border:1px solid var(--map-line);border-radius:9px;outline:none;background:var(--map-panel-2);color:var(--map-ink);font:inherit;font-size:10px}
.ProgressMapToolbar #ProgressMapIslandFilter{min-width:230px;max-width:340px}
.ProgressMapTemplateButton{padding:8px 10px;border:1px solid rgba(109,148,255,.38);border-radius:9px;background:rgba(109,148,255,.1);color:var(--map-ink);cursor:pointer;font:inherit;font-size:10px;font-weight:800}
.ProgressMapTemplateButton:disabled{opacity:.6;cursor:wait}
.ProgressMapUtilityButton,.ProgressMapOwnerButton{padding:8px 10px;border:1px solid var(--map-line);border-radius:9px;background:var(--map-panel-2);color:var(--map-ink);cursor:pointer;font:inherit;font-size:9px;font-weight:800}.ProgressMapOwnerButton{border-color:rgba(53,197,141,.42);background:rgba(53,197,141,.1);color:#74ddb4}.ProgressMapUtilityButton:disabled,.ProgressMapOwnerButton:disabled{opacity:.55;cursor:wait}
.ProgressMapControls{display:flex;align-items:center;gap:5px}.ProgressMapControls button{height:31px;min-width:31px;padding:0 10px;border:1px solid var(--map-line);border-radius:8px;background:var(--map-panel-2);color:var(--map-ink);cursor:pointer;font:inherit;font-size:11px}.ProgressMapControls span{min-width:45px;color:var(--map-muted);font-size:9px;text-align:center}
.ProgressMapLegend{display:flex;gap:13px;margin-left:auto}.ProgressMapLegend span{display:flex;align-items:center;gap:5px;color:var(--map-muted);font-size:8px}.ProgressMapLegend i{width:7px;height:7px;border-radius:50%;background:#6d94ff}.ProgressMapLegend .is-progress{background:#d79b45}.ProgressMapLegend .is-mastered{background:#35c58d;box-shadow:0 0 8px #35c58d}.ProgressMapLegend .is-locked{background:#435064}
.ProgressMapCanvasShell{position:relative;min-width:0;min-height:0;overflow:hidden;background-color:#050c15;background-image:radial-gradient(circle at 18% 24%,rgba(75,132,153,.12),transparent 31%),radial-gradient(circle at 78% 18%,rgba(115,86,164,.1),transparent 27%),radial-gradient(circle at 52% 78%,rgba(37,111,142,.11),transparent 35%),linear-gradient(135deg,rgba(255,255,255,.018) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.018) 75%);background-size:auto,auto,auto,26px 26px;box-shadow:inset 0 0 100px rgba(0,0,0,.72)}
.ProgressMapCanvasShell:after{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);background-size:64px 64px;content:"";opacity:.45;pointer-events:none}
#ProgressMapCanvas{display:block;width:100%;height:100%;outline:none;cursor:grab;touch-action:none}#ProgressMapCanvas:active{cursor:grabbing}#ProgressMapCanvas:focus-visible{box-shadow:inset 0 0 0 2px var(--map-accent)}
.ProgressMapCompass{position:absolute;top:18px;right:18px;display:grid;width:44px;height:44px;place-items:center;border:1px solid var(--map-line);border-radius:50%;color:var(--map-muted);font-size:8px;pointer-events:none}.ProgressMapCompass i{position:absolute;width:1px;height:14px;top:4px;background:linear-gradient(#e76f83,transparent)}.ProgressMapCompass span{margin-top:4px}
.ProgressMapHint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:7px 11px;border:1px solid var(--map-line);border-radius:99px;background:var(--app-color-surface-glass);color:var(--map-muted);font-size:8px;white-space:nowrap;pointer-events:none;backdrop-filter:blur(8px)}
.ProgressMapLoading,.ProgressMapEmpty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;background:color-mix(in srgb,var(--map-bg) 82%,transparent);z-index:3}
.ProgressMapLoading[hidden],.ProgressMapEmpty[hidden]{display:none}.ProgressMapLoading{gap:13px;color:var(--map-muted);font-size:10px}.ProgressMapLoading i{width:27px;height:27px;border:2px solid var(--map-line);border-top-color:var(--map-accent);border-radius:50%;animation:MapSpin .8s linear infinite}
@keyframes MapSpin{to{transform:rotate(360deg)}}.ProgressMapEmpty{padding:30px}.ProgressMapEmpty>span{color:#8b6fe8;font-size:50px}.ProgressMapEmpty h2{margin:13px 0 8px;font-size:25px}.ProgressMapEmpty p{max-width:480px;color:var(--map-muted);font-size:12px;line-height:1.7}.ProgressMapEmptyActions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:19px}.ProgressMapEmpty a,.ProgressMapEmpty button{padding:11px 15px;border:0;border-radius:10px;background:linear-gradient(135deg,#5b8cff,#8b6fe8);color:#fff;text-decoration:none;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.ProgressMapEmpty a{border:1px solid var(--map-line);background:var(--map-panel);color:var(--map-ink)}.ProgressMapEmpty button:disabled{opacity:.55;cursor:wait}
.ProgressMapDetail{min-height:0;overflow:auto;border-left:1px solid var(--map-line);background:var(--map-panel)}.ProgressMapDetailEmpty{display:grid;height:100%;min-height:220px;place-content:center;padding:30px;text-align:center;color:var(--map-muted)}.ProgressMapDetailEmpty span{color:var(--map-accent);font-size:34px}.ProgressMapDetailEmpty p{max-width:180px;margin-top:9px;font-size:10px;line-height:1.6}
.ProgressNodeDetail{padding:25px}.ProgressNodeDetailHeader{display:flex;justify-content:space-between;gap:12px}.ProgressNodeDetailType{color:var(--node-color);font-size:8px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.ProgressNodeDetail h2{margin:8px 0 5px;font-size:22px;line-height:1.08;letter-spacing:-.04em}.ProgressNodeDetailCourse{color:var(--map-muted);font-size:9px}.ProgressNodeOrb{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid color-mix(in srgb,var(--node-color) 65%,white);border-radius:50%;background:color-mix(in srgb,var(--node-color) 16%,transparent);box-shadow:0 0 24px color-mix(in srgb,var(--node-color) 40%,transparent);color:var(--node-color);font-size:13px}
.ProgressNodeAxis{display:flex;align-items:center;gap:9px;margin-top:17px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--node-color) 30%,transparent);border-radius:10px;background:color-mix(in srgb,var(--node-color) 8%,transparent);font-size:9px}.ProgressNodeAxis strong{color:var(--node-color)}.ProgressNodeAxis span{color:var(--map-muted)}
.ProgressNodeDescription{margin:22px 0;color:var(--map-muted);font-size:11px;line-height:1.75}.ProgressNodeMeta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:23px}.ProgressNodeMeta div{padding:12px;border:1px solid var(--map-line);border-radius:11px;background:var(--map-panel-2)}.ProgressNodeMeta span,.ProgressNodeMeta strong{display:block}.ProgressNodeMeta span{color:var(--map-muted);font-size:8px;text-transform:uppercase}.ProgressNodeMeta strong{margin-top:5px;font-size:12px}
.ProgressNodePrerequisites{margin-bottom:24px}.ProgressNodePrerequisites h3,.ProgressNodeMastery h3{margin-bottom:10px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.ProgressNodePrerequisites ul{display:grid;gap:7px;margin:0;padding:0;list-style:none}.ProgressNodePrerequisites li{display:flex;align-items:center;gap:8px;color:var(--map-muted);font-size:10px}.ProgressNodePrerequisites i{width:6px;height:6px;border-radius:50%;background:#435064}.ProgressNodePrerequisites li.is-complete i{background:#35c58d}
.ProgressNodeMasteryScale{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.ProgressNodeMasteryScale button{padding:9px 2px;border:1px solid var(--map-line);border-radius:8px;background:var(--map-panel-2);color:var(--map-muted);cursor:pointer;font:inherit;font-size:8px}.ProgressNodeMasteryScale button.is-active{border-color:var(--node-color);background:color-mix(in srgb,var(--node-color) 16%,transparent);color:var(--map-ink)}
.ProgressNodeLock{margin-top:15px;padding:11px;border:1px solid rgba(229,157,67,.25);border-radius:10px;background:rgba(229,157,67,.07);color:#d5a55f;font-size:9px;line-height:1.5}
@media(max-width:900px){.ProgressMapHeader{grid-template-columns:1fr auto}.ProgressMapHeaderStats{grid-column:1/-1;order:3}.ProgressMapWorkspace{grid-template-columns:1fr;grid-template-rows:auto minmax(460px,1fr) auto}.ProgressMapDetail{border-top:1px solid var(--map-line);border-left:0;max-height:380px}.ProgressMapToolbar{flex-wrap:wrap}.ProgressMapLegend{width:100%;margin-left:0}}
@media(max-width:600px){.ProgressMapModule{min-height:750px}.ProgressMapHeader{grid-template-columns:1fr;padding:16px}.ProgressMapTeachingLink{justify-self:start}.ProgressMapHeaderStats{gap:15px}.ProgressMapToolbar{gap:10px;min-width:0}.ProgressMapToolbar label{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr)}.ProgressMapToolbar select{width:100%;min-width:0;max-width:100%}.ProgressMapToolbar #ProgressMapIslandFilter{min-width:0;max-width:100%}.ProgressMapLegend{display:none}.ProgressMapHint{display:none}}
@media(prefers-reduced-motion:reduce){.ProgressMapLoading i{animation:none}}
.ProgressNodeLesson{margin:15px 0}.ProgressNodeLesson h3{margin-bottom:7px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.ProgressNodeLesson p,.ProgressNodeLesson li{color:var(--map-muted);font-size:10px;line-height:1.65;white-space:pre-wrap}.ProgressNodeLesson ul{display:grid;gap:5px;margin:0;padding-left:18px}
.ProgressNodeExerciseButton{width:100%;margin-top:17px;padding:12px;border:0;border-radius:10px;background:linear-gradient(135deg,#5b8cff,#8b6fe8);color:#fff;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.ProgressNodeExerciseButton:disabled{cursor:not-allowed;filter:saturate(.25);opacity:.45}
.ProgressNodePeerReview{margin:15px 0;padding:12px;border:1px solid rgba(91,199,223,.28);border-radius:10px;background:rgba(91,199,223,.07)}.ProgressNodePeerReview h3{margin-bottom:7px;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.ProgressNodePeerReview strong{color:#8de8f0;font-size:10px}.ProgressNodePeerReview span,.ProgressNodePeerReview p{color:var(--map-muted);font-size:9px}.ProgressNodePeerReview p{margin-top:7px;line-height:1.55;white-space:pre-wrap}
.ProgressNodeOrb svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ProgressOwnerValidation{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.ProgressOwnerValidation button{padding:9px;border:1px solid rgba(53,197,141,.38);border-radius:9px;background:rgba(53,197,141,.09);color:#74ddb4;cursor:pointer;font:inherit;font-size:8px;font-weight:800}.ProgressOwnerValidation button:disabled{opacity:.55;cursor:wait}


.ProgressMapUtilityButton[hidden]{display:none}
/* Auto-generated class selectors - do not edit this section. */
    .ProgressMapModule {
        .ProgressMapHeader {
            .ProgressMapHeaderStats {
            }
            .ProgressMapTeachingLink {
            }
        }
        .ProgressMapWorkspace {
            .ProgressMapToolbar {
                .ProgressMapUtilityButton {
                }
                .ProgressMapOwnerButton {
                }
                .ProgressMapControls {
                }
                .ProgressMapLegend {
                    .is-available {
                    }
                    .is-progress {
                    }
                    .is-mastered {
                    }
                    .is-locked {
                    }
                }
            }
            .ProgressMapCanvasShell {
                .ProgressMapCompass {
                }
                .ProgressMapHint {
                }
                .ProgressMapLoading {
                }
                .ProgressMapEmpty {
                    .ProgressMapEmptyActions {
                    }
                }
            }
            .ProgressMapDetail {
                .ProgressMapDetailEmpty {
                }
            }
        }
    }
    .ProgressMapDetailEmpty {
    }
    .ProgressNodeDetail {
        .ProgressNodeDetailHeader {
            .ProgressNodeDetailType {
            }
            .ProgressNodeDetailCourse {
            }
            .ProgressNodeOrb {
            }
        }
        .ProgressNodeExerciseButton {
        }
        .ProgressNodeAxis {
        }
        .ProgressNodeDescription {
        }
        .ProgressNodeLesson {
        }
        .ProgressNodePeerReview {
        }
        .ProgressNodeMeta {
        }
        .ProgressNodePrerequisites {
            .is-complete {
            }
        }
        .ProgressNodeLock {
        }
        .ProgressOwnerValidation {
        }
    }

/* Desktop */
@media (min-width: 1920px) {
    .ProgressMapModule {
        .ProgressMapHeader {
            .ProgressMapHeaderStats {
            }
            .ProgressMapTeachingLink {
            }
        }
        .ProgressMapWorkspace {
            .ProgressMapToolbar {
                .ProgressMapUtilityButton {
                }
                .ProgressMapOwnerButton {
                }
                .ProgressMapControls {
                }
                .ProgressMapLegend {
                    .is-available {
                    }
                    .is-progress {
                    }
                    .is-mastered {
                    }
                    .is-locked {
                    }
                }
            }
            .ProgressMapCanvasShell {
                .ProgressMapCompass {
                }
                .ProgressMapHint {
                }
                .ProgressMapLoading {
                }
                .ProgressMapEmpty {
                    .ProgressMapEmptyActions {
                    }
                }
            }
            .ProgressMapDetail {
                .ProgressMapDetailEmpty {
                }
            }
        }
    }
    .ProgressMapDetailEmpty {
    }
    .ProgressNodeDetail {
        .ProgressNodeDetailHeader {
            .ProgressNodeDetailType {
            }
            .ProgressNodeDetailCourse {
            }
            .ProgressNodeOrb {
            }
        }
        .ProgressNodeExerciseButton {
        }
        .ProgressNodeAxis {
        }
        .ProgressNodeDescription {
        }
        .ProgressNodeLesson {
        }
        .ProgressNodePeerReview {
        }
        .ProgressNodeMeta {
        }
        .ProgressNodePrerequisites {
            .is-complete {
            }
        }
        .ProgressNodeLock {
        }
        .ProgressOwnerValidation {
        }
    }
    }

/* Petits laptops */
@media (min-width: 1025px) and (max-width: 1919px) {
    .ProgressMapModule {
        .ProgressMapHeader {
            .ProgressMapHeaderStats {
            }
            .ProgressMapTeachingLink {
            }
        }
        .ProgressMapWorkspace {
            .ProgressMapToolbar {
                .ProgressMapUtilityButton {
                }
                .ProgressMapOwnerButton {
                }
                .ProgressMapControls {
                }
                .ProgressMapLegend {
                    .is-available {
                    }
                    .is-progress {
                    }
                    .is-mastered {
                    }
                    .is-locked {
                    }
                }
            }
            .ProgressMapCanvasShell {
                .ProgressMapCompass {
                }
                .ProgressMapHint {
                }
                .ProgressMapLoading {
                }
                .ProgressMapEmpty {
                    .ProgressMapEmptyActions {
                    }
                }
            }
            .ProgressMapDetail {
                .ProgressMapDetailEmpty {
                }
            }
        }
    }
    .ProgressMapDetailEmpty {
    }
    .ProgressNodeDetail {
        .ProgressNodeDetailHeader {
            .ProgressNodeDetailType {
            }
            .ProgressNodeDetailCourse {
            }
            .ProgressNodeOrb {
            }
        }
        .ProgressNodeExerciseButton {
        }
        .ProgressNodeAxis {
        }
        .ProgressNodeDescription {
        }
        .ProgressNodeLesson {
        }
        .ProgressNodePeerReview {
        }
        .ProgressNodeMeta {
        }
        .ProgressNodePrerequisites {
            .is-complete {
            }
        }
        .ProgressNodeLock {
        }
        .ProgressOwnerValidation {
        }
    }
    }

/* Tablettes */
@media (min-width: 768px) and (max-width: 1024px) {
    .ProgressMapModule {
        .ProgressMapHeader {
            .ProgressMapHeaderStats {
            }
            .ProgressMapTeachingLink {
            }
        }
        .ProgressMapWorkspace {
            .ProgressMapToolbar {
                .ProgressMapUtilityButton {
                }
                .ProgressMapOwnerButton {
                }
                .ProgressMapControls {
                }
                .ProgressMapLegend {
                    .is-available {
                    }
                    .is-progress {
                    }
                    .is-mastered {
                    }
                    .is-locked {
                    }
                }
            }
            .ProgressMapCanvasShell {
                .ProgressMapCompass {
                }
                .ProgressMapHint {
                }
                .ProgressMapLoading {
                }
                .ProgressMapEmpty {
                    .ProgressMapEmptyActions {
                    }
                }
            }
            .ProgressMapDetail {
                .ProgressMapDetailEmpty {
                }
            }
        }
    }
    .ProgressMapDetailEmpty {
    }
    .ProgressNodeDetail {
        .ProgressNodeDetailHeader {
            .ProgressNodeDetailType {
            }
            .ProgressNodeDetailCourse {
            }
            .ProgressNodeOrb {
            }
        }
        .ProgressNodeExerciseButton {
        }
        .ProgressNodeAxis {
        }
        .ProgressNodeDescription {
        }
        .ProgressNodeLesson {
        }
        .ProgressNodePeerReview {
        }
        .ProgressNodeMeta {
        }
        .ProgressNodePrerequisites {
            .is-complete {
            }
        }
        .ProgressNodeLock {
        }
        .ProgressOwnerValidation {
        }
    }
    }

/* Smartphones */
@media (max-width: 767px) {
    .ProgressMapModule {
        .ProgressMapHeader {
            .ProgressMapHeaderStats {
            }
            .ProgressMapTeachingLink {
            }
        }
        .ProgressMapWorkspace {
            .ProgressMapToolbar {
                .ProgressMapUtilityButton {
                }
                .ProgressMapOwnerButton {
                }
                .ProgressMapControls {
                }
                .ProgressMapLegend {
                    .is-available {
                    }
                    .is-progress {
                    }
                    .is-mastered {
                    }
                    .is-locked {
                    }
                }
            }
            .ProgressMapCanvasShell {
                .ProgressMapCompass {
                }
                .ProgressMapHint {
                }
                .ProgressMapLoading {
                }
                .ProgressMapEmpty {
                    .ProgressMapEmptyActions {
                    }
                }
            }
            .ProgressMapDetail {
                .ProgressMapDetailEmpty {
                }
            }
        }
    }
    .ProgressMapDetailEmpty {
    }
    .ProgressNodeDetail {
        .ProgressNodeDetailHeader {
            .ProgressNodeDetailType {
            }
            .ProgressNodeDetailCourse {
            }
            .ProgressNodeOrb {
            }
        }
        .ProgressNodeExerciseButton {
        }
        .ProgressNodeAxis {
        }
        .ProgressNodeDescription {
        }
        .ProgressNodeLesson {
        }
        .ProgressNodePeerReview {
        }
        .ProgressNodeMeta {
        }
        .ProgressNodePrerequisites {
            .is-complete {
            }
        }
        .ProgressNodeLock {
        }
        .ProgressOwnerValidation {
        }
    }
    }
/* End of auto-generated class selectors. */
