:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2333;--bg-elevated:#21262d;--bg-hover:#292e36;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--text-accent:#58a6ff;--color-up:#00c087;--color-up-bg:#00c0871f;--color-down:#ef4444;--color-down-bg:#ef44441f;--color-accent:#58a6ff;--color-accent-dim:#58a6ff26;--color-warning:#f0b429;--color-danger:#f85149;--color-purple:#a78bfa;--border-default:#ffffff0f;--border-hover:#ffffff1f;--border-focus:#58a6ff66;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 24px #0009;--shadow-glow:0 0 20px #58a6ff26;--toolbar-height:48px;--alert-panel-height:180px;--overlay-panel-width:280px;--drawing-panel-width:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex;overflow:hidden}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toolbar{height:var(--toolbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:12px;display:flex}.logo{align-items:center;gap:6px;margin-right:8px;display:flex}.logo-icon{color:var(--color-accent);filter:drop-shadow(0 0 6px #58a6ff66);font-size:20px}.logo-text{background:linear-gradient(135deg, var(--color-accent), var(--color-purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700}.symbol-selector{position:relative}.symbol-input{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);width:180px;height:32px;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:0 12px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.symbol-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #58a6ff1a}.symbol-dropdown{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md);width:260px;max-height:320px;box-shadow:var(--shadow-lg);z-index:200;margin-top:4px;display:none;position:absolute;top:100%;left:0;overflow-y:auto}.symbol-dropdown.active{display:block}.symbol-dropdown-item{cursor:pointer;transition:background var(--transition-fast);justify-content:space-between;align-items:center;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex}.symbol-dropdown-item:hover{background:var(--bg-hover)}.symbol-dropdown-item .pair{color:var(--text-primary);font-weight:600}.symbol-dropdown-item .quote{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:3px;padding:1px 6px;font-size:11px}.period-group{background:var(--bg-tertiary);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.period-btn{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:3px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.period-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.period-btn.active{color:var(--color-accent);background:var(--color-accent-dim)}.toolbar-btn{border:1px solid var(--border-default);background:var(--bg-tertiary);height:32px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:4px;padding:0 12px;font-size:12px;display:flex}.toolbar-btn:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--bg-hover)}.indicator-selector{position:relative}.indicator-dropdown{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-md);width:220px;max-height:350px;box-shadow:var(--shadow-lg);z-index:200;margin-top:4px;padding:4px;display:none;position:absolute;top:100%;right:0;overflow-y:auto}.indicator-dropdown.active{display:block}.indicator-item{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.indicator-item:hover{background:var(--bg-hover)}.indicator-item .check{border:1px solid var(--border-hover);color:#0000;width:16px;height:16px;transition:all var(--transition-fast);border-radius:3px;justify-content:center;align-items:center;font-size:10px;display:flex}.indicator-item.active .check{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.main-content{flex:1;display:flex;position:relative;overflow:hidden}.drawing-panel{width:var(--drawing-panel-width);background:var(--bg-secondary);border-right:1px solid var(--border-default);flex-direction:column;flex-shrink:0;align-items:center;gap:2px;padding:8px 0;display:flex;overflow-y:auto}.draw-btn{width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.draw-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.draw-btn.active{color:var(--color-accent);background:var(--color-accent-dim);box-shadow:inset 0 0 0 1px var(--color-accent)}.draw-btn[title]:after{content:attr(title);white-space:nowrap;background:var(--bg-elevated);color:var(--text-primary);border-radius:var(--radius-sm);pointer-events:none;opacity:0;transition:opacity var(--transition-fast);box-shadow:var(--shadow-md);z-index:50;padding:4px 8px;font-size:11px;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.draw-btn:hover[title]:after{opacity:1}.draw-separator{background:var(--border-default);width:28px;height:1px;margin:4px 0}.chart-wrapper{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.chart-container{background:var(--bg-primary);flex:1}.price-bar{background:var(--bg-secondary);border-top:1px solid var(--border-default);height:28px;color:var(--text-secondary);flex-shrink:0;align-items:center;gap:16px;padding:0 12px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.price-bar .price-item{gap:4px;display:flex}.price-bar .price-label{color:var(--text-muted)}.price-bar .price-value{color:var(--text-primary);font-weight:500}.price-bar .price-up{color:var(--color-up)}.price-bar .price-down{color:var(--color-down)}.overlay-panel{width:var(--overlay-panel-width);background:var(--bg-secondary);border-left:1px solid var(--border-default);transition:width var(--transition-normal), opacity var(--transition-normal);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.overlay-panel.collapsed{opacity:0;border-left:none;width:0}.panel-header{border-bottom:1px solid var(--border-default);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.panel-header h3{color:var(--text-primary);font-size:13px;font-weight:600}.panel-toggle{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.panel-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}.panel-body{flex:1;padding:4px;overflow-y:auto}.panel-footer{border-top:1px solid var(--border-default);flex-shrink:0;gap:6px;padding:8px;display:flex}.overlay-item{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;display:flex}.overlay-item:hover{background:var(--bg-hover);border-color:var(--border-default)}.overlay-item .oi-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.overlay-item .oi-info{flex:1;min-width:0}.overlay-item .oi-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}.overlay-item .oi-meta{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:10px}.overlay-item .oi-actions{opacity:0;transition:opacity var(--transition-fast);gap:2px;display:flex}.overlay-item:hover .oi-actions{opacity:1}.oi-action-btn{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:11px;display:flex}.oi-action-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.oi-action-btn.alert-action:hover{color:var(--color-warning)}.oi-action-btn.delete-action:hover{color:var(--color-danger)}.alert-panel{background:var(--bg-secondary);border-top:1px solid var(--border-default);max-height:var(--alert-panel-height);transition:max-height var(--transition-normal);flex-direction:column;flex-shrink:0;display:flex}.alert-panel.collapsed{max-height:38px}.alert-panel .panel-header{padding:8px 12px}.alert-header-actions{align-items:center;gap:8px;display:flex}.alert-count{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.alert-body{flex-direction:column;gap:4px;display:flex}.alert-item{border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex}.alert-item:hover{background:var(--bg-hover)}.alert-item .ai-symbol{color:var(--text-primary);min-width:90px;font-family:JetBrains Mono,monospace;font-weight:600}.alert-item .ai-type{color:var(--text-secondary);min-width:100px}.alert-item .ai-condition{color:var(--color-accent);flex:1;font-family:JetBrains Mono,monospace}.alert-item .ai-status{border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500}.alert-item .ai-status.active{color:var(--color-up);background:var(--color-up-bg)}.alert-item .ai-status.triggered{color:var(--color-warning);background:#f0b4291f}.alert-item .ai-status.disabled{color:var(--text-muted);background:var(--bg-tertiary)}.alert-item .ai-actions{gap:4px;display:flex}.btn,.btn-sm{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.btn{height:36px;padding:0 16px}.btn-sm{height:28px;padding:0 10px;font-size:11px}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{box-shadow:var(--shadow-glow);background:#4a94e6}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-default)}.btn-secondary:hover{color:var(--text-primary);border-color:var(--border-hover)}.btn-danger{color:var(--color-danger);background:#f8514926}.btn-danger:hover{background:#f8514940}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;animation:fadeIn var(--transition-fast);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:var(--radius-lg);width:400px;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-normal)}.modal-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{font-size:15px;font-weight:600}.modal-close{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.modal-body{flex-direction:column;gap:14px;padding:20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-secondary);font-size:12px;font-weight:500}.form-input{background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);height:36px;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:0 12px;font-size:13px}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #58a6ff1a}.switch{width:40px;height:22px;display:inline-block;position:relative}.switch input{display:none}.slider{background:var(--bg-tertiary);cursor:pointer;transition:background var(--transition-fast);border-radius:11px;position:absolute;inset:0}.slider:before{content:"";background:var(--text-secondary);width:16px;height:16px;transition:transform var(--transition-fast), background var(--transition-fast);border-radius:50%;position:absolute;bottom:3px;left:3px}.switch input:checked+.slider{background:var(--color-accent-dim)}.switch input:checked+.slider:before{background:var(--color-accent);transform:translate(18px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;display:flex}.empty-state .empty-icon{opacity:.4;font-size:28px}
