:root{--coach-primary:#566CF0;--coach-secondary:#0D172B}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:#172238;background:#f5f7fb}button,input{font:inherit}.brand{display:flex;align-items:center;gap:10px}.brand>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--coach-primary);color:#fff;font-weight:800}.brand strong{display:grid}.brand small{font-size:9px;letter-spacing:.16em;color:#8090ad}.coach-admin{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.coach-admin aside{background:var(--coach-secondary);color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:34px}.coach-admin nav{display:grid;gap:7px}.coach-admin nav button{border:0;background:transparent;color:#9eabc2;text-align:left;padding:12px 14px;border-radius:10px;font-weight:700;cursor:pointer}.coach-admin nav button.active,.coach-admin nav button:hover{background:#202c43;color:#fff}.logout{margin-top:auto;color:#9eabc2;text-decoration:none;font-size:13px}.coach-admin main{padding:28px 34px}.coach-admin header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.coach-admin header small{font-weight:800;letter-spacing:.15em}.coach-admin h1{font:800 36px Manrope;margin:6px 0}.coach-admin header a,.panel-head button,.upload button{background:var(--coach-primary);color:#fff;text-decoration:none;border:0;border-radius:9px;padding:12px 16px;font-weight:800;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats article,.panel{background:#fff;border:1px solid #dce3ee;border-radius:16px;padding:22px}.stats small{color:#8290a8;font-weight:800}.stats strong{display:block;font:800 34px Manrope;margin:9px 0}.stats span{color:#6f7d94;font-size:13px}.intro{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.intro h2,.panel h2{font:800 24px Manrope;margin:6px 0}.intro p,.panel p{color:#6c7990}.flow{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center}.flow b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#eef1ff;color:#5369ef}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.packs-admin{display:grid;gap:14px}.packs-admin>article{border:1px solid #dfe5ef;border-radius:14px;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.packs-admin h3{font:800 20px Manrope;margin:4px 0}.videos-admin{display:flex;flex-wrap:wrap;gap:7px;align-content:start}.videos-admin span{background:#f1f4f9;border-radius:8px;padding:8px 10px;font-size:12px}.upload{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.upload input{border:1px solid #d8dfeb;border-radius:9px;padding:10px}.actions{grid-column:1/-1;display:flex;gap:8px}.actions button,.copy{border:0;border-radius:8px;padding:9px 12px;font-weight:700;cursor:pointer}.danger{color:#b73c35}.block-table{overflow:auto}.tr{min-width:800px;display:grid;grid-template-columns:180px repeat(var(--packs,4),130px) 140px;grid-auto-flow:column;align-items:center;border-bottom:1px solid #e4e8f0;padding:12px 4px;gap:10px}.th{font-size:11px;text-transform:uppercase;color:#77859d;font-weight:800}.toggle{display:flex;justify-content:center}.toggle input{width:20px;height:20px}.storage .meter{height:12px;background:#edf0f5;border-radius:99px;overflow:hidden;margin:20px 0}.storage .meter i{display:block;height:100%;background:var(--coach-primary)}.coach-login{min-height:100vh;display:grid;place-items:center}.coach-login section{width:min(520px,92vw);background:#fff;border:1px solid #dde4ee;border-radius:18px;padding:30px}.coach-login h1{font:800 32px Manrope}.coach-login form{display:grid;gap:14px}.coach-login label{display:grid;gap:6px;font-weight:700}.coach-login input{padding:13px;border:1px solid #ccd5e2;border-radius:9px}.coach-login button{padding:13px;border:0;border-radius:9px;background:var(--coach-primary);color:#fff;font-weight:800}.public-head{height:74px;background:var(--coach-secondary);color:#fff;padding:0 max(24px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between}.public-head>span{color:#aeb9cd;font-size:13px}.public-main{max-width:1160px;margin:auto;padding:70px 24px}.hero{max-width:700px;margin-bottom:46px}.hero small{color:var(--coach-primary);font-weight:800;letter-spacing:.15em}.hero h1{font:800 clamp(38px,6vw,68px) Manrope;margin:10px 0}.hero p{font-size:18px;color:#68758b}.pack{background:#fff;border:1px solid #dce3ed;border-radius:18px;margin:0 0 20px;overflow:hidden}.pack-head{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:22px 24px;border-bottom:1px solid #e7ebf1}.pack-head>span{color:var(--coach-primary);font-weight:800}.pack-head h2{font:800 24px Manrope;margin:0}.pack-head p{margin:5px 0;color:#748197}.pack-head b{font-size:12px;color:#7a879d}.lesson-list{padding:8px}.lesson{width:100%;border:0;background:transparent;padding:13px 15px;display:grid;grid-template-columns:44px 1fr 30px;gap:12px;text-align:left;align-items:center;border-radius:11px;cursor:pointer}.lesson:hover{background:#f4f6fb}.lesson .play{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--coach-primary);color:#fff}.lesson strong,.lesson small{display:block}.lesson small{color:#7a879c;margin-top:3px}.lesson em{font-style:normal;color:#a0aabd;font-size:12px}.empty-state{padding:40px;background:#fff;border-radius:18px;border:1px solid #dce3ed}.coach-public footer{min-height:68px;border-top:1px solid #dce3ed;display:flex;align-items:center;justify-content:center;color:#758298;font-size:12px}.coach-public footer a{color:var(--coach-primary);text-decoration:none;margin-left:4px}.player-modal{position:fixed;inset:0;background:rgba(4,10,22,.88);z-index:100;display:grid;place-items:center;padding:20px}.player-shell{width:min(1100px,96vw);background:#101a2e;color:#fff;border-radius:18px;padding:18px;position:relative}.player-shell .close{position:absolute;right:10px;top:-48px;border:0;background:transparent;color:#fff;font-size:38px;cursor:pointer}.video-wrap{background:#000;border-radius:12px;overflow:hidden;aspect-ratio:16/9}.video-wrap video{width:100%;height:100%;display:block;object-fit:contain}.player-shell h2{font:800 24px Manrope;margin:18px 4px 4px}.player-shell p{color:#aab5c8;margin:0 4px 8px}@media(max-width:850px){.coach-admin{grid-template-columns:1fr}.coach-admin aside{position:relative}.stats{grid-template-columns:1fr 1fr}.intro{grid-template-columns:1fr}.packs-admin>article{grid-template-columns:1fr}.upload{grid-template-columns:1fr}.public-main{padding-top:40px}.pack-head{grid-template-columns:36px 1fr}.pack-head b{grid-column:2}.public-head>span{display:none}}
/* V1.1 — video teasers */
.videos-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.admin-video-card{min-width:0}.admin-video-card strong{display:block;font-size:12px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-video-thumb{aspect-ratio:16/9;background:#101827;border-radius:10px;overflow:hidden;position:relative;display:grid;place-items:center}.admin-video-thumb img{width:100%;height:100%;object-fit:cover}.admin-video-thumb span{position:absolute;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#172238;padding-left:2px}.upload button:disabled{opacity:.65;cursor:wait}.lesson-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;padding:16px}.lesson{display:block;padding:0;background:#fff;border:1px solid #e1e6ef;overflow:hidden;border-radius:14px}.lesson:hover{background:#fff;transform:translateY(-2px);box-shadow:0 12px 28px rgba(18,30,52,.10)}.lesson-thumb{display:block;position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#19233a,#0b1325);overflow:hidden}.lesson-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.lesson:hover .lesson-thumb img{transform:scale(1.025)}.lesson-thumb .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.94);color:#5369ef;box-shadow:0 8px 24px rgba(0,0,0,.22);font-style:normal;font-size:19px;padding-left:3px}.lesson-copy{display:block;padding:16px 17px 18px}.lesson-copy small{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--coach-primary);margin:0 0 7px}.lesson-copy strong{font:800 17px Manrope;line-height:1.25}.lesson-copy em{display:block;font-style:normal;color:#7a879c;font-size:12px;margin-top:6px}.video-wrap video::-webkit-media-controls-download-button{display:none!important}@media(max-width:650px){.lesson-list{grid-template-columns:1fr;padding:10px}.lesson-thumb .play{width:52px;height:52px}}
/* V1.2 — packs illustrés et gestion détaillée */
.pack-admin-card{grid-template-columns:260px 1fr!important;align-items:start}.pack-admin-cover{aspect-ratio:16/9;border-radius:13px;overflow:hidden;background:linear-gradient(135deg,#1b2740,var(--coach-secondary));position:relative;display:grid;place-items:center}.pack-admin-cover img{width:100%;height:100%;object-fit:cover}.cover-empty{color:#9eabc2;font-size:12px}.cover-play{position:absolute;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;color:var(--coach-primary);padding-left:3px;box-shadow:0 8px 22px rgba(0,0,0,.18)}.pack-admin-info{min-width:0}.pack-editor{grid-column:1/-1;border-top:1px solid #e3e8f0;padding-top:18px}.pack-editor-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;margin-bottom:22px}.pack-editor h4{font:800 15px Manrope;margin:0 0 8px}.pack-editor p{font-size:12px;margin:0 0 10px}.cover-upload{display:flex;gap:8px}.cover-upload input{min-width:0;flex:1;border:1px solid #d8dfeb;border-radius:9px;padding:9px}.cover-upload button,.video-admin-actions button{border:0;border-radius:8px;padding:9px 11px;font-weight:700;cursor:pointer}.cover-upload button{background:var(--coach-primary);color:#fff}.admin-video-card{border:1px solid #e1e6ef;border-radius:11px;overflow:hidden;background:#fff}.video-admin-copy{padding:8px 9px 4px}.video-admin-copy small{display:block;color:#8a96a9;font-size:10px;margin-top:3px}.video-admin-actions{display:flex;gap:5px;padding:7px 8px 9px}.video-admin-actions button{font-size:11px;padding:7px 8px}.video-admin-actions .danger{margin-left:auto}.pack-cover{height:min(390px,40vw);min-height:270px;position:relative;background:linear-gradient(135deg,#18243b,#0b1427);overflow:hidden}.pack-cover>img{width:100%;height:100%;object-fit:cover;display:block}.pack-cover-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,15,29,.86) 0%,rgba(8,15,29,.5) 50%,rgba(8,15,29,.14) 100%)}.pack-cover-copy{position:absolute;left:36px;bottom:32px;right:110px;color:#fff;z-index:2}.pack-cover-copy small{font-size:10px;letter-spacing:.15em;font-weight:800;color:#aebaff}.pack-cover-copy h2{font:800 clamp(26px,4vw,42px) Manrope;margin:6px 0}.pack-cover-copy p{max-width:620px;color:#d6dceb;margin:5px 0 12px}.pack-cover-copy b{font-size:12px;color:#dce2ef}.pack-cover-play{position:absolute;right:36px;bottom:34px;z-index:3;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.95);color:var(--coach-primary);font-size:20px;padding-left:4px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
@media(max-width:850px){.pack-admin-card{grid-template-columns:1fr!important}.pack-editor-grid{grid-template-columns:1fr}.pack-cover{height:300px}.pack-cover-copy{left:22px;bottom:22px;right:82px}.pack-cover-play{right:20px;bottom:22px;width:52px;height:52px}}

/* Coach v1.3 — pack editor */
.admin-video-thumb span{left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;transform:translate(-50%,-50%)!important;padding:0!important;line-height:1!important;text-align:center!important}.admin-video-thumb span::first-letter{transform:translateX(1px)}
.pack-settings-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:18px;margin-bottom:24px}.pack-settings-card{padding:20px;border:1px solid #e0e6ef;border-radius:14px;background:#f9fbfd}.settings-kicker{display:block;color:#6074ef;font-size:10px;font-weight:800;letter-spacing:.12em;margin-bottom:6px}.field-label{display:block;font-size:12px;font-weight:700;color:#34415a;margin:12px 0 7px}.field-label input{width:100%;margin-top:7px;border:1px solid #d8dfeb;border-radius:9px;padding:11px 12px;font:inherit}.wysiwyg{border:1px solid #d8dfeb;border-radius:11px;background:#fff;overflow:hidden}.wysiwyg-toolbar{display:flex;gap:5px;padding:7px;border-bottom:1px solid #e7ebf2;background:#f5f7fa}.wysiwyg-toolbar button{border:0;background:#fff;border-radius:6px;padding:6px 9px;cursor:pointer;color:#34415a}.wysiwyg-editor{min-height:135px;padding:12px 14px;outline:0;line-height:1.55;font-size:13px}.wysiwyg-editor:empty:before{content:attr(data-placeholder);color:#9aa5b7}.wysiwyg-editor p{margin:0 0 8px}.wysiwyg-editor ul,.wysiwyg-editor ol{padding-left:22px}.save-pack-info{margin-top:12px;border:0;border-radius:9px;background:var(--coach-primary);color:#fff;padding:10px 14px;font-weight:800;cursor:pointer}.cover-preview{aspect-ratio:16/9;border-radius:11px;overflow:hidden;background:#101827;display:grid;place-items:center;color:#9ba8bd;font-size:12px;margin:12px 0}.cover-preview img{width:100%;height:100%;object-fit:cover}.cover-card .cover-upload{display:grid;grid-template-columns:1fr auto}.video-manager{border-top:1px solid #e3e8f0;padding-top:20px}.video-manager-head{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(500px,1.3fr);gap:22px;align-items:end;margin-bottom:18px}.video-manager-head p{margin-bottom:0}.video-manager-head .upload{display:grid;grid-template-columns:1.2fr .8fr auto;gap:8px}.pack-summary{color:#69768b;font-size:13px;line-height:1.5;margin:8px 0 12px}.pack-summary p{margin:0 0 5px}.coach-modal{position:fixed;inset:0;z-index:1000;background:rgba(9,17,31,.55);display:grid;place-items:center;padding:20px}.coach-modal-card{position:relative;width:min(620px,100%);background:#fff;border-radius:18px;padding:26px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.coach-modal-card h2{margin:4px 0 18px}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:25px;cursor:pointer}.primary-modal{margin-top:15px;border:0;border-radius:9px;background:var(--coach-primary);color:#fff;padding:12px 17px;font-weight:800;cursor:pointer}.pack-rich-description{max-width:620px;color:#d6dceb;margin:5px 0 12px;line-height:1.55}.pack-rich-description p{margin:0 0 7px}.pack-rich-description ul,.pack-rich-description ol{padding-left:20px}
@media(max-width:950px){.pack-settings-grid,.video-manager-head{grid-template-columns:1fr}.video-manager-head .upload{grid-template-columns:1fr}.cover-card .cover-upload{grid-template-columns:1fr}}
/* V1.4 — packs visibles mais verrouillés selon les droits du bloc */
.pack-locked{position:relative}.pack-locked .pack-cover{cursor:default}.pack-locked .pack-cover>img{filter:saturate(.55) brightness(.72);transform:scale(1.01)}.locked-shade{background:linear-gradient(90deg,rgba(8,15,29,.9) 0%,rgba(8,15,29,.66) 58%,rgba(8,15,29,.46) 100%)}.pack-lock{position:absolute;right:36px;bottom:34px;z-index:4;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(0,0,0,.28)}.pack-lock b{font-size:25px;line-height:1}.locked-note{display:flex;gap:14px;align-items:center;padding:18px 24px;background:#f7f8fc;border-top:1px solid #e3e8f0;color:#354158}.locked-note>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#e8ebf4}.locked-note strong{display:block;font:800 14px Manrope}.locked-note p{margin:3px 0 0;font-size:12px;color:#7b879b}.pack-locked .pack-rich-description{max-width:560px}.pack-locked .pack-cover-copy b{color:#cbd3e1}@media(max-width:850px){.pack-lock{right:20px;bottom:22px;width:54px;height:54px}.locked-note{padding:15px 18px}}

.storage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.storage-head small{color:#8290a8;font-weight:800;letter-spacing:.12em}.storage-head h2{margin:5px 0}.storage-head p{margin:0}.storage-upgrade{display:inline-flex;align-items:center;justify-content:center;background:var(--coach-primary);color:#fff;text-decoration:none;border-radius:9px;padding:12px 16px;font-weight:800;white-space:nowrap}.storage-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.storage-numbers strong{background:#f5f7fb;border-radius:12px;padding:16px;font:800 20px Manrope}.storage-numbers span{display:block;margin-top:4px;color:#7a879d;font:600 12px Inter,Arial,sans-serif}.storage-percent{margin-bottom:0}@media(max-width:700px){.storage-head{display:grid}.storage-upgrade{width:100%}.storage-numbers{grid-template-columns:1fr}}

/* Coach v1.6 — progression de lecture et enchaînement */
.pack-cover-play{display:none!important}.watched-badge{display:none;margin-left:8px;padding:3px 7px;border-radius:999px;background:#e7f6ec;color:#277a45;font-size:9px;font-weight:800;letter-spacing:.03em}.watched-badge.is-visible{display:inline-flex}.lesson.is-watched{background:#fafbfd}.lesson.is-watched .lesson-thumb:after{content:'✓';position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#2f9a58;color:#fff;font-size:11px;font-weight:900;box-shadow:0 3px 10px rgba(0,0,0,.18)}.lesson-thumb{position:relative}.next-overlay{position:absolute;inset:0;z-index:5;background:rgba(6,12,24,.91);display:grid;place-items:center;padding:24px}.next-overlay[hidden]{display:none}.next-card{width:min(480px,100%);text-align:center;color:#fff}.next-card small{font-size:10px;letter-spacing:.16em;color:#aebaff;font-weight:800}.next-card h3{font:800 18px Manrope;margin:8px 0 3px;color:#aeb7ca}.next-card strong{display:block;font:800 clamp(22px,4vw,34px) Manrope}.countdown-ring{width:74px;height:74px;border-radius:50%;margin:22px auto 12px;border:5px solid rgba(255,255,255,.18);display:grid;place-items:center;background:rgba(255,255,255,.06)}.countdown-ring span{font:800 27px Manrope}.next-card p{color:#aeb7ca!important;margin:0 0 20px!important}.next-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.next-actions button{border:0;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer}.cancel-next{background:#263249;color:#fff}.play-next{background:var(--coach-primary);color:#fff}@media(max-width:600px){.next-overlay{padding:16px}.next-actions{display:grid}.next-actions button{width:100%}}
/* v1.7 — watermark de lecture dynamique */
.video-wrap{position:relative;overflow:hidden}.video-watermark{position:absolute;z-index:8;left:4%;top:5%;pointer-events:none;user-select:none;color:rgba(255,255,255,.62);font:800 10px/1.2 Manrope,Arial,sans-serif;letter-spacing:.14em;text-shadow:0 1px 4px rgba(0,0,0,.75);padding:5px 7px;border-radius:5px;background:rgba(0,0,0,.14);transition:left .7s ease,top .7s ease}

.brand>span img{width:100%;height:100%;object-fit:contain;border-radius:9px}.appearance-panel{max-width:1050px}.brand-form{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}.brand-fields{display:grid;gap:18px}.brand-fields>label{display:grid;gap:8px;font-weight:700;color:#344258}.brand-fields input[type=text],.brand-fields input[name=company_name],.brand-fields input[type=file]{width:100%;border:1px solid #d8dfeb;border-radius:10px;padding:12px;background:#fff}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.color-grid label{display:grid;gap:8px;font-weight:700;color:#344258}.color-control{display:grid;grid-template-columns:54px 1fr;gap:9px}.color-control input[type=color]{width:54px;height:46px;border:1px solid #d8dfeb;border-radius:9px;padding:3px;background:#fff}.color-control .hex{border:1px solid #d8dfeb;border-radius:9px;padding:0 12px;text-transform:uppercase}.save-brand{border:0;border-radius:10px;padding:13px 17px;background:var(--coach-primary);color:#fff;font-weight:800;cursor:pointer}.remove-logo{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.brand-preview{background:#f7f9fc;border:1px solid #dce3ee;border-radius:18px;padding:26px;min-height:330px}.brand-preview>small,.brand-preview>span{display:block;font-size:10px;letter-spacing:.14em;font-weight:800;color:var(--preview-primary);margin-bottom:14px}.preview-head{display:flex;align-items:center;gap:12px;padding:13px;background:var(--preview-secondary);color:#fff;border-radius:13px;margin-bottom:42px}.preview-logo{width:42px;height:42px;border-radius:10px;background:var(--preview-primary);display:grid;place-items:center;font-weight:900;overflow:hidden}.preview-logo img{width:100%;height:100%;object-fit:contain;background:#fff}.brand-preview h3{font:800 30px Manrope;margin:8px 0 22px;color:var(--preview-secondary)}.brand-preview button{border:0;border-radius:9px;padding:12px 15px;background:var(--preview-primary);color:#fff;font-weight:800}@media(max-width:850px){.brand-form{grid-template-columns:1fr}.color-grid{grid-template-columns:1fr}}

/* Coach v1.9 — personnalisation complète de la palette */
.coach-public{color:var(--coach-secondary);background:#f5f7fb}.coach-public .public-head{background:var(--coach-secondary)}.coach-public .hero h1,.coach-public .pack-head h2,.coach-public .lesson strong,.coach-public .empty-state h2{color:var(--coach-secondary)}.coach-public .hero small,.coach-public .pack-head>span,.coach-public .lesson-copy small,.coach-public footer a{color:var(--coach-primary)}.coach-public .lesson-thumb .play,.coach-public .play-next{color:var(--coach-primary)}.coach-public .lesson:hover{border-color:color-mix(in srgb,var(--coach-primary) 28%,#dce3ed)}
.coach-admin aside{background:var(--coach-secondary)}.coach-admin nav button{color:rgba(255,255,255,.68)}.coach-admin nav button.active,.coach-admin nav button:hover{background:rgba(0,0,0,.24);color:#fff}.coach-admin .logout{color:rgba(255,255,255,.72)}.coach-admin h1,.coach-admin .panel h2,.coach-admin .stats strong{color:var(--coach-secondary)}.settings-kicker{color:var(--coach-primary)}
.brand-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}.reset-brand{border:1px solid #cfd7e4;border-radius:10px;padding:13px 15px;background:#fff;color:#344258;font-weight:800;cursor:pointer}.reset-brand:hover{border-color:var(--coach-primary);color:var(--coach-primary)}
@media(max-width:650px){.brand-actions{grid-template-columns:1fr}}

/* Upload vidéo Coach — gros fichiers */
.coach-uploading{overflow:hidden}.coach-upload-overlay{position:fixed;inset:0;z-index:99999;background:rgba(8,15,29,.94);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.coach-upload-card{width:min(760px,94vw);background:#fff;border-radius:24px;padding:clamp(28px,5vw,54px);box-shadow:0 30px 90px rgba(0,0,0,.32);text-align:center}.upload-cloud{width:72px;height:72px;border-radius:22px;margin:0 auto 20px;display:grid;place-items:center;background:color-mix(in srgb,var(--coach-primary) 12%,white);color:var(--coach-primary);font:800 38px Manrope}.coach-upload-card>small{font-weight:900;letter-spacing:.16em;color:var(--coach-primary)}.coach-upload-card h2{font:800 clamp(25px,4vw,38px) Manrope;margin:9px 0 5px;color:#172238}.coach-upload-name{color:#718097;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 auto 26px;max-width:580px}.coach-upload-percent{font:800 clamp(46px,9vw,76px) Manrope;color:#172238;line-height:1;margin-bottom:14px}.coach-upload-track{height:22px;background:#e9edf4;border-radius:99px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.08)}.coach-upload-track i{display:block;width:0;height:100%;background:var(--coach-primary);border-radius:inherit;transition:width .12s linear}.coach-upload-stats{display:flex;justify-content:space-between;gap:18px;margin:12px 2px 28px;color:#647188;font-size:13px}.coach-upload-stats strong{color:#354158}.coach-upload-note{display:grid;gap:5px;text-align:left;background:#f5f7fb;border:1px solid #e1e6ef;border-radius:14px;padding:16px 18px;color:#6d798d;font-size:13px}.coach-upload-note b{color:#25324a;font-size:14px}.coach-upload-state{margin:18px 0 0!important;color:var(--coach-primary)!important;font-weight:800}@media(max-width:600px){.coach-upload-overlay{padding:12px}.coach-upload-card{padding:28px 20px;border-radius:20px}.coach-upload-stats{display:grid;gap:5px}.coach-upload-note{text-align:center}.coach-upload-track{height:18px}}

/* Coach v1.6 — les séances restent dans leur pack jusqu'à son ouverture */
.pack-collapsible .pack-trigger{cursor:pointer;outline:none}.pack-collapsible .pack-trigger:focus-visible{box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--coach-primary) 70%,white)}.pack-collapsible .lesson-list[hidden]{display:none!important}.pack-open-icon{position:absolute;right:36px;bottom:34px;z-index:4;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.95);color:var(--coach-primary);font:800 31px/1 Manrope;box-shadow:0 12px 30px rgba(0,0,0,.25);transition:transform .22s ease}.pack-trigger[aria-expanded="true"] .pack-open-icon{transform:rotate(180deg)}.pack-action-label{text-decoration:underline;text-underline-offset:3px}.pack-trigger[aria-expanded="true"] .pack-action-label:after{content:' ouvert'}@media(max-width:850px){.pack-open-icon{right:20px;bottom:22px;width:50px;height:50px}.pack-cover-copy{right:88px}}

/* Coach v2.0 — page dédiée par pack */
.pack-link{display:block;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}.pack-link:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(18,30,52,.12)}.pack-link .pack-cover{position:relative}.pack-page-arrow{position:absolute;right:36px;bottom:34px;z-index:4;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);color:var(--coach-primary);font:800 27px Manrope;box-shadow:0 12px 30px rgba(0,0,0,.24)}.pack-back-top{color:#fff;text-decoration:none;font-weight:700;font-size:13px}.pack-back-button{display:inline-flex;align-items:center;gap:7px;margin-bottom:24px;color:var(--coach-primary);font-weight:800;text-decoration:none}.pack-detail-hero{border-radius:20px;overflow:hidden;background:#fff;border:1px solid #dce3ed}.pack-detail-cover{min-height:390px;position:relative;background:var(--coach-secondary);overflow:hidden}.pack-detail-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pack-detail-cover .pack-cover-copy h1{font:800 clamp(34px,6vw,62px) Manrope;margin:7px 0 10px;color:#fff}.pack-detail-content{padding-top:38px}.pack-detail-title small{color:var(--coach-primary);font-weight:800;letter-spacing:.15em}.pack-detail-title h2{font:800 30px Manrope;margin:7px 0 18px;color:var(--coach-secondary)}.pack-page-lessons{padding:0;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.coach-pack-page .lesson{box-shadow:0 5px 18px rgba(18,30,52,.05)}@media(max-width:850px){.pack-page-arrow{right:20px;bottom:22px;width:50px;height:50px}.pack-back-top{font-size:0}.pack-back-top:after{content:'← Programmes';font-size:12px}.pack-detail-cover{min-height:330px}.pack-detail-cover .pack-cover-copy{right:24px}.pack-detail-content{padding-top:28px}}

/* =========================================================
   COACH MOBILE APP — v2.1
   Interface mobile native-like
   ========================================================= */

.coach-mobile-topbar,
.coach-mobile-nav{
    display:none;
}

@media(max-width:850px){

    body{
        background:#f5f7fb;
        -webkit-tap-highlight-color:transparent;
    }

    /* Structure */
    .coach-admin{
        display:block;
        min-height:100dvh;
    }

    /* La sidebar desktop disparaît réellement */
    .coach-admin > .coach-sidebar{
        display:none;
    }

    /* Zone principale */
    .coach-admin > main{
        padding:0 16px calc(98px + env(safe-area-inset-bottom));
        width:100%;
        min-width:0;
    }

    /* ---------- TOP BAR ---------- */

    .coach-mobile-topbar{
        height:68px;
        margin:0 -16px 20px;
        padding:0 16px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        background:#fff;
        border-bottom:1px solid #e5e9f0;
        position:sticky;
        top:0;
        z-index:50;
    }

    .coach-mobile-topbar .brand{
        min-width:0;
        gap:10px;
    }

    .coach-mobile-topbar .brand > span{
        width:40px;
        height:40px;
        flex:0 0 40px;
    }

    .coach-mobile-topbar .brand strong{
        min-width:0;
    }

    .coach-mobile-topbar .brand strong > span{
        display:block;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        max-width:210px;
        color:var(--coach-secondary);
        font-size:14px;
    }

    .coach-mobile-topbar .brand small{
        margin-top:2px;
    }

    .coach-mobile-topbar > a{
        width:42px;
        height:42px;
        flex:0 0 42px;
        display:grid;
        place-items:center;
        padding:0;
        border-radius:13px;
        background:color-mix(in srgb,var(--coach-primary) 10%,white);
        color:var(--coach-primary);
        text-decoration:none;
        font-size:20px;
        font-weight:800;
    }

    /* ---------- TITRE DE PAGE ---------- */

    .coach-admin main > header{
        margin:0 0 18px;
        display:block;
    }

    .coach-admin main > header > a{
        display:none;
    }

    .coach-admin main > header small{
        display:block;
        margin-bottom:5px;
        font-size:9px;
        letter-spacing:.14em;
        color:#8a96aa;
    }

    .coach-admin main > header h1{
        margin:0;
        font-size:clamp(26px,8vw,34px);
        line-height:1.08;
        letter-spacing:-.025em;
    }

    /* ---------- BOTTOM NAV ---------- */

    .coach-mobile-nav{
        position:fixed;
        left:10px;
        right:10px;
        bottom:calc(10px + env(safe-area-inset-bottom));
        z-index:900;
        display:grid;
        grid-template-columns:repeat(5,1fr);
        padding:7px;
        background:rgba(255,255,255,.96);
        border:1px solid #dde3ec;
        border-radius:20px;
        box-shadow:0 12px 40px rgba(20,32,52,.18);
        backdrop-filter:blur(18px);
        -webkit-backdrop-filter:blur(18px);
    }

    .coach-mobile-nav button{
        min-width:0;
        min-height:56px;
        padding:6px 2px;
        border:0;
        border-radius:14px;
        background:transparent;
        color:#8792a5;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:4px;
        font-size:9px;
        line-height:1;
        font-weight:700;
        cursor:pointer;
    }

    .coach-mobile-nav .mobile-nav-icon{
        min-height:20px;
        display:grid;
        place-items:center;
        font-size:19px;
        line-height:1;
        font-weight:800;
    }

    .coach-mobile-nav button.active{
        background:color-mix(in srgb,var(--coach-primary) 10%,white);
        color:var(--coach-primary);
    }

    /* ---------- DASHBOARD ---------- */

    .stats{
        grid-template-columns:1fr 1fr;
        gap:10px;
        margin-bottom:12px;
    }

    .stats article{
        min-width:0;
        padding:16px;
        border-radius:15px;
    }

    .stats small{
        font-size:9px;
        letter-spacing:.08em;
    }

    .stats strong{
        margin:6px 0 2px;
        font-size:28px;
    }

    .stats span{
        display:block;
        font-size:11px;
        line-height:1.3;
    }

    .panel{
        padding:18px;
        border-radius:16px;
    }

    .intro{
        gap:18px;
    }

    .intro h2,
    .panel h2{
        font-size:21px;
    }

    .intro p,
    .panel p{
        line-height:1.55;
    }

    .flow{
        gap:10px;
    }

    /* ---------- PACKS ---------- */

    .panel-head{
        align-items:flex-start;
        gap:12px;
        margin-bottom:16px;
    }

    .panel-head h2{
        margin-top:4px;
    }

    .panel-head button{
        flex:0 0 auto;
        padding:10px 12px;
        font-size:12px;
    }

    .packs-admin{
        gap:12px;
    }

    .packs-admin > article,
    .pack-admin-card{
        padding:12px;
        border-radius:16px;
    }

    .pack-admin-cover{
        border-radius:12px;
    }

    .pack-admin-info{
        padding:2px 2px 0;
    }

    .pack-admin-info h3{
        font-size:18px;
    }

    .actions{
        flex-wrap:wrap;
    }

    /* ---------- FORMULAIRES / EDITEUR ---------- */

    .pack-settings-card{
        padding:15px;
    }

    .pack-editor{
        padding-top:14px;
    }

    .pack-settings-grid,
    .video-manager-head,
    .brand-form{
        gap:14px;
    }

    .video-manager-head .upload{
        grid-template-columns:1fr;
    }

    input,
    button,
    select,
    textarea{
        min-height:44px;
    }

    /* ---------- STOCKAGE ---------- */

    .storage-head{
        gap:16px;
    }

    .storage-numbers{
        gap:8px;
    }

    .storage-numbers strong{
        padding:14px;
    }

    /* ---------- MODALES ---------- */

    .coach-modal{
        align-items:end;
        padding:10px;
    }

    .coach-modal-card{
        width:100%;
        max-height:88dvh;
        overflow:auto;
        border-radius:22px 22px 16px 16px;
        padding:24px 18px calc(20px + env(safe-area-inset-bottom));
    }
}

@media(max-width:390px){
    .coach-admin > main{
        padding-left:12px;
        padding-right:12px;
    }

    .coach-mobile-topbar{
        margin-left:-12px;
        margin-right:-12px;
        padding-left:12px;
        padding-right:12px;
    }

    .coach-mobile-topbar .brand strong > span{
        max-width:175px;
    }

    .coach-mobile-nav{
        left:6px;
        right:6px;
        bottom:calc(6px + env(safe-area-inset-bottom));
    }

    .coach-mobile-nav button{
        font-size:8px;
    }
}

/* FIX v2.1.1 — navigation mobile Coach */
@media(max-width:850px){

    .coach-admin > .coach-mobile-nav{
        display:grid !important;
        grid-template-columns:repeat(5,minmax(0,1fr)) !important;
        gap:2px !important;
    }

    .coach-admin > .coach-mobile-nav button{
        display:flex !important;
        width:100% !important;
        min-width:0 !important;
        padding:6px 1px !important;
        background:transparent;
        color:#8792a5;
        text-align:center;
        align-items:center;
        justify-content:center;
        flex-direction:column;
        gap:4px;
        border:0;
        border-radius:13px;
    }

    .coach-admin > .coach-mobile-nav button .mobile-nav-icon{
        display:grid !important;
        width:24px;
        height:22px;
        min-height:22px;
        place-items:center;
        font-size:18px;
        color:inherit;
    }

    .coach-admin > .coach-mobile-nav button > span:last-child{
        display:block !important;
        font-size:9px;
        font-weight:800;
        line-height:1;
        white-space:nowrap;
        color:inherit;
    }

    .coach-admin > .coach-mobile-nav button.active{
        background:color-mix(in srgb,var(--coach-primary) 11%,white);
        color:var(--coach-primary);
    }
}

/* =========================================================
   COACH — GESTION DES BLOCS v2.2
   Blocs provisionnés / permissions packs
   ========================================================= */

.coach-blocks-panel{
    padding:0;
    overflow:hidden;
}

.coach-blocks-intro{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    padding:26px 28px;
    border-bottom:1px solid #e5e9f0;
}

.coach-blocks-intro small,
.coach-block-user>small,
.coach-block-access-head small,
.coach-block-link>small{
    display:block;
    color:#8995a8;
    font-size:9px;
    line-height:1;
    font-weight:800;
    letter-spacing:.14em;
}

.coach-blocks-intro h2{
    margin:7px 0 6px;
}

.coach-blocks-intro p{
    max-width:700px;
    margin:0;
    line-height:1.55;
}

.coach-block-count{
    flex:0 0 auto;
    padding:8px 12px;
    border-radius:999px;
    background:#f0f2ff;
    color:var(--coach-primary);
    font-size:11px;
    font-weight:800;
}

/* GRID */

.coach-block-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(390px,1fr));
    gap:16px;
    padding:20px;
}

/* CARTE */

.coach-block-card{
    min-width:0;
    overflow:hidden;
    border:1px solid #dfe5ed;
    border-radius:18px;
    background:#fff;
    box-shadow:0 3px 12px rgba(18,30,52,.035);
}

.coach-block-card-head{
    min-height:66px;
    padding:15px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:#f8fafc;
    border-bottom:1px solid #e7ebf1;
}

.coach-block-identity{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.coach-block-number{
    font:800 13px Manrope;
    color:var(--coach-secondary);
}

.coach-block-status{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:5px 8px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
}

.coach-block-status i{
    width:6px;
    height:6px;
    border-radius:50%;
}

.coach-block-status.is-active{
    color:#28764a;
    background:#eaf7ef;
}

.coach-block-status.is-active i{
    background:#35a464;
}

.coach-block-status.is-inactive{
    color:#8b5960;
    background:#f5eaec;
}

.coach-block-status.is-inactive i{
    background:#b96772;
}

/* SWITCH ACTIF */

.coach-active-switch{
    position:relative;
    width:44px;
    height:26px;
    flex:0 0 44px;
}

.coach-active-switch input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.coach-active-switch span{
    position:absolute;
    inset:0;
    border-radius:99px;
    background:#d5dbe5;
    cursor:pointer;
    transition:.2s ease;
}

.coach-active-switch span:after{
    content:'';
    position:absolute;
    width:20px;
    height:20px;
    left:3px;
    top:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 5px rgba(0,0,0,.15);
    transition:.2s ease;
}

.coach-active-switch input:checked + span{
    background:var(--coach-primary);
}

.coach-active-switch input:checked + span:after{
    transform:translateX(18px);
}

/* UTILISATEUR */

.coach-block-user{
    padding:20px 18px;
    border-bottom:1px solid #edf0f4;
}

.coach-block-user>div{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    margin-top:9px;
}

.coach-block-user input{
    width:100%;
    min-width:0;
    padding:11px 12px;
    border:1px solid #d7dee8;
    border-radius:10px;
    background:#fff;
    color:#253149;
    font-weight:700;
    outline:none;
}

.coach-block-user input:focus{
    border-color:var(--coach-primary);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--coach-primary) 10%,transparent);
}

.coach-block-user button{
    border:0;
    border-radius:10px;
    padding:0 14px;
    background:var(--coach-primary);
    color:#fff;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
}

/* PACKS */

.coach-block-access{
    padding:20px 18px;
}

.coach-block-access-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.coach-block-access-head strong{
    display:block;
    margin-top:5px;
    font:800 14px Manrope;
    color:var(--coach-secondary);
}

.coach-block-access-head>span{
    padding:6px 9px;
    border-radius:8px;
    background:#f0f2ff;
    color:var(--coach-primary);
    font-size:10px;
    font-weight:800;
}

.coach-pack-permissions{
    display:grid;
    gap:7px;
}

.coach-pack-permission{
    min-height:56px;
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-rows:1fr;
    align-items:center;
    gap:12px;
    padding:10px 11px 10px 13px;
    border:1px solid #e5e9f0;
    border-radius:11px;
    background:#fafbfd;
    cursor:pointer;
}

.coach-pack-permission>span{
    min-width:0;
}

.coach-pack-permission strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#354158;
    font-size:12px;
}

.coach-pack-permission small{
    display:block;
    margin-top:3px;
    color:#8995a7;
    font-size:9px;
}

.coach-pack-permission input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.coach-pack-permission i{
    position:relative;
    grid-column:2;
    grid-row:1;
    width:38px;
    height:23px;
    border-radius:99px;
    background:#d8dee7;
    transition:.2s ease;
}

.coach-pack-permission i:after{
    content:'';
    position:absolute;
    width:17px;
    height:17px;
    left:3px;
    top:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 4px rgba(0,0,0,.18);
    transition:.2s ease;
}

.coach-pack-permission input:checked + i{
    background:var(--coach-primary);
}

.coach-pack-permission input:checked + i:after{
    transform:translateX(15px);
}

/* URL NFC */

.coach-block-link{
    padding:15px 18px 18px;
    background:#f8fafc;
    border-top:1px solid #edf0f4;
}

.coach-block-link>div{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    margin-top:8px;
}

.coach-block-link span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#778499;
    font-size:10px;
}

.coach-block-link button{
    min-height:34px;
    border:0;
    border-radius:8px;
    padding:7px 10px;
    background:#e9edf4;
    color:#46536a;
    font-size:10px;
    font-weight:800;
    cursor:pointer;
}

/* ACHAT */

.coach-more-blocks{
    margin:0 20px 20px;
    padding:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border-radius:14px;
    background:var(--coach-secondary);
    color:#fff;
}

.coach-more-blocks strong{
    display:block;
    font:800 14px Manrope;
}

.coach-more-blocks span{
    display:block;
    margin-top:3px;
    color:rgba(255,255,255,.65);
    font-size:11px;
}

.coach-more-blocks a,
.coach-block-empty a{
    flex:0 0 auto;
    padding:10px 13px;
    border-radius:9px;
    background:var(--coach-primary);
    color:#fff;
    text-decoration:none;
    font-size:11px;
    font-weight:800;
}

/* VIDE */

.coach-block-empty{
    margin:20px;
    padding:50px 20px;
    text-align:center;
    border:1px dashed #d6dde8;
    border-radius:16px;
}

.coach-block-empty>span{
    font-size:32px;
    color:var(--coach-primary);
}

.coach-block-empty h3{
    margin:10px 0 4px;
    font:800 19px Manrope;
}

.coach-block-empty p{
    margin:0 auto 18px;
}

/* MOBILE */

@media(max-width:650px){

    .coach-blocks-panel{
        margin:0 -4px;
        border-radius:16px;
    }

    .coach-blocks-intro{
        padding:18px;
        gap:12px;
    }

    .coach-blocks-intro h2{
        font-size:20px;
    }

    .coach-blocks-intro p{
        font-size:12px;
    }

    .coach-block-count{
        display:none;
    }

    .coach-block-grid{
        grid-template-columns:1fr;
        gap:12px;
        padding:12px;
    }

    .coach-block-card{
        border-radius:15px;
    }

    .coach-block-card-head{
        min-height:58px;
        padding:12px 14px;
    }

    .coach-block-user,
    .coach-block-access{
        padding:16px 14px;
    }

    .coach-block-user>div{
        grid-template-columns:1fr;
    }

    .coach-block-user button{
        min-height:42px;
    }

    .coach-block-link{
        padding:13px 14px 15px;
    }

    .coach-more-blocks{
        margin:0 12px 12px;
        padding:16px;
        display:grid;
    }

    .coach-more-blocks a{
        width:100%;
        text-align:center;
    }
}

/* =========================================================
   COACH BLOCS — recherche + identifiant physique
   ========================================================= */

.coach-block-search{
    position:relative;
    margin:18px 20px 0;
}

.coach-block-search>span{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    color:#8995a8;
    font-size:20px;
    pointer-events:none;
}

.coach-block-search input{
    display:block;
    width:100%;
    min-height:46px;
    padding:0 16px 0 43px;
    border:1px solid #dfe5ed;
    border-radius:12px;
    background:#f8fafc;
    color:var(--coach-secondary);
    font:600 13px Manrope;
    outline:none;
    transition:.2s ease;
}

.coach-block-search input::placeholder{
    color:#9aa5b6;
    font-weight:500;
}

.coach-block-search input:focus{
    background:#fff;
    border-color:var(--coach-primary);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--coach-primary) 10%,transparent);
}

/* Identifiant physique : jamais le token NFC */

.coach-block-serial{
    padding:14px 18px 17px;
    background:#f8fafc;
    border-top:1px solid #edf0f4;
}

.coach-block-serial small{
    display:block;
    margin-bottom:7px;
    color:#8995a8;
    font-size:9px;
    line-height:1;
    font-weight:800;
    letter-spacing:.14em;
}

.coach-block-serial strong{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:6px 10px;
    border:1px solid #dfe5ed;
    border-radius:8px;
    background:#fff;
    color:#4c5870;
    font:800 11px Manrope;
    letter-spacing:.04em;
}

/* Aucun résultat */

.coach-block-search-empty{
    margin:12px 20px 20px;
    padding:35px 20px;
    text-align:center;
    border:1px dashed #d7dee8;
    border-radius:14px;
    background:#fafbfd;
}

.coach-block-search-empty strong{
    display:block;
    color:var(--coach-secondary);
    font:800 15px Manrope;
}

.coach-block-search-empty span{
    display:block;
    margin-top:5px;
    color:#8995a8;
    font-size:11px;
}

.coach-block-card[hidden]{
    display:none !important;
}

@media(max-width:650px){
    .coach-block-search{
        margin:12px 12px 0;
    }

    .coach-block-search input{
        min-height:44px;
        font-size:12px;
    }

    .coach-block-serial{
        padding:13px 14px 15px;
    }

    .coach-block-search-empty{
        margin:12px;
    }
}

/* =========================================================
   COACH — PACKS MOBILE : anti-débordement v2.4
   ========================================================= */

@media(max-width:650px){

    /* Rien dans l'écran Packs ne doit imposer une largeur desktop */
    .coach-admin,
    .coach-main,
    #app,
    #app .panel,
    #app .panel *,
    #app .collection-card,
    #app .collection-card *{
        box-sizing:border-box;
        min-width:0;
    }

    #app{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
    }

    #app .panel{
        width:100%;
        max-width:100%;
        overflow:hidden;
    }

    /* Carte d'un pack */
    #app .collection-card{
        width:100%;
        max-width:100%;
        overflow:hidden;
    }

    /* Zone de gestion ouverte */
    #app .collection-editor,
    #app .collection-edit,
    #app .pack-editor,
    #app .pack-management{
        width:100%;
        max-width:100%;
        min-width:0;
        overflow:hidden;
    }

    /* Inputs / textarea / select / éditeur */
    #app input,
    #app textarea,
    #app select{
        max-width:100%;
    }

    #app textarea{
        width:100%;
        resize:vertical;
    }

    #app .editor,
    #app .wysiwyg,
    #app [contenteditable="true"]{
        width:100%;
        max-width:100%;
        overflow-wrap:anywhere;
    }

    /* Images et vidéos */
    #app img,
    #app video{
        max-width:100%;
    }

    /* Les grilles internes deviennent réellement mobiles */
    #app .video-grid,
    #app .videos-grid,
    #app .collection-videos,
    #app .pack-videos{
        width:100%;
        max-width:100%;
        grid-template-columns:minmax(0,1fr) !important;
    }

    /* Une vidéo ne peut plus agrandir son parent */
    #app .video-card,
    #app .video-item,
    #app .session-card{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    /* Textes longs */
    #app .video-card strong,
    #app .video-card em,
    #app .video-item strong,
    #app .video-item em,
    #app .session-card strong,
    #app .session-card em{
        white-space:normal;
        overflow-wrap:anywhere;
        word-break:break-word;
    }

    /* Boutons */
    #app button,
    #app .button{
        max-width:100%;
    }
}


/* =========================================================
   COACH PACKS — vrai correctif mobile v2.5
   ========================================================= */

@media(max-width:650px){

    /* ----- éditeur du pack ----- */

    .pack-editor{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow:hidden !important;
    }

    .pack-settings-grid{
        display:block !important;
        width:100% !important;
        min-width:0 !important;
    }

    .pack-settings-card,
    .video-manager{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }


    /* ----- WYSIWYG ----- */

    .pack-editor .wysiwyg{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow:hidden;
    }

    .pack-editor .wysiwyg-toolbar{
        display:flex !important;
        flex-wrap:wrap !important;
        width:100% !important;
    }

    .pack-editor .wysiwyg-editor{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow-wrap:anywhere;
    }


    /* ----- couverture ----- */

    .cover-preview{
        width:100% !important;
        max-width:100% !important;
    }

    .cover-preview img{
        display:block;
        width:100% !important;
        max-width:100% !important;
        height:auto;
    }

    .cover-upload{
        display:flex !important;
        flex-direction:column !important;
        gap:8px;
        width:100% !important;
        min-width:0 !important;
    }

    .cover-upload input[type="file"]{
        display:block;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .cover-upload button{
        width:100%;
    }


    /* ----- ajout d'une vidéo ----- */

    .video-manager-head{
        display:block !important;
        width:100% !important;
        min-width:0 !important;
    }

    .video-manager-head .upload{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        gap:8px;
        margin-top:14px;
    }

    .video-manager-head .upload input,
    .video-manager-head .upload button{
        display:block;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }


    /* =====================================================
       LISTE DES VIDÉOS
       ===================================================== */

    .videos-admin{
        display:flex !important;
        flex-direction:column !important;
        gap:9px !important;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        overflow:hidden !important;
    }

    .admin-video-card{
        display:grid !important;
        grid-template-columns:92px minmax(0,1fr) !important;
        grid-template-areas:
            "thumb info"
            "actions actions" !important;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        padding:8px !important;
        gap:8px 10px !important;

        overflow:hidden !important;
    }


    /* miniature */

    .admin-video-thumb{
        grid-area:thumb;

        width:92px !important;
        min-width:92px !important;
        max-width:92px !important;
        height:62px !important;

        border-radius:8px;
        overflow:hidden;
    }

    .admin-video-thumb img{
        display:block;
        width:100% !important;
        height:100% !important;
        object-fit:cover;
    }


    /* informations */

    .video-admin-copy{
        grid-area:info;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        align-self:center;
    }

    .video-admin-copy strong,
    .video-admin-copy small,
    .video-admin-copy em{
        display:block;
        max-width:100% !important;

        white-space:normal !important;
        overflow-wrap:anywhere !important;
        word-break:break-word;
    }

    .video-admin-copy strong{
        font-size:12px;
        line-height:1.25;
    }

    .video-admin-copy small{
        margin-top:2px;
        font-size:9px;
    }

    .video-admin-copy em{
        margin-top:4px;
        font-size:9px;
        line-height:1.25;
    }


    /* actions */

    .video-admin-actions{
        grid-area:actions;

        display:grid !important;
        grid-template-columns:1fr 1fr !important;
        gap:7px !important;

        width:100% !important;
        min-width:0 !important;
    }

    .video-admin-actions button{
        width:100% !important;
        min-width:0 !important;
        margin:0 !important;
    }

}


/* =========================================================
   FIX NAVIGATION COACH — desktop / mobile
   ========================================================= */

/* Desktop : navigation mobile totalement masquée */
@media(min-width:851px){
    .coach-admin > .coach-mobile-nav{
        display:none !important;
    }

    .coach-admin > main > .coach-mobile-topbar{
        display:none !important;
    }
}

/* =========================================================
   COACH — BOXS SWIPE MOBILE v3
   Carrousel propre, contenu dans le viewport
   ========================================================= */

@media(max-width:650px){

    /* Aucun élément de la page ne doit élargir le viewport */
    html,
    body{
        max-width:100%;
        overflow-x:hidden;
    }

    .coach-admin,
    .coach-admin > main,
    #coachApp{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }

    .coach-blocks-panel{
        width:100%;
        max-width:100%;
        min-width:0;
        margin:0;
        overflow:hidden;
        box-sizing:border-box;
    }

    /*
     * Le scroll horizontal existe uniquement dans cette zone.
     * Pas de marge négative et pas de largeur > viewport.
     */
    .coach-block-grid{
        display:flex;
        width:100%;
        max-width:100%;
        min-width:0;

        gap:12px;
        padding:12px;

        overflow-x:auto;
        overflow-y:hidden;

        scroll-snap-type:x mandatory;
        scroll-behavior:smooth;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;

        box-sizing:border-box;
        align-items:flex-start;
    }

    .coach-block-grid::-webkit-scrollbar{
        display:none;
    }

    /*
     * Une box occupe presque tout le carrousel.
     * Les 28px restants laissent apercevoir la suivante.
     */
    .coach-block-card{
        flex:0 0 calc(100% - 28px);
        width:calc(100% - 28px);
        max-width:calc(100% - 28px);
        min-width:0;

        scroll-snap-align:start;
        scroll-snap-stop:always;
        align-self:flex-start;

        box-sizing:border-box;
    }

    .coach-more-blocks{
        width:auto;
        max-width:none;
        margin:0 12px 12px;
        box-sizing:border-box;
    }

    /* Navigation fixe strictement contenue dans l'écran */
    .coach-admin > .coach-mobile-nav{
        box-sizing:border-box;
        width:auto;
        max-width:none;
        left:10px;
        right:10px;
    }
}


/* =========================================================
   FIX FINAL — NAV MOBILE STRICTEMENT AU VIEWPORT
   ========================================================= */
@media(max-width:850px){
    .coach-admin > .coach-mobile-nav{
        position:fixed !important;
        left:10px !important;
        right:auto !important;
        width:calc(100vw - 20px) !important;
        max-width:calc(100vw - 20px) !important;
        min-width:0 !important;

        grid-template-columns:repeat(5,minmax(0,1fr)) !important;
        box-sizing:border-box !important;

        overflow:hidden !important;
    }

    .coach-admin > .coach-mobile-nav > button{
        width:auto !important;
        min-width:0 !important;
        max-width:100% !important;
        box-sizing:border-box !important;
    }
}

/* =========================================================
   COACH — BOXS CAROUSEL v4
   Grid horizontal isolé — remplace le flex mobile
   ========================================================= */
@media(max-width:650px){

    .coach-blocks-panel{
        contain:layout paint;
        overflow:hidden !important;
    }

    .coach-block-grid{
        display:grid !important;
        grid-auto-flow:column !important;
        grid-auto-columns:calc(100% - 28px) !important;
        grid-template-columns:none !important;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        gap:12px !important;
        padding:12px !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        scroll-snap-type:x mandatory;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;

        box-sizing:border-box !important;
    }

    .coach-block-card{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        scroll-snap-align:start;
        box-sizing:border-box !important;
    }
}

/* =========================================================
   COACH PUBLIC — SÉANCES SWIPE MOBILE v1
   Grid horizontal isolé
   ========================================================= */
@media(max-width:650px){

    .coach-pack-page .pack-detail-content{
        min-width:0;
        overflow:hidden;
    }

    .coach-pack-page .pack-page-lessons{
        display:grid !important;
        grid-auto-flow:column !important;
        grid-auto-columns:calc(100% - 34px) !important;
        grid-template-columns:none !important;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        gap:12px !important;
        padding:2px 0 14px !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        scroll-snap-type:x mandatory;
        scroll-behavior:smooth;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;

        box-sizing:border-box !important;
        contain:layout paint;
    }

    .coach-pack-page .pack-page-lessons::-webkit-scrollbar{
        display:none;
    }

    .coach-pack-page .pack-page-lessons .lesson{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;

        scroll-snap-align:start;
        scroll-snap-stop:always;

        box-sizing:border-box !important;
    }
}

/* =========================================================
   COACH PUBLIC — SÉANCES SWIPE MOBILE v1
   Grid horizontal isolé
   ========================================================= */
@media(max-width:650px){

    .coach-pack-page .pack-detail-content{
        min-width:0;
        overflow:hidden;
    }

    .coach-pack-page .pack-page-lessons{
        display:grid !important;
        grid-auto-flow:column !important;
        grid-auto-columns:calc(100% - 34px) !important;
        grid-template-columns:none !important;

        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;

        gap:12px !important;
        padding:2px 0 14px !important;

        overflow-x:auto !important;
        overflow-y:hidden !important;

        scroll-snap-type:x mandatory;
        scroll-behavior:smooth;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;

        box-sizing:border-box !important;
        contain:layout paint;
    }

    .coach-pack-page .pack-page-lessons::-webkit-scrollbar{
        display:none;
    }

    .coach-pack-page .pack-page-lessons .lesson{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;

        scroll-snap-align:start;
        scroll-snap-stop:always;

        box-sizing:border-box !important;
    }
}

/* =========================================================
   COACH PUBLIC — INDICATEUR SWIPE SÉANCES
   ========================================================= */
.pack-lessons-mobile-progress{
    display:none;
}

@media(max-width:650px){

    .pack-lessons-mobile-progress{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
        margin:-6px 0 12px;
    }

    .pack-lessons-count{
        flex:0 0 auto;
        font:700 12px Manrope,sans-serif;
        color:var(--coach-secondary);
    }

    .pack-lessons-dots{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:6px;
        min-width:0;
    }

    .pack-lessons-dots i{
        display:block;
        width:6px;
        height:6px;
        border-radius:999px;
        background:var(--coach-secondary);
        opacity:.18;
        transition:width .2s ease,opacity .2s ease;
    }

    .pack-lessons-dots i.is-active{
        width:20px;
        opacity:1;
        background:var(--coach-primary);
    }
}

/* =========================================================
   COACH PUBLIC — PACK HERO MOBILE COMPACT
   ========================================================= */
@media(max-width:650px){

    .coach-pack-page .public-main{
        padding-top:20px;
    }

    .coach-pack-page .pack-back-button{
        margin-bottom:14px;
        font-size:13px;
    }

    .coach-pack-page .pack-detail-hero{
        border-radius:16px;
    }

    .coach-pack-page .pack-detail-cover{
        min-height:260px;
    }

    .coach-pack-page .pack-detail-cover .pack-cover-copy{
        left:20px;
        right:20px;
        bottom:20px;
    }

    .coach-pack-page .pack-detail-cover .pack-cover-copy small{
        font-size:10px;
        letter-spacing:.12em;
    }

    .coach-pack-page .pack-detail-cover .pack-cover-copy h1{
        font-size:32px;
        line-height:1.05;
        margin:5px 0 8px;
    }

    .coach-pack-page .pack-detail-cover .pack-cover-copy p{
        margin:4px 0 8px;
        line-height:1.45;
    }

    .coach-pack-page .pack-detail-content{
        padding-top:22px;
    }

    .coach-pack-page .pack-detail-title h2{
        font-size:24px;
        line-height:1.15;
        margin:5px 0 14px;
    }

    .coach-pack-page .pack-detail-title small{
        font-size:10px;
    }
}

/* =========================================================
   COACH PLAYER — ACTION TV
   ========================================================= */
.player-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    margin:12px 4px 0;
}

.watch-tv{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:9px 14px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:10px;
    background:#202c43;
    color:#fff;
    font-weight:800;
    font-size:13px;
    cursor:pointer;
    transition:background .2s ease,border-color .2s ease,transform .2s ease;
}

.watch-tv:hover{
    background:#293751;
    border-color:rgba(255,255,255,.28);
}

.watch-tv:active{
    transform:scale(.98);
}

.watch-tv:disabled{
    opacity:.6;
    cursor:wait;
}

@media(max-width:650px){
    .player-actions{
        margin-top:10px;
    }

    .watch-tv{
        width:100%;
        min-height:46px;
    }
}

/* COACH ADMIN — APERÇU APPARENCE COMPACT MOBILE */
@media(max-width:850px){
    .appearance-panel .brand-preview{
        min-height:0;
        height:auto;
        padding:14px 16px;
        border-radius:14px;
    }

    .appearance-panel .brand-preview > small{
        margin-bottom:8px;
        font-size:8px;
    }

    .appearance-panel .preview-head{
        gap:8px;
        padding:8px 10px;
        margin-bottom:12px;
        border-radius:10px;
    }

    .appearance-panel .preview-logo{
        width:28px;
        height:28px;
        border-radius:7px;
        font-size:11px;
    }

    .appearance-panel .preview-head strong{
        font-size:12px;
    }

    .appearance-panel .brand-preview > span{
        margin-bottom:3px;
        font-size:8px;
    }

    .appearance-panel .brand-preview h3{
        margin:3px 0 10px;
        font-size:18px;
        line-height:1.1;
    }

    .appearance-panel .brand-preview button{
        padding:7px 10px;
        border-radius:7px;
        font-size:10px;
    }
}


/* COACH ADMIN — RETOUR AUX PACKS */
.pack-back-admin{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:auto;
    margin:0 0 18px;
    padding:9px 13px;
    border:1px solid #dce3ee;
    border-radius:10px;
    background:#fff;
    color:var(--coach-secondary);
    font:700 13px Manrope,sans-serif;
    line-height:1;
    cursor:pointer;
    box-shadow:0 2px 7px rgba(18,30,52,.04);
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

.pack-back-admin:hover{
    border-color:var(--coach-primary);
    box-shadow:0 4px 12px rgba(18,30,52,.08);
    transform:translateY(-1px);
}

.pack-back-admin:active{
    transform:translateY(0);
}

@media(max-width:650px){
    .pack-back-admin{
        margin-bottom:14px;
        padding:8px 11px;
        font-size:12px;
        border-radius:9px;
    }
}

/* Coach Abonnement V2 — activation et statut élève */
.student-gate{max-width:720px;margin:32px auto;padding:clamp(24px,5vw,52px);border-radius:28px;background:#fff;box-shadow:0 18px 55px rgba(24,28,25,.09)}
.student-gate-kicker{display:block;margin-bottom:10px;font-size:.72rem;font-weight:800;letter-spacing:.14em;color:var(--coach-primary,#496c5b)}
.student-gate h2{margin:0 0 12px;font-size:clamp(1.8rem,6vw,3.2rem);line-height:1.02}.student-gate>p{max-width:590px;color:#68706b;line-height:1.65}
.student-activation{display:grid;gap:16px;margin-top:28px}.student-activation label{display:grid;gap:7px;font-size:.82rem;font-weight:800}.student-activation input{width:100%;box-sizing:border-box;padding:15px 16px;border:1px solid #dfe4e1;border-radius:14px;font:inherit;background:#fbfcfb}.student-activation input:focus{outline:2px solid var(--coach-primary,#496c5b);outline-offset:1px}.student-activation button,.student-gate>button,.renewal-options button{border:0;border-radius:14px;padding:15px 18px;background:var(--coach-primary,#496c5b);color:#fff;font:inherit;font-weight:800;cursor:pointer}.student-activation button:disabled{opacity:.55}.student-activation>small{color:#737b76;text-align:center}.student-form-error{margin:0!important;padding:12px 14px;border-radius:12px;background:#fff0ef;color:#9c332e!important;font-weight:700}.student-success{text-align:center}.student-success>button{margin-top:16px}.student-welcome{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 24px}.student-welcome small{font-weight:800;letter-spacing:.12em;color:var(--coach-primary,#496c5b)}.student-welcome h2{margin:5px 0 0}.student-welcome>span{font-size:.82rem;padding:9px 12px;border-radius:999px;background:#edf5f0;color:#315c47;font-weight:700}.student-loading{color:#707772}.renewal-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:28px 0}.renewal-options article{position:relative;display:grid;gap:5px;padding:22px;border:1px solid #e2e6e3;border-radius:20px}.renewal-options article.recommended{border:2px solid var(--coach-primary,#496c5b)}.renewal-options em{position:absolute;right:12px;top:-11px;padding:5px 8px;border-radius:999px;background:var(--coach-primary,#496c5b);color:#fff;font-size:.62rem;font-style:normal;font-weight:900}.renewal-options strong{font-size:2rem}.renewal-options span,.renewal-options small{color:#737b76}.renewal-options button{margin-top:12px;opacity:.5;cursor:not-allowed}@media(max-width:650px){.student-gate{margin:12px 0;border-radius:22px}.student-welcome{align-items:flex-start;flex-direction:column}.renewal-options{grid-template-columns:1fr}}


/* Coach Abonnement — gestion des élèves v2 */
.student-page{display:grid;gap:20px;max-width:1450px}
.student-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.student-overview article{padding:24px 26px;border:1px solid #e0e6f0;background:#fff;border-radius:18px;box-shadow:0 6px 24px rgba(21,34,58,.025)}
.student-overview span,.student-eyebrow{display:block;color:#8a96ab;font-size:10px;letter-spacing:.13em;font-weight:800}
.student-overview strong{display:block;color:var(--coach-secondary);font:800 38px Manrope,Arial,sans-serif;margin:10px 0 3px;line-height:1}
.student-overview small{font-size:12px;color:#7b879b}
.coach-admin .student-page>.panel{padding:0;overflow:hidden}
.student-section-heading{padding:28px 30px 23px;display:flex;justify-content:space-between;align-items:center;gap:18px}
.student-section-heading h2{font:800 23px Manrope,Arial,sans-serif;margin:7px 0 6px}
.student-section-heading p{margin:0!important;color:#75829a;font-size:13px;line-height:1.6;max-width:720px}
.student-eyebrow{color:var(--coach-primary)}
.student-available-note,.student-count{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border-radius:99px;background:#eef1ff;color:var(--coach-primary);font-size:11px;font-weight:800;white-space:nowrap}
.student-count{vertical-align:middle;padding:4px 10px;font-size:12px}
.student-add-form{display:grid;grid-template-columns:1fr 1.15fr 1fr auto;gap:14px;align-items:end;padding:0 30px 30px}
.student-add-form label{display:grid;gap:9px;min-width:0;font-size:12px;font-weight:800;color:#34425a}
.student-add-form input,.student-add-form select{width:100%;height:49px;min-width:0;padding:0 14px;border:1px solid #d9e0eb;border-radius:11px;background:#f9fbfe;color:#23324b;font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s}
.student-add-form input:focus,.student-add-form select:focus,.student-search input:focus{border-color:var(--coach-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--coach-primary) 13%,transparent)}
.student-add-form button{height:49px;padding:0 19px;border:0;border-radius:11px;background:var(--coach-primary);color:#fff;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.student-add-form button:hover{filter:brightness(.95)}.student-add-form button:disabled{opacity:.5;cursor:not-allowed}.student-add-form button span{margin-left:6px}
.student-form-note{padding:0 30px 20px;margin:0!important;font-size:12px}
.student-list-heading{border-bottom:1px solid #edf0f5}
.student-search{display:flex;align-items:center;gap:8px;width:min(280px,100%);padding:0 12px;border:1px solid #dce3ed;border-radius:11px;background:#f9fbfe;color:#8b97aa}
.student-search span{font-size:21px}.student-search input{width:100%;height:43px;border:0;outline:none;background:transparent;font:inherit;font-size:12px;color:#26344b}
.student-table-wrap{overflow-x:auto;padding:0 24px 14px}
.student-table{width:100%;border-collapse:collapse;text-align:left;min-width:720px}
.student-table th{padding:19px 14px 14px;color:#8a97a9;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;white-space:nowrap}
.student-table td{padding:16px 14px;border-top:1px solid #eef1f6;color:#4d5b70;font-size:12px;vertical-align:middle}
.student-table tbody tr:hover{background:#fafbff}.student-table tr[hidden]{display:none!important}
.student-identity{display:flex;align-items:center;gap:12px}.student-avatar{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#eef1ff;color:var(--coach-primary);font:800 15px Manrope}
.student-identity strong,.student-identity small{display:block}.student-identity strong{color:#1d2b43;font-size:13px}.student-identity small{margin-top:3px;color:#8995a8;font-size:11px;overflow-wrap:anywhere}
.student-serial{font-size:11px;font-weight:800;letter-spacing:.02em;color:#394963;background:#f2f5fa;border:1px solid #e5eaf2;padding:7px 9px;border-radius:8px;white-space:nowrap}
.student-pill{display:inline-flex;align-items:center;gap:7px;border-radius:99px;padding:7px 11px;font-size:11px;font-weight:800;white-space:nowrap}
.student-pill i{height:6px;width:6px;border-radius:50%;background:currentColor}
.student-pill--pending{color:#9b6a17;background:#fff4dd}.student-pill--active{color:#238257;background:#eaf8f0}.student-pill--inactive{color:#737d8e;background:#eef0f3}
.student-empty td{text-align:center;padding:36px 12px;color:#8793a6}.student-search-empty{margin:0!important;padding:12px 32px 24px;font-size:13px;color:#78859a}
.student-order{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--coach-secondary);color:#fff;padding:20px 25px;border-radius:16px}
.student-order strong,.student-order span{display:block}.student-order strong{font-size:13px}.student-order span{font-size:11px;color:rgba(255,255,255,.65);margin-top:5px}
.student-order a{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:10px;background:var(--coach-primary);color:#fff;text-decoration:none;font-weight:800;font-size:12px;white-space:nowrap}
@media(max-width:1200px){.student-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}.student-add-form button{align-self:end}}
@media(max-width:700px){.student-overview{grid-template-columns:1fr 1fr;gap:10px}.student-overview article{padding:19px}.student-overview article:last-child{grid-column:1/-1}.student-overview strong{font-size:30px}.student-section-heading{padding:23px 20px 19px;align-items:flex-start;flex-direction:column}.student-add-form{grid-template-columns:1fr;padding:0 20px 23px}.student-add-form button{width:100%}.student-list-heading{gap:14px}.student-search{width:100%}.student-table-wrap{padding:0 10px 12px}.student-order{flex-direction:column;align-items:stretch}.student-order a{width:100%}}

/* Coach abonnement — tarifs */
.pricing-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 24px}.pricing-head h2{font-size:clamp(23px,3vw,34px);margin:8px 0;color:var(--coach-primary,#263d32)}.pricing-head p{color:#64736b}.pricing-eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:#8d9b8d}.pricing-tag{background:#e8efe9;border-radius:99px;padding:10px 16px;white-space:nowrap;font-size:12px;font-weight:700;color:#47604d}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pricing-card{background:#fff;border:1px solid #e6ebe7;border-radius:18px;padding:24px;box-shadow:0 6px 20px rgba(20,35,27,.04);display:flex;flex-direction:column;gap:9px}.pricing-card-label{font-size:16px;font-weight:800;color:#24362b}.pricing-card small{color:#738078;min-height:32px}.pricing-input-wrap{display:flex;align-items:center;border:1px solid #d6dfd8;border-radius:12px;overflow:hidden;margin-top:14px;background:#fafcfa}.pricing-input-wrap input{width:100%;min-width:0;border:0;background:transparent;padding:15px;font-size:25px;font-weight:800;color:#24362b;outline:0}.pricing-input-wrap span{padding:15px;color:#738078;font-weight:800}.pricing-footer{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px}.pricing-footer p{color:#64736b;max-width:520px}.pricing-footer button{border:0;border-radius:11px;padding:14px 22px;background:var(--coach-primary,#294b3b);color:white;font-weight:800;cursor:pointer}#pricingMessage{grid-column:1/-1;margin:0;color:#2e6946}.pricing-note{margin-top:22px;padding:20px 24px;background:#fff9ec;border:1px solid #f0dfb8;border-radius:14px}.pricing-note p{margin:8px 0 0;color:#6e6655}@media(max-width:850px){.pricing-grid{grid-template-columns:1fr}.pricing-card small{min-height:0}.pricing-head,.pricing-footer{flex-direction:column;align-items:flex-start}.pricing-tag{white-space:normal}}

/* Coach Abonnement — préparation des paiements, sans Stripe */
.coach-payment-preview h3{font-size:1rem;margin:28px 0 0}
.coach-initial-price{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:25px;padding:22px 24px;border-radius:20px;background:#f2f6f2}
.coach-initial-price small{font-size:.72rem;font-weight:800;letter-spacing:.06em;max-width:310px}
.coach-initial-price strong{font-size:clamp(1.8rem,6vw,2.5rem)}
.coach-payment-plans article{background:#fff}.coach-payment-plans strong{color:#1c3028}
.coach-payment-notice{padding:15px 18px;border-radius:14px;background:#fff7e8;color:#745120;font-size:.88rem;line-height:1.5;margin:18px 0}
.coach-payment-disabled{width:100%;border:0;border-radius:14px;padding:16px;background:#9da9a2;color:#fff;font-weight:800;cursor:not-allowed}
.coach-payment-preview>small{display:block;margin-top:12px;text-align:center;color:#737b76}

/* Coach Abonnement — parcours paiement en préparation */
.coach-starter-benefits{padding:0;list-style:none;display:grid;gap:11px;margin:22px 0}.coach-starter-benefits li{padding-left:28px;position:relative;color:#3c5145}.coach-starter-benefits li:before{content:'✓';position:absolute;left:0;color:var(--coach-primary,#496c5b);font-weight:900}
.coach-renewal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}.coach-renewal-choices label{display:block;cursor:pointer;position:relative}.coach-renewal-choices input{position:absolute;top:16px;right:16px;accent-color:var(--coach-primary,#496c5b)}.coach-renewal-choices label>span{display:grid;gap:6px;padding:24px 18px;border:2px solid #e1e7e3;border-radius:18px}.coach-renewal-choices input:checked+span{border-color:var(--coach-primary,#496c5b);background:#f4f9f5}.coach-renewal-choices strong{font-size:1.8rem;color:#243b2e}.coach-renewal-choices small{color:#69776d}.coach-auto-renew{display:flex;gap:12px;align-items:flex-start;margin:14px 0 20px;padding:18px;background:#f5f7f5;border-radius:16px;cursor:pointer}.coach-auto-renew input{width:19px;height:19px;flex-shrink:0;accent-color:var(--coach-primary,#496c5b)}.coach-auto-renew span{display:grid;gap:4px}.coach-auto-renew small{line-height:1.5;color:#68776c}.coach-stripe-connect{display:grid;gap:16px}.coach-stripe-connect h3{margin:8px 0}.coach-stripe-badge{display:inline-block;margin-top:8px;padding:7px 11px;border-radius:999px;background:#fff0e3;color:#86582b;font-weight:700;font-size:.8rem}.coach-stripe-connect-btn{padding:15px 20px;border:0;border-radius:12px;background:#d6ded8;color:#516358;font-weight:800;cursor:not-allowed}.coach-stripe-connect>small{color:#69776d;line-height:1.5}
@media(max-width:560px){.coach-renewal-choices{grid-template-columns:1fr}}

/* Coach Abonnement : échéances sans paiement (préparation) */
.coach-renewal-reminder,.coach-schedule-admin{margin:22px 0;padding:22px;border:1px solid #dce4de;border-radius:18px;background:#fff}
.coach-renewal-reminder{background:#fff9ee;border-color:#ead7b5}
.coach-renewal-reminder p,.coach-schedule-explainer{color:#58665e;line-height:1.55}
.coach-schedule-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.coach-schedule-stats>div{background:#f5f7f5;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px}
.coach-schedule-stats strong{font-size:28px}.coach-schedule-stats span{font-size:13px;color:#58665e}
.coach-schedule-list>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #e7ebe8}
@media(max-width:650px){.coach-schedule-stats{grid-template-columns:1fr}.coach-schedule-list>div{flex-wrap:wrap}}

/* V4 — Préférences et suivi des abonnements */
.coach-account-preference{margin:22px 0;padding:24px;border:1px solid #dce5de;border-radius:18px;background:#fff}.coach-account-preference h3{margin:5px 0 10px}.coach-account-preference .coach-renewal-choices{margin:18px 0}.coach-pref-save{background:#596cf4;color:white;border:0;border-radius:12px;padding:13px 20px;font-weight:700;cursor:pointer}.coach-pref-save:disabled{opacity:.6}.coach-pref-feedback{min-height:20px;margin-top:12px}.coach-schedule-detail{margin-top:25px}.coach-schedule-table-wrap{overflow-x:auto}.coach-schedule-table{width:100%;border-collapse:collapse;text-align:left;min-width:600px}.coach-schedule-table th,.coach-schedule-table td{padding:12px;border-bottom:1px solid #e6ebe8}.coach-schedule-table th{font-size:12px;color:#59675e}.coach-schedule-detail>small{display:block;margin-top:12px;color:#59675e}

/* V5 — Informations tarifaires dans les choix d'abonnement */
.coach-account-preference .coach-renewal-choices strong small{font-size:.85rem;font-weight:600;color:#69776d}
.coach-account-preference .coach-renewal-choices .coach-yearly-saving{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;background:#e9f5ec;color:#256342;font-weight:800;font-size:.8rem}

/* Coach abonnement V2 — permissions élèves */
.student-access-button{border:1px solid #dce3f4;border-radius:10px;padding:9px 12px;background:#f3f6ff;color:#364cc9;font-weight:700;cursor:pointer;white-space:nowrap}
.student-access-modal{max-width:570px;width:min(94vw,570px)}
.student-access-list{max-height:50vh;overflow:auto;margin:20px 0}
.student-access-item{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 4px;border-bottom:1px solid #e8ebf2;cursor:pointer}
.student-access-item span{display:flex;flex-direction:column;gap:4px}
.student-access-item small{color:#69778c}
.student-access-item input{width:22px;height:22px;accent-color:#536af6;cursor:pointer}

/* Coach abonnement — navigation élève */
.coach-student-tabs{display:flex;gap:8px;margin:22px 0 20px;padding:5px;border:1px solid #e0e5ef;border-radius:16px;background:#fff}
.coach-student-tabs button{flex:1;border:0;border-radius:12px;padding:14px 10px;background:transparent;color:#47536c;font:inherit;font-weight:700;cursor:pointer}
.coach-student-tabs button.is-active{background:var(--coach-primary,#5369f6);color:#fff}
.coach-student-panel[hidden]{display:none!important}
.coach-student-panel .coach-account-preference{margin:0}
.coach-student-panel .pack-locked{cursor:not-allowed;opacity:.83}
.coach-student-panel .pack-locked .pack-cover-shade{background:linear-gradient(90deg,rgba(10,17,34,.88),rgba(10,17,34,.48))}
.coach-student-panel .pack-locked .pack-page-arrow{font-size:22px}
.coach-student-panel .pack-rich-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:5.2em}
@media(max-width:700px){.coach-student-tabs{position:sticky;bottom:10px;z-index:15;box-shadow:0 8px 28px #111b3340}.coach-student-tabs button{font-size:13px;padding:13px 6px}.coach-student-panel .pack-rich-description{-webkit-line-clamp:2;max-height:3.5em}}

/* Coach Abonnement — ressources complémentaires */
.coach-resource-admin{margin-top:24px}.coach-resource-admin form{display:grid;gap:14px;margin-top:18px}.coach-resource-admin label{display:grid;gap:7px;font-weight:600}.coach-resource-admin input,.coach-resource-admin select,.coach-resource-admin textarea{width:100%;max-width:100%;padding:12px;border:1px solid #d9dfeb;border-radius:10px;font:inherit}.coach-resource-admin [hidden],.coach-resource-text[hidden]{display:none!important}.coach-resource-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e8ecf2}.coach-resource-row button{cursor:pointer}.coach-resource-status{font-size:13px}.coach-resources-front{margin-top:32px}.coach-resource-cards{display:grid;gap:14px}.coach-resource-card{display:flex;gap:14px;padding:20px;border:1px solid #e0e5ed;background:#fff;border-radius:16px}.coach-resource-card>div{min-width:0;flex:1}.coach-resource-icon{font-size:24px}.coach-resource-card h3{margin:0 0 7px;font-size:17px}.coach-resource-card p{margin:0 0 12px;color:#66718a}.coach-resource-card audio{display:block;width:100%;max-width:440px;margin-top:12px}.coach-resource-card a,.coach-resource-toggle{display:inline-block;margin-top:10px;color:var(--coach-primary,#566cf0);font-weight:700}.coach-resource-text{white-space:normal;line-height:1.7;padding:14px 0;overflow-wrap:anywhere}@media(min-width:700px){.coach-resource-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ==========================================================
   REMINDBOX COACH ABONNEMENT — ADMIN PREMIUM V2
   Séances & ressources complémentaires
   ========================================================== */

/* SÉANCES : cartes plus confortables */
.pack-edit-page .videos-admin{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(220px,260px));
    gap:18px;
    margin:18px 0 28px;
}

.pack-edit-page .admin-video-card{
    border:1px solid #e3e8f1;
    border-radius:16px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 4px 16px rgba(20,35,65,.04);
    transition:box-shadow .2s ease,transform .2s ease;
}

.pack-edit-page .admin-video-card:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(20,35,65,.09);
}

.pack-edit-page .admin-video-thumb{
    border-radius:0;
    aspect-ratio:16/9;
}

.pack-edit-page .admin-video-copy{
    padding:14px 15px 6px;
}

.pack-edit-page .admin-video-copy strong{
    display:block;
    font-size:14px;
    line-height:1.4;
    white-space:normal;
    overflow:visible;
}

.pack-edit-page .admin-video-copy small{
    font-size:11px;
    margin-top:5px;
}

.pack-edit-page .video-admin-actions{
    padding:12px 14px 14px;
    gap:8px;
}

.pack-edit-page .video-admin-actions button{
    padding:9px 12px;
    border-radius:9px;
    font-size:12px;
    font-weight:700;
}

/* RESSOURCES : panneau premium */
.pack-edit-page .coach-resource-admin{
    margin-top:26px;
    padding:28px;
    border:1px solid #e2e8f2;
    border-radius:20px;
    background:linear-gradient(180deg,#fff 0%,#fbfcff 100%);
    box-shadow:0 8px 30px rgba(20,35,65,.035);
}

.pack-edit-page .coach-resource-admin .settings-kicker{
    display:inline-flex;
    align-items:center;
    color:#5369ef;
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:10px;
}

.pack-edit-page .coach-resource-admin h4{
    margin:0 0 8px;
    font-size:21px;
    font-weight:800;
    line-height:1.3;
    color:#172238;
}

.pack-edit-page .coach-resource-admin > p{
    margin:0;
    color:#748098;
    font-size:13px;
    line-height:1.6;
}

/* Liste des ressources existantes */
.pack-edit-page #coachResourceList{
    margin-top:18px;
    font-size:13px;
    color:#7a879c;
}

.pack-edit-page .coach-resource-row{
    padding:12px 15px;
    margin-bottom:8px;
    border:1px solid #e5eaf3;
    border-radius:12px;
    background:#f8faff;
}

.pack-edit-page .coach-resource-row strong{
    color:#1d2940;
}

.pack-edit-page .coach-resource-row button{
    border:0;
    border-radius:8px;
    padding:8px 11px;
    color:#bd3030;
    background:#fff0f0;
    font-size:12px;
    font-weight:700;
}

/* Formulaire */
.pack-edit-page #coachResourceForm{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    padding-top:22px;
    margin-top:20px;
    border-top:1px solid #e8edf5;
}

.pack-edit-page #coachResourceForm label{
    display:grid;
    align-content:start;
    gap:8px;
    min-width:0;
    color:#26334c;
    font-size:12px;
    font-weight:750;
}

.pack-edit-page #coachResourceForm label:has([name="kind"]),
.pack-edit-page #coachResourceForm label:has([name="description"]),
.pack-edit-page #coachResourceForm .coach-resource-file,
.pack-edit-page #coachResourceForm .coach-resource-body{
    grid-column:1/-1;
}

.pack-edit-page #coachResourceForm input,
.pack-edit-page #coachResourceForm select,
.pack-edit-page #coachResourceForm textarea{
    width:100%;
    min-height:48px;
    padding:12px 14px;
    border:1px solid #dce3ee;
    border-radius:11px;
    background:#fff;
    color:#1d2940;
    font-size:13px;
    font-weight:500;
    outline:none;
    transition:border-color .2s,box-shadow .2s;
}

.pack-edit-page #coachResourceForm input:focus,
.pack-edit-page #coachResourceForm select:focus,
.pack-edit-page #coachResourceForm textarea:focus{
    border-color:#5369ef;
    box-shadow:0 0 0 3px rgba(83,105,239,.12);
}

.pack-edit-page #coachResourceForm input[type="file"]{
    padding:14px;
    background:#f7f9fe;
    border:1px dashed #bfcbea;
    min-height:62px;
}

.pack-edit-page #coachResourceForm input[type="file"]::file-selector-button{
    border:0;
    background:#e8edff;
    color:#435bd9;
    border-radius:8px;
    padding:10px 14px;
    font-weight:750;
    margin-right:14px;
    cursor:pointer;
}

.pack-edit-page #coachResourceForm textarea{
    min-height:140px;
    resize:vertical;
}

/* Bouton principal */
.pack-edit-page #coachResourceForm > button[type="submit"]{
    grid-column:1/-1;
    justify-self:start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:12px 22px;
    border:0;
    border-radius:11px;
    background:#5369ef;
    color:#fff;
    font-size:13px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(83,105,239,.18);
    transition:background .2s,transform .2s;
}

.pack-edit-page #coachResourceForm > button[type="submit"]:hover{
    background:#4258dd;
    transform:translateY(-1px);
}

.pack-edit-page #coachResourceForm .coach-resource-status{
    grid-column:1/-1;
    margin:0;
    font-size:12px;
}

/* MOBILE */
@media(max-width:700px){

    .pack-edit-page .videos-admin{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:12px;
    }

    .pack-edit-page .coach-resource-admin{
        padding:20px 16px;
        border-radius:16px;
    }

    .pack-edit-page .coach-resource-admin h4{
        font-size:18px;
    }

    .pack-edit-page #coachResourceForm{
        grid-template-columns:1fr;
        gap:15px;
    }

    .pack-edit-page #coachResourceForm > *{
        grid-column:1/-1;
    }
}

@media(max-width:420px){

    .pack-edit-page .videos-admin{
        grid-template-columns:1fr;
    }
}



/* ==========================================================
   REMINDBOX — LISTE DES PACKS V3
   ========================================================== */

.coach-admin .packs-admin{
    display:grid;
    gap:22px;
    margin-top:28px;
}

.coach-admin .pack-admin-card.pack-admin-summary{
    display:grid;
    grid-template-columns:260px minmax(0,1fr)!important;
    align-items:center;
    gap:28px;
    padding:24px;
    background:#fff;
    border:1px solid #e1e7f0;
    border-radius:18px;
    box-shadow:0 4px 20px rgba(20,35,65,.035);
}

.coach-admin .pack-admin-summary .pack-admin-cover{
    width:100%;
    aspect-ratio:16/9;
    border-radius:13px;
    overflow:hidden;
}

.coach-admin .pack-admin-summary .pack-admin-info{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:11px;
    min-width:0;
}

.coach-admin .pack-admin-summary .pack-admin-info > small{
    display:inline-block;
    color:#5369ef;
    font-size:10px;
    font-weight:800;
    letter-spacing:.1em;
}

.coach-admin .pack-admin-summary .pack-admin-info h3{
    margin:0;
    font-size:21px;
    line-height:1.3;
    color:#172238;
}

.coach-admin .pack-admin-summary .pack-summary{
    margin:0;
    color:#69768b;
    font-size:13px;
    line-height:1.7;
}

.coach-admin .pack-admin-summary .pack-summary p{
    margin:0;
}

.coach-admin .pack-admin-summary .pack-admin-info > b{
    display:inline-flex;
    align-items:center;
    padding:6px 11px;
    border-radius:8px;
    background:#f0f3ff;
    color:#5369ef;
    font-size:12px;
    font-weight:800;
}

.coach-admin .pack-admin-summary .actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:5px;
}

.coach-admin .pack-admin-summary .actions button{
    border:0;
    border-radius:10px;
    padding:11px 16px;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}

.coach-admin .pack-admin-summary .actions button[data-openpack]{
    background:#5369ef;
    color:#fff;
}

.coach-admin .pack-admin-summary .actions button.danger{
    background:#fff0f0;
    color:#c43232;
}

/* Meilleure respiration des sections d'édition */

.coach-admin .pack-edit-page{
    display:grid;
    gap:24px;
}

.coach-admin .pack-edit-page .pack-settings-card{
    padding:28px;
    border-radius:18px;
}

.coach-admin .pack-edit-page .pack-settings-grid{
    gap:24px;
}

.coach-admin .pack-edit-page .video-manager{
    margin-top:12px;
}

/* Responsive */

@media(max-width:850px){

    .coach-admin .pack-admin-card.pack-admin-summary{
        grid-template-columns:1fr!important;
        gap:18px;
        padding:18px;
    }

    .coach-admin .pack-admin-summary .pack-admin-cover{
        max-height:260px;
    }

    .coach-admin .pack-edit-page .pack-settings-card{
        padding:20px;
    }
}


/* ==========================================================
   COACH ABONNEMENT — BOUTONS RESSOURCES
   ========================================================== */

.coach-admin .coach-resource-actions{
    display:flex;
    align-items:center;
    gap:8px;
}

/* Modifier : action secondaire bleue */
.coach-admin .coach-resource-actions button[data-resource-edit]{
    background:#edf0ff;
    color:#5369ef;
    border:1px solid #dce3ff;
    border-radius:9px;
    padding:10px 15px;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    transition:background .2s ease;
}

.coach-admin .coach-resource-actions button[data-resource-edit]:hover{
    background:#dfe5ff;
}

/* Supprimer : seule action rouge */
.coach-admin .coach-resource-actions button[data-resource-delete]{
    background:#fff0f0;
    color:#c43232;
    border:1px solid #ffe0e0;
    border-radius:9px;
    padding:10px 15px;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

/* Annuler : bouton secondaire */
.coach-admin #coachResourceForm .coach-resource-cancel{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    justify-self:start;
    background:#fff;
    color:#536078;
    border:1px solid #dce2ec;
    border-radius:10px;
    padding:12px 22px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:all .2s ease;
}

.coach-admin #coachResourceForm .coach-resource-cancel:hover{
    background:#f5f7fb;
    border-color:#bfc9d9;
}

/* Masquer correctement le bouton Annuler hors édition */
.coach-admin #coachResourceForm .coach-resource-cancel[hidden]{
    display:none!important;
}

/* Espacement du formulaire */
.coach-admin #coachResourceForm{
    gap:14px;
}

.coach-admin #coachResourceForm .coach-resource-status{
    margin:0;
    color:#69768b;
    font-size:12px;
}

@media(max-width:600px){
    .coach-admin .coach-resource-actions{
        flex-wrap:wrap;
    }
}


/* ==========================================================
   REMINDBOX COACH — FILIGRANE DYNAMIQUE
   ========================================================== */

.video-wrap{
    position:relative;
}

.video-wrap .video-watermark{
    position:absolute;
    z-index:20;
    pointer-events:none;
    user-select:none;
    max-width:70%;
    padding:7px 12px;
    border-radius:6px;
    background:rgba(0,0,0,.25);
    color:rgba(255,255,255,.72);
    font-size:11px;
    font-weight:600;
    letter-spacing:.08em;
    text-shadow:0 1px 3px rgba(0,0,0,.5);
    transition:top .6s ease,left .6s ease,right .6s ease,bottom .6s ease;
}

.video-wrap .video-watermark.wm-top-left{
    top:8%;
    left:5%;
    right:auto;
    bottom:auto;
}

.video-wrap .video-watermark.wm-top-right{
    top:8%;
    right:5%;
    left:auto;
    bottom:auto;
}

.video-wrap .video-watermark.wm-bottom-left{
    bottom:15%;
    left:5%;
    right:auto;
    top:auto;
}

.video-wrap .video-watermark.wm-bottom-right{
    bottom:15%;
    right:5%;
    left:auto;
    top:auto;
}


/* ==========================================================
   REMINDBOX COACH — VISIONNEUSE PDF
   ========================================================== */

.coach-resource-pdf-open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 18px;
    margin-top:12px;
    background:#edf0ff;
    color:#5369ef;
    border:1px solid #dce3ff;
    border-radius:10px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.coach-resource-pdf-open:hover{
    background:#dfe5ff;
}

.coach-pdf-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,.82);
    backdrop-filter:blur(8px);
}

.coach-pdf-dialog{
    width:100%;
    max-width:1000px;
    height:min(90vh,950px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 80px rgba(0,0,0,.25);
}

.coach-pdf-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:18px 24px;
    border-bottom:1px solid #e8ecf2;
}

.coach-pdf-header strong{
    font-size:15px;
    color:#20283b;
}

.coach-pdf-close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex-shrink:0;
    background:#f1f3f8;
    border:0;
    border-radius:50%;
    color:#475569;
    font-size:24px;
    cursor:pointer;
}

.coach-pdf-content{
    position:relative;
    flex:1;
    min-height:0;
}

.coach-pdf-content iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
}

.coach-pdf-watermark{
    position:absolute;
    right:20px;
    bottom:20px;
    z-index:2;
    pointer-events:none;
    padding:7px 12px;
    border-radius:6px;
    background:rgba(15,23,42,.35);
    color:rgba(255,255,255,.8);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
}

@media(max-width:600px){
    .coach-pdf-modal{
        padding:0;
    }

    .coach-pdf-dialog{
        height:100%;
        max-height:100%;
        border-radius:0;
    }

    .coach-pdf-header{
        padding:14px 16px;
    }
}

/* ==========================================================
   REMINDBOX COACH — VISIONNEUSE PDF
   ========================================================== */

.coach-resource-pdf-open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 18px;
    margin-top:12px;
    background:#edf0ff;
    color:#5369ef;
    border:1px solid #dce3ff;
    border-radius:10px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.coach-resource-pdf-open:hover{
    background:#dfe5ff;
}

.coach-pdf-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,.82);
    backdrop-filter:blur(8px);
}

.coach-pdf-dialog{
    width:100%;
    max-width:1000px;
    height:min(90vh,950px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 80px rgba(0,0,0,.25);
}

.coach-pdf-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:18px 24px;
    border-bottom:1px solid #e8ecf2;
}

.coach-pdf-header strong{
    font-size:15px;
    color:#20283b;
}

.coach-pdf-close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex-shrink:0;
    background:#f1f3f8;
    border:0;
    border-radius:50%;
    color:#475569;
    font-size:24px;
    cursor:pointer;
}

.coach-pdf-content{
    position:relative;
    flex:1;
    min-height:0;
}

.coach-pdf-content iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
}

.coach-pdf-watermark{
    position:absolute;
    right:20px;
    bottom:20px;
    z-index:2;
    pointer-events:none;
    padding:7px 12px;
    border-radius:6px;
    background:rgba(15,23,42,.35);
    color:rgba(255,255,255,.8);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
}

@media(max-width:600px){
    .coach-pdf-modal{
        padding:0;
    }

    .coach-pdf-dialog{
        height:100%;
        max-height:100%;
        border-radius:0;
    }

    .coach-pdf-header{
        padding:14px 16px;
    }
}

/* ==========================================================
   REMINDBOX COACH — VISIONNEUSE PDF
   ========================================================== */

.coach-resource-pdf-open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:11px 18px;
    margin-top:12px;
    background:#edf0ff;
    color:#5369ef;
    border:1px solid #dce3ff;
    border-radius:10px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.coach-resource-pdf-open:hover{
    background:#dfe5ff;
}

.coach-pdf-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,.82);
    backdrop-filter:blur(8px);
}

.coach-pdf-dialog{
    width:100%;
    max-width:1000px;
    height:min(90vh,950px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#fff;
    border-radius:18px;
    box-shadow:0 30px 80px rgba(0,0,0,.25);
}

.coach-pdf-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:18px 24px;
    border-bottom:1px solid #e8ecf2;
}

.coach-pdf-header strong{
    font-size:15px;
    color:#20283b;
}

.coach-pdf-close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    flex-shrink:0;
    background:#f1f3f8;
    border:0;
    border-radius:50%;
    color:#475569;
    font-size:24px;
    cursor:pointer;
}

.coach-pdf-content{
    position:relative;
    flex:1;
    min-height:0;
}

.coach-pdf-content iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
}

.coach-pdf-watermark{
    position:absolute;
    right:20px;
    bottom:20px;
    z-index:2;
    pointer-events:none;
    padding:7px 12px;
    border-radius:6px;
    background:rgba(15,23,42,.35);
    color:rgba(255,255,255,.8);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
}

@media(max-width:600px){
    .coach-pdf-modal{
        padding:0;
    }

    .coach-pdf-dialog{
        height:100%;
        max-height:100%;
        border-radius:0;
    }

    .coach-pdf-header{
        padding:14px 16px;
    }
}

/* ==========================================================
   REMINDBOX COACH — INTRODUCTION PROGRAMME
   ========================================================== */

.coach-pack-page .pack-detail-cover{
    min-height:300px;
}

.coach-pack-page .pack-detail-cover .pack-cover-copy{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
}

.coach-pack-page .pack-intro{
    padding:24px 4px 4px;
}

.coach-pack-page .pack-intro-text{
    color:#596579;
    font-size:15px;
    line-height:1.7;
    overflow:hidden;
}

.coach-pack-page .pack-intro-text p{
    margin:0 0 10px;
}

.coach-pack-page .pack-intro-text.is-collapsed{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.coach-pack-page .pack-intro-toggle{
    display:inline-flex;
    align-items:center;
    padding:8px 0;
    margin-top:4px;
    border:0;
    background:transparent;
    color:var(--coach-primary);
    font-size:13px;
    font-weight:800;
    cursor:pointer;
}

.coach-pack-page .pack-intro-toggle[hidden]{
    display:none!important;
}

@media(max-width:600px){

    .coach-pack-page .pack-detail-cover{
        min-height:250px;
    }

    .coach-pack-page .pack-detail-cover .pack-cover-copy{
        padding:22px;
    }

    .coach-pack-page .pack-intro{
        padding:20px 0 0;
    }

    .coach-pack-page .pack-intro-text{
        font-size:14px;
        line-height:1.65;
    }

    .coach-pack-page .pack-detail-content{
        padding-top:26px;
    }
}

/* Coach V2 — espace élève */
.coach-v2-dashboard{margin:0 0 32px}.coach-v2-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.coach-v2-stats>div,.coach-v2-block{background:#fff;border:1px solid #e8e5df;border-radius:16px;padding:18px;margin-bottom:16px}.coach-v2-stats small,.coach-v2-stats span{display:block;color:#777;font-size:12px}.coach-v2-stats strong{display:block;font-size:28px;margin:8px 0}.coach-v2-block h3{margin:0 0 14px}.coach-v2-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #eee;color:inherit;text-decoration:none}.coach-v2-item small{color:#777}.coach-v2-history{display:flex;align-items:center;gap:16px}.coach-v2-history time{font-size:12px;white-space:nowrap}.coach-v2-history .coach-v2-item{flex:1}.coach-fav{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:26px;background:#fff;border:1px solid #ddd;border-radius:50%;cursor:pointer;margin:8px 0 16px 8px;color:#9d545c}@media(max-width:600px){.coach-v2-stats{gap:8px}.coach-v2-stats>div,.coach-v2-block{padding:14px}.coach-v2-item{flex-direction:column;align-items:flex-start;gap:3px}}

/* Remindbox Coach V2.1 — Navigation élève mobile */
.coach-public:has(.coach-v21-shell) .hero{display:none!important}
.coach-public:has(.coach-v21-shell) .public-head>span{display:none}
.coach-public:has(.coach-v21-shell) .public-main{padding-top:24px;padding-bottom:115px}
.coach-public:has(.coach-v21-shell) footer{display:none}
.coach-v21-view[hidden]{display:none!important}
.coach-v21-shell{max-width:1050px;margin:0 auto}
.coach-v21-greeting,.coach-v21-page-title{margin:0 0 28px}
.coach-v21-greeting>small,.coach-v21-page-title>small{display:block;color:var(--coach-primary,#526aff);font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:8px}
.coach-v21-greeting h1,.coach-v21-page-title h1{font-family:Manrope,Inter,sans-serif;font-size:clamp(26px,5vw,36px);line-height:1.18;letter-spacing:-.045em;margin:0 0 7px;color:#11192e}
.coach-v21-greeting p,.coach-v21-page-title p{color:#68758a;margin:0;font-size:14px}
.coach-v21-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:26px 0 16px}
.coach-v21-section-heading h2{font-family:Manrope,Inter,sans-serif;font-size:19px;letter-spacing:-.03em;margin:0;color:#11192e}
.coach-v21-section-heading button{border:0;background:none;color:var(--coach-primary,#526aff);font-weight:800;font-size:13px;cursor:pointer;padding:8px}
.coach-v21-program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px}
.coach-v21-program-grid .pack{margin:0;min-width:0}
.coach-v21-resume{display:flex;flex-direction:column;min-height:182px;padding:22px;border-radius:22px;background:#111b33;color:white;text-decoration:none;box-shadow:0 12px 25px #111b3317}
.coach-v21-resume-kicker{font-size:10px;letter-spacing:.15em;font-weight:800;color:#a8baff;margin-bottom:14px}
.coach-v21-resume>strong{font-family:Manrope,Inter,sans-serif;font-size:22px;line-height:1.2;letter-spacing:-.025em}
.coach-v21-resume>small{margin-top:6px;color:#bdc7dc;font-size:13px}
.coach-v21-resume-bottom{margin-top:auto;display:flex;align-items:center;gap:16px;padding-top:18px}
.coach-v21-progress-track{display:block;height:5px;border-radius:9px;background:#e6e9f2;overflow:hidden;flex:1}
.coach-v21-progress-track>span{display:block;height:100%;background:var(--coach-primary,#536dff);border-radius:9px}
.coach-v21-resume .coach-v21-progress-track{background:#ffffff40}
.coach-v21-resume .coach-v21-progress-track>span{background:#a9b9ff}
.coach-v21-resume-play{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#fff;color:#526aff;font-size:15px}
.coach-v21-activity-hero{padding:26px;border-radius:22px;background:#fff;border:1px solid #e9ebf0}
.coach-v21-activity-hero>small{font-size:11px;color:#7a8498;font-weight:800;letter-spacing:.1em}
.coach-v21-activity-hero>strong{display:block;font-family:Manrope,sans-serif;font-size:56px;line-height:1.2;letter-spacing:-.06em;margin:8px 0;color:#11192e}
.coach-v21-activity-hero>strong span{font-size:24px}
.coach-v21-activity-hero>p{font-size:14px;color:#6b7586;margin:0 0 20px}
.coach-v21-history{padding:12px 0;border-bottom:1px solid #e7eaf0}
.coach-v21-history time{font-size:12px;color:#7a8498;display:block;margin-bottom:3px}
.coach-v21-video-link{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;color:#10182b;padding:12px 0;border-bottom:1px solid #e9ebf0}
.coach-v21-video-link strong,.coach-v21-video-link small{display:block}
.coach-v21-video-link strong{font-size:14px}.coach-v21-video-link small{font-size:12px;color:#7b8596;margin-top:3px}
.coach-v21-link-arrow{color:var(--coach-primary,#536dff);font-size:21px}
.coach-v21-empty{font-size:14px;color:#798497;line-height:1.6;padding:15px 0}
.coach-v21-account-status{display:flex;align-items:center;gap:9px;background:#e9f4ee;border-radius:12px;padding:13px 15px;font-size:13px;font-weight:700;color:#31624b;margin:0 0 30px}
.coach-v21-active-dot{width:8px;height:8px;border-radius:50%;background:#39a16b}
.coach-v21-favorites{margin-bottom:28px}
.coach-v21-bottom-nav{position:fixed;z-index:1000;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:stretch;gap:0;background:#fff;border-top:1px solid #e9ecf2;box-shadow:0 -8px 30px #14244a0b;padding:7px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
.coach-v21-bottom-nav button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:53px;border:0;background:transparent;color:#8790a3;font:700 10px Inter,sans-serif;cursor:pointer}
.coach-v21-bottom-nav button svg{width:22px;height:22px}
.coach-v21-bottom-nav button.is-active{color:var(--coach-primary,#536dff)}
.coach-v21-bottom-nav button.is-active svg{stroke-width:2.3}
@media(min-width:850px){.coach-v21-bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:min(650px,100%);border:1px solid #e9ecf2;border-radius:20px 20px 0 0}.coach-v21-bottom-nav button{font-size:12px}}
@media(max-width:600px){.coach-public:has(.coach-v21-shell) .public-main{padding-top:22px;padding-bottom:120px}.coach-v21-greeting,.coach-v21-page-title{margin-bottom:24px}.coach-v21-section-heading{margin:24px 0 14px}.coach-v21-program-grid{grid-template-columns:1fr}.coach-v21-program-grid .pack-cover{min-height:235px}.coach-v21-bottom-nav button{font-size:10px}}

/* Coach V2.2 : cartes lisibles et favoris par programme */
.coach-v22-pack-item{position:relative;min-width:0}
.coach-v22-pack-item .pack{display:block;width:100%}
.coach-v22-pack-item .pack-cover{position:relative;overflow:hidden}
.coach-v21-program-grid .pack-cover-copy{padding-right:58px}
.coach-v21-program-grid .pack-cover-copy h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.coach-v22-card-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;line-height:1.4;max-height:2.8em;margin:8px 0!important}
.coach-v21-program-grid .pack-rich-description{display:none!important}
.coach-v21-program-grid .pack-cover-copy b{display:block;margin-top:10px}
.coach-v22-pack-fav{position:absolute;top:12px;right:12px;z-index:8;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#fff;color:#3b4a69;display:grid;place-items:center;font-size:27px;line-height:1;cursor:pointer;box-shadow:0 3px 14px #0002}
.coach-v22-pack-fav[aria-pressed="true"]{color:#ec4770}
.coach-v22-pack-fav:disabled{opacity:.5}
.coach-v22-fav-title{font-size:15px;margin:20px 0 12px}
.coach-pack-page .public-main{padding-bottom:115px!important}
.coach-pack-page footer{display:none}
.coach-pack-page .coach-v21-bottom-nav{z-index:1100}
.coach-pack-page .coach-v21-bottom-nav a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:53px;text-decoration:none;color:#8790a3;font:700 10px Inter,sans-serif}
.coach-pack-page .coach-v21-bottom-nav a svg{width:22px;height:22px}
.coach-pack-page .coach-v21-bottom-nav a.is-active{color:var(--coach-primary,#536dff)}

/* Coach V2.3 : cinq onglets et favoris supprimables depuis leur rubrique. */
.coach-v23-video-favorite{display:flex;align-items:center;gap:8px}
.coach-v23-video-favorite .coach-v21-video-link{flex:1;min-width:0}
.coach-v23-remove-video{flex:0 0 42px;width:42px;height:42px;border:1px solid #f4d4df;border-radius:50%;background:#fff5f8;color:#e54775;font-size:23px;cursor:pointer}
.coach-v23-remove-video:disabled{opacity:.45}
.coach-v21-bottom-nav button,.coach-pack-page .coach-v21-bottom-nav a{padding-left:1px;padding-right:1px}
@media(max-width:400px){.coach-v21-bottom-nav button,.coach-pack-page .coach-v21-bottom-nav a{font-size:9px;gap:3px}.coach-v21-bottom-nav button svg,.coach-pack-page .coach-v21-bottom-nav a svg{width:20px;height:20px}}

/* V2.3.1 — Icônes favoris cohérentes avec la navigation */
.coach-v22-pack-fav{width:38px;height:38px;top:12px;right:12px;border:1px solid rgba(255,255,255,.48);background:rgba(15,23,42,.52);color:#fff;box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s,color .2s,transform .2s}
.coach-v22-pack-fav svg,.coach-v23-remove-video svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}
.coach-v22-pack-fav[aria-pressed="true"]{color:#fff;background:#536dff;border-color:#536dff}
.coach-v22-pack-fav[aria-pressed="true"] svg{fill:currentColor;fill-opacity:.2}
.coach-v22-pack-fav:focus-visible,.coach-v23-remove-video:focus-visible{outline:3px solid #536dff;outline-offset:3px}
.coach-v23-remove-video{display:grid;place-items:center;flex-basis:38px;width:38px;height:38px;border-color:#dce3f5;background:#f5f7ff;color:#536dff;box-shadow:none}
.coach-v23-remove-video svg{fill:currentColor;fill-opacity:.12}
@media(hover:hover){.coach-v22-pack-fav:hover{transform:scale(1.06);background:#536dff}.coach-v23-remove-video:hover{background:#e8edff}}

/* V2.3.2 — Empêche les styles globaux de déformer les boutons favoris. */
.coach-v22-pack-fav,
.coach-v23-remove-video {
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  max-width:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  flex:0 0 38px !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:50% !important;
  aspect-ratio:1 / 1;
  line-height:1 !important;
  overflow:hidden;
  transform:none;
}
.coach-v22-pack-fav svg,
.coach-v23-remove-video svg {
  display:block !important;
  box-sizing:border-box;
  width:21px !important;
  height:21px !important;
  min-width:21px;
  min-height:21px;
  flex:0 0 21px;
  margin:0 !important;
  padding:0 !important;
  aspect-ratio:1 / 1;
}
.coach-v22-pack-fav:hover { transform:none !important; }

/* Coach V2.4 — activité élève */
.coach-v24-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0 8px}.coach-v24-stats>div{min-width:0;background:#fff;border:1px solid #e7eaf0;border-radius:16px;padding:14px 10px}.coach-v24-stats strong{display:block;font-size:clamp(18px,5vw,26px);line-height:1.25;color:#111b30}.coach-v24-stats span{display:block;font-size:11px;color:#64748b;margin-top:6px}.coach-v24-note{font-size:12px;color:#64748b;line-height:1.5;margin:9px 0 20px}.coach-v24-pack-list{display:grid;gap:10px}.coach-v24-pack{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:15px;background:#fff;border:1px solid #e7eaf0;border-radius:16px;text-decoration:none;color:#111b30}.coach-v24-pack strong,.coach-v24-pack small{display:block}.coach-v24-pack small{margin-top:4px;color:#64748b}.coach-v24-pack b{color:var(--coach-primary,#536dff)}.coach-v24-pack>.coach-v21-progress-track{grid-column:1/-1;width:100%}.coach-v24-calendar{padding:16px;background:#fff;border:1px solid #e7eaf0;border-radius:18px}.coach-v24-calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.coach-v24-calendar-head strong{text-transform:capitalize}.coach-v24-calendar-head button{border:1px solid #e7eaf0;border-radius:50%;background:#fff;width:38px;height:38px;font-size:24px;color:#334155}.coach-v24-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.coach-v24-weekday{font-size:12px;color:#64748b;padding:7px 0}.coach-v24-calendar-grid button{position:relative;border:0;border-radius:12px;min-width:0;aspect-ratio:1;background:transparent;color:#1e293b;font:inherit;font-size:13px}.coach-v24-calendar-grid button.has-practice{font-weight:700}.coach-v24-calendar-grid button.is-selected{background:var(--coach-primary,#536dff);color:white}.coach-v24-calendar-grid button.is-today:not(.is-selected){outline:1px solid var(--coach-primary,#536dff)}.coach-v24-calendar-grid button i{position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--coach-primary,#536dff)}.coach-v24-calendar-grid button.is-selected i{background:#fff}.coach-v24-day-details{margin-top:16px;padding-top:14px;border-top:1px solid #e7eaf0}.coach-v24-day-details>strong{display:block;margin-bottom:9px}.coach-v24-day-details>p{font-size:13px;color:#64748b}.coach-v24-history{display:grid;gap:10px}@media(max-width:360px){.coach-v24-stats{gap:5px}.coach-v24-stats>div{padding:10px 7px}.coach-v24-stats span{font-size:10px}}

/* V2.6 — objectifs de pratique */
.coach-v26-goal{background:#fff;border:1px solid #e7eaf0;border-radius:20px;padding:20px;margin:16px 0 22px}.coach-v26-goal-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.coach-v26-goal-heading small{color:#536dff;letter-spacing:.1em;font-weight:800;font-size:10px}.coach-v26-goal h2{margin:5px 0 0;font-size:18px;line-height:1.3}.coach-v26-goal-heading label{grid-column:2;grid-row:1;font-size:11px;color:#64748b}.coach-v26-goal-heading select{grid-column:2;grid-row:2;border:1px solid #dce2ef;border-radius:10px;padding:9px;background:#f8faff;font:inherit;font-size:14px;color:#111b30}.coach-v26-goal-number{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:22px 0 10px}.coach-v26-goal-number strong{font-size:32px;line-height:1;color:#111b30}.coach-v26-goal-number strong span{font-size:20px;color:#64748b}.coach-v26-goal-number>span{font-size:12px;color:#64748b}.coach-v26-track{height:10px;background:#edf1fa;border-radius:99px;overflow:hidden}.coach-v26-track>span{display:block;height:100%;background:#536dff;border-radius:99px;transition:width .2s}.coach-v26-goal p{font-size:13px;margin:12px 0 8px;color:#334155}.coach-v26-streak{font-size:12px;color:#64748b}.coach-v26-status{font-size:12px;color:#536dff;margin-top:6px}.coach-v26-home-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0 0 20px;padding:13px 15px;border:1px solid #e7eaf0;border-radius:14px;background:#fff;color:#111b30;text-align:left;font:inherit;font-size:13px}.coach-v26-home-link strong{color:#536dff;font-size:13px;white-space:nowrap}@media(max-width:360px){.coach-v26-goal{padding:14px}.coach-v26-goal h2{font-size:16px}.coach-v26-goal-heading select{max-width:65px}}

/* V2.7 — Objectif hebdomadaire : choix clair et tactile */
.coach-v26-goal{padding:22px;border-radius:22px;box-shadow:0 7px 24px rgba(20,32,60,.035)}
.coach-v26-goal-heading{display:flex;flex-direction:column;align-items:stretch;gap:20px}
.coach-v26-goal-heading>div:first-child{width:100%}
.coach-v26-goal-heading h2{font-size:19px;line-height:1.3;margin:7px 0 0}
.coach-v27-goal-picker{width:100%;min-width:0}
.coach-v27-picker-label{display:block;color:#66758c;font-size:12px;font-weight:700;margin-bottom:10px}
.coach-v27-goal-options{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%}
.coach-v27-goal-options button{display:grid;place-items:center;min-width:0;height:42px;border-radius:11px;border:1px solid #e0e6f1;background:#f7f9fc;color:#46536b;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.coach-v27-goal-options button.is-selected{background:#536dff;border-color:#536dff;color:white;box-shadow:0 4px 12px rgba(83,109,255,.18)}
.coach-v27-goal-options button:focus-visible{outline:3px solid #9cadff;outline-offset:2px}
.coach-v27-goal-options button:disabled{cursor:wait;opacity:.6}
.coach-v26-goal-number{margin:25px 0 12px}
.coach-v26-goal-number strong{font-size:38px}
.coach-v26-track{height:9px}
.coach-v26-goal p{line-height:1.5;margin-top:14px}
@media(max-width:370px){.coach-v26-goal{padding:17px}.coach-v27-goal-options{gap:4px}.coach-v27-goal-options button{height:40px;font-size:13px}}
/* V2.7 — Lecteur : composition plus immersive, sans toucher au streaming */
.coach-pack-page .player-modal{padding:clamp(10px,3vw,24px);overflow-y:auto;align-items:center}
.coach-pack-page .player-shell{width:min(1000px,100%);border:1px solid rgba(255,255,255,.13);box-shadow:0 22px 70px rgba(0,0,0,.36);padding:clamp(10px,2vw,20px);border-radius:20px}
.coach-pack-page .player-shell h2{font-size:clamp(18px,3vw,25px);line-height:1.25;margin:16px 5px 6px}
.coach-pack-page .player-shell>.close{width:42px;height:42px;display:grid;place-items:center;top:-49px;right:0;font-size:30px;line-height:1;border-radius:50%;background:rgba(20,30,50,.85)}
.coach-pack-page .video-wrap{border-radius:12px}
.coach-v27-resume{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 12px;margin-top:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:11px;font-size:12px;color:#e2e8f0}
.coach-v27-resume button{border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:9px;padding:8px 12px;cursor:pointer;font-size:12px;font-weight:700}
.coach-v27-resume button:focus-visible{outline:2px solid #aab9ff;outline-offset:2px}
@media(max-width:650px){.coach-pack-page .player-shell{padding:9px;border-radius:14px}.coach-pack-page .player-shell h2{margin-top:13px}.coach-pack-page .player-modal{padding:10px}}


/* V2.8 — Lecteur élève : refonte visuelle CSS uniquement.
   Le JS de reprise et le HTML généré par coach-pack.js sont inchangés. */
.coach-pack-page .player-modal{
  padding:16px;overflow-y:auto;align-items:center;
  background:rgba(5,10,22,.90);backdrop-filter:blur(8px);
}
.coach-pack-page .player-shell{
  display:flex;flex-direction:column;position:relative;
  width:min(900px,100%);max-height:none;min-width:0;
  padding:clamp(16px,3vw,26px);border:1px solid rgba(255,255,255,.09);
  border-radius:22px;background:#101a2d;box-shadow:0 24px 85px rgba(0,0,0,.45);
}
.coach-pack-page .player-shell > .close{
  position:absolute;top:14px;right:14px;z-index:15;
  display:grid;place-items:center;width:40px;height:40px;
  border:1px solid rgba(255,255,255,.14);border-radius:50%;
  background:#25314a;color:#fff;font-size:25px;line-height:1;
}
.coach-pack-page .player-shell > h2{
  order:-2;max-width:calc(100% - 56px);margin:2px 0 17px;
  color:#fff;font:800 clamp(19px,3.6vw,25px)/1.25 Manrope,Inter,sans-serif;
  letter-spacing:-.025em;
}
.coach-pack-page .player-shell > .video-wrap{
  order:-1;flex:none;width:100%;aspect-ratio:16/9;
  margin:0;border:0;border-radius:14px;background:#000;
}
.coach-pack-page .player-shell > .coach-v27-resume{
  order:0;display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin:12px 0 0;padding:0;min-height:40px;
  border:0;border-radius:0;background:transparent;color:#c6d0e4;
  font-size:12px;line-height:1.4;
}
.coach-pack-page .coach-v27-resume button{
  flex:0 0 auto;min-height:38px;padding:8px 12px;
  border:1px solid rgba(255,255,255,.17);border-radius:10px;
  background:rgba(255,255,255,.055);color:#f2f5fc;
}
.coach-pack-page .player-shell > p{
  order:1;margin:14px 0 0;color:#aab7cd;
  font-size:13px;line-height:1.55;
}
.coach-pack-page .player-shell > .player-actions{
  order:2;justify-content:flex-start;margin:15px 0 0;
}
.coach-pack-page .player-shell .watch-tv{
  width:auto;min-height:40px;padding:9px 14px;
  background:transparent;border:1px solid rgba(255,255,255,.16);
  border-radius:11px;color:#c7d2e7;font-size:12px;font-weight:700;
}
.coach-pack-page .player-shell .watch-tv:hover{background:rgba(255,255,255,.08)}
@media(max-width:650px){
  .coach-pack-page .player-modal{padding:10px;align-items:center}
  .coach-pack-page .player-shell{padding:14px;border-radius:17px}
  .coach-pack-page .player-shell > .close{top:11px;right:11px;width:36px;height:36px;font-size:23px}
  .coach-pack-page .player-shell > h2{margin:2px 0 15px;max-width:calc(100% - 48px);font-size:19px}
  .coach-pack-page .player-shell > .video-wrap{border-radius:11px}
  .coach-pack-page .player-shell > .coach-v27-resume{gap:8px;flex-wrap:wrap}
  .coach-pack-page .player-shell > p{margin-top:13px}
  .coach-pack-page .player-shell > .player-actions{margin-top:12px}
  .coach-pack-page .player-shell .watch-tv{width:auto;min-height:40px}
}

/* V2.8.1 — Fermeture : cercle parfaitement proportionné, sans étirement */
.coach-pack-page .player-shell > .close {
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  padding:0 !important;
  margin:0 !important;
  aspect-ratio:1/1;
  border-radius:50% !important;
  line-height:1 !important;
  transform:none !important;
}
.coach-pack-page .player-shell > .close svg {
  display:block;width:18px;height:18px;flex:none;
}
@media(max-width:650px){
  .coach-pack-page .player-shell > .close{
    flex-basis:38px !important;
    width:38px !important;min-width:38px !important;max-width:38px !important;
    height:38px !important;min-height:38px !important;max-height:38px !important;
  }
}


/* V2.8.2 — Favoris vidéo : bouton superposé, sans carte géante. */
.coach-pack-page .pack-page-lessons > .coach-v282-lesson-card {
  position:relative;min-width:0;
}
.coach-pack-page .coach-v282-lesson-card > .lesson {
  display:block;width:100%;height:100%;margin:0;
}
.coach-pack-page .coach-v282-lesson-card > .coach-v282-fav {
  position:absolute !important;top:12px;right:12px;z-index:5;
  box-sizing:border-box !important;display:flex !important;
  align-items:center;justify-content:center;
  width:38px !important;height:38px !important;
  min-width:38px !important;max-width:38px !important;
  min-height:38px !important;max-height:38px !important;
  margin:0 !important;padding:0 !important;flex:none !important;
  aspect-ratio:1;border-radius:50% !important;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(18,27,44,.72);color:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.14);
  cursor:pointer;line-height:1;
}
.coach-pack-page .coach-v282-fav svg {
  display:block;width:20px;height:20px;flex:none;
}
.coach-pack-page .coach-v282-fav[aria-pressed="true"] {
  background:#536dff;border-color:#536dff;color:#fff;
}
.coach-pack-page .coach-v282-fav[aria-pressed="true"] svg {
  fill:currentColor;fill-opacity:.22;
}
.coach-pack-page .coach-v282-fav:focus-visible {
  outline:3px solid #536dff;outline-offset:3px;
}
.coach-pack-page .coach-v282-fav:disabled {opacity:.65;cursor:wait}

/* V2.8.3 — Séparer clairement « déjà vue » et favori. */
.coach-pack-page .lesson.is-watched .lesson-thumb::after {
  right:auto !important;
  left:10px !important;
  top:10px !important;
  width:24px !important;
  height:24px !important;
  z-index:2;
}
.coach-pack-page .coach-v282-lesson-card > .coach-v282-fav {
  top:10px !important;
  right:10px !important;
  z-index:4;
}
/* Le cœur des programmes enregistrés reste visiblement actif dans Favoris. */
.coach-public [data-view="favorites"] .coach-v22-pack-fav[aria-pressed="true"] {
  background:#536dff !important;
  border-color:#536dff !important;
  color:#fff !important;
}
.coach-public [data-view="favorites"] .coach-v22-pack-fav[aria-pressed="true"] svg {
  fill:currentColor;
  fill-opacity:.25;
}

/* Remindbox Coach V2.9 — Suivi de pratique */
.coach-activity-panel{margin-top:24px}
.coach-activity-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.coach-activity-stats>div{padding:18px;border:1px solid #e4e8f0;border-radius:16px;background:#f7f9fc;display:grid;gap:6px}
.coach-activity-stats strong{font-size:24px;color:#111827}
.coach-activity-stats span,.coach-activity-student small{font-size:12px;color:#64748b}
.coach-activity-list{display:grid;gap:8px}
.coach-activity-student{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;padding:15px;border:1px solid #e4e8f0;border-radius:14px;background:#fff;color:#1c2540;cursor:pointer}
.coach-activity-student>span:first-child{display:grid;gap:4px}
.coach-activity-detail{margin-top:20px;padding:18px;border:1px solid #e4e8f0;border-radius:16px}
.coach-activity-programs>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:16px 0}
.coach-activity-programs progress{grid-column:1/-1;width:100%;accent-color:#526cff}
.coach-activity-history>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e4e8f0}
@media(max-width:640px){.coach-activity-stats{grid-template-columns:1fr}.coach-activity-student{align-items:flex-start;flex-direction:column}}

/* V2.10 — Suivi des élèves : statistiques visuelles et filtres */
.coach-activity-extras{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;margin:18px 0 22px}
.coach-activity-graph,.coach-activity-popular{border:1px solid #e4e8f0;border-radius:18px;padding:18px;background:#fff;min-width:0}
.coach-activity-graph-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.coach-activity-graph h3,.coach-activity-popular h3{margin:0 0 12px;font-size:16px;color:#10192d}
.coach-activity-graph-head span,.coach-activity-graph-axis{font-size:12px;color:#71809a}
.coach-activity-graph svg{width:100%;height:150px;display:block;overflow:visible}
.coach-graph-axis{stroke:#cfd7e5;stroke-width:1}.coach-graph-grid{stroke:#e9edf5;stroke-dasharray:4 5}
.coach-graph-area{fill:#526cff;fill-opacity:.09}.coach-graph-line{fill:none;stroke:#526cff;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.coach-activity-graph-axis{display:flex;justify-content:space-between;padding:0 4px}
.coach-activity-popular-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #edf0f5}
.coach-activity-rank{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:9px;background:#f0f3ff;color:#526cff;font-weight:700}
.coach-activity-popular-title{min-width:0;flex:1;font-size:13px;font-weight:650;color:#162039;overflow-wrap:anywhere}
.coach-activity-popular-title small{display:block;font-weight:400;color:#71809a;margin-top:3px}
.coach-activity-popular-row>strong{white-space:nowrap;font-size:12px;color:#526cff}
.coach-activity-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:20px 0 12px}
.coach-activity-filters>span{font-size:13px;font-weight:650;margin-right:auto}
.coach-activity-filters button{border:1px solid #dce2ef;border-radius:30px;padding:9px 12px;background:#fff;color:#44516a;font-size:12px;cursor:pointer}
.coach-activity-filters button[aria-pressed="true"]{background:#526cff;color:#fff;border-color:#526cff}
.coach-activity-student[hidden],.coach-activity-filter-empty[hidden]{display:none!important}
.coach-activity-filter-empty{padding:16px;color:#71809a;text-align:center}
@media(max-width:760px){.coach-activity-extras{grid-template-columns:minmax(0,1fr)}.coach-activity-graph svg{height:130px}.coach-activity-filters>span{flex-basis:100%}}


/* V2.10.1 — Respirations du suivi des élèves (desktop et mobile) */
.coach-activity-panel {
  box-sizing:border-box;
  padding:clamp(16px, 2.4vw, 30px) !important;
  margin-top:24px;
  min-width:0;
}
.coach-activity-panel *, .coach-activity-panel *::before, .coach-activity-panel *::after {box-sizing:border-box}
.coach-activity-panel .coach-activity-stats {
  gap:clamp(12px,1.3vw,20px);
  margin:22px 0 26px;
}
.coach-activity-panel .coach-activity-stats > div {
  padding:clamp(18px,1.7vw,26px);
  gap:9px;
}
.coach-activity-panel .coach-activity-extras {
  gap:clamp(16px,1.8vw,26px);
  margin:0 0 32px;
}
.coach-activity-panel .coach-activity-graph,
.coach-activity-panel .coach-activity-popular {
  padding:clamp(20px,1.8vw,28px);
}
.coach-activity-panel .coach-activity-graph h3,
.coach-activity-panel .coach-activity-popular h3 {margin-bottom:18px}
.coach-activity-panel .coach-activity-filters {
  gap:10px;
  margin:30px 0 18px;
}
.coach-activity-panel .coach-activity-filters > span {
  padding:3px 0;
  line-height:1.5;
}
.coach-activity-panel .coach-activity-list {gap:12px}
.coach-activity-panel .coach-activity-student {padding:19px 22px;min-height:78px}
.coach-activity-panel .coach-activity-detail {margin-top:24px;padding:24px}
@media(max-width:760px) {
  .coach-activity-panel {padding:16px !important}
  .coach-activity-panel .coach-activity-stats {gap:10px;margin:18px 0 22px}
  .coach-activity-panel .coach-activity-stats > div {padding:18px}
  .coach-activity-panel .coach-activity-extras {gap:14px;margin-bottom:26px}
  .coach-activity-panel .coach-activity-graph,
  .coach-activity-panel .coach-activity-popular {padding:18px}
  .coach-activity-panel .coach-activity-filters {margin:24px 0 16px}
  .coach-activity-panel .coach-activity-student {padding:17px;min-height:0}
  .coach-activity-panel .coach-activity-detail {padding:18px}
}


/* Coach Abonnement — confirmation Stripe */
.coach-stripe-confirmation{
 text-align:center;
 max-width:650px;
 margin:35px auto;
 padding:45px 30px;
}
.coach-stripe-confirmation h2{
 font-size:clamp(24px,4vw,34px);
 line-height:1.25;
}
.coach-stripe-confirmation p{
 max-width:480px;
 margin:18px auto 25px;
 line-height:1.7;
 color:#617268;
}
.coach-stripe-icon{
 display:flex;
 align-items:center;
 justify-content:center;
 width:76px;
 height:76px;
 margin:22px auto;
 border-radius:50%;
 background:#edf5ee;
 color:#315c43;
 font-size:36px;
}
.coach-stripe-continue{
 display:inline-flex;
 justify-content:center;
 align-items:center;
 padding:17px 28px;
 border:0;
 border-radius:14px;
 background:var(--coach-primary,#294b3b);
 color:#fff;
 font:inherit;
 font-weight:800;
 cursor:pointer;
}
.coach-stripe-continue:hover{
 filter:brightness(1.1);
}
@media(max-width:600px){
 .coach-stripe-confirmation{
  margin:15px auto;
  padding:35px 20px;
 }
}
