*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden}#root{height:100vh;width:100vw}.App{height:100%;width:100%}.dashboard{background:#0f172a;color:#e2e8f0;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh;overflow:hidden;transition:all .3s ease;width:100vw}.dashboard.light{background:#fff;color:#1e293b}.dashboard.fullscreen{left:0;position:fixed;top:0;z-index:9999}.dashboard-header{align-items:center;background:#1e293b;border-bottom:1px solid #334155;display:flex;flex-shrink:0;justify-content:space-between;min-height:60px;padding:1rem 1.5rem}.dashboard.light .dashboard-header{background:#f8fafc;border-bottom-color:#e2e8f0}.dashboard-header h1{color:#f1f5f9;font-size:1.5rem;font-weight:600}.dashboard.light .dashboard-header h1{color:#1e293b}.header-controls{display:flex;gap:.5rem}.control-btn{align-items:center;background:#334155;border:1px solid #475569;border-radius:6px;color:#f1f5f9;cursor:pointer;display:flex;font-size:1rem;height:40px;justify-content:center;min-width:40px;padding:.5rem;transition:all .2s ease}.control-btn:hover{background:#475569;transform:translateY(-1px)}.dashboard.light .control-btn{background:#e2e8f0;border-color:#cbd5e1;color:#1e293b}.dashboard.light .control-btn:hover{background:#cbd5e1}.global-controls{grid-gap:2rem;background:#1e293b;border-bottom:1px solid #334155;display:grid;flex-shrink:0;gap:2rem;grid-template-columns:1fr 1fr;padding:1rem 1.5rem}.dashboard.light .global-controls{background:#f8fafc;border-bottom-color:#e2e8f0}.control-section h3{color:#f1f5f9;font-size:1rem;font-weight:600;margin-bottom:.75rem}.dashboard.light .control-section h3{color:#1e293b}.control-group{align-items:center;display:flex;gap:.75rem;margin-bottom:.75rem}.control-group label{color:#cbd5e1;font-size:.875rem;font-weight:500;min-width:80px}.dashboard.light .control-group label{color:#64748b}.control-group input,.control-group select{background:#334155;border:1px solid #475569;border-radius:4px;color:#f1f5f9;font-size:.875rem;min-width:120px;padding:.5rem}.dashboard.light .control-group input,.dashboard.light .control-group select{background:#fff;border-color:#cbd5e1;color:#1e293b}.button-group{gap:.5rem}.btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.btn:hover{background:#2563eb;transform:translateY(-1px)}.btn-secondary{background:#64748b}.btn-secondary:hover{background:#475569}.file-input-label{cursor:pointer;display:inline-block}.charts-grid{align-content:flex-start;display:flex;flex-wrap:wrap;gap:0;height:100vh;overflow:hidden;width:100vw}.trading-view-chart{background:#0f172a;border:1px solid #334155;height:100%;position:relative;width:100%}.dashboard.light .trading-view-chart{background:#fff;border-color:#e2e8f0}.chart-container{overflow:hidden;position:relative}.chart,.chart-container{height:100%;width:100%}.loading-overlay{align-items:center;background:#0f172acc;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.dashboard.light .loading-overlay{background:#fffc}.loading-spinner{color:#3b82f6;font-size:1rem;font-weight:500}.error-overlay{align-items:center;background:#ef4444e6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.error-message{color:#fff;font-size:1rem;font-weight:500;padding:1rem;text-align:center}@media (max-width:1200px){.charts-grid{grid-template-columns:1fr 1fr 1fr;grid-template-rows:repeat(3,1fr)}}@media (max-width:900px){.charts-grid{grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,1fr)}}@media (max-width:600px){.charts-grid{grid-template-columns:1fr;grid-template-rows:repeat(8,1fr)}}@media (max-width:480px){.charts-grid{grid-template-columns:1fr;grid-template-rows:repeat(8,1fr)}}.control-overlay{align-items:flex-end;bottom:20px;display:flex;flex-direction:column-reverse;position:fixed;right:20px;z-index:1001}.control-toggle{align-items:center;background:#3b82f6;border:none;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:20px;height:50px;justify-content:center;transition:all .3s ease;width:50px}.control-toggle:hover{background:#2563eb;transform:scale(1.1)}.control-panel{animation:slideIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172af2;border:1px solid #334155;border-radius:12px;box-shadow:0 8px 32px #0006;margin-bottom:10px;min-width:300px;padding:20px;position:relative;z-index:1002}.dashboard.light .control-panel{background:#fffffff2;border-color:#e2e8f0}.control-section{margin-bottom:20px}.control-section:last-child{margin-bottom:0}.control-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.control-section label{color:#f1f5f9;display:block;font-size:14px;font-weight:600;margin-bottom:10px}.control-header label{color:#f1f5f9;font-size:14px;font-weight:600;margin-bottom:0}.dashboard.light .control-section label{color:#1e293b}.chart-count-buttons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.chart-count-btn{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;cursor:pointer;font-size:12px;font-weight:600;min-width:40px;padding:8px 12px;transition:all .2s ease}.dashboard.light .chart-count-btn{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.chart-count-btn:hover{background:#334155;transform:translateY(-1px)}.dashboard.light .chart-count-btn:hover{background:#e2e8f0}.chart-count-btn.active{background:#3b82f6;border-color:#3b82f6;box-shadow:0 2px 8px #3b82f64d;color:#fff}.layout-info{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:12px;font-weight:500;padding:4px 8px;white-space:nowrap}.dashboard.light .layout-info{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}.chart-controls-list{background:#1e293b;border:1px solid #334155;border-radius:6px;max-height:300px;overflow-y:auto;padding:8px}.dashboard.light .chart-controls-list{background:#f8fafc;border-color:#e2e8f0}.individual-chart-control{background:#0f172a;border:1px solid #334155;border-radius:4px;margin-bottom:12px;padding:8px}.dashboard.light .individual-chart-control{background:#fff;border-color:#e2e8f0}.individual-chart-control:last-child{margin-bottom:0}.chart-control-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.preset-buttons{display:flex;gap:2px}.preset-btn{background:#334155;border:1px solid #475569;border-radius:3px;color:#f1f5f9;cursor:pointer;font-size:9px;font-weight:600;letter-spacing:.5px;padding:2px 6px;text-transform:uppercase;transition:all .2s ease}.dashboard.light .preset-btn{background:#e2e8f0;border-color:#cbd5e1;color:#1e293b}.preset-btn:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;transform:translateY(-1px)}.chart-label{color:#94a3b8;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.dashboard.light .chart-label{color:#64748b}.chart-control-inputs{align-items:center;display:flex;gap:6px}.chart-control-inputs .symbol-input{background:#1e293b;border:1px solid #334155;border-radius:4px;color:#f1f5f9;flex:2 1;font-family:Monaco,Menlo,monospace;font-size:11px;height:28px;min-width:80px;padding:4px 6px}.dashboard.light .chart-control-inputs .symbol-input{background:#fff;border-color:#e2e8f0;color:#1e293b}.chart-control-inputs .symbol-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.chart-control-inputs .interval-select{background:#1e293b;border:1px solid #334155;border-radius:4px;color:#f1f5f9;cursor:pointer;flex:1 1;font-size:11px;height:28px;min-width:60px;padding:4px 6px}.dashboard.light .chart-control-inputs .interval-select{background:#fff;border-color:#e2e8f0;color:#1e293b}.chart-control-inputs .interval-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.persistence-controls{display:flex;flex-direction:column;gap:12px}.persistence-toggle{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;cursor:pointer;font-size:12px;font-weight:600;padding:8px 12px;text-align:center;transition:all .2s ease}.dashboard.light .persistence-toggle{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.persistence-toggle.enabled{background:#059669;border-color:#059669;color:#fff}.persistence-toggle.disabled{background:#dc2626;border-color:#dc2626;color:#fff}.persistence-toggle:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.persistence-buttons{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,1fr)}.persistence-btn{align-items:center;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#f1f5f9;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;justify-content:center;padding:6px 8px;transition:all .2s ease}.dashboard.light .persistence-btn{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.persistence-btn:hover:not(:disabled){background:#334155;transform:translateY(-1px)}.dashboard.light .persistence-btn:hover:not(:disabled){background:#e2e8f0}.persistence-btn:disabled{cursor:not-allowed;opacity:.5}.persistence-btn.save{background:#3b82f6;border-color:#3b82f6;color:#fff}.persistence-btn.load{background:#059669;border-color:#059669;color:#fff}.persistence-btn.clear{background:#dc2626;border-color:#dc2626;color:#fff}@media (max-width:768px){.control-overlay{right:10px;top:10px}.control-toggle{font-size:18px;height:45px;width:45px}.control-panel{min-width:280px;padding:15px}.chart-count-buttons{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.control-panel{min-width:250px;padding:12px}.chart-count-btn{font-size:11px;padding:6px 8px}.chart-controls-list{max-height:200px}.chart-control-inputs{flex-direction:column;gap:4px}.chart-control-inputs .interval-select,.chart-control-inputs .symbol-input{min-width:auto;width:100%}.persistence-buttons{gap:4px;grid-template-columns:1fr}.persistence-btn{font-size:12px;padding:8px 12px}}.resize-section{align-items:center;display:flex;gap:12px;justify-content:space-between}.resize-section label{color:#e2e8f0;font-size:13px;font-weight:500;margin:0;white-space:nowrap}.resize-toggle{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;cursor:pointer;font-size:11px;font-weight:600;min-width:40px;padding:6px 12px;text-align:center;transition:all .2s ease;width:auto}.dashboard.light .resize-toggle{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.resize-toggle.enabled{background:#059669;border-color:#059669;color:#fff}.resize-toggle.disabled{background:#6b7280;border-color:#4b5563;color:#9ca3af}.resize-toggle:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.webhook-toggle{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;cursor:pointer;font-size:12px;font-weight:600;padding:8px 12px;text-align:center;transition:all .2s ease;width:100%}.dashboard.light .webhook-toggle{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.webhook-toggle.enabled{background:#7c3aed;border-color:#7c3aed;color:#fff}.webhook-toggle.disabled{background:#64748b;border-color:#64748b;color:#fff}.webhook-toggle:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.webhook-config-section{border-top:1px solid #334155;margin-top:12px;padding-top:12px}.signal-card-toggle{background:#fff;border-radius:6px;font-size:12px;font-weight:600;padding:8px 12px;text-align:center;transition:all .2s ease;width:100%}.dashboard.light .signal-card-toggle{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.signal-card-toggle.enabled{background:#7c3aed;border-color:#7c3aed;color:#fff}.signal-card-toggle.disabled{background:#64748b;border-color:#64748b;color:#fff}.signal-card-toggle:hover{box-shadow:0 2px 8px #0003;transform:translateY(-1px)}.signal-card-container{bottom:60px;position:absolute;right:0;transition:all .3s ease;z-index:1001}.signal-card-toggle{align-items:center;background:#009688;border:1px solid #334155;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#f1f5f9;cursor:pointer;display:flex;font-size:16px;height:50px;justify-content:center;position:relative;transition:all .3s ease;width:50px}.signal-card-toggle:hover{background:#334155;box-shadow:0 6px 20px #0006;transform:scale(1.1)}.signal-badge{animation:pulse 2s infinite;background:#f10;font-size:10px;right:-5px;top:-5px}.signal-card-container{animation:slideIn .3s ease-out;margin-top:10px;max-height:600px;width:400px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.floating-signal-card{right:10px;top:70px}.signal-card-container{max-width:400px;width:90vw}.signal-card{max-height:70vh}}@media (min-width:769px){.floating-signal-card{top:80px}}.floating-signal-card.control-panel-open{top:120px}.floating-signal-card.control-panel-open .signal-card-container{max-height:500px}.signal-indicator{align-items:center;color:#cbd5e1;display:flex;font-size:11px;gap:8px}.signal-count,.signal-label{font-weight:600}.signal-count{background:#059669;border-radius:3px;color:#fff;min-width:20px;padding:2px 6px;text-align:center}.last-signal{color:#94a3b8;font-size:10px;font-style:italic}.signal-card{background:#0f172af2;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;margin:8px 0;max-height:500px;overflow:hidden;padding:16px}.signal-card-header{align-items:center;border-bottom:1px solid #334155;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.signal-card-header h3{color:#f1f5f9;font-size:16px;font-weight:600;margin:0}.signal-stats{align-items:center;display:flex;flex-direction:row;gap:4px}.total-signals{background:#059669}.showing-signals,.total-signals{border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:4px 8px}.showing-signals{background:#3b82f6}.last-update{color:#94a3b8;font-size:10px}.toggle-signals-btn{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;cursor:pointer;font-size:11px;font-weight:500;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.toggle-signals-btn:hover{background:#334155;border-color:#475569;transform:translateY(-1px)}.toggle-signals-btn:active{transform:translateY(0)}.signal-list{flex:1 1;gap:8px;overflow-y:auto}.no-signals,.signal-list{display:flex;flex-direction:column}.no-signals{align-items:center;justify-content:center;padding:40px 20px}.no-signals-icon{font-size:48px;margin-bottom:16px;opacity:.5}.no-signals-text{font-size:14px;font-weight:600;margin-bottom:8px}.no-signals-subtext{font-size:12px;opacity:.7}.signal-item{background:#1e293b;border:1px solid #334155;border-left:4px solid #059669;border-radius:6px;cursor:pointer;padding:12px;position:relative;transition:all .2s ease}.signal-item:hover{background:#334155;box-shadow:0 4px 12px #0000004d;transform:translateY(-1px)}.signal-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.signal-type{align-items:center;display:flex;gap:6px}.signal-icon{font-size:16px}.signal-type-text{font-size:12px;font-weight:600;text-transform:uppercase}.signal-symbol{font-size:16px;font-weight:700;margin-bottom:4px}.signal-price{color:#10b981;font-size:14px;font-weight:600;margin-bottom:6px}.signal-message{font-size:12px;line-height:1.4;margin-bottom:8px}.signal-meta{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.signal-source{color:#94a3b8;font-size:10px;letter-spacing:.5px;text-transform:uppercase}.signal-confidence{font-weight:600}.signal-metadata{display:flex;flex-wrap:wrap;gap:8px}.meta-item{background:#334155;border-radius:3px;color:#cbd5e1;font-size:10px;font-weight:500;padding:2px 6px}.signal-details-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.signal-details{background:#1e293b;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:100%}.signal-details-header{align-items:center;background:#0f172a;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:16px 20px}.signal-details-header h4{color:#f1f5f9;font-size:18px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.close-button:hover{background:#334155;color:#f1f5f9}.signal-details-content{flex:1 1;overflow-y:auto;padding:20px}.detail-section{margin-bottom:24px}.detail-section h5{border-bottom:1px solid #334155;color:#f1f5f9;font-size:14px;font-weight:600;margin-bottom:12px;padding-bottom:6px}.detail-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{color:#94a3b8;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.detail-item span{color:#f1f5f9;font-size:13px;font-weight:500}.confidence-bar{align-items:center;background:#334155;border-radius:10px;display:flex;height:20px;justify-content:center;overflow:hidden;position:relative}.confidence-fill{border-radius:10px;height:100%;left:0;position:absolute;top:0;transition:width .3s ease}.confidence-text{color:#fff;font-size:11px;font-weight:600;position:relative;text-shadow:0 1px 2px #00000080;z-index:1}.metadata-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.metadata-item{align-items:center;background:#334155;border-radius:4px;display:flex;justify-content:space-between;padding:8px 12px}.metadata-item label{color:#cbd5e1;font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.metadata-item span{color:#f1f5f9;font-family:monospace;font-size:11px;font-weight:500}.chart-wrapper{flex-shrink:0;flex:1 1;min-height:150px;min-width:200px;overflow:hidden;position:relative;transition:all .2s ease}.charts-grid[data-chart-count="1"] .chart-wrapper{flex:1 1 100%;height:100vh}.charts-grid[data-chart-count="2"] .chart-wrapper{flex:1 1 50%;height:100vh}.charts-grid[data-chart-count="3"] .chart-wrapper,.charts-grid[data-chart-count="4"] .chart-wrapper{flex:1 1 50%;height:50vh}.charts-grid[data-layout="5-chart"]{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;height:100vh}.charts-grid[data-layout="5-chart"] .chart-wrapper:first-child{grid-column:1/3;grid-row:1}.charts-grid[data-layout="5-chart"] .chart-wrapper:nth-child(2){grid-column:3;grid-row:1}.charts-grid[data-layout="5-chart"] .chart-wrapper:nth-child(3){grid-column:1;grid-row:2}.charts-grid[data-layout="5-chart"] .chart-wrapper:nth-child(4){grid-column:2;grid-row:2}.charts-grid[data-layout="5-chart"] .chart-wrapper:nth-child(5){grid-column:3;grid-row:2}.charts-grid[data-layout="7-chart"]{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr;height:100vh}.charts-grid[data-layout="7-chart"] .chart-wrapper:first-child{grid-column:1;grid-row:1}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(2){grid-column:2;grid-row:1}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(3){grid-column:3;grid-row:1}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(4){grid-column:4;grid-row:1}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(5){grid-column:1;grid-row:2}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(6){grid-column:2;grid-row:2}.charts-grid[data-layout="7-chart"] .chart-wrapper:nth-child(7){grid-column:3/5;grid-row:2}.charts-grid[data-layout="10-chart"]{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr;height:100vh}.charts-grid[data-layout="10-chart"] .chart-wrapper:first-child{grid-column:1;grid-row:1}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(2){grid-column:2;grid-row:1}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(3){grid-column:3;grid-row:1}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(4){grid-column:4;grid-row:1}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(5){grid-column:5;grid-row:1}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(6){grid-column:1;grid-row:2}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(7){grid-column:2;grid-row:2}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(8){grid-column:3;grid-row:2}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(9){grid-column:4;grid-row:2}.charts-grid[data-layout="10-chart"] .chart-wrapper:nth-child(10){grid-column:5;grid-row:2}.charts-grid[data-chart-count="6"] .chart-wrapper{flex:1 1 33.33%;height:50vh}.charts-grid[data-chart-count="7"] .chart-wrapper,.charts-grid[data-chart-count="8"] .chart-wrapper{flex:1 1 25%;height:50vh}.charts-grid[data-chart-count="9"] .chart-wrapper{flex:1 1 33.33%;height:33.33vh}.charts-grid[data-chart-count="10"] .chart-wrapper,.charts-grid[data-chart-count="11"] .chart-wrapper,.charts-grid[data-chart-count="12"] .chart-wrapper{flex:1 1 25%;height:33.33vh}.charts-grid[data-chart-count="13"] .chart-wrapper,.charts-grid[data-chart-count="14"] .chart-wrapper,.charts-grid[data-chart-count="15"] .chart-wrapper,.charts-grid[data-chart-count="16"] .chart-wrapper{flex:1 1 25%;height:25vh}.resize-handle{align-items:center;background:#3b82f6;border-radius:4px 0 0 0;bottom:0;color:#fff;cursor:nw-resize;display:flex;font-size:12px;font-weight:700;height:20px;justify-content:center;opacity:0;position:absolute;right:0;transition:opacity .2s ease;-webkit-user-select:none;user-select:none;width:20px;z-index:10}.chart-wrapper:hover .resize-handle{opacity:1}.resize-handle:hover{background:#2563eb;transform:scale(1.1)}.resize-handle:active{background:#1d4ed8}.chart-controls,.trading-view-chart{transition:all .3s ease}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#1e293b}::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#64748b}.dashboard.light ::-webkit-scrollbar-track{background:#f1f5f9}.dashboard.light ::-webkit-scrollbar-thumb{background:#cbd5e1}.dashboard.light ::-webkit-scrollbar-thumb:hover{background:#94a3b8}.webhook-config{background:#0f172af2;border:1px solid #334155;border-radius:8px;margin:8px 0;max-height:400px;overflow-y:auto;padding:16px}.webhook-section{border-bottom:1px solid #334155;margin-bottom:20px;padding-bottom:16px}.webhook-section:last-child{border-bottom:none;margin-bottom:0}.webhook-section h3{color:#f1f5f9;font-size:14px;font-weight:600;margin-bottom:12px}.webhook-section h4{color:#cbd5e1;font-size:12px;font-weight:500;margin-bottom:8px}.config-row{gap:8px;margin-bottom:12px}.config-row,.config-row label{align-items:center;display:flex}.config-row label{color:#cbd5e1;font-size:12px;gap:6px;min-width:120px}.config-row input[type=password],.config-row input[type=text]{background:#1e293b;border:1px solid #475569;border-radius:4px;color:#f1f5f9;flex:1 1;font-size:12px;padding:6px 8px}.config-row input[type=password]:disabled,.config-row input[type=text]:disabled{cursor:not-allowed;opacity:.5}.config-row input[type=checkbox]{margin:0}.config-row input[type=range]{flex:1 1;margin:0 8px}.checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.checkbox-group label{font-size:11px;min-width:auto}.button-group{display:flex;flex-wrap:wrap;gap:8px}.clear-button,.history-button,.real-signals-button,.test-button{border:none;border-radius:4px;cursor:pointer;font-size:11px;padding:6px 12px;transition:all .2s ease}.test-button{background:#059669;color:#fff}.test-button:hover:not(:disabled){background:#047857}.test-button:disabled{cursor:not-allowed;opacity:.5}.real-signals-button{background:#0ea5e9;color:#fff}.real-signals-button:hover{background:#0284c7}.history-button{background:#7c3aed;color:#fff}.history-button:hover{background:#6d28d9}.clear-button{background:#dc2626;color:#fff}.clear-button:hover{background:#b91c1c}.test-result{border-radius:4px;font-size:11px;font-weight:500;margin-top:8px;padding:8px}.test-result.success{background:#065f46;border:1px solid #10b981;color:#a7f3d0}.test-result.error{background:#7f1d1d;border:1px solid #ef4444;color:#fecaca}.webhook-history{margin-top:12px;max-height:200px;overflow-y:auto}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{background:#1e293b;border:1px solid #334155;border-radius:4px;font-size:11px;padding:8px}.signal-header{align-items:center;display:flex;gap:8px;margin-bottom:4px}.signal-type{border-radius:3px;font-size:10px;font-weight:600;padding:2px 6px;text-transform:uppercase}.signal-type.buy{background:#065f46;color:#a7f3d0}.signal-type.sell{background:#7f1d1d;color:#fecaca}.signal-type.alert{background:#92400e;color:#fde68a}.signal-type.update{background:#1e40af;color:#dbeafe}.signal-symbol{color:#f1f5f9;font-weight:600}.signal-time{align-items:flex-end;display:flex;flex-direction:column;gap:2px}.signal-time-relative{color:#94a3b8;font-size:11px;font-weight:500}.signal-time-absolute{color:#64748b;font-family:Courier New,monospace;font-size:10px;font-weight:400}.signal-message{color:#cbd5e1;font-style:italic;margin:4px 0}.signal-confidence{color:#94a3b8;font-size:10px}.no-signals{color:#64748b;font-style:italic;padding:20px;text-align:center}.trading-levels{background:#1e293b;border:1px solid #334155;border-radius:4px;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:6px}.trading-level{align-items:center;border-radius:3px;display:flex;font-size:11px;font-weight:500;gap:4px;padding:3px 6px}.buy-level{background:#065f46;border:1px solid #10b981;color:#a7f3d0}.profit-level{background:#7c2d12;border:1px solid #f97316;color:#fed7aa}.loss-level{background:#7f1d1d;border:1px solid #ef4444;color:#fecaca}.level-label{font-size:10px;font-weight:600;opacity:.8;text-transform:uppercase}.level-price{font-family:Monaco,Menlo,monospace;font-size:11px;font-weight:600}.clear-signals-btn{width:100%}.clear-signals-btn:hover{background:#b91c1c;box-shadow:0 4px 12px #dc26264d;transform:translateY(-1px)}.clear-signals-btn:active{box-shadow:0 2px 6px #dc262633;transform:translateY(0)}.signal-controls{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.toggle-mock-btn{background:#3b82f6;border:1px solid #2563eb;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.5px;padding:10px 16px;text-transform:uppercase;transition:all .2s ease}.toggle-mock-btn:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.toggle-mock-btn:active{box-shadow:0 2px 6px #3b82f633;transform:translateY(0)}.clear-signals-btn{background:#dc2626;border:1px solid #b91c1c;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.5px;padding:10px 16px;text-transform:uppercase;transition:all .2s ease}.technical-analysis-panel{background:#1a1a1a;border:1px solid #333;border-radius:12px;box-shadow:0 20px 40px #00000080;display:flex;flex-direction:column;height:80vh;left:50%;max-width:800px;position:fixed;top:50%;transform:translate(-50%,-50%);width:90vw;z-index:2000}.ta-header{align-items:center;background:#2a2a2a;border-bottom:1px solid #333;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:16px 20px}.ta-header-left{display:flex;flex-direction:column;gap:8px}.symbol-selector{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.quick-coins{display:flex;gap:4px;margin-left:8px}.quick-coin-btn{align-items:center;background:#333;border:1px solid #555;border-radius:4px;color:#ccc;cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;min-width:32px;padding:4px 8px;transition:all .2s ease}.quick-coin-btn:hover:not(:disabled){background:#444;border-color:#666;color:#fff}.quick-coin-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.quick-coin-btn:disabled{cursor:not-allowed;opacity:.5}.symbol-selector label{color:#ccc;font-size:14px;font-weight:500;white-space:nowrap}.coin-select{background:#1a1a1a;border:1px solid #444;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;min-width:200px;padding:6px 12px;transition:all .2s ease}.coin-select:hover:not(:disabled){background:#222;border-color:#666}.coin-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.coin-select:disabled{cursor:not-allowed;opacity:.6}.ta-header-right{align-items:center;display:flex;gap:12px}.last-updated{color:#888;font-size:12px;font-weight:400}.switching-indicator{animation:pulse 1.5s ease-in-out infinite;color:#3b82f6;font-size:12px;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.refresh-btn:hover:not(:disabled){background:#2563eb}.refresh-btn:disabled{background:#6b7280}.ta-header h3{color:#fff;font-size:18px;font-weight:600;margin:0}.close-btn{background:none;color:#888;font-size:20px;padding:4px}.close-btn:hover{background:#333;color:#fff}.ta-tabs{background:#2a2a2a;border-bottom:1px solid #333;display:flex}.ta-tab{background:none;border:none;border-bottom:2px solid #0000;color:#888;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px 16px;transition:all .2s ease}.ta-tab:hover{background:#333;color:#fff}.ta-tab.active{background:#1a1a1a;border-bottom-color:#3b82f6;color:#3b82f6}.ta-content{flex:1 1;overflow-y:auto;padding:20px}.indicator-section h4{color:#fff;font-size:16px;font-weight:600;margin:0 0 16px}.indicator-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.indicator-item{background:#2a2a2a;border:1px solid #333;border-radius:8px;padding:16px;transition:all .2s ease}.indicator-item:hover{border-color:#444;transform:translateY(-2px)}.indicator-value{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.indicator-value .value{color:#fff;font-size:16px;font-weight:600}.indicator-value .signal{background:#ffffff1a;border-radius:4px;font-size:12px;font-weight:600;padding:4px 8px}.indicator-details{display:flex;flex-direction:column;gap:8px}.indicator-details>div{color:#ccc;font-size:14px}.status.overbought{color:#ef4444}.status.oversold{color:#10b981}.status.normal{color:#6b7280}.strength{color:#3b82f6}.ma-item{align-items:center;border-bottom:1px solid #333;display:flex;justify-content:space-between;padding:8px 0}.ma-item:last-child{border-bottom:none}.ma-item .value{color:#fff;font-weight:600}.ma-item .period{color:#888;font-size:12px}.ta-error,.ta-loading{align-items:center;color:#888;display:flex;font-size:16px;height:200px;justify-content:center}.ta-error{color:#ef4444}.bottom-right-controls{bottom:20px;display:flex;flex-direction:column;gap:12px;position:fixed;right:20px;z-index:1000}.floating-btn{align-items:center;background:#3b82f6cc;border:none;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:16px;height:48px;justify-content:center;opacity:.7;padding:12px;transition:all .3s ease;width:48px}.floating-btn:hover{box-shadow:0 6px 16px #0006;opacity:1;transform:translateY(-2px)}.floating-btn-container{position:relative}.signal-card-toggle{background:#10b981cc}.news-card-toggle{background:#f59e0bcc}.technical-analysis-btn{background:#3b82f6cc}.settings-btn{background:#6b7280cc}.news-panel{background:#1e293b;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;margin:16px 0;max-height:600px;overflow:hidden;padding:16px}.news-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.news-header h3{color:#f1f5f9;font-size:18px;font-weight:600;margin:0}.refresh-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.refresh-btn:hover{background:#2563eb;transform:scale(1.05)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.news-tabs{border-bottom:1px solid #334155;display:flex;gap:4px;margin-bottom:16px}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#94a3b8;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.tab:hover{color:#f1f5f9}.tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.news-content{flex:1 1;overflow-y:auto;padding-right:8px}.news-content::-webkit-scrollbar{width:6px}.news-content::-webkit-scrollbar-track{background:#1e293b}.news-content::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.news-content::-webkit-scrollbar-thumb:hover{background:#64748b}.news-list{display:flex;flex-direction:column;gap:12px}.news-item{background:#0f172a;border:1px solid #334155;border-radius:6px;cursor:pointer;padding:12px;transition:all .2s ease}.news-item:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a;transform:translateY(-1px)}.news-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.category-badge{border-radius:4px;font-size:10px;font-weight:600;padding:2px 6px;text-transform:uppercase}.category-badge.bitcoin{background:#f59e0b;color:#1f2937}.category-badge.ethereum{background:#8b5cf6;color:#fff}.category-badge.defi{background:#10b981;color:#fff}.category-badge.nft{background:#f97316;color:#fff}.category-badge.regulation{background:#ef4444;color:#fff}.category-badge.adoption{background:#3b82f6;color:#fff}.category-badge.general{background:#6b7280;color:#fff}.news-time{color:#64748b;font-size:11px}.news-title{color:#f1f5f9;font-size:14px;font-weight:600;line-height:1.4;margin:0 0 8px}.news-meta{align-items:center;display:flex;gap:12px;margin-bottom:8px}.impact,.sentiment,.source{font-size:11px;font-weight:500}.source{color:#94a3b8}.news-tags{display:flex;flex-wrap:wrap;gap:4px}.tag{background:#374151;border-radius:3px;color:#d1d5db;font-size:10px;padding:2px 6px}.trending-list{display:flex;flex-direction:column;gap:8px}.trending-item{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px;transition:all .2s ease}.trending-item:hover{border-color:#3b82f6}.coin-info{display:flex;flex-direction:column;gap:2px}.coin-symbol{color:#f1f5f9;font-size:14px;font-weight:600}.coin-name{color:#94a3b8;font-size:12px}.coin-price{color:#f1f5f9;font-size:14px;font-weight:600}.coin-change{font-size:12px;font-weight:600}.coin-change.positive{color:#10b981}.coin-change.negative{color:#ef4444}.events-list{display:flex;flex-direction:column;gap:8px}.event-item{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px}.event-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.event-title{color:#f1f5f9;font-size:14px;font-weight:600}.event-time{color:#64748b;font-size:11px}.event-details{align-items:center;display:flex;gap:12px;margin-bottom:4px}.event-country{color:#94a3b8;font-size:12px}.event-importance{border-radius:3px;font-size:11px;font-weight:500;padding:2px 6px}.event-importance.high{background:#dc2626;color:#fff}.event-importance.medium{background:#f59e0b;color:#fff}.event-importance.low{background:#6b7280;color:#fff}.event-forecast{color:#94a3b8;font-size:11px}.overview-content{display:flex;flex-direction:column;gap:20px}.overview-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.stat-item{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;text-align:center}.stat-label{color:#94a3b8;font-size:11px;font-weight:500;margin-bottom:4px;text-transform:uppercase}.stat-value{color:#f1f5f9;font-size:16px;font-weight:600}.fear-greed-index{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:16px;text-align:center}.fng-label{color:#f1f5f9;font-size:14px;font-weight:600;margin-bottom:12px}.fng-container{background:#374151;border-radius:10px;height:20px;margin-bottom:8px;overflow:hidden;position:relative}.fng-bar{height:100%;transition:width .3s ease}.fng-value{color:#fff;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.fng-text,.fng-value{font-size:12px;font-weight:600}.no-data{color:#64748b;font-style:italic;padding:20px;text-align:center}.news-card-container{background:#1a1a1a;border:1px solid #333;bottom:120px;box-shadow:0 8px 32px #0006;max-height:500px;max-width:400px;min-width:300px;position:fixed;right:20px;transition:all .3s ease;z-index:1001}.news-card-toggle{align-items:center;background:#059669;border:none;border-radius:50%;box-shadow:0 4px 12px #0596694d;color:#fff;cursor:pointer;display:flex;font-size:20px;height:50px;justify-content:center;transition:all .3s ease;width:50px}.news-card-toggle:hover{background:#047857;box-shadow:0 6px 16px #05966966;transform:scale(1.1)}.news-card-container{animation:slideInRight .3s ease-out;background:#1e293b;border:1px solid #334155;border-radius:12px;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0000001a;max-height:80vh;overflow:hidden;position:absolute;right:0;top:60px;width:400px}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.news-card-container .news-panel{border:none;border-radius:12px;margin:0;max-height:none}.news-card-container .news-header{margin-bottom:12px;padding:16px 16px 0}.news-card-container .news-tabs{margin-bottom:12px;padding:0 16px}.news-card-container .news-content{max-height:calc(80vh - 120px);padding:0 16px 16px}.help-btn{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s ease}.help-btn:hover:not(:disabled){background:#059669}.help-btn:disabled{background:#6b7280;cursor:not-allowed}.help-panel{background:#1a1a1a;border:1px solid #333;border-radius:8px;margin:16px 20px;max-height:400px;overflow-y:auto}.help-content{padding:20px}.help-content h4{border-bottom:2px solid #3b82f6;color:#fff;font-size:18px;margin:0 0 20px;padding-bottom:8px}.help-sections{grid-gap:20px;display:grid;gap:20px;margin-bottom:20px}.help-section{background:#222;border-left:4px solid #3b82f6;border-radius:8px;padding:16px}.help-section h5{color:#3b82f6;font-size:16px;margin:0 0 8px}.help-description{color:#ccc;font-size:14px;line-height:1.5;margin:0 0 12px}.help-interpretation{margin:12px 0}.help-interpretation strong{color:#fff;font-size:14px}.help-interpretation ul{margin:8px 0 0;padding-left:20px}.help-interpretation li{color:#ccc;font-size:13px;line-height:1.4;margin:4px 0}.help-simple{background:#2a2a2a;border-radius:4px;margin-top:8px;padding:8px 12px}.help-simple strong{color:#10b981;font-size:13px}.help-simple{color:#e5e5e5;font-size:13px;line-height:1.4}.help-tips{background:#1e3a8a;border-left:4px solid #3b82f6;border-radius:8px;padding:16px}.help-tips h5{color:#60a5fa;font-size:16px;margin:0 0 12px}.help-tips ul{margin:0;padding-left:20px}.help-tips li{color:#e5e5e5;font-size:13px;line-height:1.4;margin:6px 0}.indicator-explanation{background:#1e3a8a;border:1px solid #3b82f6;border-radius:8px;margin-bottom:20px;padding:16px}.indicator-explanation p{color:#e5e5e5;font-size:14px;line-height:1.5;margin:8px 0}.indicator-explanation strong{color:#60a5fa}.trading-suggestion-panel{margin-bottom:20px}.suggestion-card{background:#1a1a1a;border:2px solid #333;border-radius:12px;padding:8px;transition:all .3s ease}.suggestion-card.buy{background:linear-gradient(135deg,#1a1a1a,#0f2e1a);border-color:#10b981}.suggestion-card.sell{background:linear-gradient(135deg,#1a1a1a,#2e0f0f);border-color:#ef4444}.suggestion-card.hold{background:linear-gradient(135deg,#1a1a1a,#2e1f0f);border-color:#f59e0b}.suggestion-header{align-items:center;display:flex;justify-content:space-between}.suggestion-main{align-items:center;display:flex;gap:12px}.suggestion-icon{font-size:32px;line-height:1}.suggestion-text h3{color:#fff;font-size:24px;font-weight:700;margin:0}.suggestion-text p{color:#888;font-size:14px;margin:4px 0 0}.suggestion-stats{display:flex;font-size:14px;font-weight:600;gap:16px}.buy-signals{color:#10b981}.sell-signals{color:#ef4444}.disclaimer{background:#1e3a8a;border-left:4px solid #f59e0b;border-radius:8px;color:#e5e5e5;font-size:12px;line-height:1.4;margin-top:16px;padding:12px 16px;text-align:center}.disclaimer strong{color:#f59e0b}.signal-badge{align-items:center;background:#ef4444;border:2px solid #1a1a1a;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:600;height:20px;justify-content:center;position:absolute;right:-8px;top:-8px;width:20px}@media (max-width:768px){.bottom-right-controls{bottom:10px;gap:8px;right:10px}.floating-btn{font-size:14px;height:44px;width:44px}}.news-header-actions,.signal-header-actions{align-items:center;display:flex;gap:8px}.close-btn{align-items:center;background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:600;height:24px;justify-content:center;min-width:24px;padding:6px 8px;transition:all .2s ease}.close-btn:hover{background:#dc2626;transform:scale(1.05)}.news-card-container,.signal-card-container,.technical-analysis-panel{animation:slideInFromBottom .3s ease}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dashboard:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000001a;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .3s ease;z-index:998}.dashboard.panel-open:before{opacity:1;pointer-events:auto}
/*# sourceMappingURL=main.81a6170c.css.map*/