/* ROULEO — Formation pratique UI v29 */
:root{--pr-blue:#0b5dcc;--pr-navy:#071b41;--pr-green:#087a4b;--pr-red:#d92735;--pr-yellow:#f4c400;--pr-ink:#14213d;--pr-muted:#66758c;--pr-line:#e3e9f2;--pr-bg:#f5f8fc;--pr-shadow:0 14px 38px rgba(18,42,76,.09);--pr-shadow-lg:0 24px 60px rgba(11,45,92,.14)}
.practical-page{width:min(1240px,100%);margin:0 auto;padding:1.1rem 0 3.5rem}.practical-page *{box-sizing:border-box}
.practical-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2.35rem;border-radius:28px;margin-bottom:1.25rem;color:#fff;background:linear-gradient(135deg,#06183a 0%,#0b4fa8 57%,#08784d 100%);box-shadow:var(--pr-shadow-lg)}
.practical-hero:before{content:"";position:absolute;inset:auto -70px -150px auto;width:430px;height:430px;border:70px solid rgba(244,196,0,.11);border-radius:50%;z-index:-1}.practical-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,#000,transparent 78%);z-index:-1}
.practical-kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:900;letter-spacing:.14em;color:#dcecff}.practical-kicker.dark{color:var(--pr-blue)}
.practical-hero h1{font-family:Sora,sans-serif;font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.08;margin:.55rem 0 .8rem;max-width:760px}.practical-hero p{max-width:720px;color:rgba(255,255,255,.82);font-size:1rem;line-height:1.65;margin:0}.practical-stat{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.09);font-size:.78rem}.practical-hero-art{position:relative;width:150px;height:150px;display:grid;place-items:center;border-radius:34px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.2);font-size:4rem;flex:none;box-shadow:inset 0 0 40px rgba(255,255,255,.04)}.practical-hero-art span{position:absolute;bottom:14px;font-size:.6rem;font-weight:900;letter-spacing:.2em;color:#ffd84a}
.practical-toolbar{padding:.85rem;background:#fff;border:1px solid var(--pr-line);border-radius:20px;box-shadow:var(--pr-shadow);margin-bottom:1.45rem}.practical-toolbar .form-control,.practical-toolbar .form-select{min-height:46px;border-color:#dce4ef}.practical-toolbar .btn{min-height:46px;border-radius:12px;font-weight:800}
.practical-card{height:100%;overflow:hidden;background:#fff;border:1px solid var(--pr-line);border-radius:22px;box-shadow:var(--pr-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.practical-card:hover{transform:translateY(-4px);box-shadow:var(--pr-shadow-lg);border-color:#c9d8ed}.practical-card-body{padding:1.05rem 1.1rem 1.15rem}
.practical-thumb{position:relative;width:100%;aspect-ratio:16/9;min-height:0;background:linear-gradient(135deg,#071a3d,#155eb9);overflow:hidden}.practical-thumb .ratio{height:100%;background:#06152d}.practical-thumb iframe{display:block;width:100%;height:100%;border:0}.practical-thumb-icon{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:3.6rem;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.22),transparent 48%),linear-gradient(135deg,#08204b,#0d65c9)}.practical-thumb.is-upload .practical-thumb-icon:after{content:"";position:absolute;inset:16px;border:1px solid rgba(255,255,255,.16);border-radius:18px}.practical-thumb.is-link .practical-thumb-icon{background:linear-gradient(135deg,#4d238f,#1764d8)}.thumb-label{position:absolute;left:13px;bottom:12px;padding:.34rem .55rem;border-radius:999px;background:rgba(4,18,42,.72);backdrop-filter:blur(8px);color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.1em;z-index:2}
.practical-source{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .58rem;border-radius:999px;font-size:.68rem;font-weight:900;white-space:nowrap}.practical-source.national{background:#eaf3ff;color:#075ac7}.practical-source.school{background:#e9f8f0;color:#087848}.practical-card h2{font-family:Sora,sans-serif;font-size:1.04rem;line-height:1.3;margin:.8rem 0 .42rem;color:var(--pr-ink)}.practical-card p{font-size:.84rem;color:var(--pr-muted);line-height:1.55;min-height:2.5rem;margin-bottom:.65rem}.practical-tags{display:flex;flex-wrap:wrap;gap:.35rem}.practical-tags span{font-size:.65rem;color:#53627a;background:#f5f7fa;border:1px solid #e5eaf1;border-radius:8px;padding:.3rem .45rem}.practical-card .btn{border-radius:11px;font-weight:800}.practical-empty{padding:4rem 1rem;text-align:center;background:#fff;border:1px dashed #c8d5e6;border-radius:24px;box-shadow:var(--pr-shadow)}.practical-empty i{font-size:2.8rem;color:#6f8cac}.practical-empty h2{font-family:Sora,sans-serif;font-size:1.2rem;margin:.8rem 0 .3rem;color:var(--pr-ink)}.practical-empty p{color:var(--pr-muted)}
.practical-publisher{border:1px solid var(--pr-line)!important;border-radius:24px!important;box-shadow:var(--pr-shadow)!important;overflow:hidden}.practical-publisher-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#eaf3ff,#dcecff);color:var(--pr-blue);font-size:1.45rem;flex:none}.practical-publisher h2{font-family:Sora,sans-serif;font-size:1.28rem;color:var(--pr-ink)}.practical-source-box{padding:1rem;border:1px solid #dce5f0;border-radius:18px;background:#f8fbff}.source-tabs{display:flex;gap:.55rem;margin-bottom:1rem}.source-tab{border:1px solid #d8e1ee;background:#fff;color:#52627a;padding:.68rem .85rem;border-radius:12px;font-weight:800;font-size:.8rem;cursor:pointer}.source-tab.active{background:var(--pr-blue);color:#fff;border-color:var(--pr-blue);box-shadow:0 7px 18px rgba(11,93,204,.2)}.practical-publisher-side{padding:1.5rem;border-radius:24px;background:linear-gradient(155deg,#fff9e7 0%,#f3f8ff 65%,#edf9f4 100%);border:1px solid #e1e8f1;box-shadow:var(--pr-shadow)}.practical-side-icon{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:#fff0b7;color:#9a6900;font-size:1.3rem}.practical-publisher-side h3{font-family:Sora,sans-serif;font-size:1.2rem;line-height:1.25;margin:1rem 0 .5rem;color:var(--pr-ink)}.practical-publisher-side p{color:#637189;line-height:1.6}.practical-side-list{display:grid;gap:.8rem;margin-top:1.2rem}.practical-side-list div{display:flex;gap:.65rem;align-items:flex-start;font-size:.84rem;color:#43526b}.practical-side-list i{color:var(--pr-green)}.practical-admin-badge{display:inline-flex;gap:.45rem;align-items:center;padding:.6rem .8rem;border:1px solid #dce6f3;border-radius:999px;background:#fff;color:#52627a;font-size:.75rem;font-weight:800;box-shadow:0 6px 16px rgba(30,60,100,.05)}
.practical-table{border:1px solid var(--pr-line);border-radius:18px;overflow:hidden;box-shadow:var(--pr-shadow);background:#fff}.practical-table thead th{background:#f6f9fd;color:#52627a;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--pr-line);white-space:nowrap}.practical-table tbody td{border-color:#edf1f5;color:#33435c;font-size:.83rem}.practical-back{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;color:#245b9f;font-weight:800;font-size:.85rem;margin-bottom:.5rem}.practical-back:hover{color:#0b5dcc}
.practical-watch-page{width:min(1240px,100%);margin:0 auto;padding:1rem 0 3.5rem}.practical-player{border:1px solid #dce5f0!important;border-radius:24px!important;background:#06152d;box-shadow:var(--pr-shadow-lg)!important;overflow:hidden}.practical-player .ratio{width:100%;aspect-ratio:16/9;min-height:0}.practical-player iframe{display:block;width:100%;height:100%;border:0}.practical-video-player{display:block;width:100%;height:auto;aspect-ratio:16/9;max-height:680px;object-fit:contain;background:#000}.tiktok-wrap{width:100%;min-height:0;display:flex;justify-content:center;align-items:center;background:#f6f8fb;padding:1.25rem;overflow:hidden}.tiktok-wrap blockquote{margin:0!important;max-width:605px!important;width:min(100%,605px)!important;min-width:0!important}.external-video-placeholder{min-height:420px;display:grid;place-items:center;text-align:center;padding:3rem;color:#fff;background:linear-gradient(135deg,#071a3d,#1460d5)}.external-video-placeholder i{font-size:3rem}.practical-watch-info{position:sticky;top:1rem;padding:1.55rem;border:1px solid var(--pr-line);border-radius:24px;background:#fff;box-shadow:var(--pr-shadow)}.practical-watch-info h1{font-family:Sora,sans-serif;font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.15;margin:1rem 0 .7rem;color:var(--pr-ink)}.practical-watch-info p{color:#627089;line-height:1.7}.practical-watch-meta{display:grid;gap:.65rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #edf0f4}.practical-watch-meta span{font-size:.8rem;color:#53617a}.practical-watch-meta i{display:inline-block;width:18px;color:var(--pr-blue)}
.practical-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}.practical-section-head h2{font-family:Sora,sans-serif;color:var(--pr-ink);font-size:1.35rem;margin:.2rem 0 0}.practical-page .alert{border-radius:14px}.practical-page .form-label{color:#33435c;font-size:.82rem}.practical-page .form-control,.practical-page .form-select{border-radius:11px;border-color:#d9e2ed}.practical-page .form-control:focus,.practical-page .form-select:focus{border-color:#78a9e8;box-shadow:0 0 0 .2rem rgba(11,93,204,.1)}
@media(max-width:991px){.practical-hero{padding:1.65rem}.practical-hero-art{width:120px;height:120px;font-size:3.3rem}.practical-watch-info{position:static}.practical-watch-page{padding-left:0;padding-right:0}}
@media(max-width:767px){.practical-page{padding:.65rem 0 2.5rem}.practical-hero{padding:1.25rem;border-radius:21px;display:block}.practical-hero h1{font-size:1.8rem}.practical-hero p{font-size:.9rem}.practical-hero-art{display:none}.practical-toolbar{padding:.7rem;border-radius:16px}.practical-thumb{aspect-ratio:16/9}.practical-card{border-radius:18px}.practical-card-body{padding:.9rem}.source-tabs{flex-direction:column}.source-tab{width:100%;text-align:left}.practical-publisher-side{padding:1.15rem}.practical-section-head{align-items:flex-start;flex-direction:column}.practical-watch-page{padding:.65rem 0 2.5rem}.practical-player,.practical-watch-info{border-radius:18px!important}.practical-video-player{aspect-ratio:16/9;max-height:none}.tiktok-wrap{padding:.5rem;min-height:0}.tiktok-wrap blockquote{transform-origin:top center}.external-video-placeholder{min-height:300px;padding:2rem 1rem}.practical-table{border-radius:14px}.practical-table-wrap{overflow-x:auto}}

/* ROULEO FINAL — pratique / production polish */
.practical-page{--p-blue:#0b3a82;--p-deep:#082b5f;--p-green:#138a55;--p-yellow:#f2c94c;--p-red:#d94a4a;color:#10213d}.practical-hero{position:relative;overflow:hidden;border-radius:28px;padding:38px 42px;background:linear-gradient(135deg,#082b5f 0%,#0b3a82 58%,#146b66 100%);color:#fff;display:flex;justify-content:space-between;gap:28px;align-items:center;box-shadow:0 22px 50px rgba(8,43,95,.16)}.practical-hero:after{content:"";position:absolute;inset:auto -80px -110px auto;width:330px;height:330px;border-radius:50%;background:rgba(242,201,76,.12)}.practical-hero.compact{padding:30px 36px}.practical-hero-copy{position:relative;z-index:1;max-width:820px}.practical-hero h1{font-size:clamp(2rem,4vw,3.35rem);font-weight:800;letter-spacing:-.04em;margin:.35rem 0 .7rem}.practical-hero p{font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.84);max-width:760px}.practical-kicker{display:inline-flex;align-items:center;gap:.45rem;font-size:.76rem;font-weight:800;letter-spacing:.12em}.practical-kicker.dark{color:var(--p-blue)}.practical-hero-actions{display:flex;gap:.65rem;flex-wrap:wrap}.practical-hero-progress{position:relative;z-index:1;min-width:210px;padding:18px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);border-radius:20px;display:flex;align-items:center;gap:14px}.practical-progress-ring{--pct:0;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#f2c94c calc(var(--pct)*1%),rgba(255,255,255,.18) 0);position:relative}.practical-progress-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:#0b3a82}.practical-progress-ring span{position:relative;font-weight:800}.practical-hero-progress small{display:block;color:rgba(255,255,255,.72);margin-top:4px}.practical-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 24px}.practical-stat{background:#fff;border:1px solid #e4eaf2;border-radius:18px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 22px rgba(20,44,82,.05)}.practical-stat>i{font-size:1.55rem;color:var(--p-blue)}.practical-stat strong{display:block;font-size:1.05rem}.practical-stat span{display:block;color:#6c7890;font-size:.82rem;margin-top:2px}.practical-toolbar{background:#fff;border:1px solid #e4eaf2;border-radius:18px;padding:12px;margin-bottom:22px;box-shadow:0 8px 22px rgba(20,44,82,.05)}.practical-search{display:grid;grid-template-columns:1fr 300px auto;gap:10px;align-items:center}.practical-search input,.practical-search select{border:0;background:#f5f7fb;min-height:48px;border-radius:12px;padding:0 14px;outline:0}.practical-search input:focus,.practical-search select:focus{box-shadow:0 0 0 3px rgba(11,58,130,.1)}.practical-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.practical-video-card{background:#fff;border:1px solid #e4eaf2;border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(20,44,82,.06);transition:.2s ease}.practical-video-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(20,44,82,.1)}.practical-card-media{aspect-ratio:16/9;background:linear-gradient(135deg,#092d62,#0e5c70);position:relative;display:grid;place-items:center}.practical-media-placeholder{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;color:#fff;font-size:2rem;border:1px solid rgba(255,255,255,.24)}.practical-card-source,.practical-completed{position:absolute;top:12px;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:800}.practical-card-source{left:12px;background:#fff;color:#123}.practical-card-source.school{background:#e8f7ef;color:#087242}.practical-card-source.national{background:#eaf1ff;color:#174d9a}.practical-completed{right:12px;background:#dff7e9;color:#087242}.practical-card-body{padding:18px}.practical-card-meta{display:flex;gap:8px;flex-wrap:wrap;color:#607089;font-size:.72rem;font-weight:700}.practical-card-meta span{background:#f4f6fa;border-radius:999px;padding:5px 8px}.practical-card-body h3{font-size:1.1rem;font-weight:800;margin:12px 0 7px}.practical-card-body p{color:#69758b;font-size:.88rem;min-height:42px}.practical-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.76rem;color:#68758b}.practical-mini-progress{height:4px;background:#edf1f6;border-radius:999px;margin-top:14px;overflow:hidden}.practical-mini-progress span{display:block;height:100%;background:linear-gradient(90deg,#138a55,#f2c94c)}.practical-empty{padding:70px 25px;text-align:center;background:#fff;border:1px dashed #ccd6e4;border-radius:22px}.practical-empty-icon{width:72px;height:72px;border-radius:22px;background:#edf3ff;color:var(--p-blue);display:grid;place-items:center;font-size:2rem;margin:0 auto 18px}.practical-empty h2{font-weight:800}.practical-empty p{color:#6d7890}.practical-callout{margin-top:26px;border-radius:22px;padding:26px 30px;background:linear-gradient(135deg,#f1f6ff,#eef9f4);border:1px solid #dce8f5;display:flex;justify-content:space-between;gap:20px;align-items:center}.practical-callout h2{font-size:1.45rem;font-weight:800;margin:.3rem 0}.practical-callout p{margin:0;color:#68758b}.practical-watch-page .practical-player{border:0;border-radius:22px;box-shadow:0 16px 40px rgba(20,44,82,.12);overflow:hidden;background:#071c38}.practical-player iframe,.practical-player video{display:block;width:100%;aspect-ratio:16/9;max-height:72vh;object-fit:contain;background:#071c38}.practical-player .tiktok-wrap{max-width:605px;width:100%;margin:auto;min-height:500px;display:grid;place-items:center;overflow:hidden}.practical-watch-info{background:#fff;border:1px solid #e4eaf2;border-radius:22px;padding:26px;box-shadow:0 12px 30px rgba(20,44,82,.06);position:sticky;top:20px}.practical-watch-info h1{font-size:1.8rem;font-weight:800;letter-spacing:-.025em;margin:14px 0}.practical-source{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 11px;background:#edf3ff;color:#174d9a;font-weight:800;font-size:.75rem}.practical-source.school{background:#e8f7ef;color:#087242}.practical-watch-meta{display:grid;gap:9px;color:#68758b;font-size:.85rem}.practical-watch-meta span{padding-bottom:9px;border-bottom:1px solid #edf0f5}.practical-publisher{border:1px solid #dfe7f2;border-radius:22px;box-shadow:0 12px 32px rgba(20,44,82,.06)}.practical-publisher-icon{width:54px;height:54px;border-radius:16px;background:#edf3ff;color:#0b3a82;display:grid;place-items:center;font-size:1.5rem}.practical-source-box,.practical-replace-box{border:1px solid #dfe7f2;background:#f8fafc;border-radius:16px;padding:16px}.source-tabs{display:flex;gap:8px;margin-bottom:15px}.source-tab{border:1px solid #d9e2ee;background:#fff;border-radius:10px;padding:10px 13px;font-weight:700;color:#5f6f86}.source-tab.active{background:#0b3a82;color:#fff;border-color:#0b3a82}.practical-table{border-radius:18px;overflow:hidden;border:1px solid #e1e7f0}.practical-table thead th{background:#f4f7fb;border:0;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:#63718a}.practical-editor-card{border:1px solid #dfe7f2;border-radius:22px;box-shadow:0 12px 30px rgba(20,44,82,.06)}.practical-edit-summary{height:100%;padding:22px;border-radius:16px;background:linear-gradient(145deg,#f4f7ff,#eef8f4);border:1px solid #dfe8f3}.scenario-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.scenario-main{border:1px solid #dfe7f2;border-radius:22px;overflow:hidden}.scenario-situation{font-size:1.12rem;line-height:1.75;color:#394a63;margin:20px 0}.scenario-options{display:grid;gap:10px}.scenario-option{display:flex;gap:12px;align-items:flex-start;border:1px solid #dce5f0;border-radius:14px;padding:15px;background:#fff;cursor:pointer;transition:.15s}.scenario-option:hover{border-color:#9db4d6;background:#f8fbff}.scenario-option input{margin-top:3px}.scenario-score{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:16px 20px;min-width:150px;text-align:center}.scenario-score strong{display:block;font-size:2rem}.scenario-score span{font-size:.75rem;color:rgba(255,255,255,.72)}.practical-rubric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.practical-rubric-card{background:#fff;border:1px solid #dfe7f2;border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(20,44,82,.05)}.practical-rubric-card h3{font-size:1rem;font-weight:800;margin:.2rem 0}.practical-rubric-card p{font-size:.8rem;color:#68758b;max-width:600px}.practical-final-eval{background:linear-gradient(135deg,#f0f5ff,#eef9f4);border:1px solid #dce8f5;border-radius:20px;padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:center}
@media(max-width:1100px){.practical-stat-grid{grid-template-columns:repeat(2,1fr)}.practical-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practical-search{grid-template-columns:1fr 1fr}.practical-search button{grid-column:1/-1}.practical-rubric-grid{grid-template-columns:1fr}}
@media(max-width:767px){.practical-hero{padding:26px 22px;border-radius:22px;display:block}.practical-hero h1{font-size:2rem}.practical-hero-progress{margin-top:20px}.practical-stat-grid{grid-template-columns:1fr}.practical-video-grid{grid-template-columns:1fr}.practical-search{grid-template-columns:1fr}.practical-callout,.practical-final-eval{display:block}.practical-callout .btn,.practical-final-eval .btn{margin-top:16px;width:100%}.scenario-layout{grid-template-columns:1fr}.practical-watch-info{position:static;margin-top:14px}.practical-player iframe,.practical-player video{max-height:none}.practical-publisher{border-radius:16px}.source-tabs{flex-direction:column}.source-tab{width:100%}}
