:root{--brand:#0050b3;--brand2:#002766;--text:#0b1724;--action-text:#002766;--site-bg:#f4f6fb;--panel-color:#fff;--panel-opacity:100%;--panel:color-mix(in srgb,var(--panel-color) var(--panel-opacity),transparent);--line:#dde3ee;--muted:#627083;--shadow:0 16px 42px rgba(15,23,42,.16);--content-width:1320px;--bg-opacity:1;--page-padding:18px;--video-fr:62fr;--chapters-fr:38fr;--content-gap:16px;--card-radius:18px;--video-padding:12px;--chapters-padding:12px;--logo-height:64px;--title-size:32px}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--site-bg)}.site-background{position:fixed;inset:0;z-index:0;background-repeat:no-repeat;background-color:transparent;opacity:var(--bg-opacity);pointer-events:none}.overlay{position:relative;z-index:1;min-height:100vh;background:transparent}.page{max-width:var(--content-width);margin:0 auto;padding:var(--page-padding)}.preview-banner{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#fff3cd;border:1px solid #ffe69c;color:#664d03;font-weight:700}.head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px;border-radius:var(--card-radius);box-shadow:var(--shadow);transition:.2s ease}.head-left{display:flex;align-items:center;gap:13px;min-width:0;width:100%}.head-copy{min-width:0}.client-logo{height:var(--logo-height);max-width:260px;object-fit:contain;background:rgba(255,255,255,.97);border-radius:11px;padding:5px}.head h1{font-size:var(--title-size);line-height:1.2;margin:0;letter-spacing:-.01em}.head small{display:block;margin-top:3px}.title-center .head-left{justify-content:center}.title-center .head-copy{text-align:center}.title-left .head-copy{text-align:left}.meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:11px 0}.description{font-size:13px;color:var(--muted);flex:1;min-width:240px}.pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap}.content-shell{transition:.2s ease}.replay-grid{display:grid;grid-template-columns:minmax(0,var(--video-fr)) minmax(320px,var(--chapters-fr));gap:var(--content-gap);align-items:stretch}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:var(--shadow);overflow:hidden}.player-card,.chapter-card{display:flex;flex-direction:column}.card-h{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--panel);min-height:49px}.player-wrap{padding:var(--video-padding);background:var(--panel)}.ratio{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:min(var(--card-radius),14px);overflow:hidden}.ratio iframe,.ratio>div{width:100%;height:100%;border:0}.player-actions{padding:10px 12px;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);min-height:54px;background:var(--panel)}.player-actions button,.player-actions .btn{border:1px solid var(--line);background:#fff;color:var(--action-text);border-radius:999px;padding:8px 11px;font:inherit;cursor:pointer;text-decoration:none}.player-actions .primary{border-color:var(--brand);background:var(--brand);color:#fff}.chapters{padding:var(--chapters-padding);display:flex;flex-direction:column;min-height:0;flex:1}.search{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;font:inherit;background:#fff}.chapter-list{overflow:auto;min-height:0;max-height:none;flex:1;scrollbar-gutter:stable}.chapter{display:flex;gap:10px;padding:10px 8px;border:1px solid transparent;border-radius:12px;cursor:pointer;transition:background .12s,border-color .12s}.chapter:hover{background:#f5f8fd}.chapter.active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,white)}.time{min-width:72px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;padding-top:2px}.ctitle{font-weight:700;font-size:13px;line-height:1.35}.cmeta{font-size:11px;color:var(--muted);margin-top:3px}.footer{padding:17px 2px;color:rgba(11,23,36,.66);font-size:12px;text-align:center;text-shadow:0 1px 8px rgba(255,255,255,.75)}.flash{padding:10px 12px;border-radius:10px;margin:10px 0}.flash.success{background:#ecfdf3;color:#067647}.flash.error{background:#fef3f2;color:#b42318}

/* V3 templates */
.template-modern .head{background:linear-gradient(110deg,var(--brand2),var(--brand));color:#fff}.template-modern .head small{opacity:.8}.template-modern .meta .description{background:rgba(255,255,255,.86);padding:6px 9px;border-radius:9px}.template-modern .content-shell{background:transparent}

.template-institutional .page{padding-top:var(--page-padding)}.template-institutional .head{background:var(--panel);color:var(--text);border:1px solid rgba(255,255,255,.88);box-shadow:0 12px 34px rgba(15,23,42,.18)}.template-institutional .head h1{font-size:clamp(20px,var(--title-size),52px);font-weight:500;line-height:1.12}.template-institutional .head small{font-size:15px;color:var(--muted)}.template-institutional .client-logo{height:var(--logo-height);max-width:280px;border:1px solid #edf0f4}.template-institutional .meta{margin:8px 0 10px}.template-institutional .description{background:rgba(255,255,255,.92);padding:7px 10px;border-radius:10px}.template-institutional .content-shell{background:var(--panel);border-radius:calc(var(--card-radius) + 4px);padding:var(--content-gap);border:1px solid rgba(255,255,255,.9);box-shadow:0 18px 52px rgba(15,23,42,.20)}.template-institutional .card{box-shadow:none;border-color:#e5e9ef;border-radius:var(--card-radius)}.template-institutional .card-h{background:var(--panel)}.template-institutional .player-wrap{background:var(--panel)}.template-institutional .chapter.active{background:color-mix(in srgb,var(--brand) 8%,white);border-color:var(--brand)}.template-institutional .player-actions .primary{background:var(--brand);border-color:var(--brand)}

.template-minimal .head{background:var(--panel);backdrop-filter:blur(12px);color:var(--text);border:1px solid rgba(255,255,255,.65);box-shadow:none}.template-minimal .head h1{font-weight:650}.template-minimal .head small{color:var(--muted)}.template-minimal .meta{margin:8px 0}.template-minimal .content-shell{background:transparent}.template-minimal .card{border-radius:var(--card-radius);box-shadow:0 8px 24px rgba(15,23,42,.11)}

.modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(11,23,36,.64);backdrop-filter:blur(4px)}.modal-panel{position:relative;width:min(720px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.35)}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.modal-foot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.modal-body{padding:16px}.modal-sub{font-size:12px;color:var(--muted);margin-top:3px}.modal-close{border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer}.request-types{display:flex;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:#f6f8fb;margin-bottom:14px}.request-types label{font-size:13px;font-weight:700}.request-types input{width:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.full-row{grid-column:1/-1}label{display:block;font-size:12px;font-weight:700;margin-bottom:4px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:10px;font:inherit}textarea{min-height:76px}.modal-foot button{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.modal-foot .primary{border-color:var(--brand);background:var(--brand);color:#fff}.custom-time{display:none}

@media(max-width:960px){.page{padding:min(var(--page-padding),12px)}.replay-grid{grid-template-columns:1fr}.player-card{position:sticky;top:0;z-index:20;border-radius:14px}.player-card .card-h{display:none}.player-wrap{padding:6px}.ratio{border-radius:9px}.player-actions{padding:7px;min-height:0;background:var(--panel)}.player-actions button,.player-actions .btn{font-size:12px;padding:7px 9px}.chapter-card{min-height:420px}.chapter-list{max-height:none}.head{border-radius:min(var(--card-radius),14px)}.client-logo{height:min(var(--logo-height),48px)}.head h1,.template-institutional .head h1{font-size:min(var(--title-size),22px)}.meta{margin:8px 0 10px}.template-institutional .content-shell{padding:min(var(--content-gap),8px);border-radius:min(calc(var(--card-radius) + 2px),18px)}.template-institutional .page{padding-top:min(var(--page-padding),12px)}}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}.full-row{grid-column:auto}.request-types{display:grid}.time{min-width:64px}.head-left{align-items:flex-start}.title-center .head-left{justify-content:flex-start}.title-center .head-copy{text-align:left}.client-logo{max-width:120px;height:min(var(--logo-height),44px)}.description{min-width:100%}.template-institutional .head{padding:11px}.template-institutional .head small{font-size:12px}}

/* V3.4.1 — alignement aperçu LIVE / replay public pour le template Moderne */
.template-modern .player-card,
.template-modern .chapter-card{
  background:transparent;
  border:0;
  box-shadow:none;
  overflow:visible;
}
.template-modern .player-card .card-h,
.template-modern .chapter-card .card-h{
  background:var(--panel);
  color:var(--text);
  border:1px solid color-mix(in srgb,var(--panel-color) 78%,#ffffff);
  border-bottom:0;
  border-radius:var(--card-radius) var(--card-radius) 0 0;
}
.template-modern .player-wrap{
  background:var(--panel);
  border-left:1px solid color-mix(in srgb,var(--panel-color) 78%,#ffffff);
  border-right:1px solid color-mix(in srgb,var(--panel-color) 78%,#ffffff);
}
.template-modern .player-actions{
  background:var(--panel);
  border:1px solid color-mix(in srgb,var(--panel-color) 78%,#ffffff);
  border-top:0;
  border-radius:0 0 var(--card-radius) var(--card-radius);
}
.template-modern .chapter-card .chapters{
  background:var(--panel);
  border:1px solid color-mix(in srgb,var(--panel-color) 78%,#ffffff);
  border-top:0;
  border-radius:0 0 var(--card-radius) var(--card-radius);
}
.template-modern .chapter:hover{
  background:color-mix(in srgb,#ffffff 72%,transparent);
}

/* V3.5 — sommaire hiérarchique et typographie */
.chapter-list{font-family:var(--chapter-font,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif)}
.chapter-group{position:relative}
.chapter-leading{display:flex;align-items:flex-start;gap:6px;flex:0 0 auto}
.chapter-copy{min-width:0;flex:1}
.chapter-toggle,.chapter-toggle-spacer{width:22px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;margin-top:-1px}
.chapter-toggle{border:0;background:transparent;color:var(--text);font:700 20px/1 var(--chapter-font,system-ui);cursor:pointer;border-radius:6px;padding:0}
.chapter-toggle:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.chapter-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.chapter{align-items:flex-start}
.chapter .time{font-size:var(--chapter-time-size,12px)}
.chapter .ctitle{font-size:var(--chapter-title-size,13px);font-family:inherit}
.chapter .cmeta{font-size:var(--chapter-meta-size,11px);font-family:inherit}
.subchapter-list{margin-left:var(--chapter-indent,18px);padding-left:10px;border-left:2px solid color-mix(in srgb,var(--brand) 24%,transparent)}
.chapter.subchapter{padding-top:8px;padding-bottom:8px}
.chapter.subchapter .chapter-toggle-spacer{width:10px;min-width:10px}
.chapter.active{border-color:var(--chapter-active,var(--brand));background:color-mix(in srgb,var(--chapter-active,var(--brand)) 13%,white)}
.chapter.active .ctitle,.chapter.active .time{color:var(--chapter-active,var(--brand));font-weight:800}
.chapter.ancestor-active{background:color-mix(in srgb,var(--chapter-active,var(--brand)) 6%,white)}
.chapter.ancestor-active .ctitle{color:var(--chapter-active,var(--brand))}
.chapter.ancestor-active .chapter-toggle{color:var(--chapter-active,var(--brand))}
@media(max-width:640px){.subchapter-list{margin-left:min(var(--chapter-indent,18px),16px);padding-left:7px}.chapter-toggle,.chapter-toggle-spacer{width:20px;min-width:20px}.chapter .time{min-width:64px}}

/* V3.6.1 — arbre repliable 2/3 niveaux */
.chapter-tree-actions{display:flex;justify-content:flex-end;gap:12px;margin:9px 0 5px}
.chapter-tree-actions button{border:1px solid var(--border);background:rgba(255,255,255,.88);color:var(--muted);border-radius:999px;padding:6px 11px;min-height:30px;font:600 11px/1 var(--chapter-font,system-ui);cursor:pointer}
.chapter-tree-actions button:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border));color:var(--brand2)}
.chapter-node{min-width:0}
.chapter-detail{margin:-3px 10px 7px calc(var(--chapter-indent,18px) + 92px);padding:7px 10px;border-left:2px solid color-mix(in srgb,var(--brand) 32%,transparent);color:var(--muted);font-size:var(--chapter-meta-size,11px);line-height:1.38;white-space:pre-wrap}
.chapter-node.is-child .chapter-detail{margin-left:calc(var(--chapter-indent,18px) + 80px)}
@media(max-width:640px){.chapter-tree-actions{justify-content:flex-start}.chapter-detail,.chapter-node.is-child .chapter-detail{margin-left:calc(min(var(--chapter-indent,18px),16px) + 65px)}}

/* V3.6.3 — verrouillage hauteur Replay / Chapitres sur desktop */
@media (min-width:961px){
  .replay-grid{align-items:start}
  .player-card,.chapter-card{min-height:0}
  .chapter-card{overflow:hidden !important}
  .chapter-card>.card-h{flex:0 0 auto}
  .chapter-card>.chapters{
    flex:1 1 auto;
    min-height:0;
    height:0;
    overflow:hidden;
  }
  .chapter-card .search,
  .chapter-card .chapter-tree-actions{flex:0 0 auto}
  .chapter-card .chapter-list{
    flex:1 1 auto;
    min-height:0;
    max-height:100%;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
  }
  .template-modern .chapter-card{overflow:hidden !important}
}

/* V3.7 — lisibilité commandes publiques */
.player-actions #btnCopy,.player-actions #btnDownloadRequest,.player-actions a.btn{color:var(--action-text)}
.chapter:not(.active) .time,.chapter:not(.active) .chapter-toggle{color:var(--text)}

/* V3.8 — personnalisation typographique par élément */
.head h1,.template-institutional .head h1,.template-modern .head h1,.template-minimal .head h1{font-family:var(--title-font,system-ui);font-size:clamp(18px,var(--title-size,32px),52px);color:var(--title-color,var(--text))!important}
.head small,.template-institutional .head small,.template-modern .head small,.template-minimal .head small{font-family:var(--date-font,system-ui);font-size:var(--date-size,14px)!important;color:var(--date-color,var(--text))!important}
.player-card .card-h strong{font-family:var(--video-heading-font,system-ui);font-size:var(--video-heading-size,14px);color:var(--video-heading-color,var(--text))}
.chapter-card .card-h strong{font-family:var(--chapters-heading-font,system-ui);font-size:var(--chapters-heading-size,14px);color:var(--chapters-heading-color,var(--text))}
.chapter:not(.active) .ctitle{color:var(--chapter-title-color,var(--text))}
.chapter:not(.active) .time{color:var(--chapter-time-color,var(--text))}
.chapter:not(.active) .chapter-toggle{color:var(--chapter-toggle-color,var(--chapter-title-color,var(--text)))}
.chapter .cmeta,.chapter-detail{color:var(--chapter-meta-color,var(--muted))}
.player-actions button,.player-actions .btn{font-family:var(--action-font,system-ui);font-size:var(--action-size,13px)}
.player-actions #btnPlay,.player-actions .primary{background:var(--primary-action-bg,var(--brand))!important;border-color:var(--primary-action-bg,var(--brand))!important;color:var(--primary-action-text,#fff)!important}
.player-actions #btnCopy,.player-actions #btnDownloadRequest,.player-actions a.btn{background:var(--secondary-action-bg,#fff)!important;color:var(--action-text,var(--brand2))!important;border-color:color-mix(in srgb,var(--action-text,var(--brand2)) 32%,var(--border))!important}
.chapter .time{font-family:var(--chapter-time-font,var(--chapter-font,system-ui))}.chapter .cmeta,.chapter-detail{font-family:var(--chapter-meta-font,var(--chapter-font,system-ui))}

/* V3.8.3 — en-tête responsive et espacement exact */
:root{--header-gap:12px;--header-padding-x:17px;--header-padding-y:14px;--header-item-gap:13px;--logo-height-mobile:44px;--title-size-mobile:22px}
.head{padding:var(--header-padding-y) var(--header-padding-x);}
.head-left{gap:var(--header-item-gap);min-width:0}
.head-copy{flex:1;min-width:0;max-width:100%}
.head h1,.template-institutional .head h1,.template-modern .head h1,.template-minimal .head h1{font-size:clamp(18px,var(--title-size),64px);max-width:100%;overflow-wrap:anywhere;word-break:normal}
.content-shell{margin-top:0}
.head + .content-shell{margin-top:var(--header-gap)}
.template-institutional .head + .meta,.template-modern .head + .meta,.template-minimal .head + .meta,.head + .meta{margin:var(--header-gap) 0 0}
.meta + .content-shell{margin-top:6px}
@media(max-width:960px){
  .client-logo,.template-institutional .client-logo,.template-modern .client-logo,.template-minimal .client-logo{height:var(--logo-height-mobile)!important;max-height:100px;max-width:42%;flex:0 0 auto}
  .head h1,.template-institutional .head h1,.template-modern .head h1,.template-minimal .head h1{font-size:var(--title-size-mobile)!important;line-height:1.08;overflow-wrap:anywhere;word-break:normal}
  .head-left{gap:min(var(--header-item-gap),12px)}
}
@media(max-width:640px){
  .head-left{align-items:center}
  .head-copy{min-width:0;overflow:hidden}
  .head h1,.template-institutional .head h1,.template-modern .head h1,.template-minimal .head h1{max-width:100%}
}

/* V3.8.4 · replay préparé avant disponibilité de la source vidéo */
.video-missing{height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:24px;background:#151515;color:#fff;border-radius:inherit}
.video-missing strong{font-size:clamp(18px,2vw,28px)}
.video-missing span{max-width:560px;color:#c9c9c9;font-size:14px;line-height:1.45}

/* V3.15 — versions vidéo et autoplay responsable. */
.ratio{position:relative}
.ratio .unmute-overlay{
  position:absolute;z-index:8;left:50%;top:14px;transform:translateX(-50%);
  width:auto;height:auto;max-width:calc(100% - 24px);padding:10px 17px;
  border:1px solid rgba(255,255,255,.65);border-radius:999px;
  color:#fff;background:rgba(12,29,45,.91);box-shadow:0 5px 18px rgba(0,0,0,.3);
  font:700 13px/1.2 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer;
}
.ratio .unmute-overlay[hidden]{display:none!important}
.ratio .unmute-overlay:hover,.ratio .unmute-overlay:focus-visible{background:#1267d6}
/* V3.15.5 — controle de version integre a la barre d'actions. */
.player-actions{align-items:center;column-gap:9px;row-gap:7px}
.player-actions .replay-version-panel{
  display:inline-flex;flex:0 1 auto;align-items:center;flex-wrap:wrap;
  min-width:0;max-width:100%;width:auto;gap:8px;margin:0;padding:0;
  border:0;border-radius:0;background:transparent;color:var(--text);
}
.player-actions .replay-version-heading{
  display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap;margin:0;
  font:600 var(--action-size,13px)/1.2 var(--action-font,system-ui,-apple-system,Segoe UI,sans-serif);
  color:var(--text);
}
.player-actions .replay-version-switch{
  display:inline-flex;flex:0 1 auto;align-items:stretch;gap:2px;
  min-width:0;max-width:100%;width:auto;padding:2px;
  border:1px solid color-mix(in srgb,var(--text) 16%,transparent);
  border-radius:999px;background:color-mix(in srgb,var(--text) 6%,transparent);
}
.player-actions .replay-version-switch button{
  display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;
  min-height:30px;min-width:0;width:auto;margin:0;padding:6px 12px!important;
  border:0!important;border-radius:999px!important;
  font:600 var(--action-size,13px)/1.15 var(--action-font,system-ui,-apple-system,Segoe UI,sans-serif)!important;
  color:color-mix(in srgb,var(--text) 85%,transparent)!important;
  background:transparent!important;text-align:center;white-space:nowrap;cursor:pointer;
  transition:background-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.player-actions .replay-version-switch button.is-active{
  color:var(--text)!important;
  background:color-mix(in srgb,var(--text) 19%,var(--panel-color))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text) 10%,transparent);
}
.player-actions .replay-version-switch button:not(.is-active):not(:disabled):hover{
  background:color-mix(in srgb,var(--text) 15%,var(--panel-color))!important;
  color:var(--text)!important;
}
.player-actions .replay-version-switch button.is-active:not(:disabled):hover{
  background:color-mix(in srgb,var(--text) 29%,var(--panel-color))!important;
}
.player-actions .replay-version-switch button:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;
}
.player-actions .replay-version-switch button:disabled{opacity:.72;cursor:progress}
.player-actions #btnCopy:not(:disabled):hover{
  background:color-mix(in srgb,var(--action-text) 10%,var(--secondary-action-bg,#fff))!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--action-text) 21%,transparent);
}
.player-actions #btnPlay:not(:disabled):hover{filter:brightness(1.1)}
.player-actions .replay-version-panel .version-switch-status{
  display:block;flex:1 0 100%;min-width:0;margin:0;
  font:500 12px/1.4 var(--action-font,system-ui,-apple-system,Segoe UI,sans-serif);
  color:var(--text);
}
.player-actions .replay-version-panel .version-switch-status:empty{display:none}
@media(max-width:640px){
  .player-actions .replay-version-panel{gap:6px}
  .player-actions .replay-version-switch button{min-height:32px;padding:7px 9px!important;font-size:12px!important}
}
@media(max-width:360px){
  .player-actions .replay-version-panel{flex:1 1 100%}
  .player-actions .replay-version-switch{flex:1 1 auto}
  .player-actions .replay-version-switch button{flex:1 1 50%;padding:6px 5px!important;white-space:normal}
}
@media(prefers-reduced-motion:reduce){
  .player-actions .replay-version-switch button{transition:none}
}


/* V3.15.6 — Fenêtre de demande sobre, lisible et accessible.
   Palette volontairement sombre, indépendante des couleurs de texte configurées pour la page. */
#downloadModal{
  --dl-bg:#102b40;
  --dl-bg-high:#16374e;
  --dl-field:#18394f;
  --dl-line:rgba(212,234,251,.18);
  --dl-copy:#f3f8fc;
  --dl-muted:#b5cbda;
  --dl-highlight:#8bd4ff;
  color:var(--dl-copy);
  padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));
}
#downloadModal .modal-backdrop{background:rgba(3,13,23,.78);backdrop-filter:blur(7px)}
#downloadModal .modal-panel{
  width:min(660px,100%);max-height:calc(100dvh - 28px);overflow:auto;
  color:var(--dl-copy);background:linear-gradient(160deg,#173d57 0%,var(--dl-bg) 57%,#0d2639 100%);
  border:1px solid rgba(201,231,250,.23);border-radius:18px;
  box-shadow:0 32px 95px rgba(0,0,0,.53),inset 0 1px rgba(255,255,255,.06);
  scrollbar-width:thin;scrollbar-color:#527388 transparent;
}
#downloadModal .modal-head{padding:21px 24px 17px;gap:16px;border-color:var(--dl-line)}
#downloadModal .modal-intro{min-width:0}
#downloadModal #downloadTitle{display:block;color:#fff;font-size:18px;font-weight:750;line-height:1.25;letter-spacing:-.01em}
#downloadModal .modal-sub{margin-top:6px;color:var(--dl-muted);font-size:12px;line-height:1.45}
#downloadModal .modal-close{
  display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;
  border:1px solid transparent;border-radius:50%;background:rgba(255,255,255,.07);
  color:#e7f3fc;font:400 24px/1 system-ui;transition:background .16s,border-color .16s;
}
#downloadModal .modal-close:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.2)}
#downloadModal .modal-body{padding:22px 24px 24px}
#downloadModal .request-types{
  min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;gap:7px;margin:0 0 21px;padding:0;
  border:0;border-radius:0;background:transparent;
}
#downloadModal .request-types legend{
  float:none;width:100%;padding:0;margin:0 0 9px;
  color:var(--dl-copy);font-size:12px;font-weight:700;
}
#downloadModal .request-type{position:relative;min-width:0;margin:0;cursor:pointer}
#downloadModal .request-type input{
  position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;
  opacity:0;overflow:hidden;pointer-events:none;
}
#downloadModal .request-type span{
  display:flex;align-items:center;justify-content:center;min-height:46px;height:100%;
  padding:11px 8px;border:1px solid var(--dl-line);border-radius:11px;
  background:rgba(255,255,255,.048);color:#d5e5f0;
  font:650 12px/1.2 var(--action-font,system-ui,sans-serif);
  text-align:center;transition:background .17s,border-color .17s,color .17s,box-shadow .17s;
}
#downloadModal .request-type:hover span{
  background:rgba(146,208,248,.17);border-color:rgba(169,217,250,.42);color:#fff;
}
#downloadModal .request-type input:checked+span{
  background:rgba(122,198,245,.25);border-color:#91cfee;
  color:#fff;box-shadow:inset 0 0 0 1px rgba(145,207,238,.2);
}
#downloadModal .request-type input:focus-visible+span,
#downloadModal .modal-close:focus-visible,
#downloadModal .modal-foot button:focus-visible{
  outline:2px solid var(--dl-highlight);outline-offset:3px;
}
#downloadModal .form-grid{column-gap:15px;row-gap:15px}
#downloadModal .form-grid>div{min-width:0}
#downloadModal .form-grid label{margin-bottom:7px;color:var(--dl-copy);font:650 12px/1.3 var(--action-font,system-ui,sans-serif)}
#downloadModal .form-grid label span{color:#a8d7f4}
#downloadModal .form-grid input,
#downloadModal .form-grid select,
#downloadModal .form-grid textarea{
  display:block;width:100%;min-width:0;padding:12px 13px;
  border:1px solid rgba(202,233,251,.24);border-radius:10px;
  background:var(--dl-field);color:var(--dl-copy);caret-color:#fff;
  font:400 13px/1.4 var(--action-font,system-ui,sans-serif);
  transition:background .18s,border-color .18s,box-shadow .18s;
}
#downloadModal .form-grid input::placeholder,#downloadModal .form-grid textarea::placeholder{color:#a2bdcf;opacity:1}
#downloadModal .form-grid input:hover,#downloadModal .form-grid select:hover,#downloadModal .form-grid textarea:hover{
  border-color:rgba(180,218,241,.44);background:#1c4259;
}
#downloadModal .form-grid input:focus,#downloadModal .form-grid select:focus,#downloadModal .form-grid textarea:focus{
  outline:none;border-color:#91cfee;background:#1b4057;
  box-shadow:0 0 0 3px rgba(145,207,238,.17);
}
#downloadModal .form-grid select option{background:#18394f;color:#fff}
#downloadModal .form-grid textarea{min-height:83px;resize:vertical}
#downloadModal .modal-foot{
  justify-content:flex-end;flex-wrap:wrap;gap:10px;
  padding:15px 24px 19px;border-color:var(--dl-line);
  background:rgba(0,0,0,.095);
}
#downloadModal .modal-foot button{
  min-height:40px;padding:9px 17px;border:1px solid rgba(202,233,251,.27);
  background:rgba(255,255,255,.055);color:#fff;border-radius:999px;
  font:650 12px/1.2 var(--action-font,system-ui,sans-serif);
  transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
#downloadModal .modal-foot button:hover{background:rgba(255,255,255,.13);border-color:rgba(202,233,251,.5)}
#downloadModal .modal-foot .primary{
  background:#e0f1fd;border-color:#e0f1fd;color:#123249;
}
#downloadModal .modal-foot .primary:hover{
  background:#fff;border-color:#fff;color:#0b2c42;box-shadow:0 4px 16px rgba(164,221,255,.15);
}
/* Barre principale : appel au téléchargement à droite sur écran large ; même traitement de survol. */
.player-actions #btnDownloadRequest{transition:filter .17s,box-shadow .17s,transform .17s}
.player-actions #btnDownloadRequest:not(:disabled):hover{
  background:color-mix(in srgb,var(--action-text) 10%,var(--secondary-action-bg,#fff))!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--action-text) 21%,transparent);
}
.player-actions #btnDownloadRequest:focus-visible,
.player-actions #btnCopy:focus-visible,
.player-actions #btnPlay:focus-visible{
  outline:2px solid var(--brand);outline-offset:3px;
}
@media(min-width:1100px){.player-actions #btnDownloadRequest{margin-inline-start:auto}}
@media(max-width:640px){
  #downloadModal .modal-panel{border-radius:15px;max-height:calc(100dvh - 24px)}
  #downloadModal .modal-head{padding:17px 16px 14px}
  #downloadModal .modal-body{padding:17px 16px 19px}
  #downloadModal .modal-foot{padding:12px 16px 16px}
  #downloadModal .request-types{grid-template-columns:1fr;gap:7px}
  #downloadModal .request-type span{min-height:40px}
  #downloadModal .form-grid{grid-template-columns:1fr;gap:13px}
  #downloadModal .form-grid .full-row{grid-column:1}
}
@media(max-width:390px){
  #downloadModal .modal-foot button{flex:1 1 0;min-width:0;padding:10px 7px}
  #downloadModal .modal-foot .primary{flex:1.4 1 0}
}
@media(prefers-reduced-motion:reduce){
  #downloadModal button,#downloadModal .request-type span,#downloadModal .form-grid input,
  #downloadModal .form-grid select,#downloadModal .form-grid textarea,
  .player-actions #btnDownloadRequest{transition:none}
}
