:root{--bg: #05070f;--panel: rgba(12, 15, 25, .26);--panel-strong: rgba(10, 13, 22, .72);--border: rgba(255, 255, 255, .1);--border-hi: rgba(255, 255, 255, .2);--text: #e8edf7;--text-dim: #93a0b8;--text-faint: #5f6c85;--accent: #ff4d5e;--accent-hi: #ff7a86;--accent-2: #ff9166;--accent-soft: rgba(255, 77, 94, .14);--accent-line: rgba(255, 77, 94, .42);--accent-glow: rgba(255, 77, 94, .28);--ok: #34d399;--warn: #fbbf24;--err: #f87171;--info: #60a5fa;--input-bg: rgba(0, 0, 0, .32);--hover: rgba(255, 255, 255, .055);--hover-hi: rgba(255, 255, 255, .11);--track: rgba(255, 255, 255, .12);--panel-grad: linear-gradient( 160deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .02) 34%, rgba(255, 255, 255, 0) 68% );--edge-hi: rgba(255, 255, 255, .32);--edge-lo: rgba(255, 255, 255, .05);--grain-opacity: .16;--shadow: 0 2px 6px rgba(0, 0, 0, .35), 0 12px 28px rgba(0, 0, 0, .42), 0 32px 72px rgba(0, 0, 0, .5);--shadow-hi: 0 3px 10px rgba(0, 0, 0, .4), 0 18px 44px rgba(0, 0, 0, .5), 0 44px 100px rgba(0, 0, 0, .55);--inset-hi: inset 0 1px 0 rgba(255, 255, 255, .09);--inset-lo: inset 0 -1px 0 rgba(0, 0, 0, .35);--sheen: rgba(255, 255, 255, .5);--sheen-soft: rgba(255, 255, 255, .16);--blur: 16px;--backdrop-bright: .82;--text-shadow: 0 1px 3px rgba(0, 0, 0, .55);--vignette: radial-gradient( ellipse 128% 95% at 50% 46%, transparent 55%, rgba(0, 0, 0, .3) 100% );--graph-bg: radial-gradient(ellipse 62% 52% at 50% 48%, rgba(86, 116, 200, .22) 0%, transparent 70%), radial-gradient(ellipse 120% 90% at 50% -10%, #16203c 0%, #0b1020 38%, #06080f 72%, #04060c 100%);--aurora-1: rgba(255, 77, 94, .3);--aurora-2: rgba(96, 140, 255, .26);--aurora-3: rgba(255, 145, 102, .18);--aurora-opacity: 1;--grid-line: rgba(120, 170, 255, .07);--grid-line-strong: rgba(130, 180, 255, .13);--grid-size: 46px;--grid-opacity: 1;color-scheme:dark}:root{--radius: 20px;--radius-sm: 13px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.4, .14, .3, 1);--grad: var(--accent);--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='0.5'/></svg>")}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif;font-size:14px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased;transition:background .35s var(--ease),color .35s var(--ease)}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}input,textarea,select{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:999px;border:3px solid transparent;background-clip:content-box;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--accent-line);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}::selection{background:var(--accent-soft)}.app{position:relative;height:100%;width:100%}.graph-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--graph-bg)}.graph-layer:before{content:"";position:absolute;top:-25%;right:-25%;bottom:-25%;left:-25%;z-index:-1;background:radial-gradient(38% 42% at 22% 26%,var(--aurora-1),transparent 68%),radial-gradient(42% 38% at 78% 30%,var(--aurora-2),transparent 70%),radial-gradient(46% 44% at 52% 84%,var(--aurora-3),transparent 72%);filter:blur(38px);opacity:var(--aurora-opacity);pointer-events:none}.graph-layer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(var(--grid-line-strong) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line-strong) 1px,transparent 1px),linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:calc(var(--grid-size) * 5) calc(var(--grid-size) * 5),calc(var(--grid-size) * 5) calc(var(--grid-size) * 5),var(--grid-size) var(--grid-size),var(--grid-size) var(--grid-size);-webkit-mask-image:radial-gradient(ellipse 72% 64% at 50% 50%,#000 12%,transparent 82%);mask-image:radial-gradient(ellipse 72% 64% at 50% 50%,#000 12%,transparent 82%);opacity:calc(var(--grid-opacity) * .86);pointer-events:none}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:var(--vignette);transition:background .35s var(--ease)}.hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;overflow:hidden}.hud-corner{position:absolute;width:26px;height:26px;border:1px solid var(--accent-line);opacity:.5;animation:hud-corner-in .7s var(--ease) both}.hud-tl{top:10px;left:10px;border-right:none;border-bottom:none;border-radius:6px 0 0}.hud-tr{top:10px;right:10px;border-left:none;border-bottom:none;border-radius:0 6px 0 0;animation-delay:.06s}.hud-bl{bottom:10px;left:10px;border-right:none;border-top:none;border-radius:0 0 0 6px;animation-delay:.12s}.hud-br{bottom:10px;right:10px;border-left:none;border-top:none;border-radius:0 0 6px;animation-delay:.18s}@keyframes hud-corner-in{0%{opacity:0;transform:scale(2.4)}}.hud-scan{position:absolute;left:0;right:0;height:42vh;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--info) 7%,transparent) 62%,color-mix(in srgb,var(--info) 20%,transparent) 96%,color-mix(in srgb,var(--info) 55%,transparent) 100%);animation:hud-scan 1.7s cubic-bezier(.5,0,.2,1) .25s both}@keyframes hud-scan{0%{transform:translateY(-46vh);opacity:0}18%{opacity:1}to{transform:translateY(100vh);opacity:0}}.hud-stats{position:absolute;right:26px;bottom:52px;display:flex;align-items:flex-end;gap:18px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;animation:hud-stats-in .7s var(--ease) .5s both}@keyframes hud-stats-in{0%{opacity:0;transform:translateY(10px);filter:blur(6px)}}.hud-stat{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.hud-stat-label{font-size:9px;letter-spacing:.22em;color:var(--text-faint)}.hud-stat-value{font-size:26px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;text-shadow:0 0 22px var(--accent-glow)}.hud-mode{position:absolute;right:26px;bottom:26px;justify-content:flex-end;display:flex;align-items:center;gap:6px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9.5px;letter-spacing:.2em;color:var(--ok);animation:hud-stats-in .7s var(--ease) .5s both}.hud-mode.demo{color:var(--warn)}.hud-mode.offline{color:var(--err)}.hud-live{display:flex;align-items:center;gap:6px;padding-bottom:3px;margin-right:2px;font-size:9.5px;letter-spacing:.2em;color:var(--ok)}.hud-live.active{color:var(--info)}.hud-live-dot{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.hud-live.active .hud-live-dot{animation:pulse-dot .7s ease-in-out infinite}.hud:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.016) 0 1px,transparent 1px 3px)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;padding:18px;display:grid;grid-template-columns:320px 1fr 360px;grid-template-rows:auto minmax(0,1fr) auto;gap:18px}.slot-tl{grid-column:1;grid-row:1;min-height:0}.slot-tr{grid-column:3;grid-row:1;min-height:0}.slot-legend{position:fixed;left:18px;bottom:18px;max-height:calc(100vh - 36px);overflow-y:auto}.slot-card{grid-column:3;grid-row:2 / 4;min-height:0;display:flex;align-items:flex-start}.slot-bottom{grid-column:1 / 3;grid-row:3;display:flex;justify-content:center}.overlay>*>*,.overlay .panel{pointer-events:auto}.panel{position:relative;background:var(--panel-grad),var(--panel);backdrop-filter:blur(var(--blur)) saturate(150%) brightness(var(--backdrop-bright));-webkit-backdrop-filter:blur(var(--blur)) saturate(150%) brightness(var(--backdrop-bright));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow),var(--inset-hi),var(--inset-lo);text-shadow:var(--text-shadow);display:flex;flex-direction:column;overflow:hidden;isolation:isolate;animation:panel-in .55s var(--ease) both;transition:background .35s var(--ease),border-color .35s var(--ease),box-shadow .45s var(--ease)}.panel:hover{box-shadow:var(--shadow-hi),var(--inset-hi),var(--inset-lo)}.panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,var(--edge-hi) 0%,var(--edge-lo) 22%,transparent 42%,transparent 58%,var(--sheen-soft) 74%,var(--edge-hi) 100%);background-size:260% 260%;background-position:0% 0%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:2;transition:background-position 1.1s var(--ease-soft),opacity .35s var(--ease)}.panel:hover:before{background-position:100% 100%}.panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:var(--grain);opacity:var(--grain-opacity);mix-blend-mode:overlay;pointer-events:none;z-index:1;border-radius:inherit}.panel>*{position:relative;z-index:3}@keyframes panel-in{0%{opacity:0;transform:translateY(-12px) scale(.98);filter:blur(6px)}}.panel-head{position:relative;display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--sheen-soft),transparent);flex:none}.panel-head:after{content:"";position:absolute;inset:auto 0 -1px 0;height:1px;background:linear-gradient(90deg,transparent,var(--border-hi) 20%,var(--border-hi) 80%,transparent)}.panel-title{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-right:auto;display:flex;align-items:center;gap:8px}.panel-title:before{content:"";width:3px;height:12px;border-radius:2px;background:var(--grad);flex:none}.panel-body{overflow-y:auto;padding:8px;flex:1 1 auto}.panel-foot{border-top:1px solid var(--border);padding:8px 12px;flex:none}.slot-tl .panel,.slot-tr .panel{max-height:min(44vh,480px)}.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-hi);background:linear-gradient(180deg,var(--sheen-soft),transparent 62%),var(--hover);color:var(--text);font-size:13px;box-shadow:var(--inset-hi);transition:background .22s var(--ease),border-color .22s var(--ease),transform .18s var(--ease),box-shadow .22s var(--ease);white-space:nowrap}.btn:after{content:"";position:absolute;top:-50%;bottom:-50%;width:40%;left:-60%;background:linear-gradient(90deg,transparent,var(--sheen),transparent);opacity:0;transform:skew(-20deg);pointer-events:none;transition:left .7s var(--ease-soft),opacity .3s var(--ease)}.btn:hover:not(:disabled):after{left:120%;opacity:.45}.btn:hover:not(:disabled){background:linear-gradient(180deg,var(--sheen-soft),transparent 62%),var(--hover-hi);border-color:var(--accent-line);transform:translateY(-1px);box-shadow:var(--inset-hi),0 4px 14px #00000024}.btn:active:not(:disabled){transform:translateY(0) scale(.97);transition-duration:.08s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 3px 14px var(--accent-glow),inset 0 1px #ffffff61,inset 0 -3px 8px #00000024}.btn-primary:hover:not(:disabled){background:var(--grad);filter:brightness(1.08) saturate(1.05);border-color:transparent;box-shadow:0 6px 22px var(--accent-glow),inset 0 1px #ffffff73,inset 0 -3px 8px #00000024}.btn-icon{padding:5px 8px;font-size:12px;color:var(--text-faint);border-color:transparent;background:transparent;box-shadow:none}.btn-icon:hover:not(:disabled){box-shadow:none}.btn-icon:hover:not(:disabled){color:var(--err);background:var(--accent-soft);border-color:var(--accent-line)}.btn-icon:after{display:none}.btn-sm{padding:4px 9px;font-size:12px}.input{width:100%;padding:8px 11px;border-radius:var(--radius-sm);border:1px solid var(--border-hi);background:var(--input-bg);outline:none;box-shadow:inset 0 1px 3px #00000029;transition:border-color .22s var(--ease),box-shadow .28s var(--ease),background .22s var(--ease)}.input:hover:not(:focus){border-color:var(--border-hi);box-shadow:inset 0 1px 3px #00000029,0 0 0 3px var(--hover)}.input:focus{border-color:var(--accent);box-shadow:inset 0 1px 3px #0000001f,0 0 0 3px var(--accent-soft),0 0 18px var(--accent-glow)}.input::placeholder{color:var(--text-faint)}select.input{cursor:pointer;padding:5px 8px;width:auto}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.02em;border:1px solid currentColor;box-shadow:inset 0 1px 0 var(--sheen-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.badge-Collecting{color:var(--text-faint);background:var(--hover)}.badge-Processing{color:var(--info);background:color-mix(in srgb,var(--info) 12%,transparent)}.badge-Processing .dot{animation:pulse-dot 1.1s ease-in-out infinite}.badge-Ready{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.badge-Error{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.5)}}.item{position:relative;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;overflow:hidden;transition:background .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}.item:hover{background:var(--hover);transform:translate(2px)}.item.selected{background:linear-gradient(100deg,var(--accent-soft),transparent 70%),var(--hover);border-color:var(--accent-line);box-shadow:inset 0 1px 0 var(--sheen-soft)}.item.selected:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:0 2px 2px 0;background:var(--grad);box-shadow:0 0 10px var(--accent-glow)}.item-main{min-width:0;flex:1}.item-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-meta{font-size:11px;color:var(--text-faint);display:flex;align-items:center;gap:6px;margin-top:1px}.empty{padding:22px 14px;text-align:center;color:var(--text-faint);font-size:12.5px;line-height:1.8}.progress{padding:8px 10px}.progress-label{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-dim);margin-bottom:5px}.progress-label span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-track{height:5px;border-radius:999px;background:var(--track);box-shadow:inset 0 1px 2px #0003;overflow:hidden}.progress-fill{position:relative;height:100%;border-radius:999px;background:var(--grad);box-shadow:0 0 12px var(--accent-glow);transition:width .5s var(--ease);overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translate(-100%);animation:fill-shine 1.8s var(--ease-soft) infinite}@keyframes fill-shine{to{transform:translate(100%)}}.progress-fill.indeterminate{width:35%!important;animation:slide-indef 1.3s ease-in-out infinite}@keyframes slide-indef{0%{transform:translate(-100%)}to{transform:translate(330%)}}.dropzone{margin:8px;padding:16px 12px;border:1px dashed var(--border-hi);border-radius:var(--radius-sm);text-align:center;font-size:12px;color:var(--text-dim);cursor:pointer;transition:all .25s var(--ease)}.dropzone:hover{border-color:var(--accent-line);background:var(--hover);color:var(--text)}.dropzone.dragging{border-color:var(--accent);border-style:solid;background:linear-gradient(180deg,var(--sheen-soft),transparent),var(--accent-soft);color:var(--accent);transform:scale(1.015);box-shadow:0 0 0 4px var(--accent-soft),0 0 26px var(--accent-glow)}.dropzone-hint{font-size:11px;color:var(--text-faint);margin-top:3px}.chat{width:min(760px,100%);max-height:min(46vh,520px)}.chat-log{overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:12px;flex:1 1 auto;scroll-behavior:smooth}.chat-log:empty{display:none}.msg{display:flex;flex-direction:column;gap:5px;animation:msg-in .32s var(--ease) both}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}}.msg-user{align-items:flex-end}.msg-user .bubble{background:linear-gradient(160deg,var(--sheen-soft),transparent 55%),var(--accent-soft);border-color:var(--accent-line);border-bottom-right-radius:6px;border-bottom-left-radius:18px;max-width:78%}.bubble{padding:10px 14px;border-radius:18px 18px 18px 6px;border:1px solid var(--border);background:linear-gradient(160deg,var(--sheen-soft),transparent 55%),var(--hover);box-shadow:var(--inset-hi),0 2px 10px #00000014;white-space:pre-wrap;word-break:break-word}.msg-error .bubble{border-color:var(--err);background:color-mix(in srgb,var(--err) 10%,transparent);color:var(--err)}.answer-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--text-faint)}.chip{padding:2px 9px;border-radius:999px;border:1px solid var(--border-hi);background:linear-gradient(180deg,var(--sheen-soft),transparent),var(--hover);box-shadow:var(--inset-hi);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:11px}.chip-strategy{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.score{display:flex;align-items:center;gap:6px;cursor:help}.score-track{width:56px;height:3px;border-radius:2px;background:var(--track);overflow:hidden}.score-fill{height:100%;background:var(--grad)}.sources{border-top:1px dashed var(--border);margin-top:2px;padding-top:6px}.sources summary{cursor:pointer;font-size:11.5px;color:var(--text-dim);list-style:none;-webkit-user-select:none;user-select:none}.sources summary::-webkit-details-marker{display:none}.sources summary:before{content:"▸ ";display:inline-block}.sources[open] summary:before{content:"▾ "}.source-item{font-size:12.5px;color:var(--text-dim);padding:5px 8px;margin-top:5px;border-left:2px solid var(--accent-line);background:var(--hover);border-radius:0 6px 6px 0;white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto}.source-entity{max-height:none;overflow:hidden;white-space:normal;transition:background .2s var(--ease),border-left-color .2s var(--ease),transform .2s var(--ease),color .2s var(--ease)}.source-entity:not(.source-entity-flat){cursor:pointer}.ent-head{display:flex;align-items:center;gap:6px;min-width:0}.ent-name{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}.ent-type{flex:none;padding:0 6px;border-radius:999px;font-size:10px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line)}.ent-score{flex:none;margin-left:auto;font-size:10.5px;color:var(--text-faint);font-variant-numeric:tabular-nums;cursor:help}.ent-rel{flex:none;font-size:10.5px;color:var(--text-faint);font-variant-numeric:tabular-nums;cursor:help}.ent-desc{margin-top:2px;font-size:11px;color:var(--text-faint);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.source-entity:not(.source-entity-flat) .ent-head:after{content:"◎";flex:none;color:var(--text-faint);font-size:11px;transition:color .2s var(--ease),transform .2s var(--ease)}.source-entity .ent-score+.ent-rel{margin-left:0}.source-entity:not(.source-entity-flat):hover{background:var(--hover-hi);border-left-color:var(--accent);transform:translate(2px)}.source-entity:not(.source-entity-flat):hover .ent-head:after{color:var(--accent);transform:scale(1.15)}.source-entity:not(.source-entity-flat):active{transform:translate(2px) scale(.99);transition-duration:.08s}@media (prefers-reduced-motion: reduce){.source-entity:hover{transform:none}.source-entity .ent-head:after{transform:none}}.gl-warn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(460px,calc(100vw - 48px));padding:20px 22px;gap:12px;pointer-events:auto;text-align:left}.gl-warn-title{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}.gl-warn-title:before{content:"⚠";color:var(--warn);font-size:16px}.gl-warn-body{font-size:12.5px;color:var(--text-dim);line-height:1.75}.gl-warn-steps{margin:0;padding-left:20px;font-size:12px;color:var(--text-dim);line-height:1.9}.gl-warn-steps li{margin:0}.gl-warn-steps code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;padding:1px 5px;border-radius:5px;background:var(--input-bg);border:1px solid var(--border-hi);color:var(--text);-webkit-user-select:all;user-select:all}.gl-warn-retry{align-self:flex-start;margin-top:2px}.cite-tag{flex:none;padding:0 6px;border-radius:999px;font-size:10px;line-height:1.7;white-space:nowrap;cursor:help;font-variant-numeric:tabular-nums;border:1px solid currentColor}.cite-tag-hit{color:var(--accent);background:var(--accent-soft)}.cite-tag-ctx{color:var(--text-faint);background:var(--hover);border-color:var(--border-hi)}.source-ctx{opacity:.72}.source-ctx:hover{opacity:1}.source-ctx .source-title{color:var(--text-dim);font-weight:400}.source-ctx summary:before{opacity:.5}.cite-zoom{flex:none;padding:0 4px;font-size:12px;line-height:1;color:var(--text-faint);border-radius:5px;transition:color .18s var(--ease),background .18s var(--ease)}.cite-zoom:hover{color:var(--accent);background:var(--accent-soft)}.cite-modal-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:cite-modal-in .18s var(--ease) both}@keyframes cite-modal-in{0%{opacity:0}}.cite-modal{display:flex;flex-direction:column;width:min(860px,100%);max-height:min(80vh,760px);background:linear-gradient(180deg,var(--sheen-soft),transparent 40%),var(--panel-strong);border:1px solid var(--border-hi);border-radius:var(--radius);box-shadow:var(--shadow-hi);outline:none;overflow:hidden;animation:cite-box-in .22s var(--ease) both}@keyframes cite-box-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}.cite-modal-head{display:flex;align-items:center;gap:8px;flex:none;padding:14px 12px 12px 16px;border-bottom:1px solid var(--border)}.cite-modal-file{font-size:14px;font-weight:600;color:var(--text);word-break:break-all}.cite-modal-file:before{content:"📄  ";font-weight:400}.cite-modal-close{margin-left:auto;flex:none}.cite-modal-meta{flex:none;padding:9px 16px 0;font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}.cite-modal-why{flex:none;margin:9px 16px 0;padding:9px 11px;border-radius:var(--radius-sm);background:var(--hover);border-left:2px solid var(--border-hi);font-size:12px;line-height:1.7;color:var(--text-dim)}.cite-modal-body{flex:1 1 auto;overflow-y:auto;margin:12px 0 0;padding:0 16px 14px;font-size:15px;line-height:1.95;color:var(--text);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.cite-modal-foot{display:flex;align-items:center;gap:10px;flex:none;padding:10px 16px;border-top:1px solid var(--border);background:linear-gradient(180deg,transparent,var(--hover))}.cite-modal-hint{margin-left:auto;font-size:11px;color:var(--text-faint)}@media (max-width: 1100px){.cite-modal{max-height:88vh}.cite-modal-body{font-size:14.5px}}@media (prefers-reduced-motion: reduce){.cite-modal-overlay,.cite-modal{animation-duration:.01ms}}.chat-form{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--border)}.chat-input{flex:1;resize:none;max-height:130px;min-height:42px;padding:11px 14px;border-radius:16px;border:1px solid var(--border-hi);background:var(--input-bg);outline:none;box-shadow:inset 0 1px 3px #00000029;transition:border-color .22s var(--ease),box-shadow .3s var(--ease)}.chat-input:focus{border-color:var(--accent);box-shadow:inset 0 1px 3px #0000001f,0 0 0 3px var(--accent-soft),0 0 22px var(--accent-glow)}.chat-opts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px 0;font-size:11.5px;color:var(--text-faint)}.toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{accent-color:var(--accent);cursor:pointer}.adv{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px 0}.adv label{font-size:11px;color:var(--text-faint);display:flex;flex-direction:column;gap:2px}.adv input{width:66px;padding:4px 7px;border-radius:7px;border:1px solid var(--border-hi);background:var(--input-bg);outline:none}.typing{display:inline-flex;gap:4px;padding:4px 0}.typing i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:typing 1.2s ease-in-out infinite}.typing i:nth-child(2){animation-delay:.16s}.typing i:nth-child(3){animation-delay:.32s}@keyframes typing{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.panel.node-card{width:100%;max-height:100%;opacity:0;transform:translate(28px) scale(.98);filter:blur(8px);pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease),filter .4s var(--ease);animation:none}.panel.node-card.open{opacity:1;transform:translate(0) scale(1);filter:blur(0);pointer-events:auto}.node-card-head{padding:14px 14px 12px;border-bottom:1px solid var(--border);flex:none}.node-title{display:flex;align-items:flex-start;gap:9px}.node-swatch{width:11px;height:11px;border-radius:50%;margin-top:6px;flex:none;box-shadow:0 0 12px currentColor}.node-name{font-size:17px;font-weight:600;line-height:1.35;flex:1;word-break:break-word}.node-type{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid currentColor;margin-top:8px;display:inline-block}.node-desc{padding:12px 14px;font-size:12.5px;color:var(--text-dim);line-height:1.75;border-bottom:1px solid var(--border);white-space:pre-wrap;flex:none;max-height:30vh;overflow-y:auto}.rel-head{padding:10px 14px 4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.rel{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;transition:background .16s;border-left:2px solid transparent}.rel:hover{background:var(--hover);border-left-color:var(--accent)}.rel-arrow{font-size:11px;color:var(--text-faint);flex:none}.rel-type{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line);flex:none}.rel-name{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend{max-width:250px;padding:11px 13px;border-radius:16px;font-size:11.5px}.legend-row{display:flex;align-items:center;gap:7px;padding:2px 0;color:var(--text-dim)}.legend-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}.legend-count{margin-left:auto;color:var(--text-faint);font-variant-numeric:tabular-nums}.graph-hint{position:fixed;left:50%;top:46%;transform:translate(-50%,-50%);z-index:5;text-align:center;color:var(--text-faint);pointer-events:none;animation:msg-in .4s var(--ease) both}.graph-hint h2{font-size:15px;font-weight:500;color:var(--text-dim);margin:0 0 6px}.graph-hint p{margin:0;font-size:12.5px}.spinner{width:22px;height:22px;margin:0 auto 12px;border:2px solid var(--track);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;top:68px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;max-width:520px;padding:11px 15px;border-radius:var(--radius-sm);border:1px solid var(--border-hi);background:linear-gradient(180deg,var(--sheen-soft),transparent 60%),var(--panel-strong);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);box-shadow:var(--shadow),var(--inset-hi);font-size:12.5px;display:flex;gap:9px;align-items:flex-start;animation:toast-in .36s var(--ease) both}@keyframes toast-in{0%{opacity:0;transform:translateY(-16px) scale(.96);filter:blur(5px)}}.toast-error{border-color:var(--err);color:var(--err)}.toast-ok{border-color:var(--ok);color:var(--ok)}.toast-info{border-color:var(--info);color:var(--info)}.toast button{margin-left:auto;color:currentColor;opacity:.55;flex:none}.toast button:hover{opacity:1}.license{font-size:11px;color:var(--warn);padding:6px 12px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--warn) 8%,transparent)}@media (max-width: 1100px){.overlay{grid-template-columns:260px 1fr 280px;padding:12px;gap:12px}.slot-legend{left:12px;bottom:12px;max-height:calc(100vh - 24px)}}@media (prefers-reduced-motion: reduce){.graph-layer:before,.graph-layer:after,.progress-fill:after,.progress-fill.indeterminate,.typing i,.badge-Processing .dot,.hud-live-dot{animation:none}.hud-scan{display:none}.hud-corner,.hud-stats,.panel,.toast,.msg{animation-duration:.01ms}.btn:after{display:none}.item:hover{transform:none}.btn:hover:not(:disabled){transform:none}}
.source-detail{cursor:pointer;max-height:none;overflow:visible}.source-detail summary{display:flex;align-items:center;gap:8px;list-style:none}.source-detail summary::-webkit-details-marker{display:none}.source-detail summary:before{content:"▸";color:var(--accent);flex:none}.source-detail[open] summary:before{content:"▾"}.source-title{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-meta{margin-left:auto;color:var(--text-faint);font-size:10.5px;white-space:nowrap}.source-content{margin-top:7px;padding-top:7px;border-top:1px dashed var(--border);white-space:pre-wrap;word-break:break-word;max-height:180px;overflow-y:auto;line-height:1.75}