/* Pmix.reviewer — charte Poker Mix (identique au rejoueur, reviewer_src/ui/pm.css) :
   thème sombre, Inter pour le texte, Lilex pour les libellés et les nombres, jaune Live pour
   l'élément courant et l'action principale. Espacements sur une grille de 4 px. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;800&family=Lilex:wght@400;500;700&display=swap');
:root{
  --pm-base:#1A1A1A;--pm-hover:#242424;--pm-layer:#313131;--pm-content:#888888;--pm-card:#F9F9F9;--pm-live:#FFEB3B;--pm-line:#3D3D3D;
  --pm-info:#5192E6;--pm-success:#2FBA75;--pm-danger:#E65656;--pm-warning:#FB923C;
  --bg:var(--pm-base);--surface:var(--pm-hover);--fg:var(--pm-card);--muted:var(--pm-content);--line:var(--pm-line);--layer:var(--pm-layer);--accent:var(--pm-live);
  --font-main:'Inter',system-ui,-apple-system,sans-serif;--font-mono:'Lilex',ui-monospace,SFMono-Regular,monospace;
  --r:8px;--r-s:6px;--shadow:0 8px 24px rgba(0,0,0,.35);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.45 var(--font-main);-webkit-font-smoothing:antialiased}
a{color:var(--fg);text-underline-offset:2px}
img{max-width:100%}
code{font-family:var(--font-mono);font-size:12px;background:var(--layer);padding:1px 6px;border-radius:4px}
svg.ic{width:16px;height:16px;flex:none;vertical-align:-3px;fill:currentColor}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- en-tête (même structure que le rejoueur) ---------- */
.top{height:56px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding-left:16px;position:sticky;top:0;background:var(--bg);z-index:30}
.top .sym{width:36px;height:36px;flex:none;margin-right:12px;display:block}.top .sym svg{width:36px;height:36px;display:block}
.top .mod{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;margin-right:20px}
.top .mod b{color:var(--fg);font-weight:500}
.tabs{display:flex;height:56px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs a{display:flex;align-items:center;gap:8px;padding:0 18px;height:56px;font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;position:relative;white-space:nowrap;flex:none}
.tabs a:hover{color:var(--fg);background:var(--surface)}
.tabs a.on{background:var(--layer);color:var(--fg)}.tabs a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--accent)}
.tabs a svg.ic{width:16px;height:16px}
.top .right{display:flex;align-items:center;gap:4px;padding:0 12px;flex:none}
.userchip{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border-radius:var(--r-s);text-decoration:none;font-family:var(--font-mono);font-size:11px;color:var(--fg)}
.userchip span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.userchip:hover,.iconbtn:hover{background:var(--surface)}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-s);color:var(--muted);text-decoration:none}
@media(max-width:980px){.top .mod{display:none}.userchip span{display:none}}
@media(max-width:720px){.tabs a{padding:0 14px}.tabs a .lbl{display:none}.tabs a.on .lbl{display:inline}.userchip .login{display:none}}

/* ---------- page ---------- */
main{max-width:1280px;margin:0 auto;padding:20px 16px 72px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:4px 0 16px}
.page-head h1{margin:2px 0 0}
.ov{font-family:var(--font-mono);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1{font-size:28px;font-weight:800;letter-spacing:-.01em;line-height:1.15;margin:4px 0 12px}
h1 small{font-size:12px;color:var(--muted);font-weight:400;margin-left:10px;font-family:var(--font-mono);letter-spacing:.04em}
h2{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 12px;display:flex;align-items:center;gap:8px}
h2 small{letter-spacing:.04em;text-transform:none}
h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:16px 0 8px}
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--fg)}.crumbs .sep{opacity:.5}
.crumbs .nav{margin-left:auto;display:flex;gap:4px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;margin:0 0 16px;overflow-x:auto}.card.narrow{max-width:460px}.validate{overflow:visible}
.card>h2:first-child{margin-top:0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}@media(max-width:960px){.cols{grid-template-columns:minmax(0,1fr)}}
.help{color:var(--muted);font-size:13px;margin:4px 0 12px;max-width:90ch}.empty{color:var(--muted);font-style:italic}
.err{color:var(--pm-danger)}.ok{color:var(--pm-success)}.warn{color:var(--pm-warning);font-weight:600}.muted{color:var(--muted)}
.notice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--bg);margin:0 0 16px;font-size:13px}
.notice.ok{border-color:rgba(47,186,117,.5);color:var(--fg)}.notice.ok svg{color:var(--pm-success)}.notice.err{border-color:rgba(230,86,86,.5);color:var(--fg)}.notice.err svg{color:var(--pm-danger)}
.nowrap{white-space:nowrap}

/* ---------- tableaux ---------- */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table{border-collapse:collapse;width:100%}th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tw table tr:last-child td{border-bottom:0}
th{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;white-space:nowrap;background:var(--surface);position:sticky;top:56px;z-index:1}
.card th,.tw th{position:static}
td{font-variant-numeric:tabular-nums}tbody tr:hover td,table tr:hover td{background:rgba(255,255,255,.02)}
table.compact td,table.compact th{padding:6px 8px;font-size:13px}tr.post td{color:var(--muted)}
td.num,th.num{text-align:right;font-family:var(--font-mono)}
td.cards,b.cards,.cards{font-family:var(--font-mono)}
tr.st-validee td{opacity:.7}tr.muted td{color:var(--muted)}
tr.gap td{color:var(--muted);font-size:12px;background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.025) 6px 12px)}tr.gap a{color:var(--accent)}

/* ---------- boutons et formulaires ---------- */
.btn,button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--layer);color:var(--fg);text-decoration:none;cursor:pointer;font:500 13px var(--font-main);white-space:nowrap}
.btn:hover,button:hover{border-color:var(--muted)}button:disabled,.btn.disabled{opacity:.45;cursor:not-allowed}
.btn.sm,button.sm{height:28px;padding:0 10px;font-size:12px;gap:6px}.btn.sm svg.ic,button.sm svg.ic{width:14px;height:14px}
.primary,.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:var(--pm-base);font-weight:600}.primary:hover{filter:brightness(.95);border-color:var(--accent)}
.ghost{background:transparent}.danger{color:var(--pm-danger)}.danger:hover{border-color:var(--pm-danger)}
form.inline{display:inline}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
.actions .sep{width:1px;height:24px;background:var(--line);margin:0 4px}
label{display:block;margin:10px 0;font-size:13px;color:var(--muted)}label>input,label>select{display:block;margin-top:4px;width:100%;max-width:420px}
label.inline{display:inline-flex;align-items:center;gap:6px;margin:6px 14px 6px 0;color:var(--fg)}label.inline input{width:auto;margin:0}
input,select,textarea{font:inherit;font-size:14px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--bg);color:var(--fg)}
textarea{height:auto;padding:8px 10px}input[type=checkbox]{height:auto;accent-color:var(--accent)}input[type=file]{padding:6px;height:auto}
input:focus,select:focus,textarea:focus{border-color:var(--muted);outline:none}input.cards{font-family:var(--font-mono)}
.row-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0}.row-form input:not([type=file]):not([type=hidden]){flex:1;min-width:220px;max-width:640px}
details>summary{cursor:pointer;color:var(--muted);font-size:13px;padding:4px 0}details>summary:hover{color:var(--fg)}details.card>summary{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
summary h2.inline-h{display:inline-flex;margin:0}
kbd{font:11px var(--font-mono);padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:var(--bg);color:var(--fg)}
pre.cmd{font:12px var(--font-mono);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-s);padding:8px 10px;overflow-x:auto;user-select:all;margin:0 0 12px}
code.copy{user-select:all;background:var(--bg);padding:4px 8px;border:1px solid var(--line)}
.md{white-space:pre-wrap;font:12px/1.45 var(--font-mono);background:var(--bg);padding:12px;border-radius:var(--r-s);max-height:420px;overflow:auto;border:1px solid var(--line)}

/* ---------- statuts, étiquettes, progression ---------- */
.pill{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 9px;border-radius:10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:var(--layer);color:var(--muted);white-space:nowrap;vertical-align:middle}
.pill.validee{background:rgba(47,186,117,.16);color:var(--pm-success)}.pill.a_revoir{background:rgba(251,146,60,.16);color:var(--pm-warning)}
.pill.en_relecture{background:rgba(81,146,230,.16);color:var(--pm-info)}.pill.recue{background:var(--layer);color:var(--fg)}
.tag-src{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font:10px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:rgba(81,146,230,.16);color:var(--pm-info);vertical-align:middle}
.progress{height:6px;border-radius:3px;background:var(--layer);overflow:hidden;display:flex;margin:4px 0 4px;min-width:120px}
.progress span{display:block;height:100%}.pg-v{background:var(--pm-success)}.pg-r{background:var(--pm-warning)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 16px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.kpi b{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.kpi span{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kpi.accent{border-color:rgba(255,235,59,.45)}.kpi.accent b{color:var(--accent)}
.feed{list-style:none;padding:0;margin:0;max-height:460px;overflow:auto}.feed li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.feed li small{font-family:var(--font-mono);font-size:11px}
.legend{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 0}.legend .lg{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.lg.validee{background:var(--pm-success)}.lg.a_revoir{background:var(--pm-warning)}.lg.a_relire{background:#9a9a9a}.lg.manuel{background:var(--pm-info)}.lg.trou{background:repeating-linear-gradient(45deg,#2a2a2a 0 3px,#444 3px 6px)}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 16px;color:var(--muted)}.empty-state svg.ic{width:36px;height:36px;color:var(--layer)}

/* ---------- partie : frise de couverture ---------- */
.frise{position:relative;height:30px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;margin-top:8px}
.fz{position:absolute;top:0;bottom:0;display:block;opacity:.9}.fz:hover{opacity:1;outline:1px solid var(--fg);z-index:2}
.fz.validee{background:var(--pm-success)}.fz.a_revoir{background:var(--pm-warning)}.fz.a_relire{background:#9a9a9a}.fz.manuel{background:var(--pm-info)}
.fz.trou{background:repeating-linear-gradient(45deg,#2a2a2a 0 4px,#333 4px 8px);opacity:1;z-index:0}.fz.trou:hover{outline:1px dashed var(--accent)}
.frise-axe{display:flex;justify-content:space-between;font:10px var(--font-mono);color:var(--muted);margin-top:4px}

/* ---------- main : relecture ---------- */
.review-cols{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
video{width:100%;border-radius:var(--r);background:#000;border:1px solid var(--line);display:block}
iframe.rejoueur{width:100%;height:580px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);display:block}
h2 .sync{margin:0 0 0 auto;font:12px var(--font-main);letter-spacing:0;text-transform:none;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
#deroule tr.cur td{background:rgba(255,235,59,.10)}#deroule tr.cur td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
#deroule a[data-seek]{font-family:var(--font-mono);font-size:12px;color:var(--accent);text-decoration:none}
.meta-line{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin:0 0 8px}
.kbd{font-size:12px}.notes{padding-left:18px;margin:4px 0}.notes li{font-size:12.5px;color:var(--muted);margin:3px 0}.notes li.warn{color:var(--pm-warning);font-weight:500}
.validate{position:sticky;bottom:12px;z-index:20;box-shadow:var(--shadow);border-color:#4a4a4a}
.validate form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.validate label{margin:0;display:flex;align-items:center;gap:8px;flex:1;min-width:220px}.validate label input{max-width:none;margin:0;flex:1}
.validate .help{margin:6px 0 0}.validate form.ecarter{display:inline-flex}
.thumbs{display:flex;flex-wrap:wrap;gap:12px}.thumbs figure{margin:0;width:300px}.thumbs img{width:100%;border:1px solid var(--line);border-radius:var(--r-s);display:block}
.thumbs figcaption{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.thumbs img[data-seek]{cursor:pointer}
.thumbs.small figure{width:200px}
.ia{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}tr.ia-diff td{background:rgba(251,146,60,.08)}

/* ---------- éditeur de main ---------- */
.ed-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px}@media(max-width:900px){.ed-grid{grid-template-columns:1fr}}
.ed-row{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:end}.ed-row label{margin:6px 0}.ed-row label input,.ed-row label select{width:auto}
.ed-actions select,.ed-actions input,.ed-players input{height:30px;padding:0 6px;font-size:13px}
.ed-actions button.sm,.ed-players button.sm{height:26px;padding:0 7px;margin-left:2px}
.ed-actions td.calc{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12px}.vt{font-family:var(--font-mono);font-size:12px;color:var(--muted);display:inline-block;min-width:52px}
.ed-preview{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}
.ed-save{display:flex;gap:12px;align-items:end;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.ed-save label{flex:1;min-width:240px;margin:0}

/* ---------- habillages ---------- */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:0 0 16px}
.steps li{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:13px;position:relative}
.steps li a{display:block;padding:10px 12px;text-decoration:none;color:var(--muted);height:100%}.steps li a b{display:block;color:var(--fg);font-weight:600;margin-bottom:2px}
.steps li.done{border-color:rgba(47,186,117,.6)}.steps li.done a b::after{content:" ✓";color:var(--pm-success)}
@media(max-width:820px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.jobs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.job{font:11px var(--font-mono);padding:4px 10px;border-radius:12px;background:var(--layer);color:var(--muted)}
.job.en_cours{background:rgba(255,235,59,.14);color:var(--accent)}.job.termine{background:rgba(47,186,117,.14);color:var(--pm-success)}.job.echec,.job.interrompu{background:rgba(230,86,86,.14);color:var(--pm-danger)}
.editor canvas{width:100%;max-width:1280px;border:1px solid var(--line);border-radius:var(--r-s);cursor:crosshair;background:#000;display:block}
.ed-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:0 0 8px}.ed-bar select{height:32px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}.seg button{border:0;border-radius:0;background:transparent;height:32px}.seg button.on{background:var(--accent);color:var(--pm-base);font-weight:600}
.tiles{display:flex;flex-wrap:wrap;gap:10px}.tile{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0;padding:6px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);width:124px;color:var(--fg)}
.tile img{max-width:110px;max-height:96px;image-rendering:pixelated;border-radius:4px}.tile select{width:100%;height:30px;padding:0 4px}.tile.sugg{border-color:var(--accent)}.tile.sugg select{color:var(--accent)}
.tile small{color:var(--muted);font-size:11px}

/* ---------- connexion ---------- */
.login-wrap{min-height:calc(100vh - 160px);display:flex;align-items:center;justify-content:center}
.login{width:100%;max-width:400px}.login .brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:20px;text-align:center}
.login .brand svg{width:64px;height:64px}.login .brand .mod{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.login .brand .mod b{color:var(--fg);font-weight:500}
.login label input{max-width:none}.login button{width:100%;justify-content:center;margin-top:8px}

/* ---------- impression (rapports) ---------- */
@media print{.top,.noprint,.validate,.crumbs .nav{display:none!important}body{background:#fff;color:#000}.card,.kpi,.tw{background:#fff;border-color:#ccc}
  a{color:#000}th,.help,.muted,.kpi span,h2{color:#444}th{background:#fff}.pill{border:1px solid #999}main{max-width:none;padding:0}}

/* ---------- petits écrans ---------- */
@media(max-width:960px){.review-cols{grid-template-columns:minmax(0,1fr)}iframe.rejoueur{height:520px}}
@media(max-width:720px){main{padding:16px 12px 96px}h1{font-size:24px}.actions .sep{display:none}.crumbs .nav{margin-left:0;width:100%}
  .validate{bottom:8px}.validate label{min-width:100%}.thumbs figure,.thumbs.small figure{width:calc(50% - 6px)}.kpi b{font-size:20px}}

/* ---------- relecture d'une main : disposition réglable (static/relecture-layout.js) ---------- */
html.rv-full main{max-width:none;padding:12px 20px 96px}
.rv-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.rv-bar .seg button{gap:6px;font-size:12.5px}.rv-bar .seg button[aria-pressed="true"]{background:var(--accent);color:var(--pm-base);font-weight:600}
.rv-bar .rv-opt{margin:0;font-size:12.5px}.rv-bar .rv-keys{margin-left:auto;color:var(--muted);font-size:11.5px}
.rv{--rv-hd:max(400px,calc(100vh - 230px));display:grid;column-gap:0;row-gap:12px;align-items:start;
  grid-template-columns:minmax(300px,var(--rv-split,52%)) 14px minmax(300px,1fr)}
.rv>.card{margin:0;min-width:0}
.rv-video{grid-area:video}.rv-gut{grid-area:gut}.rv-table{grid-area:table}.rv-guty{grid-area:gy}
.rv-deroule{grid-area:deroule}.rv-joueurs{grid-area:joueurs}.rv-editeur{grid-area:editeur}.rv-douteux{grid-area:douteux}.rv-historique{grid-area:histo}
html[data-rv-preset="side"] .rv,html[data-rv-preset="video"] .rv,html[data-rv-preset="table"] .rv{
  grid-template-areas:"video gut table" "gy gy gy" "deroule deroule joueurs" "editeur editeur editeur" "douteux douteux douteux" "histo histo histo"}
html[data-rv-preset="stack"] .rv{grid-template-columns:minmax(0,1fr);
  grid-template-areas:"video" "table" "gy" "deroule" "joueurs" "editeur" "douteux" "histo"}
html[data-rv-preset="stack"] .rv-gut{display:none}
html[data-rv-preset="saisie"] .rv{grid-template-areas:"video gut editeur" "gy gy gy" "table table table" "deroule deroule joueurs" "douteux douteux douteux" "histo histo histo"}
/* zone vidéo / table : même hauteur, réglable */
.rv-video,.rv-table{height:var(--rv-h,var(--rv-hd));display:flex;flex-direction:column;padding:10px}
.rv-video video{flex:1;min-height:0;width:100%;height:100%;object-fit:contain;aspect-ratio:16/9;border-radius:6px}
.rv-cap{margin:8px 2px 0;font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rv-table h2{margin:0 0 8px}.rv iframe.rejoueur{flex:1;min-height:0;height:100%;border-radius:6px}
html[data-rv-preset="saisie"] .rv-editeur{height:var(--rv-h,var(--rv-hd));overflow:auto;padding:12px}
html[data-rv-preset="saisie"] .rv-editeur .ed-grid{grid-template-columns:minmax(0,1fr)}
/* séparateurs */
.rv-gut{align-self:stretch;display:flex;align-items:center;justify-content:center;cursor:col-resize;touch-action:none;border-radius:6px}
.rv-gut i{display:block;width:4px;height:56px;border-radius:2px;background:var(--line);transition:background .15s,height .15s}
.rv-gut:hover i,.rv-gut:focus-visible i,html.rv-drag .rv-gut i{background:var(--accent);height:96px}
.rv-guty{height:14px;margin:-6px 0;display:flex;align-items:center;justify-content:center;cursor:row-resize;touch-action:none}
.rv-guty i{display:block;height:4px;width:72px;border-radius:2px;background:var(--line);transition:background .15s,width .15s}
.rv-guty:hover i,.rv-guty:focus-visible i{background:var(--accent);width:120px}
html.rv-drag,html.rv-drag *{user-select:none}html.rv-drag iframe,html.rv-drag video{pointer-events:none}
/* sections repliables */
details.fold>summary{list-style:none;display:flex;align-items:center;gap:8px}details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s;flex:none;margin:0 2px}
details.fold[open]>summary::before{transform:rotate(45deg)}details.fold[open]>summary{margin-bottom:8px}
details.fold:not([open]){padding-top:10px;padding-bottom:10px}
img.mini-av{width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:7px;border:1px solid var(--line)}
#deroule td{font-size:13.5px}
.validate{padding:10px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.validate form{flex:1;flex-wrap:nowrap}.validate form.ecarter{flex:none;margin:0}
@media(max-width:900px){
  .rv{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"video" "table" "deroule" "joueurs" "editeur" "douteux" "histo"!important}
  .rv-gut,.rv-guty,.rv-bar .seg,.rv-bar .rv-keys{display:none}
  .rv-video{height:auto}.rv-table{height:72vh}html[data-rv-preset="saisie"] .rv-editeur{height:auto}
  .validate form{flex-wrap:wrap}}

/* ---------------------------------------------------------------- parcours d'une partie */
.pill.a_signer{background:rgba(255,235,59,.16);color:var(--accent)}
.pc h2 small{font-weight:400}
.pc-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;list-style:none;padding:0;margin:4px 0 14px;counter-reset:pc}
.pc-steps li{position:relative;display:flex;flex-direction:column;gap:2px;padding:10px 12px 10px 46px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);min-height:58px}
.pc-steps li b{font-size:13px;font-weight:600;color:var(--fg)}.pc-steps li small{font-size:11.5px;color:var(--muted);line-height:1.35}
.pc-dot{position:absolute;left:10px;top:12px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:700 12px var(--font-mono);background:var(--layer);color:var(--muted)}
.pc-dot svg.ic{width:14px;height:14px}
.pc-steps li.fait{border-color:rgba(47,186,117,.45)}.pc-steps li.fait .pc-dot{background:rgba(47,186,117,.18);color:var(--pm-success)}
.pc-steps li.encours{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pc-steps li.encours .pc-dot{background:var(--accent);color:var(--pm-base)}
.pc-steps li.afaire{opacity:.7}.pc-steps li.facultatif:not(.fait) .pc-dot{background:transparent;border:1px dashed var(--line)}
.pc-steps.compact{grid-template-columns:minmax(0,1fr);margin:12px 0}
.pc-now{border-top:1px solid var(--line);padding-top:12px}.pc-now h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}
.pc-now p{margin:4px 0 8px;max-width:900px}.pc-now .actions{margin:8px 0 4px}
.pc-n{font:600 11px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(255,235,59,.45);border-radius:10px;padding:2px 8px}
.pc-todo{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px}
.pc-todo li{display:flex;align-items:center;gap:8px;font-size:13px}.pc-todo li svg.ic{color:var(--pm-warning);flex:none}
.pc-sign{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:8px;padding:12px;border:1px dashed rgba(255,235,59,.45);border-radius:var(--r)}
.pc-sign label.inline{margin:0;align-items:flex-start;line-height:1.4}.pc-sign label.inline input{margin-top:3px}
.pc-reopen{margin-top:10px}.pc-reopen summary{cursor:pointer;color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:6px}
.pc-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-s);background:var(--surface);color:var(--fg);text-decoration:none;font-size:13px}
.pc-strip:hover{border-color:var(--muted);border-left-color:var(--accent)}.pc-strip .progress{width:140px;min-width:0;margin:0}.pc-strip.ok{border-left-color:var(--pm-success)}.pc-strip.ok svg.ic{color:var(--pm-success)}
.pc-strip .muted{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:12px}
.flow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;align-items:center;margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.flow ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.flow li{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:4px 10px;border-radius:14px;background:var(--layer)}
.flow li:not(.end)::after{content:"›";margin-left:6px;color:var(--muted)}.flow li.end{background:rgba(255,235,59,.14);color:var(--accent)}.flow li svg.ic{width:14px;height:14px}
.fz.trou.vu{background:repeating-linear-gradient(45deg,#203828 0 4px,#2a4a34 4px 8px)}.lg.trou.vu{background:repeating-linear-gradient(45deg,#203828 0 3px,#2f5a3d 3px 6px)}
tr.gap.vu td{color:var(--pm-success)}
.row-form.tight{margin:0;flex-wrap:nowrap}.row-form.tight input:not([type=hidden]){min-width:200px;height:28px;font-size:12px}
.validate .vrow{display:flex;align-items:center;gap:10px;flex:1;flex-wrap:wrap}.validate .vrow span{display:inline-flex;align-items:center;gap:6px}
.validate label.forcer{flex:none;min-width:0;color:var(--pm-warning);font-size:12.5px}
.wide-ish{max-width:620px}
@media(max-width:720px){.flow{grid-template-columns:minmax(0,1fr)}.pc-steps{grid-template-columns:minmax(0,1fr)}.pc-strip .muted{margin-left:0}}

/* ---------------------------------------------------------------- lecture de la main (temps morts sautés) */
.hb{flex:none;margin-top:8px}
.hb-track{position:relative;height:18px;border-radius:4px;cursor:pointer;background:repeating-linear-gradient(45deg,#232323 0 4px,#2c2c2c 4px 8px);overflow:hidden}
.hb-seg{position:absolute;top:0;bottom:0;background:#4a4a4a}
.hb-act{position:absolute;top:3px;bottom:3px;width:2px;margin-left:-1px;background:var(--accent);border-radius:1px;cursor:pointer}
.hb-act:hover{top:0;bottom:0;width:4px;margin-left:-2px}
.hb-head{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.6);pointer-events:none}
.hb-opts{display:flex;align-items:center;gap:4px 14px;flex-wrap:wrap;margin-top:6px;font-size:12px}.hb-opts label.inline{margin:0;font-size:12px}
.hb-info{margin-left:auto}
