@import url('https://fonts.googleapis.com/css2?family=Yanone+Kaffeesatz:wght@300;400;600;700&display=swap');
*{box-sizing:border-box;margin:0;padding:0}
body,.videos-app{font-family:'Yanone Kaffeesatz',sans-serif;background:#f5f4f0;color:#1a1a1a;}
.videos-app{max-width:1400px;margin:0 auto;padding:48px 32px;}

/* ── Animation spin loader ── */
@keyframes rv-spin{to{transform:rotate(360deg);}}

/* ── Animation pulse dot présence ── */
@keyframes rv-pulse{
  0%   { box-shadow: 0 0 0 0 rgba(39,174,96,.5); }
  70%  { box-shadow: 0 0 0 7px rgba(39,174,96,0); }
  100% { box-shadow: 0 0 0 0 rgba(39,174,96,0); }
}

/* ══ Login wall ══ */
.rv-login-wall{
  position:fixed;inset:0;z-index:999999;
  display:flex;align-items:center;justify-content:center;
  pointer-events:all;
}
.rv-login-bg{
  position:absolute;inset:0;
  background:rgba(30,28,25,.45);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  pointer-events:none;
}
body:has(.rv-login-wall) > *:not(.rv-login-wall){
  pointer-events:none;
  user-select:none;
}
.rv-login-box{
  position:relative;z-index:1;
  background:#fff;
  border:1px solid #e0ddd8;
  border-radius:6px;
  pointer-events:all;
  padding:48px 52px;
  width:100%;max-width:400px;
  box-shadow:0 24px 64px rgba(0,0,0,.10);
}
.rv-login-logo{display:block;margin:0 auto 16px;max-width:280px;width:80%;height:auto;}
.rv-login-sub{
  font-size:14px;font-weight:300;color:#aaa;
  letter-spacing:.5px;text-align:center;margin-bottom:32px;
}
.rv-login-err{
  background:#fde8e8;color:#c0392b;
  font-size:13px;padding:10px 14px;
  border-radius:3px;margin-bottom:16px;
  letter-spacing:.3px;
}
.rv-login-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;}
.rv-login-field label{
  font-size:11px;font-weight:700;letter-spacing:2px;
  text-transform:uppercase;color:#888;
}
.rv-login-field input{
  padding:11px 14px;border:1px solid #ccc9c2;border-radius:3px;
  font-family:'Yanone Kaffeesatz',sans-serif;font-size:16px;color:#111;
  outline:none;transition:border-color .2s;background:#faf9f7;
}
.rv-login-field input:focus{border-color:#111;background:#fff;}
.rv-login-box button{
  width:100%;margin-top:8px;padding:13px 0;
  background:#111;border:none;border-radius:3px;
  color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:15px;font-weight:600;letter-spacing:2px;
  text-transform:uppercase;cursor:pointer;
  transition:background .2s;
}
.rv-login-box button:hover{background:#333;}
.rv-login-box button:disabled{background:#999;cursor:default;}

/* ── Header ── */
.vl-header{display:flex;align-items:baseline;gap:12px;margin-bottom:32px;border-bottom:1px solid #e0ddd8;padding-bottom:16px;flex-wrap:wrap;}
.vl-header h1{font-family:'Yanone Kaffeesatz',sans-serif;font-size:45pt;font-weight:300;letter-spacing:3px;color:#111;text-transform:uppercase;line-height:1;margin-right:6px;}
.vl-logo{height:1em;width:auto;display:block;vertical-align:middle;}
.rv-tv-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border:1px solid #ccc9c2;border-radius:2px;
  background:transparent;color:#888;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:13px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  transition:border-color .15s,color .15s,background .15s;white-space:nowrap;
  vertical-align:middle;
}
.rv-tv-btn:hover{border-color:#111;color:#111;}
.rv-tv-btn.active{background:#111;color:#fff;border-color:#111;}

/* ── Upload ── */
.vl-upload{display:flex;align-items:center;gap:8px;margin-bottom:24px;flex-wrap:wrap;}
#videoFile,#folderInput{display:none}
.file-label{display:inline-flex;align-items:center;padding:10px 22px;border:1px solid #ccc9c2;border-radius:3px;background:#fff;color:#555;font-family:'Yanone Kaffeesatz',sans-serif;font-size:15px;letter-spacing:.5px;cursor:pointer;transition:border-color .2s,color .2s;}
.file-label:hover{border-color:#111;color:#111}
#uploadBtn{padding:10px 28px;background:#111;border:none;border-radius:3px;color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;font-size:15px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:background .2s;}
#uploadBtn:hover{background:#333}
.vl-progress-wrap{width:100%;max-width:420px;}
.progressbar{height:2px;background:#e0ddd8;border-radius:99px;overflow:hidden;margin-top:8px;}
#progress{height:100%;width:0%;background:#111;border-radius:99px;transition:width .2s ease;}
#percent{font-size:12px;color:#aaa;margin-top:4px;letter-spacing:1px;}
.rv-progress-row{display:flex;align-items:center;gap:10px;}
.rv-progress-row .progressbar{flex:1;}

/* Pause/Resume upload */
#rvPauseBtn{
  flex-shrink:0;padding:5px 14px;border:1px solid #ccc9c2;border-radius:2px;
  background:#fff;color:#555;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  cursor:pointer;transition:all .2s;display:none;
}
#rvPauseBtn:hover{border-color:#111;color:#111;}
#rvPauseBtn.paused{background:#e63030;border-color:#e63030;color:#fff;}
#rvPauseBtn.paused:hover{background:#c0392b;border-color:#c0392b;}

/* Upload badge */
.rv-upload-badge{
  width:32px;height:32px;background:#e63030;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:700;
  flex-shrink:0;
}

/* ── Tabs ── */
.vl-tabs{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;margin-bottom:16px;border-bottom:1px solid #e0ddd8;padding-bottom:8px;overflow-x:auto;}
.vl-tab{padding:8px 14px;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13pt;font-weight:300;letter-spacing:1px;text-transform:uppercase;color:#aaa;cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;transition:color .2s,border-color .2s;white-space:nowrap;}
.vl-tab.active{color:#111;border-bottom-color:#111}
.vl-tab:hover{color:#333}

/* ── Grid ── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;align-items:start;}

/* ── Card ── */
.rv-thumb-wrap{position:relative;}
.video{background:#fff;border:1px solid #ece9e4;border-radius:4px;overflow:hidden;transition:box-shadow .2s,transform .2s,outline .1s;cursor:pointer;outline:3px solid transparent;}
.video:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px);}
.rv-card-watched{opacity:.6;}
.rv-card-watched:hover{opacity:1;}
.video img{width:100%;height:240px;object-fit:cover;display:block;}
.video-info{padding:10px 12px 12px;}
.video-info p{font-size:16px;font-weight:600;letter-spacing:.3px;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:1px;line-height:1.1;}
.video-meta{font-size:12px;font-weight:300;color:#aaa;letter-spacing:.5px;margin-bottom:1px;line-height:1.2;}
.rv-resume-tag{color:#888;font-weight:400;}
.vl-arrow{font-size:22px;color:#bbb;margin-top:4px;text-align:center;}

/* TV Mode focus */
.rv-tv-mode .video.rv-focus{
  outline:3px solid #e63030;
  box-shadow:0 0 0 6px rgba(230,48,48,.15);
  transform:translateY(-4px) scale(1.02);
  opacity:1!important;
}
.rv-tv-mode .vl-tab.rv-focus{
  outline:3px solid #e63030;
  color:#111;
  border-radius:3px 3px 0 0;
}
.rv-tv-indicator{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  background:#111;color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:13px;letter-spacing:1.5px;text-transform:uppercase;
  padding:10px 24px;border-radius:99px;z-index:50000;
  opacity:0;transition:opacity .3s;pointer-events:none;
  display:flex;align-items:center;gap:12px;
}
.rv-tv-indicator.show{opacity:1;}
.rv-tv-key{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;background:#fff;color:#111;
  border-radius:4px;font-size:11px;font-weight:700;
}

/* ── Badges ── */
.rv-badge{position:absolute;top:8px;right:8px;transform:none!important;}
.rv-badge-done{
  width:12px;height:12px;background:#e63030;border-radius:50%;
  box-shadow:0 0 0 2px rgba(255,255,255,.9),0 2px 6px rgba(230,48,48,.5);
}
.rv-badge-prog{
  position:absolute;top:8px;right:8px;
  background:rgba(0,0,0,.55);color:#fff;
  font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.5px;padding:3px 7px;border-radius:2px;text-transform:uppercase;
}
.rv-check{display:none;}
.rv-badge-ep{
  position:static;width:10px;height:10px;flex-shrink:0;border-radius:50%;
  background:#e63030;box-shadow:0 0 0 1.5px rgba(255,255,255,.8),0 1px 4px rgba(230,48,48,.4);
}
.rv-badge-ep .rv-check{display:none;}
.rv-badge-ep:empty{display:none;}

/* ── Admin actions sous la vignette ── */
.video-actions-below{
  display:flex;gap:4px;padding:8px 10px 4px;
  border-top:1px solid #f0ede9;
}
.video-actions-below button{
  flex:1;height:30px;border-radius:3px;border:1px solid #e8e5e0;
  background:#faf9f7;color:#aaa;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s,border-color .15s;padding:0;
}
.video-actions-below button:hover{background:#111;color:#fff;border-color:#111;}
.video-actions-below button.danger:hover{background:#e63030;color:#fff;border-color:#e63030;}
.video-actions-below button svg{width:13px;height:13px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ── Overlay play sur la vignette ── */
.rv-thumb-wrap{position:relative;cursor:pointer;}
.rv-play-overlay{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,0);
  transition:background .2s;
  pointer-events:none;
}
.rv-thumb-wrap:hover .rv-play-overlay{background:rgba(0,0,0,.35);}
.rv-play-overlay svg{opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s;}
.rv-thumb-wrap:hover .rv-play-overlay svg{opacity:1;transform:scale(1);}

/* ── Episode panel ── */
.ep-panel{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s ease,opacity .3s ease;background:#fff;border:1px solid #ece9e4;border-radius:4px;margin-bottom:16px;padding:0 24px;}
.ep-panel.open{padding:24px;}
.season-block{margin-bottom:16px;}
.season-title{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#888;border-bottom:1px solid #e0ddd8;padding-bottom:8px;margin-bottom:10px;}
.season-toggle{cursor:pointer;user-select:none;transition:color .15s;}
.season-toggle:hover{color:#333;}
.ep-list{display:flex;flex-direction:column;gap:3px;}
.ep-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#faf9f7;border:1px solid #ede9e3;border-radius:3px;transition:background .15s,outline .1s;outline:2px solid transparent;}
.ep-row.rv-focus{outline:2px solid #e63030;background:#fff7f7;}
.rv-perso-item .video-info p{font-size:16px;font-weight:700;color:#222;}
.ep-code{font-size:16px;font-weight:700;color:#111;letter-spacing:.3px;min-width:160px;flex-shrink:0;}
.ep-name{font-size:15px;color:#555;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.ep-name:hover{color:#111;}
.rv-ep-eye{width:14px;height:14px;flex-shrink:0;opacity:.35;transition:opacity .15s;vertical-align:middle;}
.ep-name:hover .rv-ep-eye{opacity:.8;}
.ep-pos{font-size:9px;color:#fff;background:#e03030;border-radius:50%;width:20px;height:20px;min-width:20px;min-height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;padding:0;box-sizing:border-box;line-height:1;}
.ep-watched{font-size:13px;color:#111;font-weight:700;flex-shrink:0;}
.ep-del-btn{
  flex-shrink:0;background:none;border:none;color:#ddd;
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s;padding:0;
}
.ep-del-btn:hover{background:#fde8e8;color:#c0392b;}
.ep-del-btn svg{width:13px;height:13px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.ep-rename-btn{
  flex-shrink:0;background:none;border:none;color:#ccc;
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s;padding:0;
}
.ep-rename-btn:hover{background:#f0f0f0;color:#111;}
.ep-rename-btn svg{width:13px;height:13px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

/* ── Bouton téléchargement ── */
.rv-dl-btn{
  flex:1;height:30px;border-radius:3px;border:1px solid #e8e5e0;
  background:#faf9f7;color:#aaa;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s,border-color .15s;
  text-decoration:none;
}
.rv-dl-btn:hover{background:#2980b9;color:#fff;border-color:#2980b9;}
.rv-dl-btn svg{width:13px;height:13px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.ep-dl-btn{
  flex-shrink:0;background:none;border:none;color:#ccc;
  width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s,color .15s;
  text-decoration:none;
}
.ep-dl-btn:hover{background:#eee;}
.ep-dl-btn:hover svg{stroke:#000;}
.ep-dl-btn svg{width:20px;height:20px;display:block;fill:none;stroke:#111;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
#rvPauseBtn{
  flex-shrink:0;
  width:32px;height:32px;border-radius:50%;
  border:1.5px solid #ccc9c2;background:#fff;
  color:#555;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  transition:all .2s;padding:0;
}
#rvPauseBtn:hover{border-color:#111;color:#111;background:#f5f4f0;}
#rvPauseBtn.paused{background:#e63030;border-color:#e63030;color:#fff;}
#rvPauseBtn.paused:hover{background:#c0392b;border-color:#c0392b;}
#rvPauseBtn svg{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.grid-empty{text-align:center;padding:80px 0;color:#ccc;font-size:16px;font-weight:300;letter-spacing:2px;text-transform:uppercase;grid-column:1/-1;}

/* ── Generic Modal ── */
.rv-modal-bg{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300000;
  display:flex;align-items:center;justify-content:center;
}
.rv-modal-box{
  background:#fff;border-radius:6px;padding:36px 40px;
  min-width:320px;max-width:500px;width:90%;
  font-family:'Yanone Kaffeesatz',sans-serif;
}
.rv-modal-box h3{font-size:22px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#111;margin-bottom:20px;}
.rv-modal-input{
  width:100%;padding:10px 14px;border:1px solid #ccc9c2;border-radius:3px;
  font-family:'Yanone Kaffeesatz',sans-serif;font-size:16px;color:#111;
  outline:none;transition:border-color .2s;
}
.rv-modal-input:focus{border-color:#111;}
.rv-modal-btns{display:flex;gap:10px;margin-top:20px;}
.rv-btn-primary{flex:1;padding:10px 0;background:#111;border:none;border-radius:3px;color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.rv-btn-primary:hover{background:#333;}
.rv-btn-secondary{flex:1;padding:10px 0;background:#fff;border:1px solid #ccc;border-radius:3px;color:#555;font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.rv-btn-secondary:hover{background:#f5f4f0;}
.rv-btn-danger{flex:1;padding:10px 0;background:#fff;border:1px solid #e0ddd8;border-radius:3px;color:#c0392b;font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s;}
.rv-btn-danger:hover{background:#c0392b;color:#fff;border-color:#c0392b;}

/* Thumb upload preview */
.rv-thumb-preview{
  width:100%;height:140px;background:#f5f4f0;border:1px dashed #ccc9c2;
  border-radius:3px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;margin-bottom:12px;overflow:hidden;transition:border-color .2s;
}
.rv-thumb-preview:hover{border-color:#111;}
.rv-thumb-preview img{width:100%;height:100%;object-fit:cover;}
.rv-thumb-preview span{font-size:13px;color:#bbb;letter-spacing:1px;text-transform:uppercase;}

/* ── Mode sélection batch ── */
.rv-select-toggle-wrap{display:flex;margin-bottom:12px;}
.rv-select-toggle-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 14px;border:1px solid #ccc9c2;border-radius:2px;
  background:transparent;color:#888;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  cursor:pointer;transition:all .15s;
}
.rv-select-toggle-btn:hover{border-color:#111;color:#111;}
.rv-select-toggle-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.rv-batch-bar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:10px 16px;margin-bottom:12px;
  background:#fff;border:1px solid #e0ddd8;border-radius:4px;
}
.rv-batch-check-all{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;color:#555;letter-spacing:.3px;}
.rv-batch-check-all input{width:15px;height:15px;cursor:pointer;accent-color:#111;}
.rv-sel-count{font-size:13px;color:#aaa;letter-spacing:.5px;flex:1;}
.rv-batch-del-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 18px;background:#c0392b;border:none;border-radius:3px;
  color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;
  cursor:pointer;transition:background .15s;
}
.rv-batch-del-btn:hover{background:#a93226;}
.rv-batch-del-btn:disabled{background:#ddd;color:#bbb;cursor:default;}
.rv-batch-del-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.rv-batch-cancel-btn{
  padding:7px 14px;background:transparent;border:1px solid #ccc;border-radius:3px;
  color:#888;font-family:'Yanone Kaffeesatz',sans-serif;
  font-size:13px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  transition:all .15s;
}
.rv-batch-cancel-btn:hover{border-color:#111;color:#111;}

/* Case à cocher sur la vignette */
.rv-sel-check{
  position:absolute;top:8px;left:8px;z-index:10;
  display:none; /* visible seulement en mode sélection */
}
.rv-sel-check input{
  width:18px;height:18px;cursor:pointer;accent-color:#e63030;
  border-radius:3px;
}
/* Afficher les cases en mode sélection */
.rv-select-mode .rv-sel-check{display:block;}
/* Empêcher le play en mode sélection */
.rv-select-mode .rv-movie-play{pointer-events:none;}
.rv-select-mode .rv-sel-check{pointer-events:auto;}


/* Highlight card sélectionnée */
.rv-select-mode .rv-card-check:checked ~ * { opacity:.85; }
.rv-select-mode .video:has(.rv-card-check:checked){
  outline:2px solid #e63030;
  box-shadow:0 0 0 4px rgba(230,48,48,.12);
}

/* ── Sort buttons ── */
.rv-sort-wrap{display:inline-flex;gap:4px;margin-left:auto;align-items:center;}
.rv-sort-btn{background:transparent;border:1px solid #ccc9c2;color:#888;padding:4px 10px;border-radius:3px;cursor:pointer;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;letter-spacing:.5px;text-transform:uppercase;transition:all .2s;}
.rv-sort-btn:hover{border-color:#888;color:#333;}
.rv-sort-btn.active{background:#111;border-color:#111;color:#fff;}

/* ── Refresh meta button ── */
.rv-meta-btn{background:transparent;border:1px solid #ccc9c2;color:#888;padding:3px 7px;border-radius:3px;cursor:pointer;font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;letter-spacing:.5px;text-transform:uppercase;margin-left:2px;vertical-align:middle;transition:all .2s;white-space:nowrap;}
.rv-tool-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid #f5f4f0;padding:8px 10px;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;color:#333;cursor:pointer;text-decoration:none;letter-spacing:.3px;transition:background .15s;}
.rv-tool-item:last-child{border-bottom:none;}
.rv-tool-item:hover{background:#f5f4f0;color:#1a1a1a;}
.rv-meta-btn:hover{border-color:#888;color:#333;}
.rv-meta-btn:disabled{opacity:.4;cursor:default;}

/* ── Director & actors ── */
.rv-director{font-size:11px;color:#666;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rv-actors{font-size:10px;color:#999;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;}

/* ── Initiales vus ── */
.rv-initials-wrap{position:absolute;top:6px;right:6px;display:flex;flex-wrap:wrap;gap:3px;justify-content:flex-end;z-index:5;}
.rv-initial-dot{width:22px;height:22px;border-radius:50%;background:#c0392b;color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:0;box-shadow:0 1px 4px rgba(0,0,0,.4);}

.rv-app-logo{display:block;max-width:180px;height:auto;margin-bottom:24px;}

/* ── Initiales dans épisodes ── */
.rv-ep-initials{display:inline-flex;gap:3px;align-items:center;flex-shrink:0;}
.rv-initial-dot-sm{width:18px;height:18px;border-radius:50%;background:#c0392b;color:#fff;font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;}

/* ── Photo cards ── */
.rv-photo-card .rv-thumb-wrap img{object-fit:cover;aspect-ratio:1/1;width:100%;height:100%;}
.rv-photo-card{cursor:pointer;}
.rv-photo-card:hover .rv-thumb-wrap::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.15);border-radius:3px 3px 0 0;}

.rv-btn-repair{color:#e67e22;}
.rv-btn-repair:hover{color:#d35400;background:#fef9f3;}
/* Repair button in episode rows */
.ep-repair-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border:none;border-radius:3px;
  background:transparent;cursor:pointer;color:#e67e22;flex-shrink:0;
  transition:background .15s,color .15s;
}
.ep-repair-btn:hover{background:#fef9f3;color:#d35400;}
.ep-repair-btn svg{width:13px;height:13px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}


/* ══════════════════════════════════════════════════════
   INTERFACE MOBILE — abonnés (≤ 640px)
   ══════════════════════════════════════════════════════ */

/* ── Variables ── */
:root {
  --rv-red: #c0392b;
  --rv-bg:  #f5f4f0;
  --rv-nav-h: 64px;
  --rv-nav-safe: env(safe-area-inset-bottom, 0px);
}



/* Afficher la nav mobile seulement sur mobile */
.rv-mobile-nav { display: none; }


/* ══ CHRONOLOGIE PERSO HORIZONTALE ══ */
.vl-perso-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
}
.rv-htl {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}
.rv-htl-years {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 0;
}
.rv-htl-year-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e0ddd8;
  color: #666;
  font-family: 'Yanone Kaffeesatz', sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.5px;
  cursor: pointer;
  transition: background .2s, color .2s, transform .15s;
  user-select: none;
}
.rv-htl-year-pill:hover { background: #ccc9c2; color: #1a1a1a; transform: scale(1.08); }
.rv-htl-year-pill.active { background: #e03030; color: #fff; box-shadow: 0 2px 10px rgba(224,48,48,.35); }
.rv-htl-section { text-align: center; }
.rv-htl-vline {
  width: 2px;
  height: 28px;
  background: #d0ccc6;
  margin: 0 auto;
}
.rv-htl-months {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px 0;
}
.rv-htl-month-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #e8e5e0;
  color: #888;
  font-family: 'Yanone Kaffeesatz', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-align: center;
  cursor: pointer;
  transition: background .2s, color .2s, transform .15s;
  user-select: none;
}
.rv-htl-month-pill:hover { background: #d5d1cb; color: #333; transform: scale(1.08); }
.rv-htl-month-pill.active { background: #e03030; color: #fff; box-shadow: 0 2px 10px rgba(224,48,48,.35); }
.rv-htl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
  padding: 18px 0 8px;
  text-align: left;
}


/* Download button perso */
.rv-btn-dl {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  color: #888;
  text-decoration: none;
  transition: background .15s, color .15s;
}
.rv-btn-dl:hover { background: #e8e5e0; color: #1a1a1a; }
.rv-btn-dl svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; }

/* Pastille rouge "déjà vu" perso */
.rv-perso-watched-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #e03030;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.3);
  z-index: 2;
  pointer-events: none;
}

/* Bouton "déjà vu" perso */
.rv-perso-vu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  background: none;
  cursor: pointer;
  color: #bbb;
  border-radius: 4px;
  transition: color .15s, background .15s;
  padding: 0;
}
.rv-perso-vu-btn:hover { background: #f0ede9; color: #555; }
.rv-perso-vu-btn.active { color: #e03030; }
.rv-perso-vu-btn svg { flex-shrink: 0; }

/* Onglets perso (Tout / Videos / Photos) */
.vl-perso-tabs { display:flex; gap:8px; margin-bottom:20px; }
.vl-ptab {
  padding: 8px 20px;
  border: none;
  border-radius: 3px;
  background: #e8e5e0;
  color: #666;
  font-family: 'Yanone Kaffeesatz', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.vl-ptab:hover { background: #d5d1cb; color: #1a1a1a; }
.vl-ptab.active { background: #1a1a1a; color: #fff; }

/* Bouton oeil "déjà vu" perso */
.rv-perso-vu-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  border: none; background: none; cursor: pointer;
  color: #bbb; border-radius: 4px;
  transition: color .15s, background .15s; padding: 0;
}
.rv-perso-vu-btn:hover { background: #f0ede9; color: #555; }
.rv-perso-vu-btn.active { color: #e03030; }
.rv-perso-vu-btn svg { flex-shrink: 0; }

/* Barre reset admin perso */
.rv-perso-reset-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 10px 14px;
  background: #f5f4f0;
  border: 1px solid #e0ddd8;
  border-radius: 4px;
  font-family: 'Yanone Kaffeesatz', sans-serif;
  font-size: 13px;
  color: #999;
  letter-spacing: .5px;
}
.rv-perso-reset-bar span { font-weight: 600; color: #777; margin-right: 4px; }
.rv-perso-reset-bar button {
  padding: 4px 12px;
  border: 1px solid #ccc;
  border-radius: 3px;
  background: #fff;
  color: #555;
  font-family: 'Yanone Kaffeesatz', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.rv-perso-reset-bar button:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.rv-perso-reset-bar button.danger { border-color: #e03030; color: #e03030; }
.rv-perso-reset-bar button.danger:hover { background: #e03030; color: #fff; }

/* ── PERSO ORGANIGRAMME ── */
.rv-porga{margin-bottom:2px;}
.rv-pcats{display:flex;justify-content:center;gap:16px;margin-bottom:8px;flex-wrap:wrap;}
.rv-pcat-wrap{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
  width:140px;min-width:110px;
  padding:22px 12px 18px;
  border-radius:14px;
  border:1px solid #e8e5e0;
  background:none;
  box-shadow:none;
  transition:border-color .18s,box-shadow .18s,transform .18s;
  position:relative;
}
.rv-pcat-wrap:hover{border-color:#1a1a1a;box-shadow:0 6px 22px rgba(0,0,0,.11);transform:translateY(-3px);}
.rv-pcat-wrap:active{transform:translateY(-1px);}
.rv-pcat-icon{
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
  color:#555;
  transition:color .18s;
}
.rv-pcat-icon svg{transition:transform .2s;}
.rv-pcat-wrap:hover .rv-pcat-icon{color:#1a1a1a;}
.rv-pcat-wrap:hover .rv-pcat-icon svg{transform:scale(1.08);}
.rv-pcat{
  border:none;background:none;
  color:#555;
  font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:2.5px;text-transform:uppercase;cursor:pointer;
  pointer-events:none;display:block;text-align:center;
  transition:color .18s;
  white-space:nowrap;
}
.rv-pcat-wrap:hover .rv-pcat{color:#1a1a1a;}
.rv-pcat.active,span.rv-pcat.active{color:#1a1a1a;}
.rv-pcat-wrap.active-cat{background:#1a1a1a;border-color:#1a1a1a;box-shadow:0 4px 18px rgba(0,0,0,.25);}
.rv-pcat-wrap.active-cat .rv-pcat-icon{color:#fff;}
.rv-pcat-wrap.active-cat .rv-pcat{color:#fff;}
.rv-psubs{display:flex;flex-direction:row;gap:8px;flex-wrap:wrap;justify-content:center;align-items:flex-end;margin-top:0px;margin-bottom:4px;}
.rv-psub{padding:7px 18px;background:#f5f4f0;border:1px solid #e8e5e0;border-radius:20px;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.rv-psub:hover{border-color:#1a1a1a;}
.rv-psub.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a;}
/* ── TIMELINE ── */
.rv-htl{margin-top:8px;}
.rv-htl-years{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;margin-bottom:8px;align-items:center;}
.rv-htl-yp{width:52px;height:52px;border-radius:50%;background:#f5f4f0;border:2px solid #e8e5e0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:'Yanone Kaffeesatz',sans-serif;font-size:13px;font-weight:700;transition:all .2s;}
.rv-htl-yp:hover{border-color:#1a1a1a;}
.rv-htl-yp.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a;}
.rv-htl-months{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;margin-bottom:12px;align-items:center;}
.rv-htl-mp{width:52px;height:52px;border-radius:50%;background:#f5f4f0;border:2px solid #e8e5e0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;transition:all .2s;text-align:center;line-height:1.1;}
.rv-htl-mp:hover{border-color:#1a1a1a;}
.rv-htl-mp.active{background:#e03030;color:#fff;border-color:#e03030;}

.rv-htl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px;}
/* ── CARTES PERSO ── */
.rv-pi{background:#fff;border:1px solid #ece9e4;border-radius:6px;overflow:visible;}
.rv-pi .rv-thumb-wrap{position:relative;overflow:hidden;border-radius:6px 6px 0 0;}
.rv-photo-wrap{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:6px 6px 0 0;}
.rv-photo-wrap img,.rv-photo-img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;}
.rv-plbl{font-size:12px;font-weight:600;margin:0 0 3px;color:#555;}
/* ── CREATIONS ── */
.rv-crea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;padding:8px 0;}
.rv-cph{aspect-ratio:16/9;background:#f5f4f0;display:flex;align-items:center;justify-content:center;border-radius:6px 6px 0 0;}
/* ── CASTING ── */
.rv-cast{margin-top:4px;}
.rv-cast>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:'Yanone Kaffeesatz',sans-serif;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#1a1a1a;user-select:none;padding:2px 0;}
.rv-cast>summary::-webkit-details-marker{display:none;}
.rv-cast>summary:hover{color:#e03030;}
.rv-cast-body{padding-top:2px;}
.rv-cr{display:flex;align-items:center;gap:4px;padding:2px 0;border-bottom:1px solid #f5f4f0;}
.rv-cr:last-child{border-bottom:none;}
.rv-cl{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#bbb;white-space:nowrap;flex-shrink:0;margin-right:2px;}
.rv-cn{font-size:13px;color:#333;flex:1;min-width:0;font-weight:500;white-space:normal;word-break:break-word;line-height:1.2;}
.rv-info-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#e03030;color:#fff;border:none;cursor:pointer;flex-shrink:0;transition:background .2s;padding:0;}
.rv-info-btn:hover{background:#888;}
.rv-btn-dl{display:inline-flex;align-items:center;color:#bbb;text-decoration:none;transition:color .15s;}
.rv-btn-dl:hover{color:#1a1a1a;}
.video{overflow:visible!important;}
.rv-thumb-wrap{overflow:hidden;}

/* ── Chronologie horizontale ── */
.chro-wrap{max-width:100%;padding:0 0 24px;}

/* Years row - horizontal wrap */
.chro-years-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px;padding:0 0 6px;align-items:center;justify-content:flex-start;}

/* Year pill - circle */
.chro-year-pill{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.chro-circle{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:#f0eeea;border:2px solid #d4d0ca;font-family:'Yanone Kaffeesatz',sans-serif;font-size:15px;font-weight:700;color:#666;transition:background .2s,border-color .2s,color .2s;user-select:none;}
.chro-year-pill:hover .chro-circle{border-color:#999;}
.chro-year-pill.chro-on .chro-circle{background:#1a1a1a;border-color:#1a1a1a;color:#fff;}

/* Year content block - hidden until open */
.chro-year-block{display:none;width:100%;overflow:hidden;}

/* Months row - horizontal wrap */
.chro-months-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;padding:8px 0 10px;align-items:center;}
.chro-month-pill{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.chro-circle-month{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;padding:0;background:#f0eeea;border:2px solid #d4d0ca;font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;transition:background .2s,border-color .2s,color .2s;user-select:none;white-space:normal;text-align:center;line-height:1.1;}
.chro-month-pill:hover .chro-circle-month,.chro-month-pill:hover .chro-circle-sm{border-color:#999;}
.chro-month-pill.chro-on .chro-circle-month,.chro-month-pill.chro-on .chro-circle-sm{background:#e03030;border-color:#e03030;color:#fff;}

/* Month content block */
.chro-month-block{display:none;width:100%;}
.chro-grid-wrap{overflow:hidden;max-height:0;}

/* Media grid - full width, auto columns */
.chro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding:10px 0 8px;box-sizing:border-box;width:100%;}

/* Section labels */
.chro-sect{grid-column:1/-1;font-family:'Yanone Kaffeesatz',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#bbb;padding:4px 0 0;}

/* Cards */
.chro-card{background:#fff;border:1px solid #ece9e4;border-radius:6px;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s;}
.chro-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.1);}



.chro-thumb{position:relative;aspect-ratio:1/1;background:#f5f4f0;overflow:hidden;}
.chro-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.chro-play-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#222;}
.chro-play-ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);transition:background .2s;}
.chro-vid:hover .chro-play-ov{background:rgba(0,0,0,.38);}
.chro-lbl{font-size:11px;font-weight:600;color:#666;padding:5px 7px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.chro-empty{text-align:center;color:#bbb;padding:48px 0;font-size:13px;}
/* Pastille vu */
.chro-dot{position:absolute;top:5px;right:5px;width:14px;height:14px;border-radius:50%;background:#e03030;border:2px solid #fff;pointer-events:none;z-index:3;box-shadow:0 1px 4px rgba(0,0,0,.25);}



@keyframes fadeInUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}

/* Mobile perso orga - identique desktop */




.rv-prev-btn:hover{background:#e8e7e2!important;border-color:#d4d2cd!important;}
.rv-am-btn:hover{background:#e8e7e2!important;border-color:#d4d2cd!important;}
.chro-card .rv-sel-check{ display:none!important; }
.rv-select-mode .chro-card .rv-sel-check{ display:none!important; }
.chro-card:hover .rv-chro-adm-wrap{ display:flex!important; }
.rv-select-mode .chro-card .rv-chro-adm-wrap{ display:flex!important; }
.rv-chro-adm-wrap.rv-btn-del,
.rv-chro-adm-wrap.rv-chro-check{ width:20px!important;height:20px!important;border-radius:4px!important; }
/* ── Cartes chronologie : contrôles admin ── */
/* Bouton supprimer individuel : caché par défaut, visible au survol hors mode sélection */
.chro-card .rv-btn-del{ display:none!important; }
.chro-card:hover .rv-btn-del{ display:flex!important; }
/* En mode sélection : masquer bouton del individuel, montrer les cases */
.rv-select-mode .chro-card .rv-btn-del{ display:none!important; }
.rv-select-mode .chro-card .rv-card-check{ display:block!important; }
/* Bouton SÉLECTIONNER */
#rvSelectToggleWrap{ display:none; }
#rvSelectToggleWrap.rv-show{ display:flex!important; }

/* ══ Poubelle overlay ══ */
.rv-del-overlay{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.5);color:#fff;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:6;transition:background .15s;}
.rv-del-overlay svg{width:13px;height:13px;display:block;}
.rv-del-overlay:hover{background:rgba(192,57,43,.9);border-color:transparent;}
.video:hover .rv-del-overlay,.rv-pi:hover .rv-del-overlay,.rv-music-card:hover .rv-del-overlay{display:flex;}
.rv-select-mode .rv-del-overlay{display:none!important;}

/* ── Catégorie/sous-dossier actif → fond foncé ── */
.rv-pcat-wrap.active-cat {
  background: #1a1a1a !important;
  border-color: #1a1a1a !important;
  box-shadow: 0 4px 18px rgba(0,0,0,.25) !important;
}
.rv-pcat-wrap.active-cat .rv-pcat-icon {
  color: #fff !important;
}
.rv-pcat-wrap.active-cat .rv-pcat {
  color: #fff !important;
}

/* ── Mobile : catégorie active → fond foncé (override background:none) ── */


/* active-cat : hexagone noir, icône blanche */
.rv-pcat-wrap.active-cat .rv-pcat-icon svg polygon.hexa-bg {
  fill: #1a1a1a !important;
}

/* ── Catégorie active : hexagone noir, fond #f5f4f0 ── */
.rv-pcat-wrap.active-cat {
  background: #f5f4f0 !important;
  border-color: #1a1a1a !important;
}
.rv-pcat-wrap.active-cat .rv-pcat {
  color: #1a1a1a !important;
}
.rv-pcat-wrap.active-cat .rv-pcat-icon svg polygon:first-of-type {
  fill: #1a1a1a !important;
}

/* ── Sous-catégorie active : hexagone noir ── */
#library .rv-psubs .rv-psub-hex.active svg polygon:first-of-type {
  fill: #1a1a1a !important;
}
#library .rv-psubs .rv-psub-hex.active .rv-psub-label {
  color: #1a1a1a !important;
}

/* ── Crons toolbox ── */
.rv-cron-row{display:block;padding:5px 8px;cursor:pointer;border-radius:4px;margin:2px 0;transition:background .15s;}
.rv-cron-row:hover{background:#f5f4f0;}
.rv-cron-row span{display:block;font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#555;margin-bottom:2px;}
.rv-cron-row code{display:block;font-size:10px;color:#1a1a1a;background:#f0eeea;padding:3px 6px;border-radius:3px;word-break:break-all;font-family:monospace;}

/* ── Barre progression conversion ── */
.rv-conv-bar-wrap{position:absolute;top:0;left:0;right:0;padding:3px 4px;background:linear-gradient(rgba(0,0,0,.5),transparent);}
.rv-conv-bar{height:4px;background:rgba(255,255,255,.3);border-radius:2px;overflow:hidden;margin-bottom:2px;}
.rv-conv-bar-fill{height:100%;background:#e03030;border-radius:2px;transition:width .5s ease;}
.rv-conv-pct{font-family:'Yanone Kaffeesatz',sans-serif;font-size:10px;color:#fff;font-weight:700;letter-spacing:.5px;text-align:right;}

/* ── Animation chargement ── */
.rv-loading-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;gap:16px;grid-column:1/-1;width:100%;}
.rv-loading-spinner{animation:none;}
.rv-loading-text{font-family:'Yanone Kaffeesatz',sans-serif;font-size:14px;font-weight:300;letter-spacing:3px;text-transform:uppercase;color:#bbb;}

/* ── Backup progression ── */
.rv-bk-label{font-size:14px;color:#333;font-weight:700;}
.rv-bk-chrono{font-size:13px;color:#888;font-family:monospace;}

/* ── Backup progression ── */
.rv-bk-label{font-size:18px;color:#1a1a1a;font-weight:700;letter-spacing:.3px;}
.rv-bk-chrono{font-size:14px;color:#888;font-family:monospace;}
.rv-bk-file{flex:1 1 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#555;}
.rv-bk-detail{font-size:13px;color:#777;}
.rv-bk-bar{height:8px;width:0%;background:#1a1a1a;border-radius:6px;transition:width .4s ease;}

/* ── Backup étapes ── */
.rv-bk-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.rv-bk-steps{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;margin-bottom:8px;border:1px solid #e8e5e0;border-radius:6px;overflow:hidden;}
.rv-bk-step{font-size:12px;padding:6px 8px;flex:1;text-align:center;border-right:1px solid #e8e5e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rv-bk-step:last-child{border-right:none;}
.rv-bk-step.done{color:#27ae60;background:#f5fff5;}
.rv-bk-step.active{color:#1a1a1a;font-weight:700;background:#f5f4f0;}
.rv-bk-step.pending{color:#ccc;background:#fff;}

@keyframes rvBkSpin{to{transform:rotate(360deg)}}

/* ── Fix mobile UI (ex mu-plugin) ── */


/* Modale casting — typo Yanone Kaffeesatz */
#rvPersonModal * {
    font-family: 'Yanone Kaffeesatz', sans-serif !important;
}
