.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width,height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
.dashboard-grid{width:100%;min-height:100vh}.react-grid-layout{min-height:100vh;position:relative}.widget-container{flex-direction:column;height:100%;transition:all .2s;display:flex;position:relative;overflow:hidden}.widget-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.widget-content>*{flex-direction:column;display:flex;overflow:hidden}.widget-container.edit-mode{border:2px dashed var(--border-primary);border-radius:.5rem}.widget-container.edit-mode:hover{border-color:var(--uiq-accent);box-shadow:0 4px 12px #3b82f633}.widget-container.edit-mode:focus{outline:2px solid var(--uiq-accent);outline-offset:2px;border-color:var(--uiq-accent);box-shadow:0 0 0 4px #3b82f626}.widget-container.edit-mode:focus:not(:focus-visible){box-shadow:none;outline:none}.widget-container.edit-mode .widget-header{cursor:grab}.widget-container.edit-mode .widget-settings-btn{display:none}.widget-container.edit-mode .widget-header:active{cursor:grabbing}.widget-container.resizing{transition:none}.react-grid-item.react-draggable-dragging{opacity:.85;z-index:100;transition:none;transform:scale(1.02);box-shadow:0 0 0 2px #3b82f666,0 12px 28px #00000040}.react-grid-item.react-draggable-dragging .widget-header{cursor:grabbing}.react-grid-item.resizing{opacity:.9;z-index:100;box-shadow:0 0 0 2px #3b82f64d,0 8px 20px #00000026}.react-grid-placeholder{opacity:.25;z-index:2;border-radius:.5rem;transition-duration:.1s;animation:1.5s ease-in-out infinite placeholderPulse;background:var(--uiq-accent)!important;border:2px dashed #3b82f680!important}@keyframes placeholderPulse{0%,to{opacity:.25}50%{opacity:.35}}.widget-remove-btn{z-index:15;cursor:pointer;opacity:0;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;transition:opacity .2s,background .2s,border-color .2s,color .2s,transform .15s;display:flex;position:absolute;top:6px;right:6px;background:var(--surface-primary)!important;color:var(--error-text)!important;border:2px solid var(--error-text)!important}.widget-container.edit-mode .widget-remove-btn{opacity:1;pointer-events:all}.widget-settings-overlay-btn{z-index:15;cursor:pointer;opacity:0;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:opacity .2s,background .2s,border-color .2s,color .2s,transform .15s;display:flex;position:absolute;top:6px;right:34px;background:var(--surface-primary)!important;color:var(--text-secondary)!important;border:2px solid var(--text-tertiary)!important}.widget-container.edit-mode .widget-settings-overlay-btn{opacity:1;pointer-events:all}.widget-settings-overlay-btn:hover{transform:scale(1.1);background:var(--surface-secondary)!important;color:var(--text-primary)!important;border-color:var(--text-secondary)!important}.widget-settings-overlay-btn:active{transform:scale(.95)}.widget-remove-btn:hover{transform:scale(1.1);background:var(--error-text)!important;color:var(--surface-primary)!important;border-color:var(--error-text)!important}.widget-remove-btn:active{transform:scale(.95)}.edit-mode-toolbar{z-index:40;background:var(--surface-primary);border:1px solid var(--border-primary);box-shadow:var(--shadow-md);border-radius:.5rem;align-items:center;gap:8px;padding:6px 8px;display:flex;position:fixed;top:72px;right:24px}.edit-mode-reset-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;transition:color .2s,background .2s;display:flex}.edit-mode-reset-btn:hover{color:var(--error-text);background:#fef2f2}.edit-mode-done-btn{background:var(--success-text);color:var(--surface-primary);cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:6px;padding:6px 16px;font-size:.875rem;font-weight:600;transition:background .2s,transform .15s;display:flex}.edit-mode-done-btn:hover{background:#15803d}.edit-mode-done-btn:active{transform:scale(.97)}.add-widget-area{margin-top:16px;margin-bottom:32px;position:relative}.add-widget-bar{border:2px dashed var(--border-primary);background:var(--surface-secondary);border-radius:.75rem;justify-content:center;align-items:center;padding:12px 16px;transition:border-color .2s,background .2s;display:flex}.add-widget-bar:hover{border-color:var(--uiq-accent);background:var(--info-bg)}.add-widget-trigger{background:var(--uiq-accent);color:var(--surface-primary);cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:8px;padding:6px 14px;font-size:.875rem;font-weight:600;transition:background .2s,transform .15s;display:flex}.add-widget-trigger:hover{background:#2563eb}.add-widget-trigger:active{transform:scale(.97)}.add-widget-trigger-disabled{background:var(--text-tertiary);cursor:default}.add-widget-trigger-disabled:hover{background:var(--text-tertiary)}.add-widget-trigger-disabled:active{transform:none}.add-widget-icon{transition:transform .3s}.add-widget-icon-open{transform:rotate(45deg)}.add-widget-bar-left{align-items:center;gap:12px;display:flex}.add-widget-done-btn{background:var(--success-text);color:var(--surface-primary);cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:6px;padding:6px 16px;font-size:.875rem;font-weight:600;transition:background .2s,transform .15s;display:flex}.add-widget-done-btn:hover{background:#15803d}.add-widget-done-btn:active{transform:scale(.97)}.add-widget-reset-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:6px;padding:4px 10px;font-size:.8125rem;transition:color .2s,background .2s;display:flex}.add-widget-reset-btn:hover{color:var(--error-text);background:#fef2f2}.add-widget-saving{color:var(--uiq-accent);align-items:center;gap:6px;font-size:.8125rem;display:flex}.add-widget-panel{opacity:0;max-height:0;transition:max-height .35s,opacity .25s;overflow:hidden}.add-widget-panel-open{opacity:1;max-height:600px}.add-widget-panel-inner{padding:16px 0 8px}.add-widget-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.add-widget-card{border:1px solid var(--border-primary);background:var(--surface-primary);cursor:pointer;border-radius:.625rem;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.add-widget-card:hover{box-shadow:var(--shadow-md);border-color:var(--uiq-accent);transform:translateY(-2px)}.add-widget-card:active{transform:translateY(0)}.add-widget-card-icon{border-radius:.5rem;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.add-widget-card-title{color:var(--text-secondary);text-align:center;font-size:.75rem;font-weight:500;line-height:1.3}.add-widget-tooltip{color:var(--surface-primary);white-space:nowrap;z-index:50;cursor:pointer;box-shadow:var(--shadow-lg);background:#1e293b;border-radius:.5rem;padding:10px 16px;font-size:.8125rem;animation:.3s tooltipFadeIn;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.add-widget-tooltip:after{content:"";border:6px solid #0000;border-top-color:#1e293b;position:absolute;top:100%;left:50%;transform:translate(-50%)}.add-widget-tooltip-dismiss{color:var(--text-tertiary);margin-top:2px;font-size:.6875rem;display:block}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.undo-toast{z-index:200;color:var(--surface-primary);box-shadow:var(--shadow-lg);background:#1e293b;border-radius:.75rem;align-items:center;gap:12px;padding:12px 20px;font-size:.875rem;animation:.3s toastSlideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.undo-toast-text{color:var(--border-primary)}.undo-toast-text strong{color:var(--surface-primary)}.undo-toast-btn{background:var(--uiq-accent);color:var(--surface-primary);cursor:pointer;border:none;border-radius:.375rem;align-items:center;gap:4px;padding:4px 12px;font-size:.8125rem;font-weight:600;transition:background .2s;display:flex}.undo-toast-btn:hover{background:#2563eb}.undo-toast-dismiss{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.25rem;line-height:1;transition:color .2s}.undo-toast-dismiss:hover{color:var(--surface-primary)}@keyframes toastSlideUp{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.dashboard-empty-state{flex-direction:column;justify-content:center;align-items:center;min-height:300px;margin-top:48px;display:flex}.widget-cascade-enter{animation:.3s ease-out both widgetCascadeIn;animation-delay:var(--cascade-delay,0s)}@keyframes widgetCascadeIn{0%{opacity:0}to{opacity:1}}.react-resizable-handle{z-index:11}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle:after{content:"";border-right:2px solid var(--text-tertiary);border-bottom:2px solid var(--text-tertiary);width:8px;height:8px;position:absolute;bottom:3px;right:3px}.widget-container.edit-mode .react-resizable-handle:after{border-color:var(--uiq-accent)}.widget-container:not(.edit-mode) .react-resizable-handle{display:none}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.react-draggable-dragging,.react-grid-item.resizing{z-index:100;transition:none}.widget-newly-added{opacity:0!important}.react-grid-item.react-draggable-dragging *{-webkit-user-select:none;user-select:none}.gap-placeholder-overlay{pointer-events:none;z-index:5}.gap-placeholder{border:2px dashed var(--border-primary);background:color-mix(in srgb,var(--surface-secondary)50%,transparent);pointer-events:auto;border-radius:.5rem;justify-content:center;align-items:center;height:100%;transition:border-color .2s,background .2s;display:flex;position:relative}.gap-placeholder:hover{border-color:var(--uiq-accent);background:var(--info-bg)}.gap-placeholder-btn{border:1px solid var(--border-hover);color:var(--text-tertiary);cursor:pointer;pointer-events:auto;background:0 0;border-radius:.5rem;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:color .2s,border-color .2s,background .2s;display:flex}.gap-placeholder-btn:hover{color:var(--uiq-accent);border-color:var(--uiq-accent);background:var(--surface-primary)}.gap-placeholder-btn-disabled{opacity:.4;cursor:default}.gap-placeholder-btn-disabled:hover{color:var(--text-secondary);border-color:var(--border-primary);background:0 0}.gap-picker{z-index:50;background:var(--surface-elevated);border:1px solid var(--border-primary);box-shadow:var(--shadow-lg);pointer-events:auto;border-radius:.75rem;flex-wrap:wrap;gap:8px;max-width:320px;max-height:calc(100% - 16px);padding:12px;animation:.15s gapPickerFadeIn;display:flex;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.gap-picker-card{border:1px solid var(--border-primary);background:var(--surface-primary);cursor:pointer;white-space:nowrap;border-radius:.5rem;align-items:center;gap:8px;padding:6px 10px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.gap-picker-card:hover{box-shadow:var(--shadow-md);border-color:var(--uiq-accent);transform:translateY(-1px)}.gap-picker-card:active{transform:translateY(0)}.gap-picker-card-icon{border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.gap-picker-card-title{color:var(--text-secondary);font-size:.75rem;font-weight:500}@keyframes gapPickerFadeIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (max-width:768px){.widget-container.edit-mode{cursor:default;border:none}.widget-container.edit-mode .widget-header{cursor:default}.add-widget-tooltip{white-space:normal;text-align:center;max-width:280px}.add-widget-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.dashboard-skeleton-grid{grid-template-columns:1fr!important}}@keyframes skeletonShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.dashboard-skeleton-shimmer{background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%);animation:1.5s ease-in-out infinite skeletonShimmer;position:absolute;inset:0}.dark .dashboard-skeleton-shimmer{background:linear-gradient(90deg,#0000 0%,#ffffff0a 50%,#0000 100%)}.dashboard-skeleton-banner{background:linear-gradient(135deg,var(--surface-tertiary)0%,var(--surface-secondary)100%);border-radius:0 0 .75rem .75rem;height:120px;margin:0 -1rem 1.5rem;position:relative;overflow:hidden}.dashboard-skeleton-grid{grid-template-columns:repeat(4,1fr);gap:8px;padding:0;display:grid}@media (max-width:899px) and (min-width:600px){.dashboard-skeleton-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:599px){.dashboard-skeleton-grid{grid-template-columns:1fr}}.dashboard-skeleton-card{background:var(--surface-secondary);border:1px solid var(--border-primary);border-radius:.5rem;min-height:160px;position:relative;overflow:hidden}.dashboard-skeleton-header{background:var(--surface-tertiary);height:40px;position:relative;overflow:hidden}.dashboard-skeleton-body{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.dashboard-skeleton-line{background:var(--surface-tertiary);border-radius:6px;height:12px;position:relative;overflow:hidden}.dark .widget-skeleton-header,.dark .widget-skeleton-line,.dark .widget-skeleton-block{background-color:var(--surface-tertiary)}.widget-loading-skeleton{flex-direction:column;height:100%;display:flex;overflow:hidden}.widget-loading-skeleton-header{background:var(--surface-tertiary);flex-shrink:0;height:40px;position:relative;overflow:hidden}.widget-loading-skeleton-body{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex}.tutorial-replay-btn{width:24px;height:24px;color:var(--uiq-accent);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;line-height:1;transition:background .15s;display:flex}.tutorial-replay-btn:hover{background:#3b82f61a}.tutorial-tooltip{pointer-events:auto;width:380px;max-width:calc(100vw - 24px)}.tutorial-tooltip-inner{background:var(--surface-elevated);box-shadow:var(--shadow-lg);border-radius:14px;padding:24px;position:relative}.tutorial-tooltip-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:background .15s,color .15s;display:flex;position:absolute;top:12px;right:12px}.tutorial-tooltip-close:hover{background:var(--surface-tertiary);color:var(--text-secondary)}.tutorial-tooltip-progress{color:var(--uiq-accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:.7rem;font-weight:700}.tutorial-tooltip-title{color:var(--text-primary);margin:0 0 6px;padding-right:24px;font-size:1.05rem;font-weight:700;line-height:1.3}.tutorial-tooltip-content{color:var(--text-tertiary);margin:0 0 16px;font-size:.85rem;line-height:1.6}.tutorial-tooltip-dots{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.tutorial-tooltip-dot{background:var(--border-hover);border-radius:50%;width:7px;height:7px;transition:background .2s,transform .2s}.tutorial-tooltip-dot-active{background:var(--uiq-accent);transform:scale(1.3)}.tutorial-tooltip-nav{align-items:center;gap:8px;display:flex}.tutorial-tooltip-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:4px;padding:7px 14px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.tutorial-tooltip-btn:disabled{opacity:.35;cursor:not-allowed}.tutorial-tooltip-btn-primary{background:var(--uiq-accent);color:var(--surface-primary)}.tutorial-tooltip-btn-primary:hover:not(:disabled){background:#2563eb}.tutorial-tooltip-btn-secondary{background:var(--surface-tertiary);color:var(--text-secondary)}.tutorial-tooltip-btn-secondary:hover:not(:disabled){background:var(--border-primary)}.tutorial-tooltip-btn-ghost{color:var(--text-muted);background:0 0;margin-left:auto}.tutorial-tooltip-btn-ghost:hover{color:var(--text-tertiary);background:var(--surface-secondary)}@media (max-width:640px){.tutorial-tooltip{width:calc(100vw - 24px)}.tutorial-tooltip-inner{padding:18px}}
