:root{--bg-body: #2a2a3e;--bg-container: #1a1a2e;--bg-panel: rgba(0, 0, 0, .6);--bg-panel-solid: rgba(30, 30, 50, .95);--bg-input: rgba(255, 255, 255, .1);--bg-input-focus: rgba(255, 255, 255, .15);--bg-item: rgba(255, 255, 255, .05);--bg-item-hover: rgba(255, 255, 255, .08);--bg-tooltip: rgba(0, 0, 0, .9);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .9);--text-tertiary: rgba(255, 255, 255, .8);--text-muted: rgba(255, 255, 255, .6);--text-dim: rgba(255, 255, 255, .5);--text-faint: rgba(255, 255, 255, .4);--text-placeholder: rgba(255, 255, 255, .4);--accent-green: #4ade80;--accent-green-light: #86efac;--accent-blue: #3b82f6;--accent-blue-light: #60a5fa;--accent-red: #f87171;--accent-link: rgba(130, 180, 255, .9);--accent-link-bg: rgba(130, 180, 255, .1);--accent-link-bg-hover: rgba(130, 180, 255, .2);--border-subtle: rgba(255, 255, 255, .05);--border-light: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .25);--border-focus: rgba(255, 255, 255, .4);--panel-bg: rgba(0, 0, 0, .6);--panel-border: rgba(255, 255, 255, .1);--panel-radius: 12px;--panel-blur: 12px;--btn-bg: rgba(255, 255, 255, .1);--btn-bg-hover: rgba(255, 255, 255, .15);--btn-bg-active: rgba(255, 255, 255, .2);--btn-border: rgba(255, 255, 255, .15);--btn-border-hover: rgba(255, 255, 255, .25);--btn-radius: 6px;--control-btn-size: 36px;--control-btn-radius: 8px;--toggle-size: 32px;--toggle-gap: 8px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", monospace;--font-size-xs: 9px;--font-size-sm: 11px;--font-size-base: 12px;--font-size-md: 13px;--font-size-lg: 14px;--font-size-xl: 18px;--font-size-2xl: 20px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--shadow-panel: 0 4px 6px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .2);--shadow-tooltip: 0 4px 12px rgba(0, 0, 0, .3);--shadow-btn: 0 1px 3px rgba(0, 0, 0, .3);--shadow-glow-green: 0 0 8px rgba(74, 222, 128, .4);--z-canvas: 1;--z-floating: 5;--z-overlay: 50;--z-panel: 100;--z-toggle: 101;--z-tooltip: 1000;--progress-height: 4px;--progress-bg: rgba(255, 255, 255, .1);--progress-fill: var(--accent-green)}.node-tooltip[data-v-865f263e]{position:fixed;z-index:1000;max-width:240px;padding:6px 10px;background:#000000d9;border-radius:5px;pointer-events:none;box-shadow:0 4px 12px #0000004d}.tooltip-title[data-v-865f263e]{font-size:11px;font-weight:600;color:#fff;line-height:1.3;margin-bottom:3px}.tooltip-authors[data-v-865f263e]{font-size:10px;color:#ffffffb3;margin-bottom:3px}.tooltip-meta[data-v-865f263e]{font-size:9px;color:#ffffff80}.tooltip-enter-active[data-v-865f263e]{transition:opacity .15s ease-out}.tooltip-leave-active[data-v-865f263e]{transition:opacity .1s ease-in}.tooltip-enter-from[data-v-865f263e],.tooltip-leave-to[data-v-865f263e]{opacity:0}.graph-canvas[data-v-6ad1659d]{width:100%;height:100%;overflow:hidden;touch-action:none;position:relative}.year-axis-target[data-v-6ad1659d]{position:absolute;left:0;top:0;width:80px;height:100%;pointer-events:none}.mobile-tab-bar[data-v-e55f626d]{display:flex;flex-direction:row;justify-content:space-around;align-items:center;height:calc(52px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border-light);transition:border-color var(--transition-smooth)}.mobile-tab-bar.landscape[data-v-e55f626d]{flex-direction:column;justify-content:space-around;align-items:center;width:calc(52px + env(safe-area-inset-left));height:100%;padding-bottom:0;padding-left:env(safe-area-inset-left);padding-top:env(safe-area-inset-top);border-top:none;border-right:1px solid var(--border-light);order:-1;transition:border-color var(--transition-smooth)}.tab-button[data-v-e55f626d]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:color var(--transition-smooth);position:relative;-webkit-tap-highlight-color:transparent}.mobile-tab-bar.landscape .tab-button[data-v-e55f626d]{flex:0 0 auto;width:100%;height:auto;padding:var(--spacing-md) 0}.tab-button[data-v-e55f626d]:active{color:var(--text-secondary)}.tab-button.active[data-v-e55f626d]{color:var(--text-primary)}.tab-indicator[data-v-e55f626d]{position:absolute;bottom:8px;left:50%;transform:translate(-50%) scaleX(0);width:20px;height:2px;background:var(--text-primary);border-radius:1px;transition:transform var(--transition-smooth)}.tab-button.active .tab-indicator[data-v-e55f626d]{transform:translate(-50%) scaleX(1)}.mobile-tab-bar.landscape .tab-indicator[data-v-e55f626d]{inset:50% 8px auto auto;transform:translateY(-50%) scaleX(0);width:2px;height:20px}.mobile-tab-bar.landscape .tab-button.active .tab-indicator[data-v-e55f626d]{transform:translateY(-50%) scaleX(1)}.tab-target[data-v-e55f626d]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:36px;pointer-events:none}.controls-content[data-v-afd1d16a]{height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);gap:clamp(12px,4vw,24px)}.controls-group[data-v-afd1d16a]{display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,24px)}.controls-group.landscape[data-v-afd1d16a]{flex-direction:column}.colormap-buttons[data-v-afd1d16a]{display:flex;flex-direction:row;gap:clamp(8px,3vw,16px)}.colormap-buttons.landscape[data-v-afd1d16a]{flex-direction:column}.colormap-btn[data-v-afd1d16a]{width:32px;height:32px;border-radius:8px;border:1.5px solid rgba(255,255,255,.5);cursor:pointer;position:relative;overflow:hidden;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent}.colormap-btn[data-v-afd1d16a]:active{transform:scale(.9)}.colormap-btn.active[data-v-afd1d16a]{border-color:var(--text-primary);transform:scale(.9);box-shadow:inset 0 2px 4px #0006}.colormap-gloss[data-v-afd1d16a]{position:absolute;inset:0;background:linear-gradient(135deg,#ffffff4d,#ffffff1a 40%,#0000000d 60%,#00000026);pointer-events:none}.particles-btn[data-v-afd1d16a]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-item);border:1.5px solid var(--border-light);border-radius:10px;color:var(--text-dim);cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);-webkit-tap-highlight-color:transparent}.particles-btn[data-v-afd1d16a]:active{transform:scale(.9)}.particles-btn.active[data-v-afd1d16a]{color:var(--text-primary);border-color:var(--border-medium)}.particles-btn[data-v-afd1d16a]:not(.active){opacity:.5}.abstract-container[data-v-fc69f9a0]{position:relative}.abstract-label[data-v-fc69f9a0]{font-size:var(--font-size-sm);font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.abstract-text[data-v-fc69f9a0]{font-size:var(--font-size-base);color:var(--text-muted);line-height:1.5;margin:0;cursor:pointer;transition:color var(--transition-fast)}.abstract-text[data-v-fc69f9a0]:hover{color:var(--text-secondary)}.expand-hint[data-v-fc69f9a0]{display:inline-block;margin-left:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--accent-link);font-style:italic}.details-wrapper[data-v-da16673a]{position:relative;height:100%}.details-content[data-v-da16673a]{padding:var(--spacing-md);height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.empty-state[data-v-da16673a]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:var(--font-size-sm)}.metadata-loading[data-v-da16673a]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);height:100%;color:var(--text-muted);font-size:var(--font-size-sm)}.loading-spinner[data-v-da16673a]{width:14px;height:14px;border:2px solid var(--border-light);border-top-color:var(--accent-blue);border-radius:50%;animation:spin-da16673a .8s linear infinite}@keyframes spin-da16673a{to{transform:rotate(360deg)}}.panel-header-row[data-v-da16673a]{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.panel-label[data-v-da16673a]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.header-badge[data-v-da16673a]{font-size:10px;font-weight:600;letter-spacing:.3px;padding:2px 5px;border-radius:3px;white-space:nowrap;-webkit-tap-highlight-color:transparent}.header-badge[data-v-da16673a]:active{filter:brightness(1.15);transform:scale(1.05)}.header-actions[data-v-da16673a]{display:flex;align-items:center;gap:4px;margin-left:auto}.header-action[data-v-da16673a]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-item);border:1px solid var(--border-light);border-radius:4px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent}.header-action[data-v-da16673a]:active{background:var(--bg-item-hover);color:var(--accent-blue);border-color:var(--accent-blue)}.header-action.build[data-v-da16673a]{background:var(--accent-blue);border-color:var(--accent-blue);color:var(--text-primary)}.header-action.build[data-v-da16673a]:active{opacity:.8}.header-action.bookmark[data-v-da16673a]:active{border-color:#f97316;color:#f97316}.header-action.bookmark.bookmarked[data-v-da16673a]{background:#f9731626;border-color:#f97316;color:#f97316}.header-action img[data-v-da16673a]{opacity:.7}.paper-title[data-v-da16673a]{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);line-height:1.3}.paper-source[data-v-da16673a]{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--spacing-xs)}.source-type[data-v-da16673a]{color:var(--text-dim)}.source-name[data-v-da16673a]{color:var(--text-secondary);font-style:italic}.paper-authors[data-v-da16673a]{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.4;margin-bottom:var(--spacing-sm)}.paper-author.clickable[data-v-da16673a]{cursor:pointer;padding:2px 6px;margin:-2px -6px;border-radius:4px;border:1px solid transparent;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.paper-author.clickable[data-v-da16673a]:hover{color:var(--text-primary);background:var(--bg-item-hover);border-color:var(--border-medium)}.paper-author.clickable[data-v-da16673a]:active{background:var(--bg-item-active);border-color:var(--border-light)}.paper-author.more[data-v-da16673a]{color:var(--text-faint);font-style:italic}.paper-stats[data-v-da16673a]{background:var(--bg-item);border-radius:6px;padding:8px 10px;margin-bottom:var(--spacing-sm)}.stat-row[data-v-da16673a]{display:flex;justify-content:space-between;align-items:center;padding:3px 0}.stat-row[data-v-da16673a]:not(:last-child){border-bottom:1px solid var(--border-subtle)}.stat-row.text-row[data-v-da16673a]{justify-content:flex-start;gap:var(--spacing-xs)}.stat-label[data-v-da16673a]{font-size:var(--font-size-xs);color:var(--text-dim)}.stat-value[data-v-da16673a]{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);font-family:var(--font-mono)}.stat-value.type-value[data-v-da16673a]{font-family:var(--font-family);font-weight:500;text-transform:capitalize}.stat-value.text-value[data-v-da16673a]{font-family:var(--font-family);font-weight:500}.paper-abstract[data-v-da16673a]{margin-bottom:var(--spacing-sm)}.abstract-overlay[data-v-da16673a]{position:absolute;inset:0;z-index:10}.abstract-expanded[data-v-da16673a]{position:absolute;inset:0;background:var(--bg-container);padding:var(--spacing-md);padding-top:var(--spacing-lg);display:flex;flex-direction:column}.close-btn[data-v-da16673a]{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-item);border:1px solid var(--border-light);border-radius:4px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent}.close-btn[data-v-da16673a]:active{background:var(--bg-item-hover);color:var(--text-secondary)}.expanded-label[data-v-da16673a]{font-size:var(--font-size-sm);font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm);flex-shrink:0}.expanded-content[data-v-da16673a]{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.expanded-content p[data-v-da16673a]{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin:0}.fade-enter-active[data-v-da16673a],.fade-leave-active[data-v-da16673a]{transition:opacity var(--transition-normal)}.fade-enter-from[data-v-da16673a],.fade-leave-to[data-v-da16673a]{opacity:0}.paper-fade-enter-active[data-v-da16673a]{transition:opacity .15s ease-out}.paper-fade-leave-active[data-v-da16673a]{transition:opacity .08s ease-in}.paper-fade-enter-from[data-v-da16673a],.paper-fade-leave-to[data-v-da16673a]{opacity:0}.details-wrapper[data-v-db9a34c2]{position:relative;height:100%}.details-content[data-v-db9a34c2]{padding:var(--spacing-md);height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.empty-state[data-v-db9a34c2]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:var(--font-size-sm)}.panel-header-row[data-v-db9a34c2]{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.panel-label[data-v-db9a34c2]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim)}.header-badge[data-v-db9a34c2]{font-size:10px;font-weight:600;letter-spacing:.3px;padding:2px 5px;border-radius:3px;white-space:nowrap;-webkit-tap-highlight-color:transparent}.header-actions[data-v-db9a34c2]{display:flex;align-items:center;gap:4px;margin-left:auto}.header-action[data-v-db9a34c2]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-item);border:1px solid var(--border-light);border-radius:4px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent}.header-action[data-v-db9a34c2]:active{background:var(--bg-item-hover);color:var(--accent-blue);border-color:var(--accent-blue)}.header-action.follow[data-v-db9a34c2]:active{border-color:#8b5cf6;color:#8b5cf6}.header-action.follow.following[data-v-db9a34c2]{background:#8b5cf626;border-color:#8b5cf6;color:#8b5cf6}.header-action img[data-v-db9a34c2]{opacity:.7}.author-name[data-v-db9a34c2]{margin:0 0 var(--spacing-xs) 0;font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);line-height:1.3}.author-affiliation[data-v-db9a34c2]{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--spacing-sm);font-style:italic}.author-stats[data-v-db9a34c2]{background:var(--bg-item);border-radius:6px;padding:8px 10px;margin-bottom:var(--spacing-sm)}.stat-row[data-v-db9a34c2]{display:flex;justify-content:space-between;align-items:center;padding:3px 0}.stat-row[data-v-db9a34c2]:not(:last-child){border-bottom:1px solid var(--border-subtle)}.stat-label[data-v-db9a34c2]{font-size:var(--font-size-xs);color:var(--text-dim)}.stat-value[data-v-db9a34c2]{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);font-family:var(--font-mono)}.library-content[data-v-27442931]{height:100%;display:flex;flex-direction:column;overflow:hidden}.tab-switcher[data-v-27442931]{display:flex;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs);border-bottom:1px solid var(--border-light);flex-shrink:0}.tab-btn[data-v-27442931]{flex:1;padding:6px 10px;font-size:var(--font-size-sm);font-weight:500;color:var(--text-dim);background:transparent;border:1px solid var(--border-light);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;-webkit-tap-highlight-color:transparent}.tab-btn[data-v-27442931]:active{background:#ffffff0d}.tab-btn.active[data-v-27442931]{color:var(--text-primary);background:#ffffff1a;border-color:var(--accent-blue)}.tab-count[data-v-27442931]{font-size:var(--font-size-xs);color:var(--text-faint);background:#ffffff1a;padding:1px 5px;border-radius:8px}.tab-btn.active .tab-count[data-v-27442931]{background:#60a5fa33;color:var(--accent-blue)}.empty-state[data-v-27442931]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim)}.empty-icon[data-v-27442931]{font-size:20px;margin-bottom:var(--spacing-xs);opacity:.5}.empty-state p[data-v-27442931]{margin:0;font-size:var(--font-size-sm)}.library-section[data-v-27442931]{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:var(--spacing-xs) var(--spacing-md) var(--spacing-sm)}.section-header[data-v-27442931]{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-xs);flex-shrink:0}.clear-btn[data-v-27442931]{font-size:var(--font-size-xs);color:var(--text-faint);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;-webkit-tap-highlight-color:transparent}.clear-btn[data-v-27442931]:active{color:var(--accent-red);background:#f871711a}.book-shelf[data-v-27442931]{flex:1;display:flex;flex-direction:column;gap:2px;overflow-y:auto;-webkit-overflow-scrolling:touch}.book-spine[data-v-27442931]{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:linear-gradient(to bottom,#ffffff14,#ffffff05);border-left:3px solid var(--accent-blue);border-radius:2px;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0}.book-spine[data-v-27442931]:active{background:linear-gradient(to bottom,#ffffff1f,#ffffff0a);border-left-color:var(--accent-green)}.spine-text[data-v-27442931]{display:flex;align-items:center;gap:var(--spacing-xs);flex:1;min-width:0;font-size:var(--font-size-xs)}.spine-meta[data-v-27442931]{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.spine-title[data-v-27442931]{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.spine-actions[data-v-27442931]{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:var(--spacing-sm)}.spine-action[data-v-27442931]{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--bg-item);border:1px solid var(--border-light);border-radius:4px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent}.spine-action[data-v-27442931]:active{color:var(--accent-blue);background:#60a5fa26;border-color:var(--accent-blue)}.spine-action.remove[data-v-27442931]:active{color:var(--accent-red);background:#f8717126;border-color:var(--accent-red)}.spine-action img[data-v-27442931]{opacity:.7}.author-spine[data-v-27442931]{border-left-color:#8b5cf6}.author-spine[data-v-27442931]:active{border-left-color:#a78bfa}.spine-affiliation[data-v-27442931]{color:var(--text-faint);font-style:italic;margin-left:var(--spacing-xs)}.spine-slide-enter-active[data-v-27442931],.spine-slide-leave-active[data-v-27442931]{transition:all .25s ease}.spine-slide-enter-from[data-v-27442931]{opacity:0;transform:translate(-20px)}.spine-slide-leave-to[data-v-27442931]{opacity:0;transform:translate(20px)}.spine-slide-move[data-v-27442931]{transition:transform .25s ease}.mobile-info-panel[data-v-1a654bf3]{height:0;border-top:1px solid transparent;overflow:hidden;transition:height var(--transition-smooth),border-color var(--transition-smooth);display:flex;flex-direction:column}.mobile-info-panel.landscape[data-v-1a654bf3]{height:100%;width:0;border-top:none;border-right:1px solid transparent;transition:width var(--transition-smooth),border-color var(--transition-smooth);flex-direction:row}.mobile-info-panel.dragging[data-v-1a654bf3]{transition:none}.mobile-info-panel.open[data-v-1a654bf3]{border-top-color:var(--border-light)}.mobile-info-panel.landscape.open[data-v-1a654bf3]{border-top-color:transparent;border-right-color:var(--border-light)}.drag-handle[data-v-1a654bf3]{flex-shrink:0;display:flex;justify-content:center;align-items:center;padding:5px 0;cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.mobile-info-panel.landscape .drag-handle[data-v-1a654bf3]{order:1;padding:0 5px;cursor:ew-resize;width:auto;height:100%}.drag-handle[data-v-1a654bf3]:before{content:"";position:absolute;inset:-34px 0 -10px;pointer-events:auto;z-index:10}.mobile-info-panel.landscape .drag-handle[data-v-1a654bf3]:before{inset:0 -34px 0 -10px}.drag-handle-pill[data-v-1a654bf3]{width:98px;height:8px;background:var(--border-medium);border-radius:4px;transition:background var(--transition-smooth)}.mobile-info-panel.landscape .drag-handle-pill[data-v-1a654bf3]{width:8px;height:98px}.drag-handle:hover .drag-handle-pill[data-v-1a654bf3],.drag-handle:active .drag-handle-pill[data-v-1a654bf3]{background:var(--border-strong)}.info-panel-content[data-v-1a654bf3]{flex:1;min-height:0;color:var(--text-secondary);overflow-y:auto;-webkit-overflow-scrolling:touch}.resizable-wrapper[data-v-1a654bf3]{display:flex;flex-direction:column;height:100%}.mobile-info-panel.landscape .resizable-wrapper[data-v-1a654bf3]{flex-direction:row;width:100%}.resizable-content[data-v-1a654bf3]{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-info-panel.landscape .resizable-content[data-v-1a654bf3]{order:0;min-width:0}.fade-enter-active[data-v-1a654bf3],.fade-leave-active[data-v-1a654bf3]{transition:opacity .15s ease}.fade-enter-from[data-v-1a654bf3],.fade-leave-to[data-v-1a654bf3]{opacity:0}.details-fade-enter-active[data-v-1a654bf3]{transition:opacity .15s ease-out}.details-fade-leave-active[data-v-1a654bf3]{transition:opacity .08s ease-in}.details-fade-enter-from[data-v-1a654bf3],.details-fade-leave-to[data-v-1a654bf3]{opacity:0}.floating-controls[data-v-f6fd3202]{position:absolute;top:calc(var(--spacing-lg) + env(safe-area-inset-top));right:calc(var(--spacing-lg) + env(safe-area-inset-right));display:flex;flex-direction:column;gap:var(--spacing-xs);z-index:var(--z-floating)}.float-btn[data-v-f6fd3202]{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-panel-colormap, var(--bg-panel-solid));border:1px solid var(--border-light);border-radius:12px;color:var(--text-secondary);cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;transition:background var(--transition-smooth),border-color var(--transition-smooth),color var(--transition-smooth),transform var(--transition-fast)}@media(hover:hover){.float-btn[data-v-f6fd3202]:hover{background:var(--bg-item-hover);color:var(--text-primary);border-color:var(--border-medium)}}.float-btn[data-v-f6fd3202]:active{transform:scale(.92);background:var(--bg-item-active)}.float-btn.active[data-v-f6fd3202]{background:var(--bg-item-active);color:var(--text-primary);border-color:var(--border-medium)}.help-btn-wrapper[data-v-f6fd3202]{position:relative}@keyframes help-hint-pulse-f6fd3202{0%,to{box-shadow:0 0 #3b82f699,0 0 8px #3b82f666}50%{box-shadow:0 0 0 6px #3b82f600,0 0 16px #3b82f699}}.float-btn.help-hint-active[data-v-f6fd3202]{animation:help-hint-pulse-f6fd3202 1.5s ease-in-out infinite;border-color:#3b82f6;color:var(--text-primary)}.help-hint-tooltip[data-v-f6fd3202]{position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%);white-space:nowrap;background:#1e1e32f2;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;font-size:13px;color:#ffffffe6;box-shadow:0 4px 12px #0000004d;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.dismiss-hint[data-v-f6fd3202]{background:none;border:none;color:#ffffff80;font-size:11px;cursor:pointer;padding:0;transition:color .15s ease}.dismiss-hint[data-v-f6fd3202]:hover{color:#fffc}.help-hint-tooltip[data-v-f6fd3202]:after{content:"";position:absolute;top:50%;right:-6px;transform:translateY(-50%);border:6px solid transparent;border-left-color:#1e1e32f2}.hint-fade-enter-active[data-v-f6fd3202]{transition:opacity 1s ease,transform 1s ease}.hint-fade-leave-active[data-v-f6fd3202]{transition:opacity .3s ease,transform .3s ease}.hint-fade-enter-from[data-v-f6fd3202],.hint-fade-leave-to[data-v-f6fd3202]{opacity:0;transform:translateY(-50%) translate(10px)}.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}@keyframes driver-pulse{0%,to{outline-color:#3b82f6;outline-width:3px}50%{outline-color:#93c5fd;outline-width:5px}}.driver-active-element{outline-style:solid!important;outline-offset:4px!important;animation:driver-pulse 1.2s ease-in-out infinite!important}.driver-active .results-groups,.driver-active .results-group,.driver-active .results-list,.driver-active .panel-header-row,.driver-active .header-actions{overflow:visible!important}.driver-popover{background:#1e1e32f2!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:12px!important;box-shadow:0 4px 12px #0006!important;padding:16px!important;max-width:280px!important}.driver-popover-title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:16px!important;font-weight:600!important;color:#fff!important;margin:0 0 8px!important}.driver-popover-description{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:13px!important;font-weight:400!important;color:#fffc!important;line-height:1.5!important;margin:0!important}@keyframes btn-pulse{0%,to{box-shadow:0 0 #3b82f699}50%{box-shadow:0 0 0 6px #3b82f600}}.driver-popover-next-btn{background:#3b82f6!important;border:1px solid #3b82f6!important;border-radius:6px!important;color:#fff!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:12px!important;font-weight:500!important;padding:8px 16px!important;margin-top:12px!important;cursor:pointer!important;text-shadow:none!important;animation:btn-pulse 1.2s ease-in-out infinite!important}.driver-popover-next-btn:hover{background:#60a5fa!important;border-color:#60a5fa!important;animation:none!important}.driver-popover-arrow,.driver-popover-prev-btn{display:none!important}.driver-popover-footer{margin-top:0!important;padding:0!important;border:none!important}.tutorial-overlay[data-v-94fffbd3]{position:fixed;inset:0;background:#000000d9;z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center}.welcome-card[data-v-94fffbd3]{background:var(--bg-panel-colormap, var(--bg-panel-solid));transition:background var(--transition-smooth);border:1px solid var(--border-light);border-radius:var(--panel-radius);padding:var(--spacing-xl);max-width:300px;text-align:center}.welcome-title[data-v-94fffbd3]{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.welcome-description[data-v-94fffbd3]{font-size:var(--font-size-base);color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0}.welcome-actions[data-v-94fffbd3]{display:flex;gap:var(--spacing-sm);justify-content:center}.btn-start[data-v-94fffbd3]{background:var(--accent-blue);border:1px solid var(--accent-blue);border-radius:var(--btn-radius);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:all var(--transition-fast)}.btn-start[data-v-94fffbd3]:hover{background:var(--accent-blue-light);border-color:var(--accent-blue-light)}.btn-skip[data-v-94fffbd3]{background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--btn-radius);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:all var(--transition-fast)}.btn-skip[data-v-94fffbd3]:hover{background:var(--btn-bg-hover);border-color:var(--btn-border-hover);color:var(--text-primary)}.skip-tutorial-btn[data-v-94fffbd3]{position:fixed;bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom));right:var(--spacing-lg);z-index:1000001;background:var(--bg-panel-colormap, var(--bg-panel-solid));transition:background var(--transition-smooth);border:1px solid var(--border-light);border-radius:var(--btn-radius);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;pointer-events:auto;transition:all var(--transition-fast)}.skip-tutorial-btn[data-v-94fffbd3]:hover{background:var(--btn-bg-hover);border-color:var(--btn-border-hover);color:var(--text-primary)}.fade-enter-active[data-v-94fffbd3],.fade-leave-active[data-v-94fffbd3]{transition:opacity .3s ease}.fade-enter-from[data-v-94fffbd3],.fade-leave-to[data-v-94fffbd3]{opacity:0}.search-overlay[data-v-3abc7c89]{--overlay-subtle: rgba(255, 255, 255, .1);--overlay-border: rgba(255, 255, 255, .15);--overlay-hover: rgba(255, 255, 255, .2);--overlay-focus: rgba(255, 255, 255, .3);--panel-opacity: 70%;--panel-bg: color-mix(in srgb, var(--bg-colormap) var(--panel-opacity), transparent)}.search-overlay[data-v-3abc7c89]{position:fixed;inset:0;background:var(--bg-panel-colormap-light, rgba(0, 0, 0, .3));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;flex-direction:column}.search-container[data-v-3abc7c89]{display:flex;flex-direction:column;width:100%;max-width:600px;margin:0 auto;padding:var(--spacing-lg);padding-top:calc(env(safe-area-inset-top,0px) + var(--spacing-lg))}.search-bar[data-v-3abc7c89]{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--panel-bg);border:1px solid var(--overlay-border);border-radius:50px;padding:14px 20px;transition:border-color var(--transition-fast),background var(--transition-fast)}.search-bar[data-v-3abc7c89]:focus-within{border-color:var(--overlay-focus)}.search-icon[data-v-3abc7c89]{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.search-input[data-v-3abc7c89]{flex:1;background:none;border:none;color:var(--text-primary);font-size:16px;font-family:inherit;outline:none;min-width:0}.search-input[data-v-3abc7c89]::placeholder{color:var(--text-placeholder)}.clear-btn[data-v-3abc7c89]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--overlay-subtle);border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast),color var(--transition-fast)}.clear-btn[data-v-3abc7c89]:active{background:var(--overlay-hover);color:var(--text-secondary)}.clear-btn svg[data-v-3abc7c89]{width:16px;height:16px}.results-container[data-v-3abc7c89]{margin-top:var(--spacing-lg)}.results-groups[data-v-3abc7c89]{display:flex;flex-direction:column;gap:var(--spacing-md)}.results-group[data-v-3abc7c89]{display:flex;flex-direction:column}.results-group-title[data-v-3abc7c89]{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:0 var(--spacing-sm);margin-bottom:var(--spacing-xs)}.results-list[data-v-3abc7c89]{display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--overlay-border);border-radius:20px;overflow:hidden}.result-item[data-v-3abc7c89]{display:flex;flex-direction:column;gap:4px;padding:12px 20px;background:transparent;border:none;border-bottom:1px solid var(--overlay-subtle);text-align:left;cursor:pointer;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.result-item[data-v-3abc7c89]:last-child{border-bottom:none}.result-item[data-v-3abc7c89]:active{background:var(--overlay-subtle)}.result-header[data-v-3abc7c89]{display:flex;align-items:flex-start;gap:10px}.result-icon[data-v-3abc7c89]{width:18px;height:18px;flex-shrink:0;color:var(--text-muted);margin-top:1px}.result-title[data-v-3abc7c89]{font-size:14px;font-weight:500;color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-meta[data-v-3abc7c89]{display:flex;align-items:center;gap:var(--spacing-sm);font-size:12px;color:var(--text-muted)}.result-hint[data-v-3abc7c89]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-citations[data-v-3abc7c89]{flex-shrink:0;color:var(--text-dim)}.results-status[data-v-3abc7c89]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl) var(--spacing-lg);color:var(--text-muted);font-size:15px}.results-status--hint[data-v-3abc7c89]{color:var(--text-dim)}.spinner[data-v-3abc7c89]{width:20px;height:20px;border:2px solid var(--overlay-hover);border-top-color:var(--text-muted);border-radius:50%;animation:spin-3abc7c89 .8s linear infinite}.building-container[data-v-3abc7c89]{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.building-card[data-v-3abc7c89]{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);background:var(--panel-bg);border:1px solid var(--overlay-border);border-radius:24px;padding:var(--spacing-xl) var(--spacing-xl);max-width:320px;width:100%;text-align:center}.building-spinner[data-v-3abc7c89]{width:56px;height:56px;border:3px solid var(--overlay-hover);border-top-color:var(--progress-fill);border-radius:50%;animation:spin-3abc7c89 1s linear infinite}.building-title[data-v-3abc7c89]{font-size:18px;font-weight:600;color:var(--text-primary)}.building-paper[data-v-3abc7c89]{font-size:14px;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.building-progress[data-v-3abc7c89]{width:100%;display:flex;flex-direction:column;gap:var(--spacing-sm)}.progress-bar[data-v-3abc7c89]{height:6px;background:var(--progress-bg);border-radius:3px;overflow:hidden}.progress-fill[data-v-3abc7c89]{height:100%;background:var(--progress-fill);border-radius:3px;transition:width var(--transition-smooth);box-shadow:var(--shadow-glow-green)}.progress-message[data-v-3abc7c89]{font-size:13px;color:var(--text-dim)}@keyframes spin-3abc7c89{to{transform:rotate(360deg)}}.overlay-enter-active[data-v-3abc7c89],.overlay-leave-active[data-v-3abc7c89]{transition:opacity .2s ease}.overlay-enter-from[data-v-3abc7c89],.overlay-leave-to[data-v-3abc7c89]{opacity:0}.search-overlay.light-mode[data-v-3abc7c89]{--overlay-subtle: rgba(0, 0, 0, .06);--overlay-border: rgba(0, 0, 0, .12);--overlay-hover: rgba(0, 0, 0, .1);--overlay-focus: rgba(0, 0, 0, .2);--panel-bg: rgba(255, 255, 255, .85);--text-primary: #1a1a1a;--text-secondary: rgba(0, 0, 0, .85);--text-muted: rgba(0, 0, 0, .65);--text-dim: rgba(0, 0, 0, .55);--text-placeholder: rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{width:100%;height:100%;position:relative;display:flex;flex-direction:column;transition:background var(--transition-smooth)}.app.landscape{flex-direction:row}.canvas-area{position:relative;flex:1;min-height:0;min-width:0;overflow:hidden}.mobile-side-area{flex-shrink:0;display:flex;flex-direction:column;transition:height var(--transition-smooth);padding-bottom:env(safe-area-inset-bottom)}.mobile-side-area.landscape{flex-direction:row;order:-1;transition:width var(--transition-smooth);padding-bottom:0;padding-left:env(safe-area-inset-left)}.mobile-side-area.dragging{transition:none}.author-confirm-overlay{position:fixed;inset:0;background:#0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.author-confirm-modal{border-radius:16px;padding:var(--spacing-lg);max-width:320px;width:100%;border:1px solid var(--border-light);box-shadow:0 8px 32px #0000004d}.author-confirm-text{color:var(--text-primary);font-size:var(--font-size-base);text-align:center;margin-bottom:var(--spacing-lg);line-height:1.5}.author-confirm-text strong{color:var(--text-primary)}.author-confirm-buttons{display:flex;gap:var(--spacing-sm)}.confirm-btn{flex:1;padding:12px 16px;border-radius:10px;border:1px solid var(--border-light);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.confirm-btn.cancel{background:var(--bg-panel-solid);color:var(--text-secondary)}.confirm-btn.cancel:hover{background:var(--bg-item-hover)}.confirm-btn.confirm{background:var(--accent-green);color:#000;border-color:var(--accent-green)}.confirm-btn.confirm:hover{filter:brightness(1.1)}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.app.light-mode{--text-primary: #1a1a1a;--text-secondary: rgba(0, 0, 0, .85);--text-tertiary: rgba(0, 0, 0, .75);--text-muted: rgba(0, 0, 0, .65);--text-dim: rgba(0, 0, 0, .55);--text-faint: rgba(0, 0, 0, .45);--text-placeholder: rgba(0, 0, 0, .5);--bg-panel: rgba(255, 255, 255, .7);--bg-panel-solid: rgba(245, 245, 240, .95);--bg-panel-colormap: rgba(255, 255, 255, .85);--bg-panel-colormap-light: rgba(255, 255, 255, .7);--bg-input: rgba(0, 0, 0, .06);--bg-input-focus: rgba(0, 0, 0, .1);--bg-item: rgba(0, 0, 0, .04);--bg-item-hover: rgba(0, 0, 0, .08);--bg-item-active: rgba(0, 0, 0, .12);--border-subtle: rgba(0, 0, 0, .06);--border-light: rgba(0, 0, 0, .1);--border-medium: rgba(0, 0, 0, .15);--border-strong: rgba(0, 0, 0, .25);--border-focus: rgba(0, 0, 0, .4);--panel-bg: rgba(255, 255, 255, .7);--panel-border: rgba(0, 0, 0, .1);--btn-bg: rgba(0, 0, 0, .06);--btn-bg-hover: rgba(0, 0, 0, .1);--btn-bg-active: rgba(0, 0, 0, .14);--btn-border: rgba(0, 0, 0, .12);--btn-border-hover: rgba(0, 0, 0, .2);--shadow-panel: 0 4px 6px rgba(0, 0, 0, .1), 0 1px 3px rgba(0, 0, 0, .08)}
