/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}@font-face{font-family:Dosis;font-style:normal;font-weight:200;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7Ml2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJabMl2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJN7Ml2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:500;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJBbMl2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ6bQl2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJ0LQl2xMB.ttf) format("truetype")}@font-face{font-family:Dosis;font-style:normal;font-weight:800;src:url(https://fonts.gstatic.com/s/dosis/v34/HhyJU5sn9vOmLxNkIwRSjTVNWLEJt7Ql2xMB.ttf) format("truetype")}@font-face{font-family:RubisTrial;src:url(/a3d4a62acb5687f1b140.otf)}@font-face{font-family:SfProDisplayBold;src:url(/b1f4d2c69fa808ebca12.OTF)}@font-face{font-family:SfProDisplayRegular;src:url(/d1f5e6e16dd4f75c3950.OTF)}@font-face{font-family:SfProDisplayMedium;src:url(/b85d841dacb040b84951.OTF)}@font-face{font-family:SfProTextSemidBold;src:url(/e16deadd9dc50f769f31.otf)}@font-face{font-family:SfProTextRegular;src:url(/ba21d41dbb34b2e04643.otf)}body,html{font-family:Dosis;font-weight:300;scroll-behavior:smooth}.header{padding-top:10%;position:relative;text-align:right;width:100%}.header .logo{align-items:center;color:inherit;display:flex;font-size:48px;font-weight:300;justify-content:center;left:50%;line-height:1;padding:20px;position:absolute;text-decoration:none;top:0;transform:translateX(-50%)}.header .logo img{display:block}.header .logo .full-text{display:block;font-size:1.2em;font-weight:400;margin-left:10px}.header .logo .short-text{display:none}@media (max-width:768px){.header .logo{border-right-width:2px;font-size:24px;padding:15px}.header .logo .full-text{display:none}.header .logo .short-text{display:block}.header .logo .header :not(.logo){display:none}.link{display:block;font-size:18px;margin:10px 0;text-align:center}.dropdown-content{min-width:100%;position:static}.dropdown-content a{padding:10px 0}}.sidebar{background-color:rgba(231,144,87,.1)}.toc{font-family:SfProTextSemidBold;line-height:2;padding:1em;position:fixed;right:1;top:8%;width:16em}.toc .sidebar-title{color:#a5a5a5;font-family:SfProTextRegular;font-size:1.5em;font-weight:500;margin-bottom:1em}.toc ul{list-style:none;margin:0;padding:0}.toc ul ul{padding-left:2em}.toc li a{color:#111;display:inline-block;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1)}.toc li a:hover{color:#e79057}.toc li.visible>a{color:#111;transform:translate(5px)}.toc #chapter{font-weight:700}.toc .toc-marker{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.toc .toc-marker path{transition:all .3s cubic-bezier(.23,1,.32,1)}.toc .level1{font-weight:700}.toc .level2{font-size:.8em;font-weight:400}.toc .level3{font-size:.6em}.contents{color:#444;font-family:SfProDisplayRegular;font-size:1em;font-style:normal;font-weight:400;line-height:1.6em;max-width:100vw;padding:1em 10% 1em 1em;text-align:justify}.contents .chapter-navigation{align-items:center;margin-bottom:1em}.contents .chapter-navigation .chapter-prev{align-items:center;display:flex}.contents .chapter-navigation .chapter-prev .icon{margin-right:.5em}.contents .chapter-navigation .chapter-next{align-items:center;display:flex}.contents .chapter-navigation .chapter-next .icon{margin-left:.5em}.contents .chapter-navigation a{align-items:center;color:#e79057;display:flex;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1)}.contents .chapter-navigation a:hover{color:#1785a5}.contents img{max-width:100%}.contents pre{padding-bottom:0}.contents .chapter-navigation{display:flex;justify-content:space-between;margin:2em 0}.contents .chapter-navigation.bottom{border-top:1px solid #eee;margin-top:3em;padding-top:1.5em}.contents .code-block{max-width:100%;overflow:auto;padding-bottom:0;white-space:pre}.contents .code-block code{background-color:#f9f9f9;display:block;margin:0;padding:0}.contents .code-inline{background-color:#f9f9f9;border-radius:4px;padding:3px 5px}.contents h1,.contents h2,.contents h3{font-family:SfProDisplayRegular}.contents a{color:#e79057}@media screen and (max-width:1200px){.toc{display:none;position:static;width:auto}.header .logo{border-right-width:2px;font-size:24px;padding:15px}.header .logo .full-text{display:none}.header .logo .short-text{display:block}.left-menu,.title{display:none}}@media screen and (max-width:768px){.content{font-size:1.6em}.toc{display:none}.header .logo{border-right-width:2px;font-size:24px;padding:15px}.header .logo .full-text{display:none}.header .logo .short-text{display:block}.header .logo :not(.logo){display:none}}@media screen and (max-width:480px){.content{font-size:1.6em}}.exercer{border-left:4px solid #000}.exercer:nth-child(2n){background-color:#f9f9f9}.exercer:nth-child(odd){background-color:#333}html{scroll-behavior:smooth}hr{background-color:#333;border:0;display:block;height:2px;margin:50px 0 -42px;width:100%}hr+h2{background-color:#fff;border:2px solid #333;color:#333;display:inline-block;font-family:SfProTextSemidBold;font-weight:500;left:50%;letter-spacing:.32em;margin:1em;padding:5px 9px;position:relative;text-align:center;text-transform:uppercase;transform:translateX(-50%)}hr+h2:first-letter{margin-left:.32em}hr+h2{border-width:2px 0}hr+h2:after,hr+h2:before{background:#333;bottom:0;content:"";display:block;position:absolute;top:0;width:2px}hr+h2:before{left:0}hr+h2:after{right:0}table{border-collapse:collapse;margin:0 auto;max-width:900px;width:100%}th{background-color:#f2f2f2;font-weight:700}td,th{border:1px solid #ddd;padding:5px}td{text-align:center}tr:hover{background-color:#ddd}tr:nth-child(2n){background-color:#f2f2f2}tr:nth-child(odd){background-color:#fff}.legende{font-size:.9em;margin-bottom:20px}.legende,figure{text-align:center}figure img{height:auto;max-width:100%}.commentaires{background-color:#f9f9f9;border:1px solid #ccc;border-radius:5px;margin:10px 0;padding:10px}.commentaires,.commentaires:before{font-weight:700}.rohan{border-bottom-color:#006400;color:#006400}.rohan:before{content:"Rohan : "}.xavier{border-bottom-color:darkred;color:darkred}.xavier:before{content:"Xavier : "}.christophe{border-bottom-color:#9400d3;color:#9400d3}.christophe:before{content:"Christophe : "}.title{color:#e79057;font-family:SfProDisplayBold;font-size:40px;font-weight:400;left:4%;line-height:48px;position:fixed;top:2%}.title a{color:#e79057;text-decoration:none}.title img{height:60px;max-width:100%;vertical-align:middle}.left-menu{line-height:2;margin-left:20px;padding:1em;position:fixed;top:8%;width:16em}.left-menu .search-bar{background:#f2f2f2;border-radius:4px;margin-bottom:40px}.left-menu .search-bar input{background:#f2f2f2;border:none;border-radius:4px;color:#444;font-family:SfProTextRegular;font-size:14px;line-height:16px;padding:10px;width:100%}.left-menu .search-bar input:focus{outline:none}.left-menu .item-seul{color:#444;display:block;font-family:SfProTextSemidBold;font-size:14px;line-height:20px}.left-menu .item-partie{color:#a5a5a5;font-family:SfProTextRegular;font-size:13px;font-style:normal;font-weight:500;line-height:15px}.left-menu .item-chapitre{font-family:SfProTextRegular;font-size:14px;font-weight:500;line-height:16px}.left-menu ul{list-style-type:none;margin:10;padding:10}.left-menu ul li:before{color:#a5a5a5;content:"\2022";display:inline-block;font-weight:700;margin-left:-1em;width:1em}.left-menu a{color:#444;text-decoration:none}.left-menu a:hover{color:#e79057;text-decoration:underline}.grid-container{display:grid;grid-template-areas:"left-menu contents contents contents sidebar";grid-template-columns:1.5fr 1fr 3fr .5fr 1fr;grid-template-rows:auto;height:100vh;width:100%}.left-menu{grid-area:left-menu}.contents{grid-area:contents}.sidebar{grid-area:sidebar}@media screen and (max-width:1024px){#content{padding-left:10%}.grid-container{grid-template-areas:"sidebar main main main main main" "menu main main main main main"}}@media screen and (max-width:768px){#content{padding-left:5%}.grid-container{grid-template-areas:"main main main main main main" "sidebar sidebar sidebar sidebar sidebar sidebar" "menu menu menu menu menu menu"}}.menu-section{margin-bottom:1em}.item-partie{background:none;border:none;color:#a5a5a5;cursor:pointer;font-family:SfProTextRegular;font-size:13px;font-weight:500;outline:none;padding:.4em 0;position:relative;text-align:left;transition:color .2s ease;width:100%}.item-partie:before{content:""}.item-contenu{list-style:none;margin:0;max-height:1000px;overflow:hidden;padding-left:1em;padding-top:.5em;transition:max-height .3s ease,padding .3s ease}.menu-section:not(.open) .item-contenu{max-height:0;padding-top:0}.toc-float-btn{align-items:center;background:#e79057;border:1px solid #e79057;border-radius:999px;bottom:24px;box-shadow:0 8px 18px rgba(0,0,0,.12);color:#fff;cursor:pointer;display:inline-flex;font-family:SF Pro Text,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;font-weight:500;gap:8px;letter-spacing:.02em;padding:8px 14px;position:fixed;right:24px;transition:background-color .18s ease,border-color .18s ease,transform .12s ease,box-shadow .18s ease;z-index:40}.toc-float-btn:hover{background:#f2a97a;border-color:#f2a97a;box-shadow:0 10px 22px rgba(0,0,0,.16);transform:translateY(-1px)}.toc-float-btn:active{box-shadow:0 4px 10px rgba(0,0,0,.12);transform:translateY(0)}.toc-float-icon{align-items:center;background:hsla(0,0%,100%,.16);border-radius:999px;display:inline-flex;font-size:13px;height:22px;justify-content:center;width:22px}@media (max-width:640px){.toc-float-btn{bottom:16px;padding:8px 10px;right:16px}.toc-float-label{display:none}}.toc-panel{bottom:80px;left:50%;max-height:74vh;max-width:calc(100% - 32px);opacity:0;pointer-events:none;position:fixed;transform:translate(-50%,8px);transition:opacity .18s ease,transform .18s ease;width:360px;z-index:39}.toc-panel.open{opacity:1;pointer-events:auto;transform:translate(-50%)}.toc-panel-inner{background:#fff;border:1px solid #e3e8ef;border-radius:18px;box-shadow:inset 3px 0 0 #333,0 16px 36px rgba(15,23,42,.14);padding:14px 16px 12px}.toc-panel-title{color:#1f2937;font-size:14px;font-weight:700;letter-spacing:.04em}.toc-panel-subtitle{color:#6b7280;font-size:12px;margin-top:2px}.toc-panel-content{border-top:1px solid #e5e7eb;margin-top:8px;max-height:calc(74vh - 48px);overflow-y:auto;padding-top:6px}.toc-panel-content::-webkit-scrollbar{width:6px}.toc-panel-content::-webkit-scrollbar-thumb{background:#c9d3dd;border-radius:999px}.toc-panel-content a{border-radius:6px;color:#374151;display:block;font-size:13px;padding:6px 0;text-decoration:none;transition:background-color .15s ease,color .15s ease,padding-left .15s ease}.toc-panel-content a.lvl1{color:#111827;font-size:14px;font-weight:600;margin-top:6px}.toc-panel-content a.lvl2{color:#4b5563;font-size:13px;padding-left:12px}.toc-panel-content a.lvl3{color:#6b7280;font-size:12px;padding-left:20px}.toc-panel-content a:hover{background:#f3f4f6;color:#1785a5;padding-left:8px}.toc-panel-content a.is-active{background:#e8f4f8;border-left:3px solid #1785a5;color:#1785a5;font-weight:600;padding-left:10px}@media (max-width:768px){.toc-panel{bottom:80px;left:50%;max-width:calc(100% - 24px);transform:translate(-50%,8px);width:100%}.toc-panel.open{transform:translate(-50%)}}:root{--color-blue:#1785a5;--color-light-blue:#04b6ed;--color-orange:#e79057;--color-green:#2d6a4f;--color-red:#b23a48;--color-gray:#f9f9f9;--color-black:#222;--color-white:#fff;--bg-code:#f5f7fa}.contents h1{color:var(--color-black);font-size:2rem;font-weight:700;margin:2em 0 1em;padding-bottom:.4em;position:relative}.contents h1:before{color:rgba(0,0,0,.45);content:"CHAPITRE";font-size:.72rem;font-weight:600;left:0;letter-spacing:.14em;position:absolute;text-transform:uppercase;top:-1.6em}.contents h1:after{background:linear-gradient(90deg,rgba(231,144,87,.95),rgba(23,133,165,.6));border-radius:999px;bottom:0;content:"";height:3px;left:0;position:absolute;width:130px}.intro{background:var(--color-white);border-left:4px solid rgba(0,0,0,.08);border-radius:10px;margin:2em 0;padding:1.5em;position:relative}.intro:before{color:rgba(0,0,0,.45);content:"INTRODUCTION";display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.14em;margin-bottom:.6em;text-transform:uppercase}.intro-title{color:var(--color-black);font-size:1.05rem;font-weight:600;margin-bottom:.2em;margin-top:.2em}.activite,.astuce,.attention,.bilan,.definition,.exemple,.exercice,.exercices,.pause,.piege,.piège,.plan,.retenir,.transition{background:var(--color-white);border-left:4px solid rgba(0,0,0,.08);border-radius:10px;margin:1.8em 0;padding:1.3em 1.4em;transition:box-shadow .2s ease,border-color .2s ease}.activite:hover,.astuce:hover,.attention:hover,.bilan:hover,.definition:hover,.exemple:hover,.exercice:hover,.exercices:hover,.pause:hover,.piège:hover,.plan:hover,.retenir:hover{border-left-color:rgba(0,0,0,.18);box-shadow:0 1px 6px rgba(0,0,0,.06)}.activite-title,.astuce-title,.attention-title,.bilan-title,.definition-title,.exemple-title,.exercices-title,.pause-title,.piege-title,.piège-title,.plan-title,.retenir-title,.transition-title{color:rgba(0,0,0,.75);font-size:.95rem;font-weight:600;letter-spacing:.1em;margin-bottom:.4em;text-transform:uppercase}.definition,.plan,.retenir{border-left-color:rgba(231,144,87,.75)}.activite,.exemple,.pause{border-left-color:rgba(45,106,79,.65)}.exercices{border-left-color:rgba(231,144,87,.55)}.astuce{border-left-color:rgba(231,144,87,.85)}.attention,.piege,.piège{border-left-color:rgba(178,58,72,.75)}.activite p,.astuce p,.attention p,.bilan p,.definition p,.exemple p,.exercice p,.exercices p,.pause p,.plan p,.retenir p,.transition p{color:rgba(0,0,0,.85);margin:.4em 0}.exercice{border-left-color:rgba(23,133,165,.7)}.toggle-solution{background:transparent;border:1px solid rgba(231,144,87,.9);border-radius:999px;color:var(--color-orange);cursor:pointer;padding:.45em 1.1em;transition:all .15s ease}.toggle-solution:hover{background:rgba(231,144,87,.1)}.exercice-solution{background:var(--bg-code);border-left:3px solid var(--color-orange);border-radius:6px;display:none;margin-top:.7em;padding:1em}code,pre{background:var(--bg-code);border-radius:4px;padding:.2em .4em}.chapter-header{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:14px;display:grid;gap:12px;grid-template-columns:minmax(0,1.4fr) minmax(0,2fr) minmax(0,1.6fr);margin:0 0 18px;padding:10px 14px}.chapter-header-left{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.chapter-pill-module{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;color:#6b7280;font-size:11px;letter-spacing:.16em;padding:4px 10px;text-transform:uppercase}.chapter-pill-progress{background:#f3f4f6;border-radius:999px;color:#4b5563;font-size:11px;padding:3px 8px}.chapter-header-center{min-width:0;text-align:center}.chapter-title-main{color:#111827;font-size:20px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-header-right{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.chapter-nav-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#374151;display:inline-flex;font-size:12px;gap:6px;padding:6px 10px;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,transform .08s ease}.chapter-nav-btn:hover{background:#f3f4f6;border-color:#d1d5db;transform:translateY(-.5px)}.chapter-nav-btn-next{background:#1785a5;border-color:#1785a5;color:#fff}.chapter-nav-btn-next:hover{background:#0f627c;border-color:#0f627c}.chapter-nav-arrow{font-size:14px}.chapter-nav-label{white-space:nowrap}@media (max-width:900px){.chapter-header{align-items:flex-start;grid-template-columns:minmax(0,1fr)}.chapter-header-center{text-align:left}.chapter-header-right{justify-content:flex-start}}.chapter-footer-nav{bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;right:0;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease;z-index:40}.chapter-footer-nav.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.chapter-footer-inner{align-items:center;background:hsla(0,0%,100%,.96);border:1px solid #e5e7eb;border-radius:999px;box-shadow:0 10px 30px rgba(15,23,42,.12);display:flex;font-size:13px;gap:10px;justify-content:space-between;margin:0 auto 10px;max-width:1100px;padding:8px 12px}.chapter-footer-left{align-items:center;color:#4b5563;display:flex;gap:4px;white-space:nowrap}.chapter-footer-module{color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.chapter-footer-sep{color:#9ca3af}.chapter-footer-progress{font-variant-numeric:tabular-nums}.chapter-footer-center{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chapter-footer-btn{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;color:#374151;cursor:pointer;display:inline-flex;font-size:12px;gap:4px;padding:5px 10px;transition:background-color .15s ease,border-color .15s ease,transform .08s ease}.chapter-footer-btn:hover{background:#eef2ff;border-color:#c7d2fe;transform:translateY(-.5px)}.chapter-footer-btn i{font-size:12px}.chapter-footer-right{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.chapter-footer-link{align-items:center;border:1px solid transparent;border-radius:999px;color:#374151;display:inline-flex;font-size:12px;gap:4px;padding:4px 8px;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,transform .08s ease}.chapter-footer-link:hover{background:#f3f4f6;border-color:#e5e7eb;transform:translateY(-.5px)}.chapter-footer-arrow{font-size:13px}@media (max-width:768px){.chapter-footer-inner{flex-wrap:wrap;margin:0 8px 8px;padding:6px 10px}.chapter-footer-left{flex-basis:100%}.chapter-footer-left,.chapter-footer-right{justify-content:center}}.exo-dashboard{display:flex;flex-direction:column;gap:10px;margin:10px 0 14px}.exo-stats-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.exo-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.03);padding:10px 12px}.exo-stat-label{color:#9ca3af;font-size:11px;letter-spacing:.08em;margin-bottom:4px;text-transform:uppercase}.exo-stat-value{color:#111827;font-size:16px;font-weight:600}.exo-stat-sub{color:#6b7280;font-size:11px;margin-top:2px}.exo-reco{background:#f9fafb;border:1px dashed #d1d5db;border-radius:14px;padding:8px 10px}.exo-reco-title{color:#111827;font-size:12px;font-weight:600;margin-bottom:4px}.exo-reco-list{display:flex;flex-wrap:wrap;font-size:11px;gap:4px}.exo-reco-pill{background:#fff;border:1px solid #e5e7eb;border-radius:999px;cursor:pointer;padding:3px 8px;transition:background .15s ease,border-color .15s ease}.exo-reco-pill:hover{background:#eef7fb;border-color:#d1e7f4}.exo-parcours{display:flex;flex-wrap:wrap;gap:6px}.exo-parcours-title{color:#9ca3af;font-size:11px;letter-spacing:.08em;margin-bottom:2px;text-transform:uppercase}.exo-parcours-btn{background:#f9f9f9;border:1px solid #e5e7eb;border-radius:999px;color:#374151;cursor:pointer;font-size:11px;padding:5px 10px;transition:background .15s ease,border-color .15s ease,transform .08s ease}.exo-parcours-btn:hover{background:#eef2ff;border-color:#c7d2fe;transform:translateY(-.5px)}.exo-parcours-btn.active{background:#1785a5;border-color:#1785a5;color:#fff}.exo-card{border-radius:18px;transition:box-shadow .18s ease,transform .12s ease,border-color .18s ease,background .18s ease}.exo-card:hover{border-color:#d1e7f4;box-shadow:0 4px 12px rgba(0,0,0,.04);transform:translateY(-1px)}.exo-header-bar{background:linear-gradient(90deg,#1785a5,#04b6ed);border-radius:18px 18px 0 0;height:4px;left:0;position:absolute;right:0;top:0}.exo-header{align-items:center;padding-top:4px}.exo-header-main{min-width:0}.exo-title{color:#111827;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exo-header-subtitle{font-size:11px;margin-top:2px}.exo-header-right{gap:6px}.exo-status-pill{align-items:center;color:#4b5563;display:inline-flex;font-size:11px;gap:4px}.exo-status-pill--success{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.exo-level-pill{background:#f0fdf4;border:1px solid #90ee90;color:#006400;font-weight:600;padding:2px 8px}.exo-toggle{align-items:center;display:inline-flex;font-size:12px;gap:4px;padding:6px 10px;transition:background .15s ease,border-color .15s ease,transform .08s ease}.exo-toggle:after{content:"▾";font-size:10px;transition:transform .18s ease}.exo-toggle[aria-expanded=true]:after{transform:rotate(-180deg)}.exo-toggle:hover{background:#eef7fb;border-color:#d1e7f4;transform:translateY(-.5px)}.ets-exo-meta{margin:4px 0 8px}.ets-badge{background:#f5f7fa;color:#333;display:inline-block;font-size:11px;font-weight:500;letter-spacing:.02em;padding:3px 10px;transition:background .15s ease,border-color .15s ease,transform .08s ease}.ets-badge:hover{background:#eef7fb;border-color:#d1e7f4;transform:translateY(-.5px)}.ets-badge-cat{background:#ecf8ff;border-color:#bfe3f5;color:#026e8f}.ets-badge-level{background:#f0fdf4;border-color:#90ee90;color:#006400}.ets-badge-notion{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.ets-badge-tags{background:#f3f4f6;border-color:#d1d5db;color:#4b5563}.ets-badge-points{color:#111827;font-weight:600}.ets-badge-new{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.ets-badge-required{background:#fef3c7;border-color:#fde68a;color:#92400e}.exo-body{transition:max-height .35s ease,opacity .25s ease}.exo-body.collapsed{max-height:0;opacity:0}.exo-body.expanded{opacity:1}.exo-objectif-block{background:#fff;border-left:4px solid rgba(23,133,165,.25);border-radius:6px;box-shadow:0 0 0 transparent;margin:1.2em 0;padding:1.2em 1.4em;transition:box-shadow .2s ease,border-color .2s ease}.exo-objectif-block:hover{border-left-color:rgba(23,133,165,.35);box-shadow:0 1px 4px rgba(0,0,0,.05)}.exo-objectif-block{font-size:.95rem;line-height:1.55;margin:24px 0 16px;padding:18px 14px 12px}.exo-objectif-block:before{background:#fff;border-radius:4px;color:#6b7280;font-size:.75rem;left:.8em;letter-spacing:.06em;padding:0 6px;top:-.65em}.exo-objectif-block li,.exo-objectif-block p,.exo-objectif-block ul{color:rgba(0,0,0,.85)}.exo-objectif-block ul{margin-top:.4em;padding-left:1.2em}.exo-context-toggle{color:#1785a5;cursor:pointer;font-size:.75rem;margin-top:6px;text-decoration:underline;transition:color .15s ease}.exo-context-toggle:hover{color:#0f5e73}.exo-example-block{background:#111827;border:1px solid #1f2937;border-radius:12px;color:#e5e7eb;font-family:ui-monospace,Consolas,monospace;overflow:hidden}.exo-example-header{background:#020617;border-bottom:1px solid #1f2937;padding:6px 8px}.exo-example-title{color:#e5e7eb;font-weight:500}.exo-example-copy-btn{background:#111827;border:1px solid #4b5563;border-radius:999px;color:#e5e7eb;cursor:pointer;font-size:11px;padding:2px 8px}.exo-example-copy-btn:hover{background:#1f2937}.exo-example-body{padding:8px 10px;white-space:pre-wrap}.exo-extra-block{margin-bottom:12px}.exo-help-bubble{margin-top:4px}.exo-hints-timeline{list-style:none;margin:4px 0 2px;padding-left:0}.exo-hint-step{font-size:12px;padding-left:18px;position:relative}.exo-hint-step:before{background:#e5e7eb;border-radius:999px;content:"";height:6px;left:6px;position:absolute;top:6px;width:6px}.exo-hint-step-active:before{background:#1785a5}.exo-editor-wrapper{margin-top:4px;position:relative}.exo-editor-toolbar{color:#6b7280;font-size:10px;gap:6px;position:absolute;right:8px;top:6px}.exo-editor-lang-pill{background:#f9fafb;border:1px solid #d1d5db;border-radius:999px;padding:1px 6px}.exo-card .CodeMirror{border:1px solid #e5e7eb;border-radius:10px}.exo-card .CodeMirror-lines{padding:8px 10px}.exo-card .CodeMirror-activeline-background{background:rgba(23,133,165,.05)}.ets-exo-editor{background:#f5f7fa;border:1px solid #e6e6e9;border-radius:10px;box-sizing:border-box;font-family:ui-monospace,Consolas,monospace;font-size:14px;min-height:80px;padding:10px;resize:vertical;width:100%}.exo-actions{margin:10px 0}.exo-btn{border-radius:10px;color:#111827;font-size:13px;padding:8px 12px;transition:background .15s ease,border-color .15s ease,transform .08s ease}.exo-btn:hover{background:#eef7fb;border-color:#d1e7f4;transform:translateY(-.5px)}.exo-btn-primary{border-color:#1785a5}.exo-btn-primary:hover{background:#0f6e8a;border-color:#0f6e8a}.exo-btn-success{background:#16a34a;border-color:#16a34a;color:#fff}.exo-btn-danger{background:#fff;border-color:#dc2626;color:#b91c1c}.exo-output{margin-top:8px;padding:10px}#ets-output-label{font-size:12px}.exo-output-stdout{background:#fafafa;border:1px dashed #e6e6e9}.exo-output-report{background:#fbfbff;border:1px dashed #e6e6e9}.exo-output-error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.exo-score{color:#555;font-size:12px;margin-top:8px}.exo-global-progress-label{font-variant-numeric:tabular-nums}.exo-help-animated{animation:exoHintFade .18s ease-out}@keyframes exoHintFade{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.exo-card-debug{background:#fff7f7;border-color:#fecaca}.exo-card-debug .exo-header-bar{background:linear-gradient(90deg,#b91c1c,#f97316)}.exo-card--analysis{background:#f5fafe;border-left:6px solid #1785a5}.exo-analysis-layout{gap:16px;margin:14px 0}.exo-analysis-block{border:1px solid #d8e8ef;color:#0f3b47;font-size:14px;padding:12px 14px}.exo-analysis-label{color:#0a5773;letter-spacing:.03em;text-transform:uppercase}.exo-analysis-code{border:1px dashed #c7dfe9}.CodeMirror-linenumbers{background:#f0f4f7;border-right:1px solid #d6dde3;color:#6b7280;font-size:12px;padding-right:8px}.CodeMirror-gutters{background:#f0f4f7;border-right:none!important}.exo-analysis-code span:before{font-family:ui-monospace,Consolas,monospace;width:24px}.exo-analysis-layout{display:grid;gap:18px;grid-template-columns:1fr 1fr;margin:18px 0}@media (max-width:900px){.exo-analysis-layout{grid-template-columns:1fr}}.exo-analysis-block{background:#fff;border:1px solid #d0e2ec;border-radius:12px;padding:14px}.exo-analysis-label{color:#0c5066;font-size:13px;font-weight:600;margin-bottom:6px}.exo-analysis-code{background:#f0f7fa;border:1px dashed #9ec5d7;border-radius:8px;counter-reset:line;font-family:ui-monospace,Consolas,monospace;font-size:13px;padding:10px;white-space:pre-wrap}.exo-analysis-code span{counter-increment:line;display:block}.exo-analysis-code span:before{color:#6b7280;content:counter(line);display:inline-block;font-size:12px;margin-right:8px;text-align:right;width:28px}.exo-analysis-layout,.exo-refactor-layout{gap:22px;margin:16px 0 20px}.exo-analysis-block,.exo-refactor-original{box-shadow:0 0 0 transparent;padding:14px 16px;transition:box-shadow .15s ease}.exo-analysis-block:hover,.exo-refactor-original:hover{box-shadow:0 2px 10px rgba(0,0,0,.06)}.exo-analysis-label,.exo-refactor-label{color:#1785a5;font-size:13px;letter-spacing:.03em}.exo-analysis-code,.exo-refactor-code{line-height:1.48;padding:12px}.exo-editor-wrapper,.exo-refactor-editor-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;padding:0}.exo-editor-wrapper:hover,.exo-refactor-editor-wrapper:hover{box-shadow:0 2px 10px rgba(0,0,0,.06)}.exo-editor{background:#fff;font-family:Consolas,monospace;min-height:120px;padding:12px}.CodeMirror{border-radius:0 0 12px 12px;font-size:14px;height:auto!important;padding:8px 0}.exo-refactor-code{border-left:3px solid #e79057}.exo-analysis-code{border-left:3px solid #1785a5}@media (max-width:600px){.exo-analysis-code,.exo-refactor-code{font-size:12px}}.exo-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 6px rgba(0,0,0,.02);margin:16px 0;padding:14px 16px 16px;position:relative}.exo-header-bar{display:none}.exo-card:before{background:linear-gradient(90deg,#1785a5,#04b6ed);border-radius:16px 16px 0 0;content:"";display:block;height:3px;margin:-14px -16px 10px}.exo-header{align-items:baseline;color:#444;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px}.exo-header-main{display:flex;flex-direction:column;gap:2px}.exo-title{color:#333;font-size:13px;font-weight:600;letter-spacing:.03em}.exo-header-subtitle{color:#6b7280;font-size:12px}.exo-header-right{align-items:center;display:flex;gap:8px}.exo-status-pill{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;color:#6b7280;font-size:12px;font-style:italic;padding:2px 8px}.exo-status-pill--success{background:#ecfdf3;border-color:#90ee90;color:#006400}.exo-level-pill{background:#f9fafb;padding:2px 7px}.exo-level-pill,.exo-toggle{border:1px solid #e5e7eb;border-radius:999px;color:#4b5563;font-size:11px}.exo-toggle{background:#f9f9f9;cursor:pointer;font-family:inherit;padding:4px 9px;transition:background .15s ease,border-color .15s ease}.exo-toggle:hover{background:#f3f4f6;border-color:#d1d5db}.ets-exo-meta{display:flex;flex-wrap:wrap;font-size:11px;gap:6px;margin-bottom:8px}.ets-badge{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;color:#4b5563;padding:2px 8px}.ets-badge-new{background:#e0f2fe;border-color:#04b6ed;color:#0369a1}.ets-badge-required{background:#fff7ed;border-color:#e79057;color:#9a3412}.ets-badge-cat{border-color:#d1d5db}.ets-badge-notion{background:#e8f4f8;border-color:#1785a5;color:#155e75}.ets-badge-tags{border-style:dashed}.ets-badge-points{background:#f3f4f6;border-color:#d1d5db}.exo-body{margin-top:8px;overflow:hidden;transition:max-height .18s ease}.exo-objectif-block{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;color:#1f2933;font-size:13px;margin:8px 0 12px;padding:10px 12px 10px 32px;position:relative}.exo-objectif-block:before{color:#9ca3af;content:"OBJECTIF";font-size:11px;font-weight:700;left:10px;letter-spacing:.08em;margin-bottom:2px;position:absolute;text-transform:uppercase;top:8px}.exo-extra-block{background:#fff;border:1px dashed #e5e7eb;border-radius:10px;margin:6px 0 10px;padding:8px 10px}.exo-help-bubble{background:#fffdf5;border:1px solid #f0e0aa;border-radius:10px;font-size:12px;margin-top:6px;padding:8px 10px}.exo-help-bubble-inner{display:flex;flex-direction:column;gap:4px}.exo-help-bubble-header{font-size:11px;font-weight:600}.exo-hints-timeline{font-size:12px;margin:4px 0;padding-left:16px}.exo-hint-step{color:#4b5563;margin:2px 0}.exo-hint-step-active{color:#155e9c;font-weight:600}.exo-help-icon{align-items:center;background:#f9fafb;border:1px solid #ddd;border-radius:999px;cursor:pointer;display:inline-flex;font-size:13px;height:26px;justify-content:center;transition:background .15s ease,border-color .15s ease,transform .08s ease;width:26px}.exo-help-icon:hover{background:#f3f4f6;border-color:#d1d5db;transform:translateY(-1px)}.exo-example-block{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;font-size:13px;margin-top:6px;padding:8px 10px}.exo-example-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.exo-example-title{color:#374151;font-size:12px;font-weight:600}.exo-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}.exo-btn{background:#f9f9f9;border:1px solid #e5e7eb;border-radius:999px;color:#4b5563;cursor:pointer;font-family:inherit;font-size:12px;padding:5px 10px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .08s ease}.exo-btn:hover{background:#f3f4f6;border-color:#d1d5db}.exo-btn-primary{background:#1785a5;border:1px solid #1785a5;border-radius:999px;color:#fff;cursor:pointer;font-size:13px;padding:7px 14px}.exo-btn-primary:hover{background:#04b6ed;box-shadow:0 2px 6px rgba(23,133,165,.25)}.exo-btn-success{background:#ecfdf3;border:1px solid #90ee90;border-radius:999px;color:#006400;cursor:pointer;font-size:13px;padding:7px 14px}.exo-btn-success:hover{background:#d1fae5;box-shadow:0 2px 6px rgba(22,163,74,.2)}.exo-output{background:#f9f9f9;border-radius:10px;border-top:1px solid #e5e7eb;color:#111827;font-family:ui-monospace,Consolas,monospace;font-size:13px;margin-top:4px;padding:8px 10px;white-space:pre-wrap}.exo-output-stdout{border-left:3px solid #1785a5}.exo-output-report{border-left:3px solid #e5e7eb}.exo-editor-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;padding:0}.exo-editor-toolbar{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#4b5563;display:flex;font-size:12px;justify-content:space-between;padding:8px 12px}.exo-editor-lang-pill{background:#1785a5;border-radius:6px;color:#fff;font-size:11px;letter-spacing:.04em;padding:2px 7px;text-transform:uppercase}.exo-editor{border:none;box-sizing:border-box;min-height:80px;outline:none!important;padding:10px 12px;resize:vertical;width:100%}.exo-card .CodeMirror,.exo-editor{background:#f5f7fa;border-radius:0 0 12px 12px;font-family:ui-monospace,Consolas,monospace;font-size:14px}.exo-card .CodeMirror{border:none;border-top:1px solid #e5e7eb}.exo-card .CodeMirror-lines{padding:6px 8px}.exo-card .CodeMirror{background-image:linear-gradient(90deg,transparent 0,transparent 80ch,rgba(23,133,165,.05) 0)}.CodeMirror .CodeMirror-linenumber{color:#d0d0d0}.CodeMirror-gutters{border-right:1px solid #eee}.exo-analysis-layout,.exo-refactor-layout{display:grid;gap:18px;grid-template-columns:1fr 1fr;margin:12px 0 14px}@media (max-width:850px){.exo-analysis-layout,.exo-refactor-layout{grid-template-columns:1fr}}.exo-analysis-block,.exo-refactor-original{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:12px 14px}.exo-analysis-label,.exo-refactor-label{font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:6px;text-transform:uppercase}.exo-analysis-label{color:#1785a5}.exo-refactor-label{color:#e79057}.exo-analysis-code,.exo-refactor-code{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.5;max-height:420px;overflow-y:auto;padding:10px;white-space:pre-wrap}.exo-analysis-code::-webkit-scrollbar,.exo-refactor-code::-webkit-scrollbar{width:6px}.exo-analysis-code::-webkit-scrollbar-thumb,.exo-refactor-code::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:999px}