.chart-widget-header[data-v-69a73574]{align-items:center;background:var(--dc-widget-header);border-bottom:1px solid var(--dc-widget-border);cursor:grab;display:flex;flex-shrink:0;gap:4px;justify-content:space-between;min-height:28px;padding:3px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chart-widget-header[data-v-69a73574]:active{cursor:grabbing}.header-left[data-v-69a73574]{min-width:0}.header-left[data-v-69a73574],.symbol-display[data-v-69a73574]{align-items:center;display:flex}.symbol-display[data-v-69a73574]{border-radius:3px;cursor:pointer;gap:4px;padding:1px 4px;transition:background .15s}.symbol-display[data-v-69a73574]:hover{background:var(--dc-hover-bg)}.symbol-name[data-v-69a73574]{color:var(--dc-text);font-size:11px;font-weight:600}.symbol-interval[data-v-69a73574]{color:var(--dc-text-muted);font-size:9px;font-weight:500}.symbol-edit[data-v-69a73574]{position:relative}.symbol-input[data-v-69a73574]{background:var(--dc-widget-bg);border:1px solid var(--dc-accent);border-radius:3px;color:var(--dc-text);font-size:11px;outline:none;padding:2px 6px;width:100px}.symbol-dropdown[data-v-69a73574]{background:var(--dc-widget-bg);border:1px solid var(--dc-widget-border);border-radius:4px;box-shadow:0 4px 12px #00000026;left:0;margin-top:2px;max-height:200px;min-width:180px;overflow-y:auto;position:absolute;top:100%;z-index:100}.symbol-option[data-v-69a73574]{align-items:center;background:transparent;border:none;color:var(--dc-text);cursor:pointer;display:flex;font-size:11px;justify-content:space-between;padding:5px 8px;text-align:left;width:100%}.symbol-option[data-v-69a73574]:hover{background:var(--dc-hover-bg)}.option-symbol[data-v-69a73574]{font-weight:600}.option-desc[data-v-69a73574]{color:var(--dc-text-muted);font-size:10px;margin-left:8px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions[data-v-69a73574]{display:flex;gap:1px}.widget-btn[data-v-69a73574]{align-items:center;background:transparent;border:none;border-radius:3px;color:var(--dc-text-muted);cursor:pointer;display:flex;height:18px;justify-content:center;padding:0;transition:background .15s,color .15s;width:18px}.widget-btn svg[data-v-69a73574]{height:10px;width:10px}.widget-btn svg path[data-v-69a73574],.widget-btn svg rect[data-v-69a73574]{stroke-width:1.5}.widget-btn[data-v-69a73574]:hover{background:var(--dc-hover-bg);color:var(--dc-text)}.widget-btn-close[data-v-69a73574]:hover{background:#ef444426;color:#ef4444}.widget-btn-layers[data-v-69a73574]{color:var(--dc-accent,#3b82f6)}.widget-btn-layers[data-v-69a73574]:hover{background:#3b82f61a}.widget-btn-pinned[data-v-69a73574]{background:#f59e0b26;color:#f59e0b}.widget-btn-pinned[data-v-69a73574]:hover{background:#f59e0b40}.dashboard-canvas-wrapper{--dc-canvas-bg:#e8e8e8;--dc-widget-bg:#fff;--dc-widget-header:#f9fafb;--dc-widget-border:#e5e7eb;--dc-text:#111827;--dc-text-muted:#6b7280;--dc-hover-bg:rgba(0,0,0,.04);--dc-accent:#3b82f6;--dc-accent-subtle:rgba(59,130,246,.1);--dc-shadow:0 1px 3px rgba(0,0,0,.1);--dc-shadow-lg:0 4px 12px rgba(0,0,0,.1);--dc-overlay:rgba(0,0,0,.5);--dc-guide:rgba(0,0,0,.1);--dc-transition-fast:.15s ease;--dc-transition:.2s ease}.dark .dashboard-canvas-wrapper,[data-theme=dark] .dashboard-canvas-wrapper,html.dark .dashboard-canvas-wrapper{--dc-canvas-bg:#0d1117;--dc-widget-bg:#161b22;--dc-widget-header:#21262d;--dc-widget-border:#30363d;--dc-text:#f0f6fc;--dc-text-muted:#8b949e;--dc-hover-bg:hsla(0,0%,100%,.05);--dc-accent:#3b82f6;--dc-accent-subtle:rgba(59,130,246,.15);--dc-shadow:0 1px 3px rgba(0,0,0,.3);--dc-shadow-lg:0 4px 12px rgba(0,0,0,.4);--dc-overlay:rgba(0,0,0,.7);--dc-guide:hsla(0,0%,100%,.08)}.dashboard-canvas-wrapper{background:var(--dc-canvas-bg);height:100%;overflow:hidden;position:relative;width:100%}.dashboard-canvas-wrapper.has-taskbar{height:calc(100% - 28px)}.dashboard-canvas{background:var(--dc-canvas-bg);height:100%;position:relative;width:100%}.alignment-guide{background:var(--dc-guide);pointer-events:none;position:absolute;z-index:1000}.alignment-guide.vertical{width:1px}.alignment-guide.horizontal{height:1px}.dashboard-widget{background:var(--dc-widget-bg);border:1px solid var(--dc-widget-border);border-radius:4px;box-shadow:var(--dc-shadow);position:absolute;transition:border-color var(--dc-transition-fast),box-shadow var(--dc-transition-fast)}.dashboard-widget-active{border-color:var(--dc-accent);box-shadow:var(--dc-shadow-lg)}.dashboard-widget-maximized{border-color:#3b82f64d}.dashboard-widget-dragging{cursor:grabbing;opacity:.9}.dashboard-widget-resizing{opacity:.95}.interaction-overlay{background:transparent;cursor:inherit;inset:0;position:fixed;z-index:999999}.widget-container{border-radius:3px;display:flex;flex-direction:column;height:100%;width:100%}.widget-body,.widget-container{overflow:hidden;position:relative}.widget-body{background:var(--dc-widget-bg);flex:1;height:calc(100% - 28px)}.widget-loading{align-items:center;display:flex;height:100%;justify-content:center}.loading-spinner{animation:gc-spin .8s linear infinite;border:2px solid var(--dc-widget-border);border-radius:50%;border-top-color:var(--dc-accent);height:24px;width:24px}@keyframes gc-spin{to{transform:rotate(1turn)}}.taskbar{align-items:center;background:var(--dc-widget-header);border-top:1px solid var(--dc-widget-border);bottom:0;display:flex;gap:4px;height:28px;left:0;padding:0 4px;position:fixed;right:0;z-index:200}.taskbar-item{background:var(--dc-widget-bg);border:1px solid var(--dc-widget-border);border-radius:4px;color:var(--dc-text);cursor:pointer;font-size:11px;font-weight:500;padding:4px 10px;transition:background var(--dc-transition-fast),border-color var(--dc-transition-fast);white-space:nowrap}.taskbar-item:hover{background:var(--dc-hover-bg);border-color:var(--dc-accent)}.fab-add{align-items:center;background:#3b82f6d9;border:none;border-radius:50%;box-shadow:0 2px 8px #3b82f64d;color:#fff;cursor:grab;display:flex;height:44px;justify-content:center;position:fixed;transition:background var(--dc-transition-fast),transform var(--dc-transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:44px;z-index:60000}.fab-add svg{height:20px;pointer-events:none;width:20px}.fab-add:hover{background:#3b82f6}.fab-add.fab-dragging{cursor:grabbing;transform:scale(1.05)}.modal-overlay{--dc-widget-bg:#fff;--dc-widget-header:#f9fafb;--dc-widget-border:#e5e7eb;--dc-text:#111827;--dc-text-muted:#6b7280;--dc-hover-bg:rgba(0,0,0,.04);--dc-accent:#3b82f6;--dc-overlay:rgba(0,0,0,.5);--dc-shadow-lg:0 4px 12px rgba(0,0,0,.15);--dc-transition-fast:.15s ease;align-items:center;background:var(--dc-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.dark .modal-overlay,[data-theme=dark] .modal-overlay,html.dark .modal-overlay{--dc-widget-bg:#161b22;--dc-widget-header:#21262d;--dc-widget-border:#30363d;--dc-text:#f0f6fc;--dc-text-muted:#8b949e;--dc-hover-bg:hsla(0,0%,100%,.05);--dc-overlay:rgba(0,0,0,.7);--dc-shadow-lg:0 4px 12px rgba(0,0,0,.4)}.modal-container{background:var(--dc-widget-bg);border:1px solid var(--dc-widget-border);border-radius:6px;box-shadow:var(--dc-shadow-lg);max-height:80vh;max-width:400px;overflow:hidden;width:90%}.modal-header{align-items:center;background:var(--dc-widget-header);border-bottom:1px solid var(--dc-widget-border);display:flex;justify-content:space-between;padding:12px 16px}.modal-header h3{color:var(--dc-text);font-size:14px;font-weight:600;margin:0}.modal-close{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--dc-text-muted);cursor:pointer;display:flex;height:28px;justify-content:center;width:28px}.modal-close svg{height:16px;width:16px;stroke-width:2}.modal-close:hover{background:var(--dc-hover-bg)}.modal-body{max-height:calc(80vh - 56px);overflow-y:auto;padding:12px 16px}.modal-section{margin-bottom:16px}.modal-section:last-child{margin-bottom:0}.modal-section-title{border-bottom:1px solid var(--dc-widget-border);color:var(--dc-text);font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;padding-bottom:4px;text-transform:uppercase}.modal-action-btn,.modal-actions-grid{display:flex;gap:8px}.modal-action-btn{align-items:center;background:var(--dc-widget-header);border:1px solid var(--dc-widget-border);border-radius:4px;color:var(--dc-text);cursor:pointer;font-size:12px;font-weight:500;padding:8px 12px;transition:background var(--dc-transition-fast),border-color var(--dc-transition-fast)}.modal-action-btn:hover{background:var(--dc-hover-bg);border-color:var(--dc-accent)}.modal-action-btn svg{height:16px;width:16px;stroke-width:1.5;color:var(--dc-accent)}.add-chart-form{gap:10px}.add-chart-form,.form-group{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{color:var(--dc-text-muted);font-size:11px;font-weight:500}.form-input{background:var(--dc-widget-bg);border:1px solid var(--dc-widget-border);border-radius:4px;color:var(--dc-text);font-size:12px;outline:none;padding:6px 10px;transition:border-color var(--dc-transition-fast)}.form-input:focus{border-color:var(--dc-accent)}.add-btn{background:var(--dc-accent);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:8px;transition:opacity var(--dc-transition-fast)}.add-btn:hover{opacity:.9}.add-btn:disabled{cursor:not-allowed;opacity:.5}.fade-enter-active,.fade-leave-active{transition:opacity var(--dc-transition)}.fade-enter-from,.fade-leave-to{opacity:0}.modal-enter-active,.modal-leave-active{transition:opacity var(--dc-transition)}.modal-enter-active .modal-container,.modal-leave-active .modal-container{transition:transform var(--dc-transition)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container,.modal-leave-to .modal-container{transform:scale(.95)}.taskbar-enter-active,.taskbar-leave-active{transition:transform var(--dc-transition),opacity var(--dc-transition)}.taskbar-enter-from,.taskbar-leave-to{opacity:0;transform:translateY(100%)}@media (max-width:767px){.dashboard-canvas-wrapper{max-width:100vw;overflow-x:hidden;overflow-y:auto}.dashboard-widget{height:380px!important;left:0!important;margin-bottom:8px;position:relative!important;top:auto!important;width:100%!important}.widget-body{height:calc(100% - 28px);padding-bottom:8px}.dashboard-canvas{display:flex;flex-direction:column;height:auto!important;min-height:auto;padding:4px;width:100%!important}}
