:root { --fg:#1a1a1a; --muted:#6b7280; --line:#e5e7eb; --accent:#1d4ed8; --warn:#b45309; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color:var(--fg); }
header { padding:14px 20px; border-bottom:1px solid var(--line); position:relative; }
.version { position:absolute; top:12px; right:16px; font:12px/1 ui-monospace,SFMono-Regular,Menlo,monospace; color:var(--muted); text-decoration:none; }
.version:hover { color:var(--accent); }
header h1 { font-size:18px; margin:0 0 4px; }
.muted { color:var(--muted); }
.disclaimer { margin:0; font-size:12px; color:var(--warn); }
form { padding:14px 20px; border-bottom:1px solid var(--line); }
#q { width:100%; padding:10px 12px; font-size:16px; border:1px solid var(--line); border-radius:8px; }
.filters { display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-top:10px; font-size:13px; }
.filters select { padding:5px; border:1px solid var(--line); border-radius:6px; }
.filters .cb { display:flex; gap:5px; align-items:center; }
button, a.btn { padding:8px 16px; background:var(--accent); color:#fff; border:0; border-radius:8px; cursor:pointer; font-size:14px; display:inline-block; text-decoration:none; line-height:1.2; }
button.secondary, a.btn.secondary { background:#fff; color:var(--accent); border:1px solid var(--accent); }
main { display:grid; grid-template-columns: minmax(380px, 1fr) 1.2fr; height: calc(100vh - 150px); }
#results { overflow:auto; padding:14px 20px; border-right:1px solid var(--line); }
#viewer { display:flex; flex-direction:column; }
#viewerMeta { padding:8px 14px; font-size:12px; border-bottom:1px solid var(--line); }
#pdf { flex:1; width:100%; border:0; }
.card { border:1px solid var(--line); border-radius:10px; padding:12px; margin-bottom:12px; }
.card .cite { font-weight:600; }
.snippet { margin:8px 0; }
.occur { font-size:12px; }
.badges { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.badge { font-size:11px; padding:2px 8px; border-radius:999px; background:#eef2ff; color:#3730a3; text-transform:uppercase; letter-spacing:.02em; }
.badge.warn { background:#fef3c7; color:var(--warn); }
.badge.sk-ocr { background:#fae8ff; color:#86198f; }
.badge.sk-map, .badge.sk-figure { background:#dcfce7; color:#166534; }
.badge.sk-pointer { background:#f3f4f6; color:#6b7280; }
.actions { display:flex; gap:8px; margin-top:10px; }
.warn { color:var(--warn); }
