:root { --bg:#0f1115; --panel:#171a21; --line:#2a2f3a; --text:#e6e8ee; --dim:#9aa3b2;
        --acc:#5fb3ff; --pos:#4cc38a; --neg:#ff7a7a; --null:#c8b26a; --mixed:#b78cff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.5 system-ui, sans-serif; }
a { color:var(--acc); text-decoration:none; }
a:hover { text-decoration:underline; }
header { display:flex; gap:20px; align-items:center; padding:10px 20px; border-bottom:1px solid var(--line); background:var(--panel); flex-wrap:wrap; }
.brand { font-weight:700; font-size:19px; color:var(--text); }
nav { display:flex; gap:16px; flex-wrap:wrap; }
#search { margin-left:auto; }
input, textarea, select { background:var(--bg); color:var(--text); border:1px solid var(--line); border-radius:6px; padding:7px 9px; font:inherit; width:100%; }
textarea { min-height:90px; font-family:ui-monospace, monospace; font-size:13px; }
button { background:var(--acc); color:#06121f; border:0; border-radius:6px; padding:8px 16px; font-weight:600; cursor:pointer; }
button.ghost { background:transparent; color:var(--acc); border:1px solid var(--line); }
#layout { display:grid; grid-template-columns:260px 1fr; min-height:calc(100vh - 54px); }
#tree { border-right:1px solid var(--line); padding:14px; overflow:auto; }
#tree ul { list-style:none; margin:0; padding-left:14px; }
#tree > ul { padding-left:0; }
#tree li { margin:2px 0; }
#tree .count { color:var(--dim); font-size:12px; margin-left:4px; }
#main { padding:20px 28px; max-width:1100px; }
h1 { font-size:24px; margin:0 0 6px; } h2 { font-size:18px; margin:24px 0 8px; }
.dim { color:var(--dim); } .small { font-size:13px; }
.crumbs { color:var(--dim); font-size:13px; margin-bottom:8px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin:10px 0; }
.card h3 { margin:0 0 4px; font-size:16px; }
.tag { display:inline-block; font-size:12px; border-radius:10px; padding:1px 9px; border:1px solid var(--line); margin-right:6px; }
.o-positive { color:var(--pos); border-color:var(--pos); } .o-negative { color:var(--neg); border-color:var(--neg); }
.o-null { color:var(--null); border-color:var(--null); } .o-mixed { color:var(--mixed); border-color:var(--mixed); }
table { border-collapse:collapse; width:100%; font-size:13px; margin:8px 0; }
th, td { border:1px solid var(--line); padding:4px 8px; text-align:left; }
th { background:var(--panel); }
.tablewrap { max-height:420px; overflow:auto; }
pre { background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:10px; overflow:auto; font-size:12px; white-space:pre-wrap; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
label { display:block; margin:10px 0 3px; font-size:13px; color:var(--dim); }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.err { color:var(--neg); margin:10px 0; } .ok { color:var(--pos); margin:10px 0; }
.comment { border-left:2px solid var(--line); padding:4px 10px; margin:8px 0; }
.comment.reply { margin-left:24px; }
.mono { font-family:ui-monospace, monospace; font-size:12px; word-break:break-all; }
@media (max-width:800px) { #layout { grid-template-columns:1fr; } #tree { border-right:0; border-bottom:1px solid var(--line); } .grid2 { grid-template-columns:1fr; } }
.brand { display:flex; align-items:center; gap:8px; }
footer { border-top:1px solid var(--line); padding:14px 20px; color:var(--dim); font-size:13px; text-align:center; }
.doc { max-width:760px; } .doc h1 { margin-bottom:14px; } .doc ul { padding-left:22px; }
#modal { position:fixed; inset:0; background:rgba(0,0,0,.65); display:flex; align-items:center; justify-content:center; z-index:10; padding:20px; }
#modal[hidden] { display:none; }
.modal-box { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:20px 24px; max-width:760px; max-height:85vh; overflow:auto; }
.t-replicable { color:var(--acc); border-color:var(--acc); }
.t-report-only { color:var(--dim); border-style:dashed; }
.t-reproduced { color:#06121f; background:var(--pos); border-color:var(--pos); }
