:root{
  --bg:#0b0c0f; --fg:#e6e7ea; --muted:#a7abb3; --accent:#6ba4ff; --card:#16181d; --border:#242833;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:13px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:100vh;overflow:hidden}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--card)}
h1{font-size:18px;margin:0}
main{display:flex;height:calc(100vh - 56px)}
aside#sidebar{width:320px;border-right:1px solid var(--border);padding:8px 0;overflow:auto}
.search{padding:8px 12px}
.search input{width:100%;padding:8px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg)}
.search.intro-search{display:flex;gap:8px}
.search.intro-search input{flex:1}
.search.intro-search button{padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--accent);font-weight:600;cursor:pointer}
.search.intro-search button:hover{border-color:var(--accent)}
.intro-search-results{padding:0 12px 8px;display:flex;flex-direction:column;gap:6px}
.intro-search-meta{color:var(--muted);font-size:11px}
.intro-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.intro-results li{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--card);cursor:pointer;transition:border-color .15s ease}
.intro-results li:hover{border-color:var(--accent)}
.intro-title{font-weight:600;font-size:13px}
.intro-meta{color:var(--muted);font-size:11px;margin-top:2px}
.intro-snippet{margin-top:6px;font-size:12px;color:var(--fg)}
.intro-snippet strong{color:var(--muted);font-size:11px;margin-right:4px;text-transform:uppercase}
.intro-links{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.intro-links a,.intro-links .inline-btn{background:none;border:1px solid var(--border);color:var(--accent);padding:4px 8px;border-radius:4px;font-size:12px;text-decoration:none;cursor:pointer}
.intro-links a:hover,.intro-links .inline-btn:hover{border-color:var(--accent)}
.inline-btn{background:none}
.muted{color:var(--muted);font-size:12px}
.error{color:#ff9a9a;font-size:12px}
#paper-list{list-style:none;margin:0;padding:0}
#paper-list li{padding:8px 10px;border-bottom:1px solid var(--border);cursor:pointer}
#paper-list li .title{font-size:13px}
#paper-list li.active{background:#111827}
#paper-list .small{color:var(--muted);font-size:11px}
/* Subtle indicator for items without summaries */
#paper-list li.not-summarized{background: rgba(255,255,255,0.12)}
#paper-list li.missing{background: rgba(255, 80, 80, 0.14)}
#paper-list li.missing.active, #paper-list li.not-summarized.active{background:#111827}
/* Suspect verification (title/authors/doi unclear) */
#paper-list li.suspect{background: rgba(255, 165, 0, 0.14)}
#paper-list li.suspect.active{background:#111827}
section#content{flex:1;display:flex;flex-direction:column;overflow:auto}
#paper-header{padding:12px 16px;border-bottom:1px solid var(--border)}
#paper-title{margin:0 0 4px 0}
#meta{color:var(--muted)}
#actions a{color:var(--accent);text-decoration:none;margin-right:12px}
.panel{flex:1;padding:10px 12px;overflow:auto}
.hidden{display:none}
details{background:var(--card);border:1px solid var(--border);border-radius:6px;margin:6px 0;padding:6px}
summary{cursor:pointer;font-weight:600}
header #build{color:var(--muted); font-size:11px; margin-left:12px}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.kv{display:grid;grid-template-columns:220px 1fr;gap:8px;margin:8px 0;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--card)}
.kv h4{margin:0;color:var(--muted);font-weight:600}
.kv .val{white-space:pre-wrap}
.val{white-space:pre-wrap}

/* Sections pretty lists */
.bullets{margin:4px 0 0 14px; padding:0}
.bullets li{margin:2px 0}
.grid{display:grid;grid-template-columns:200px 1fr;gap:6px;margin:6px 0}
.grid .k{color:var(--muted)}
.grid .v{white-space:pre-wrap}
/* Compact subline for details under description */
#sections-view .details{color:var(--muted); font-size:12px; margin-top:2px; margin-left:14px}
/* Numbered list with [1] [2] */
ol.num{list-style:none; counter-reset:item; margin:4px 0 0 14px; padding:0}
ol.num>li{counter-increment:item; margin:2px 0 2px 0; padding-left:0}
ol.num>li::before{content: "[" counter(item) "] "; margin-right:6px; color:var(--muted); display:inline-block; vertical-align: top}

/* Tree view styles */
.tree{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}
.tree ul{list-style:none;margin:0 0 0 14px;padding:0 0 0 10px;position:relative}
.tree ul:before{content:"";position:absolute;left:4px;top:0;bottom:0;border-left:1px solid var(--border)}
.tree li{position:relative;margin:0;padding:2px 0 2px 12px}
.tree li:before{content:"";position:absolute;left:4px;top:12px;width:8px;border-top:1px solid var(--border)}
.tree li:last-child > ul:before{bottom:12px}
.tree .label{color:var(--fg)}
.tree .value{color:var(--muted)}
.tree .pair .value{margin-left:8px}
/* Make list items in tree compact and muted */
.tree .bullets li, .tree ol.num li{color:var(--muted)}
.tree ol.num li{position:relative;padding-left:26px}
.tree ol.num li::before{position:absolute;left:0;top:0.1em}
