.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;-o-user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{width:20px;height:20px;position:absolute}.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)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--navy:#111827;--navy-dark:#0a0f1a;--accent:#10b981;--accent-hover:#059669;--bg:#f4f5f7;--surface:#fff;--border:#e5e7eb;--text:#111827;--text-muted:#6b7280;--radius:10px;--shadow:0 1px 3px #0000000a, 0 1px 2px #00000005;--shadow-lg:0 8px 40px #00000024;--header-h:56px;--luzmo-primary:#10b981;--luzmo-primary-hover:#059669;--luzmo-primary-down:#047857;--luzmo-primary-focus:#10b981;--luzmo-primary-inverse-color:#fff;--luzmo-primary-rgb:16, 185, 129;--luzmo-secondary:#111827;--luzmo-secondary-hover:#1f2937;--luzmo-secondary-inverse-color:#fff;--luzmo-secondary-rgb:17, 24, 39;--luzmo-background-color:#fff;--luzmo-background-color-rgb:255, 255, 255;--luzmo-background-color-hover:#f9fafb;--luzmo-background-color-highlight:#f0fdf4;--luzmo-background-color-alt-1:#f4f5f7;--luzmo-background-color-alt-2:#f9fafb;--luzmo-border-color:#e5e7eb;--luzmo-border-color-hover:#d1d5db;--luzmo-border-color-focus:#10b981;--luzmo-border-radius:10px;--luzmo-border-radius-s:6px;--luzmo-border-radius-l:12px;--luzmo-font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--luzmo-font-color:#111827;--luzmo-font-color-hard:#030712;--luzmo-font-color-disabled:#9ca3af;--luzmo-font-color-extra-dimmed:#6b7280;--luzmo-font-size:13px;--luzmo-font-size-s:12px;--luzmo-font-size-xs:11px;--luzmo-font-size-m:13px;--luzmo-font-size-l:15px;--luzmo-selected-color:#10b98114;--luzmo-selected-color-hard:#10b981;--luzmo-negative-color:#ef4444;--luzmo-positive-color:#10b981;--luzmo-color-informative:#3b82f6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#root{height:100%}.app{background:var(--bg);height:100vh;color:var(--text);flex-direction:row;display:flex}.app-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.sidebar{background:var(--navy);z-index:100;border-right:1px solid #ffffff0f;flex-direction:column;flex-shrink:0;width:240px;display:flex}.sidebar-header{border-bottom:1px solid #ffffff14;padding:16px 16px 12px}.sidebar-logo{cursor:pointer;align-items:center;gap:10px;display:flex}.sidebar-logo-icon{background:#10b9811f;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.sidebar-logo-text{color:#fff;letter-spacing:-.4px;font-size:17px;font-weight:700}.sidebar-nav{padding:8px 8px 4px}.sidebar-nav-bottom{padding:4px 8px 8px}.sidebar-nav-item{color:#ffffff8c;cursor:default;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;transition:all .12s;display:flex;position:relative}.sidebar-nav-item span{flex:1}.sidebar-nav-clickable{cursor:pointer}.sidebar-nav-mock:hover{color:#ffffffbf;background:#ffffff0a}.sidebar-nav-active{color:#10b981;background:#10b98126;border-left:3px solid #10b981;padding-left:13px;font-weight:600}.sidebar-nav-collapsible{cursor:pointer}.sidebar-nav-chevron{opacity:.5;transition:transform .2s}.sidebar-nav-chevron-collapsed{transform:rotate(-90deg)}.sidebar-dashboards{padding:2px 0 6px 18px}.sidebar-dash-item{color:#ffffff73;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:8px;padding:5px 10px;font-size:12.5px;transition:all .12s;display:flex}.sidebar-dash-item:hover{color:#fffc;background:#ffffff0d}.sidebar-dash-item:hover .sidebar-dash-delete{opacity:1}.sidebar-dash-active{color:#fff;background:#10b9812e;font-weight:600}.sidebar-dash-active .sidebar-dash-dot{background:var(--accent)}.sidebar-dash-dot{background:#fff3;border-radius:50%;flex-shrink:0;width:5px;height:5px}.sidebar-dash-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-dash-rename{color:#fff;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:4px;outline:none;flex:1;padding:2px 6px;font-family:inherit;font-size:12px}.sidebar-dash-delete{color:#ffffff40;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px;line-height:0;transition:all .12s;display:flex}.sidebar-dash-delete:hover{color:#f87171;background:#f8717126}.sidebar-dash-add{color:#ffffff4d;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:6px;width:100%;margin-top:2px;padding:5px 10px;font-family:inherit;font-size:12px;transition:all .12s;display:flex}.sidebar-dash-add:hover{color:#fff9;background:#ffffff0a}.sidebar-datasources{padding:2px 0 6px 18px}.sidebar-ds-item{color:#ffffff8c;cursor:default;border-radius:5px;align-items:center;gap:8px;padding:5px 10px;font-size:12.5px;display:flex}.sidebar-ds-dot{background:#fff3;border-radius:50%;flex-shrink:0;width:5px;height:5px}.sidebar-ds-dot-live{background:#34d399;box-shadow:0 0 6px #34d39980}.sidebar-ds-name{color:#ffffff8c;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;overflow:hidden}.sidebar-divider{background:#ffffff14;flex-shrink:0;height:1px;margin:4px 16px}.sidebar-user{border-top:1px solid #ffffff14;align-items:center;gap:10px;margin-top:auto;padding:12px 14px;display:flex}.sidebar-user-avatar{color:#fff;background:linear-gradient(135deg,#14b8a6,#14b8a6);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:flex}.sidebar-user-info{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-user-name{color:#ffffffd9;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;overflow:hidden}.sidebar-user-role{color:#ffffff59;font-size:11px}.sidebar-user-more{color:#ffffff40;cursor:pointer;flex-shrink:0}.sidebar-user-more:hover{color:#ffffff80}.sidebar-context-menu{z-index:500;background:#1e293b;border:1px solid #ffffff1f;border-radius:8px;min-width:140px;padding:4px;position:absolute;box-shadow:0 8px 24px #0006}.sidebar-context-menu button{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.sidebar-context-menu button:hover{color:#fff;background:#ffffff14}.sidebar-ctx-danger:hover{color:#f87171!important;background:#ef444426!important}.top-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:48px;padding:0 20px;display:flex}.top-bar-left{align-items:center;display:flex}.top-bar-center{flex:1;justify-content:center;display:flex;position:relative}.top-bar-right{align-items:center;gap:4px;display:flex}.breadcrumb{align-items:center;gap:6px;font-size:13px;display:flex}.breadcrumb-parent{color:var(--text-muted)}.breadcrumb-link{cursor:pointer;transition:color .15s}.breadcrumb-link:hover{color:var(--text)}.breadcrumb-current{color:var(--text);font-weight:600}.breadcrumb svg{color:var(--text-muted);opacity:.5}.top-bar-search{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;width:280px;max-width:100%;padding:6px 12px;display:flex}.top-bar-search svg{color:var(--text-muted);flex-shrink:0}.top-bar-search input{color:var(--text);cursor:default;background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:12.5px}.top-bar-search input::placeholder{color:var(--text-muted);opacity:.7}.top-bar-search-active{border-color:var(--accent);box-shadow:0 0 0 2px #10b9811f}.search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:3px;align-items:center;padding:2px;display:flex}.search-clear:hover{color:var(--text);background:var(--bg)}.search-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:10px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.search-dropdown-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px 4px;font-size:10px;font-weight:600}.search-result{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.search-result:hover{background:var(--bg)}.search-result svg{color:var(--text-muted);flex-shrink:0}.search-empty{text-align:center;color:var(--text-muted);padding:16px;font-size:13px}.top-bar-icon-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .12s;display:flex;position:relative}.top-bar-icon-btn:hover{background:var(--bg);color:var(--text)}.notification-dot{border:1.5px solid var(--surface);background:#ef4444;border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:7px}.top-bar-avatar{color:#fff;cursor:pointer;background:linear-gradient(135deg,#14b8a6,#14b8a6);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-left:4px;font-size:10px;font-weight:700;display:flex}.content-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px 12px;display:flex}.content-header-left{align-items:center;gap:12px;display:flex}.content-title{letter-spacing:-.3px;font-size:20px;font-weight:700}.content-header-right{align-items:center;gap:8px;display:flex}.content-dash-actions{align-items:center;gap:6px;margin-left:4px;display:flex}.content-dash-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;line-height:1;transition:all .15s;display:inline-flex}.content-dash-btn:hover{background:var(--bg);color:var(--text);border-color:#c0c5d0}.content-dash-btn svg{flex-shrink:0}.content-dash-btn-restore{color:#10b981;border-color:#10b98130}.content-dash-btn-restore:hover{color:#059669;background:#10b98110;border-color:#10b98150}.status-badge{border-radius:20px;align-items:center;gap:8px;padding:4px 10px;font-size:12px;font-weight:500;display:flex}.status-loading{color:#92400e;background:#fef3c7}.status-error{color:#7f1d1d;text-align:center;background:#fee2e2;max-width:340px;font-size:11px}.btn-retry{cursor:pointer;color:inherit;background:0 0;border:1px solid;border-radius:4px;padding:1px 6px;font-size:11px}.btn-retry:hover{background:#00000014}.filter-popup-wrap{align-items:center;gap:4px;display:flex;position:relative}.filter-trigger{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:13px;transition:all .15s;display:flex}.filter-trigger:hover{color:var(--text);border-color:#d1d5db}.filter-trigger-active{border-color:var(--accent);color:var(--accent);background:#10b9810a}.filter-trigger-badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex}.filter-clear-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.filter-clear-btn:hover{background:var(--bg);color:var(--text)}.filter-popup{background:var(--surface);border:1px solid var(--border);z-index:300;border-radius:10px;width:320px;animation:.15s backwards filterPopIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #00000024}@keyframes filterPopIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.filter-popup-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.filter-popup-title{color:var(--text);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.filter-popup-close{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.filter-popup-close:hover{background:var(--bg)}.filter-popup-body{flex-direction:column;gap:12px;padding:12px 16px;display:flex}.filter-popup-field{flex-direction:column;gap:4px;display:flex}.filter-popup-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.filter-popup-select{border:1px solid var(--border);color:var(--text);background:var(--surface);cursor:pointer;border-radius:6px;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .15s}.filter-popup-select:focus{border-color:var(--accent);outline:none}.filter-popup-loading{color:var(--text-muted);padding:7px 10px;font-size:12px}.filter-popup-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.filter-popup-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:12px;text-decoration:underline}.filter-popup-clear:hover{color:var(--text)}.filter-popup-apply{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s}.filter-popup-apply:hover{background:var(--accent-hover)}.btn-add{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s}.btn-add:hover:not(:disabled){background:var(--accent-hover)}.btn-add:disabled{opacity:.5;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12px;transition:all .15s}.btn-ghost:hover{color:var(--text);border-color:#d1d5db}.btn-ai{color:#fff;cursor:pointer;white-space:nowrap;background:#14b8a6;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .2s;display:flex;box-shadow:0 1px 6px #14b8a640}.btn-ai:hover:not(:disabled){background:#0d9488;transform:translateY(-1px);box-shadow:0 2px 12px #14b8a659}.btn-ai:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-ai-active{background:#0d9488;box-shadow:0 2px 12px #14b8a659,inset 0 1px #ffffff1a}.btn-ai-active:hover:not(:disabled){background:#0d9488;box-shadow:0 3px 16px #14b8a666}.app-layout{flex:1;min-height:0;display:flex;overflow:hidden}.app-layout .app-main{flex:1;min-width:0;overflow-y:auto}.app-main{flex:1;min-height:0;overflow-y:auto}.report-grid{min-height:calc(100vh - 140px)}.report-grid-mobile{flex-direction:column;gap:12px;padding:8px;display:flex}.widget-wrapper-mobile{height:320px}.widget-wrapper-mobile .widget-card{height:100%}.widget-wrapper-mobile .widget-body{flex:none;height:240px;min-height:240px}.widget-wrapper-mobile .widget-chart{height:220px;min-height:220px}.widget-wrapper-mobile.widget-wrapper-kpi{height:180px}.widget-wrapper-mobile.widget-wrapper-kpi .widget-body{flex:none;height:100px;min-height:100px}.widget-wrapper-mobile.widget-wrapper-kpi .widget-chart{height:100px;min-height:100px}.widget-wrapper{height:100%}.widget-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;height:100%;transition:box-shadow .2s,border-color .2s;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 1px 2px #00000008}.widget-card:hover{border-color:#d1d5db;box-shadow:0 4px 16px #00000014}.widget-header{background:var(--bg);border-bottom:1px solid var(--border);cursor:grab;flex-shrink:0;justify-content:space-between;align-items:center;height:40px;padding:0 14px;display:flex}.widget-header:active{cursor:grabbing}.widget-title-row{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.widget-type-icon{color:var(--text-muted);flex-shrink:0;align-items:center;line-height:0;display:flex}.widget-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.widget-actions{opacity:0;flex-shrink:0;gap:1px;margin-left:8px;transition:opacity .15s;display:flex}.widget-card:hover .widget-actions{opacity:1}.widget-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;line-height:0;transition:all .15s;display:flex}.widget-btn:hover{color:var(--text);background:#0000000f}.widget-btn-remove:hover{color:#dc2626;background:#fee2e2}.widget-export-wrap{position:relative}.widget-export-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:8px;min-width:160px;margin-top:4px;padding:4px;position:absolute;top:100%;right:0;box-shadow:0 4px 16px #0000001f}.widget-export-dropdown button{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;transition:background .1s;display:flex}.widget-export-dropdown button:hover{background:var(--bg)}.widget-export-dropdown button svg{color:var(--text-muted);flex-shrink:0}.widget-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.chart-editor-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.15s backwards overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.chart-editor-modal{background:var(--surface);border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:85vh;animation:.25s cubic-bezier(.16,1,.3,1) backwards modalIn;display:flex;overflow:hidden;box-shadow:0 24px 80px #00000040,0 0 0 1px #0000000f}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(12px)}to{opacity:1;transform:none}}.widget-chart{flex:1;min-height:0;position:relative;overflow:hidden}.widget-chart>*{width:100%!important;height:100%!important;display:block!important}.widget-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.widget-empty p{font-size:13px;line-height:1.5}.widget-incomplete{text-align:center;color:#92400e;background:#fffbeb;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.widget-incomplete p{margin:0;font-size:13px;font-weight:600}.widget-incomplete-hint{color:#b45309;opacity:.8;font-size:12px!important;font-weight:400!important}.chart-editor{flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.chart-editor-header{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chart-editor-header-title{color:var(--text);letter-spacing:-.2px;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.chart-editor-close{cursor:pointer;width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.chart-editor-close:hover{color:var(--text);background:#0000000f}.chart-editor-title{padding:12px 16px 0}.chart-editor-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.chart-editor-title .cfg-input{font-size:14px;font-weight:600}.chart-editor-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:10px 16px 0;font-size:11px;font-weight:600}.chart-editor-types{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:8px 16px 12px;display:flex}.chart-editor-type-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-family:inherit;font-size:11px;transition:all .15s;display:flex}.chart-editor-type-btn:hover{border-color:var(--accent);color:var(--text);background:#10b98108}.chart-editor-type-btn.active{border-color:var(--accent);color:var(--accent);background:#10b98114;font-weight:600}.chart-editor-tabs{border-bottom:1px solid var(--border);padding:0 16px;display:flex}.chart-editor-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;transition:all .15s;display:flex}.chart-editor-tab:hover{color:var(--text)}.chart-editor-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.chart-editor-content{flex:1;min-height:0;padding:12px 16px;overflow-y:auto}.chart-editor-data,.chart-editor-options{min-height:200px}.chart-editor-actions{border-top:1px solid var(--border);background:var(--bg);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.interactivity-panel{padding:4px 0}.intx-section{margin-bottom:20px}.intx-section-header{color:var(--text);align-items:center;gap:8px;margin-bottom:4px;font-size:13px;font-weight:600;display:flex}.intx-desc{color:var(--text-secondary);margin:0 0 12px;font-size:11.5px;line-height:1.4}.intx-empty{color:var(--text-secondary);padding:8px 0;font-size:12px;font-style:italic}.intx-slot-block{background:var(--card-bg,#fff);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:10px 12px}.intx-slot-row{align-items:center;gap:8px;display:flex}.intx-slot-label{color:var(--text);min-width:70px;font-size:12px;font-weight:600}.intx-slot-current{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.intx-toggle{cursor:pointer;background:#d1d5db;border:none;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.intx-toggle.active{background:var(--accent,#14b8a6)}.intx-toggle-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.intx-toggle.active .intx-toggle-knob{transform:translate(16px)}.intx-columns{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:10px;display:flex}.intx-col-check{color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:5px;width:100%;padding:3px 8px;font-size:11.5px;transition:background .15s;display:flex}.intx-col-check:hover{background:#14b8a60f}.intx-col-check.current{color:var(--accent);font-weight:500}.intx-col-check input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent,#14b8a6);cursor:pointer;flex-shrink:0}.cfg-input{border:1.5px solid var(--border);background:var(--surface);border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.cfg-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1a2f5a0f}.cfg-input::placeholder{color:#b0b8c9}.cfg-btn-back{color:var(--text-muted);border:1.5px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;flex:none;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.cfg-btn-back:hover{border-color:var(--text-muted);color:var(--text)}.cfg-btn-edit{background:var(--surface);color:var(--accent);border:1.5px solid var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.cfg-btn-edit:hover{background:var(--accent);color:#fff}.cfg-btn-edit svg{flex-shrink:0}.cfg-btn-create{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;flex:1;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.cfg-btn-create:hover{background:var(--accent-hover)}.cfg-btn-create:disabled,.cfg-btn-disabled{opacity:.4;cursor:not-allowed;pointer-events:auto}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.grid-empty{min-height:calc(100vh - var(--header-h) - 40px);justify-content:center;align-items:center;display:flex}.grid-empty-content{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:14px;padding:40px;display:flex}.grid-empty-illustration{margin-bottom:8px}.grid-empty-content h3{color:var(--text);font-size:20px;font-weight:700}.grid-empty-content p{max-width:340px;font-size:14px;line-height:1.6}.grid-empty-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:11px 28px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;box-shadow:0 2px 8px #14b8a640}.grid-empty-btn:hover{background:#0d9488;transform:translateY(-1px);box-shadow:0 4px 14px #14b8a659}.grid-empty-divider{color:var(--text-muted);margin:2px 0;font-size:12px}.grid-empty-btn-ai{color:var(--accent);cursor:pointer;background:#14b8a60f;border:1px solid #14b8a640;border-radius:10px;align-items:center;gap:6px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.grid-empty-btn-ai:hover{background:#14b8a61f;border-color:#14b8a666}.state-screen{min-height:calc(100vh - var(--header-h));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex}.state-error{color:var(--text-muted)}.state-icon{margin-bottom:4px}.state-screen h3{color:var(--text);font-size:18px;font-weight:700}.state-screen p{max-width:380px;font-size:14px;line-height:1.6}.state-screen code{background:var(--border);border-radius:4px;padding:2px 6px;font-size:13px}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:12px;width:100%;max-width:480px;overflow:hidden}.modal-header{justify-content:space-between;align-items:center;padding:18px 20px 0;display:flex}.modal-header h2{color:var(--text);font-size:17px;font-weight:700}.btn-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;line-height:0;display:flex}.btn-close:hover{background:var(--bg);color:var(--text)}.modal-wide{max-width:680px}.modal-configure{flex-direction:column;max-width:540px;max-height:85vh;display:flex}.modal-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px;font-weight:400}.add-widget-ai-card{cursor:pointer;background:linear-gradient(135deg,#111827 0%,#1e293b 100%);border-radius:12px;margin:16px 20px 0;padding:16px 18px;transition:all .2s;position:relative;overflow:hidden}.add-widget-ai-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#14b8a64d 0%,#0000 70%);width:200px;height:200px;position:absolute;top:-50%;right:-30%}.add-widget-ai-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px #1a2f5a40}.add-widget-ai-left{align-items:center;gap:12px;margin-bottom:12px;display:flex}.add-widget-ai-icon{color:#fff;background:linear-gradient(135deg,#14b8a6,#10b981);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.add-widget-ai-title{color:#fff;font-size:14px;font-weight:700;display:block}.add-widget-ai-desc{color:#fff9;margin-top:1px;font-size:12px;display:block}.add-widget-ai-arrow{color:#fff6;transition:all .15s;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.add-widget-ai-card:hover .add-widget-ai-arrow{color:#fffc;transform:translateY(-50%)translate(2px)}.add-widget-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;padding:16px 20px 8px;font-size:12px;font-weight:600;display:flex}.add-widget-section-count{background:var(--bg);color:var(--text-muted);border-radius:10px;padding:2px 7px;font-size:10px;font-weight:500}.tpl-grid{grid-template-columns:repeat(4,1fr);gap:8px;max-height:280px;padding:0 20px 16px;display:grid;overflow-y:auto}.tpl-card{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-muted);border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:12px 6px 10px;font-family:inherit;transition:all .15s;display:flex;position:relative}.tpl-card:hover{border-color:var(--accent);color:var(--accent);background:#f0fdfa}.tpl-card-selected{border-color:var(--accent)!important;color:var(--accent)!important;background:#f0fdfa!important;box-shadow:0 0 0 2px #14b8a61a!important}.tpl-card-icon{align-items:center;line-height:0;display:flex}.tpl-card-title{color:var(--text);text-align:center;font-size:11px;font-weight:600;line-height:1.3}.tpl-card-type{color:var(--text-muted);font-size:10px;font-weight:500}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;display:flex}.modal-footer-right{gap:8px;display:flex}.modal-footer-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 0;font-family:inherit;font-size:13px;font-weight:500;transition:color .15s;display:inline-flex}.modal-footer-link:hover{color:var(--text)}.modal-footer-link svg{flex-shrink:0}.react-grid-item.react-grid-placeholder{border-radius:var(--radius);background:#14b8a60f!important;border:2px dashed #14b8a640!important}.react-resizable-handle:after{display:none!important}.react-resizable-handle{z-index:10;background:0 0!important}.react-resizable-handle-n{cursor:n-resize!important;height:12px!important;top:-4px!important}.react-resizable-handle-s{cursor:s-resize!important;height:12px!important;bottom:-4px!important}.react-resizable-handle-e{cursor:e-resize!important;width:12px!important;right:-4px!important}.react-resizable-handle-w{cursor:w-resize!important;width:12px!important;left:-4px!important}.react-resizable-handle-se{cursor:se-resize!important;width:24px!important;height:24px!important;bottom:-6px!important;right:-6px!important}.react-resizable-handle-sw{cursor:sw-resize!important;width:24px!important;height:24px!important;bottom:-6px!important;left:-6px!important}.react-resizable-handle-ne{cursor:ne-resize!important;width:24px!important;height:24px!important;top:-6px!important;right:-6px!important}.react-resizable-handle-nw{cursor:nw-resize!important;width:24px!important;height:24px!important;top:-6px!important;left:-6px!important}.ai-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:380px;animation:.2s ease-out backwards aiSlideIn;display:flex;position:relative;box-shadow:-2px 0 12px #0000000a}@keyframes aiSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.ai-panel-header{border-bottom:1px solid var(--border);background:#f0fdfa;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.ai-panel-title{color:#0d9488;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.ai-panel-header-actions{align-items:center;gap:6px;display:flex}.ai-clear-btn{color:#14b8a6;cursor:pointer;background:0 0;border:1px solid #99f6e4;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:12px;transition:all .15s}.ai-clear-btn:hover{background:#f0fdfa}.ai-panel-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;line-height:0;transition:all .15s;display:flex}.ai-panel-close:hover{color:var(--text);background:#0000000f}.ai-panel-body{flex:1;padding:16px;overflow-y:auto}.ai-welcome{text-align:center;padding:24px 8px 16px}.ai-welcome-icon{margin-bottom:14px;display:inline-block}.ai-welcome h3{color:var(--text);margin-bottom:6px;font-size:16px;font-weight:700}.ai-welcome p{color:var(--text-muted);margin-bottom:20px;font-size:13px;line-height:1.5}.ai-suggestions{text-align:left;flex-direction:column;gap:4px;display:flex}.ai-suggestion{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:10px;padding:9px 14px;font-family:inherit;font-size:13px;transition:all .15s;display:flex}.ai-suggestion svg{color:var(--text-muted);flex-shrink:0}.ai-suggestion:hover:not(:disabled){color:#0d9488;background:#f8f9fc;border-color:#5eead4}.ai-suggestion:hover:not(:disabled) svg{color:#14b8a6}.ai-suggestion:disabled{opacity:.5;cursor:not-allowed}.ai-suggestions-compact{border-top:1px solid var(--border);margin-top:8px;padding:12px 0}.ai-suggestions-compact-label{color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.ai-suggestions-compact-list{flex-wrap:wrap;gap:6px;display:flex}.ai-suggestion-chip{color:#0d9488;cursor:pointer;text-align:left;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:20px;padding:5px 12px;font-family:inherit;font-size:12px;transition:all .15s}.ai-suggestion-chip:hover{color:#0d9488;background:#ccfbf1;border-color:#99f6e4}.ai-chart-message{margin-bottom:20px}.ai-question{background:var(--navy);color:#fff;border-radius:12px 12px 4px;align-items:flex-start;gap:10px;margin-bottom:10px;margin-left:24px;padding:9px 14px;font-size:13px;display:flex}.ai-loading{background:#f0fdfa;border:1px solid #ccfbf1;border-radius:10px;padding:14px}.ai-loading-bar{background:linear-gradient(90deg,#ccfbf1,#14b8a6,#ccfbf1) 0 0/200% 100%;border-radius:2px;height:2px;margin-bottom:10px;animation:1.5s ease-in-out infinite aiBarShimmer}@keyframes aiBarShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ai-loading-text{color:#14b8a6;align-items:center;gap:8px;font-size:13px;display:flex}.ai-loading-sparkle{animation:1s ease-in-out infinite aiPulse}@keyframes aiPulse{0%,to{opacity:1}50%{opacity:.4}}.ai-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:14px;font-size:13px}.ai-error-content{align-items:flex-start;gap:10px;display:flex}.ai-error-icon{flex-shrink:0;margin-top:1px}.ai-error strong{margin-bottom:4px;display:block}.ai-error p{opacity:.8;margin:0;line-height:1.5}.ai-error-actions{border-top:1px solid #fecaca;gap:8px;margin-top:12px;padding-top:10px;display:flex}.ai-retry-btn{background:var(--surface);color:#991b1b;cursor:pointer;border:1px solid #fca5a5;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.ai-retry-btn:hover{background:#fef2f2;border-color:#f87171}.ai-error-nodata{color:#92400e;background:#fefce8;border-color:#fde68a}.ai-error-nodata .ai-error-actions{border-top-color:#fde68a}.ai-error-nodata .ai-retry-btn{color:#92400e;border-color:#fbbf24}.ai-error-nodata .ai-retry-btn:hover{background:#fef9c3;border-color:#f59e0b}.ai-error-nodata p:last-child{background:#0000000a;border-radius:6px;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.6}.ai-chart-result{border:1px solid var(--border);border-radius:10px;transition:all .2s;overflow:hidden;box-shadow:0 1px 4px #0000000a}.ai-chart-added{border-color:#86efac;box-shadow:0 0 0 2px #22c55e1f}.ai-chart-suggestion{border-color:#e0e7ff}.ai-interpretation{color:#64748b;padding:2px 0 6px;font-size:12px;line-height:1.4}.ai-interpretation strong{color:#0d9488}.ai-interpretation-badge{color:#0d9488;vertical-align:1px;background:#ccfbf1;border-radius:8px;margin-right:6px;padding:1px 7px;font-size:10px;font-weight:600;display:inline-block}.ai-chart-meta{border-bottom:1px solid var(--border);background:#f0fdfa;align-items:center;gap:10px;padding:8px 14px;display:flex}.ai-chart-type-badge{color:#0d9488;background:#ccfbf1;border-radius:20px;flex-shrink:0;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.ai-chart-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.ai-chart-preview{background:var(--surface);height:240px;padding:8px 12px}.ai-chart-preview>*{width:100%;height:100%}.ai-chart-preview-missing{height:100%;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;font-size:12px;line-height:1.5;display:flex}.ai-chart-type-switch{border-top:1px solid var(--border);background:#f8fafc;align-items:center;gap:8px;padding:6px 14px;display:flex}.ai-switch-label{color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.ai-switch-options{gap:2px;display:flex}.ai-switch-btn{cursor:pointer;width:28px;height:26px;color:var(--text-muted);opacity:.5;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;transition:all .15s;display:flex}.ai-switch-btn:hover{opacity:.8;background:#f0fdfa}.ai-switch-active{color:#0d9488;background:#ccfbf1;border-color:#99f6e4;opacity:1!important}.ai-chart-actions{border-top:1px solid var(--border);background:#fafbfc;align-items:center;gap:8px;padding:8px 14px;display:flex}.ai-btn-add{background:var(--navy);color:#fff;cursor:pointer;border:none;border-radius:7px;flex:1;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.ai-btn-add:hover{background:var(--navy-dark)}.ai-btn-edit{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:5px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.ai-btn-edit:hover{background:#10b9810f}.ai-added-badge{color:#16a34a;flex:1;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.ai-btn-dismiss{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;padding:7px 14px;font-family:inherit;font-size:13px;transition:all .15s}.ai-btn-dismiss:hover{color:var(--text);background:#f1f5f9}.ai-panel-input{border-top:1px solid var(--border);background:#fafbfc;padding:12px 16px}.ai-panel-input luzmo-prompt-box{--luzmo-prompt-box-border-color:var(--border);--luzmo-prompt-box-border-color-focus:#5eead4;--luzmo-prompt-box-border-radius:10px;--luzmo-prompt-box-font-family:inherit;--luzmo-prompt-box-font-size:13px;--luzmo-prompt-box-submit-color:#14b8a6;--luzmo-prompt-box-submit-color-hover:#0d9488}.mobile-hamburger{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;line-height:0;display:none}.mobile-hamburger:hover{background:var(--bg)}.sidebar-overlay{display:none}@media (width<=1024px){.sidebar{z-index:300;transition:left .25s;position:fixed;top:0;bottom:0;left:-260px}.sidebar-mobile-open{left:0}.sidebar-overlay{z-index:250;background:#0006;display:block;position:fixed;inset:0}.mobile-hamburger{display:flex}.content-header{padding:12px 16px 10px}.content-header-left{gap:8px}.content-title{font-size:16px}.content-dash-actions{display:none}.home-page{padding:0 16px 32px}.home-hero{padding:28px 24px}}@media (width<=768px){.top-bar{height:44px;padding:0 12px}.top-bar-center,.top-bar-right .top-bar-icon-btn:nth-child(2){display:none}.breadcrumb{font-size:12px}.content-header{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 12px}.content-header-right{flex-wrap:wrap;justify-content:flex-start;gap:6px;width:100%}.content-header-right .btn-ghost{display:none}.content-title{font-size:15px}.btn-add{padding:6px 12px;font-size:12px}.btn-ai{padding:6px 10px;font-size:12px}.report-grid{min-height:auto}.react-grid-layout{margin:0!important}.widget-card{border-radius:8px}.widget-header{padding:8px 10px}.widget-title{font-size:12px}.ai-panel{z-index:200;border:none;border-radius:0;width:100%;max-width:100%;position:fixed;inset:0}.home-page{padding:0 12px 24px}.home-hero{border-radius:12px;margin-bottom:20px;padding:20px 16px}.home-hero-greeting{font-size:18px}.home-hero-stats{grid-template-columns:repeat(2,1fr);gap:8px}.home-stat{padding:12px 14px}.home-stat-value{font-size:18px}.home-stat-label{font-size:10px}.home-actions{grid-template-columns:1fr}.home-dashboards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.home-dash-preview{height:80px}.integrations-page{padding:16px}.integrations-grid{grid-template-columns:1fr}.grid-empty{min-height:calc(100vh - 160px)}.grid-empty-content h3{font-size:18px}.grid-empty-content p{font-size:13px}}@media (width<=480px){.top-bar-right .top-bar-avatar{display:none}.home-hero-stats{grid-template-columns:1fr 1fr;gap:6px}.home-stat{padding:10px 12px}.home-stat-value{font-size:16px}.content-header-right{gap:4px}.ai-panel-input{padding:8px}.ai-welcome h3{font-size:16px}.ai-suggestions{gap:6px}.ai-suggestion{padding:10px 14px;font-size:12px}}@media (width>=769px) and (width<=900px){.ai-panel{top:var(--header-h);z-index:200;width:100%;max-width:420px;position:fixed;bottom:0;right:0}}.home-page{height:calc(100vh - 48px);padding:0 24px 40px;overflow-y:auto}.home-hero{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:28px;padding:28px 32px}.home-hero-greeting{color:var(--navy);letter-spacing:-.3px;margin:0 0 4px;font-size:20px;font-weight:700}.home-hero-desc{color:var(--text-muted);margin:0 0 20px;font-size:14px}.home-hero-stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.home-stat{background:#f9fafb;border-left:3px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.home-stat-green{background:#f0fdf4;border-left-color:#10b981}.home-stat-blue{background:#eff6ff;border-left-color:#3b82f6}.home-stat-purple{background:#f0fdfa;border-left-color:#14b8a6}.home-stat-amber{background:#fffbeb;border-left-color:#f59e0b}.home-stat-value{color:var(--navy);letter-spacing:-.3px;font-size:22px;font-weight:800}.home-stat-label{color:var(--text-muted);font-size:11px;font-weight:500}.home-section{margin-bottom:28px}.home-section-header{align-items:center;gap:8px;margin-bottom:14px;display:flex}.home-section-title{color:var(--text);letter-spacing:-.2px;margin:0;font-size:16px;font-weight:700}.home-section-count{color:var(--text-muted);background:var(--bg);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.home-actions{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.home-action-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:12px;padding:16px;font-family:inherit;transition:all .15s;display:flex;position:relative}.home-action-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #10b98114}.home-action-disabled{opacity:.6;cursor:default;pointer-events:none}.home-action-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.home-action-create{color:var(--accent);background:#10b9811a}.home-action-report{color:#14b8a6;background:#14b8a61a}.home-action-alert{color:#f59e0b;background:#f59e0b1a}.home-action-info{flex-direction:column;gap:2px;display:flex}.home-action-name{color:var(--text);font-size:13px;font-weight:600}.home-action-desc{color:var(--text-muted);font-size:11px}.home-action-soon{color:var(--text-muted);background:var(--bg);text-transform:uppercase;letter-spacing:.05em;border-radius:6px;padding:2px 7px;font-size:9px;font-weight:700;position:absolute;top:10px;right:10px}.home-dashboards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.home-dash-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;padding:0;font-family:inherit;transition:all .15s;overflow:hidden}.home-dash-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.home-dash-preview{cursor:pointer;background:linear-gradient(135deg,#f8fafc,#f1f5f9);flex-direction:column;justify-content:space-between;height:100px;padding:16px;display:flex;position:relative}.home-dash-mock-row{gap:6px;display:flex}.home-dash-mock-bar{background:linear-gradient(90deg,#14b8a626,#14b8a614);border-radius:4px;height:8px}.home-dash-mock-chart{color:#14b8a64d;height:30px}.home-dash-mock-chart svg{width:100%;height:100%}.home-dash-info{cursor:pointer;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.home-dash-name{color:var(--text);font-size:13px;font-weight:600}.home-dash-meta{color:var(--text-muted);font-size:11px}.home-dash-actions{gap:4px;padding:0 10px 10px;display:flex}.home-dash-action-btn{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:500;transition:all .12s;display:flex}.home-dash-action-btn:hover{background:var(--bg);color:var(--text);border-color:#cbd5e1}.home-dash-restore-btn:hover{border-color:var(--accent);color:var(--accent);background:#10b9810d}.home-dash-delete-btn:hover{color:#ef4444;background:#ef44440d;border-color:#ef4444}.home-dash-default-badge{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;background:#10b9811a;border-radius:6px;padding:2px 8px;font-size:9px;font-weight:700;position:absolute;top:8px;right:8px}.home-dash-new .home-dash-preview{background:0 0;border:none}.home-dash-preview-new{color:var(--text-muted);justify-content:center;align-items:center;display:flex;background:var(--bg)!important}.home-dash-new:hover .home-dash-preview-new{color:var(--accent)}.home-activity{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.home-activity-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.home-activity-item:last-child{border-bottom:none}.home-activity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.home-activity-green{background:#10b981}.home-activity-blue{background:#3b82f6}.home-activity-amber{background:#f59e0b}.home-activity-purple{background:#14b8a6}.home-activity-content{flex-direction:column;gap:2px;display:flex}.home-activity-text{color:var(--text);font-size:13px;line-height:1.4}.home-activity-text strong{font-weight:600}.home-activity-time{color:var(--text-muted);font-size:11px}.integrations-page{height:calc(100vh - 48px);padding:24px;overflow-y:auto}.integrations-header{margin-bottom:20px}.integrations-title{color:var(--text);letter-spacing:-.3px;margin:0 0 6px;font-size:22px;font-weight:800}.integrations-subtitle{color:var(--text-muted);align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.integrations-connected-count{color:var(--accent);background:#10b9811a;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:600}.integrations-filters{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.integrations-filter-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:20px;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:500;transition:all .12s}.integrations-filter-btn:hover{border-color:var(--text-muted);color:var(--text)}.integrations-filter-active,.integrations-filter-active:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.integrations-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.integration-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:20px;transition:all .15s;display:flex}.integration-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000a}.integration-card-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.integration-icon{border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.integration-status{color:var(--accent);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.integration-status-dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.integration-name{color:var(--text);margin:0 0 4px;font-size:15px;font-weight:700}.integration-desc{color:var(--text-muted);flex:1;margin:0 0 16px;font-size:12.5px;line-height:1.5}.integration-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.integration-category{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.integration-btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:600;transition:all .12s;display:flex}.integration-btn-connect{background:var(--accent);color:#fff}.integration-btn-connect:hover{background:#059669}.integration-btn-connect:disabled{opacity:.7;cursor:wait}.integration-btn-disconnect{border:1px solid var(--border);color:var(--text-muted);background:0 0}.integration-btn-disconnect:hover{color:#ef4444;border-color:#ef4444}.integration-btn-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite spin}
