html,body,#root{height:100%;margin:0;padding:0;width:100%}#root{display:flex;flex-direction:row}:root{--bg-primary: #0f1117;--bg-secondary: #161b22;--bg-tertiary: #1c2432;--bg-elevated: rgba(22, 27, 34, .95);--panel-overlay: rgba(255, 255, 255, .03);--border-color: #2d3a52;--border-hover: #3d4a62;--text-primary: #e6edf3;--text-secondary: #b8c0d0;--text-muted: #7a8599;--accent-teal: #1B6B5C;--accent-teal-hover: #238B75;--accent-teal-bright: #2A9D8F;--accent-amber: #D4A574;--accent-amber-hover: #E5C4A0;--accent-amber-dark: #B8946A;--accent-green: #34d399;--accent-orange: #fbbf24;--accent-red: #ef4444;--accent-blue: var(--accent-teal);--accent-blue-hover: var(--accent-teal-hover);--accent-cyan: var(--accent-teal);--accent-purple: var(--accent-amber);--accent-pink: var(--accent-amber-dark);--accent-color: var(--accent-teal);--bg-color: var(--bg-tertiary);--surface-color: var(--bg-secondary);--text-color: var(--text-primary);--thinking-bg: #1c2432;--thinking-border: #2d3a52;--glow-strong: 0 8px 32px rgba(27, 107, 92, .08);--glow-soft: 0 8px 24px rgba(212, 165, 116, .04);--focus-ring: 0 0 0 3px rgba(27, 107, 92, .18);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Fira Code", "JetBrains Mono", Consolas, monospace;--z-base: 1;--z-sticky: 50;--z-dropdown: 100;--z-panel: 200;--z-drawer: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);height:100vh;display:flex;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;position:relative;overflow:hidden;letter-spacing:-.01em}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#8b94a84d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#8b94a880}.chat-view{display:none;flex-direction:column;flex:1;overflow:hidden}.chat-view.active{display:flex}.sidebar,.main-content{position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-shadow:var(--glow-soft)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:36px;height:36px;border-radius:12px;background:var(--accent-cyan);display:grid;place-items:center;color:#041524;font-weight:700;letter-spacing:.5px;box-shadow:var(--glow-strong)}.brand-title{font-weight:600;font-size:16px;color:#94a3b8;letter-spacing:.5px}.brand-subtitle{font-size:12px;color:var(--text-muted)}.mobile-brand{display:none}.top-actions{display:flex;align-items:center;gap:10px}.session-pill-top{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:12px;color:var(--text-muted)}.session-pill-top span{color:var(--accent-cyan);font-weight:600}.status-indicator-top{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:12px;color:var(--text-muted)}.status-indicator-top .status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.user-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:12px;color:var(--text-secondary)}.user-pill .user-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.auth-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;transition:all .2s ease}.auth-indicator.auth-ok{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:var(--accent-green)}.auth-indicator.auth-none{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--accent-orange)}.auth-indicator svg{width:14px;height:14px}.mode-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:500;transition:all .2s ease;margin-left:8px}.mode-indicator.mode-normal{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:var(--accent-green)}.mode-indicator.mode-incognito{background:#d4a5741a;border:1px solid rgba(212,165,116,.3);color:var(--accent-amber)}.mode-indicator.mode-anonymous{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--accent-orange)}.mode-indicator svg{width:14px;height:14px}.logout-btn-top:hover{border-color:#ef4444!important;color:#ef4444!important}.ghost-btn{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:10px;cursor:pointer;font-weight:600;transition:all .15s ease}.ghost-btn:hover{border-color:var(--accent-cyan);color:var(--text-primary);box-shadow:var(--glow-strong)}.unified-status{position:relative}.status-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:20px;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s ease}.status-btn:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.status-dot-unified{width:8px;height:8px;border-radius:50%;background:#6b7280}.status-dot-unified.online{background:var(--accent-green);box-shadow:0 0 6px var(--accent-green)}.status-dot-unified.auth{background:var(--accent-cyan);box-shadow:0 0 6px var(--accent-cyan)}.status-dot-unified.anon{background:#f59e0b;box-shadow:0 0 6px #f59e0b}.status-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:8px;min-width:180px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:1000;overflow:hidden}.status-dropdown.show{display:block}.status-dropdown-item{display:flex;justify-content:space-between;padding:10px 14px;font-size:12px}.dropdown-label{color:var(--text-muted)}.dropdown-value{color:var(--text-primary);font-weight:500}.status-dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.status-dropdown-action{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;text-align:left;transition:all .15s ease}.status-dropdown-action:hover{background:var(--bg-tertiary);color:var(--text-primary)}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.icon-btn:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.error-message{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.retry-btn{padding:6px 14px;background:var(--accent-orange);border:none;color:#000;border-radius:6px;cursor:pointer;font-weight:600;font-size:12px;transition:all .15s ease}.retry-btn:hover{background:#f59e0b;transform:scale(1.02)}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-weight:600}.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 10px var(--accent-green)}.pill.offline .dot{background:#ef4444;box-shadow:0 0 10px #ef4444}.preset-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:12px 20px 8px;display:none}.preset-card{text-align:left;padding:12px 14px;border-radius:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;box-shadow:inset 0 1px 0 var(--panel-overlay)}.preset-card:hover{border-color:var(--border-hover);color:var(--text-primary);transform:translateY(-1px);box-shadow:var(--glow-strong)}.preset-card.active{border-color:var(--accent-cyan);box-shadow:var(--glow-strong)}.preset-title{font-weight:700;color:var(--text-primary);letter-spacing:-.2px}.preset-desc{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.5}.session-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 20px 14px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;line-height:1.4}.chip strong{color:var(--text-primary)}.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.hotkey{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;font-size:11px}body.focus-mode .sidebar{width:0;min-width:0;opacity:0;pointer-events:none}body.focus-mode .chat-container{max-width:1100px}body.focus-mode .control-bar{box-shadow:var(--glow-strong)}.scratchpad{position:fixed;right:18px;bottom:90px;width:320px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--glow-strong);padding:12px;display:none;flex-direction:column;gap:8px;z-index:var(--z-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scratchpad.open{display:flex}.scratchpad-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.scratchpad textarea{width:100%;min-height:120px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);padding:10px;font-family:var(--font-mono);font-size:13px;resize:vertical}.scratchpad-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-muted)}.toggle-switch{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:18px;border-radius:999px;background:var(--border-color);position:relative;transition:background .15s}.toggle-switch input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-primary);border-radius:50%;transition:transform .15s}.toggle-switch input:checked{background:var(--accent-cyan)}.toggle-switch input:checked:after{transform:translate(14px)}.note-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:#38bdf81f;color:var(--text-primary);border:1px solid var(--border-color)}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:none;align-items:flex-start;justify-content:center;padding-top:10vh;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.palette-overlay.open{display:flex}.palette{width:min(720px,90vw);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--glow-strong);overflow:hidden}.palette input{width:100%;padding:14px;background:var(--bg-tertiary);border:none;color:var(--text-primary);font-size:14px;outline:none;border-bottom:1px solid var(--border-color)}.palette-list{max-height:320px;overflow-y:auto}.palette-item{padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .1s,color .1s}.palette-item:last-child{border-bottom:none}.palette-item:hover,.palette-item.active{background:var(--bg-tertiary);color:var(--text-primary)}.palette-item strong{color:var(--text-primary);font-weight:700}.palette-item small{display:block;color:var(--text-muted);margin-top:4px}.top-filters{display:flex;flex-wrap:wrap;gap:10px;padding:10px 20px 6px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.dropdown{position:relative;min-width:150px}.dropdown-trigger{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;font-weight:600;transition:all .15s ease}.dropdown-trigger small{color:var(--text-muted);font-weight:500}.dropdown-trigger:hover,.dropdown.open .dropdown-trigger{border-color:var(--accent-cyan);box-shadow:var(--glow-strong)}.dropdown-menu{position:absolute;top:44px;left:0;min-width:220px;max-height:60vh;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;padding:6px;display:none;flex-direction:column;gap:6px;z-index:60;box-shadow:var(--glow-soft)}.dropdown.open .dropdown-menu{display:flex}.dropdown-menu button{width:100%;text-align:left;padding:10px;border-radius:8px;border:1px solid transparent;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.dropdown-menu button:hover{color:var(--text-primary);border-color:var(--border-hover)}.dropdown-menu button.active{border-color:var(--accent-cyan);color:var(--text-primary);box-shadow:var(--glow-strong)}.task-panel{position:fixed;right:360px;bottom:90px;width:300px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:14px;padding:12px;box-shadow:var(--glow-strong);display:none;flex-direction:column;gap:8px;z-index:var(--z-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.task-panel.open{display:flex}.task-panel h4{margin:0;font-size:14px;color:var(--text-primary)}.task-input{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:13px}.task-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto}.task-item{border:1px solid var(--border-color);border-radius:10px;padding:8px 10px;background:var(--bg-tertiary)}.task-title{font-size:13px;color:var(--text-primary);margin-bottom:4px}.task-meta{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.task-actions{display:flex;gap:6px;margin-top:6px}.task-actions button{flex:1;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);padding:6px 8px;font-size:12px;cursor:pointer;transition:all .15s ease}.task-actions button:hover{color:var(--text-primary);border-color:var(--border-hover)}.sidebar{width:280px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--glow-soft);transition:width .3s ease,opacity .3s ease,min-width .3s ease}body.view-data .sidebar,body.view-training .sidebar{width:0;min-width:0;opacity:0;pointer-events:none;overflow:hidden;border-right:none}.sidebar-header{padding:16px;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px}.sidebar-header-top{display:flex;justify-content:flex-end;margin-bottom:4px}.new-chat-btn{width:100%;padding:12px 16px;background:var(--accent-cyan);border:1px solid var(--accent-cyan);border-radius:10px;color:#041524;font-family:var(--font-sans);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s ease}.chat-search{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-family:var(--font-sans);font-size:13px;outline:none;transition:all .15s ease}.chat-search::placeholder{color:var(--text-muted)}.chat-search:focus{border-color:var(--accent-blue);box-shadow:var(--focus-ring)}.new-chat-btn:hover{background:#1cb8d6;border-color:#1cb8d6;transform:translateY(-1px)}.new-chat-btn.disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.new-chat-btn svg{width:18px;height:18px}.chat-list{flex:1;overflow-y:auto;padding:12px}.chat-list-label{font-size:11px;text-transform:uppercase;color:var(--text-muted);padding:12px 8px 8px;letter-spacing:.8px;font-weight:600}.chat-item{padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px;display:flex;align-items:center;gap:10px;transition:all .15s ease;position:relative;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.chat-item:hover{background:var(--bg-tertiary)}.chat-item.active{background:var(--bg-elevated);border:1px solid var(--border-color)}.chat-item-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--text-secondary)}.chat-item.active .chat-item-text{color:var(--text-primary)}.chat-item-delete{opacity:0;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.chat-item:hover .chat-item-delete{opacity:1}.chat-item-delete:hover{color:#ef4444;background:#ef444426}.settings-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:6px;transition:all .2s ease}.settings-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:200;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-overlay.open{display:flex}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;width:90%;max-width:480px;max-height:80vh;overflow:hidden;animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:16px;font-weight:600}.modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px}.modal-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.modal-body{padding:20px;overflow-y:auto}.setting-group{margin-bottom:20px}.setting-group:last-child{margin-bottom:0}.setting-label{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:8px}.setting-label .badge{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg-tertiary);color:var(--text-muted)}.setting-input{width:100%;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:var(--font-mono);font-size:13px;transition:all .15s ease}.setting-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f626}.setting-input::placeholder{color:var(--text-muted)}.setting-hint{font-size:11px;color:var(--text-muted);margin-top:6px}.setting-hint a{color:var(--accent-blue);text-decoration:none}.setting-hint a:hover{text-decoration:underline}.key-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;margin-left:auto}.key-status.valid{color:var(--accent-green)}.key-status.missing{color:var(--text-muted)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.control-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-left:none;border-right:none;padding:12px 20px;display:flex;flex-direction:column;gap:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--glow-soft);display:none}.control-group{display:flex;align-items:center;gap:10px}.control-label{font-size:10px;text-transform:uppercase;color:var(--text-muted);letter-spacing:.8px;font-weight:600;min-width:55px}.btn-group{display:flex;gap:6px;flex-wrap:wrap}.btn{padding:10px 20px;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:8px}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent-cyan);color:#041524}.btn-primary:hover{background:var(--accent-blue-hover);transform:translateY(-1px)}.btn-primary:active{transform:scale(.96)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.btn-danger{background:#ef444426;color:#ef4444}.btn-danger:hover{background:#ef444440}.btn-sm{padding:6px 12px;font-size:12px}.btn svg{width:16px;height:16px}.nav-tabs{display:flex;gap:4px;background:var(--bg-tertiary);padding:4px;border-radius:10px;margin-left:16px}.nav-tab{padding:8px 16px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;transition:all .15s ease;display:flex;align-items:center;gap:6px}.nav-tab:hover{color:var(--text-secondary);background:var(--bg-secondary)}.nav-tab.active{background:linear-gradient(135deg,#1b6b5c,#2a9d8f);color:#fff;box-shadow:0 2px 4px #1b6b5c4d}.nav-tab svg{width:16px;height:16px}.chat-container{flex:1;display:flex;flex-direction:column;max-width:960px;margin:0 auto;width:100%;padding:0;overflow:hidden}.status-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 16px;background:var(--bg-secondary);border-top:1px solid var(--border-color);font-size:11px;color:var(--text-muted);gap:8px}.status-indicator{display:flex;align-items:center;gap:8px}.status-dot.online{background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.status-dot.offline{background:#ef4444;box-shadow:0 0 8px #ef4444}.status-meta{display:inline-flex;align-items:center;gap:12px}.session-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-tertiary);color:var(--text-secondary)}.quick-toggle{margin-left:12px}.quick-panel-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:199;background:transparent;cursor:pointer}.quick-panel-backdrop.open{display:block}.quick-panel{position:fixed;top:70px;left:340px;width:720px;max-height:calc(100vh - 100px);overflow-y:auto;background:#161b22f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 8px 32px #0000004d;padding:12px;display:none;flex-direction:column;gap:8px;z-index:var(--z-drawer);pointer-events:auto}body.sidebar-collapsed .quick-panel{left:70px}.quick-panel.open{display:flex}.quick-row{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border-color)}.quick-row label{font-weight:700;color:var(--text-primary)}.quick-select{width:100%;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:8px;padding:8px 10px;font-weight:600;cursor:pointer}.quick-select optgroup{background:var(--bg-secondary);color:var(--text-secondary);font-weight:700;padding:8px 0}.quick-select option{background:var(--bg-primary);color:var(--text-primary);padding:8px}.quick-btns{display:flex;flex-wrap:nowrap;gap:6px}.quick-btn{padding:5px 10px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:5px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);pointer-events:auto;position:relative;z-index:201}.quick-btn:hover{border-color:#64748b;color:var(--text-primary);background:var(--bg-tertiary)}.quick-btn:active{transform:scale(.96)}.quick-btn.active{background:#475569;border-color:#64748b;color:#f1f5f9}[data-group=agent] .quick-btn.active{background:linear-gradient(135deg,#1b6b5c33,#d4a57433);border-color:#1b6b5c;color:#f1f5f9}[data-group=search] .quick-btn.active{background:#92400e;border-color:#b45309;color:#fef3c7}[data-group=local] .quick-btn.active{background:#065f5b;border-color:#0d9488;color:#ccfbf1}[data-group=public] .quick-btn.active{background:#d4a57433;border-color:#d4a574;color:#f1f5f9}[data-group=access] .quick-btn.active{background:#1e40af;border-color:#3b82f6;color:#dbeafe}[data-group=mode] .quick-btn.active{background:#7c2d12;border-color:#ea580c;color:#fed7aa}[data-group=data-access] .quick-btn.active{background:#166534;border-color:#22c55e;color:#dcfce7}.config-strip{padding:8px 20px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:8px}.config-strip-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.config-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:11px;color:var(--text-secondary)}.config-chip.active{background:#22c55e26;border-color:#22c55e4d;color:#86efac}.config-chip.inactive{opacity:.5}.config-strip-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-right:6px}.config-chip-icon{width:12px;height:12px}.agent-description{font-size:14px;color:var(--text-muted);padding:0 4px 8px;font-style:italic}.autoagent-config{background:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin:8px 0;display:none}.autoagent-config.visible{display:block}.autoagent-section{margin-bottom:12px}.autoagent-section:last-child{margin-bottom:0}.autoagent-section-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.autoagent-section-title:after{content:"";flex:1;height:1px;background:var(--border-color)}.autoagent-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.autoagent-tool-toggle{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s ease;font-size:12px}.autoagent-tool-toggle:hover{border-color:var(--accent-color)}.autoagent-tool-toggle.active{background:#22d3ee1a;border-color:var(--accent-color)}.autoagent-tool-toggle input[type=checkbox]{display:none}.autoagent-tool-check{width:14px;height:14px;border:2px solid var(--border-color);border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.autoagent-tool-toggle.active .autoagent-tool-check{background:var(--accent-color);border-color:var(--accent-color)}.autoagent-tool-check:after{content:"";color:var(--bg-color);font-size:10px;font-weight:700;opacity:0;transition:opacity .15s ease}.autoagent-tool-toggle.active .autoagent-tool-check:after{opacity:1}.autoagent-slider-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.autoagent-slider-row:last-child{margin-bottom:0}.autoagent-slider-label{font-size:12px;color:var(--text-color);min-width:120px}.autoagent-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border-color);border-radius:2px;outline:none}.autoagent-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-color);cursor:pointer;transition:transform .15s ease}.autoagent-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.autoagent-slider-value{font-size:12px;color:var(--accent-color);font-weight:600;min-width:40px;text-align:right}.autoagent-model-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.autoagent-model-label{font-size:12px;color:var(--text-color);min-width:100px}.autoagent-model-select{flex:1;padding:6px 10px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:12px;cursor:pointer}.autoagent-model-select:focus{outline:none;border-color:var(--accent-color)}.components-divider{display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.components-divider:before,.components-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.quick-btn.synced:after{content:"";margin-left:4px;color:#22c55e}.streaming-indicator{display:inline-flex;gap:3px;margin-left:4px}.streaming-text{white-space:pre-wrap;word-wrap:break-word;line-height:1.4}.streaming-text code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:12px}.streaming-indicator span{width:4px;height:4px;background:var(--accent-blue);border-radius:50%;animation:bounce 1.4s infinite ease-in-out}.streaming-indicator span:nth-child(1){animation-delay:-.32s}.streaming-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.sidebar-toggle{display:flex;position:fixed;top:12px;left:12px;z-index:100;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;padding:10px;cursor:pointer;color:var(--text-secondary);transition:all .2s ease}.sidebar-toggle:hover{background:var(--bg-tertiary);border-color:var(--accent-cyan);color:var(--text-primary)}body.sidebar-collapsed .sidebar{width:0;min-width:0;opacity:0;pointer-events:none;overflow:hidden}body.sidebar-collapsed .main-content{margin-left:0}body.sidebar-collapsed .sidebar-toggle{left:12px}body.sidebar-collapsed .topbar{padding-left:60px}body:not(.sidebar-collapsed) .sidebar-toggle{left:292px}body:not(.sidebar-collapsed) .topbar{padding-left:60px}.mobile-settings,.mobile-config-info,.mobile-view-toggle,.quick-panel-mobile-header{display:none}.mobile-hamburger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;cursor:pointer;border-radius:8px;margin-right:8px}.mobile-hamburger:hover{background:#ffffff1a}@media(min-width:769px){.sidebar-overlay,.mobile-settings-btn,.mobile-bottom-nav,.mobile-view-selector{display:none}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;min-width:280px;max-width:400px;box-shadow:0 4px 20px #0000004d;display:flex;align-items:flex-start;gap:12px;animation:slideIn .3s ease;pointer-events:auto}.toast.success{border-left:3px solid var(--accent-green)}.toast.error{border-left:3px solid var(--accent-red)}.toast.warning{border-left:3px solid var(--accent-orange)}.toast.info{border-left:3px solid var(--accent-cyan)}.toast-icon{width:20px;height:20px;flex-shrink:0}.toast.success .toast-icon{color:var(--accent-green)}.toast.error .toast-icon{color:var(--accent-red)}.toast.warning .toast-icon{color:var(--accent-orange)}.toast.info .toast-icon{color:var(--accent-cyan)}.toast-content{flex:1}.toast-title{font-weight:600;margin-bottom:2px;color:var(--text-primary)}.toast-message{font-size:13px;color:var(--text-muted)}.toast-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;opacity:.6}.toast-close:hover{opacity:1}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.removing{animation:slideOut .3s ease forwards}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border-color);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.large{width:32px;height:32px;border-width:3px}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--border-color) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-card{height:80px;margin-bottom:12px;border-radius:12px}.skeleton-text{height:14px;margin-bottom:8px}.skeleton-text.short{width:40%}.skeleton-text.medium{width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;border-radius:inherit;z-index:10}.offline-banner{background:var(--accent-orange);color:#000;text-align:center;padding:8px;font-size:13px;font-weight:600;display:none}.offline-banner.visible{display:block}.primary-btn{background:var(--accent-green);color:#0f172a;border:none;padding:8px 16px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;transition:all .2s ease}.primary-btn:hover{background:#4ade80;transform:translateY(-1px);box-shadow:0 4px 12px #4ade8033}.primary-btn:active{transform:translateY(0)}.nav-tabs{display:flex;gap:4px;margin-left:24px;background:var(--bg-tertiary);padding:4px;border-radius:8px;border:1px solid var(--border-color)}.nav-tab{background:transparent;border:none;color:var(--text-secondary);padding:6px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.nav-tab:hover{color:var(--text-primary);background:#ffffff0d}.nav-tab.active{background:linear-gradient(135deg,#1b6b5c,#2a9d8f);color:#fff;box-shadow:0 2px 4px #1b6b5c4d;font-weight:600}.top-config{display:flex;gap:8px;margin-right:12px}.top-select{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;border-radius:6px;padding:4px 8px;cursor:pointer;max-width:140px}.top-select:hover{border-color:var(--border-hover);color:var(--text-primary)}@media(max-width:768px){body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.nav-tabs{display:none!important}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:1000;width:85%;max-width:300px;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:none;background:var(--bg-secondary)}body:not(.sidebar-collapsed) .sidebar{transform:translate(0);box-shadow:4px 0 24px #00000080}body.sidebar-collapsed .sidebar{transform:translate(-100%)}body.view-data .sidebar,body.view-training .sidebar{width:85%;max-width:300px;min-width:auto;opacity:1;pointer-events:auto;overflow:visible}body.view-data.sidebar-collapsed .sidebar,body.view-training.sidebar-collapsed .sidebar{transform:translate(-100%);opacity:0;pointer-events:none}body.view-data:not(.sidebar-collapsed) .sidebar,body.view-training:not(.sidebar-collapsed) .sidebar{transform:translate(0);opacity:1;pointer-events:auto}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:#0009;z-index:999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease;-webkit-tap-highlight-color:transparent}body:not(.sidebar-collapsed) .sidebar-overlay{display:block;opacity:1;visibility:visible;pointer-events:auto;touch-action:manipulation}body.sidebar-collapsed .sidebar-overlay{display:none;opacity:0;visibility:hidden;pointer-events:none}body.view-data:not(.sidebar-collapsed) .sidebar-overlay,body.view-training:not(.sidebar-collapsed) .sidebar-overlay{display:block;opacity:1;visibility:visible;pointer-events:auto}.mobile-hamburger{display:flex!important;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-hamburger:active{background:#ffffff1a}.mobile-settings{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;margin-left:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-settings:active{background:#ffffff1a}.mobile-config-info{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;position:relative}.mobile-config-info:active{background:#ffffff1a}.mobile-view-toggle{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;-webkit-tap-highlight-color:transparent;touch-action:manipulation;position:relative}.mobile-view-toggle:active{background:#ffffff1a}.mobile-view-toggle.training-active svg{stroke:#d4a574}.mobile-view-toggle.chat-active svg{stroke:#38bdf8}.mobile-brand{display:flex!important;align-items:center;font-size:16px;letter-spacing:-.3px;flex:1}.mobile-config-dropdown{display:none;position:fixed;top:50px;left:10px;right:10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:16px;z-index:500;box-shadow:0 8px 32px #00000080}.mobile-config-dropdown.open{display:block}.mobile-config-dropdown .config-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:15px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.mobile-config-dropdown .config-item:last-child{border-bottom:none;padding-bottom:0}.mobile-config-dropdown .config-item:first-child{padding-top:0}.mobile-config-dropdown .config-label{font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.mobile-config-dropdown .config-value{color:var(--accent-cyan);font-weight:500;text-align:right}.topbar{padding:6px 10px;flex-direction:row;align-items:center;gap:6px;min-height:44px;position:relative;z-index:500;pointer-events:auto!important}.topbar *{pointer-events:auto!important}.brand-mark{width:28px;height:28px;border-radius:6px;font-size:11px}.brand-title{display:block!important;font-size:15px;flex:1}.brand-subtitle{display:none}.mobile-settings-btn{display:flex!important;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;margin-left:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-settings-btn:active{background:#ffffff1a}.mobile-view-selector{display:flex;position:relative;margin-left:8px}.mobile-view-selector>button{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-view-selector>button:active{background:var(--bg-secondary)}.view-dropdown-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.view-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:1000;min-width:140px;overflow:hidden}.view-dropdown button{display:flex;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--text-secondary);font-size:14px;text-align:left;gap:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.view-dropdown button:active{background:var(--bg-tertiary)}.view-dropdown button.active{background:#1b6b5c26;color:#1b6b5c}.view-dropdown button .view-icon{font-size:16px}.session-pill-top,.status-indicator-top,.preset-row,.session-strip,.quick-panel-toggle,.quick-toggle,.top-actions,.config-strip,.brand-mark,.message-user .avatar,.message-assistant .avatar{display:none!important}.message-user{flex-direction:row}.message-user .bubble{max-width:90%;margin-left:auto}.message-assistant .bubble{max-width:100%}.main-content{height:100vh;height:100dvh;display:flex;flex-direction:column;position:relative;z-index:1}body.sidebar-collapsed .main-content{z-index:500}.chat-container{flex:1;padding:8px 8px 80px;overflow-y:auto;-webkit-overflow-scrolling:touch}.chat-container{padding-bottom:100px!important}.chat-view.active .input-area{position:fixed!important;bottom:0;left:0;right:0;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--bg-primary);border-top:1px solid var(--border-color);z-index:100}.chat-view:not(.active) .input-area{display:none!important}.input-wrapper{border-radius:24px;background:var(--bg-secondary)}#chat-input{font-size:16px;min-height:44px}#send-btn,#stop-btn{padding:8px 16px}.welcome-suggestions{display:none!important}.quick-panel{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;max-height:none!important;border-radius:0!important;transform:translate(100%);transition:transform .3s ease;z-index:1002;overflow-y:auto!important;padding:60px 20px 20px!important;padding-bottom:calc(40px + env(safe-area-inset-bottom))!important;display:block!important;background:var(--bg-primary)!important}.quick-panel.open{transform:translate(0)}.quick-panel-backdrop{z-index:1001;background:#00000080!important}.quick-panel-mobile-header{display:flex!important;justify-content:space-between;align-items:center;position:fixed;top:0;left:0;right:0;padding:12px 20px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);z-index:1003}.drag-handle{display:none}.close-panel-btn{background:var(--accent-blue);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.close-panel-btn:active{opacity:.8}.quick-row{margin-bottom:16px}.quick-row label{font-size:12px}.quick-btns{display:flex!important;flex-wrap:wrap!important;gap:8px!important}.quick-btn{padding:10px 12px!important;font-size:12px!important}.components-divider{margin:12px 0!important}.message{padding:12px 14px}.message-actions{opacity:1;gap:12px}.message-actions button{padding:8px}.scratchpad,.task-panel{position:fixed;bottom:0;right:0;left:0;width:100%;max-height:50vh;border-radius:20px 20px 0 0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.scratchpad.open{z-index:calc(var(--z-panel) + 10)}.task-panel.open{z-index:var(--z-panel)}.welcome-container h2{font-size:1.5rem}.welcome-container p{font-size:.9rem}.modal{margin:16px;max-height:calc(100vh - 32px)}.modal-overlay{padding:0}#login-modal .modal{margin:0;max-width:100%;height:100%;max-height:100%;border-radius:0;display:flex;flex-direction:column;justify-content:center}.datahub-header{padding:16px}.datahub-header h1{font-size:18px}.datahub-header p{font-size:12px}.datahub-tabs{padding:0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.datahub-tabs::-webkit-scrollbar{display:none}.datahub-tab{padding:10px 12px;font-size:13px;white-space:nowrap;flex-shrink:0}.datahub-tab svg{width:16px;height:16px}.datahub-content{padding:16px}.stats-grid{grid-template-columns:1fr;gap:12px}.stat-card{padding:16px}.stat-icon{width:40px;height:40px}.stat-value{font-size:20px}.health-grid{grid-template-columns:1fr 1fr;gap:8px}.health-indicator{padding:10px}.category-grid{grid-template-columns:repeat(3,1fr);gap:8px}.category-card{padding:12px 8px}.category-count{font-size:20px}.category-label{font-size:10px}.sources-grid{grid-template-columns:1fr!important}.source-card{padding:14px}.query-modes{overflow-x:auto;padding-bottom:8px;margin-bottom:12px}.mode-btn{padding:8px 12px;font-size:12px;white-space:nowrap}.query-editor-container{min-height:150px}.query-results-table{font-size:12px}.results-table{overflow-x:auto}.source-chips{gap:6px;margin-bottom:12px}.source-chip{padding:6px 10px;font-size:11px}.data-chat-container{padding-bottom:80px}.data-chat-input{position:fixed;bottom:0;left:0;right:0;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--bg-primary);border-top:1px solid var(--border-color)}.notebook-toolbar{padding:10px 12px;flex-wrap:wrap;gap:8px}.notebook-actions{gap:8px}.notebook-actions button{padding:6px 10px;font-size:12px}.ai-prompt-container{padding:10px 12px}.ai-prompt-input{font-size:14px}.notebook-cells{padding:12px}.cell-container{padding:10px}.cell-header{padding:6px 10px}.cell-number{font-size:10px}.cell-editor{font-size:13px;min-height:100px}.cell-output{padding:8px;font-size:12px}.pipeline-grid{grid-template-columns:1fr}.pipeline-card{padding:14px}.pipeline-progress{height:6px}.logs-container{max-height:200px;font-size:11px}.data-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{min-width:600px}.data-table th,.data-table td{padding:10px;font-size:12px}.schema-viewer{font-size:12px}.schema-tree{padding:8px}.btn-primary,.btn-secondary{padding:10px 14px;font-size:13px}.datahub-modal .modal{margin:10px;max-height:calc(100vh - 20px)}.datahub-modal .modal-body{padding:16px}.loading-state,.empty-state{padding:40px 16px}.empty-state svg{width:48px;height:48px}.empty-state h4{font-size:14px}.empty-state p{font-size:13px}.mobile-bottom-nav{display:none!important}.mobile-bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);font-size:10px;gap:4px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:color .15s ease}.mobile-bottom-nav button:active{background:#ffffff0d}.mobile-bottom-nav button.active{color:#1b6b5c}.mobile-bottom-nav button.active svg{stroke:#1b6b5c}.mobile-bottom-nav button svg{width:20px;height:20px}.mobile-bottom-nav button span{font-weight:500}.chat-view.active .input-area{bottom:env(safe-area-inset-bottom)!important}.chat-container{padding-bottom:calc(100px + env(safe-area-inset-bottom))!important}.data-chat-input{bottom:env(safe-area-inset-bottom)}.data-chat-container{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}@media(min-width:769px)and (max-width:1024px){.datahub-header{padding:20px 24px 14px}.datahub-header h1{font-size:22px}.datahub-tabs{padding:0 24px}.datahub-content{padding:20px 24px}.stats-grid,.sources-grid{grid-template-columns:repeat(2,1fr)}.health-grid{grid-template-columns:repeat(3,1fr)}.category-grid{grid-template-columns:repeat(4,1fr)}.pipeline-grid{grid-template-columns:repeat(2,1fr)}}.messages{flex:1;overflow-y:auto;padding:12px 16px 24px}.message{margin-bottom:10px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-user{display:flex;gap:12px;flex-direction:row-reverse}.message-user .avatar,.message-assistant .avatar{display:none}.message-user .bubble{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary);padding:12px 16px;border-radius:16px 16px 4px;max-width:85%;margin-left:auto;font-size:14px;line-height:1.6}.message-assistant{display:flex;align-items:flex-start}.message-content{flex:1;min-width:0}.message-assistant .bubble{background:transparent;border:none;padding:0;font-size:14px;line-height:1.6;color:var(--text-primary)}.message-assistant .bubble p{margin-bottom:.75em}.message-assistant .bubble p:last-child{margin-bottom:0}.message-meta{font-size:11px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:8px}.message-meta .model-tag{background:var(--bg-tertiary);padding:3px 8px;border-radius:4px;font-weight:500}.message-actions{display:inline-flex;align-items:center;gap:6px;margin-top:8px}.message-actions button{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:all .15s ease}.message-actions .feedback-btn{padding:4px 6px;display:inline-flex;align-items:center;justify-content:center}.message-actions .feedback-btn.active{background:var(--accent-color);border-color:var(--accent-color);color:#fff}.message-actions .feedback-btn.thumbs-up.active{background:#22c55e;border-color:#22c55e}.message-actions .feedback-btn.thumbs-down.active{background:#ef4444;border-color:#ef4444}.message-actions .feedback-btn.inactive{opacity:.4}.message-actions .feedback-btn svg{pointer-events:none}.message-actions button:hover{color:var(--text-primary);border-color:var(--border-hover)}.reroute-menu{position:absolute;display:none;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:10px;padding:6px;gap:4px;z-index:30;top:34px;left:0}.reroute-menu.open{display:flex}.reroute-wrapper{position:relative;display:inline-block}.source-cards{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.source-card{padding:4px 8px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;display:inline-flex;align-items:center;gap:4px;text-decoration:none}.source-card .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-blue);box-shadow:0 0 8px var(--accent-blue)}.search-status{margin-bottom:12px;padding:12px 16px;background:#38bdf814;border:1px solid rgba(56,189,248,.2);border-radius:10px;font-size:13px;line-height:1.6;color:var(--text-secondary)}.thinking-block{margin-top:16px;margin-bottom:8px;border-radius:12px;overflow:hidden;background:#94a3b814;border:1px solid rgba(148,163,184,.25)}.thinking-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#94a3b814;border-bottom:1px solid rgba(148,163,184,.15)}.thinking-header:hover{background:#94a3b81f}.thinking-icon{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.thinking-block.thinking-active .thinking-icon{animation:thinking-spin 1s linear infinite}@keyframes thinking-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes thinking-pulse{0%,to{opacity:.6}50%{opacity:1}}.thinking-label{font-size:12px;font-weight:600;color:var(--text-secondary);flex-grow:1}.thinking-time{font-size:11px;color:var(--text-muted);font-family:var(--font-mono)}.thinking-toggle{width:14px;height:14px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.thinking-block.collapsed .thinking-toggle{transform:rotate(-90deg)}.thinking-content{font-size:13px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-wrap:break-word;padding:12px;background:transparent}.thinking-block.collapsed .thinking-content{display:none}.thinking-block.thinking-active{border-color:#94a3b866;box-shadow:0 0 20px #94a3b81a}.thinking-block.thinking-active .thinking-header{border-bottom-color:#94a3b833}.thinking-block.thinking-active .thinking-content{animation:thinking-pulse 2s ease-in-out infinite}.thinking-block.completed .thinking-icon{animation:none;color:#22c55e}.thinking-block.completed .thinking-label{color:var(--text-secondary)}.thinking-spinner{width:16px;height:16px;border:2px solid rgba(139,92,246,.3);border-top-color:var(--accent-purple);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.thinking-block.thinking-active .thinking-label{color:var(--accent-purple);font-weight:500}.thinking-icon.spinning{animation:spin 1s linear infinite}.thinking-block.streaming{border-color:#8b5cf666}.thinking-block.streaming .thinking-content{display:block;max-height:300px}.thinking-block.streaming .thinking-label{color:var(--accent-purple)}.thinking-counter{font-size:11px;color:var(--text-muted);background:#8b5cf626;padding:2px 8px;border-radius:10px;margin-left:auto}.md-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}.md-table th,.md-table td{border:1px solid var(--border-color);padding:8px 12px;text-align:left}.md-table th{background:#94a3b81a;font-weight:600}.md-table tr:nth-child(2n){background:#94a3b80d}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.welcome-logo{width:64px;height:64px;background:var(--accent-blue);border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;box-shadow:0 8px 32px #3b82f64d}.welcome-logo svg{width:32px;height:32px;color:#fff}.welcome h1{font-size:32px;font-weight:600;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.5px}.welcome p{font-size:15px;color:var(--text-secondary);margin-bottom:32px;max-width:400px}.welcome-suggestions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:600px}.suggestion-btn{padding:12px 18px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;color:var(--text-secondary);cursor:pointer;font-family:var(--font-sans);font-size:13px;transition:all .15s ease}.suggestion-btn:hover{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary);transform:translateY(-2px)}.input-area{flex-shrink:0;padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));background:var(--bg-primary);position:relative;z-index:var(--z-sticky)}.input-container{max-width:900px;margin:0 auto;padding:0 20px;position:relative}.input-wrapper{display:flex;gap:12px;background:#161b22;border:1px solid var(--border-color);border-radius:16px;padding:8px 12px;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #0003;align-items:center}.input-wrapper:focus-within{border-color:var(--accent-cyan);background:#1c2128;box-shadow:0 0 0 3px #22d3ee1a,0 8px 24px #0000004d}#chat-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:15px;outline:none;resize:none;padding:10px 4px;min-height:24px;max-height:200px;line-height:1.5}#chat-input::placeholder{color:var(--text-muted)}.send-btn{background:#0ea5e9;color:#fff;border:none;padding:8px 16px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:8px;height:38px}.send-btn:hover{background:#0284c7;transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e94d}.send-btn:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;transform:none}#stop-btn{background:#ef4444;border:none;color:#fff;padding:10px 20px;border-radius:10px;cursor:pointer;font-family:var(--font-sans);font-size:14px;font-weight:500;transition:all .2s ease;display:none;align-items:center;gap:6px}#stop-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}#stop-btn.visible{display:flex}.attach-btn{background:transparent;border:none;color:var(--text-muted);padding:8px;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.attach-btn:hover{color:var(--accent-cyan);background:#22d3ee1a}.attach-btn svg{width:20px;height:20px}.attachment-preview{display:none;flex-wrap:wrap;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:12px 12px 0 0;border:1px solid var(--border-color);border-bottom:none;margin-bottom:-1px}.attachment-preview.has-files{display:flex}.attachment-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;font-size:12px;color:var(--text-secondary);max-width:200px}.attachment-item.uploading{opacity:.6}.attachment-item .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.attachment-item .file-icon{width:16px;height:16px;flex-shrink:0}.attachment-item .remove-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;border-radius:4px}.attachment-item .remove-btn:hover{color:#ef4444;background:#ef44441a}.attachment-item img.preview{width:32px;height:32px;object-fit:cover;border-radius:4px}.drop-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:9999;align-items:center;justify-content:center}.drop-overlay.active{display:flex}.drop-overlay-content{background:var(--bg-elevated);border:2px dashed var(--accent-cyan);border-radius:16px;padding:48px;text-align:center;color:var(--text-primary)}.drop-overlay-content svg{width:48px;height:48px;color:var(--accent-cyan);margin-bottom:16px}.drop-overlay-content h3{margin:0 0 8px;font-size:18px}.drop-overlay-content p{margin:0;color:var(--text-muted);font-size:14px}.code-block{position:relative;margin:16px 0;border-radius:12px;overflow:hidden;background:#0d1117;border:1px solid var(--border-color)}.code-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#ffffff08;border-bottom:1px solid var(--border-color)}.code-lang{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.code-copy{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:4px;font-size:11px;display:flex;align-items:center;gap:4px;transition:all .15s ease}.code-copy:hover{background:#ffffff1a;color:var(--text-primary)}.code-copy.copied{color:var(--accent-green)}.bubble pre{background:#0d1117;border:1px solid var(--border-color);border-radius:8px;padding:14px 16px;margin:12px 0;overflow-x:auto;max-width:100%}.bubble code{font-family:var(--font-mono);font-size:13px;line-height:1.5;color:#e6edf3}.bubble pre code{background:transparent;padding:0;border:none;border-radius:0;color:#e6edf3}.bubble p code,.bubble li code,.bubble td code{background:var(--bg-tertiary);padding:2px 7px;border-radius:5px;font-size:12px;color:var(--accent-amber-dark);border:1px solid var(--border-color)}.bubble strong{font-weight:600;color:var(--text-primary)}.bubble em{font-style:italic;color:var(--text-secondary)}.bubble blockquote{border-left:4px solid var(--accent-purple);padding:12px 16px;margin:16px 0;background:#8b5cf614;border-radius:0 8px 8px 0;color:var(--text-secondary)}.bubble table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px;overflow-x:auto;display:block;border-radius:8px;border:1px solid var(--border-color)}.bubble th,.bubble td{border:1px solid var(--border-color);padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-color)}.bubble th{background:var(--bg-tertiary);font-weight:600;color:var(--text-primary);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.bubble tr:last-child td{border-bottom:none}.bubble tr:nth-child(2n){background:#ffffff05}.bubble tr:hover{background:#ffffff0a}.bubble blockquote p{margin:0}.bubble hr{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent);margin:20px 0}.bubble a{color:var(--accent-blue);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.bubble a:hover{border-bottom-color:var(--accent-blue)}.bubble p{margin:0;line-height:1.4}.bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:8px 0 4px;font-weight:600;color:var(--text-primary);line-height:1.3}.bubble h1:first-child,.bubble h2:first-child,.bubble h3:first-child{margin-top:0}.bubble h1{font-size:1.5em}.bubble h2{font-size:1.3em}.bubble h3{font-size:1.15em}.bubble h4{font-size:1.05em}.bubble ul,.bubble ol{margin:0;padding-left:20px}.bubble ul{list-style-type:disc}.bubble ol{list-style-type:decimal}.bubble li{margin:0;line-height:1.4}.bubble li::marker{color:var(--text-muted)}.bubble li ul,.bubble li ol{margin:0}.chat-list-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:13px}.chat-actions{display:flex;gap:8px;padding:8px 20px;justify-content:flex-end;max-width:900px;margin:0 auto;width:100%;box-sizing:border-box}.chat-action-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s ease}.chat-action-btn:hover{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary)}.chat-action-btn svg{flex-shrink:0}.training-view{display:none;flex:1;overflow-y:auto;padding:20px;max-width:1200px;margin:0 auto;width:100%}.training-view.active{display:block}.training-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.training-title{font-size:24px;font-weight:700;color:var(--text-primary)}.training-subtitle{color:var(--text-muted);font-size:14px;margin-top:4px}.training-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;padding:16px}.stat-label{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary);margin-top:4px}.stat-value.success{color:var(--accent-green)}.stat-value.warning{color:var(--accent-orange)}.stat-value.info{color:var(--accent-cyan)}.training-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:14px;margin-bottom:20px;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.section-title{font-size:16px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}.section-title svg{width:20px;height:20px;color:var(--accent-cyan)}.section-body{padding:16px 20px}.job-list{display:flex;flex-direction:column;gap:12px}.job-card{display:grid;grid-template-columns:1fr auto auto auto;gap:16px;align-items:center;padding:16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;transition:all .15s ease}.job-card:hover{border-color:var(--border-hover);transform:translateY(-1px)}.job-info h4{color:var(--text-primary);font-weight:600;margin-bottom:4px}.job-info small{color:var(--text-muted);font-size:12px}.job-status{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.job-status.pending{background:#fbbf2426;color:var(--accent-orange)}.job-status.running{background:#38bdf826;color:var(--accent-cyan)}.job-status.completed{background:#34d39926;color:var(--accent-green)}.job-status.failed{background:#ef444426;color:#ef4444}.job-progress{width:120px}.progress-bar{height:6px;background:var(--border-color);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent-cyan);border-radius:3px;transition:width .3s ease}.progress-text{font-size:11px;color:var(--text-muted);margin-top:4px;text-align:center}.job-actions{display:flex;gap:8px}.job-header{display:flex;justify-content:space-between;align-items:flex-start}.job-name{font-weight:600;color:var(--text-primary)}.job-meta{font-size:12px;color:var(--text-muted);display:flex;gap:16px;margin-top:4px}.training-form{display:grid;gap:20px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.form-group label{font-size:13px;font-weight:600;color:var(--text-secondary)}.form-group input,.form-group select{padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:14px;transition:all .15s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-cyan);box-shadow:var(--focus-ring)}.form-group input::placeholder{color:var(--text-muted)}.form-group small{color:var(--text-muted);font-size:11px}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:12px}.deployment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.deployment-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;padding:16px}.deployment-card.production{border-color:var(--accent-green);box-shadow:0 0 20px #34d3991a}.deployment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.deployment-name{font-weight:600;color:var(--text-primary)}.deployment-status{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.deployment-status.testing{background:#fbbf2426;color:var(--accent-orange)}.deployment-status.staging{background:#a855f726;color:var(--accent-purple)}.deployment-status.production{background:#34d39926;color:var(--accent-green)}.deployment-meta{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.deployment-meta-item{display:flex;justify-content:space-between;font-size:13px}.deployment-meta-label{color:var(--text-muted)}.deployment-meta-value{color:var(--text-primary);font-weight:500}.deployment-actions{display:flex;gap:8px;margin-top:12px}.traffic-slider{margin-top:12px}.traffic-slider label{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.traffic-slider input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.traffic-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-cyan);cursor:pointer}.dataset-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;padding:16px;margin-bottom:8px;cursor:pointer;transition:all .15s ease}.dataset-card:hover{border-color:var(--border-hover);transform:translateY(-1px)}.dataset-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.dataset-version{font-weight:600;color:var(--accent-cyan)}.dataset-date{font-size:12px;color:var(--text-muted)}.dataset-stats{display:flex;gap:16px;font-size:13px;color:var(--text-secondary)}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state svg{width:48px;height:48px;margin-bottom:12px;opacity:.5}.empty-state h4{color:var(--text-secondary);margin-bottom:8px}.tab-content{display:none}.tab-content.active{display:block}.sub-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:12px}.sub-tab{padding:8px 16px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-weight:600;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-13px;transition:all .15s ease}.sub-tab:hover{color:var(--text-secondary)}.sub-tab.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}@media(max-width:768px){.training-view{padding:12px 12px 20px}.job-card{grid-template-columns:1fr;gap:12px}.form-row{grid-template-columns:1fr}}.applications-view{height:100%;flex:1;display:flex;flex-direction:column;overflow:hidden}.applications-hub{padding:32px;max-width:1200px;margin:0 auto;flex:1;overflow-y:auto}.applications-header{margin-bottom:32px}.applications-header h1{font-size:28px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.applications-header p{color:var(--text-secondary);margin:0;font-size:15px}.applications-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.application-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;cursor:pointer;transition:all .2s ease;position:relative;text-align:left;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:12px;width:100%;font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.application-card:hover:not(.disabled){border-color:var(--module-color, var(--border-hover));background:var(--bg-tertiary);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.application-card:focus-visible{outline:2px solid var(--module-color, var(--border-hover));outline-offset:2px}.application-card.disabled{opacity:.6;cursor:not-allowed}.application-icon{width:48px;height:48px;border-radius:12px;background:rgba(var(--module-color-rgb, 96, 165, 250),.12);display:flex;align-items:center;justify-content:center}.application-card h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.application-card p{font-size:14px;color:var(--text-secondary);margin:0;line-height:1.5}.application-status{align-self:flex-start;margin-top:auto;padding:4px 10px;background:var(--bg-tertiary);border-radius:12px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.application-status.available{background:rgba(var(--module-color-rgb, 96, 165, 250),.18);color:var(--module-color, #60a5fa)}.application-status.restricted{background:#ef44441f;color:#ef4444}.applications-access{flex:1;display:flex;align-items:center;justify-content:center;padding:32px}.applications-access-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:32px;text-align:center;max-width:520px;box-shadow:var(--glow-soft)}.applications-access-icon{width:48px;height:48px;border-radius:12px;background:var(--bg-tertiary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:16px}.applications-access-card h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.applications-access-card p{font-size:14px;color:var(--text-secondary);margin:0 0 16px}.applications-access-hint{color:var(--text-muted);font-size:12px;margin-top:-8px}.back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.back-button:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-hover)}@media(max-width:768px){.applications-hub{padding:20px}.applications-grid{grid-template-columns:1fr}}.invest-view{height:100%;display:flex;flex-direction:column;overflow:hidden}.invest-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.invest-header-left{display:flex;align-items:center;gap:16px}.invest-header-left h1{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.invest-header-right{display:flex;align-items:center;gap:12px}.refresh-button{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.refresh-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--border-hover)}.refresh-button:disabled{opacity:.5;cursor:not-allowed}.refresh-button svg.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.invest-nav{display:flex;gap:4px;padding:0 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.invest-nav-item{display:inline-flex;align-items:center;padding:12px 20px;font-size:14px;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .2s ease;margin-bottom:-1px;text-decoration:none}.invest-nav-item:hover{color:var(--text-primary)}.invest-nav-item.active{color:#22c55e;border-bottom-color:#22c55e}.invest-content{flex:1;overflow-y:auto;padding:24px;background:var(--bg-primary)}.invest-page{max-width:1400px;margin:0 auto}.invest-page h2{font-size:22px;font-weight:600;color:var(--text-primary);margin:0 0 24px}.invest-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.invest-stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px}.invest-stat-label{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.invest-stat-value{font-size:24px;font-weight:600;color:var(--text-primary)}.invest-stat-value.positive{color:#22c55e}.invest-stat-value.negative{color:#ef4444}.invest-stat-change{display:inline-flex;align-items:center;gap:4px;font-size:13px;margin-top:6px}.invest-stat-change.positive{color:#22c55e}.invest-stat-change.negative{color:#ef4444}.invest-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.invest-table{width:100%;border-collapse:collapse}.invest-table th{text-align:left;padding:14px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.invest-table td{padding:14px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.invest-table tr:last-child td{border-bottom:none}.invest-table tr:hover{background:var(--bg-tertiary)}.symbol-badge{display:inline-flex;align-items:center;gap:8px;font-weight:600}.symbol-badge .symbol-name{font-size:14px;color:var(--text-primary)}.symbol-badge .company-name{font-size:12px;color:var(--text-secondary);font-weight:400}.broker-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary)}.broker-badge.robinhood{background:#00c8531a;color:#00c853}.broker-badge.fidelity{background:#48bb781a;color:#48bb78}.broker-badge.ibkr{background:#ef44441a;color:#ef4444}.invest-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center}.invest-empty-state svg{color:var(--text-muted);margin-bottom:16px}.invest-empty-state h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.invest-empty-state p{font-size:14px;color:var(--text-secondary);margin:0;max-width:400px}.invest-allocation-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}.invest-allocation-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px}.invest-allocation-card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.allocation-bar-list{display:flex;flex-direction:column;gap:12px}.allocation-bar-item{display:flex;flex-direction:column;gap:6px}.allocation-bar-header{display:flex;justify-content:space-between;font-size:13px}.allocation-bar-label{color:var(--text-primary);font-weight:500}.allocation-bar-value{color:var(--text-secondary)}.allocation-bar-track{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.allocation-bar-fill{height:100%;border-radius:4px;background:#22c55e;transition:width .3s ease}.positions-filters{display:flex;gap:12px;margin-bottom:20px}.positions-filter-select{padding:8px 12px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:150px}.positions-filter-select:focus{outline:none;border-color:var(--border-hover)}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.transactions-date-range{display:flex;align-items:center;gap:12px}.transactions-date-input{padding:8px 12px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px}.export-button{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s ease}.export-button:hover{background:var(--bg-tertiary);border-color:var(--border-hover)}.transaction-type{display:inline-flex;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;text-transform:uppercase}.transaction-type.buy{background:#22c55e1a;color:#22c55e}.transaction-type.sell{background:#ef44441a;color:#ef4444}.transaction-type.dividend{background:#3b82f61a;color:#3b82f6}.transaction-type.interest{background:#d4a5741a;color:#d4a574}.watchlist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.add-watchlist-form{display:flex;gap:12px}.add-watchlist-input{padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;width:200px}.add-watchlist-input:focus{outline:none;border-color:#22c55e}.add-watchlist-btn{padding:8px 20px;border-radius:8px;background:#22c55e;border:none;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-watchlist-btn:hover{background:#16a34a}.remove-btn{padding:6px 12px;border-radius:6px;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s ease}.remove-btn:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.streaming-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.streaming-dot.connected{background:#22c55e;box-shadow:0 0 8px #22c55e80;animation:pulse-green 2s infinite}.streaming-dot.disconnected{background:#6b7280}.streaming-dot.error{background:#ef4444}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.5}}.live-indicator{color:#22c55e;font-size:8px;margin-left:6px;animation:pulse-green 2s infinite}.flash-up{animation:flash-green .5s ease}.flash-down{animation:flash-red .5s ease}.price-flash-up{color:#22c55e!important;font-weight:600}.price-flash-down{color:#ef4444!important;font-weight:600}@keyframes flash-green{0%{background-color:transparent}50%{background-color:#22c55e26}to{background-color:transparent}}@keyframes flash-red{0%{background-color:transparent}50%{background-color:#ef444426}to{background-color:transparent}}.alerts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.create-alert-btn{display:flex;align-items:center;gap:8px;padding:8px 20px;border-radius:8px;background:#22c55e;border:none;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.create-alert-btn:hover{background:#16a34a}.alert-status{display:inline-flex;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.alert-status.active{background:#22c55e1a;color:#22c55e}.alert-status.triggered{background:#3b82f61a;color:#3b82f6}.alert-status.disabled{background:var(--bg-tertiary);color:var(--text-muted)}.invest-settings-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;margin-bottom:20px}.invest-settings-section h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.broker-status-list{display:flex;flex-direction:column;gap:12px}.broker-status-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-tertiary);border-radius:8px}.broker-status-info{display:flex;align-items:center;gap:16px}.broker-status-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600}.broker-status-icon.robinhood{background:#00c8531a;color:#00c853}.broker-status-icon.fidelity{background:#48bb781a;color:#48bb78}.broker-status-icon.ibkr{background:#ef44441a;color:#ef4444}.broker-status-name{font-size:15px;font-weight:500;color:var(--text-primary)}.broker-status-last-sync{font-size:13px;color:var(--text-secondary)}.broker-status-indicator{display:inline-flex;align-items:center;gap:6px;font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.connected{background:#22c55e}.status-dot.disconnected{background:#ef4444}.status-dot.syncing{background:#f59e0b;animation:pulse 1s ease-in-out infinite}.sync-now-btn{padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s ease}.sync-now-btn:hover{background:var(--bg-primary);border-color:var(--border-hover)}.account-selector{display:flex;align-items:center;gap:8px}.account-selector-dropdown{padding:8px 32px 8px 12px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:180px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.account-selector-dropdown:hover:not(:disabled){border-color:var(--border-hover)}.account-selector-dropdown:focus{outline:none;border-color:#22c55e}.account-selector-dropdown:disabled{opacity:.6;cursor:not-allowed}.account-selector-dropdown optgroup{font-weight:600;color:var(--text-secondary)}.account-selector-dropdown option{font-weight:400;color:var(--text-primary);padding:8px}.account-selector-loading{font-size:12px;color:var(--text-secondary)}.invest-filters{display:flex;gap:12px;margin-bottom:20px}.invest-filter-input{padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:200px}.invest-filter-input:focus{outline:none;border-color:#22c55e}.invest-filter-input::placeholder{color:var(--text-muted)}.invest-filter-select{padding:8px 12px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:140px;cursor:pointer}.invest-filter-select:focus{outline:none;border-color:#22c55e}.options-refresh-section{display:flex;align-items:center;gap:16px;margin-bottom:24px}.refresh-greeks-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.refresh-greeks-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.refresh-greeks-btn:disabled{opacity:.5;cursor:not-allowed}.greeks-message{font-size:13px;padding:6px 12px;border-radius:6px}.greeks-message.success{background:#22c55e1a;color:#22c55e}.greeks-message.error{background:#ef44441a;color:#ef4444}.options-margin-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px;margin-bottom:24px}.margin-bar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;font-weight:500;color:var(--text-primary)}.margin-bar-header .warning{color:#f59e0b}.margin-bar-track{height:10px;background:var(--bg-tertiary);border-radius:5px;overflow:hidden;margin-bottom:12px}.margin-bar-fill{height:100%;background:#22c55e;border-radius:5px;transition:width .3s ease}.margin-bar-fill.warning{background:#f59e0b}.margin-bar-fill.danger{background:#ef4444}.margin-bar-details{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.options-strategies{margin-bottom:24px}.options-strategies h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.strategies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.strategy-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px;transition:all .2s ease}.strategy-card:hover{border-color:var(--border-hover)}.strategy-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.strategy-name{font-size:15px;font-weight:600;color:var(--text-primary)}.strategy-type{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:4px 8px;background:var(--bg-tertiary);border-radius:4px}.strategy-underlying{font-size:14px;font-weight:500;color:#22c55e;margin-bottom:16px}.strategy-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.strategy-metrics>div{display:flex;flex-direction:column;gap:4px}.strategy-metrics .label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.strategy-metrics .value{font-size:14px;font-weight:600;color:var(--text-primary)}.strategy-metrics .value.positive{color:#22c55e}.strategy-metrics .value.negative{color:#ef4444}.strategy-legs{display:flex;flex-direction:column;gap:6px}.strategy-legs .leg{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-secondary);padding:6px 10px;background:var(--bg-tertiary);border-radius:6px}.strategy-legs .leg-exp{font-size:12px;color:var(--text-muted)}.options-positions h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.options-group{margin-bottom:24px}.options-group:last-child{margin-bottom:0}.options-group-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-bottom:none;border-radius:12px 12px 0 0}.underlying-symbol{font-size:16px;font-weight:600;color:#22c55e}.positions-count{font-size:13px;color:var(--text-secondary)}.options-group .invest-table-container{border-radius:0 0 12px 12px}.options-group .invest-table{border-radius:0}.option-type{display:inline-flex;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.option-type.call{background:#22c55e1a;color:#22c55e}.option-type.put{background:#ef44441a;color:#ef4444}.invest-table tr.near-expiry{background:#f59e0b0d}.invest-table td.warning{color:#f59e0b;font-weight:500}.invest-table td.positive{color:#22c55e}.invest-table td.negative{color:#ef4444}.invest-stat-secondary{font-size:12px;color:var(--text-muted);margin-top:4px}.invest-loading{display:flex;align-items:center;justify-content:center;padding:60px 24px;color:var(--text-secondary);font-size:14px}.invest-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;text-align:center}.invest-empty p{font-size:14px;color:var(--text-secondary);margin:0}@media(max-width:1024px){.invest-allocation-grid{grid-template-columns:1fr}}@media(max-width:768px){.invest-header{flex-direction:column;gap:16px;align-items:flex-start}.invest-header-right{width:100%;justify-content:space-between}.account-selector-dropdown{min-width:140px}.invest-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 16px}.invest-nav-item{white-space:nowrap;padding:12px 16px}.invest-content{padding:16px}.invest-stats-grid{grid-template-columns:1fr 1fr}.invest-table-container{overflow-x:auto}.invest-table{min-width:600px}.positions-filters,.invest-filters{flex-wrap:wrap}.invest-filter-input{min-width:100%}.strategies-grid{grid-template-columns:1fr}.strategy-metrics{grid-template-columns:1fr 1fr 1fr;gap:8px}.transactions-header,.watchlist-header{flex-direction:column;gap:12px;align-items:flex-start}.add-watchlist-form{width:100%}.add-watchlist-input{flex:1}.options-group .invest-table{min-width:800px}}@media(max-width:480px){.invest-stats-grid{grid-template-columns:1fr}.invest-stat-value{font-size:20px}}.position-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:flex-end;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.position-detail-panel{width:600px;max-width:90vw;height:100%;background:var(--bg-primary, #0f172a);display:flex;flex-direction:column;box-shadow:-4px 0 20px #0000004d;animation:slideIn .25s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.position-detail-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.position-detail-header .header-left{display:flex;flex-direction:column;gap:4px}.position-detail-header .position-symbol{font-size:24px;font-weight:700;color:var(--text-primary, #f1f5f9);margin:0}.position-detail-header .position-name{font-size:13px;color:var(--text-secondary, #94a3b8)}.position-detail-header .close-btn{background:transparent;border:none;padding:8px;cursor:pointer;color:var(--text-secondary, #94a3b8);border-radius:8px;transition:all .2s ease}.position-detail-header .close-btn:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .05));color:var(--text-primary, #f1f5f9)}.position-detail-tabs{display:flex;gap:4px;padding:0 24px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.position-detail-tabs .tab-btn{padding:12px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, #94a3b8);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.position-detail-tabs .tab-btn:hover{color:var(--text-primary, #f1f5f9)}.position-detail-tabs .tab-btn.active{color:#22c55e;border-bottom-color:#22c55e}.position-detail-body{flex:1;overflow-y:auto;padding:20px 24px}.position-detail-content{display:flex;flex-direction:column;gap:24px}.position-metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.metric-card{background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.metric-label{font-size:12px;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.metric-value{font-size:20px;font-weight:600;color:var(--text-primary, #f1f5f9)}.metric-value.positive{color:#22c55e}.metric-value.negative{color:#ef4444}.metric-change{font-size:12px;margin-top:4px}.metric-change.positive{color:#22c55e}.metric-change.negative{color:#ef4444}.position-mini-chart{background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.position-mini-chart h4{font-size:14px;font-weight:500;color:var(--text-secondary, #94a3b8);margin:0 0 12px}.position-full-chart{background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.chart-time-selector{display:flex;gap:4px;margin-bottom:16px}.chart-header{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.chart-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, #f1f5f9)}.chart-controls{display:flex;gap:6px;flex-wrap:wrap}.chart-controls .range-btn,.chart-time-selector .range-btn{padding:8px 16px;background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:6px;color:var(--text-secondary, #94a3b8);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.chart-controls .range-btn:hover,.chart-time-selector .range-btn:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .05));color:var(--text-primary, #f1f5f9)}.chart-controls .range-btn.active,.chart-time-selector .range-btn.active{background:#22c55e26;border-color:#22c55e;color:#22c55e}.custom-range-picker{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:8px}.custom-range-picker .date-input{padding:8px 12px;background:var(--bg-primary, #0f172a);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:6px;color:var(--text-primary, #f1f5f9);font-size:13px}.custom-range-picker .date-input:focus{outline:none;border-color:#22c55e}.custom-range-picker .date-separator{color:var(--text-secondary, #94a3b8);font-size:13px}.custom-range-picker .apply-range-btn{padding:8px 16px;background:#22c55e;border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.custom-range-picker .apply-range-btn:hover:not(:disabled){background:#16a34a}.custom-range-picker .apply-range-btn:disabled{opacity:.5;cursor:not-allowed}.chart-loading,.chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary, #94a3b8);gap:12px}.chart-empty p{font-size:13px;margin:0}.holdings-breakdown{background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.holdings-breakdown h4{font-size:14px;font-weight:500;color:var(--text-secondary, #94a3b8);margin:0 0 12px}.holdings-table{width:100%;border-collapse:collapse}.holdings-table th{text-align:left;padding:8px;font-size:11px;font-weight:500;color:var(--text-secondary, #94a3b8);text-transform:uppercase;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .08))}.holdings-table td{padding:10px 8px;font-size:13px;color:var(--text-primary, #f1f5f9);border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .05))}.position-quick-actions{display:flex;gap:12px}.position-quick-actions .action-btn{padding:10px 16px;background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:8px;color:var(--text-primary, #f1f5f9);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.position-quick-actions .action-btn:hover{background:var(--bg-tertiary, rgba(255, 255, 255, .05));border-color:#22c55e}.performance-summary{display:flex;gap:24px;padding:16px;background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px}.perf-stat{display:flex;flex-direction:column;gap:4px}.perf-label{font-size:12px;color:var(--text-secondary, #94a3b8)}.perf-value{font-size:16px;font-weight:600}.perf-value.positive{color:#22c55e}.perf-value.negative{color:#ef4444}.transactions-table{width:100%;border-collapse:collapse}.transactions-table th{text-align:left;padding:10px 8px;font-size:11px;font-weight:500;color:var(--text-secondary, #94a3b8);text-transform:uppercase;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.transactions-table td{padding:12px 8px;font-size:13px;color:var(--text-primary, #f1f5f9);border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .05))}.tx-type{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.tx-type.buy{background:#22c55e26;color:#22c55e}.tx-type.sell{background:#ef444426;color:#ef4444}.tx-type.dividend{background:#3b82f626;color:#3b82f6}.cost-basis-summary{background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.cost-basis-summary h4{font-size:14px;font-weight:500;color:var(--text-secondary, #94a3b8);margin:0 0 12px}.cost-basis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cb-item{display:flex;flex-direction:column;gap:4px}.cb-label{font-size:12px;color:var(--text-secondary, #94a3b8)}.cb-value{font-size:16px;font-weight:600;color:var(--text-primary, #f1f5f9)}.cb-value.positive{color:#22c55e}.cb-value.negative{color:#ef4444}.alert-form{display:flex;flex-direction:column;gap:16px;background:var(--bg-secondary, rgba(30, 41, 59, .5));border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;padding:16px}.alert-form .form-row{display:flex;flex-direction:column;gap:6px}.alert-form label{font-size:12px;font-weight:500;color:var(--text-secondary, #94a3b8)}.alert-form select,.alert-form input{padding:10px 12px;background:var(--bg-primary, #0f172a);border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, #f1f5f9);font-size:14px}.alert-form select:focus,.alert-form input:focus{outline:none;border-color:#22c55e}.btn-create-alert{padding:12px 20px;background:#22c55e;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-create-alert:hover:not(:disabled){background:#16a34a}.btn-create-alert:disabled{opacity:.5;cursor:not-allowed}.current-price-hint{padding:12px;background:var(--bg-tertiary, rgba(255, 255, 255, .03));border-radius:8px;font-size:13px;color:var(--text-secondary, #94a3b8);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-secondary, #94a3b8)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary, #94a3b8);gap:16px}.invest-table tbody tr.clickable{cursor:pointer;transition:background .15s ease}.invest-table tbody tr.clickable:hover{background:#ffffff08}.allocation-bar-item.clickable{cursor:pointer;transition:all .15s ease}.allocation-bar-item.clickable:hover{background:#ffffff08;border-radius:8px;padding:8px;margin:-8px}@media(max-width:768px){.position-detail-panel{width:100%;max-width:100%}.position-metrics-grid,.cost-basis-grid{grid-template-columns:1fr}.performance-summary{flex-direction:column;gap:16px}}.overview-page{display:flex;flex-direction:column;gap:20px}.overview-header{display:flex;justify-content:space-between;align-items:center}.overview-total{display:flex;flex-direction:column;gap:4px}.overview-total .total-label{font-size:13px;color:var(--text-secondary)}.overview-total .total-value{font-size:32px;font-weight:700;color:var(--text-primary)}.overview-total .total-change{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:500}.overview-total .total-change.positive{color:#22c55e}.overview-total .total-change.negative{color:#ef4444}.overview-summary-section{margin:8px 0}.overview-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.overview-chart-section,.overview-news-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px;min-height:400px}.overview-chart-section h3,.overview-news-section h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px}@media(max-width:1024px){.overview-bottom-grid{grid-template-columns:1fr}}.live-ticker-widget{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.ticker-status{position:absolute;top:8px;right:12px;display:flex;align-items:center;gap:6px;z-index:10}.ticker-status .status-dot{width:6px;height:6px;border-radius:50%}.ticker-status .status-dot.connected{background:#22c55e;box-shadow:0 0 6px #22c55e}.ticker-status .status-dot.disconnected{background:#ef4444}.ticker-error{font-size:11px;color:#ef4444}.live-ticker{overflow:hidden;white-space:nowrap;padding:12px 0}.live-ticker-content{display:inline-flex;animation:ticker-scroll 60s linear infinite}.live-ticker-content:hover{animation-play-state:paused}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:inline-flex;align-items:center;gap:8px;padding:6px 20px;border-right:1px solid var(--border-color);transition:background .3s ease}.ticker-item:last-child{border-right:none}.ticker-symbol{font-size:13px;font-weight:600;color:var(--text-primary)}.ticker-price{font-size:13px;color:var(--text-primary)}.ticker-change{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:500}.ticker-change.up{color:#22c55e}.ticker-change.down{color:#ef4444}.ticker-live-dot{width:5px;height:5px;border-radius:50%;background:#22c55e;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{opacity:1;box-shadow:0 0 4px #22c55e}50%{opacity:.5;box-shadow:none}}.ticker-item.flash-up{animation:priceFlashUp .5s ease-out}.ticker-item.flash-down{animation:priceFlashDown .5s ease-out}@keyframes priceFlashUp{0%,to{background:transparent}50%{background:#22c55e40}}@keyframes priceFlashDown{0%,to{background:transparent}50%{background:#ef444440}}.consolidated-summary-table{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.summary-table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--text-secondary)}.summary-table{width:100%;border-collapse:collapse}.summary-table th{text-align:left;padding:14px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.summary-table th.category-col{width:30%}.summary-table th.broker-col{width:20%;text-align:right}.summary-table th.broker-col.ibkr{color:#ef4444}.summary-table th.broker-col.robinhood{color:#00c853}.summary-table th.total-col{width:20%;text-align:right}.summary-table td{padding:10px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.summary-table tr.section-header td{background:var(--bg-tertiary);padding:12px 16px;border-bottom:1px solid var(--border-color)}.summary-table .section-title{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--text-primary)}.summary-table .section-title svg{color:#22c55e}.summary-table tr.section-last td{border-bottom:2px solid var(--border-color)}.summary-table .metric-label{color:var(--text-secondary);font-size:13px;padding-left:28px}.summary-table .broker-value,.summary-table .total-value{text-align:right;font-weight:500}.summary-table .total-value{font-weight:600}.summary-table .positive{color:#22c55e}.summary-table .negative{color:#ef4444}.summary-table .warning{color:#f59e0b}.news-widget{display:flex;flex-direction:column;height:100%}.news-widget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.news-widget-header h3{display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.news-widget-header .refresh-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.news-widget-header .refresh-btn:hover:not(:disabled){background:var(--bg-primary);color:var(--text-primary)}.news-widget-header .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.news-widget-header .refresh-btn svg.spinning{animation:spin 1s linear infinite}.news-widget-body{flex:1;overflow-y:auto}.news-loading,.news-error,.news-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;text-align:center;color:var(--text-secondary)}.news-error button{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer}.news-list{display:flex;flex-direction:column;gap:8px}.news-symbol-group{background:var(--bg-tertiary);border-radius:8px;overflow:hidden}.news-symbol-header{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .2s ease}.news-symbol-header:hover{background:#ffffff08}.news-symbol-header .symbol-badge{display:inline-flex;padding:4px 8px;background:#22c55e26;border-radius:4px;font-size:12px;font-weight:600;color:#22c55e}.news-symbol-header .news-count{flex:1;font-size:12px;color:var(--text-secondary)}.news-symbol-header svg{color:var(--text-muted);transition:transform .2s ease}.news-symbol-header svg.expanded{transform:rotate(180deg)}.news-items{display:flex;flex-direction:column;border-top:1px solid var(--border-color)}.news-item{display:block;padding:12px;text-decoration:none;border-bottom:1px solid var(--border-color);transition:background .2s ease}.news-item:last-child{border-bottom:none}.news-item:hover{background:#ffffff05}.news-title{font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.news-source{padding:2px 6px;background:var(--bg-secondary);border-radius:3px}.price-flash-up{animation:priceFlashUp .5s ease-out}.price-flash-down{animation:priceFlashDown .5s ease-out}@keyframes priceFlashUp{0%{background-color:#22c55e4d}to{background-color:transparent}}@keyframes priceFlashDown{0%{background-color:#ef44444d}to{background-color:transparent}}.overview-robinhood{padding:0!important}.portfolio-value-card{padding:32px 24px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-bottom:1px solid var(--border-color)}.portfolio-value-amount{display:block;font-size:48px;font-weight:700;color:var(--text-primary);letter-spacing:-1px;margin-bottom:8px}.portfolio-value-change{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:500}.portfolio-value-change.positive{color:#22c55e}.portfolio-value-change.negative{color:#ef4444}.portfolio-value-change .change-amount{font-weight:600}.portfolio-value-change .change-percent{opacity:.9}.portfolio-value-change .change-period{margin-left:8px;font-size:14px;color:var(--text-muted);font-weight:400}.streaming-status{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:var(--text-muted)}.streaming-status .status-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b}.streaming-status.disconnected .status-dot{background:#ef4444;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.portfolio-breakdown{display:flex;gap:24px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.breakdown-item{display:flex;flex-direction:column;gap:4px}.breakdown-item .breakdown-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.breakdown-item .breakdown-value{font-size:16px;font-weight:600;color:var(--text-primary)}.breakdown-item .breakdown-value.negative{color:#ef4444}.breakdown-item.net-total{padding-left:24px;border-left:2px solid var(--accent-primary)}.breakdown-item.net-total .breakdown-label{color:var(--accent-primary)}.breakdown-item.net-total .breakdown-value{font-size:18px;color:var(--accent-primary)}.portfolio-breakdown-table{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);max-width:600px}.portfolio-breakdown-table table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.portfolio-breakdown-table th{text-align:right;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1)}.portfolio-breakdown-table th:first-child{text-align:left;width:35%}.portfolio-breakdown-table th:not(:first-child){width:calc(65% / 3)}.portfolio-breakdown-table td{text-align:right;padding:10px 12px;color:var(--text-primary);font-weight:500}.portfolio-breakdown-table td.row-label{text-align:left;color:var(--text-secondary);font-weight:400}.portfolio-breakdown-table td.total-col{font-weight:600;color:var(--text-primary)}.portfolio-breakdown-table td.center-text{text-align:center}.portfolio-breakdown-table td.muted,.portfolio-breakdown-table .muted{color:var(--text-muted);font-weight:400}.portfolio-breakdown-table td.positive{color:#22c55e}.portfolio-breakdown-table td.negative{color:#ef4444}.portfolio-breakdown-table tr.subtotal-row{border-top:1px solid rgba(255,255,255,.1);background:#ffffff05}.portfolio-breakdown-table td.subtotal{font-weight:600}.portfolio-breakdown-table tr.section-start{border-top:1px solid rgba(255,255,255,.1)}.portfolio-breakdown-table tr.section-start td{padding-top:14px}.portfolio-breakdown-table tr.net-row{background:#8b5cf614;border-top:2px solid rgba(139,92,246,.3)}.portfolio-breakdown-table tr.net-row td.row-label{font-weight:600;color:var(--accent-primary)}.portfolio-breakdown-table td.net-value{font-size:15px;font-weight:600;color:var(--accent-primary)}.portfolio-breakdown-table tr.section-header td.year-section-header{padding:8px 16px;font-size:12px;font-weight:500;color:var(--text-muted);background:transparent;border-top:2px solid var(--border-color);border-bottom:none;text-align:left}.overview-chart-section.full-width{padding:24px;border-bottom:1px solid var(--border-color)}.holdings-section{padding:24px}.holdings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.holdings-header h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.view-toggle{display:flex;gap:4px;background:var(--bg-secondary);border-radius:8px;padding:4px}.view-toggle .toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:32px;border:none;background:transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.view-toggle .toggle-btn:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.view-toggle .toggle-btn.active{background:var(--accent-color);color:#fff}.news-section-wrapper{padding:0 24px 24px}.news-toggle-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.news-toggle-btn:hover{background:var(--bg-tertiary)}.news-toggle-btn svg{transition:transform .2s ease}.news-section-wrapper:not(.collapsed) .news-toggle-btn{border-radius:8px 8px 0 0;border-bottom:none}.news-section-wrapper:not(.collapsed) .overview-news-section{border:1px solid var(--border-color);border-top:none;border-radius:0 0 8px 8px;max-height:400px;overflow-y:auto}.position-card-list{display:flex;flex-direction:column;gap:8px}.position-card-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-muted)}.position-card-list-empty .empty-icon{margin-bottom:16px;opacity:.5}.position-card-list-empty p{font-size:16px;font-weight:500;color:var(--text-secondary);margin:0 0 8px}.position-card-list-empty .empty-hint{font-size:13px}.position-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease}.position-card:hover{background:var(--bg-tertiary);border-color:var(--border-hover);transform:translate(4px)}.position-card:focus{outline:none;box-shadow:0 0 0 2px var(--accent-color)}.position-card-left{display:flex;flex-direction:column;gap:4px;min-width:100px}.position-symbol-row{display:flex;align-items:center;gap:8px}.position-symbol{font-size:16px;font-weight:600;color:var(--text-primary)}.broker-badge-mini{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:700;color:#fff;letter-spacing:.5px}.position-quantity{font-size:12px;color:var(--text-muted)}.position-card-center{flex:1;display:flex;align-items:center;justify-content:center;padding:0 24px;max-width:140px}.sparkline-placeholder{opacity:.6}.sparkline-placeholder.positive{color:#22c55e}.sparkline-placeholder.negative{color:#ef4444}.position-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:120px}.position-current-price{font-size:16px;font-weight:600;color:var(--text-primary)}.position-pnl{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500}.position-pnl.positive{color:#22c55e}.position-pnl.negative{color:#ef4444}.position-pnl .pnl-percent{opacity:.8}.position-market-value{font-size:11px;color:var(--text-muted)}@media(max-width:768px){.portfolio-value-amount{font-size:36px}.portfolio-value-change{font-size:14px;flex-wrap:wrap}.portfolio-value-change .change-period{width:100%;margin-left:0;margin-top:4px}.position-card{padding:12px 16px}.position-card-center{display:none}.position-card-left,.position-card-right{min-width:auto}.holdings-header{flex-wrap:wrap;gap:12px}}.watchlist-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.watchlist-header-row h2{margin:0}.watchlist-streaming-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.watchlist-streaming-status .streaming-dot{width:8px;height:8px}.watchlist-streaming-status .btn-link{background:none;border:none;color:#22c55e;font-size:13px;cursor:pointer;padding:0;margin-left:8px}.watchlist-streaming-status .btn-link:hover{text-decoration:underline}.watchlist-tabs{display:flex;gap:4px;padding:0;margin-bottom:16px;border-bottom:1px solid var(--border-color);overflow-x:auto}.watchlist-tab{padding:10px 18px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.watchlist-tab:hover{color:var(--text-primary)}.watchlist-tab.active{color:#22c55e;border-bottom-color:#22c55e}.watchlist-tab.add-tab{color:var(--text-muted);font-size:13px}.watchlist-tab.add-tab:hover{color:#22c55e}.new-list-input-container{display:flex;align-items:center;gap:6px;padding:4px 0}.new-list-input{padding:6px 12px;border-radius:6px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:13px;width:120px}.new-list-input:focus{outline:none;border-color:#22c55e}.btn-sm{padding:5px 12px;border-radius:6px;background:#22c55e;border:none;color:#fff;font-size:12px;font-weight:500;cursor:pointer}.btn-sm.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-sm.btn-ghost:hover{color:var(--text-primary)}.watchlist-filters{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.watchlist-search{padding:8px 16px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:200px}.watchlist-search:focus{outline:none;border-color:#22c55e}.watchlist-search::placeholder{color:var(--text-muted)}.watchlist-filter-select{padding:8px 12px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;min-width:120px;cursor:pointer}.watchlist-filter-select:focus{outline:none;border-color:#22c55e}.watchlist-add-section{margin-bottom:16px}.add-watchlist-form{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}.add-form-tags{min-height:36px}.watchlist-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.watchlist-table th.sortable:hover{color:var(--text-primary)}.range-bar-container{width:80px}.range-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.range-bar-fill{height:100%;background:#22c55e;border-radius:3px;transition:width .3s ease}.range-bar-fill.year{background:#3b82f6}.target-price{font-weight:500}.target-price.reached{color:#22c55e}.tag-list{display:flex;flex-wrap:wrap;gap:4px}.watchlist-tag{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;background:#22c55e26;color:#22c55e;cursor:pointer;transition:all .2s ease}.watchlist-tag:hover{background:#22c55e40}.notes-cell{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.action-buttons{display:flex;gap:6px}.btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.btn-icon:hover{background:var(--bg-tertiary);border-color:var(--border-hover);color:var(--text-primary)}.btn-icon.danger:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.move-dropdown-container{position:relative}.move-dropdown{position:absolute;top:100%;right:0;z-index:100;min-width:120px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;overflow:hidden;margin-top:4px}.move-dropdown-item{display:block;width:100%;padding:10px 16px;background:transparent;border:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;transition:background .2s ease}.move-dropdown-item:hover{background:var(--bg-tertiary)}.pnl-cell.positive{color:#22c55e}.pnl-cell.negative{color:#ef4444}.tag-input-container{position:relative;width:100%}.tag-input-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;min-height:36px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;cursor:text}.tag-input-wrapper:focus-within{border-color:#22c55e}.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#22c55e26;border-radius:12px;font-size:12px;font-weight:500;color:#22c55e}.tag-remove{display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;margin-left:2px;color:inherit;cursor:pointer;opacity:.7}.tag-remove:hover{opacity:1}.tag-input{flex:1;min-width:60px;background:transparent;border:none;color:var(--text-primary);font-size:13px;outline:none}.tag-input::placeholder{color:var(--text-muted)}.tag-suggestions{position:absolute;top:100%;left:0;right:0;z-index:100;margin:4px 0 0;padding:0;list-style:none;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;max-height:160px;overflow-y:auto}.tag-suggestion{padding:10px 14px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .15s ease}.tag-suggestion:hover,.tag-suggestion.focused{background:var(--bg-tertiary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{width:100%;max-width:500px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:24px;box-shadow:0 8px 32px #0006;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 20px}.modal-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group textarea{padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#22c55e}.form-group textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.btn-secondary{padding:10px 20px;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-hover)}.btn-primary{padding:10px 20px;border-radius:8px;background:#22c55e;border:none;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#16a34a}.btn-primary:disabled{opacity:.5;cursor:not-allowed}
