.modal-body.fill{display:block;place-items:initial;background:var(--surface);color:var(--ink);position:relative}
.modal-body.fill>.pp-load{height:100%}

.cv{display:flex;flex-direction:column;height:100%;min-height:0;--code-bg:#FBFCFE;--code-gut:#F1F3F8;--code-no:#9AA1B7;--code-line:#E6E9F1;
  --k:#C0266B;--s:#1F7A34;--n:#B35900;--c:#7C8398;--t:#2F55D4;--f:#7A3FC6;--a:#0E7F71;--b:#C0266B;--m:#5E6782}
:root[data-theme="dark"] .cv{--code-bg:#141A30;--code-gut:#1A2140;--code-no:#5E6891;--code-line:#232B4A;
  --k:#FF7AB0;--s:#8BDD9A;--n:#FFB86B;--c:#8691B4;--t:#8FB3FF;--f:#C9A2FF;--a:#6FD6C6;--b:#FF7AB0;--m:#A6B0CF}
.cv-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.cv-lang{font-size:.74rem;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:var(--navy);color:#fff}
.cv-info{font-size:.8rem;color:var(--muted)}
.cv-bar .grow{flex:1}
.cv-btn{height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);font-size:.8rem;font-weight:700;color:var(--ink)}
.cv-btn:hover{border-color:var(--ink)}
.cv-btn[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.cv-cut{padding:8px 14px;background:color-mix(in srgb,#D98A1F 14%,var(--surface));color:#8A4A0F;font-size:.84rem;font-weight:600}
.cv-body{flex:1;min-height:0;overflow:auto;background:var(--code-bg);outline:none}
.cv-lines{font-family:ui-monospace,"Cascadia Code","JetBrains Mono",Consolas,"Courier New",monospace;font-size:13.5px;line-height:1.6;color:var(--ink);padding:8px 0;min-width:max-content;tab-size:4}
.cv.cv-wrapped .cv-lines{min-width:0}
.cv-ln{display:flex}
.cv-ln:hover{background:var(--code-line)}
.cv-no{flex:none;position:sticky;left:0;width:4.2em;padding-right:1em;text-align:right;color:var(--code-no);background:var(--code-gut);user-select:none;border-right:1px solid var(--line)}
.cv-tx{padding:0 16px;white-space:pre}
.cv.cv-wrapped .cv-tx{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;flex:1}
.cv .hljs-keyword,.cv .hljs-selector-tag,.cv .hljs-literal,.cv .hljs-doctag,.cv .hljs-meta .hljs-keyword{color:var(--k)}
.cv .hljs-string,.cv .hljs-regexp,.cv .hljs-addition,.cv .hljs-template-tag,.cv .hljs-meta .hljs-string{color:var(--s)}
.cv .hljs-number,.cv .hljs-symbol,.cv .hljs-bullet,.cv .hljs-variable.constant_{color:var(--n)}
.cv .hljs-comment,.cv .hljs-quote{color:var(--c);font-style:italic}
.cv .hljs-title,.cv .hljs-section,.cv .hljs-name,.cv .hljs-selector-id,.cv .hljs-selector-class{color:var(--t)}
.cv .hljs-title.function_,.cv .hljs-built_in,.cv .hljs-type,.cv .hljs-title.class_{color:var(--f)}
.cv .hljs-attr,.cv .hljs-attribute,.cv .hljs-property,.cv .hljs-variable,.cv .hljs-template-variable,.cv .hljs-params{color:var(--a)}
.cv .hljs-tag,.cv .hljs-punctuation,.cv .hljs-meta{color:var(--m)}
.cv .hljs-deletion{color:var(--b)}
.cv .hljs-emphasis{font-style:italic}
.cv .hljs-strong{font-weight:700}

.zv{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);height:100%;min-height:0}
.zv-side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--bg)}
.zv-head{padding:12px;border-bottom:1px solid var(--line);display:grid;gap:4px}
.zv-head b{font-family:var(--display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zv-head small{color:var(--muted);font-size:.78rem}
.zv-q{margin-top:6px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);padding:0 10px;color:var(--ink);font:inherit;font-size:.88rem;outline:none}
.zv-q:focus{border-color:var(--accent)}
.zv-tree,.zv-hits{flex:1;min-height:0;overflow:auto;padding:6px}
.zv-dir summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:5px 8px 5px calc(8px + var(--d) * 14px);border-radius:7px;font-size:.86rem;font-weight:700;user-select:none}
.zv-dir summary::-webkit-details-marker{display:none}
.zv-dir summary:hover{background:var(--surface)}
.zv-dir summary em{margin-left:auto;font-style:normal;font-size:.72rem;color:var(--muted);font-weight:600}
.zv-fold{width:0;height:0;border-left:5px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
.zv-dir[open]>summary .zv-fold{transform:rotate(90deg)}
.zv-file{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:none;padding:5px 8px 5px calc(22px + var(--d) * 14px);border-radius:7px;font-size:.85rem;color:var(--ink)}
.zv-hits .zv-file{padding-left:8px}
.zv-file:hover{background:var(--surface)}
.zv-file.on{background:var(--navy);color:#fff}
.zv-file.on small{color:rgba(255,255,255,.75)}
.zv-ext{flex:none;min-width:30px;padding:1px 4px;border-radius:4px;background:var(--x);color:#fff;font-size:.58rem;font-weight:800;text-align:center}
.zv-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zv-file small{flex:none;font-size:.7rem;color:var(--muted)}
.zv-empty{padding:12px;margin:0}
.zv-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.zv-path{padding:8px 14px;font-family:ui-monospace,Consolas,monospace;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap}
.zv-path i{font-style:normal;margin:0 4px;opacity:.6}
.zv-path:empty{display:none}
.zv-view{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}
.zv-view>.cv{flex:1}
.zv-media{flex:1;min-height:0;display:grid;place-items:center;padding:16px;background:repeating-conic-gradient(var(--bg) 0 25%,var(--surface) 0 50%) 0 0/20px 20px}
.zv-media img,.zv-media video{max-width:100%;max-height:100%;object-fit:contain}
.zv-act{padding:10px 14px;border-top:1px solid var(--line);display:flex;justify-content:flex-end}
.zv-frame{flex:1;width:100%;border:0}
.zv-msg{padding:24px;text-align:center;line-height:1.7}
.zv-msg .btn{margin-top:10px}
@media (max-width:760px){.zv{grid-template-columns:1fr;grid-template-rows:minmax(0,38%) minmax(0,1fr)}.zv-side{border-right:0;border-bottom:1px solid var(--line)}.cv-lines{font-size:12.5px}.cv-no{width:3.2em;padding-right:.6em}}
@media (max-width:600px){.modal{padding:10px}.modal-bar{gap:6px;padding-bottom:8px}.modal-bar b{font-size:.9rem}.modal-bar button{height:34px;padding:0 10px;font-size:.84rem}.modal-bar button[data-a="tab"]{display:none}.cv-bar{gap:6px;padding:6px 8px}.cv-info{flex-basis:100%;order:3}}
