/* 几何与字号来自 apps/web/src/styles.css 的 LibraryView；标签颜色按 tagTone.ts 计算。 */
#research .library-view{ --library-nav-width:174px; position:absolute; z-index:20; top:var(--studio-header-height); right:0; bottom:0; left:var(--studio-side); display:grid; grid-template-columns:var(--library-nav-width) minmax(0,1fr); background:var(--surface); color:var(--ink); font-size:12px; line-height:1.5; overflow:hidden; }
#research .library-view.is-inspecting{ grid-template-columns:minmax(0,1fr) 252px; }
#research .library-view.is-inspecting>.library-nav{ display:none; }
#research .library-view button, #research .library-view input, #research .library-view select{ font:inherit; }
#research .library-view button{ cursor:pointer; }
#research .library-nav{ font-size:11px; line-height:1.6; display:flex; min-height:0; flex-direction:column; padding:25px 12px 16px; border-right:1px solid var(--line); overflow:hidden; }
#research .library-nav-title{ display:flex; align-items:center; gap:7px; padding:0 10px 18px; font-size:11px; }
#research .library-nav nav{ font:inherit; display:flex; flex-direction:column; gap:3px; }
#research .library-nav .library-tag-nav{ flex:1; min-height:0; gap:1px; overflow-y:auto; padding-right:2px; scrollbar-width:thin; scrollbar-color:var(--scroll-thumb) transparent; }
#research .library-nav .library-tag-nav::-webkit-scrollbar{ width:6px; }
#research .library-nav .library-tag-nav::-webkit-scrollbar-track{ background:transparent; }
#research .library-nav .library-tag-nav::-webkit-scrollbar-thumb{ border-radius:20px; background:var(--scroll-thumb); }
#research .library-nav nav button{ display:flex; min-width:0; align-items:center; gap:9px; padding:9px 10px; color:var(--ink-soft); text-align:left; border:0; border-radius:6px; background:none; }
#research .library-nav .library-tag-nav button{ padding:7px 10px; }
#research .library-nav nav button:hover, #research .library-nav nav button.active{ color:var(--ink); background:var(--surface-hover); }
#research .library-nav nav button.active{ font-weight:600; }
#research .library-nav small{ font-size:10px; margin-left:auto; color:var(--muted); font-weight:400; }
#research .library-nav-caption{ display:flex; justify-content:space-between; padding:22px 10px 9px; color:var(--muted); font-size:10px; }
#research .library-tag-dot{ width:6px; height:6px; flex:none; border-radius:50%; background:var(--tag-ink, var(--muted)); }
#research .library-ellipsis{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#research .library-nav-hint{ padding:0 10px; color:var(--muted); font-size:11px; }
#research .library-nav-foot{ margin-top:auto; padding:24px 10px 0; color:var(--muted); font-size:9px; line-height:1.8; }
#research .library-stage{ display:flex; flex-direction:column; min-width:0; min-height:0; padding:26px 28px 0; }
#research .library-heading{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
#research .library-heading > div{ display:flex; min-width:0; align-items:baseline; gap:12px; }
#research .library-heading h1{ margin:0; font-size:21px; font-weight:600; letter-spacing:-.6px; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
#research .library-heading > div > span{ color:var(--muted); font-size:11px; white-space:nowrap; }
#research .library-heading-paper{ display:flex; min-width:0; align-items:center; gap:8px; }
#research .library-heading-paper > div{ min-width:0; }
#research .library-heading-back{ display:grid; flex:none; place-items:center; width:28px; height:28px; padding:0; color:var(--ink-soft); border:0; border-radius:6px; background:none; align-self:center; }
#research .library-heading-back:hover{ color:var(--ink); background:var(--surface-hover); }
#research .library-tools{ display:flex; align-items:center; gap:18px; margin-top:22px; }
#research .library-search-field{ display:flex; flex:1; align-items:center; gap:8px; height:34px; padding:0 11px; color:var(--faint); border:0; border-radius:6px; background:var(--surface-hover); }
#research .library-search-field:focus-within{ color:var(--ink-soft); }
#research .library-search-field input{ min-width:0; flex:1; padding:0; color:var(--ink); outline:0; border:0; background:transparent; font-size:12.5px; }
#research .library-search-field input::placeholder{ color:var(--faint); }
#research .library-tools select{ max-width:110px; color:var(--ink-soft); border:0; background:transparent; }
#research .library-hintline{ display:flex; min-height:42px; align-items:center; color:var(--muted); font-size:10.5px; }
#research .library-scroll{ flex:1; min-height:0; overflow:auto; padding:3px; }
#research .library-scroll, #research .library-excerpts{ scrollbar-width:none; }
#research .library-scroll::-webkit-scrollbar, #research .library-excerpts::-webkit-scrollbar{ width:0; height:0; }
#research .library-entries-wrap{ display:flex; min-height:100%; flex-direction:column; }
#research .library-table{ width:100%; border-collapse:collapse; }
#research .library-table th{ position:sticky; z-index:1; top:0; padding:4px 12px 8px 0; color:var(--faint); background:var(--surface); box-shadow:inset 0 -1px 0 var(--line-strong); font-size:10.5px; font-weight:500; letter-spacing:.02em; text-align:left; white-space:nowrap; }
#research .library-table td{ padding:9px 12px 9px 0; color:var(--ink-soft); border-top:1px solid var(--line); font-size:11.5px; line-height:1.55; vertical-align:top; }
#research .library-table th:last-child, #research .library-table td:last-child{ padding-right:0; }
#research .library-table tbody tr:hover td{ background:var(--surface-hover); }
#research .library-table-title{ min-width:200px; max-width:420px; }
#research .library-table-title button{ display:block; width:100%; padding:0; color:var(--ink); text-align:left; border:0; background:transparent; font-size:12.5px; font-weight:600; line-height:1.45; }
#research .library-table-title button:hover{ text-decoration:underline; text-underline-offset:3px; }
#research .library-table-plain{ color:var(--muted); font:11px var(--mono); white-space:nowrap; }
#research .library-table-tags{ display:flex; flex-wrap:wrap; gap:4px; }
#research .library-table-tags .library-tag{ white-space:nowrap; }
#research .library-detail{ display:flex; flex:1; min-height:0; flex-direction:column; }
#research .library-footer{ display:flex; justify-content:space-between; margin-top:20px; padding:15px 0; color:var(--muted); border-top:1px solid var(--line); font-size:10px; }
#research .library-inspector{ min-width:0; padding:20px; border-left:1px solid var(--line); overflow:auto; }
#research .library-inspector header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
#research .library-inspector header strong{ font-weight:500; }
#research .library-inspector-title{ margin:0; font-size:14px; font-weight:600; line-height:1.5; }
#research .library-metadata{ margin:20px 0; font-size:11px; }
#research .library-metadata div{ display:flex; justify-content:space-between; gap:8px; margin:12px 0; }
#research .library-metadata dt{ color:var(--muted); }
#research .library-metadata dd{ margin:0; color:var(--ink-soft); text-align:right; overflow-wrap:anywhere; }
#research .library-field{ margin-top:24px; color:var(--muted); font-size:11px; }
#research .library-detail-tags{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:10px; }
#research .library-tag{ display:inline-flex; align-items:center; gap:3px; padding:1px 7px; color:var(--muted); border:1px solid var(--line); border-radius:20px; font-size:10.5px; }
#research .library-tag.is-count{ border-style:dashed; }
#research .library-tag.is-removable{ gap:2px; padding-right:3px; }
#research .tag-remove{ display:inline-grid; place-items:center; width:12px; height:12px; flex:none; padding:0; color:inherit; border:0; border-radius:50%; background:transparent; opacity:0; cursor:pointer; transition:opacity .12s,background .15s; }
#research .library-tag:hover .tag-remove, #research .library-tag:focus-within .tag-remove{ opacity:.7; }
#research .tag-tone-0{ --tag-bg:var(--tag-0-bg); --tag-ink:var(--tag-0-ink); }
#research .tag-tone-1{ --tag-bg:var(--tag-1-bg); --tag-ink:var(--tag-1-ink); }
#research .tag-tone-2{ --tag-bg:var(--tag-2-bg); --tag-ink:var(--tag-2-ink); }
#research .tag-tone-3{ --tag-bg:var(--tag-3-bg); --tag-ink:var(--tag-3-ink); }
#research .tag-tone-4{ --tag-bg:var(--tag-4-bg); --tag-ink:var(--tag-4-ink); }
#research .tag-tone-5{ --tag-bg:var(--tag-5-bg); --tag-ink:var(--tag-5-ink); }
#research .tag-tone-6{ --tag-bg:var(--tag-6-bg); --tag-ink:var(--tag-6-ink); }
#research .tag-tone-7{ --tag-bg:var(--tag-7-bg); --tag-ink:var(--tag-7-ink); }
#research .library-tag.is-toned{ color:var(--tag-ink); background:var(--tag-bg); border-color:color-mix(in srgb, var(--tag-ink) 26%, transparent); }
#research .library-tag-add{ display:inline-grid; place-items:center; width:16px; height:16px; padding:0; color:var(--faint); border:0; border-radius:50%; background:var(--bg-sunken); }
#research .library-tag-add:hover:not(:disabled){ color:var(--ink-inverse); background:var(--ink); }
#research .library-detail-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:8px; }
#research .library-doi{ color:var(--faint); font:10.5px var(--mono); }
#research .library-detail-tags{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; }
#research .library-excerpts{ flex:1; min-height:0; overflow-y:auto; padding:12px 2px 20px; }
#research .library-excerpt{ margin-bottom:10px; padding:12px; border:1px solid var(--line); border-radius:11px; background:var(--surface); }
#research .library-excerpt > header{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
#research .library-excerpt-tags, #research .library-excerpt-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
#research .library-excerpt-actions{ flex:none; }
#research .library-verify{ display:inline-grid; place-items:center; width:18px; height:18px; padding:0; color:var(--muted); border:0; border-radius:50%; background:var(--bg-sunken); transition:background .15s,color .15s; }
#research .library-verify:hover:not(:disabled){ color:var(--ink-inverse); background:var(--ink); }
#research .library-verify.is-verified{ color:var(--ink-inverse); background:var(--ink); }
#research .library-excerpt-text{ margin:9px 0 0; color:var(--ink); font:12.5px/1.75 var(--sans); white-space:pre-wrap; }
#research .library-excerpt-more{ display:flex; align-items:center; gap:4px; margin:5px 0 0; color:var(--faint); font-size:10.5px; }
#research .library-excerpt-translation{ margin:9px 0 0; padding-top:9px; color:var(--ink-soft); border-top:1px solid var(--line); font:12.5px/1.75 var(--sans); white-space:pre-wrap; }
#research .library-excerpt-section{ margin-top:10px; }
#research .library-label{ display:block; color:var(--faint); font:10px var(--mono); letter-spacing:.1em; }
#research .library-usage{ margin:4px 0 0; color:var(--ink-soft); font:12px/1.7 var(--sans); white-space:pre-wrap; }
#research .library-usage.is-editable{ cursor:text; }
#research .library-usage.is-editable:hover{ color:var(--ink); }
#research .library-excerpt > footer{ display:flex; flex-wrap:wrap; gap:12px; margin-top:9px; color:var(--faint); font-size:10.5px; }
#research .library-hint{ display:flex; align-items:center; justify-content:center; gap:6px; margin:0; padding:26px 10px; color:var(--muted); font-size:12px; line-height:1.7; text-align:center; }
html[data-theme="light"] #research .library-view { --tag-0-bg: #e4eefe; --tag-0-ink: #1f4e9c;
  --tag-1-bg: #ddf3e5; --tag-1-ink: #1e6b41;
  --tag-2-bg: #fdf0cf; --tag-2-ink: #7d5b0a;
  --tag-3-bg: #fde6d9; --tag-3-ink: #95431a;
  --tag-4-bg: #fde1e9; --tag-4-ink: #9c2b52;
  --tag-5-bg: #eee5fd; --tag-5-ink: #5c33a4;
  --tag-6-bg: #d8f0f4; --tag-6-ink: #14606b;
  --tag-7-bg: #e6e8fa; --tag-7-ink: #3b4396; }
#research .library-view { --tag-0-bg: #1d2c47; --tag-0-ink: #a9c6f5;
  --tag-1-bg: #16301f; --tag-1-ink: #96d8b0;
  --tag-2-bg: #302a12; --tag-2-ink: #e3c878;
  --tag-3-bg: #36231a; --tag-3-ink: #f0ab86;
  --tag-4-bg: #371b24; --tag-4-ink: #f2a3b8;
  --tag-5-bg: #2a2039; --tag-5-ink: #c4aaf3;
  --tag-6-bg: #123039; --tag-6-ink: #8ed3e0;
  --tag-7-bg: #232643; --tag-7-ink: #adb4f1; }

/* 官网使用固定 App 画布；滚轮继续交给页面，语料由演示流程定位。 */
#research .library-view { --surface:var(--demo-chat-bg); --ink:var(--demo-text); --ink-soft:var(--demo-text); --muted:var(--demo-muted); --faint:#777; --line:var(--demo-line); --line-strong:var(--demo-line-strong); --surface-hover:#ffffff09; --bg-sunken:#ffffff0d; --ink-inverse:#202020; }
html[data-theme="light"] #research .library-view { --ink:#0d0d0d; --ink-soft:#3c3c3c; --muted:#8f8f8f; --faint:#b8b8b8; --surface-hover:#f5f5f5; --bg-sunken:#f2f2f2; --ink-inverse:#fff; }
#research .library-view button:disabled { cursor:default; }
#research .library-view .icon-button { display:inline-grid; place-items:center; flex:none; width:28px; height:28px; padding:0; color:var(--muted); border:0; background:transparent; border-radius:6px; }
#research .library-view .icon-button.is-small { width:24px; height:24px; }
#research .library-view .icon-button .studio-icon { width:16px; height:16px; }
#research .library-view .icon-button.is-small .studio-icon { width:13px; height:13px; }
#research .library-heading-back .studio-icon { width:17px; height:17px; }
#research .library-heading-paper>div>span { font-size:11px; }
#research .library-demo-nav-tag { display:flex; align-items:center; gap:7px; min-width:0; padding:5px 10px; color:var(--ink-soft); border-radius:6px; }
#research .library-demo-nav-tag.active { color:var(--ink); background:var(--surface-hover); font-weight:600; }
#research .library-tag-nav .library-demo-nav-tag { padding:5px 10px; }
#research .library-nav-title .studio-icon { width:14px; height:14px; }
#research .library-demo-nav-tag>.studio-icon { width:14px; height:14px; }
#research .library-demo-title { display:block; color:var(--ink); font-size:12.5px; font-weight:600; line-height:1.45; }
#research .library-table { table-layout:fixed; }
#research .library-table-title { min-width:0; }
#research .library-table td { overflow-wrap:anywhere; }
#research .library-table tr.is-demo-selected td { background:var(--surface-hover); }
#research .library-search-field>span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12.5px; }
#research .library-search-field .studio-icon { width:15px; height:15px; flex:none; }
#research .app-select-trigger { display:flex; align-items:center; gap:5px; font-size:12.5px; white-space:nowrap; }
#research .app-select-trigger .studio-icon { width:13px; height:13px; color:var(--muted); }
#research .library-tag-add .studio-icon { width:11px; height:11px; }
#research .library-verify .studio-icon { width:11px; height:11px; stroke-width:3.4; }
#research .tag-remove .studio-icon { width:9px; height:9px; }
#research .library-scroll,#research .library-excerpts,#research .library-inspector { overflow:hidden; }

/* 大指针沿固定 App 画布移动；命中位置按实际文献标题换算，兼容中英文换行。 */
#research .library-demo-cursor { position:absolute; z-index:30; top:0; left:0; width:40px; height:48px; pointer-events:none; transform:translate(var(--cursor-x),var(--cursor-y)); }
#research .library-demo-cursor.is-moving { transition:transform .95s cubic-bezier(.22,.61,.36,1); }
.library-demo-cursor>svg { position:relative; display:block; width:40px; height:48px; overflow:visible; fill:#17171b; stroke:#fff; stroke-width:1.7; stroke-linejoin:round; filter:drop-shadow(0 3px 5px #0004); transform-origin:4px 3px; }
.library-demo-click-ring { position:absolute; left:-21px; top:-22px; width:50px; height:50px; border:2px solid var(--ink); border-radius:50%; opacity:0; }
.library-demo-cursor.is-clicking>svg { animation:library-cursor-press .36s ease both; }
.library-demo-cursor.is-clicking .library-demo-click-ring { animation:library-cursor-ring .65s ease-out both; }
@keyframes library-cursor-press { 0%,100% { transform:scale(1); } 45% { transform:scale(.82); } }
@keyframes library-cursor-ring { from { transform:scale(.25); opacity:.55; } to { transform:scale(1.25); opacity:0; } }
@media(prefers-reduced-motion:reduce) { #research .library-demo-cursor { display:none; } }
