/* ── VERSION HISTORY ── slide-over panel + read-only preview modal */
.vh-ovl{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,.4);display:none}
.vh-ovl.open{display:block}
.vh-panel{position:fixed;top:0;right:0;bottom:0;width:340px;background:var(--sur);border-left:1px solid var(--bd2);z-index:800;display:none;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.55)}
.vh-panel.open{display:flex}
.vh-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--bd);flex-shrink:0}
.vh-title{font-family:var(--fs);font-size:18px;font-weight:var(--dw);letter-spacing:.04em}
.vh-x{background:none;border:none;color:var(--mu);font-size:16px;cursor:pointer;padding:3px 7px;border-radius:var(--r-xs)}
.vh-x:hover{color:var(--tx);background:var(--bd)}
.vh-list{flex:1;overflow-y:auto;padding:10px}
.vh-foot{flex-shrink:0;padding:11px 18px;border-top:1px solid var(--bd);font-size:10px;color:var(--mu);line-height:1.5}
.vh-empty{color:var(--mu);font-size:12px;text-align:center;padding:40px 16px;line-height:1.7}
.vh-item{padding:11px 12px;border:1px solid var(--bd);border-radius:var(--r-lg);margin-bottom:8px;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast)}
.vh-item:hover{border-color:var(--bd2);background:var(--sur2)}
.vh-it-top{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.vh-it-time{font-size:12px;color:var(--tx);font-weight:500}
.vh-it-cur{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--ac);border:1px solid var(--ac);border-radius:var(--r-lg);padding:1px 7px}
.vh-it-lbl{font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--mu);border:1px solid var(--bd2);border-radius:var(--r-lg);padding:1px 7px}
.vh-it-snip{font-size:11px;color:var(--mu);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.vh-it-meta{font-size:10px;color:var(--mu);opacity:.7;margin-top:5px}
.vh-mu{color:var(--mu);opacity:.6;font-style:italic}

/* read-only preview modal */
.vh-preview{position:fixed;inset:0;z-index:4100;display:flex;align-items:center;justify-content:center;background:rgba(8,7,5,.82);backdrop-filter:blur(3px);opacity:0;transition:opacity var(--t-med) ease;pointer-events:none;padding:28px}
.vh-preview.open{opacity:1;pointer-events:auto}
.vh-pv-card{width:760px;max-width:100%;max-height:90vh;background:var(--sur);border:1px solid var(--bd2);border-radius:var(--r-xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--elev-3);transform:scale(.98);transition:transform var(--t-med) ease}
.vh-preview.open .vh-pv-card{transform:scale(1)}
.vh-pv-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--bd);flex-shrink:0}
.vh-pv-when{font-size:13px;color:var(--tx);font-weight:500}
.vh-pv-sub{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mu);margin-top:2px}
.vh-pv-acts{display:flex;gap:8px}
.vh-btn{background:none;border:1px solid var(--bd2);color:var(--tx);font-family:var(--fm);font-size:11px;padding:7px 14px;border-radius:var(--r-md);cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}
.vh-btn:hover{border-color:var(--mu)}
.vh-btn.primary{background:var(--ac);border-color:var(--ac);color:#1a120a;font-weight:500}
.vh-btn.primary:hover{filter:brightness(1.08)}
.vh-pv-body{overflow-y:auto;padding:0 0 40px}
.vh-pv-cover{height:150px;overflow:hidden;background:var(--sur2)}
.vh-pv-cover img{width:100%;height:100%;object-fit:cover;display:block}
.vh-pv-inner{padding:26px 54px;font-family:var(--fs);color:var(--tx)}
.vh-pv-icon{font-size:40px;line-height:1;margin-bottom:10px}
.vh-pv-title{font-size:34px;font-weight:600;margin-bottom:16px;line-height:1.15}
.vh-pv-body h1{font-size:26px;font-weight:600;margin:18px 0 6px}
.vh-pv-body h2{font-size:21px;font-weight:600;margin:16px 0 6px}
.vh-pv-body h3{font-size:17px;font-weight:600;margin:14px 0 5px}
.vh-pv-body p{font-size:16px;line-height:1.7;margin:5px 0;font-weight:var(--dw)}
.vh-pv-body .vh-li{font-size:16px;line-height:1.7;font-weight:var(--dw);padding-left:6px}
.vh-pv-body blockquote{border-left:3px solid var(--bd2);padding-left:14px;margin:8px 0;color:var(--mu);font-style:italic}
.vh-pv-body pre{background:var(--sur2);border:1px solid var(--bd);border-radius:var(--r-md);padding:11px 14px;font-family:var(--fm);font-size:13px;white-space:pre-wrap;margin:8px 0}
.vh-pv-body hr{border:none;border-top:1px solid var(--bd2);margin:16px 0}
.vh-callout{background:var(--sur2);border:1px solid var(--bd);border-radius:var(--r-md);padding:10px 13px;margin:8px 0;font-size:15px;font-weight:var(--dw)}
.vh-page{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bd);border-radius:var(--r-md);padding:7px 12px;margin:6px 0;font-size:15px;background:var(--sur2)}
.vh-placeholder{border:1px dashed var(--bd2);border-radius:var(--r-md);padding:14px;margin:8px 0;color:var(--mu);font-size:13px;text-align:center;font-family:var(--fm)}
.vh-toggle{font-size:16px;font-weight:var(--dw);margin:5px 0}
.vh-indent,.vh-col{padding-left:18px}
.vh-cols{display:flex;gap:18px}
.vh-cols .vh-col{flex:1;padding-left:0}
