/* 復習(間隔反復)とバックアップの専用スタイル */
.rv-card{ margin-bottom:14px; }
.rv-intro{ max-width:760px; }
.rv-h{ margin:18px 0 8px; font-size:13px; font-weight:600; color:var(--sub); }
.rv-stats{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; margin:16px 0 18px; }
.rv-stats > div{ border:1px solid var(--line); border-radius:10px; padding:10px 12px; background:var(--surface-2); }
.rv-stats b{ display:block; font-size:22px; font-weight:700; font-variant-numeric:tabular-nums; }
.rv-stats span{ font-size:12px; color:var(--sub); }
.rv-boxes{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; margin-bottom:6px; }
.rv-box{ display:flex; flex-direction:column; align-items:center; gap:2px; font-size:12px; color:var(--sub); }
.rv-box b{ font-size:15px; color:var(--text); font-variant-numeric:tabular-nums; }
.rv-box small{ font-size:11px; color:var(--faint); }
.rv-bar{ width:100%; height:56px; border-bottom:1px solid var(--line2); display:flex; align-items:flex-end; }
.rv-bar i{ display:block; width:100%; min-height:2px; background:var(--accent); border-radius:3px 3px 0 0; opacity:.8; }
.rv-up{ list-style:none; margin:0 0 14px; padding:0; max-width:340px; }
.rv-up li{ display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.rv-up b{ font-variant-numeric:tabular-nums; }

/* バックアップ */
.bk-overlay{ position:fixed; inset:0; z-index:70; display:none; align-items:center; justify-content:center; padding:16px; background:rgba(0,0,0,.28); }
.bk-overlay.show{ display:flex; }
.bk-paper{ width:min(520px, 100%); max-height:90vh; overflow-y:auto; background:var(--bg); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); padding:22px 24px 20px; }
.bk-paper h3{ margin:0 0 6px; font-size:17px; }
.bk-paper h4{ margin:18px 0 6px; font-size:13px; font-weight:600; color:var(--sub); }
.bk-paper p{ margin:0 0 8px; font-size:13.5px; line-height:1.7; }
.bk-paper .bk-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.bk-paper .bk-sub{ color:var(--sub); font-size:12.5px; }
.bk-paper .bk-msg{ margin-top:10px; padding:9px 12px; border-radius:8px; font-size:13px; line-height:1.6; border:1px solid var(--line); }
.bk-paper .bk-msg.ok{ border-color:var(--ok); color:var(--ok); background:var(--ok-bg); }
.bk-paper .bk-msg.ng{ border-color:var(--ng); color:var(--ng); background:var(--ng-bg); }
.bk-paper .bk-choice{ display:flex; flex-direction:column; gap:8px; margin:10px 0; }
.bk-paper .bk-choice label{ display:flex; gap:8px; align-items:flex-start; font-size:13.5px; line-height:1.6; }
.bk-paper .bk-foot{ display:flex; justify-content:flex-end; margin-top:16px; }
.menu .bk-menu-btn{ align-self:flex-start; }
@media (max-width:640px){
  .rv-stats{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
