/* review.css —— 棋谱库 / 复盘界面。配色沿用 style.css 里的变量，不另起一套 */
.sw.best{background:var(--ok)}

.rv-head{display:flex; align-items:center; gap:14px; max-width:1120px; margin:0 auto 14px; padding:0 4px; flex-wrap:wrap}
.rv-head h2{font-size:21px; letter-spacing:2px; font-weight:600}
.rv-keep{color:var(--dim); font-size:12px; flex:1; min-width:180px}

.rv-body{display:flex; gap:18px; align-items:flex-start; justify-content:center; max-width:1120px; margin:0 auto; flex-wrap:wrap}

/* ---- 左：棋谱列表 ---- */
.rv-side{width:288px; background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:12px; display:flex; flex-direction:column; gap:10px}
.rv-filter{display:flex; gap:7px}
.rv-filter input,.rv-filter select{
  font-family:inherit; font-size:13px; background:#221f1a; color:var(--txt);
  border:1px solid var(--line); border-radius:8px; padding:7px 9px; min-width:0
}
.rv-filter input{flex:1}
.rv-list{display:flex; flex-direction:column; gap:7px; max-height:min(62vh,560px); overflow-y:auto}
.rv-item{text-align:left; background:#221f1a; border:1px solid var(--line); border-radius:10px; padding:9px 10px; color:var(--txt); display:flex; flex-direction:column; gap:3px}
.rv-item:hover{background:#2b2721; border-color:#584f43}
.rv-item.on{border-color:var(--sel); background:#3a3121}
.rv-item-top{display:flex; align-items:center; gap:7px}
.rv-when{color:var(--dim); font-size:11.5px; flex:1}
.rv-tag{font-size:10.5px; padding:1px 6px; border-radius:20px; border:1px solid var(--line); color:var(--dim); white-space:nowrap}
.rv-tag.h{color:#8fb8e8; border-color:#3c4c60}
.rv-tag.e{color:#e0b070; border-color:#5c4a30}
.rv-ttl{font-size:10.5px; color:#6f675d; white-space:nowrap}
.rv-item-who{font-size:13.5px; font-weight:600; word-break:break-all; line-height:1.35}
.rv-item-sub{font-size:11.5px; color:var(--dim)}
.rv-tip{font-size:11.5px; color:#6f675d; line-height:1.6}

/* ---- 右：复盘 ---- */
.rv-main{flex:1; min-width:320px; display:flex; justify-content:center}
.rv-empty{color:var(--dim); font-size:14px; padding:60px 20px; text-align:center}
.rv-player{display:flex; gap:18px; align-items:flex-start; flex-wrap:wrap; justify-content:center}
.rv-panel{width:280px}
.rv-title{font-size:14px; font-weight:600; word-break:break-all; line-height:1.4}

.rv-slider{width:100%; margin-top:4px; accent-color:#d8a54a}
.rv-ctrl{display:flex; gap:6px; margin-top:4px}
.rv-ctrl button{flex:1; padding:9px 4px; font-size:14px}
.rv-ctrl .primary{flex:2; font-size:14px; padding:9px 6px}

.rv-engine{background:#221f1a; border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:8px}
.rv-engine-head{display:flex; align-items:center; justify-content:space-between; font-size:12.5px; color:var(--dim)}
.rv-switch{display:flex; align-items:center; gap:5px; cursor:pointer; font-size:12px; color:var(--txt)}
.rv-switch input{accent-color:#5cc98a; cursor:pointer}
.rv-eval{font-size:12.5px; color:var(--dim); line-height:1.7; min-height:20px}
.rv-eval.bad{color:var(--bad)}
.rv-eval.same .rv-cmp{color:var(--ok)}
.rv-best{color:var(--ok); font-size:14px; font-weight:700}
.rv-score{color:var(--txt); font-size:12px}
.rv-cmp{font-size:12px}
.rv-pv{font:11px/1.6 ui-monospace,"DejaVu Sans Mono",monospace; color:#7d746a; word-break:break-word}

.rv-legend{flex-wrap:wrap}
.rv-pgn summary{font-size:11.5px; color:var(--dim); cursor:pointer}
.rv-pgn pre{font:10.5px/1.5 ui-monospace,monospace; color:#7d746a; white-space:pre-wrap; word-break:break-all;
  background:#1c1915; padding:8px; border-radius:7px; margin-top:6px; max-height:190px; overflow-y:auto}

@media(max-width:900px){
  .rv-side{width:min(94vw,420px)}
  .rv-panel{width:min(94vw,420px)}
}

/* ---- 控制条：只有手动步进，没有自动播放 ---- */
.rv-progress{display:flex; align-items:center; gap:10px; margin-top:6px}
.rv-count{font-size:12px; color:var(--sel); font-weight:600; white-space:nowrap; min-width:96px}
.rv-ctrl button{font-size:12.5px; padding:9px 6px; white-space:nowrap}
.rv-ctrl button:disabled{opacity:.35; cursor:default}
.rv-ctrl button:disabled:hover{background:#332e28}
.rv-ctrl .primary:disabled:hover{filter:none}
.rv-keys{font-size:11px; color:#6f675d; text-align:center; margin-top:2px}

/* ---- 列表：胜负做成徽章 ---- */
.rv-res{display:inline-block; padding:0 6px; border-radius:20px; font-size:10.5px; font-weight:700; margin-right:4px}
.rv-res.w{background:#e9d7b8; color:#2a2317}
.rv-res.b{background:#3a352e; color:#ece7de; border:1px solid #57503f}
.rv-res.d{background:#3c4a3f; color:#bfe3cc}
.rv-res.u{background:#4a3a32; color:#e0b070}

/* ---- 着法表：整格可点，当前手更醒目 ---- */
.rv-panel .moves-box{height:288px}
.moves td.mv.clickable{cursor:pointer; border-radius:5px}
.moves td.mv.clickable:hover{background:rgba(242,193,78,.16)}
.moves td.mv.cur{background:rgba(242,193,78,.22); color:var(--sel)}

/* ---- 分析面板 ---- */
.rv-best{letter-spacing:.5px}
.rv-eval.same .rv-best::after{content:" ✓"; color:var(--ok)}

/* body 在 style.css 里是 flex 垂直居中。复盘界面比对局界面高，一居中就会：
 * 内容顶出视口上方够不着，切步时高度一变整页还跟着跳。复盘期间改成顶部对齐。 */
body.reviewing{align-items:flex-start}

/* ---- 引擎推荐挪到棋盘左边这一列（原来挤在右侧面板底下，要往下翻） ---- */
.rv-side{max-height:calc(100vh - 96px)}
.rv-side .rv-list{flex:1; min-height:80px}
.rv-side .rv-engine{border:1px solid var(--line); margin-top:2px}
.rv-side .rv-legend{justify-content:flex-start; gap:12px; margin-top:2px}
.rv-eval .rv-best{font-size:15px}

/* ---- 跳到第 N 手 ---- */
.rv-jump{display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12.5px; color:var(--dim); margin-top:6px}
.rv-jump input{width:66px; font-family:inherit; font-size:13px; background:#221f1a; color:var(--txt);
  border:1px solid var(--line); border-radius:8px; padding:6px 8px; text-align:center}
.rv-jump button{padding:6px 12px; font-size:12.5px}
.rv-jump-tip{font-size:11px; color:#6f675d}

/* ---- 复盘：常驻退出按钮（原来那个在页面顶部，看棋盘时翻不到） ---- */
.rv-exit{position:fixed; left:14px; top:14px; z-index:40; background:#332e28; color:var(--txt);
  border:1px solid var(--line); border-radius:10px; padding:9px 15px; font-size:13.5px; font-family:inherit;
  box-shadow:0 6px 18px rgba(0,0,0,.45)}
.rv-exit:hover{background:#3d372f; border-color:#584f43}
#review:not(.active) .rv-exit{display:none}

/* ---- 下载 ---- */
.rv-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:8px}
.rv-actions .dl{display:inline-block; text-decoration:none; border-radius:10px; padding:8px 14px; font-size:13px;
  background:#332e28; color:var(--txt); border:1px solid var(--line)}
.rv-actions .dl:hover{background:#3d372f}
.rv-dl{cursor:pointer; color:#9b9186; font-size:14px; padding:0 3px; border-radius:6px; line-height:1}
.rv-dl:hover{color:var(--sel); background:rgba(242,193,78,.14)}
.rv-short{font-size:10.5px; padding:1px 6px; border-radius:20px; background:#4a3a32; color:#e0b070; white-space:nowrap}
