:root{--nav:#111827;--blue:#635bff;--blue2:#4f46e5;--ink:#172033;--muted:#657083;--line:#e5e7eb;--soft:#f7f7fb;--green:#14804a;--green-light:#a7ddc2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{color:var(--ink);background:var(--soft);margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif}h1,h2,h3{letter-spacing:-.3px}h1{margin:0 0 8px;font-size:32px}h2{margin:0 0 14px;font-size:20px}p{color:var(--muted);line-height:1.55}a{color:var(--blue2);text-decoration:none}a:hover{text-decoration:underline}.topbar{border-bottom:1px solid var(--line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:64px;padding:0 26px;display:flex;position:sticky;top:0}.brand{color:var(--ink);font-size:18px;font-weight:850}.brand b{color:var(--blue)}.topbar-actions{color:var(--muted);align-items:center;gap:16px;font-size:14px;display:flex}.page{max-width:960px;margin:0 auto;padding:40px 24px 80px}.admin-shell{grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 64px);display:grid}.admin-sidebar{border-right:1px solid var(--line);background:#fafafa;height:calc(100vh - 64px);padding:24px 14px;position:sticky;top:64px}.admin-sidebar .nav-item{margin-bottom:2px}.admin-content{min-width:0;padding:32px 40px 80px}@media (width<=800px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}}.btn{cursor:pointer;color:var(--ink);background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 16px;font-size:15px;font-weight:700;display:inline-block}.btn:hover{text-decoration:none}.btn:disabled{cursor:default;opacity:.6}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.complete{background:var(--green);color:#fff;border-color:var(--green)}.btn.danger{color:#fff;background:#dc2626;border-color:#dc2626}.cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:15px;margin:20px 0;display:grid}.info-card{border:1px solid var(--line);color:inherit;background:#fff;border-radius:13px;padding:18px;display:block}.info-card:hover{border-color:var(--blue);text-decoration:none}.info-card h3{margin:0 0 6px;font-size:16px}.info-card p{margin:0;font-size:14px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin:20px 0 8px;display:grid}.stat-tile{border:1px solid var(--line);background:#fff;border-radius:13px;padding:18px 20px}.stat-tile .value{color:var(--ink);letter-spacing:-1px;font-size:30px;font-weight:800;line-height:1.1}.stat-tile .label{color:var(--muted);margin-top:4px;font-size:13px}.hero-reprise{border:1px solid var(--line);border-left:5px solid var(--blue);background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding:26px 28px;display:flex}.hero-reprise .meta{color:var(--muted);margin:4px 0 16px;font-size:14px}.hero-reprise .progress-col{min-width:240px}.hero-reprise .progress-col .small{color:var(--muted);margin-bottom:6px;font-size:13px}.overall{margin:4px 0 20px}.overall .small{color:var(--muted);margin-bottom:6px;font-size:13px}.bar{background:#e5e7eb;border-radius:99px;height:8px;position:relative;overflow:hidden}.bar span{background:var(--green);height:100%;display:block}.bar span,.bar .bar-moyenne{position:absolute;top:0;left:0}.bar .bar-moyenne{background:var(--green-light)}.part-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 9px;font-size:12px;font-weight:800;line-height:1.4}.nav-item{text-align:left;color:#374151;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:flex-start;gap:10px;width:100%;padding:10px;font-size:14px;line-height:1.35;display:flex}.nav-item:hover{background:#f0efff;text-decoration:none}.nav-item.active{color:#3730a3;background:#eeecff;font-weight:750}.dot{text-align:center;background:#fff;border:1.5px solid #cbd5e1;border-radius:50%;flex:none;width:20px;height:20px;font-size:11px;line-height:17px}.done .dot{background:var(--green);border-color:var(--green);color:#fff}.nav-item.locked{color:#9ca3af;cursor:not-allowed}.nav-item.locked .dot{background:#f3f4f6;border-color:#e5e7eb}.locked-hint{color:#b0b6c0;margin-top:2px;font-size:12px;display:block}.blocs-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:18px;margin:24px 0;display:grid}.bloc-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px}.bloc-card-header{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.bloc-card-header h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0;font-size:14px;font-weight:800}.bloc-card-pct{color:var(--muted);flex:none;font-size:13px;font-weight:700}.cours-row{color:#374151;cursor:pointer;border-radius:9px;margin:0 -10px;padding:10px;display:block}.cours-row:hover{background:#f0efff;text-decoration:none}.cours-row.locked{color:#9ca3af;cursor:not-allowed}.cours-row-top{align-items:flex-start;gap:10px;display:flex}.cours-row-title{flex:1;font-size:14px;line-height:1.35}.cours-row-bottom{align-items:center;gap:10px;margin:8px 0 0 30px;display:flex}.cours-row-bottom .bar{flex:1}.cours-row-pct{color:var(--muted);text-align:right;min-width:32px;font-size:12px}.callout,.warning{border-radius:10px;margin:20px 0;padding:16px 20px;font-size:15px;line-height:1.55}.callout{border-left:5px solid var(--blue);background:#f4f3ff}.warning{background:#fff7ed;border-left:5px solid #f97316}form{flex-direction:column;gap:14px;max-width:360px;display:flex}label{color:var(--muted);flex-direction:column;gap:5px;font-size:14px;font-weight:600;display:flex}input,select{border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:15px;font-weight:400}input:focus,select:focus{outline:2px solid var(--blue);outline-offset:1px}.checkbox-row{color:var(--ink);cursor:pointer;flex-direction:row;align-items:center;gap:8px;font-weight:400}.checkbox-row input{width:auto}table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;overflow:hidden}th,td{border-bottom:1px solid var(--line);text-align:left;padding:12px 14px;font-size:14px}th{background:var(--soft);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.table-sticky-cols{border-collapse:separate;border-spacing:0;border-radius:0;overflow:visible}.col-sticky{z-index:1;border-right:2px solid var(--line);background:#fff;position:sticky;left:0}thead .col-sticky{background:var(--soft);z-index:2}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.row-actions .btn{padding:6px 12px;font-size:13px}.badge{border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.green{color:var(--green);background:#ecfdf3}.badge.gray{color:#6b7280;background:#f3f4f6}.cours-frame{background:#fff;border:0;flex:1;width:100%;min-height:0}.lesson-shell{grid-template-columns:300px minmax(0,1fr);height:calc(100vh - 64px);display:grid}.lesson-sidebar{border-right:1px solid var(--line);background:#fafafa;padding:20px 14px;overflow:auto}.lesson-main{flex-direction:column;min-width:0;display:flex}.lesson-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:relative}.lesson-progress-line{background:var(--blue);height:3px;transition:width .2s;position:absolute;bottom:-1px;left:0}.lesson-header h1{margin:0;font-size:20px}.lesson-footer{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:10px;padding:14px 24px;display:flex}@media (width<=800px){.lesson-shell{grid-template-columns:1fr;height:auto}.lesson-sidebar{border-right:0;border-bottom:1px solid var(--line)}.cours-frame{height:70vh}}.page-row{border:1px solid var(--line);cursor:grab;background:#fff;border-radius:9px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.page-row.dragging{opacity:.4}.page-row .drag-handle{color:#9ca3af;flex:none;font-size:18px;line-height:1}.page-row .page-titre{flex:1;min-width:0}.page-row input{padding:6px 8px;font-size:14px}
