.time-selector{margin:8px 0;padding:8px;border:1px solid #ddd;border-radius:8px;background-color:#f9f9f9;overflow:hidden}.time-selector-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid #eee}.time-selector-header label{margin-bottom:0;font-size:12px}.collapse-icon{font-size:.8rem;transition:transform .2s ease-in-out}.time-selector-content{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;flex-wrap:wrap;transition:max-height .3s ease-out,opacity .3s ease-out;max-height:500px;opacity:1}.time-selector-content.collapsed{max-height:0;opacity:0;overflow:hidden;margin-bottom:0}.time-selector .time-input{width:100%;padding:4px 6px;font-size:12px;border:1px solid var(--border-color);background-color:var(--input-bg-color);color:var(--text-color);border-radius:4px;box-sizing:border-box;transition:border-color .2s}.time-selector .time-input:focus{outline:none;border-color:var(--primary-color)}.time-selector .time-input::-webkit-calendar-picker-indicator{filter:invert(var(--icon-filter));cursor:pointer;transform:scale(.8)}.time-selector .time-buttons{display:flex;gap:4px;margin-top:4px}.time-selector .time-button{flex-grow:1;padding:3px 6px;font-size:.75rem;background-color:var(--button-bg-color);color:var(--button-text-color);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:background-color .2s}.time-selector .time-button:hover{background-color:var(--button-hover-bg-color)}.time-selector .selected-time-info{margin-top:6px;font-size:.75rem;color:var(--text-color-secondary);text-align:center;background-color:var(--bg-color-secondary);padding:3px;border-radius:3px}.dark .time-selector{background-color:#2d2d2d;border-color:#555}.dark .time-selector label{color:#e0e0e0}.dark .time-input{background-color:#3d3d3d;border-color:#555;color:#e0e0e0}.dark .time-input:focus{border-color:#4a9eff;box-shadow:0 0 0 2px #4a9eff40}.dark .time-button{border-color:#4a9eff;background-color:#3d3d3d;color:#4a9eff}.dark .time-button:hover{background-color:#4a9eff;color:#fff}.dark .no-data{color:#aaa}.dark .loading{color:#4a9eff}.dark .warning{color:#ff8c69}.dark .fallback-info{color:#aaa}.dark .label{color:#bbb}.dark .range-text,.dark .stats-text{color:#e0e0e0}.dark .selected-text{color:#4a9eff}@media (max-width: 768px){.time-selector-content{flex-direction:column;align-items:stretch}.time-buttons{justify-content:center}.time-info{font-size:12px}.time-range,.time-stats,.selected-time{flex-direction:column;align-items:flex-start;gap:4px}.label{min-width:auto}}.config-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.config-panel{background:#fff;border-radius:8px;width:90%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.config-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0;background-color:#f8f9fa}.config-panel-header h2{margin:0;color:#333;font-size:1.5rem}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.close-btn:hover{background-color:#e0e0e0}.config-panel-tabs{display:flex;border-bottom:1px solid #e0e0e0;background-color:#f8f9fa;overflow-x:auto}.tab{padding:12px 20px;border:none;background:none;cursor:pointer;color:#666;font-size:14px;white-space:nowrap;border-bottom:3px solid transparent;transition:all .2s}.tab:hover{background-color:#e9ecef;color:#333}.tab.active{color:#007bff;border-bottom-color:#007bff;background-color:#fff}.config-panel-content{flex:1;overflow-y:auto;padding:20px}.config-section h3{margin:0 0 20px;color:#333;font-size:1.2rem;border-bottom:2px solid #007bff;padding-bottom:8px}.config-item{margin-bottom:20px}.config-item label{display:block;margin-bottom:5px;font-weight:500;color:#333;font-size:14px}.config-item input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:border-color .2s}.config-item input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.config-hint{display:block;margin-top:5px;font-size:12px;color:#666;font-style:italic}.config-panel-actions{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:1px solid #e0e0e0;background-color:#f8f9fa}.config-panel-actions button{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.reset-btn:hover{background-color:#5a6268}.cancel-btn{background-color:#6c757d;color:#fff}.cancel-btn:hover{background-color:#5a6268}.save-btn{background-color:#007bff;color:#fff}.save-btn:hover{background-color:#0056b3}.config-summary{border-top:1px solid #e0e0e0;padding:15px 20px;background-color:#f8f9fa;max-height:150px;overflow-y:auto}.config-summary h4{margin:0 0 10px;color:#333;font-size:1rem}.config-summary pre{margin:0;font-size:12px;color:#666;white-space:pre-wrap;line-height:1.4}@media (prefers-color-scheme: dark){.config-panel{background:#2d3748;color:#e2e8f0}.config-panel-header,.config-panel-tabs,.config-panel-actions,.config-summary{background-color:#1a202c;border-color:#4a5568}.config-panel-header h2,.config-section h3,.config-item label,.config-summary h4{color:#e2e8f0}.tab{color:#a0aec0}.tab:hover{background-color:#2d3748;color:#e2e8f0}.tab.active{color:#63b3ed;background-color:#2d3748;border-bottom-color:#63b3ed}.config-item input{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}.config-item input:focus{border-color:#63b3ed;box-shadow:0 0 0 2px #63b3ed40}.config-hint,.config-summary pre,.close-btn{color:#a0aec0}.close-btn:hover{background-color:#4a5568}}@media (max-width: 768px){.config-panel{width:95%;max-height:95vh}.config-panel-header{padding:15px}.config-panel-header h2{font-size:1.3rem}.tab{padding:10px 15px;font-size:13px}.config-panel-content{padding:15px}.config-panel-actions{padding:15px;flex-wrap:wrap}.config-panel-actions button{flex:1;min-width:80px}.config-summary{padding:10px 15px}}@media (max-width: 480px){.config-panel-tabs{flex-wrap:wrap}.tab{flex:1;min-width:0;padding:8px 10px;font-size:12px}.config-panel-actions{flex-direction:column}.config-panel-actions button{width:100%;margin-bottom:5px}.config-panel-actions button:last-child{margin-bottom:0}}.loading-state-indicator{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin:8px 0;font-size:14px;color:var(--text-primary)}.loading-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.loading-header h3{margin:0;font-size:16px;font-weight:600}.loading-phase{background:var(--accent-color);color:#fff;padding:2px 8px;border-radius:12px;font-size:12px;text-transform:uppercase}.loading-section{margin-bottom:16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:500}.progress-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;transition:width .3s ease}.progress-fill.preload{background:linear-gradient(90deg,#2196f3,#42a5f5)}.loading-details{display:flex;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.performance-section{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;padding:12px;background:var(--bg-tertiary);border-radius:6px}.performance-item{display:flex;justify-content:space-between;align-items:center}.performance-item .label{color:var(--text-secondary);font-size:12px}.performance-item .value{font-weight:500;font-size:12px}.network-quality{font-weight:600}.error-section{background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:6px;padding:12px;margin-bottom:16px}.error-message{display:flex;align-items:center;gap:8px;color:#f44336;font-size:13px;margin-bottom:8px}.error-icon{font-size:16px}.retry-info{font-size:12px;color:var(--text-secondary)}.state-details{background:var(--bg-tertiary);border-radius:6px;padding:12px}.detail-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.detail-item:last-child{margin-bottom:0}.detail-item .label{color:var(--text-secondary);font-size:12px;font-weight:500}.detail-item .value{font-size:12px;text-align:right;max-width:60%}.loading-state-compact{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-radius:6px;font-size:12px}.loading-indicator,.preload-indicator{display:flex;flex-direction:column;align-items:center;gap:8px}.loading-text-vertical{white-space:nowrap;text-align:center}.loading-dots:after{content:"";animation:loading-dots 1.5s infinite}.loading-spinner,.preload-spinner{width:16px;height:16px;border:2px solid var(--border-color);border-top:2px solid var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.preload-spinner{border-top-color:#2196f3}.progress-compact{position:relative;width:60px;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-bar-compact{height:100%;background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:3px;transition:width .3s ease}.progress-text{position:absolute;top:-20px;right:0;font-size:10px;color:var(--text-secondary)}@media (max-width: 768px){.loading-state-indicator{padding:12px;font-size:13px}.performance-section{grid-template-columns:1fr}.loading-details{flex-direction:column;gap:4px}}[data-theme=dark] .loading-state-indicator{--bg-secondary: #2d2d2d;--bg-tertiary: #3d3d3d;--border-color: #555;--text-primary: #ffffff;--text-secondary: #cccccc;--accent-color: #4CAF50}[data-theme=light] .loading-state-indicator{--bg-secondary: #ffffff;--bg-tertiary: #f5f5f5;--border-color: #e0e0e0;--text-primary: #333333;--text-secondary: #666666;--accent-color: #4CAF50}.control-panel{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:6px;height:100%;overflow-y:auto;transition:background-color .3s ease,border-color .3s ease}.control-panel.dark{background:#3a3a3a;border:1px solid #555555;color:#d1d4dc}.controls-row,.controls-row-2{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.playback-controls{display:flex;flex-direction:column;gap:4px}.playback-controls button{padding:4px 8px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background-color .2s;width:100%}.play-pause-btn{background-color:#007bff;color:#fff}.play-pause-btn:hover:not(:disabled){background-color:#0056b3}.continue-btn{background-color:#28a745;color:#fff}.continue-btn:hover:not(:disabled){background-color:#218838}.reset-btn{background-color:#6c757d;color:#fff}.reset-btn:hover:not(:disabled){background-color:#545b62}.playback-controls button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}.control-panel.dark .playback-controls button:disabled{background-color:#3a3a3a;color:#666}.auto-play-control{display:flex;align-items:center;justify-content:flex-start;margin:0;padding:4px;background:#e9ecef;border-radius:4px;transition:background-color .3s ease}.control-panel.dark .auto-play-control{background:#3a3a3a}.auto-play-control label{display:flex;align-items:center;gap:4px;font-size:12px;cursor:pointer}.auto-play-control input[type=checkbox]{margin:0}.status-info{text-align:left;font-size:11px;font-weight:700;padding:4px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;transition:background-color .3s ease,border-color .3s ease}.control-panel.dark .status-info{background:#2a2a2a;border:1px solid #3a3a3a}.speed-control{display:flex;flex-direction:column;gap:4px}.speed-control label{font-weight:700;text-align:left;font-size:12px}.speed-control input[type=range]{width:100%}.time-selector-section{margin:8px 0;padding:6px;background:#f0f0f0;border-radius:4px;border:1px solid #ddd}.control-panel.dark .time-selector-section{background:#2d2d2d;border-color:#555}.progress-section{margin-bottom:6px}.progress-info{display:flex;justify-content:space-between;margin-bottom:4px;font-size:11px;color:#495057;transition:color .3s ease}.control-panel.dark .progress-info{color:#a0a0a0}.progress-bar{position:relative;height:16px;background-color:#e9ecef;border-radius:8px;overflow:hidden;transition:background-color .3s ease}.control-panel.dark .progress-bar{background-color:#3a3a3a}.progress-fill{height:100%;background-color:#007bff;transition:width .1s ease}.progress-slider{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.progress-slider:disabled{cursor:not-allowed}.no-data{color:#6c757d}.playing{color:#28a745}.paused{color:#ffc107}.product-selector-section{display:flex;flex-direction:column;gap:4px}.product-and-theme-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-selector-section label{font-weight:700;font-size:12px;text-align:left}.product-select{padding:4px 6px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .product-select{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.product-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .product-select:disabled{background-color:#1a1a1a;color:#666}.loading-text{color:#666;font-size:10px}.error-text{color:#e74c3c;font-size:10px}.replay-mode-control{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.replay-mode-control label{font-weight:700;font-size:12px;text-align:left}.replay-mode-select{padding:4px 6px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .replay-mode-select{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.replay-mode-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .replay-mode-select:disabled{background-color:#1a1a1a;color:#666}.mode-indicator{font-size:10px;text-align:center;margin-top:2px;padding:2px 4px;border-radius:3px;background:#e9ecef;color:#495057;transition:background-color .3s ease,color .3s ease}.control-panel.dark .mode-indicator{background:#2a2a2a;color:#a0a0a0}.timeframe-control{display:flex;flex-direction:column;gap:4px}.timeframe-control label{font-weight:700;font-size:12px;text-align:left}.timeframe-select{padding:4px 6px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .timeframe-select{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.timeframe-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .timeframe-select:disabled{background-color:#1a1a1a;color:#666}.timezone-control{display:flex;flex-direction:column;gap:4px}.timezone-control label{font-weight:700;font-size:12px;text-align:left}.timezone-select{padding:4px 6px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .timezone-select{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.timezone-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .timezone-select:disabled{background-color:#1a1a1a;color:#666}.interval-control{display:flex;flex-direction:column;gap:4px;position:relative}.interval-control label{font-weight:700;font-size:12px;text-align:left}.interval-input{padding:4px 25px 4px 4px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;text-align:center;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .interval-input{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.interval-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .interval-input:disabled{background-color:#1a1a1a;color:#666}.interval-control:after{content:"秒";position:absolute;right:8px;top:50%;transform:translateY(calc(50% + 2px));font-size:10px;color:#666;pointer-events:none;transition:color .3s ease}.control-panel.dark .interval-control:after{color:#a0a0a0}.theme-toggle-btn{background:none;border:1px solid #dee2e6;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.theme-toggle-btn:hover{background:#f8f9fa;transform:scale(1.1)}.control-panel.dark .theme-toggle-btn{border:1px solid #3a3a3a}.control-panel.dark .theme-toggle-btn:hover{background:#2a2a2a}.config-toggle-btn{background:none;border:1px solid #dee2e6;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.config-toggle-btn:hover{background:#f8f9fa;transform:scale(1.1);border-color:#007bff}.control-panel.dark .config-toggle-btn{border:1px solid #3a3a3a}.control-panel.dark .config-toggle-btn:hover{background:#2a2a2a;border-color:#63b3ed}.drawing-tools-control{display:flex;flex-direction:column;gap:4px}.drawing-tools-control label{font-weight:700;font-size:12px;text-align:left}.drawing-tool-select{padding:4px 6px;border:1px solid #ddd;border-radius:4px;font-size:12px;width:100%;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.control-panel.dark .drawing-tool-select{background:#2a2a2a;border:1px solid #3a3a3a;color:#d1d4dc}.drawing-tool-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.control-panel.dark .drawing-tool-select:disabled{background-color:#1a1a1a;color:#666}.drawing-tool-status{font-size:10px;color:#28a745;font-weight:400}.control-panel.dark .drawing-tool-status{color:#4caf50}.drawing-tool-hint{font-size:10px;color:#6c757d;text-align:left;margin-top:2px;padding:4px 6px;background:#f8f9fa;border-radius:3px;border:1px solid #e9ecef;line-height:1.3;white-space:pre-line}.control-panel.dark .drawing-tool-hint{color:#a0a0a0;background:#2a2a2a;border:1px solid #3a3a3a}.undo-redo-controls{display:flex;gap:4px;margin-top:4px}.undo-btn,.redo-btn{flex:1;padding:4px 6px;border:1px solid #6c757d;border-radius:4px;background:#6c757d;color:#fff;font-size:11px;cursor:pointer;transition:background-color .2s,border-color .2s}.undo-btn:hover:not(:disabled),.redo-btn:hover:not(:disabled){background:#545b62;border-color:#4e555b}.undo-btn:disabled,.redo-btn:disabled{background:#e9ecef;border-color:#e9ecef;color:#6c757d;cursor:not-allowed}.control-panel.dark .undo-btn,.control-panel.dark .redo-btn{background:#6c757d;border-color:#6c757d}.control-panel.dark .undo-btn:hover:not(:disabled),.control-panel.dark .redo-btn:hover:not(:disabled){background:#545b62;border-color:#4e555b}.control-panel.dark .undo-btn:disabled,.control-panel.dark .redo-btn:disabled{background:#3a3a3a;border-color:#3a3a3a;color:#666}.clear-drawings-btn{padding:4px 8px;border:1px solid #dc3545;border-radius:4px;background:#dc3545;color:#fff;font-size:11px;cursor:pointer;transition:background-color .2s,border-color .2s;margin-top:4px}.clear-drawings-btn:hover{background:#c82333;border-color:#bd2130}.control-panel.dark .clear-drawings-btn{background:#dc3545;border-color:#dc3545}.control-panel.dark .clear-drawings-btn:hover{background:#c82333;border-color:#bd2130}.batch-loading-status{margin-top:8px;padding:8px;background:#f0f8ff;border:1px solid #b3d9ff;border-radius:4px;font-size:11px}.control-panel.dark .batch-loading-status{background:#2a3a4a;border:1px solid #4a5a6a;color:#d1d4dc}.batch-info{display:flex;align-items:center;gap:8px;margin-bottom:4px}.batch-label{font-weight:700;color:#495057}.control-panel.dark .batch-label{color:#adb5bd}.batch-loading{color:#ffc107;animation:pulse 1.5s infinite}.batch-preloading{color:#17a2b8;animation:pulse 1.5s infinite}.batch-ready{color:#28a745}.batch-complete{color:#6f42c1}.batch-error{color:#dc3545;margin-top:4px}.batch-progress{display:flex;flex-direction:column;gap:2px}.batch-progress-text{font-size:10px;color:#6c757d}.control-panel.dark .batch-progress-text{color:#adb5bd}.batch-progress-bar{height:4px;background:#e9ecef;border-radius:2px;overflow:hidden}.control-panel.dark .batch-progress-bar{background:#495057}.batch-progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);transition:width .3s ease}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.network-quality{padding:2px 6px;border-radius:10px;font-size:10px;font-weight:700}.network-quality.fast{background:#4caf5033;color:#4caf50}.network-quality.normal{background:#2196f333;color:#2196f3}.network-quality.slow{background:#ff980033;color:#ff9800}.loaded-bars-info{font-size:9px;color:#6c757d;margin-left:4px}.control-panel.dark .loaded-bars-info{color:#adb5bd}.performance-metrics{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:4px;border-top:1px solid #e9ecef;font-size:9px;color:#6c757d}.control-panel.dark .performance-metrics{border-top-color:#495057;color:#adb5bd}.load-time{color:#17a2b8}.retry-count{color:#ffc107;font-weight:700}.control-panel .loading-state-compact{margin:4px 0;padding:6px 8px;background:#007bff1a;border:1px solid rgba(0,123,255,.2);border-radius:4px;font-size:11px}.control-panel.dark .loading-state-compact{background:#007bff26;border-color:#007bff4d}@media (max-width: 768px){.performance-metrics{flex-direction:column;align-items:flex-start;gap:2px}.batch-info{flex-wrap:wrap;gap:4px}.network-quality{font-size:9px;padding:1px 4px}}.chart-container{position:relative;background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;transition:background-color .3s ease,border-color .3s ease;display:flex;flex-direction:column}.chart-container.dark{background:#363636;border:1px solid #555555}.chart-header{padding:5px 15px;background:#f8f9fa;border-bottom:1px solid #dee2e6;transition:background-color .3s ease,border-color .3s ease;flex-shrink:0}.chart-container.dark .chart-header{background:#363636;border-bottom:1px solid #4a4a4a}.chart-header h3{margin:0;color:#333;font-size:16px;transition:color .3s ease}.chart-container.dark .chart-header h3{color:#d1d4dc}.chart-info{font-size:12px;color:#666;font-family:monospace;transition:color .3s ease;line-height:1}.chart-container.dark .chart-info{color:#a0a0a0}.chart{width:100%;height:100%;flex-grow:1}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10;transition:background-color .3s ease}.chart-container.dark .loading-overlay{background:#282828cc}.loading-overlay .loading-spinner{width:32px;height:32px;border:3px solid #e0e0e0;border-top:3px solid #4CAF50;border-radius:50%;animation:spin 1s linear infinite}.chart-container.dark .loading-overlay .loading-spinner{border-color:#555;border-top-color:#4caf50}.loading-overlay .loading-text{padding:12px 20px;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;font-size:16px;color:#666;transition:background-color .3s ease,color .3s ease}.chart-container.dark .loading-overlay .loading-text{background:#363636;color:#d1d4dc;box-shadow:0 2px 8px #0003}.loading-overlay .loading-dots:after{content:"";animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app{min-height:100%;transition:background-color .3s ease}.app.dark{background-color:#282828}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px 20px;text-align:center;box-shadow:0 2px 10px #0000001a}.app-header h1{font-size:18px;margin:0}.main-content{max-width:1400px;margin:0 auto;padding:8px}.content-layout{display:flex;height:calc(100vh - 16px);position:relative}.chart-section{flex:1;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;min-height:0;transition:background-color .3s ease,box-shadow .3s ease}.app.dark .chart-section{background:#363636;box-shadow:0 2px 8px #0003}.resize-handle{width:4px;background:#dee2e6;cursor:col-resize;position:absolute;top:0;bottom:0;z-index:10;transition:background-color .2s}.resize-handle:hover{background:#007bff}.resize-handle:before{content:"";position:absolute;left:-2px;right:-2px;top:0;bottom:0}.controls-section{position:absolute;top:0;right:0;bottom:0;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;transition:background-color .3s ease,box-shadow .3s ease;z-index:11}.app.dark .controls-section{background:#363636;box-shadow:0 2px 8px #0003}@media (max-width: 768px){.main-content{padding:10px}.app-header{padding:15px}.app-header h1{font-size:24px}.content-layout{flex-direction:column;height:auto}.chart-section{margin-right:0;margin-bottom:8px}.resize-handle{display:none}.controls-section{width:100%!important;margin-left:0}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none;transition:all .2s ease}button:disabled{cursor:not-allowed;opacity:.6}input,select{outline:none}
