@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Source+Serif+4:ital,opsz@0,8..60;1,8..60&display=swap";:root{--bg-page: #f5f6fa;--bg-surface: #ffffff;--bg-surface-soft: #f1f3f9;--text-main: #1c1e27;--text-muted: #6b6f7d;--line: #e3e5ec;--ligne: #e3e5ec;--accent: #3457d5;--accent-strong: #24408f;--accent-soft: #e8edfc;--sec-a: #378ADD;--sec-a-soft: #e6f1fb;--sec-b: #1D9E75;--sec-b-soft: #e1f5ee;--sec-c: #D85A30;--sec-c-soft: #faece7;--success: #17a06d;--success-soft: #e3f7ee;--danger: #e0453f;--danger-soft: #fdeceb;--card-blue: #378ADD;--card-blue-text: #042C53;--card-teal: #1D9E75;--card-teal-text: #04342C;--card-coral: #D85A30;--card-coral-text: #4A1B0C;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-card: 0 1px 2px rgba(20,22,35,.04), 0 8px 24px rgba(20,22,35,.05);--font-ui: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-source: "Source Serif 4", Georgia, serif}*{box-sizing:border-box}body{background-color:var(--bg-page);color:var(--text-main);font-family:var(--font-ui);margin:0;padding:32px 20px 60px;-webkit-font-smoothing:antialiased}.wrap{max-width:860px;margin:0 auto}header{border-bottom:none;margin-bottom:28px;padding-bottom:0}.eyebrow{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);background:var(--accent-soft);padding:5px 12px;border-radius:999px;margin-bottom:12px}h1,h2,h3{color:var(--text-main);font-family:var(--font-ui);font-weight:800;letter-spacing:-.01em}header h1{font-size:1.85rem;margin:0 0 6px}header p{color:var(--text-muted);margin:0;font-size:.98rem}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.app-header-left{display:flex;align-items:center;gap:10px}.app-logo-badge{width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.app-header-left .title{font-weight:700;font-size:.98rem;margin:0;color:var(--text-main)}.app-header-left .subtitle{font-size:.78rem;color:var(--text-muted);margin:0}.student-pill{display:flex;align-items:center;gap:8px;background:var(--bg-surface-soft);border-radius:999px;padding:6px 14px 6px 6px}.student-pill .avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800}.student-pill span{font-size:.82rem;font-weight:600;color:var(--text-muted)}.progress-card{background:var(--bg-surface-soft);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:20px}.progress-card-top{display:flex;justify-content:space-between;font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:8px}.progress-track{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .4s ease}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.module-card{border:none;border-radius:var(--radius-md);padding:20px;text-align:left;cursor:pointer;color:#fff;font-family:var(--font-ui);transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column}.module-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #14162329}.module-card:active{transform:translateY(0) scale(.98)}.module-card--a{background:var(--card-blue)}.module-card--b{background:var(--card-teal)}.module-card--c{background:var(--card-coral)}.module-card-icon{width:40px;height:40px;border-radius:10px;background:#ffffffeb;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:14px;box-shadow:0 2px 6px #0000001f}.module-card-letter{font-family:var(--font-ui);font-weight:800;font-size:20px;line-height:1;color:var(--text-main)}.module-card-title{font-weight:700;font-size:1rem;margin:0 0 4px}.module-card-sub{font-size:.82rem;opacity:.92;margin:0 0 18px;line-height:1.4}.module-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:600;opacity:.92;margin-top:auto}.dossier{background:var(--bg-surface);padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:20px}.catalog-num{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px}.op-title{font-size:1.3rem;font-weight:800;margin:0 0 8px;color:var(--text-main)}.op-def{color:var(--text-muted);font-size:.95rem;line-height:1.6;margin:0 0 20px}.btn-generer{background-color:var(--accent);color:#fff;border:none;padding:13px 22px;cursor:pointer;font-family:var(--font-ui);font-weight:700;font-size:.95rem;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;box-shadow:0 2px 6px #3457d540}.btn-generer:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #3457d54d}.btn-generer:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-generer:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;text-decoration:none;font-family:var(--font-ui);font-weight:600;font-size:.9rem;padding:0;transition:opacity .15s ease}.link-btn:hover{opacity:.7;text-decoration:underline}.actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:16px}textarea,input{width:100%;padding:12px 14px;font-family:var(--font-ui);font-size:.95rem;color:var(--text-main);border:1.5px solid var(--line);border-radius:var(--radius-sm);margin-top:10px;margin-bottom:15px;box-sizing:border-box;background:var(--bg-surface-soft);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}textarea:focus,input:focus{outline:none;border-color:var(--accent);background:var(--bg-surface);box-shadow:0 0 0 4px var(--accent-soft)}textarea{min-height:140px;resize:vertical;line-height:1.6}.tabs{display:flex;gap:6px;margin-bottom:0;flex-wrap:wrap;align-items:flex-end}.tab{padding:10px 18px;cursor:pointer;background:var(--bg-surface-soft);border:1.5px solid var(--line);border-bottom:none;border-radius:10px 10px 0 0;font-family:var(--font-ui);font-weight:600;font-size:.85rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:8px;transition:all .15s ease;position:relative;top:1px}.tab:hover{color:var(--sec-b);background:var(--bg-surface)}.tab.active{background:var(--bg-surface);color:var(--sec-b);font-weight:700;top:0;box-shadow:0 -3px 8px #1416230d}.tab .num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#0000000f;font-size:.7rem;font-weight:800;color:inherit;flex-shrink:0}.tab.active .num{background:var(--sec-b-soft);color:var(--sec-b)}.tabs+.dossier{border-top-left-radius:0;margin-top:0}.niveau-select{display:flex;gap:8px;margin-bottom:22px}.niveau-btn{padding:8px 16px;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--bg-surface);color:var(--text-muted);font-family:var(--font-ui);font-weight:700;font-size:.85rem;cursor:pointer;transition:all .15s ease}.niveau-btn:hover{border-color:var(--accent);color:var(--accent)}.niveau-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f111a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.overlay-card{background:var(--bg-surface);padding:36px;border:none;border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000059;max-width:400px;width:100%;text-align:left}.overlay-card h2{margin-top:0;font-size:1.3rem}.overlay-card p{color:var(--text-muted);font-size:.92rem;line-height:1.5}.loading{display:flex;align-items:center;gap:10px;font-style:normal;font-weight:600;color:var(--text-muted);margin:18px 0;font-size:.92rem}.spinner{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.verdict{border:1.5px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--radius-md);padding:20px;margin-top:20px;background:var(--bg-surface-soft)}.stamp{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;padding:8px 16px;font-weight:800;font-size:.85rem;margin-bottom:14px;background:var(--danger-soft);color:var(--danger)}.stamp.reussi{background:var(--success-soft);color:var(--success)}.label{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px}.feedback-section{margin-top:14px;font-size:.9rem;line-height:1.6}.feedback-body{font-size:.92rem;line-height:1.65;color:var(--text-main)}.piece{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}.piece:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.tag{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:var(--accent-strong);background:var(--accent-soft);padding:4px 10px;border-radius:6px;margin-bottom:8px}.consigne-box{border:1.5px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);padding:16px 18px;margin:16px 0}.format-note{font-size:.82rem;color:var(--text-muted);font-weight:600;margin-top:8px}.empty-state{text-align:center;color:var(--text-muted);font-size:.95rem;padding:30px 10px}.piece p,.consigne-box p{font-family:var(--font-source);font-size:1rem;line-height:1.7}.consigne-list{margin:4px 0 0;padding-left:22px;font-family:var(--font-source);font-size:1rem;line-height:1.7}.consigne-list li{margin-bottom:4px}.situer-temps-wrap{margin-bottom:20px}.doc-chip{width:48px;height:48px;border-radius:50%;background:var(--card-teal);color:#fff;border:3px solid transparent;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-weight:800;font-size:1.05rem;cursor:pointer;box-shadow:0 2px 6px #1d9e7559;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.doc-chip:active{transform:scale(.94)}.doc-chip.selected{border-color:var(--card-coral);box-shadow:0 0 0 4px var(--sec-c-soft),0 4px 10px #d85a3059;transform:scale(1.08)}.selection-hint{background:var(--sec-c-soft);color:var(--card-coral-text);font-family:var(--font-ui);font-weight:700;font-size:.85rem;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:14px}.frise-slot{cursor:pointer;touch-action:manipulation;transition:border-color .15s ease,background .15s ease}.frise-slot.droppable{border-color:var(--card-coral);background:var(--sec-c-soft)}.zone{cursor:pointer;touch-action:manipulation;transition:border-color .15s ease,background .15s ease}.zone.droppable{border-color:var(--card-coral);background:var(--sec-c-soft)}.frise-slot-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.frise-slot{flex:1;min-width:90px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;border:2px dashed var(--line);border-radius:var(--radius-md);background:var(--bg-surface-soft);min-height:96px;justify-content:center}.frise-slot-rank{font-family:var(--font-ui);font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--text-muted)}.frise-slot-empty{color:var(--text-muted);font-size:1.2rem}.doc-pool{display:flex;gap:12px;flex-wrap:wrap;padding:16px;border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--bg-surface);min-height:68px;align-items:center;margin-bottom:20px}.doc-pool-empty{color:var(--text-muted);font-size:.88rem;font-style:italic}.reference-evenement{border:1.5px solid var(--line);border-left:4px solid var(--card-teal);border-radius:var(--radius-sm);background:var(--sec-b-soft);padding:14px 16px;margin-bottom:16px}.reference-evenement p{font-family:var(--font-source);font-weight:700;font-size:1.02rem;margin:4px 0 0}.avant-apres-zones{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.zone{border:2px dashed var(--line);border-radius:var(--radius-md);background:var(--bg-surface-soft);padding:14px;min-height:130px}.zone-label{font-family:var(--font-ui);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px}.zone-chips{display:flex;gap:10px;flex-wrap:wrap}.temps-docs-list{margin-top:8px}.carte-wrap{border:1.5px solid var(--line);border-radius:var(--radius-md);background:var(--bg-surface-soft);padding:16px;margin:16px 0 20px}.carte-era-label{font-family:var(--font-ui);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px}.carte-svg{width:100%;height:auto;max-height:260px;display:block}.carte-image-container{position:relative;width:100%;border-radius:var(--radius-sm);overflow:hidden;background:#fff}.carte-image{display:block;width:100%;height:auto}.carte-pin{position:absolute;width:22px;height:22px;margin-left:-11px;margin-top:-11px;border-radius:50%;background:var(--card-teal);border:3px solid white;box-shadow:0 0 0 2px var(--card-teal),0 2px 6px #00000059;cursor:pointer;touch-action:manipulation;padding:0;transition:transform .12s ease,background .12s ease}.carte-pin:active{transform:scale(.9)}.carte-pin.selected{background:var(--card-coral);box-shadow:0 0 0 2px var(--card-coral),0 0 0 6px var(--sec-c-soft),0 2px 8px #0006;width:26px;height:26px;margin-left:-13px;margin-top:-13px}.carte-legende{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.carte-legende-item{font-family:var(--font-ui);font-size:.78rem;font-weight:600;color:var(--text-muted);background:var(--bg-surface);border:1.5px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;transition:all .12s ease}.carte-legende-item:hover{border-color:var(--card-teal);color:var(--card-teal)}.carte-legende-item.selected{background:var(--card-coral);border-color:var(--card-coral);color:#fff}.carte-choix-annees{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.carte-comparaison-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.carte-comparaison-item{border:3px solid var(--line);border-radius:var(--radius-md);padding:0;overflow:hidden;cursor:pointer;background:none;transition:border-color .15s ease,transform .12s ease}.carte-comparaison-item:active{transform:scale(.98)}.carte-comparaison-item.selected{border-color:var(--card-coral);box-shadow:0 0 0 3px var(--sec-c-soft)}.carte-comparaison-item .carte-image{display:block;width:100%;height:auto}@media (max-width: 640px){.carte-comparaison-grid{grid-template-columns:1fr}}.carte-reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:18px}.carte-reference-item{border:1.5px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface)}.carte-reference-item .carte-image{display:block;width:100%;height:auto}.carte-reference-label{font-family:var(--font-ui);font-size:.78rem;font-weight:700;text-align:center;padding:8px;color:var(--text-muted);background:var(--bg-surface-soft)}@media (max-width: 640px){.carte-reference-grid{grid-template-columns:1fr}}@media (max-width: 640px){.avant-apres-zones{grid-template-columns:1fr}}.marqueurs-note{font-family:var(--font-ui);font-size:.85rem;font-style:italic;color:var(--text-muted);margin:10px 0 0;line-height:1.5}.marqueurs-note strong{font-style:normal;color:var(--text-main)}.bouton-lecture{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:5px 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--bg-surface);color:var(--text-muted);font-family:var(--font-ui);font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s ease}.bouton-lecture:hover{border-color:var(--accent);color:var(--accent)}.bouton-lecture.active{background:var(--accent);border-color:var(--accent);color:#fff}@media (max-width: 640px){body{padding:20px 14px 40px}.dossier{padding:20px;border-radius:var(--radius-md)}header h1{font-size:1.5rem}.tabs{gap:6px}.tab{padding:8px 12px;font-size:.8rem}}
