/* « La feuille de séance » : le builder de séances types (#tpl-create-overlay)
   et sa liste d'exercices (#tpl-pick-overlay). Tout est rangé sous ces deux
   id : les anciennes classes du builder (app.css) restent en place, ces règles
   passent devant sans !important. Couleurs : jetons du thème uniquement, pour
   que les sept ambiances restent lisibles. Le fond reprend celui de l'écran
   de séance (#tpl-start-overlay .runner-box) : on prépare ce qu'on lancera. */

#tpl-create-overlay{--hex:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
#tpl-create-overlay [hidden],#tpl-pick-overlay [hidden]{display:none!important}

/* ── Feuille ── */
#tpl-create-overlay .rb-sheet,#tpl-pick-overlay .rb-pick-sheet{display:flex;flex-direction:column;overflow:hidden;overflow:clip;padding:0;border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:22px 22px 0 0;position:relative;isolation:isolate;background:radial-gradient(90% 22% at 50% 0%,rgba(var(--accent-rgb),.16),transparent 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50L0 16L28 0L56 16L56 50L28 66L28 100' fill='none' stroke='%23fff' stroke-opacity='.045' stroke-width='1.2'/%3E%3C/svg%3E") 0 0/28px 50px,linear-gradient(180deg,#121216,#09090b 45%)}
#tpl-create-overlay .rb-sheet{height:92dvh;max-height:92dvh}
/* position:relative : le texte sr-only (position absolue) des lignes reste dans
   le défilement ; overflow:clip (ci-dessus) : la feuille elle-même ne défile jamais. */
#tpl-create-overlay .rb-scroll{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:0 18px 16px;scroll-padding:12px 0 16px}
#tpl-create-overlay .rb-scroll>*{flex:none}

/* ── En-tête ── */
#tpl-create-overlay .rb-head{padding-top:0}
/* Titre et ✕ restent en haut pendant qu'on fait défiler le plan ; le fond
   n'apparaît qu'une fois la feuille défilée (classe posée par 09). */
#tpl-create-overlay .rb-head-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;position:sticky;top:0;z-index:4;margin:0 -18px;padding:14px 18px 8px;transition:background var(--mo-fast),box-shadow var(--mo-fast)}
#tpl-create-overlay .rb-scroll.rb-scrolled .rb-head-row{background:rgba(12,12,15,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
#tpl-create-overlay .rb-kicker{margin:0;display:flex;gap:7px;align-items:center;font:900 11px/1 'Barlow Condensed',sans-serif;letter-spacing:2.2px;text-transform:uppercase;color:var(--accent2)}
#tpl-create-overlay .tpl-modal-close,#tpl-pick-overlay .tpl-modal-close{position:static;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);color:var(--text2);display:grid;place-items:center;transition:transform var(--mo-fast) var(--mo-out),background var(--mo-fast)}
#tpl-create-overlay .tpl-modal-close:active,#tpl-pick-overlay .tpl-modal-close:active{transform:scale(.9);background:rgba(255,255,255,.12)}
#tpl-create-overlay .tpl-modal-close:focus:not(:focus-visible),#tpl-pick-overlay .tpl-modal-close:focus:not(:focus-visible){outline:none}
#tpl-create-overlay .tpl-modal-close:focus-visible,#tpl-pick-overlay .tpl-modal-close:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px}
/* Ouverte d'un tap sur une carte non focalisable : pas d'anneau avant la première touche (09-session-runner.js). */
#tpl-create-overlay.rb-pointer-open .tpl-modal-close:focus-visible{outline:none}

/* Nom : on l'écrit directement dans le grand titre. */
#tpl-create-overlay .rb-name-wrap{position:relative;margin-top:6px}
#tpl-create-overlay .rb-name{display:block;width:100%;height:52px;margin:0;background:transparent no-repeat right 2px center/16px 16px;border:0;border-bottom:1px solid var(--border2);border-radius:0;padding:0 34px 0 0;font:900 28px/1 'Barlow Condensed',sans-serif;letter-spacing:.3px;text-transform:uppercase;color:var(--text);caret-color:var(--accent);outline:none;box-shadow:none;-webkit-appearance:none;appearance:none}
#tpl-create-overlay .rb-name:placeholder-shown:not(:focus){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='rgba(245,242,235,.45)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 4l3 3M4 16l1-4L14 3l3 3-9 9-4 1z'/%3E%3C/svg%3E")}
#tpl-create-overlay .rb-name::placeholder{color:var(--muted);opacity:1}
#tpl-create-overlay .rb-name.is-long{font-size:22px}
#tpl-create-overlay .rb-name-bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--mo-base) var(--mo-out);pointer-events:none}
#tpl-create-overlay .rb-name:focus+.rb-name-bar{transform:scaleX(1)}

/* ── Bases ── */
#tpl-create-overlay .rb-label{font:800 11px/1 'Barlow Condensed',sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
#tpl-create-overlay .rb-bases .rb-label{margin:18px 0 8px}
#tpl-create-overlay .rb-base-rail{display:flex;gap:8px;overflow-x:auto;margin:0 -18px;padding:0 18px 2px;scroll-padding-inline:18px;scroll-snap-type:x proximity;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scrollbar-width:none}
#tpl-create-overlay .rb-base-rail::-webkit-scrollbar{display:none}
#tpl-create-overlay .rb-base{flex:0 0 144px;min-height:64px;margin:0;padding:10px 12px;border-radius:12px;border:1px solid var(--border2);background:rgba(255,255,255,.03);color:var(--text);display:grid;align-content:center;gap:4px;text-align:left;text-transform:none;letter-spacing:0;scroll-snap-align:start;transition:transform var(--mo-fast) var(--mo-out),border-color var(--mo-quick),background var(--mo-quick)}
#tpl-create-overlay .rb-base-name{font:800 14px/1.1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
#tpl-create-overlay .rb-base-meta{font:500 11px/1.2 'Barlow',sans-serif;color:var(--muted);white-space:nowrap}
#tpl-create-overlay .rb-base:active{transform:scale(.97)}
#tpl-create-overlay .rb-base[aria-pressed="true"]{border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.08);box-shadow:inset 3px 0 0 var(--accent)}
#tpl-create-overlay .rb-base[aria-pressed="true"] .rb-base-meta{color:var(--accent-soft)}

/* ── Plan ── */
#tpl-create-overlay .rb-plan-head{display:flex;align-items:center;gap:10px;min-height:28px;margin:20px 0 4px}
#tpl-create-overlay .rb-plan-head i{flex:1;height:1px;background:rgba(255,255,255,.08)}
#tpl-create-overlay .rb-focus{font:800 11px/1 'Barlow Condensed',sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent-soft);max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tpl-create-overlay .rb-list{list-style:none;margin:0;padding:0}

/* Une ligne par exercice, repliée à ~84 px ; une seule ouverte à la fois. */
#tpl-create-overlay .rb-plate{background:none;border:0;border-bottom:1px solid rgba(255,255,255,.06);border-radius:0;box-shadow:none;margin:0 -18px;padding:0 18px;animation:none;transition:background var(--mo-fast)}
#tpl-create-overlay .rb-plate.tpl-row-out{animation:moFadeOut var(--mo-base) var(--mo-in) forwards;pointer-events:none}
#tpl-create-overlay .rb-plate.tpl-row-moved{animation:moConfirm var(--mo-quick) var(--mo-out)}
#tpl-create-overlay .rb-plate.rb-enter{animation:moRise var(--mo-base) var(--mo-out) both}
#tpl-create-overlay .rb-plate.open{background:linear-gradient(90deg,rgba(var(--accent-rgb),.08),transparent 70%);box-shadow:inset 3px 0 0 var(--accent)}
#tpl-create-overlay .rb-plate-head{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:12px;align-items:center;padding:14px 0;margin:0;min-height:84px;background:none;border:0;border-radius:0;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--mo-fast)}
#tpl-create-overlay .rb-plate-head:active{background:rgba(255,255,255,.04)}
#tpl-create-overlay .rb-thumb{position:relative;width:48px;height:54px}
#tpl-create-overlay .rb-thumb::before{content:'';position:absolute;inset:0;clip-path:var(--hex);background:rgba(255,255,255,.16)}
#tpl-create-overlay .rb-thumb-media{position:absolute;inset:1px;clip-path:var(--hex);background:var(--bg3);overflow:hidden;display:grid;place-items:center}
#tpl-create-overlay .rb-thumb-media img,#tpl-create-overlay .rb-thumb-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:brightness(.86) saturate(.85)}
#tpl-create-overlay .rb-thumb-media .routine-thumb-fallback{display:none}
#tpl-create-overlay .rb-thumb-initials{font:800 14px/1 'Barlow Condensed',sans-serif;letter-spacing:.5px;color:var(--muted)}
#tpl-create-overlay .rb-plate.no-ex .rb-thumb::before{background:repeating-conic-gradient(rgba(var(--accent-rgb),.6) 0 10deg,transparent 10deg 20deg)}
#tpl-create-overlay .rb-idx{position:absolute;right:-6px;bottom:-3px;width:20px;height:22px;clip-path:var(--hex);background:rgba(var(--accent-rgb),.9);display:grid;place-items:center}
#tpl-create-overlay .rb-idx::before{content:'';position:absolute;inset:1.5px;clip-path:var(--hex);background:var(--bg2);transition:background var(--mo-quick)}
#tpl-create-overlay .rb-idx span{position:relative;font:900 11px/1 'Barlow Condensed',sans-serif;color:var(--text);font-variant-numeric:tabular-nums}
#tpl-create-overlay .rb-plate.open .rb-idx::before{background:var(--accent)}
#tpl-create-overlay .rb-plate.open .rb-idx span{color:#0b0b0d}
#tpl-create-overlay .rb-plate-text{display:block;min-width:0}
#tpl-create-overlay .rb-ex-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font:600 15px/1.25 'Barlow',sans-serif;color:var(--text)}
#tpl-create-overlay .rb-plate.no-ex .rb-ex-name{color:var(--accent-soft)}
#tpl-create-overlay .rb-tags{display:block;font:800 10px/1.2 'Barlow Condensed',sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tpl-create-overlay .rb-tags:has(.rb-tag-group:empty):has(.rb-tag-type:empty){display:none}
#tpl-create-overlay .rb-tag-group{color:var(--accent-soft)}
#tpl-create-overlay .rb-tag-type{color:var(--muted)}
#tpl-create-overlay .rb-tag-group:not(:empty)+.rb-tag-type:not(:empty)::before{content:' · ';color:var(--muted)}
/* Un seul groupe dans tout le plan : il est déjà dit une fois en tête de liste. */
#tpl-create-overlay .rb-one-group .rb-tag-group{display:none}
#tpl-create-overlay .rb-one-group .rb-tag-type::before{content:none!important}
#tpl-create-overlay .rb-one-group .rb-tags:has(.rb-tag-type:empty){display:none}
#tpl-create-overlay .rb-rx{display:block;font:800 17px/1.15 'Barlow Condensed',sans-serif;font-variant-numeric:tabular-nums;color:var(--text);margin-top:4px}
#tpl-create-overlay .rb-rx small{font-size:12px;color:var(--muted);margin:0 1px}
#tpl-create-overlay .rb-plate.is-off .rb-rx{color:#ff9d9d}
#tpl-create-overlay .rb-quote{display:block;font:italic 400 12px/1.3 'Barlow',sans-serif;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tpl-create-overlay .rb-chev{color:var(--muted);justify-self:end;transition:transform var(--mo-base) var(--mo-out)}
#tpl-create-overlay .rb-plate.open .rb-chev{transform:rotate(180deg);color:var(--accent-soft)}

/* Corps : grid-template-rows anime la hauteur sans mesurer en JS. */
#tpl-create-overlay .rb-plate-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--mo-base) var(--mo-out)}
#tpl-create-overlay .rb-plate.open .rb-plate-body{grid-template-rows:1fr}
#tpl-create-overlay .rb-plate-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear var(--mo-base)}
/* Ouverture : visible tout de suite (un champ peut recevoir le focus), même en mouvement réduit. */
#tpl-create-overlay .rb-plate.open .rb-plate-inner{visibility:visible;transition:none}
#tpl-create-overlay .rb-plate-pad{display:grid;gap:12px;padding:0 0 16px}
#tpl-create-overlay .rb-noanim .rb-plate-body,#tpl-create-overlay .rb-noanim .rb-plate-inner,#tpl-create-overlay .rb-noanim .rb-chev{transition:none}

/* Molettes séries · reps · charge */
#tpl-create-overlay .rb-dials{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:8px}
#tpl-create-overlay .rb-dial{display:grid;gap:6px;text-align:center;min-width:0}
#tpl-create-overlay .rb-dial label{font:800 10px/1 'Barlow Condensed',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
#tpl-create-overlay .rb-num{display:block;height:44px;min-height:44px;width:100%;margin:0;background:transparent;border:0;border-bottom:1px solid var(--border2);border-radius:0;padding:0;text-align:center;font:800 28px/1 'Barlow Condensed',sans-serif;font-variant-numeric:tabular-nums;color:var(--text);outline:none;box-shadow:none;-webkit-appearance:none;appearance:none}
#tpl-create-overlay .rb-num:focus{box-shadow:inset 0 -2px 0 var(--accent)}
#tpl-create-overlay .rb-num::placeholder{color:var(--muted);font-size:20px;opacity:1}
#tpl-create-overlay .rb-num.tick-up{animation:rbTickUp var(--mo-fast) var(--mo-out)}
#tpl-create-overlay .rb-num.tick-down{animation:rbTickDown var(--mo-fast) var(--mo-out)}
#tpl-create-overlay .rb-num-wrap{position:relative}
#tpl-create-overlay .rb-dial-load .rb-num{padding:0 18px}
#tpl-create-overlay .rb-unit{position:absolute;right:4px;bottom:12px;font:600 12px 'Barlow',sans-serif;color:var(--muted);pointer-events:none}
#tpl-create-overlay .rb-num:placeholder-shown+.rb-unit{visibility:hidden}
#tpl-create-overlay .rb-step{display:grid;grid-template-columns:1fr 1fr;height:44px;border:1px solid var(--border2);border-radius:10px;background:rgba(255,255,255,.035);overflow:hidden}
#tpl-create-overlay .rb-step button{min-width:0;min-height:44px;margin:0;padding:0;border:0;background:none;color:var(--text2);display:grid;place-items:center;font:800 13px 'Barlow Condensed',sans-serif;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;transition:background var(--mo-fast),color var(--mo-fast)}
#tpl-create-overlay .rb-step button+button{border-left:1px solid var(--border2)}
#tpl-create-overlay .rb-step button:active:not([aria-disabled="true"]){background:rgba(var(--accent-rgb),.18);color:var(--text)}
#tpl-create-overlay .rb-step button[aria-disabled="true"]{color:var(--dim);cursor:default}
/* .rb-step coupe ce qui déborde : l'anneau clavier est dessiné à l'intérieur. */
#tpl-create-overlay .rb-step button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent2);background:rgba(var(--accent-rgb),.12);color:var(--text)}
#tpl-create-overlay .rb-dial.is-invalid .rb-num{color:#ff9d9d;box-shadow:inset 0 -2px 0 var(--danger)}
#tpl-create-overlay .rb-field-err{margin:0;font:500 12px/1.35 'Barlow',sans-serif;color:#ff9d9d;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#tpl-create-overlay .rb-fix{min-height:44px;padding:0 12px;border:1px solid rgba(var(--accent-rgb),.45);border-radius:10px;background:none;color:var(--accent-soft);font:600 13px 'Barlow',sans-serif}

/* Schémas, rappel du lancement, consigne, outils */
#tpl-create-overlay .rb-schemes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#tpl-create-overlay .rb-scheme{min-width:0;min-height:44px;margin:0;padding:0;border:1px solid var(--border2);border-radius:10px;background:transparent;color:var(--text2);font:800 15px 'Barlow Condensed',sans-serif;font-variant-numeric:tabular-nums;touch-action:manipulation;transition:transform var(--mo-fast) var(--mo-out),border-color var(--mo-quick),background var(--mo-quick),color var(--mo-quick)}
#tpl-create-overlay .rb-scheme small{font-size:11px;color:var(--muted);margin:0 2px}
#tpl-create-overlay .rb-scheme:active{transform:scale(.96)}
#tpl-create-overlay .rb-scheme[aria-pressed="true"]{border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.12);color:var(--accent-soft)}
#tpl-create-overlay .rb-hint{margin:-4px 0 0;font:400 11px/1.4 'Barlow',sans-serif;color:var(--muted)}
#tpl-create-overlay .rb-note-tog{justify-self:start;min-width:0;min-height:44px;height:auto;display:flex;align-items:center;gap:8px;padding:0;margin:0;border:0;border-radius:0;background:none;color:var(--text2);font:600 14px 'Barlow',sans-serif;letter-spacing:0}
#tpl-create-overlay .rb-note-tog.on{color:var(--accent-soft)}
#tpl-create-overlay .tpl-create-note{display:block;font:400 16px/1.4 'Barlow',sans-serif;width:100%;min-height:calc(3 * 1.4em + 22px);max-height:180px;field-sizing:content;padding:10px 12px;margin:0;background:rgba(0,0,0,.25);border:1px solid var(--border2);border-radius:10px;color:var(--text);resize:vertical;animation:none}
#tpl-create-overlay .tpl-create-note:focus{border-color:rgba(var(--accent-rgb),.55);outline:none}
#tpl-create-overlay .rb-tools{display:flex;align-items:center;gap:6px}
#tpl-create-overlay .rb-tools button{min-height:44px;min-width:44px;margin:0;padding:0 12px;border:1px solid var(--border2);border-radius:10px;background:rgba(255,255,255,.03);color:var(--text2);font:600 13px 'Barlow',sans-serif;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;opacity:1;transition:transform var(--mo-fast) var(--mo-out),background var(--mo-fast),color var(--mo-fast)}
#tpl-create-overlay .rb-tools button:active:not(:disabled){transform:scale(.96)}
#tpl-create-overlay .rb-tools .tpl-ex-pick{flex:none;width:auto;background:rgba(255,255,255,.03)}
#tpl-create-overlay .rb-tools .tpl-create-move{width:44px;padding:0}
#tpl-create-overlay .rb-tools .tpl-create-move:disabled{color:var(--dim);border-style:dashed;opacity:1}
#tpl-create-overlay .rb-tools .rb-remove{margin-left:auto}
#tpl-create-overlay .rb-tools .rb-remove:active{color:var(--danger);background:rgba(239,68,68,.14)}

/* ── Ajouter / plan vide ── */
#tpl-create-overlay .rb-add{margin:16px 0 0;padding:0 16px;width:100%;min-height:56px;border-radius:12px;border:1px solid rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.08);display:flex;align-items:center;justify-content:center;gap:10px;font:900 13px 'Barlow Condensed',sans-serif;letter-spacing:2px;text-transform:uppercase;color:var(--accent-soft);transition:transform var(--mo-fast) var(--mo-out)}
#tpl-create-overlay .rb-add:active{transform:scale(.98)}
#tpl-create-overlay .rb-empty{margin-block:auto;padding:24px 0;display:grid;justify-items:center;text-align:center;gap:10px}
#tpl-create-overlay .rb-empty-mark .g{stroke:rgba(255,255,255,.1)}
#tpl-create-overlay .rb-empty-mark .h{stroke:rgba(var(--accent-rgb),.7)}
#tpl-create-overlay .rb-empty-mark .p{stroke:var(--accent-soft)}
#tpl-create-overlay .rb-empty-title{font:900 20px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.4px;text-transform:uppercase;color:var(--text)}
#tpl-create-overlay .rb-empty-body{margin:0;font:400 14px/1.45 'Barlow',sans-serif;color:var(--muted);max-width:300px}
#tpl-create-overlay .rb-empty-cta{width:100%;min-height:52px;margin:6px 0 0}
#tpl-create-overlay .rb-empty.pulse .rb-empty-cta{animation:rbPulse 600ms var(--mo-out)}

/* ── Dock : totaux et enregistrement toujours à portée ── */
#tpl-create-overlay .rb-dock{flex:none;position:relative;padding:10px 18px max(12px,env(safe-area-inset-bottom));background:rgba(10,10,12,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.07)}
#tpl-create-overlay .rb-volume{display:flex;gap:2px;height:4px;border-radius:999px;background:rgba(255,255,255,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.5);overflow:hidden}
#tpl-create-overlay .rb-volume i{flex:var(--g,1) 1 0;min-width:0;background:linear-gradient(90deg,var(--accent2),var(--accent));opacity:.55;transition:flex-grow var(--mo-base) var(--mo-out),opacity var(--mo-fast)}
#tpl-create-overlay .rb-volume i.on{opacity:1;box-shadow:0 0 10px rgba(var(--accent-rgb),.7)}
#tpl-create-overlay .rb-undo{display:flex;align-items:center;gap:10px;margin-top:10px;min-height:48px;padding:0 4px 0 12px;border:1px solid var(--border2);border-radius:12px;background:var(--bg3);animation:moRise var(--mo-quick) var(--mo-out)}
#tpl-create-overlay .rb-undo-txt{flex:1;min-width:0;display:flex;gap:.3em;font:400 13px/1.3 'Barlow',sans-serif;color:var(--text2);white-space:nowrap}
/* « Nom très long… retiré » : seul le nom se raccourcit, le verbe reste lisible. */
#tpl-create-overlay .rb-undo-txt span{flex:none}
#tpl-create-overlay .rb-undo-txt span:first-child:not(:last-child){flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
#tpl-create-overlay .rb-undo button{flex:none;min-height:44px;min-width:44px;padding:0 12px;border:0;background:none;font:900 12px 'Barlow Condensed',sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent-soft)}
#tpl-create-overlay .rb-dock-row{display:flex;align-items:center;gap:10px;margin-top:10px}
#tpl-create-overlay .rb-stats{display:grid;grid-template-columns:repeat(3,minmax(40px,auto));gap:6px;flex:none;margin:0;padding:0;background:none;border:0;border-radius:0;color:var(--muted)}
#tpl-create-overlay .rb-stats>div{display:grid;justify-items:center}
#tpl-create-overlay .rb-stats strong{font:800 20px/1 'Barlow Condensed',sans-serif;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--text)}
#tpl-create-overlay .rb-stats strong.tick{animation:moConfirm var(--mo-fast)}
#tpl-create-overlay .rb-stats span{font:800 9px/1 'Barlow Condensed',sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:3px}
#tpl-create-overlay .rb-save{flex:1 1 auto;width:auto;min-width:0;min-height:52px;margin:0;padding:0 12px;border-radius:12px;font:900 13px 'Barlow Condensed',sans-serif;letter-spacing:1.6px;position:relative;overflow:visible;transition:background var(--mo-base),color var(--mo-base),box-shadow var(--mo-base),transform var(--mo-fast)}
#tpl-create-overlay .rb-save::after{border-radius:inherit}
#tpl-create-overlay .rb-dock[data-mode="empty"] .rb-save,#tpl-create-overlay .rb-dock[data-mode="incomplete"] .rb-save{background:rgba(255,255,255,.08);color:var(--text2);box-shadow:none}
#tpl-create-overlay .rb-dock.just-ready .rb-save{animation:rbReady 600ms var(--mo-out)}
#tpl-create-overlay .rb-save-lbl{display:block;transition:opacity 120ms}
#tpl-create-overlay .rb-save-done{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;opacity:0;visibility:hidden;transition:opacity 120ms,visibility 0s linear 120ms}
#tpl-create-overlay .rb-save.is-saved .rb-save-lbl{opacity:0}
#tpl-create-overlay .rb-save.is-saved .rb-save-done{opacity:1;visibility:visible;transition-delay:0s}
#tpl-create-overlay .rb-save.is-saved::after{content:'';position:absolute;left:50%;top:50%;width:64px;height:72px;margin:-36px 0 0 -32px;background:var(--accent-soft);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 72'%3E%3Cpath d='M32 2l29 16.5v35L32 70 3 53.5v-35z' fill='none' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 72'%3E%3Cpath d='M32 2l29 16.5v35L32 70 3 53.5v-35z' fill='none' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E") center/contain no-repeat;opacity:0;pointer-events:none;animation:rbStamp 420ms var(--mo-out)}
#tpl-create-overlay .rb-start{flex:0 0 52px;width:52px;height:52px;margin:0;padding:0;border-radius:12px;border:1px solid rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.10);color:var(--accent-soft);display:grid;place-items:center;transition:transform var(--mo-fast) var(--mo-out),background var(--mo-base),color var(--mo-base),border-color var(--mo-base)}
#tpl-create-overlay .rb-dock[data-mode="empty"] .rb-start,#tpl-create-overlay .rb-dock[data-mode="incomplete"] .rb-start{border-color:var(--border2);background:rgba(255,255,255,.04);color:var(--muted)}
#tpl-create-overlay .rb-start:active{transform:scale(.94)}
#tpl-create-overlay .rb-leave{margin-top:10px;display:grid;gap:8px;animation:moRise var(--mo-quick) var(--mo-out)}
#tpl-create-overlay .rb-leave p{margin:0;font:600 14px 'Barlow',sans-serif;color:var(--text)}
#tpl-create-overlay .rb-leave div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#tpl-create-overlay .rb-leave button{min-height:44px;margin:0;border-radius:10px;font:600 14px 'Barlow',sans-serif;background:none}
#tpl-create-overlay .rb-leave-stay{border:1px solid var(--border2);color:var(--text)}
#tpl-create-overlay .rb-leave-quit{border:1px solid rgba(239,68,68,.35);color:#ff9d9d}
#tpl-create-overlay .rb-dock[data-mode="leave"] .rb-dock-row,#tpl-create-overlay .rb-dock[data-mode="leave"] .rb-undo{display:none}

@keyframes rbTickUp{from{transform:translateY(4px);opacity:.4}to{transform:none;opacity:1}}
@keyframes rbTickDown{from{transform:translateY(-4px);opacity:.4}to{transform:none;opacity:1}}
@keyframes rbReady{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.55)}60%{box-shadow:0 0 0 8px rgba(var(--accent-rgb),0)}100%{box-shadow:0 10px 24px -10px rgba(var(--accent-rgb),.5)}}
@keyframes rbStamp{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.15);opacity:0}}
@keyframes rbPulse{0%{transform:none}30%{transform:scale(1.03);box-shadow:0 0 0 6px rgba(var(--accent-rgb),.25)}100%{transform:none}}

/* ── Liste d'exercices (au-dessus de la feuille) ── */
#tpl-pick-overlay{z-index:610}
/* Haut de la feuille du builder + 14 px + ✕ de 44 px + 8 px : le ✕ n'est jamais coupé. */
#tpl-pick-overlay .rb-pick-sheet{height:calc(92dvh - 66px);max-height:calc(92dvh - 66px)}
#tpl-pick-overlay .rb-pick-head{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:center;padding:10px 12px 6px}
#tpl-pick-overlay .rb-pick-titles{min-width:0}
#tpl-pick-overlay .rb-pick-head h2{margin:0;font:900 18px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.4px;text-transform:uppercase;color:var(--text)}
#tpl-pick-overlay .rb-pick-head p{margin:2px 0 0;font:400 12px 'Barlow',sans-serif;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tpl-pick-overlay .rb-pick-search{flex:none;position:static;margin:0 16px 8px;padding:0 0 0 12px;gap:8px;border:1px solid var(--border2);border-radius:12px;background:rgba(255,255,255,.04);color:var(--muted)}
#tpl-pick-overlay .rb-pick-search:focus-within{border-color:rgba(var(--accent-rgb),.55)}
#tpl-pick-overlay .rb-pick-search .ex-search-input{height:48px;font:400 16px 'Barlow',sans-serif;padding:0;border:0;background:none;-webkit-appearance:none;appearance:none}
#tpl-pick-overlay .rb-pick-search .ex-search-input::-webkit-search-cancel-button{display:none}
#tpl-pick-overlay .rb-clear{flex:none;width:44px;height:44px;margin:0;padding:0;border:0;background:none;color:var(--muted);display:grid;place-items:center}
#tpl-pick-overlay .ex-list-scroll{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 16px 16px}
#tpl-pick-overlay .ex-back-bar{background:#111114;margin:0 -16px;padding:4px 16px}
#tpl-pick-overlay .ex-mgrid{padding:2px 0 12px}
#tpl-pick-overlay .ex-back,#tpl-pick-overlay .ex-equip{min-height:44px;min-width:44px}
#tpl-pick-overlay .ex-equip-bar{padding:8px 0 4px;margin:0 -16px;padding-inline:16px;scroll-padding-inline:16px}
#tpl-pick-overlay .ex-equip{padding:0 14px}
#tpl-pick-overlay .ex-equip:not(.on){color:var(--muted);border-color:var(--border2)}
#tpl-pick-overlay .ex-item-info{position:relative;width:44px;height:44px;border:0;background:none}
#tpl-pick-overlay .ex-item-info::before{content:'';position:absolute;inset:8px;border-radius:50%;border:1px solid var(--border2);transition:border-color var(--mo-quick)}
#tpl-pick-overlay .ex-item-info:active::before{border-color:var(--accent)}
#tpl-pick-overlay .ex-item{min-height:56px;padding:7px 4px 7px 8px;border-radius:10px}
#tpl-pick-overlay .ex-item.selected{box-shadow:inset 3px 0 0 var(--accent);background:rgba(var(--accent-rgb),.08)}
#tpl-pick-overlay .ex-item.selected::before{content:none}
#tpl-pick-overlay .ex-item.selected .ex-item-name{color:var(--accent-soft)}
#tpl-pick-overlay .ex-item.selected .ex-item-name::before{content:'';display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5l4 4 8-9'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5l4 4 8-9'/%3E%3C/svg%3E") center/contain no-repeat}
#tpl-pick-overlay .ex-item-tag.inplan{color:var(--accent-soft);border:1px solid rgba(var(--accent-rgb),.35);background:none}
#tpl-pick-overlay .rb-pick-foot{flex:none;padding:10px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.07);background:rgba(10,10,12,.92)}
#tpl-pick-overlay .rb-pick-foot .sbtn{width:100%;min-height:52px;margin:0;padding:0 12px;transition:background var(--mo-base),color var(--mo-base),box-shadow var(--mo-base)}
#tpl-pick-overlay .rb-pick-foot .sbtn[aria-disabled="true"]{background:rgba(255,255,255,.08);color:var(--text2);box-shadow:none}

/* La fiche d'un exercice s'ouvre devant le builder et sa liste. */
body:has(#tpl-create-overlay.show) #ex-modal{z-index:640}

/* Clavier ouvert : la feuille suit la zone visible et le dock s'efface. */
/* Coque iOS (viewport-fit=cover) : la zone sûre du haut reste dégagée, comme #v-msg. */
html.keyboard-open #tpl-create-overlay.show,html.keyboard-open #tpl-pick-overlay.show{top:calc(var(--visual-top,0px) + env(safe-area-inset-top,0px));bottom:auto;height:calc(var(--visual-vh,100dvh) - env(safe-area-inset-top,0px))}
html.keyboard-open #tpl-create-overlay .rb-sheet,html.keyboard-open #tpl-pick-overlay .rb-pick-sheet{height:calc(var(--visual-vh,100dvh) - env(safe-area-inset-top,0px) - 8px);max-height:calc(var(--visual-vh,100dvh) - env(safe-area-inset-top,0px) - 8px)}
html.keyboard-open #tpl-create-overlay .rb-dock{display:none}

@media (max-width:374px){
  #tpl-create-overlay .rb-scroll{padding:0 16px 16px}
  #tpl-create-overlay .rb-head-row{margin:0 -16px;padding-left:16px;padding-right:16px}
  #tpl-create-overlay .rb-plate,#tpl-create-overlay .rb-base-rail{margin:0 -16px;padding:0 16px}
  #tpl-create-overlay .rb-base-rail{scroll-padding-inline:16px}
  #tpl-create-overlay .rb-dock{padding-left:16px;padding-right:16px}
  #tpl-create-overlay .rb-save{letter-spacing:1.2px}
}
