.bottom-nav[data-v-8fdf7ab0]{flex-shrink:0;display:flex;background:var(--surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:.5px solid var(--border);padding:8px 0;padding-bottom:env(safe-area-inset-bottom,8px);position:relative;z-index:600}.nav-item[data-v-8fdf7ab0]{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:transparent;border:none;color:var(--text3);font-family:inherit;font-size:10px;cursor:pointer;padding:6px 0;transition:color .2s;font-weight:500;text-decoration:none}.nav-item .nav-icon[data-v-8fdf7ab0]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;line-height:1}.nav-item.active[data-v-8fdf7ab0],.nav-item.active .nav-icon[data-v-8fdf7ab0]{color:var(--primary)}.side-nav[data-v-463ea43b]{width:64px;height:100vh;background:var(--bg);border-right:.5px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;z-index:100}.nav-items[data-v-463ea43b]{display:flex;flex-direction:column;align-items:center;padding:16px 0 12px;gap:4px;flex:1;justify-content:flex-start}.nav-item[data-v-463ea43b]{width:48px;padding:10px 0;border-radius:8px;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:background .15s,color .15s;position:relative;user-select:none}.nav-item[data-v-463ea43b]:hover{background:var(--surface2)}.nav-item.active[data-v-463ea43b]{background:var(--surface3)}.nav-item.active[data-v-463ea43b]:before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--primary);border-radius:3px}.nav-icon[data-v-463ea43b]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--text3);transition:color .15s}.nav-item.active .nav-icon[data-v-463ea43b]{color:var(--primary)}.nav-item:hover .nav-icon[data-v-463ea43b]{color:var(--text2)}.header-bar[data-v-8d5117b1]{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px;background:var(--surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:.5px solid var(--border);flex-shrink:0;position:relative;z-index:1000}.header-left[data-v-8d5117b1]{display:flex;align-items:center;gap:8px;min-width:0}.session-title-label[data-v-8d5117b1]{font-size:14px;font-weight:600;color:var(--text);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-right[data-v-8d5117b1]{display:flex;align-items:center;gap:14px;flex-shrink:0}.header-group[data-v-8d5117b1]{display:flex;align-items:center;gap:8px}.header-group+.header-group[data-v-8d5117b1]{padding-left:14px;border-left:.5px solid var(--border)}.header-btn[data-v-8d5117b1]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text2);cursor:pointer;transition:background-color .2s,color .2s;position:relative}.header-btn[data-v-8d5117b1]:hover{background:var(--surface3);color:var(--text)}.header-btn[data-v-8d5117b1]:after{content:"";position:absolute;inset:-6px;border-radius:50%}.header-btn.active[data-v-8d5117b1]{background:var(--primary);color:#fff}.conn-status[data-v-8d5117b1]{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.conn-status.connected[data-v-8d5117b1]{background:var(--accent);box-shadow:0 0 4px var(--accent);animation:connPulse-8d5117b1 2s ease-in-out infinite}.conn-status.partial[data-v-8d5117b1]{background:var(--accent3);box-shadow:0 0 4px var(--accent3)}.conn-status.disconnected[data-v-8d5117b1]{background:var(--danger);box-shadow:0 0 4px var(--danger)}@keyframes connPulse-8d5117b1{0%,to{opacity:1}50%{opacity:.5}}.notif-badge[data-v-8d5117b1]{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center;border-radius:8px}.status-dot[data-v-8d5117b1]{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.busy[data-v-8d5117b1]{background:var(--accent3);animation:statusPulse-8d5117b1 1.5s infinite}@keyframes statusPulse-8d5117b1{0%,to{opacity:1}50%{opacity:.4}}.token-usage-wrap[data-v-8d5117b1]{position:relative}.token-trigger[data-v-8d5117b1]{display:flex;align-items:center;gap:4px;color:var(--text2);background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:12px;transition:background .15s,color .15s}.token-trigger[data-v-8d5117b1]:hover{background:var(--surface2);color:var(--text)}.token-trigger[data-v-8d5117b1]:active{opacity:.7}.token-detail[data-v-8d5117b1]{position:absolute;top:calc(100% + 6px);right:0;z-index:100;min-width:180px;background:var(--surface);border:.5px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 4px 16px #0000004d}.token-detail-row[data-v-8d5117b1]{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:12px}.token-detail-row+.token-detail-row[data-v-8d5117b1]{border-top:.5px solid var(--border)}.token-detail-label[data-v-8d5117b1]{color:var(--text3)}.token-detail-value[data-v-8d5117b1]{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.compact-btn[data-v-8d5117b1]{display:block;width:100%;margin-top:8px;padding:6px 12px;border:none;border-radius:6px;background:var(--primary);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.compact-btn[data-v-8d5117b1]:active{opacity:.7}.compact-btn[data-v-8d5117b1]:disabled{opacity:.5;cursor:not-allowed}.session-id-copy[data-v-8d5117b1]{display:flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:var(--text2);padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.session-id-copy[data-v-8d5117b1]:hover{color:var(--text);background:var(--surface2)}.session-id-copy code[data-v-8d5117b1]{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:10px;background:transparent;padding:0}.copied-check[data-v-8d5117b1]{display:flex;align-items:center}.login-close[data-v-f62a5970]{position:absolute;top:14px;right:20px;z-index:10;background:transparent;border:none;color:var(--text3);font-size:22px;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s,color .15s}.login-close[data-v-f62a5970]:hover{background:var(--surface2);color:var(--text)}.login-skip[data-v-f62a5970]{display:block;margin:12px auto 0;background:transparent;border:none;color:var(--text3);font-size:13px;font-family:inherit;cursor:pointer;padding:6px 14px;border-radius:8px;transition:color .15s,background .15s}.login-skip[data-v-f62a5970]:hover{color:var(--text2);background:var(--surface2)}.loading-spinner[data-v-ca77877c]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--primary-light)}.loading-spinner.sm[data-v-ca77877c]{font-size:16px}.loading-spinner.md[data-v-ca77877c]{font-size:24px}.loading-spinner.lg[data-v-ca77877c]{font-size:36px}.loading-spinner__text[data-v-ca77877c]{font-size:13px;color:var(--text3);font-weight:500}.detail-overlay[data-v-ceca3b2f]{position:fixed;inset:0;background:var(--overlay-bg, rgba(0, 0, 0, .88));backdrop-filter:blur(14px);display:none;flex-direction:column;z-index:1200}.detail-overlay.open[data-v-ceca3b2f]{display:flex}.detail-header[data-v-ceca3b2f]{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;flex-shrink:0;background:var(--surface)}.dt-title[data-v-ceca3b2f]{font-size:15px;font-weight:700;color:var(--text)}.dt-close[data-v-ceca3b2f]{background:transparent;border:none;color:var(--text3);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:6px}.dt-close[data-v-ceca3b2f]:hover{background:var(--surface2)}.detail-body[data-v-ceca3b2f]{flex:1;overflow-y:auto;padding:14px 20px 90px}.notification-center[data-v-ceca3b2f]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;min-height:30vh}.notification-status-text[data-v-ceca3b2f]{font-size:14px;color:var(--text2)}.notification-count[data-v-ceca3b2f]{font-size:11px;color:var(--text3);margin-bottom:10px}.notification-item[data-v-ceca3b2f]{background:var(--surface2);border-radius:10px;padding:12px 14px;margin-bottom:8px;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.notification-item__content[data-v-ceca3b2f]{flex:1;min-width:0}.notification-item__title[data-v-ceca3b2f]{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.notification-item__body[data-v-ceca3b2f]{font-size:12px;color:var(--text2);line-height:1.5;word-break:break-word;white-space:pre-wrap}.notification-item__time[data-v-ceca3b2f]{font-size:10px;color:var(--text3);margin-top:6px}.notification-item__delete[data-v-ceca3b2f]{flex-shrink:0;background:transparent;border:none;color:var(--text3);font-size:18px;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.notification-item__delete[data-v-ceca3b2f]:hover{color:#ff6b6b;background:var(--surface3)}.splash-overlay[data-v-288e00f2]{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}.splash-spinner[data-v-288e00f2]{width:40px;height:40px;border:3px solid rgba(108,92,231,.2);border-top-color:#6c5ce7;border-radius:50%;animation:splashSpin-288e00f2 .8s linear infinite;margin-bottom:20px}@keyframes splashSpin-288e00f2{to{transform:rotate(360deg)}}.splash-text[data-v-288e00f2]{font-size:14px;color:#9898b0;font-family:Noto Sans SC,sans-serif}.splash-enter-active[data-v-288e00f2],.splash-leave-active[data-v-288e00f2]{transition:opacity .3s ease-out}.splash-enter-from[data-v-288e00f2],.splash-leave-to[data-v-288e00f2]{opacity:0}.app[data-v-bb7d6ccf]{display:flex;flex-direction:column;height:100%}.app-content[data-v-bb7d6ccf]{flex:1;overflow:hidden;min-height:0;position:relative}.floating-btn[data-v-bb7d6ccf]{position:fixed;right:12px;z-index:9999;width:36px;height:36px;border-radius:50%;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;border:1px solid;transition:all .15s}.floating-btn[data-v-bb7d6ccf]:active{transform:scale(.95)}.floating-btn[data-v-bb7d6ccf]:after{content:"";position:absolute;inset:-4px;border-radius:50%}.floating-btn--ws[data-v-bb7d6ccf]{bottom:228px;background:#6c5ce74d;border-color:#6c5ce733;color:var(--primary-light)}.floating-btn--ws[data-v-bb7d6ccf]:active{background:#6c5ce780}.floating-btn--notif[data-v-bb7d6ccf]{bottom:180px;background:#fd79a84d;border-color:#fd79a833;color:var(--accent2)}.floating-btn--notif[data-v-bb7d6ccf]:active{background:#fd79a880}.ws-log-panel[data-v-bb7d6ccf]{position:fixed;bottom:268px;right:12px;width:300px;max-height:300px;background:#16161ff2;backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;z-index:9998;display:flex;flex-direction:column;overflow:hidden}.ws-log-panel__header[data-v-bb7d6ccf]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.ws-log-panel__title[data-v-bb7d6ccf]{font-size:11px;font-weight:600;color:var(--text2)}.ws-log-panel__close[data-v-bb7d6ccf]{background:transparent;border:none;color:var(--text3);font-size:12px;cursor:pointer;padding:2px 4px}.ws-log-panel__body[data-v-bb7d6ccf]{flex:1;overflow-y:auto;padding:8px;max-height:260px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px}.ws-log-empty[data-v-bb7d6ccf]{text-align:center;color:var(--text3);padding:20px 0;font-family:inherit}.ws-log-item[data-v-bb7d6ccf]{padding:3px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;word-break:break-all}.ws-log-item__time[data-v-bb7d6ccf]{color:var(--text3);flex-shrink:0}.ws-log-item__msg[data-v-bb7d6ccf]{color:var(--text2)}.ws-panel-enter-active[data-v-bb7d6ccf],.ws-panel-leave-active[data-v-bb7d6ccf]{transition:opacity .15s ease}.ws-panel-enter-from[data-v-bb7d6ccf],.ws-panel-leave-to[data-v-bb7d6ccf]{opacity:0}.pc-container[data-v-bb7d6ccf]{display:flex;height:100%;overflow:hidden}.pc-content[data-v-bb7d6ccf]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.pc-main[data-v-bb7d6ccf]{flex:1;overflow:hidden;position:relative}:root{--bg: #000000;--surface: #1c1c1e;--surface2: #2c2c2e;--surface3: #3a3a3c;--primary: #0a84ff;--primary-light: #409cff;--accent: #30d158;--accent2: #ff375f;--accent3: #ff9f0a;--text: #f5f5f7;--text2: #a8a8ad;--text3: #949499;--border: rgba(255, 255, 255, .1);--radius: 16px;--radius-sm: 12px;--danger: #ff453a}:root,[data-theme=apple]{--bg: #000000;--surface: #1c1c1e;--surface2: #2c2c2e;--surface3: #3a3a3c;--primary: #0a84ff;--primary-light: #409cff;--accent: #30d158;--accent2: #ff375f;--accent3: #ff9f0a;--text: #f5f5f7;--text2: #a8a8ad;--text3: #949499;--border: rgba(255, 255, 255, .1);--overlay-bg: rgba(10, 10, 14, .88);--radius: 16px;--radius-sm: 12px;--danger: #ff453a}[data-theme=dark]{--bg: #0d0d14;--surface: #16161f;--surface2: #1e1e2a;--surface3: #282840;--primary: #6c5ce7;--primary-light: #a29bfe;--accent: #00cec9;--accent2: #fd79a8;--accent3: #fdcb6e;--text: #e8e8f0;--text2: #a6a6be;--text3: #8a8aa6;--border: rgba(255, 255, 255, .06);--overlay-bg: rgba(10, 10, 16, .88);--radius: 14px;--radius-sm: 10px;--danger: #ff6b6b}[data-theme=light]{--bg: #f5f7fa;--surface: #ffffff;--surface2: #f0f0f5;--surface3: #e0e0e8;--primary: #6c5ce7;--primary-light: #8b7cf7;--accent: #00a8a5;--accent2: #e8658f;--accent3: #e8a840;--text: #2d2d3a;--text2: #5c5c74;--text3: #6f6f87;--border: rgba(0, 0, 0, .08);--overlay-bg: rgba(245, 247, 250, .92);--radius: 14px;--radius-sm: 10px;--danger: #ff6b6b}[data-theme=glacier]{--bg: #e8f4fc;--surface: #ffffff;--surface2: #eef2f6;--surface3: #dde8f0;--primary: #5b8ec4;--primary-light: #89CFF0;--accent: #00b4d8;--accent2: #f0a0b8;--accent3: #f0c860;--text: #2d3a4a;--text2: #566a7c;--text3: #6f8398;--border: rgba(0, 0, 0, .08);--overlay-bg: rgba(232, 244, 252, .92);--radius: 14px;--radius-sm: 10px;--danger: #ff6b6b}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:focus,:focus-visible{outline:none}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,Noto Sans SC,sans-serif;background:var(--bg);color:var(--text);margin:0;padding:0;overflow:hidden;height:100%;-webkit-font-smoothing:antialiased}.app{width:100%;height:100dvh;background:var(--bg);display:flex;flex-direction:column;position:relative;margin:0 auto;overflow:hidden;z-index:1}@media(max-width:767px){.app{max-width:480px}}@media(min-width:481px)and (max-width:767px){body{background:var(--bg)}.app{border-left:1px solid var(--border);border-right:1px solid var(--border);box-shadow:0 0 40px #00000080}}@media(min-width:768px){.app{max-width:unset;margin:0;border:none;box-shadow:none}body{background:var(--bg)}}.ripple{position:absolute;border-radius:50%;background:#ffffff26;transform:scale(0);animation:rippleAnim .5s ease-out;pointer-events:none}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface2) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.num-scroll{display:inline-block;font-variant-numeric:tabular-nums}.page{position:absolute;inset:0;overflow-y:auto;padding:16px 20px 12px;opacity:0;transform:translateY(8px);transition:all .3s ease;pointer-events:none}.page.active{opacity:1;transform:translateY(0);pointer-events:all}#page-chat{padding-bottom:12px}#page-files,#page-reports{padding-bottom:70px}.page-slide-left{animation:slideLeft .3s ease}.page-slide-right{animation:slideRight .3s ease}.content{flex:1;min-height:0;position:relative}.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 14px;margin:4px 0}.typing-indicator .dot{width:6px;height:6px;border-radius:50%;background:var(--text3);animation:typingPulse 1.2s ease-in-out infinite}.typing-indicator .dot:nth-child(2){animation-delay:.2s}.typing-indicator .dot:nth-child(3){animation-delay:.4s}.hierarchy-demo h1{font-size:20px;font-weight:800;letter-spacing:-.3px;margin-bottom:4px}.hierarchy-demo h2{font-size:15px;font-weight:700;color:var(--text2);margin-bottom:8px}.hierarchy-demo .stat-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.6px}.md-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.md-content th,.md-content td{border:1px solid var(--border);padding:6px 10px;text-align:left}.md-content th{background:var(--surface2);color:var(--text2);font-weight:600}.md-content td{color:var(--text)}.md-content pre{background:var(--surface2);padding:12px;border-radius:8px;font-size:11px;line-height:1.5;overflow-x:auto;margin:8px 0}.md-content code{background:var(--surface2);padding:2px 6px;border-radius:4px;font-size:11px;color:var(--accent2)}.md-content pre code{background:none;padding:0;color:var(--text)}.md-content .callout{margin:10px 0;border-radius:10px;border-left:4px solid var(--primary);background:var(--surface2);overflow:hidden}.md-content .callout-title{padding:8px 12px;font-size:12px;font-weight:600;color:var(--text2);background:var(--surface3)}.md-content .callout-body{padding:8px 12px}.md-content .callout-body p{margin:4px 0;font-size:12px;color:var(--text)}.md-content .callout-warning{border-left-color:#f39c12}.md-content .callout-tip{border-left-color:#2ecc71}.md-content .callout-abstract{border-left-color:#3498db}.md-content .callout-danger{border-left-color:#e74c3c}.md-content .callout-success{border-left-color:#27ae60}.md-content .callout-question{border-left-color:#9b59b6}.md-content blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--primary-light);color:var(--text2);font-size:12px;background:var(--surface2);border-radius:0 8px 8px 0}.md-content hr{margin:12px 0;border:none;border-top:1px solid var(--border)}.md-content h1{font-size:18px;color:var(--text);margin:16px 0 8px}.md-content h2{font-size:15px;color:var(--text);margin:14px 0 6px}.md-content h3{font-size:13px;color:var(--text2);margin:12px 0 4px}.md-content p{margin:4px 0;font-size:12px;color:var(--text);line-height:1.6}.md-content li{font-size:12px;color:var(--text);margin:2px 0 2px 16px}.md-content .wiki-link{color:var(--primary-light);text-decoration:underline;cursor:pointer;text-decoration-style:dotted}.md-content strong{color:var(--text)}.md-content .svg-diagram{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin:10px 0;display:flex;align-items:center;justify-content:center;overflow-x:auto;min-height:60px}.md-content .svg-diagram svg{max-width:100%;max-height:66vh;width:auto;height:auto}@media(max-width:767px){.md-content .svg-diagram{padding:8px}.md-content .svg-diagram svg{max-height:60vh}}.md-content .mermaid-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin:10px 0;display:flex;align-items:center;justify-content:center;overflow-x:auto;min-height:60px}.md-content .mermaid-block svg{max-width:100%;max-height:66vh;width:auto;height:auto}@media(max-width:767px){.md-content .mermaid-block{padding:8px}.md-content .mermaid-block svg{max-height:60vh}}.md-content .circuitjs-block{position:relative;height:420px;margin:10px 0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:#0d1117}.md-content .circuitjs-block iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.md-content .circuitjs-block .circuitjs-expand-btn{position:absolute;top:8px;right:8px;z-index:2;width:32px;height:32px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,transform .15s ease;box-shadow:0 1px 4px #0000004d}.md-content .circuitjs-block .circuitjs-expand-btn:hover{background:#000c;transform:scale(1.08)}.md-content .circuitjs-block .circuitjs-expand-btn:after{content:"";position:absolute;inset:-6px;border-radius:50%}@media(max-width:767px){.md-content .circuitjs-block{height:320px}}.md-content .svg-diagram,.md-content .mermaid-block,.md-content .circuitjs-block{cursor:zoom-in;transition:border-color .15s ease}@media(hover:hover){.md-content .svg-diagram:hover,.md-content .mermaid-block:hover,.md-content .circuitjs-block:hover{border-color:var(--accent)}}.preview-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:340px;max-height:80vh;overflow-y:auto;padding:20px}.preview-card .preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.preview-card .preview-title{font-size:14px;font-weight:600}.preview-card .md-content{font-size:13px;line-height:1.7;color:var(--text2)}.preview-card .md-content h1{font-size:18px;color:var(--text);margin:12px 0 8px}.preview-card .md-content h2{font-size:15px;color:var(--text);margin:10px 0 6px}.preview-card .md-content code{background:var(--surface2);padding:2px 6px;border-radius:4px;font-size:12px}.preview-card .md-content pre{background:var(--surface2);padding:10px;border-radius:8px;overflow-x:auto;margin:8px 0}.preview-card .md-content pre code{background:none;padding:0}.preview-overlay .preview-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.file-tree{list-style:none}.file-children{list-style:none;padding-left:20px}.jsonl-list{margin-bottom:12px}.jsonl-summary{font-size:11px;color:var(--text3);padding:0 0 8px}.jsonl-item{background:var(--surface);border-radius:8px;margin-bottom:6px;overflow:hidden;border:1px solid var(--border)}.jsonl-item-header{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;font-size:12px;transition:background .15s}.jsonl-item-header:active{background:var(--surface2)}.jsonl-expand{color:var(--text3);font-size:10px;transition:transform .2s;flex-shrink:0;width:10px;text-align:center}.jsonl-expand.open{transform:rotate(90deg)}.jsonl-idx{color:var(--text3);font-family:Plus Jakarta Sans,monospace;font-size:10px;min-width:24px}.jsonl-tag{display:inline-block;font-size:9px;padding:1px 6px;border-radius:3px;background:var(--surface3);color:var(--text2);margin-right:4px;flex-shrink:0}.jsonl-tag.type-voice{background:#00cec91f;color:var(--accent)}.jsonl-tag.type-sensor{background:#0a84ff1f;color:var(--primary-light)}.jsonl-tag.type-app{background:#fd79a81f;color:var(--accent2)}.jsonl-tag.type-media{background:#74b9ff1f;color:var(--primary-light)}.jsonl-tag.type-notify{background:#fdcb6e1f;color:var(--accent3)}.jsonl-tag.type-input{background:#a29bfe1f;color:var(--primary-light)}.jsonl-tag.type-screen{background:#55efc41f;color:var(--accent)}.jsonl-preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2);font-size:12px}.jsonl-time{color:var(--text3);font-size:10px;flex-shrink:0;font-family:Plus Jakarta Sans,monospace}.jsonl-item-body{background:var(--surface2);border-top:1px solid var(--border);padding:10px 12px}.jsonl-item-body pre{background:none;padding:0;margin:0;font-size:10px;line-height:1.5;overflow-x:auto;max-height:300px;overflow-y:auto}.jsonl-item-body code{background:none;padding:0;color:var(--text2);white-space:pre}.jsonl-load-more{text-align:center;padding:10px;color:var(--primary-light);font-size:12px;cursor:pointer;background:var(--surface);border-radius:8px;border:1px dashed var(--border);transition:background .15s}.jsonl-load-more:active{background:var(--surface2)}.jsonl-item.jsonl-highlight{border-left:3px solid var(--accent);background:#00cec90a}.jsonl-toolbar{margin-top:16px;padding:14px;background:var(--surface2);border-radius:10px;border:1px solid var(--border)}.jsonl-toolbar-title{font-size:12px;font-weight:600;color:var(--text2);margin-bottom:10px;display:flex;align-items:center;gap:6px}.jsonl-toolbar-row{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.jsonl-toolbar-row:last-child{margin-bottom:0}.jsonl-toolbar-input{flex:1;min-width:80px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:7px 10px;color:var(--text);font-family:inherit;font-size:12px;outline:none}.jsonl-toolbar-input:focus{border-color:var(--primary)}.jsonl-toolbar-input::placeholder{color:var(--text3)}.jsonl-time-input{flex:none;width:72px;text-align:center;font-family:Plus Jakarta Sans,monospace}.jsonl-toolbar-sep{color:var(--text3);font-size:12px}.jsonl-toolbar-btn{padding:7px 12px;border-radius:6px;border:none;background:var(--primary);color:#fff;font-size:11px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:4px;flex-shrink:0;transition:background .15s}.jsonl-toolbar-btn:active{background:var(--primary-light)}.jsonl-toolbar-btn-wide{flex:1;justify-content:center;background:var(--surface3);color:var(--text)}.jsonl-toolbar-btn-wide:active{background:var(--primary);color:#fff}.jsonl-toolbar-label{font-size:11px;color:var(--text3);flex-shrink:0}.search-box{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;display:flex;align-items:center;gap:8px;margin-bottom:12px}.search-box input{flex:1;background:transparent;border:none;color:var(--text);font-family:inherit;font-size:13px;outline:none}.search-box input::placeholder{color:var(--text3)}.setting-group{margin-bottom:20px}.setting-group .group-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-left:4px}.setting-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;background:var(--surface);border-radius:var(--radius-sm);margin-bottom:6px}.setting-row .left{display:flex;flex-direction:column;gap:2px}.setting-row .left .label{font-size:14px;font-weight:500}.setting-row .left .desc{font-size:11px;color:var(--text3)}.setting-row .right{color:var(--text2);font-size:14px}.toggle{width:44px;height:24px;background:var(--surface3);border-radius:12px;cursor:pointer;position:relative;transition:background .2s;border:none;padding:0}.toggle.on{background:var(--primary)}.toggle .knob{width:20px;height:20px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .2s}.toggle.on .knob{transform:translate(20px)}.vp-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface);border-radius:var(--radius-sm);margin-bottom:6px}.vp-name{font-size:14px;font-weight:500;color:var(--text)}.vp-actions{display:flex;gap:6px}.vp-btn{font-size:11px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;font-family:inherit;transition:all .15s}.vp-btn:active{transform:scale(.95)}.vp-btn.test{color:var(--accent);border-color:#00cec94d}.vp-btn.play{color:var(--primary-light);border-color:#a29bfe4d}.upload-log{background:var(--surface);border-radius:var(--radius-sm);overflow:hidden}.ul-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;transition:all .2s}.ul-item:last-child{border:none}.ul-tag{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--surface2);color:var(--text3);font-weight:600;font-family:Plus Jakarta Sans,sans-serif}.ul-item.green .ul-tag{background:#00cec91a;color:var(--accent)}.sensor-data{width:100%;margin-top:8px;padding-top:6px;border-top:1px solid var(--border);display:none;font-size:12px;color:var(--text);gap:8px;flex-wrap:wrap}.sensor-data.show{display:flex;animation:sdFadeIn .25s ease}.sensor-data .sd-item{display:flex;align-items:center;gap:4px}.sensor-data .sd-val{font-weight:600;font-family:Plus Jakarta Sans,sans-serif}.sensor-data .sd-label{color:var(--text3);font-size:10px}.sd-hr .sd-val{color:var(--danger)}.sd-steps .sd-val{color:var(--accent)}.sd-spo2 .sd-val{color:var(--primary-light)}.sd-stress .sd-val{color:var(--accent3)}.sd-gps .sd-val{color:var(--primary-light)}.sd-batt .sd-val{color:var(--accent3)}.sd-audio .sd-val{color:var(--primary-light)}.sd-app .sd-val{color:var(--accent2)}.sd-notif .sd-val{color:var(--primary-light)}.drag-insert{outline:2px dashed var(--primary-light);outline-offset:-2px;border-radius:var(--radius-sm)}.gps-preview-wrap{display:flex;flex-direction:column;gap:4px}.page-content{width:100%}@media(hover:hover){.send-btn:hover,.file-btn:hover,.header-btn:hover,.settings-btn:hover,.edit-btn:hover{opacity:.85;transform:scale(1.05);transition:all .15s ease}.nav-item:hover,.session-item:hover,.file-item__row:hover{background:var(--surface2)}.db-block:hover{border-color:var(--primary-light);transition:border-color .15s ease}.report-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003;transition:all .2s ease}.md-content a:hover{text-decoration:underline}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes rippleAnim{to{transform:scale(3);opacity:0}}@keyframes sdFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{transform:translate(30px);opacity:0}to{transform:none;opacity:1}}@keyframes slideRight{0%{transform:translate(-30px);opacity:0}to{transform:none;opacity:1}}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes typingPulse{0%,60%,to{opacity:.3;transform:scale(1)}30%{opacity:1;transform:scale(1.2)}}@keyframes micPulse{0%,to{box-shadow:0 0 #fd79a880}50%{box-shadow:0 0 0 8px #fd79a800}}@keyframes blink{50%{opacity:0}}.auth-overlay{--danger: #ff453a;position:fixed;inset:0;background:#000000e0;backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;z-index:700;padding:20px;outline:none}.auth-overlay-enter-active,.auth-overlay-leave-active{transition:opacity .3s ease,transform .3s ease}.auth-overlay-enter-from,.auth-overlay-leave-to{opacity:0;transform:scale(.95)}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px}.auth-title{text-align:center;font-size:20px;font-weight:700;color:var(--text);margin:0 0 28px;font-family:Plus Jakarta Sans,sans-serif}.auth-title i{color:var(--primary);margin-right:6px}.auth-subtitle{text-align:center;font-size:13px;color:var(--text2);margin:-16px 0 24px}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:13px;font-weight:600;color:var(--text2)}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:14px;color:var(--text3);font-size:14px;pointer-events:none;z-index:1}.auth-input-wrap input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px 12px 40px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s}.auth-input-wrap.has-toggle input{padding-right:42px}.auth-input-wrap input::placeholder{color:var(--text3)}.auth-input-wrap input:focus{border-color:var(--primary)}.auth-input-wrap input:disabled{opacity:.5;cursor:not-allowed}.auth-eye{position:absolute;right:6px;background:transparent;border:none;color:var(--text3);cursor:pointer;padding:6px 8px;font-size:14px;border-radius:6px;transition:color .15s,background .15s}.auth-eye:hover{color:var(--text);background:var(--surface3)}.auth-error{background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--radius-sm);padding:10px 14px;color:var(--danger);font-size:13px;display:flex;align-items:center;gap:8px;line-height:1.4}.error-slide-enter-active,.error-slide-leave-active{transition:all .3s ease;overflow:hidden}.error-slide-enter-from,.error-slide-leave-to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-top:-18px}.error-slide-enter-to,.error-slide-leave-from{max-height:80px}.auth-btn{width:100%;background:var(--primary);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,opacity .15s}.auth-btn:hover{background:var(--primary-light)}.auth-btn:active{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn .fa-spin{font-size:14px}.auth-hint{text-align:center;font-size:11px;color:var(--text3);margin:16px 0 0;line-height:1.4}#app{height:100%}
