@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2) format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2) format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2) format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2) format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2) format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2) format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-ext-700-normal-MyDreaeu.woff2) format("woff2"),url(/assets/montserrat-cyrillic-ext-700-normal-D-Mk2xRJ.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2) format("woff2"),url(/assets/montserrat-cyrillic-700-normal-BvLYcGP1.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-vietnamese-700-normal-C0x1De3p.woff2) format("woff2"),url(/assets/montserrat-vietnamese-700-normal-DnwGT2D9.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2) format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lato-latin-ext-400-normal-CK4GAP86.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lato-latin-400-normal-BEhtfm5r.woff2) format("woff2"),url(/assets/lato-latin-400-normal-B11PyLys.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lato-latin-ext-700-normal-C6gwlRgY.woff2) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/lato-latin-700-normal-BUGMgin4.woff2) format("woff2"),url(/assets/lato-latin-700-normal-DAdL7O4w.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.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{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.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{left:50%;margin-left:-10px;cursor:ns-resize}.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{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.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{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--font-display: "Montserrat", system-ui, "Segoe UI", Roboto, sans-serif;--font-sans: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg: #fbfcf9;--panel: #ffffff;--sidebar: #ffffff;--sidebar-2: #eef1ea;--border: #dde3d6;--text: #1d211c;--muted: #6d766b;--primary: #8cc63f;--primary-dark: #4d7c0f;--on-primary: #14230a;--accent: #8cc63f;--dim: #8cc63f;--measure: #333a40;--danger: #e2565b;--surface-2: #f6f7f4;--surface-mint: #e9f3ec;--surface-cream: #f6f3ea;--surface-sun: #f3f6e2;--radius-xs: 3px;--radius-sm: 4px;--radius: 6px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-card: none;--shadow-soft: none;--shadow-menu: 0 2px 8px rgba(23,32,24,.12);--shadow-pop: 0 4px 12px rgba(23,32,24,.14);--shadow-modal: 0 8px 24px rgba(23,32,24,.18);--shadow-glow: 0 2px 8px rgba(23,32,24,.16)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app{display:flex;flex:1;min-height:0;overflow:hidden}.app-shell.has-sidenav{flex-direction:row}.app-content{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;height:52px;flex-shrink:0;padding:0 18px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar-title{font-size:15px;font-weight:700;color:var(--text)}.topbar-spacer{flex:1}.sidenav{width:214px;flex-shrink:0;background:var(--sidebar);color:var(--text);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:width .14s ease}.sidenav.collapsed{width:58px}.sidenav-brand{display:flex;align-items:center;gap:8px;padding:14px 14px 8px;font-weight:700;font-size:15px;color:var(--text);font-family:var(--font-display);letter-spacing:-.02em}.sidenav-brand .brand-mark{color:var(--primary);display:inline-flex;align-items:center}.sidenav-brand-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav-toggle{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:var(--radius-sm);width:24px;height:24px;cursor:pointer;line-height:1;flex-shrink:0}.sidenav-toggle:hover{background:var(--surface-2)}.sidenav.collapsed .sidenav-brand{justify-content:center;padding:14px 0 8px}.sidenav.collapsed .sidenav-toggle{margin:0}.sidenav-groups{display:flex;flex-direction:column;padding:4px 8px 16px}.sidenav-group{display:flex;flex-direction:column;gap:2px;margin-top:10px}.sidenav-group-label{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:6px 10px 2px}.sidenav-item{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;color:var(--muted);padding:9px 10px;border-radius:var(--radius);cursor:pointer;font-size:13.5px;font-weight:600;text-align:left;white-space:nowrap}.sidenav-item:hover{background:var(--surface-2);color:var(--text)}.sidenav-item.active{background:var(--primary);color:var(--on-primary)}.sidenav-icon{width:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sidenav-icon svg{display:block}.sidenav.collapsed .sidenav-item{justify-content:center;padding:9px 0}.sidenav.collapsed .sidenav-group{margin-top:6px}.topnav{display:flex;align-items:center;gap:32px;background:var(--sidebar);color:var(--text);padding:0 20px;height:52px;flex-shrink:0}.nav-tabs{display:flex;gap:4px}.nav-tabs button{background:transparent;border:none;color:#9aa6bd;padding:8px 16px;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:600}.nav-tabs button.active{background:var(--sidebar-2);color:#fff}.workspace.full{flex:1;min-height:0;overflow:auto}.nav-user{margin-left:auto;display:flex;align-items:center;gap:12px}.user-name{font-size:13px;color:var(--text);font-weight:500}.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:6px 12px;cursor:pointer;font-size:13px}.logout-btn:hover{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#17191c,#8cc63f)}.login-card{background:var(--panel);border-radius:var(--radius-xl);padding:32px;width:360px;max-width:92vw;box-shadow:var(--shadow-modal)}.login-brand{font-size:22px;font-weight:700;display:flex;align-items:center;gap:8px}.login-sub{color:var(--muted);margin:4px 0 20px;font-size:13px}.login-submit{width:100%;margin-top:4px}.login-hint{text-align:center;color:var(--muted);font-size:12px;margin:12px 0 0}.dash-list{padding:24px}.dash-list-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:16px}.upload-btn.compact{width:auto;padding:8px 16px}.dash-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.dash-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;box-shadow:var(--shadow-card);transition:border-color .15s,box-shadow .15s,transform .15s}.dash-card-lock{position:absolute;top:10px;right:10px;border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius-sm);padding:2px 7px;font-size:12px;cursor:pointer;line-height:1.5}.dash-card-lock:hover{color:var(--text);border-color:var(--muted)}.dash-card-lock.on{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 45%,transparent);background:color-mix(in srgb,var(--primary) 10%,transparent)}.dash-card:hover{border-color:var(--primary);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.dash-card-name{font-weight:600;font-size:16px}.kind-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 7px;margin-right:8px;vertical-align:middle}.kind-badge.page{color:var(--primary-dark);background:#eaf5d8}.kind-badge.dashboard{color:#2d5a86;background:#dcecf9}:root[data-theme=dark] .kind-badge.page{color:#cfeaa0;background:#2a3a17}:root[data-theme=dark] .kind-badge.dashboard{color:#b6d6f2;background:#17324a}.dash-card-meta{color:var(--muted);font-size:12px;margin-top:6px}@media (max-width: 860px){.topnav{gap:10px;padding:0 10px;overflow-x:auto}.nav-tabs{flex-wrap:nowrap}.nav-tabs button{padding:8px 10px;font-size:13px;white-space:nowrap}.brand{display:none}.app{flex-direction:column;overflow:auto}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}.dataset-list{flex-direction:row;flex-wrap:wrap}.builder{flex-direction:column;overflow:visible}.fields-panel{width:100%;max-height:180px}.viz-options-bar{flex-wrap:wrap}.auto-grid,.settings-grid,.sqllab,.sqllab-tables,.ai-panel{width:calc(100vw - 24px);right:12px;bottom:12px}.modal,.modal.wide,.detail-modal{width:94vw}.workspace{padding:12px}}.sqllab{display:flex;gap:16px;padding:20px;height:100%}.sqllab-tables{width:220px;flex-shrink:0;overflow-y:auto}.sqllab-tables h3{margin:0 0 4px}.table-chip{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;margin-bottom:6px;cursor:pointer;font-size:13px;font-weight:600}.table-chip .phys{display:block;font-weight:400;font-size:10px;color:var(--muted)}.sqllab-main{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.datamgr-panel{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;background:var(--panel);margin-bottom:10px}.datamgr-hint{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:12px}.datamgr-cards{display:flex;flex-wrap:wrap;gap:10px}.datamgr-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:150px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg);cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s;text-align:left}.datamgr-card:hover{border-color:var(--accent)}.datamgr-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg));box-shadow:0 0 0 1px var(--accent) inset}.dm-card-icon{font-size:18px}.dm-card-name{font-weight:600;font-size:13px;color:var(--text)}.dm-card-cols{font-size:11px;color:var(--muted)}.datamgr-assocs{margin-top:14px;border-top:1px dashed var(--border);padding-top:12px}.datamgr-assocs-head{font-weight:600;font-size:13px;margin-bottom:8px;color:var(--text)}.dm-busy{color:var(--muted);font-weight:400}.datamgr-empty{font-size:12px;color:var(--muted);padding:6px 0}.datamgr-assoc{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;background:var(--bg);cursor:pointer;font-size:12px}.datamgr-assoc.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.dm-assoc-link,.dm-assoc-link b{color:var(--text)}.dm-join-ico{color:var(--accent);font-weight:700}.dm-conf{padding:2px 8px;border-radius:999px;font-weight:600;font-size:11px}.dm-conf.high{background:#e6f4ea;color:#1a7f37}.dm-conf.mid{background:#fff4e0;color:#a15c00}.dm-conf.low{background:#f1f1f4;color:#666}.dm-overlap{color:var(--muted);font-size:11px}.dm-reason{color:var(--muted);font-size:11px;font-style:italic;flex:1 1 100%}.datamgr-actions{margin-top:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dm-jointype{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.dm-jointype select{font-size:12px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm)}:root[data-theme=dark] .dm-conf.high{background:#34a85338;color:#6ee29a}:root[data-theme=dark] .dm-conf.mid{background:#ffa50033;color:#ffcc7a}:root[data-theme=dark] .dm-conf.low{background:#ffffff1a;color:#b7bdc9}.sql-input{width:100%;min-height:140px;border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;font-family:Cascadia Code,Consolas,Courier New,monospace;font-size:13px;resize:vertical}.sqllab-actions{display:flex;gap:8px;align-items:center}.sqllab-actions .fmt-title{max-width:220px}.sql-result{flex:1;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.col-type{font-size:10px;color:var(--muted);font-weight:400}.ai-fab{position:fixed;right:22px;bottom:22px;z-index:150;background:linear-gradient(135deg,#8cc63f,#17191c);color:#fff;border:none;border-radius:24px;padding:12px 20px;font-weight:700;font-size:15px;cursor:pointer;box-shadow:var(--shadow-glow)}.ai-panel{position:fixed;right:22px;bottom:22px;z-index:150;width:340px;max-width:92vw;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-modal)}.ai-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.ai-input-row{display:flex;gap:6px;margin:8px 0}.ai-input-row input{flex:1;border:1px solid var(--border);border-radius:var(--radius);padding:9px;font-size:14px}.ai-mic{border:1px solid var(--border);background:#f2f5fb;border-radius:var(--radius);padding:0 12px;cursor:pointer;font-size:16px}.ai-mic.listening{background:var(--danger);color:#fff;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.ai-go{width:100%}.ai-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ai-example{background:#eef2fb;border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px 10px;font-size:12px;cursor:pointer;color:var(--primary)}.ai-example.insights{margin-top:8px;background:color-mix(in srgb,var(--primary) 12%,transparent);border-color:color-mix(in srgb,var(--primary) 40%,transparent);font-weight:600}.ai-dataset-row{display:flex;align-items:center;gap:8px;padding:8px 0 4px}.ai-compose{border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;margin:4px 0 8px;background:var(--panel-2, rgba(140,198,63,.05))}.ai-compose-row{display:flex;gap:6px;align-items:center}.ai-compose-kind{flex:0 0 auto;width:auto}.ai-compose-input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:6px 9px;font-size:13px;background:var(--panel);color:var(--text)}.ai-compose-preview{margin-top:8px}.ai-compose-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:6px}.ai-compose-warn{font-size:11.5px;color:var(--muted);background:#ed89361f;border:1px solid rgba(237,137,54,.3);border-radius:var(--radius-sm);padding:4px 8px;margin-bottom:6px}.ai-compose-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:320px;overflow-y:auto}.ai-compose-cell{border:1px solid var(--border);border-radius:var(--radius);padding:6px;background:var(--panel)}.ai-compose-cell-title{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-ds-label{font-size:12px;color:var(--muted);font-weight:600}.ai-ds-select{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:6px 9px;font-size:13px;color:var(--text);background:var(--panel)}.ai-quick-actions{display:flex;gap:8px;padding:4px 2px}.settings-view{padding:20px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.connector-form{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.connector-form h4{margin:0 0 8px}.settings-form{display:flex;flex-direction:column;gap:8px;max-width:420px}.settings-form label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}.settings-form input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 8px;font-size:14px;color:var(--text)}.automation-view{padding:20px}.auto-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.auto-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.auto-form{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.auto-form input,.auto-form select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 8px;font-size:13px}.auto-list{list-style:none;padding:0;margin:0}.auto-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border);font-size:13px}.auto-actions{display:flex;gap:6px;flex-shrink:0}.report-editor-view{padding:20px;height:100%}.report-editor{min-width:0;overflow-y:auto}.report-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.add-section-bar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.report-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;margin-bottom:10px}.section-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.section-type{font-size:11px;font-weight:700;color:var(--primary);background:#eef2fb;padding:2px 8px;border-radius:var(--radius-md)}.section-body{width:100%;min-height:80px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;font-family:inherit}.section-controls{display:flex;gap:16px}.section-controls label{font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}.section-controls select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px}.ws-select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;background:#fff}.dash{padding:16px 20px}.dash.night{--bg: #0e1116;--panel: #161b22;--text: #e6edf3;--muted: #8b949e;--border: #30363d;background:var(--bg);color:var(--text)}.dash.fs{background:var(--bg);overflow:auto;padding:20px 28px}.dash.night.fs{background:#0e1116}.dash-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.dash-name{font-size:20px;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 8px;flex:1;max-width:400px;background:transparent;color:inherit}.dash-name:hover,.dash-name:focus{border-color:var(--border);outline:none}.dash-name[readonly]{cursor:default}.dash-name[readonly]:hover,.dash-name[readonly]:focus{border-color:transparent}.dash-actions{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.metric-item{position:relative}.metric-actions{display:none;gap:2px;margin-left:auto}.metric-item:hover .metric-actions,.metric-item:focus-within .metric-actions{display:inline-flex}.mini-add.danger:hover{color:var(--danger);border-color:var(--danger)}.lang-picker{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius);padding:4px 6px;font-size:12px;font-family:inherit;cursor:pointer;max-width:130px}.lang-picker:hover{color:var(--text);border-color:var(--primary)}.lang-picker:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.back-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius);padding:7px 12px 7px 10px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;flex:0 0 auto;transition:border-color .12s,background .12s,color .12s}.back-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary-dark);background:color-mix(in srgb,var(--primary) 10%,var(--panel))}.back-btn:hover:not(:disabled) svg{transform:translate(-2px)}.back-btn svg{transition:transform .12s}.back-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.back-btn:disabled{opacity:.5;cursor:default}@media (max-width: 700px){.back-btn-label{display:none}.back-btn{padding:7px 9px}}.link-btn{background:transparent;border:none;color:var(--primary);cursor:pointer;font-size:14px;font-weight:600}button{border-radius:var(--radius)}.save-btn{background:var(--primary);color:var(--on-primary);border:none;border-radius:var(--radius);padding:9px 18px;font-weight:700;cursor:pointer;transition:filter .15s,box-shadow .15s}.save-btn:hover:not(:disabled){filter:brightness(1.04);box-shadow:var(--shadow-glow)}.save-btn:disabled{opacity:.55;cursor:default}.ghost-btn{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s}.ghost-btn:hover:not(:disabled){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.ghost-btn:disabled{opacity:.55;cursor:default}.danger-btn{background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius);padding:8px 14px;cursor:pointer;font-weight:600}.dash-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filter-label{font-size:12px;color:var(--muted);font-weight:600}.dash-filters select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px}.chip.cross{background:var(--measure);color:#fff}.widget-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;display:flex;flex-direction:column}.widget-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f7f9fc;border-bottom:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-weight:600;font-size:13px;-webkit-user-select:none;user-select:none;gap:8px}.wh-btn{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);font-size:11px;line-height:1;padding:3px 6px;cursor:pointer}.wh-btn:hover{border-color:var(--primary)}.wh-btn.on{background:var(--primary);color:var(--on-primary, #14230a);border-color:var(--primary)}.wh-sep{width:1px;align-self:stretch;background:var(--border);margin:2px}.widget-card>.react-resizable-handle{width:22px;height:22px;z-index:3}.widget-card>.react-resizable-handle:after{content:"";position:absolute;right:4px;bottom:4px;width:9px;height:9px;border-right:2px solid var(--primary);border-bottom:2px solid var(--primary);opacity:.55}.widget-card:hover>.react-resizable-handle:after{opacity:.9}.widget-tools{display:flex;gap:10px;align-items:center}.widget-edit,.widget-remove{cursor:pointer;color:var(--muted)}.widget-edit:hover{color:var(--primary)}.widget-remove:hover{color:var(--danger)}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:200;display:flex;flex-direction:column;padding:16px 20px}.editor-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.editor-label{font-weight:700;font-size:16px}.editor-title{flex:1;max-width:360px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;font-size:14px}.editor-body{flex:1;min-height:0;display:flex}.editor-body .builder{flex:1}.widget-body{flex:1;padding:8px;overflow:auto;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.widget-inner{height:100%}.widget-placeholder{width:100%;height:100%;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--primary) 4%,transparent);color:var(--muted);cursor:pointer;font-size:13px;transition:border-color .15s,color .15s}.widget-placeholder:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.widget-placeholder:disabled{cursor:default;opacity:.6}.widget-placeholder-plus{font-size:26px;line-height:1}.editor-ds-pick{padding:16px 20px}.ds-pick-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.ds-pick-item{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:180px;padding:12px 14px;text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--text);cursor:pointer}.ds-pick-item:hover{border-color:var(--primary)}.ds-pick-meta{font-size:11.5px;color:var(--muted)}.nl-sql-bar{display:flex;align-items:center;gap:8px;margin-bottom:6px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--primary) 4%,var(--panel))}.nl-sql-input{flex:1;border:none;background:transparent;color:var(--text);font-size:13px;outline:none}.segments-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 2px}.segments-label{font-size:12px;color:var(--muted);font-weight:600}.segments-empty{font-size:12px;color:var(--muted);font-style:italic}.segment-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:2px 6px 2px 4px;background:var(--panel);font-size:12.5px}.segment-apply{border:none;background:transparent;color:var(--primary);font-weight:600;cursor:pointer;font-size:12.5px;padding:2px 4px}.segment-save{border:1px dashed var(--border);border-radius:var(--radius);padding:4px 8px;background:var(--bg);color:var(--muted);font-size:12px;cursor:pointer}.segment-save:disabled{opacity:.5;cursor:default}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000059;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.cmdk{width:min(560px,92vw);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;display:flex;flex-direction:column}.cmdk-input{border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font-size:15px;padding:14px 16px;outline:none}.cmdk-list{max-height:50vh;overflow:auto;padding:6px}.cmdk-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:none;background:transparent;color:var(--text);border-radius:var(--radius);cursor:pointer;text-align:left;font-size:13.5px}.cmdk-item.active{background:color-mix(in srgb,var(--primary) 14%,transparent)}.cmdk-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-group{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex:0 0 auto}.cmdk-hint{border-top:1px solid var(--border);padding:8px 14px;font-size:11.5px;color:var(--muted)}.clickbehavior{display:flex;flex-direction:column;gap:6px;align-items:stretch}.clickbehavior-label{display:inline-flex;align-items:center;gap:6px;font-weight:600}.clickbehavior-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.clickbehavior-dim{min-width:80px;font-size:12px;color:var(--muted)}.clickbehavior-row select{flex:0 0 auto}.clickbehavior-url{flex:1 1 160px;min-width:120px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;background:var(--bg);color:var(--text);font-size:12px}.clickbehavior-url:focus{outline:none;border-color:var(--primary)}.data-table td.cell-clickable{cursor:pointer;color:var(--primary);text-decoration:underline;text-underline-offset:2px}.data-table td.cell-clickable:hover{background:color-mix(in srgb,var(--primary) 10%,transparent)}.dcard-text{padding:4px 8px;overflow:auto;height:100%}.dcard-heading{margin:0;padding:6px 8px;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.dcard-heading-input{width:100%;border:none;background:transparent;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text);padding:6px 8px}.dcard-heading-input:focus{outline:1px solid var(--primary);border-radius:var(--radius-sm)}.dcard-link{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;color:var(--primary);font-weight:600;text-decoration:none}.dcard-link:hover{text-decoration:underline}.dcard-iframe{width:100%;height:100%;min-height:120px;border:none;border-radius:var(--radius);background:var(--bg)}.dcard-edit{display:flex;flex-direction:column;gap:6px;height:100%;padding:6px}.dcard-edit input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;background:var(--bg);color:var(--text);font-size:13px}.dcard-edit input:focus{outline:none;border-color:var(--primary)}.dcard-textarea{width:100%;height:100%;min-height:60px;resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--bg);color:var(--text);font-family:var(--mono, ui-monospace, Consolas, monospace);font-size:12.5px;line-height:1.5}.dcard-textarea:focus{outline:none;border-color:var(--primary)}.widget-drill{font-size:12px;padding:0 2px 4px}.widget-drill .crumb{color:var(--primary);cursor:pointer;font-weight:600}.widget-drill .crumb:hover{text-decoration:underline}.widget-drill .crumb-sep{margin:0 5px;color:var(--muted)}.widget-status{padding:24px;color:var(--muted);text-align:center}.widget-status.error{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c2e73;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border-radius:var(--radius-lg);padding:24px;width:420px;max-width:92vw;box-shadow:var(--shadow-modal);max-height:92vh;overflow-y:auto}.modal.wide{width:560px}.dialog-backdrop{z-index:1000}.modal.dialog{width:420px;padding:22px 24px}.dialog-title{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--text)}.dialog-message{margin:0 0 14px;font-size:14px;color:var(--muted);white-space:pre-line}.dialog-input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:14px;color:var(--text);background:var(--panel);margin-bottom:16px}.dialog-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #8cc63f33}.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.dialog-cancel{padding:8px 12px}.toast-host{position:fixed;bottom:20px;right:20px;z-index:1100;display:flex;flex-direction:column;gap:10px;max-width:380px}.toast{display:flex;align-items:flex-start;gap:10px;cursor:pointer;background:var(--panel);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-pop);font-size:14px;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-success{border-left-color:var(--primary)}.toast-error{border-left-color:#c0392b}.toast-info{border-left-color:#3bb0e0}.toast-icon{font-weight:800;line-height:1.4}.toast-success .toast-icon{color:var(--primary-dark)}.toast-error .toast-icon{color:#c0392b}.toast-info .toast-icon{color:#2980b9}.toast-msg{flex:1;white-space:pre-line;line-height:1.35}.toast-close{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;padding:2px}.toast-close:hover{color:var(--text)}.detail-modal{width:820px;max-height:82vh;display:flex;flex-direction:column}.detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-head-actions{display:flex;align-items:center;gap:10px;flex:none}.detail-table{flex:1;overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}.forecast-modal{width:720px}.forecast-badges{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.fc-badge{background:#eef2fb;border:1px solid var(--border);border-radius:var(--radius-lg);padding:3px 12px;font-size:12px;font-weight:600;color:var(--text)}.fc-badge.engine{background:#ede9ff;color:#6a5cff}.forecast-explain{margin-top:12px;background:#f7f9fc;border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.forecast-explain p{margin:6px 0 0;line-height:1.5}.modal h3{margin:0 0 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.import-row{display:flex;align-items:flex-end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.import-row .modal-field{flex:1;margin-bottom:0}.info-box{background:#e6f6ee;color:#1c7a4d;border:1px solid #b6e2cb;border-radius:var(--radius);padding:8px 12px;margin-top:10px;font-size:13px}.modal-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);margin-bottom:14px}.modal-field input,.modal-field select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;font-size:14px;color:var(--text)}.modal-field.modal-check{flex-direction:row;align-items:center;gap:8px;align-self:end}.modal-field.modal-check input{width:auto;padding:0}.sync-schedule{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:14px;font-size:13px;color:var(--muted)}.sync-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text);font-weight:600}.seg-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.seg-toggle button{border:0;background:transparent;padding:5px 12px;font-size:12px;color:var(--muted);cursor:pointer}.seg-toggle button.on{background:var(--primary);color:#fff;font-weight:600}.seg-toggle button:disabled{cursor:not-allowed}.sync-interval,.sync-cron{display:flex;gap:6px;align-items:center}.sync-interval input{width:90px}.sync-interval select{flex:1}.sync-cron input{flex:1;font-family:ui-monospace,Cascadia Code,Consolas,monospace}.sync-interval input,.sync-interval select,.sync-cron input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;font-size:14px;color:var(--text)}.cron-examples{display:flex;flex-wrap:wrap;gap:6px}.cron-example{border:1px solid var(--border);border-radius:var(--radius-xl);background:transparent;padding:3px 10px;font-size:12px;color:var(--muted);cursor:pointer}.cron-example:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.cron-example code{color:var(--text)}.sync-modes{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.sync-modes legend{padding:0 6px;font-size:13px;color:var(--muted)}.sync-mode{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer}.sync-mode input{margin-top:3px;width:auto;padding:0}.sync-mode>span{display:flex;flex-direction:column;gap:2px}.sync-mode strong{color:var(--text);font-size:14px;font-weight:600}.sync-mode.disabled{cursor:not-allowed;opacity:.65}.sync-keys{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}.chip-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-xl);padding:4px 10px;font-size:13px;color:var(--text);cursor:pointer;background:var(--surface, #fff)}.chip-toggle input{width:auto;padding:0;margin:0}.chip-toggle.on{border-color:var(--primary);color:var(--primary);font-weight:600}.modal.connect-modal{max-height:88vh;overflow-y:auto}.import-panel{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.import-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}.import-head-actions{display:flex;gap:10px}.import-list{max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);display:flex;flex-direction:column}.import-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--border);color:var(--text)}.import-item:last-child{border-bottom:none}.import-item:hover{background:#8cc63f14}.import-item.on{background:#8cc63f24}.import-item input{width:auto;margin:0}.import-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-go{margin-top:10px;width:100%}.list-search{position:relative;max-width:320px;margin:8px 0 12px}.list-search input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);padding:8px 28px 8px 30px;font-size:13px;background:var(--panel);color:var(--text)}.list-search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:flex}.list-search input:focus{outline:none;border-color:var(--primary)}.list-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:2px}.col-editor{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px;margin-top:4px}.col-row{display:flex;align-items:center;gap:6px}.col-check{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:12px;margin:0;cursor:pointer}.col-check input{width:auto;margin:0}.col-check span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-label{flex:1;min-width:0;font-size:12px;padding:4px 6px}.modal-tabs{display:flex;gap:6px;margin-bottom:14px}.modal-tabs button{flex:1;background:#f2f5fb;border:1px solid var(--border);border-radius:var(--radius);padding:8px;cursor:pointer}.modal-tabs button.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.modal-tabs button:disabled{opacity:.5;cursor:default}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.sidebar{width:260px;flex-shrink:0;background:var(--sidebar);color:var(--text);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px;gap:14px;overflow:hidden}.brand{font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.brand-mark{color:var(--primary)}.brand .brand-mark{display:inline-flex;align-items:center}.upload-btn{background:var(--primary);color:var(--on-primary);border:none;border-radius:var(--radius);padding:10px;font-size:14px;font-weight:700;cursor:pointer}.upload-btn:disabled{opacity:.6;cursor:default}.connect-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:9px;font-size:13px;font-weight:600;cursor:pointer}.connect-btn:hover{border-color:var(--primary)}.dataset-list{display:flex;flex-direction:column;gap:6px;flex:1 1 0;min-height:56px;overflow-y:auto}.dataset-list .list-label{position:sticky;top:0;background:var(--sidebar);padding-top:2px;z-index:1}.sidebar-search{position:relative;margin:10px 0 2px}.sidebar-search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.sidebar-search input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);padding:7px 26px 7px 30px;font-size:13px;background:var(--panel);color:var(--text)}.sidebar-search input::placeholder{color:var(--muted)}.sidebar-search input:focus{outline:none;border-color:var(--primary)}.sidebar-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:2px}.list-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:8px}.dataset-item{position:relative;background:var(--surface-2);border-radius:var(--radius);padding:10px 12px;cursor:pointer;border:1px solid var(--border)}.dataset-item.active{border-color:var(--primary)}.dataset-name{font-weight:600}.dataset-meta{font-size:12px;color:var(--muted);margin-top:2px}.dataset-actions{position:absolute;top:8px;right:8px;display:flex;gap:2px}.delete-btn,.edit-btn{position:absolute;top:8px;right:8px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;padding:2px 3px;border-radius:var(--radius-xs)}.dataset-actions .delete-btn,.dataset-actions .edit-btn{position:static;top:auto;right:auto}.edit-btn:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.delete-btn:hover{color:var(--danger)}.workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:24px 30px}.workspace-header{display:flex;align-items:center;flex-wrap:nowrap;gap:10px;margin-bottom:16px}.workspace-header h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.workspace-header .subtle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:2}.workspace-header h2{margin:0;font-size:20px}.subtle{color:var(--muted);font-size:13px}.refresh-controls{margin-left:auto;display:flex;gap:8px;align-items:center}.open-chart-badge{background:#eef2fb;border:1px solid var(--border);border-radius:var(--radius-xl);padding:3px 12px;font-size:12px;color:var(--primary);font-weight:600}.welcome{margin:auto;text-align:center;color:var(--muted)}.welcome h1{color:var(--text);font-size:26px}.builder{flex:1;display:flex;gap:16px;overflow:hidden}.fields-panel{width:220px;flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;overflow-y:auto}.fields-panel h3{margin:0 0 10px;font-size:14px}.field-group{margin-bottom:16px;display:flex;flex-direction:column;gap:4px}.field-group-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.field-item{text-align:left;background:#f7f9fc;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;cursor:pointer;font-size:13px;border-left:3px solid var(--muted)}.field-item.dim{border-left-color:var(--dim)}.field-item.measure{border-left-color:var(--measure)}.field-item.metric-item{border-left-color:#8b6cf0}.field-item.metric-item.active{background:#ede9ff;border-color:#8b6cf0}.mini-add{float:right;border:1px solid var(--border);background:#fff;border-radius:var(--radius-xs);width:18px;height:18px;line-height:1;cursor:pointer;color:var(--primary);font-weight:700}.field-item:hover{background:#eef2fb}.mini-add{width:auto;min-width:18px;padding:0 5px}.field-item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-item-actions{display:inline-flex;align-items:center;gap:5px;flex-shrink:0}.field-remove{cursor:pointer;color:var(--muted);font-size:11px;line-height:1;padding:1px 2px;border-radius:3px}.field-remove:hover{color:#c0392b;background:#c0392b1f}.calc-field-row{display:flex;gap:12px}.calc-field-row .pf{flex:1}.form-error{margin:4px 0 12px;color:#c0392b;font-size:13px;background:#c0392b14;border:1px solid rgba(192,57,43,.3);border-radius:var(--radius);padding:8px 10px;white-space:pre-line}.de-origem{border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.de-origem-head{display:flex;align-items:center;gap:7px;color:var(--muted)}.de-origem-rotulo{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.de-origem-nome{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.de-origem-detalhe{font-size:11px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;max-width:100%;overflow-x:auto;white-space:nowrap}.ds-admin{padding:18px 22px;max-width:1080px}.ds-admin-busca{width:100%;max-width:360px;box-sizing:border-box;margin:4px 0 14px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:13px;background:var(--panel);color:var(--text)}.ds-admin-barra{display:flex;align-items:flex-start;gap:10px;margin:4px 0 14px}.ds-admin-barra .ds-admin-busca{margin:0}.ds-admin-barra .save-btn{margin-top:0;white-space:nowrap}.ds-admin-lista{display:flex;flex-direction:column;gap:8px}.ds-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.ds-card.aberta{border-color:var(--primary)}.ds-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px}.ds-card-id{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.ds-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);border-radius:999px;padding:1px 7px;color:var(--muted)}.ds-roles-resumo{font-size:11px;color:var(--muted)}.ds-card-acoes{display:flex;gap:6px;flex-shrink:0}.ds-card-form{border-top:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:10px}.ds-card-form-acoes{display:flex;gap:10px;align-items:center}.ds-card-form-acoes .save-btn{margin-top:0}.modal-row{display:flex;gap:10px}.modal-row .modal-field{flex:1;min-width:0}.rest-token{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;background:var(--panel);color:var(--text);resize:vertical}.rest-avancado summary{cursor:pointer;font-size:12px;color:var(--muted);margin:6px 0}.rest-acoes{display:flex;gap:8px;align-items:center;margin-top:10px}.rest-acoes .save-btn{margin-top:0}.rest-preview{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);padding:8px}.rest-preview .table-wrap{max-height:200px;overflow:auto;margin-top:6px}.rest-preview .data-table{font-size:11px}.ai-analysis{display:flex;flex-direction:column;gap:10px;padding:4px 2px;overflow-y:auto}.ai-analysis-vazio{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--muted);padding:28px 16px;min-height:140px}.ai-analysis-vazio p{margin:0;max-width:46ch;font-size:13px}.ai-analysis-texto{font-size:14px;line-height:1.6}.ai-analysis-texto p:first-child{margin-top:0}.ai-analysis-aviso{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#8a6d1f;background:#d69e2e1a;border:1px solid rgba(214,158,46,.32);border-radius:var(--radius);padding:8px 10px;font-size:13px}:root[data-theme=dark] .ai-analysis-aviso{color:#e0b752}.ai-analysis-rodape{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding-top:6px;font-size:11px}.fmt-ai-pergunta{display:flex;flex-direction:column;gap:4px;width:100%;font-size:12px;color:var(--muted)}.fmt-ai-pergunta textarea{width:100%;min-width:260px;min-height:64px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font:inherit;font-size:12.5px;color:var(--text);background:var(--panel);line-height:1.45}.fmt-ai-pergunta textarea:focus{outline:none;border-color:var(--primary)}.app-embed-wrap{position:relative;width:100%;height:360px;min-height:120px;border-radius:var(--radius);overflow:hidden;background:#000}.app-embed-wrap iframe{display:block;width:100%;height:100%;border:0}.app-html-block{max-width:100%;overflow-x:auto}.app-html-block img,.app-html-block video,.app-html-block svg{max-width:100%;height:auto}.app-html-block table{max-width:100%;border-collapse:collapse}.app-html-block td,.app-html-block th{border:1px solid var(--border);padding:4px 8px}.app-html-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;min-height:180px}.form-nota{margin:4px 0 12px;color:#8a6d1f;font-size:13px;background:#d69e2e1a;border:1px solid rgba(214,158,46,.32);border-radius:var(--radius);padding:8px 10px;white-space:pre-line}:root[data-theme=dark] .form-nota{color:#e0b752}.builder-main{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;overflow:hidden;padding-right:4px}.viz-toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0}.viz-toolbar-label{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.viz-toolbar-spacer{flex:1}.viz-config{flex:0 0 auto;min-height:90px;overflow-y:auto}.viz-splitter{flex:0 0 auto;height:10px;margin:-3px 0;cursor:row-resize;position:relative}.viz-splitter:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:4px;border-radius:2px;background:var(--border);transition:background .15s}.viz-splitter:hover:after{background:var(--primary)}body.resizing-v{cursor:row-resize;-webkit-user-select:none;user-select:none}.builder.focus-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg, var(--panel));padding:12px;gap:0}.builder.focus-mode .fields-panel,.builder.focus-mode .panel-rail,.builder.focus-mode .viz-config,.builder.focus-mode .viz-splitter,.builder.fields-collapsed .fields-panel{display:none}.panel-rail{flex-shrink:0;width:34px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;color:var(--muted);transition:color .15s,border-color .15s}.panel-rail:hover{color:var(--primary);border-color:var(--primary)}.panel-rail-label{writing-mode:vertical-rl;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.fields-panel-actions{display:inline-flex;gap:2px;float:right}.sidebar-rail{margin:12px 0 12px 12px;align-self:flex-start;height:calc(100% - 24px);justify-content:flex-start}.sidebar-collapse{align-self:flex-end;background:transparent;border:none;cursor:pointer;color:var(--muted);padding:0;margin-bottom:-6px;line-height:0}.sidebar-collapse:hover{color:var(--primary)}.shelves{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:12px}.shelf{display:flex;align-items:center;gap:10px}.shelf label{width:80px;font-size:12px;font-weight:600;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-height:30px;align-items:center}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;color:#fff;cursor:default}.chip.dim{background:var(--dim);cursor:pointer}.chip.measure{background:var(--measure)}.chip select{border:none;border-radius:var(--radius-xs);background:#fff3;color:#fff;font-size:11px;padding:1px 2px}.chip select option{color:var(--text)}.chip-remove{cursor:pointer;font-weight:700}.chip-placeholder{color:var(--muted);font-size:12px;font-style:italic}.popover{position:relative;display:inline-block}.popover-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.popover-trigger:hover,.popover-trigger.open{border-color:var(--primary);background:var(--surface-sun)}.popover-caret{font-size:11px;opacity:.6}.popover-dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}.popover-panel{position:fixed;z-index:200;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:12px}.popover-form{display:flex;flex-direction:column;align-items:stretch;gap:10px}.popover-form>.fmt-check,.popover-form>label,.popover-form>span,.popover-form>div{justify-content:flex-start}.popover-form .fmt-title,.popover-form>select{width:100%}.popover-form .drillthrough-input,.popover-form .clickbehavior-url{flex:1;min-width:0}.popover-form .clickbehavior{flex-direction:column;align-items:stretch;gap:6px}.chart-picker{position:relative;display:inline-block}.chart-picker-trigger{display:inline-flex;align-items:center;gap:8px;min-width:190px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.chart-picker-trigger:hover{border-color:var(--primary);background:var(--surface-sun)}.chart-picker-current{flex:1;text-align:left}.chart-picker-caret{font-size:11px;opacity:.6}.chart-picker-panel{position:fixed;z-index:200;display:flex;flex-direction:column;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:12px}.chart-picker-search{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;background:var(--panel);color:var(--text)}.chart-picker-groups{flex:1;min-height:0;overflow-y:auto;margin-top:10px}.chart-picker-family{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.55;margin:10px 0 5px}.chart-picker-group:first-child .chart-picker-family{margin-top:0}.chart-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.chart-picker-grid .chart-type{width:100%;justify-content:flex-start;padding:7px 10px}.chart-type{background:#f7f9fc;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 14px;cursor:pointer;font-size:13px}.chart-type.active{background:var(--primary);color:#fff;border-color:var(--primary)}.chart-loading{position:absolute;top:10px;right:16px;z-index:5;font-size:12px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:4px 12px}.chart-area{position:relative;flex:1;min-height:260px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;overflow:auto}.drill-breadcrumb{font-size:13px;color:var(--text);padding:2px}.drill-breadcrumb .crumb{color:var(--primary);cursor:pointer;font-weight:600}.drill-breadcrumb .crumb:hover{text-decoration:underline}.drill-breadcrumb .crumb-sep{margin:0 6px;color:var(--muted)}.drill-breadcrumb .crumb-hint{color:var(--muted);font-weight:400}.empty-hint{color:var(--muted);text-align:center;padding:40px}.empty-hint.small{padding:8px;font-size:12px}.error-box{background:#fde8e9;color:#a3282d;border:1px solid #f3b7b9;border-radius:var(--radius);padding:10px 14px}.error-box.top{margin-bottom:12px}.table-wrap{overflow:auto;max-height:100%}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{border:1px solid var(--border);padding:6px 10px;text-align:left}.data-table th{background:#f2f5fb;position:sticky;top:0}.data-table tbody tr:nth-child(2n){background:#fafbfe}.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.chart-type{display:inline-flex;align-items:center;gap:6px}.chart-icon{font-size:14px;line-height:1}.calc-badge{margin-left:6px;font-style:italic;color:var(--primary);font-weight:700}.field-item{display:flex;align-items:center;justify-content:space-between}.fmt-axis-input{width:72px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:12px;margin-left:4px}.fmt-subcheck{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-size:12px;color:var(--muted)}.viz-options-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--border);padding-top:10px}.popover-form select,.fmt-title{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:13px}.fmt-title{flex:1;min-width:140px}.fmt-check{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.drillthrough-input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;font-size:12px;min-width:210px;background:var(--bg);color:var(--text)}.drillthrough-link{display:inline-block;white-space:nowrap;color:var(--primary);font-weight:600;text-decoration:none;font-size:12px}.drillthrough-link:hover{text-decoration:underline}.crumb-dim{font-style:normal;color:var(--muted);font-size:11px}.drill-any-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000047;display:flex;align-items:center;justify-content:center;z-index:1200}.drill-any-menu{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow-menu);max-width:360px}.drill-any-title{font-size:13px;color:var(--text);margin-bottom:10px}.drill-any-opts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.drill-any-opt{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer}.drill-any-opt:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,var(--bg))}.tpl-sectors{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 12px}.tpl-sectors-label{font-size:12px;color:var(--muted);margin-right:2px}.tpl-sector-chip{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}.tpl-sector-chip:hover{border-color:var(--primary)}.tpl-sector-chip.active{background:var(--primary);color:var(--on-primary, #fff);border-color:var(--primary)}.cond-nl{display:flex;gap:6px;margin-bottom:8px}.cond-nl-input{flex:1;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:12px;background:var(--bg);color:var(--text)}.cond-nl-hint{font-size:11px;color:var(--muted);margin-bottom:8px;font-style:italic}.kb-view{display:grid;grid-template-columns:230px 300px 1fr;gap:0;height:calc(100vh - 130px);min-height:460px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel)}.kb-sidebar{border-right:1px solid var(--border);overflow-y:auto;padding:12px 8px;background:var(--bg)}.kb-side-head,.kb-list-head{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 10px}.kb-side-head h3,.kb-list-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kb-folders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.kb-folder{display:flex;align-items:center;gap:7px;width:100%;border:none;background:transparent;color:var(--text);text-align:left;padding:7px 10px;border-radius:var(--radius);cursor:pointer;font-size:13.5px}.kb-folder:hover{background:var(--hover, rgba(127,127,127,.1))}.kb-folder.active{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--text);font-weight:600}.kb-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-folder-count{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.kb-folder-actions{display:none;gap:2px;margin-left:4px}.kb-folder:hover .kb-folder-actions{display:inline-flex}.conn-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.field-item.glossary-item{cursor:pointer;border-left:3px solid var(--primary);font-size:12.5px}.glossary-modal .glossary-body{max-height:60vh;overflow-y:auto;font-size:14px;line-height:1.5}.kb-datasets{position:relative}.kb-datasets>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel);cursor:pointer;white-space:nowrap}.kb-datasets>summary::-webkit-details-marker{display:none}.kb-datasets>summary:hover{border-color:var(--primary)}.kb-datasets-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:320px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:12px}.kb-datasets-hint{margin:0 0 4px;font-size:12px;color:var(--muted);line-height:1.4}.kb-dataset-check{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}:root[data-theme=dark] .kb-datasets>summary{background:#23262c;border-color:#33383f}.kb-folder-actions button{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:11px;padding:1px 3px;border-radius:var(--radius-xs)}.kb-folder-actions button:hover{background:var(--border);color:var(--text)}.kb-list{border-right:1px solid var(--border);overflow-y:auto;padding:12px 10px;background:var(--panel)}.kb-list-actions{display:flex;gap:6px;flex-shrink:0}.save-btn,.export-btn,.ghost-btn,.upload-btn,.link-btn,.danger-btn{white-space:nowrap}.kb-doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.kb-doc{display:flex;gap:9px;width:100%;text-align:left;border:1px solid transparent;background:transparent;color:var(--text);padding:9px 10px;border-radius:var(--radius);cursor:pointer}.kb-doc:hover{background:var(--bg);border-color:var(--border)}.kb-doc.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--bg))}.kb-doc-ic{font-size:16px}.kb-doc-body{display:flex;flex-direction:column;min-width:0}.kb-doc-title{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-doc-meta{font-size:11px;color:var(--muted)}.kb-editor{display:flex;flex-direction:column;overflow:hidden;background:var(--panel)}.kb-editor-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);flex-wrap:wrap}.kb-title-input{flex:1;min-width:160px;font-size:15px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;background:var(--bg);color:var(--text)}.kb-folder-select{border:1px solid var(--border);border-radius:var(--radius);padding:7px 8px;background:var(--bg);color:var(--text);font-size:12.5px;max-width:160px}.kb-mode-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.kb-mode-seg button{border:none;background:var(--bg);color:var(--muted);cursor:pointer;padding:6px 11px;font-size:12.5px}.kb-mode-seg button.active{background:var(--primary);color:var(--on-primary, #fff)}.kb-editor-body{flex:1;display:grid;overflow:hidden}.kb-editor-body.mode-edit,.kb-editor-body.mode-preview{grid-template-columns:1fr}.kb-editor-body.mode-split{grid-template-columns:1fr 1fr}.kb-md-input{border:none;border-right:1px solid var(--border);resize:none;padding:16px 18px;font-family:var(--mono, monospace);font-size:13.5px;line-height:1.6;background:var(--bg);color:var(--text);outline:none}.kb-editor-body.mode-edit .kb-md-input{border-right:none}.kb-md-preview{overflow-y:auto;padding:8px 22px}.md-doc{max-width:68ch;line-height:1.65}.md-doc h3{font-size:22px;margin:18px 0 8px}.md-doc h4{font-size:18px;margin:16px 0 6px}.md-doc h5{font-size:15px;margin:14px 0 5px}.md-doc p{margin:8px 0}.md-doc ul{margin:8px 0;padding-left:22px}.md-doc li{margin:3px 0}.md-doc code{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 5px;font-family:var(--mono, monospace);font-size:.9em}.md-doc pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;overflow-x:auto}.md-doc pre code{background:none;border:none;padding:0}.md-doc blockquote{margin:8px 0;padding:4px 14px;border-left:3px solid var(--primary);color:var(--muted)}.kb-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.kb-empty-inner{max-width:42ch;text-align:center}.kb-empty-ic{font-size:40px;margin-bottom:8px}.kb-empty-inner h3{margin:0 0 8px}.kb-empty-inner p{color:var(--muted);font-size:14px;margin:0 0 16px;line-height:1.6}@media (max-width: 900px){.kb-view{grid-template-columns:1fr;height:auto}.kb-sidebar,.kb-list{border-right:none;border-bottom:1px solid var(--border);max-height:220px}.kb-editor-body.mode-split{grid-template-columns:1fr}.kb-editor-body.mode-split .kb-md-input{border-right:none;border-bottom:1px solid var(--border)}}.ecp-view{display:flex;flex-direction:column;height:100%}.ecp-appbar{display:flex;flex-direction:column;padding:10px 16px 0;border-bottom:1px solid var(--border);background:var(--panel)}.ecp-appbar-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:10px}.ecp-badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius);font-size:18px;color:#fff;flex-shrink:0}.ecp-name{font-size:17px;font-weight:700}.ecp-name-input{font-size:16px;font-weight:700;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--bg);color:var(--text)}.ecp-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.ecp-tabs{display:flex;gap:2px;flex-wrap:wrap;align-items:flex-end;margin:0 -16px;padding:0 12px}.ecp-tab{border:none;background:transparent;color:var(--muted);border-bottom:2.5px solid transparent;border-radius:0;padding:9px 14px 10px;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:color .12s ease,border-color .12s ease;margin-bottom:-1px}.ecp-tab:hover{color:var(--text)}.ecp-tab.active{color:var(--text);font-weight:600;border-bottom-color:var(--primary)}.ecp-public-header{flex-direction:column;align-items:stretch;gap:0;padding:14px 24px 0}.ecp-public-header .ecp-appbar-top{padding-bottom:12px;width:100%}.ecp-public-header .ecp-tabs{margin:0 -24px;padding:0 20px}.ecp-public-header .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.ecp-structure{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px;align-items:start}.ecp-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.ecp-card h3{margin:0 0 8px;font-size:15px}.ecp-icon-chooser{display:flex;align-items:center;gap:12px;margin-top:4px}.ecp-badge.lg{width:46px;height:46px;border-radius:var(--radius-md)}.ecp-home-mark{color:var(--muted);margin-right:5px;vertical-align:-2px}.ecp-tab.active .ecp-home-mark{color:inherit}.dash-card-icon{color:var(--muted);margin-right:6px;vertical-align:-2px}.modal.icon-picker{width:560px;max-width:94vw;padding:18px 20px;display:flex;flex-direction:column;max-height:82vh}.icon-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.icon-picker-head h3{margin:0;font-size:16px;font-weight:700;color:var(--text)}.icon-picker-close{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:4px}.icon-picker-close:hover{color:var(--text)}.icon-picker-search{margin-bottom:12px}.icon-picker-body{overflow-y:auto;flex:1;padding-right:4px}.icon-picker-count{font-size:12px;color:var(--muted);margin-bottom:8px}.icon-picker-section{margin-bottom:14px}.icon-picker-group{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.icon-cell{display:inline-flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:1px solid var(--border);background:var(--bg);border-radius:var(--radius);cursor:pointer;color:var(--text);transition:border-color .12s,background .12s}.icon-cell:hover{border-color:var(--primary);background:var(--panel)}.icon-cell.active{border-color:var(--primary);border-width:2px;color:var(--primary-dark)}.ecp-page-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}.ecp-page-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.ecp-page-name{font-size:13.5px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.ecp-tab-kind{color:var(--muted)}.ecp-kind-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--muted);background:var(--panel-2, rgba(140,198,63,.1));border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 6px}.ecp-page-actions{display:flex;gap:3px}.ecp-page-actions button{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:13px;padding:2px 6px;border-radius:var(--radius-xs)}.ecp-page-actions button:hover:not(:disabled){background:var(--border);color:var(--text)}.ecp-page-actions button:disabled{opacity:.35;cursor:default}.ecp-add-row{display:flex;gap:8px}.ecp-add-row select{flex:1;border:1px solid var(--border);border-radius:var(--radius);padding:7px 8px;background:var(--bg);color:var(--text)}.ecp-run{flex:1;min-height:0;overflow:auto}.pf-hint{display:block;font-size:11px;color:var(--muted);margin-top:3px}.app-action-block{display:flex;align-items:center;height:100%}.app-action-btn{background:var(--primary);color:var(--on-primary, #fff);border:none;border-radius:var(--radius);padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.app-action-btn:disabled{opacity:.6;cursor:default}.app-action-btn:hover:not(:disabled){filter:brightness(1.06)}.kind-badge.app{background:#efe3fb;color:#7a3fb0}:root[data-theme=dark] .kind-badge.app{background:#a05ac840;color:#d9b8f0}@media (max-width: 820px){.ecp-structure{grid-template-columns:1fr}.ecp-appbar{gap:8px}}.pivot-wrap{display:flex;flex-direction:column;gap:8px;min-height:0;height:100%}.pivot-wrap>.table-wrap{flex:1;min-height:0}.pivot-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}.pivot-expand{display:inline-flex;gap:6px;align-items:center}.data-table.pivot thead th{position:sticky;z-index:2;background:var(--panel);padding-right:14px}.data-table.pivot .sticky-col{position:sticky;left:0;z-index:1;background:var(--panel)}.data-table.pivot thead .sticky-col{z-index:3}.data-table.pivot tbody tr:nth-child(2n) .sticky-col{background:#fafbfe}.data-table.pivot tr.pivot-subtotal .sticky-col{background:color-mix(in srgb,var(--primary) 6%,var(--panel))}.data-table.pivot tr.total-row .sticky-col{background:var(--panel)}.col-resize{position:absolute;top:0;right:0;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none}.col-resize:hover{background:color-mix(in srgb,var(--primary) 50%,transparent)}body.resizing-h{cursor:col-resize;-webkit-user-select:none;user-select:none}.pivot-hint{font-size:12px}.pivot-truncated{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#b26a00;background:#fff5e0;border:1px solid #f0d49a;border-radius:var(--radius-sm);padding:3px 8px;cursor:help}:root[data-theme=dark] .pivot-truncated{background:#3a2e14;border-color:#6b551f;color:#f0c060}.pivot-toggle{border:none;background:transparent;cursor:pointer;color:var(--primary);font-size:17px;line-height:1;width:22px;padding:0 4px 0 0;vertical-align:middle}.pivot-toggle:hover{color:var(--primary-dark)}.data-table.pivot .pivot-corner{background:var(--panel);text-align:left}.data-table.pivot .pivot-colhead{text-align:center}.data-table.pivot .pivot-measure-head{text-align:right;font-weight:500;font-size:11.5px;color:var(--muted)}.data-table.pivot .pivot-measure-head.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table.pivot .pivot-measure-head.sortable:hover{color:var(--primary)}.data-table.pivot tr.pivot-group>th.row-head{font-weight:700}.data-table.pivot tr.pivot-subtotal{background:color-mix(in srgb,var(--primary) 6%,transparent)}.data-table.pivot tr.pivot-subtotal>th.row-head{font-weight:600}.pivot-subtotal-tag{color:var(--muted);font-weight:400;font-size:11px}.data-table.pivot td[title]{cursor:pointer}.fmt-pivot-cols{gap:6px}.pivot-dim-check{display:inline-flex;align-items:center;gap:3px;font-size:12px}.nf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.nf-add{border:1px dashed var(--border);border-radius:var(--radius);padding:5px 8px;background:var(--bg);color:var(--muted);font-size:12.5px;cursor:pointer}.nf-chip{position:relative;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:999px;padding:2px 8px 2px 4px;background:var(--panel);font-size:12.5px}.nf-chip.open{border-color:var(--primary)}.nf-chip-head{border:none;background:transparent;color:var(--text);cursor:pointer;font-size:12.5px;padding:3px 4px}.nf-chip-head strong{color:var(--primary)}.nf-caret{color:var(--muted);font-size:10px}.nf-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-menu);padding:10px;min-width:220px}.nf-values{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow:auto}.nf-search{position:sticky;top:0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:12px;background:var(--panel);color:var(--text);margin-bottom:2px}.nf-search:focus{outline:none;border-color:var(--primary)}.nf-val{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text)}.nf-range{display:flex;flex-direction:column;gap:8px}.nf-range label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}.nf-range input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 7px;background:var(--bg);color:var(--text);flex:1}.nf-cascade{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer}.nf-scope{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:4px;max-height:180px;overflow:auto}.nf-scope-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.query-inspect-sql pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font-family:var(--mono, ui-monospace, Consolas, monospace);font-size:12.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:45vh;overflow:auto}.install-pwa-btn{background:var(--accent, #acc80e);color:#0a1a44;border:none;border-radius:var(--radius);padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.install-pwa-btn:hover{filter:brightness(1.05)}.export-group{display:flex;gap:6px}.export-btn{display:inline-flex;align-items:center;gap:5px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;cursor:pointer;font-size:12px;color:var(--text);font-weight:600;transition:border-color .15s,background .15s}.export-btn.icon,.danger-btn.icon,.link-btn.icon{padding:7px;gap:3px;justify-content:center;line-height:0}.export-btn:hover:not(:disabled){border-color:var(--primary);background:var(--surface-sun)}.export-btn:disabled{opacity:.5;cursor:default}.save-viz-btn{margin-left:auto;background:var(--dim);color:#fff;border:none;border-radius:var(--radius-sm);padding:7px 14px;font-weight:600;cursor:pointer}.save-viz-btn:disabled{opacity:.5;cursor:default}.viz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.viz-actions .export-group+.export-group{padding-left:8px;border-left:1px solid var(--border)}.chip.filter{background:#eef2fb;color:var(--text);border:1px solid var(--border);gap:4px}.chip.filter select,.chip.filter input{border:1px solid var(--border);border-radius:var(--radius-xs);font-size:12px;padding:2px 4px}.chip.filter input{width:110px}.kpi-grid{display:flex;flex-wrap:wrap;gap:16px;align-content:flex-start;height:100%}.kpi-card{flex:1;min-width:180px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:22px 24px;display:flex;flex-direction:column;justify-content:center;min-height:120px}.kpi-value{font-family:var(--font-display);font-size:36px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.kpi-label{margin-top:8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kpi-card.kpi-good{border-left-color:var(--good, #33735a);background:var(--surface-mint)}.kpi-card.kpi-bad{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--panel))}.kpi-target{margin-top:10px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.kpi-delta{font-weight:700;font-variant-numeric:tabular-nums}.kpi-delta.up{color:var(--good, #33735a)}.kpi-delta.down{color:var(--danger)}.trend-card{height:100%;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:20px 22px 12px;display:flex;flex-direction:column;justify-content:center;min-height:120px}.trend-value{font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.05}.trend-label{margin-top:6px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.dcard-image{max-width:100%;max-height:100%;object-fit:contain;display:block;margin:auto}.dcard-edit .dcard-image{max-height:160px}.trend-aviso{display:inline-flex;align-items:center;margin-left:6px;color:var(--muted);cursor:help}.trend-delta{margin-top:10px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:6px}.trend-delta.good{color:var(--good, #33735a)}.trend-delta.bad{color:var(--danger)}.trend-arrow{font-size:11px}.trend-vs{color:var(--muted);font-weight:500;font-size:11px;text-transform:none;letter-spacing:0}.trend-spark{display:block;width:100%;height:44px;margin-top:12px}.trend-spark-line{stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}.trend-spark-fill{fill:color-mix(in srgb,var(--primary) 14%,transparent);stroke:none}.trend-spark-dot{fill:var(--primary)}.trend-card:has(.trend-delta.good) .trend-spark-line,.trend-card:has(.trend-delta.good) .trend-spark-dot{stroke:var(--good, #33735a);fill:var(--good, #33735a)}.trend-card:has(.trend-delta.good) .trend-spark-fill{fill:color-mix(in srgb,var(--good, #33735a) 14%,transparent)}.trend-card:has(.trend-delta.bad) .trend-spark-line,.trend-card:has(.trend-delta.bad) .trend-spark-dot{stroke:var(--danger);fill:var(--danger)}.trend-card:has(.trend-delta.bad) .trend-spark-fill{fill:color-mix(in srgb,var(--danger) 14%,transparent)}.data-table.pivot td{text-align:right;font-variant-numeric:tabular-nums}.data-table.pivot .row-head,.data-table.pivot thead th{text-align:left;background:#f2f5fb}.data-table.pivot .total-col,.data-table.pivot .total-row{font-weight:700;background:#eef2fb}.public-shell{min-height:100vh;background:#f4f6fb}.public-header{display:flex;align-items:center;gap:16px;padding:14px 24px;background:#fff;border-bottom:1px solid #e3e8f0;position:sticky;top:0;z-index:5}.public-title{font-size:18px;font-weight:700;margin:0;flex:1}.public-badge{font-size:12px;font-weight:600;color:var(--primary-dark);background:#eef2fb;border-radius:999px;padding:4px 12px}.widget-header.static{cursor:default}.export-btn.shared{background:#e6f4ea;border-color:#86c79b;color:#1c7a3f}.cond-format{position:relative;display:inline-block}.export-btn.icon-only{display:inline-flex;align-items:center;gap:4px;padding:6px 9px}.btn-contador{font-size:10px;font-weight:800;line-height:1;padding:2px 4px;border-radius:8px;background:var(--primary);color:var(--on-primary, #fff)}.cond-panel{position:fixed;z-index:200;overflow-y:auto;background:#fff;border:1px solid #d7deea;border-radius:var(--radius-md);box-shadow:var(--shadow-pop);padding:12px}.cond-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.cond-rule{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}.cond-rule select,.cond-rule input{font-size:12px;padding:4px 6px}.cond-rule select{min-width:120px}.cond-rule .cond-col{min-width:150px;flex:1}.cond-rule .cond-op{min-width:0;width:68px}.cond-rule .chip-remove{flex:none;margin-left:auto}.cond-val{width:90px}.cond-rule input[type=color]{width:34px;height:26px;padding:0;border:1px solid #d7deea;border-radius:var(--radius-xs)}.sqllab-side-tabs{display:flex;gap:6px;margin-bottom:10px}.sqllab-side-tabs button{flex:1;padding:6px 8px;border:1px solid #d7deea;background:#f4f6fb;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;color:#4b5566}.sqllab-side-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.schema-table{margin-bottom:2px}.tree-caret{display:inline-block;width:14px;color:#8a94a6}.schema-cols{margin:2px 0 6px 18px;border-left:2px solid #e3e8f0;padding-left:6px}.schema-col{display:flex;justify-content:space-between;gap:8px;padding:2px 6px;border-radius:var(--radius-xs);cursor:pointer;font-size:12px}.schema-col:hover{background:#eef2fb}.schema-col .col-name{color:#23324d}.schema-col .col-type{color:#8a94a6;font-size:11px}.saved-q{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.saved-q:hover{background:#eef2fb}.saved-q.active{background:#e6ecff}.saved-q-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sqllab-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:8px}.dm-toggle{display:inline-flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);padding:8px 12px;cursor:pointer;color:var(--text);transition:border-color .15s,background .15s,box-shadow .15s}.dm-toggle:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);box-shadow:var(--shadow-soft)}.dm-toggle.open{background:color-mix(in srgb,var(--primary) 10%,transparent);border-color:var(--primary)}.dm-toggle-label{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;font-weight:700;font-size:13px}.dm-toggle-sub{font-weight:400;font-size:11px;color:var(--muted)}.dm-toggle-caret{margin-left:4px;color:var(--muted)}.sql-history{border:1px solid #d7deea;border-radius:var(--radius);background:#fff;margin:8px 0;max-height:240px;overflow-y:auto}.sql-history-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #eef2fb;position:sticky;top:0;background:#fff}.sql-hist-row{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid #f2f5fa;cursor:pointer;font-size:12px}.sql-hist-row:hover{background:#f7f9fd}.sql-hist-row.failed .hist-status{color:#e2565b}.sql-hist-row .hist-status{color:#2e9e5b;font-weight:700}.hist-sql{flex:1;font-family:SFMono-Regular,Consolas,monospace;color:#23324d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hist-meta{color:#8a94a6;white-space:nowrap}.fc-badge.alert{background:#fdecea;color:#c0392b;border-color:#f5b7b1}.insight-anomalies{margin:12px 0;padding:10px 14px;background:#fff8f0;border:1px solid #f0d9b5;border-radius:var(--radius)}.insight-anomalies ul{margin:6px 0 0;padding-left:18px}.insight-anomalies li{margin:3px 0;font-size:13px}.anom.up{color:#c0392b}.anom.down{color:#1f6feb}.login-divider{display:flex;align-items:center;text-align:center;color:#9aa4b8;font-size:12px;margin:14px 0 10px}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid #e3e8f0}.login-divider span{padding:0 10px}.sso-btn{width:100%;padding:10px;border:1px solid var(--primary);background:#fff;color:var(--primary);border-radius:var(--radius);font-weight:600;cursor:pointer}.sso-btn:hover{background:#eef2fb}.section-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:10px 0}.section-controls label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#6b7385;font-weight:600}.section-controls select,.section-controls input{font-size:13px;padding:5px 7px;border:1px solid #d7deea;border-radius:var(--radius-sm)}.section-preview{border:1px solid #eef2fb;border-radius:var(--radius);padding:8px;background:#fbfcfe;margin-top:6px}.save-btn,.upload-btn,.save-viz-btn,.chart-type.active,.chip.dim,.sso-btn:hover,.export-btn.shared{color:var(--on-primary)!important}.save-btn:hover,.upload-btn:hover,.save-viz-btn:hover{background:var(--primary-dark)}.chip.measure{color:#fff!important}.backup-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}.templates-view{padding:24px}.tpl-category{margin-top:18px}.tpl-cat-title{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px}.tpl-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.tpl-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:8px}.tpl-card:hover{border-color:var(--primary)}.tpl-card-top{display:flex;align-items:center;gap:8px}.tpl-badge{font-size:11px;font-weight:700;border-radius:999px;padding:2px 10px}.tpl-badge.dash{background:#eaf5d8;color:#3e6b12}.tpl-badge.report{background:#e5e7e9;color:#2b2f36}.tpl-builtin{font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.tpl-card-name{font-weight:700;font-size:15px}.tpl-card-desc{font-size:13px;color:var(--muted);flex:1;min-height:34px}.tpl-card-actions{display:flex;align-items:center;gap:10px}.ai-panel.chat{width:400px;max-height:78vh;display:flex;flex-direction:column}.ai-chat-log{flex:1;overflow-y:auto;margin:8px 0;padding-right:4px;min-height:180px;max-height:52vh}.ai-msg{margin:8px 0;display:flex;flex-direction:column}.ai-msg.user{align-items:flex-end}.ai-msg.bot{align-items:flex-start}.ai-bubble{max-width:92%;padding:8px 12px;border-radius:var(--radius-lg);font-size:13.5px;line-height:1.45;white-space:pre-wrap}.ai-msg.user .ai-bubble{background:var(--primary);color:var(--on-primary);border-bottom-right-radius:3px}.ai-msg.bot .ai-bubble{background:var(--surface-2);color:var(--text);border-bottom-left-radius:3px}.ai-msg-chart{width:100%;margin-top:6px;border:1px solid var(--border);border-radius:var(--radius);padding:6px;background:var(--panel)}.ai-msg-chart .export-btn{margin-top:4px}.ai-welcome{padding:6px 2px}.ia-qualidade{padding:4px 0 40px}.ia-q-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.ia-q-abas{display:flex;gap:4px}.ia-q-aba{background:none;border:1px solid transparent;border-radius:var(--radius);padding:6px 12px;font-size:13.5px;color:var(--muted);cursor:pointer}.ia-q-aba:hover{color:var(--text)}.ia-q-aba.ativa{color:var(--text);border-color:var(--border);background:var(--panel);font-weight:600}.ia-q-lista{display:flex;flex-direction:column;gap:10px;max-width:900px}.ia-q-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:12px 14px}.ia-q-item.inativo{opacity:.55}.ia-q-pergunta{font-weight:600;font-size:14px;margin-bottom:4px}.ia-q-resposta{font-size:13.5px;color:var(--text);margin-bottom:6px;white-space:pre-wrap}.ia-q-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.ia-q-motivos{font-size:12.5px;color:var(--muted);font-style:italic;margin-top:4px}.ia-q-bom{color:var(--primary-dark)}.ia-q-ruim{color:var(--danger)}.ia-q-acoes{display:flex;gap:6px;margin-top:8px}.ia-q-placar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:12px 14px}.ia-q-nota{font-size:24px;font-variant-numeric:tabular-nums}.kb-reindex{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-sun);padding:9px 12px;font-size:13px;margin-bottom:12px}.notif-acao{margin-top:4px;font-size:12.5px;padding:0}.ia-q-perguntas-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ia-q-perguntas-head h4{margin:14px 0 6px}.ia-q-detalhe{display:flex;flex-direction:column;gap:4px}.ia-q-caso{display:flex;gap:9px;font-size:13px;padding:5px 2px;align-items:flex-start}.ia-q-caso-marca{font-weight:700;line-height:1.5}.ia-q-caso.ok .ia-q-caso-marca{color:var(--primary-dark)}.ia-q-caso.erro .ia-q-caso-marca{color:var(--danger)}.ia-q-diff{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);margin-top:3px}.ia-q-diff code{font-size:11.5px;word-break:break-all}.de-vocab-ajuda{margin:-4px 0 10px;font-size:12.5px}.de-vocab-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1.3fr) minmax(0,2fr) auto;gap:8px;align-items:center;margin-bottom:6px}.de-vocab-campo{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 720px){.de-vocab-row{grid-template-columns:1fr auto}.de-vocab-campo{grid-column:1 / -1}}.ai-bubble.md{white-space:normal}.ai-bubble.md>.md-lite>*:first-child{margin-top:0}.ai-bubble.md>.md-lite>*:last-child{margin-bottom:0}.ai-bubble.md p{margin:0 0 7px}.ai-bubble.md p:last-child{margin-bottom:0}.ai-bubble.md ul,.ai-bubble.md ol{margin:6px 0;padding-left:20px}.ai-bubble.md li{margin:2px 0}.ai-bubble.md h3{font-size:15px;margin:8px 0 4px}.ai-bubble.md h4{font-size:14px;margin:8px 0 4px}.ai-bubble.md h5{font-size:13.5px;margin:6px 0 3px}.ai-bubble.md pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin:6px 0;overflow-x:auto;font-size:11.5px}.ai-bubble.md blockquote{margin:6px 0;padding:2px 10px;border-left:2px solid var(--primary);color:var(--muted)}.md-tabela-wrap{overflow-x:auto;margin:8px 0;max-width:100%}.md-tabela{border-collapse:collapse;font-size:12.5px;min-width:100%}.md-tabela th,.md-tabela td{border:1px solid var(--border);padding:4px 8px;text-align:left;white-space:nowrap}.md-tabela th{background:var(--surface-2);font-weight:600}.md-tabela td{font-variant-numeric:tabular-nums}.ai-etapa{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);padding:4px 2px}.ai-etapa-ponto{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:ai-pulsa 1.1s ease-in-out infinite}@keyframes ai-pulsa{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.ai-cursor{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:text-bottom;background:currentColor;animation:ai-pisca 1s step-end infinite}@keyframes ai-pisca{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion: reduce){.ai-etapa-ponto,.ai-cursor{animation:none}}.ai-opcoes{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}.ai-voto{display:flex;align-items:center;gap:4px;margin-top:4px}.ai-voto-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;padding:3px 6px;line-height:1;display:inline-flex}.ai-voto-btn:hover{color:var(--text);border-color:var(--border)}.ai-voto-btn.ativo{color:var(--primary-dark);border-color:var(--border);background:var(--surface-2)}.ai-voto-btn.ativo.ruim{color:var(--danger)}.ai-voto-obrigado{font-size:11px;color:var(--muted)}.link-btn.ai-agente{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500;color:var(--muted)}.link-btn.ai-agente:hover{color:var(--text);border-color:var(--muted)}.link-btn.ai-agente.ativo{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700}.ai-prova{margin:4px 0 2px;align-self:flex-start;max-width:92%}.ai-prova>summary{cursor:pointer;font-size:11.5px;color:var(--muted);list-style:none;padding:2px 0}.ai-prova>summary::-webkit-details-marker{display:none}.ai-prova>summary:before{content:"▸ "}.ai-prova[open]>summary:before{content:"▾ "}.ai-prova>summary:hover{color:var(--text)}.ai-prova-meta{font-size:11.5px;color:var(--muted);margin:4px 0 4px 12px}.ai-prova-sql{margin:0 0 0 12px;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto}.ai-head{cursor:move;-webkit-user-select:none;user-select:none}.ai-head button{cursor:pointer}.ai-panel.movel{overflow:hidden}.ai-panel.movel .ai-chat-log{max-height:none;min-height:0}.ai-panel.movel .ai-compose{min-height:0;overflow:auto}.ai-resize{position:absolute;z-index:2}.ai-resize.n{top:0;left:12px;right:12px;height:6px;cursor:n-resize}.ai-resize.s{bottom:0;left:12px;right:12px;height:6px;cursor:s-resize}.ai-resize.w{left:0;top:12px;bottom:12px;width:6px;cursor:w-resize}.ai-resize.e{right:0;top:12px;bottom:12px;width:6px;cursor:e-resize}.ai-resize.nw{top:0;left:0;width:14px;height:14px;cursor:nw-resize}.ai-resize.ne{top:0;right:0;width:14px;height:14px;cursor:ne-resize}.ai-resize.sw{bottom:0;left:0;width:14px;height:14px;cursor:sw-resize}.ai-resize.se{bottom:0;right:0;width:14px;height:14px;cursor:se-resize}.ai-resize.se:after{content:"";position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid var(--border);border-bottom:2px solid var(--border);border-bottom-right-radius:3px}.ai-panel:hover .ai-resize.se:after{border-color:var(--primary)}body.arrastando-painel{-webkit-user-select:none;user-select:none}body.arrastando-painel *{cursor:inherit!important}:root[data-theme=dark]{--bg: #14161a;--panel: #1e2126;--border: #39404a;--text: #e8ece4;--muted: #9aa39a;--sidebar: #0e0f12;--sidebar-2: #23262c;--surface-2: #23262c;--surface-mint: #1c2a22;--surface-cream: #292620;--surface-sun: #242a18;--primary-dark: #a8d65f;--shadow-soft: none;--shadow-card: none;--shadow-menu: 0 2px 8px rgba(0,0,0,.4);--shadow-pop: 0 4px 12px rgba(0,0,0,.45);--shadow-modal: 0 8px 24px rgba(0,0,0,.5);--shadow-glow: 0 2px 8px rgba(0,0,0,.4)}h1,h2,h3,h4,.dm-name,.ecp-name,.dialog-title{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}h1{letter-spacing:-.03em}.subtle,.empty-hint{color:var(--muted)}:root[data-theme=dark] body{background:var(--bg);color:var(--text)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#23262c;color:var(--text);border-color:#33383f}:root[data-theme=dark] .data-table th{background:#23262c;color:var(--text)}:root[data-theme=dark] .data-table td{border-color:#2c3138}:root[data-theme=dark] .info-box{background:#1b2b17;color:#cfe8bd}:root[data-theme=dark] .tpl-card,:root[data-theme=dark] .dash-card{background:var(--panel);color:var(--text);border-color:var(--border)}:root[data-theme=dark] .field-item,:root[data-theme=dark] .chart-type,:root[data-theme=dark] .export-btn{background:#23262c;color:var(--text);border-color:#33383f}:root[data-theme=dark] .field-item:hover,:root[data-theme=dark] .chart-type:hover,:root[data-theme=dark] .export-btn:hover:not(:disabled){background:#2c3138}:root[data-theme=dark] .field-item.metric-item.active{background:#2a2340;border-color:#8b6cf0}:root[data-theme=dark] .mini-add{background:#23262c;color:var(--primary);border-color:#33383f}:root[data-theme=dark] .chart-type.active,:root[data-theme=dark] .export-btn.shared{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}:root[data-theme=dark] .cond-panel{background:var(--panel);border-color:var(--border);color:var(--text)}:root[data-theme=dark] .chart-picker-trigger,:root[data-theme=dark] .chart-picker-search,:root[data-theme=dark] .popover-trigger{background:#23262c;color:var(--text);border-color:#33383f}:root[data-theme=dark] .chart-picker-trigger:hover,:root[data-theme=dark] .popover-trigger:hover,:root[data-theme=dark] .popover-trigger.open{background:#2c3138}:root[data-theme=dark] .panel-rail{background:#23262c;border-color:#33383f}:root[data-theme=dark] .cond-rule input[type=color]{border-color:#33383f}.theme-toggle{background:transparent;border:none;color:var(--muted);border-radius:var(--radius);padding:6px 9px;cursor:pointer;font-size:16px;line-height:1;transition:background .15s,color .15s}.theme-toggle:hover{background:var(--surface-2);color:var(--text)}.data-table.entry th{padding:4px}.data-table.entry .entry-col{width:110px;font-size:12px;padding:3px 5px}.data-table.entry th select{font-size:11px;margin-top:2px}.data-table.entry .entry-cell{width:130px;font-size:13px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-xs)}.cert-badge{font-size:11px;font-weight:700;color:#1c7a3f;background:#e6f4ea;border-radius:999px;padding:2px 10px;margin-left:8px}.gov-edit{background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:14px;margin-left:6px}.gov-edit:hover{color:var(--primary)}.gov-edit.icon-only{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-left:0;border-radius:var(--radius);flex-shrink:0}.gov-edit.icon-only:hover{background:var(--hover, rgba(140, 198, 63, .12))}.ds-description{width:100%;margin:4px 0 0;font-size:13px;color:var(--muted);font-style:italic}.app-view{padding:20px 24px}.app-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 14px}.app-canvas{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start}.app-block{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px}.app-block.full{width:100%}.app-block.half{width:calc(50% - 7px)}.app-block.third{width:calc(33.333% - 10px)}.app-block-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed var(--border)}.app-block-bar select,.app-block-bar input{font-size:12px;padding:4px 6px}.app-block-type{font-size:10px;font-weight:800;color:var(--primary-dark);background:#eaf5d8;border-radius:var(--radius-sm);padding:2px 8px}.app-block-tools{margin-left:auto;display:flex;gap:4px}.app-block-title{font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:6px}.data-table th.ind-col,.data-table td.ind-col{text-align:center;white-space:nowrap}.data-table th.ind-col{font-size:11px}.ind-celula{display:inline-flex;align-items:center;gap:5px}.data-table td.num .ind-simbolo-celula{float:left}.ind-simbolo-celula{font-size:13px;line-height:1;margin-right:6px}.ind-simbolo{font-size:15px;line-height:1}.ind-rotulo{font-size:11px;color:var(--muted)}.ind-valor{font-size:12px;font-variant-numeric:tabular-nums}.ind-panel{display:flex;flex-direction:column;gap:10px}.ind-sets{display:flex;flex-wrap:wrap;gap:6px}.ind-set-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);padding:5px 8px;font-size:12px;cursor:pointer}.ind-set-btn:hover{border-color:var(--primary)}.ind-set-icones{display:inline-flex;gap:1px;font-size:13px;line-height:1}.ind-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;gap:6px}.ind-card-head{display:flex;align-items:center;gap:6px}.ind-label{flex:1;font-weight:700;border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:12px}.ind-linha{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.ind-linha select{flex:1;min-width:0}.ind-faixa{display:flex;align-items:center;gap:4px}.ind-faixa select{flex:none}.ind-icone{width:56px;text-align:center;font-size:14px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px}.ind-texto{flex:1;min-width:40px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 5px}.ind-else{flex:none;width:78px;font-size:11px;color:var(--muted)}.ind-card-acoes{display:flex;align-items:center;justify-content:space-between;gap:8px}.ind-mostrar-valor{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}.ind-mostrar-valor input{width:auto}.ind-ordem{font-size:11px;color:var(--muted)}.wk-badge{position:relative;display:inline-flex;flex:none}.widget-header .wk-badge{margin-right:auto}.widget-vinculo{display:inline-flex;align-items:center;color:var(--muted);flex:none}.widget-header .widget-vinculo+.wk-badge{margin-left:-2px}.wk-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:none;cursor:pointer;color:var(--muted);border-radius:var(--radius-sm)}.wk-icon:hover,.wk-icon.on{color:var(--primary);background:var(--hover, rgba(0, 0, 0, .05))}.wk-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:320px;max-height:320px;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-menu);padding:12px;font-weight:400;font-size:13px;color:var(--text);text-align:left;white-space:normal;cursor:default}.wk-pop-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:8px}.wk-nota{margin-bottom:8px}.wk-doc+.wk-doc,.wk-nota+.wk-doc{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.wk-doc-title{font-weight:700;margin-bottom:2px}.wk-modal{width:min(560px,92vw)}.wk-nota-input{width:100%;min-height:90px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius);padding:10px;font-family:inherit;font-size:13px;color:var(--text)}.wk-doc-list{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px}.app-md-input{width:100%;min-height:90px;border:1px solid var(--border);border-radius:var(--radius);padding:10px;font-family:inherit;font-size:13px;resize:vertical;margin-bottom:8px}.md-lite h3{margin:8px 0 4px;font-size:18px}.md-lite h4{margin:6px 0 3px;font-size:15px}.md-lite p{margin:3px 0}.md-lite li{margin:2px 0 2px 18px}.app-param{display:flex;flex-direction:column;gap:4px}.app-param label{font-size:12px;font-weight:600;color:var(--muted)}.app-param select,.app-param input{max-width:260px}.pc-multi{position:relative;display:inline-block;max-width:260px}.pc-multi-head{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:160px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 9px;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.pc-multi.open .pc-multi-head,.pc-multi-head:hover{border-color:var(--primary)}.pc-multi-resumo{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 860px){.app-block.half,.app-block.third{width:100%}}.layout-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.layout-toggle .seg{border:none;background:var(--panel);color:var(--muted);font-size:12px;font-weight:700;padding:6px 10px;cursor:pointer}.layout-toggle .seg+.seg{border-left:1px solid var(--border)}.layout-toggle .seg.active{background:var(--primary);color:var(--on-primary)}.app-grid-wrap{width:100%;min-width:0}.app-grid{width:100%}.app-block.grid{height:100%;overflow:auto;display:flex;flex-direction:column}.app-block.grid .app-block-body{flex:1;min-height:0}.app-block.grid .app-block-bar{cursor:grab}.app-crossfilters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 12px}.cross-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;background:#eaf5d8;color:var(--primary-dark);border:1px solid var(--border);border-radius:var(--radius-lg);padding:3px 6px 3px 10px}.cross-chip button{border:none;background:transparent;cursor:pointer;color:var(--primary-dark);font-size:12px;line-height:1;padding:0 2px}.app-editor{display:flex;gap:16px;align-items:flex-start}.app-editor .app-workarea{flex:1;min-width:0}.app-empty{display:flex;flex-direction:column;gap:12px;align-items:flex-start;padding:24px 0}.app-block{position:relative}.app-block-head{display:flex;align-items:center;gap:8px;padding:4px 6px;margin:-14px -14px 8px;border-bottom:1px solid transparent;border-radius:var(--radius-lg) var(--radius-lg) 0 0;opacity:0;transition:opacity .12s,background .12s;cursor:grab}.app-block:hover .app-block-head,.app-block.selected .app-block-head,.app-block.editing .app-block-head{opacity:1;background:var(--panel-2, rgba(140,198,63,.07));border-bottom-color:var(--border)}.app-block-head:active{cursor:grabbing}.app-block.grid .app-block-head,.app-block.grid .app-block-head:active{cursor:default}.bh-grip{display:inline-flex;align-items:center;gap:3px;color:var(--on-primary, #14230a);background:var(--primary);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:var(--radius-sm);cursor:grab}.bh-grip:active{cursor:grabbing}.bh-type{font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--primary-dark);text-transform:uppercase}.bh-actions{margin-left:auto;display:flex;gap:2px}.bh-btn{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:var(--radius-sm);font-size:12px;line-height:1;padding:3px 7px;cursor:pointer}.bh-btn:hover{border-color:var(--primary)}.bh-btn.danger:hover{border-color:#c0392b;color:#c0392b}.app-block.selected{border-color:var(--primary);box-shadow:0 0 0 2px #8cc63f40}.app-flow-slot{position:relative}.app-flow-slot>.app-block{width:100%}.app-add-divider{display:flex;justify-content:center;align-items:center;min-height:14px;margin:2px 0;opacity:0;transition:opacity .12s}.app-flow-slot:hover>.app-add-divider,.app-add-divider.end,.app-add-divider:focus-within{opacity:1}.app-add-plus{border:1px dashed var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius-lg);font-size:12px;font-weight:700;padding:2px 12px;cursor:pointer}.app-add-plus:hover{border-color:var(--primary);color:var(--primary-dark);border-style:solid}.app-add-menu{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px}.app-add-menu.app-saved-pick{flex-direction:column;align-items:stretch;gap:8px;padding:10px}.app-saved-head{display:flex;align-items:center;gap:8px}.app-saved-head strong{font-size:13px;white-space:nowrap}.app-saved-head input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 9px;font-size:13px;background:var(--panel);color:var(--text)}.app-saved-list{display:flex;flex-wrap:wrap;gap:6px;max-height:220px;overflow-y:auto}.app-saved-list .export-btn{max-width:100%}:root[data-theme=dark] .app-saved-head input{background:#23262c;color:var(--text);border-color:#33383f}.app-props{width:300px;flex:none;position:sticky;top:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;max-height:calc(100vh - 40px);overflow:auto}.app-props-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:13px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.pf{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-bottom:12px}.pf select,.pf input,.pf textarea{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px;font-size:13px;color:var(--text);font-family:inherit}.pf textarea{min-height:120px;resize:vertical}.pf-check{flex-direction:row;align-items:center;gap:8px;cursor:pointer}.pf-check input[type=checkbox]{width:15px;height:15px;flex:none;padding:0;margin:0;border:none;background:none;accent-color:var(--primary)}.pf-check:has(+.pf-hint),.pf-check:has(+.subtle){margin-bottom:4px}.pf-check+.pf-hint{margin-bottom:12px}.app-props-actions{display:flex;gap:8px;margin-top:6px;padding-top:12px;border-top:1px solid var(--border)}.width-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.width-seg .seg{border:none;background:var(--panel);color:var(--muted);font-size:12px;font-weight:700;padding:6px 10px;cursor:pointer;flex:1}.width-seg .seg+.seg{border-left:1px solid var(--border)}.width-seg .seg.active{background:var(--primary);color:var(--on-primary)}@media (max-width: 980px){.app-editor{flex-direction:column}.app-props{width:100%;position:static;max-height:none}}.app-block[draggable=true]{cursor:grab}.app-block.dragging{opacity:.5;outline:2px dashed var(--primary)}.app-block-type{cursor:grab}.tpl-badge.app{background:#ede4fb;color:#5a3ea8}.tpl-badge.dashboard{background:#eaf5d8;color:#3e6b12}.comments-panel{margin:8px 0 12px}.comments-toggle{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text)}.comments-toggle:hover{border-color:var(--primary)}.comments-box{margin-top:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);padding:12px;max-width:620px}.comments-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.comments-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.comment{border-bottom:1px solid var(--border);padding-bottom:6px}.comment-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.comment-author{font-weight:700;color:var(--text)}.comment-body{font-size:13.5px;white-space:pre-wrap;margin-top:2px}.comments-input{display:flex;gap:8px;margin-top:10px}.comments-input textarea{flex:1;min-height:46px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;font-family:inherit;font-size:13px;resize:vertical}.comment-body .mention{color:var(--primary-dark);font-weight:700;background:#eaf5d8;border-radius:var(--radius-xs);padding:0 3px}.notif-bell{position:relative;display:inline-block}.notif-badge{background:var(--danger);color:#fff;border-radius:999px;font-size:10px;font-weight:800;padding:0 5px;margin-left:2px;vertical-align:super}.notif-panel{position:absolute;right:0;top:120%;z-index:200;width:320px;max-width:92vw;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:12px}.notif-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.notif-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.notif-item{padding:8px;border-radius:var(--radius);border:1px solid var(--border)}.notif-item.unread{background:#eaf5d8;border-color:#cfe3a8}.notif-msg{font-size:13px}.notif-date{font-size:11px;color:var(--muted);margin-top:2px}.comment.resolved{opacity:.65}.comment.reply{margin-left:18px;border-left:2px solid var(--border);padding-left:10px}.resolved-tag{font-size:10px;font-weight:700;color:#1c7a3f;background:#e6f4ea;border-radius:999px;padding:1px 8px}.comment-meta .link-btn{font-size:11px}.reply-input{margin-top:6px}.snap-compare-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dm-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dm-model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:16px}.dm-model-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;cursor:pointer;transition:border-color .12s,box-shadow .12s}.dm-model-card:hover{border-color:var(--primary);box-shadow:var(--shadow-soft)}.dm-model-name{font-weight:650;font-size:15px}.dm-model-meta{font-size:12px;color:var(--muted);margin-top:8px}.dm-model-del{position:absolute;top:8px;right:8px;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px}.dm-model-del:hover{color:#c0392b}.dm-editor{display:flex;flex-direction:column;height:100%;min-height:0}.dm-topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.dm-name{font-size:15px;font-weight:650;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;background:var(--bg);color:var(--text);min-width:200px}.dm-live{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.dm-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.dm-body{display:flex;flex:1;min-height:0}.dm-rail{width:250px;flex-shrink:0;border-right:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:8px;overflow:hidden;background:var(--panel)}.dm-rail-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.dm-rail select,.dm-table-filter{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px;font-size:13px;background:var(--bg);color:var(--text)}.dm-table-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:3px;margin-top:2px}.dm-table-item{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 9px;font-size:12.5px;cursor:pointer;color:var(--text)}.dm-table-item:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.dm-table-add{color:var(--primary);font-weight:700}.dm-canvas{position:relative;flex:1;overflow:auto;background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--muted) 20%,transparent) 1px,transparent 0) 0 0 / 22px 22px,var(--bg);min-height:400px}.dm-canvas-hint{position:absolute;top:40%;left:0;right:0;text-align:center;color:var(--muted);font-size:14px;padding:0 40px}.dm-edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.dm-edge{pointer-events:stroke;cursor:pointer}.dm-edge path{pointer-events:stroke}.dm-edge:hover path{stroke-width:3.5}.dm-node{position:absolute;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);overflow:hidden;z-index:1}.dm-node.base{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary),var(--shadow-soft)}.dm-node-head{display:flex;align-items:center;gap:6px;padding:7px 10px;background:color-mix(in srgb,var(--primary) 10%,var(--panel));border-bottom:1px solid var(--border);cursor:move;font-size:13px;font-weight:650;-webkit-user-select:none;user-select:none}.dm-node-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-base-badge{font-size:9.5px;font-weight:700;text-transform:uppercase;color:var(--primary-dark);background:color-mix(in srgb,var(--primary) 22%,transparent);padding:1px 5px;border-radius:999px}.dm-node-actions{display:inline-flex;gap:2px}.dm-node-actions button{border:none;background:transparent;cursor:pointer;color:var(--muted);font-size:12px;padding:0 3px}.dm-node-actions button:hover{color:var(--text)}.dm-node-cols{max-height:190px;overflow-y:auto}.dm-col{display:flex;justify-content:space-between;gap:8px;padding:4px 10px;font-size:12px;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.dm-col.key{background:color-mix(in srgb,var(--primary) 9%,transparent);font-weight:600}.dm-col-ty{font-family:var(--font-mono, monospace);font-size:10px;color:var(--muted)}.dm-col.more{color:var(--muted);font-style:italic}.dm-edge-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:6px;flex-wrap:wrap}.dm-edge-row .pf{flex:1;min-width:120px}.dm-edge-join{font-size:18px;color:var(--primary);padding-bottom:8px}.dm-check{flex-direction:row!important;align-items:center;gap:6px}.dm-sql{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px;font-family:var(--font-mono, monospace);font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow:auto}.modal.dataset-editor{width:720px;max-width:94vw;max-height:88vh;display:flex;flex-direction:column;padding:20px 22px}.de-head{display:flex;align-items:center;gap:12px}.de-head .dialog-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.de-close{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius);width:30px;height:30px;cursor:pointer;font-size:14px}.de-close:hover{color:var(--text);border-color:var(--muted)}.de-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:12px 0 0}.de-tabs button{border:none;background:none;color:var(--muted);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}.de-tabs button.active{color:var(--text);border-bottom-color:var(--primary)}.de-tabs button:hover{color:var(--text)}.de-msg{margin:12px 0 0}.de-ok{font-size:13px;color:var(--text);background:color-mix(in srgb,var(--primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--primary) 40%,transparent);border-radius:var(--radius);padding:8px 12px}.de-body{overflow-y:auto;padding:16px 2px 2px;flex:1}.de-form{display:flex;flex-direction:column;gap:12px}.de-check{flex-direction:row;align-items:center;gap:8px}.de-check input{width:auto}.dialog-actions.de-left{justify-content:flex-start}.dialog-actions.de-split{justify-content:space-between}.de-fields-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}.de-fields-bar .subtle{font-size:12px}.de-row-alterada td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.de-field-table{width:100%;border-collapse:collapse;font-size:13px}.de-field-table th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;border-bottom:1px solid var(--border)}.de-field-table td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.de-fname{font-family:var(--font-mono, monospace);font-size:12px;color:var(--text)}.de-calc-tag{margin-left:6px;font-size:10px;color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);border-radius:var(--radius-xs);padding:0 4px;font-family:var(--font-mono, monospace)}.de-inp,.de-cell{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 7px;font-size:13px;color:var(--text);background:var(--panel)}.de-inp:focus,.de-cell:focus{outline:none;border-color:var(--primary)}.de-field-table select{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 7px;font-size:13px;color:var(--text);background:var(--panel)}.de-field-actions{white-space:nowrap;text-align:right}.de-mini{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius-sm);width:28px;height:28px;cursor:pointer;font-size:13px;margin-left:4px}.de-mini:hover{color:var(--text);border-color:var(--muted)}.de-mini.de-danger:hover{color:#d64545;border-color:#d64545}.de-expr-block{margin-top:16px}.de-expr-block h4{margin:0 0 8px;font-size:13px;color:var(--muted)}.de-expr-row{display:flex;gap:6px;align-items:flex-start}.de-expr-row .dialog-input{margin-bottom:0}.dialog-input.mono{font-family:var(--font-mono, monospace);font-size:12px}.de-subcard{margin-top:14px;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;background:var(--bg)}.dialog-title.sm{font-size:14px}.de-data{display:flex;flex-direction:column;gap:12px}.de-grid-wrap{overflow:auto;max-height:46vh;border:1px solid var(--border);border-radius:var(--radius)}.de-grid{width:100%;border-collapse:collapse;font-size:13px}.de-grid th{position:sticky;top:0;background:var(--panel);z-index:1;text-align:left;color:var(--muted);font-weight:600;font-size:12px;padding:7px 8px;border-bottom:1px solid var(--border)}.de-grid td{padding:3px 6px;border-bottom:1px solid var(--border)}.de-grid .de-rownum{color:var(--muted);font-size:11px;text-align:center;width:34px}.de-coltype{margin-left:6px;font-size:10px;color:var(--muted);font-weight:400}.de-sql-editor{width:100%;box-sizing:border-box;resize:vertical;line-height:1.5;-moz-tab-size:2;tab-size:2}.de-form code{font-family:var(--font-mono, monospace);font-size:12px;background:var(--bg);padding:1px 4px;border-radius:var(--radius-xs)}.portal{padding:4px 2px}.portal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.portal-head h2{margin:0}.portal-head .subtle{margin:2px 0 0}.portal-modes{display:flex;gap:4px}.portal-modes button{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:var(--radius);width:34px;height:34px;cursor:pointer;font-size:15px}.portal-modes button.active{color:var(--on-primary);background:var(--primary);border-color:var(--primary)}.portal-toolbar{display:flex;gap:12px;align-items:center;margin:16px 0;flex-wrap:wrap}.portal-search{flex:1;min-width:220px;border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;font-size:14px;color:var(--text);background:var(--panel)}.portal-filters{display:flex;gap:6px;flex-wrap:wrap}.portal-filters button{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.portal-filters button.active{color:var(--text);border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.portal-count{color:var(--muted);font-size:11px;margin-left:3px}.portal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.portal-card{position:relative;display:flex;gap:12px;align-items:flex-start;cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-soft);transition:border-color .15s,transform .1s}.portal-card:hover{border-color:var(--primary);transform:translateY(-1px)}.portal-card-icon{width:44px;height:44px;border-radius:var(--radius-md);display:grid;place-items:center;font-size:22px;flex-shrink:0}.portal-card-body{min-width:0;flex:1}.portal-card-name{font-weight:600;font-family:var(--font-display, inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-card-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-top:3px;flex-wrap:wrap}.portal-tag{font-size:11px;border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 6px;color:var(--muted)}.portal-roles{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.portal-role{font-size:10px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--text);border-radius:var(--radius-xs);padding:1px 6px}.portal-manage{position:absolute;top:10px;right:10px;border:none;background:transparent;cursor:pointer;font-size:14px;opacity:.6}.portal-manage:hover{opacity:1}.portal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.portal-list li{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--panel)}.portal-list li:hover{border-color:var(--primary)}.portal-li-icon{font-size:17px}.portal-li-name{flex:1;font-weight:500}.portal-table{width:100%;border-collapse:collapse;font-size:13px}.portal-table th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:8px;border-bottom:1px solid var(--border)}.portal-table td{padding:9px 8px;border-bottom:1px solid var(--border)}.portal-table tbody tr{cursor:pointer}.portal-table tbody tr:hover{background:color-mix(in srgb,var(--primary) 6%,transparent)}.portal-td-name{font-weight:500}.rm-roles{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px;max-height:min(46vh,340px);overflow-y:auto;padding:2px}.rf-busca{margin-bottom:6px}.rf-resumo{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:4px}.rm-role{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;font-size:13px;cursor:pointer;background:var(--panel)}.rm-role.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.rm-role input{width:auto}.report-viewer{padding:4px 2px}.report-viewer-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.report-viewer-head h2{margin:0;flex:1;min-width:0}.report-viewer-actions{display:flex;gap:8px}.report-viewer-body{display:flex;flex-wrap:wrap;gap:20px}.rv-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-sizing:border-box}.rv-section-title{font-weight:600;font-family:var(--font-display, inherit);margin-bottom:8px}.rm-add{display:flex;gap:8px;align-items:center;margin-bottom:8px}.rm-add .dialog-input{margin-bottom:0}.rbac-view{padding:4px 2px}.rbac-head h2{margin:0}.rbac-head .subtle{margin:2px 0 0}.rbac-body{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:18px;margin-top:16px;align-items:start}.rbac-roles{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);padding:12px}.rbac-roles-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.rbac-roles ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:3px}.rbac-roles li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;font-weight:500}.rbac-roles li>span:first-child{min-width:0;overflow-wrap:anywhere}.rbac-role-count{flex:0 0 auto}.rbac-roles li:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}.rbac-roles li.active{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--text)}.rbac-role-count{font-size:11px;color:var(--muted);background:var(--bg);border-radius:999px;padding:0 7px}.rbac-add{display:flex;gap:6px}.rbac-add input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px;font-size:13px;background:var(--panel);color:var(--text)}.rbac-funcs{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);padding:18px;min-height:240px}.rbac-funcs-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.rbac-funcs-head h3{margin:0;font-weight:600}.rbac-funcs-actions{display:flex;gap:8px}.rbac-group{margin-bottom:14px}.rbac-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.rbac-group-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.rbac-func{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;font-size:13px;cursor:pointer;background:var(--bg)}.rbac-func.on{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.rbac-func input{width:auto}.datasets-view{padding:4px 2px}.dataset-editor.inline{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;max-width:900px}.ds-card{display:flex;flex-direction:column;gap:6px}.ds-card-roles{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:12px;color:var(--muted);margin-top:2px}.ds-card-actions{display:flex;gap:8px;margin-top:8px}.cert-badge.sm{color:var(--primary);font-size:12px}.modal.formula-modal{width:900px}.formula-editor{display:grid;grid-template-columns:260px minmax(0,1fr);gap:12px;align-items:start}.fe-main{min-width:0}.fe-input-wrap{position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel, #fff);overflow:hidden}.fe-input-wrap:focus-within{border-color:var(--primary)}.fe-highlight,.fe-input{margin:0;padding:10px 12px;font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.55;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;border:0}.fe-highlight{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;pointer-events:none;color:var(--text)}.fe-input{position:relative;display:block;width:100%;box-sizing:border-box;resize:vertical;background:transparent;color:transparent;caret-color:var(--text);outline:none}.fe-input::placeholder{color:var(--muted);opacity:.75}.tok-comment{color:var(--muted);font-style:italic}.tok-string,.tok-number{color:#b0603a}.tok-keyword{color:#7a3fa8;font-weight:600}.tok-function{color:#1f6feb}.tok-field{color:#1a7f4b;font-weight:600}.tok-operator{color:var(--text)}.tok-paren{color:var(--muted)}@media (prefers-color-scheme: dark){.tok-string,.tok-number{color:#e0a075}.tok-keyword{color:#c792ea}.tok-function{color:#82aaff}.tok-field{color:#6cd39a}}:root[data-theme=dark] .tok-string,:root[data-theme=dark] .tok-number{color:#e0a075}:root[data-theme=dark] .tok-keyword{color:#c792ea}:root[data-theme=dark] .tok-function{color:#82aaff}:root[data-theme=dark] .tok-field{color:#6cd39a}.fe-suggestions{position:absolute;left:8px;right:8px;bottom:6px;max-height:190px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--panel, #fff);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-menu);z-index:5}.fe-suggestions li{display:flex;align-items:baseline;gap:8px;padding:5px 8px;border-radius:var(--radius-sm);font-size:12.5px;cursor:pointer}.fe-suggestions li.active{background:color-mix(in srgb,var(--primary) 14%,transparent)}.fe-kind{font-size:10px;border-radius:var(--radius-xs);padding:1px 5px;font-family:ui-monospace,monospace}.fe-kind-field{background:color-mix(in srgb,#1a7f4b 16%,transparent);color:#1a7f4b}.fe-kind-function{background:color-mix(in srgb,#1f6feb 16%,transparent);color:#1f6feb}.fe-sug-label{font-family:ui-monospace,monospace;color:var(--text);font-weight:600}.fe-sug-detail{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-signature{margin-top:6px;font-size:12px;color:var(--muted);padding:5px 8px;background:var(--bg);border-radius:var(--radius-sm)}.fe-signature code{color:var(--text);font-weight:600}.fe-status{margin-top:6px;font-size:12.5px;color:var(--muted);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-height:20px}.fe-status.fe-ok strong{color:#1a7f4b;font-family:ui-monospace,monospace;font-size:11.5px}.fe-status.fe-erro{color:var(--danger, #c0392b)}.fe-status.fe-warn{color:#b0603a}.fe-sample{font-family:ui-monospace,monospace;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-palette{border:1px solid var(--border);border-radius:var(--radius);padding:8px;max-height:340px;overflow-y:auto;background:var(--bg)}.fe-search{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:12.5px;color:var(--text);margin-bottom:8px}.fe-group{margin-bottom:10px}.fe-group-title{display:flex;align-items:center;gap:5px;width:100%;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:4px;background:none;border:0;padding:2px 0;text-align:left}.fe-toggle{cursor:pointer}.fe-count{margin-left:auto;font-weight:500;opacity:.8}.fe-item{display:flex;align-items:baseline;gap:6px;width:100%;border:0;background:transparent;border-radius:var(--radius-xs);padding:3px 6px;font-size:12.5px;cursor:pointer;text-align:left}.fe-item:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}.fe-item-name{font-family:ui-monospace,monospace;color:var(--text);flex-shrink:0}.fe-item-hint{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-empty{font-size:11.5px;color:var(--muted);padding:2px 6px}.fe-engine-search{font-size:12px;padding:4px 6px}@media (max-width: 860px){.formula-editor{grid-template-columns:1fr}.fe-palette{max-height:200px}}.flows-view{padding:4px 2px}.view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.view-head h2{margin:0 0 4px;font-size:20px}.view-head p{margin:0;max-width:620px}.flow-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.flow-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;cursor:pointer;background:var(--panel);display:flex;flex-direction:column;gap:6px}.flow-card:hover{border-color:var(--primary)}.flow-card-head{display:flex;align-items:center;gap:8px}.flow-card-head strong{flex:1}.flow-card-meta{font-size:12px}.flow-card-out{font-size:12px;color:var(--primary);display:flex;align-items:center;gap:5px}.flow-card-error{font-size:12px;color:var(--danger, #c0392b)}.flow-empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);padding:40px 24px;text-align:center;color:var(--muted)}.flow-empty-state p{margin:8px auto 0;max-width:460px}.flow-editor{display:flex;flex-direction:column;height:100%;min-height:0}.flow-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border);flex-wrap:wrap}.flow-name{font-size:17px;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 8px;color:var(--text);background:transparent;min-width:200px}.flow-name:hover,.flow-name:focus{border-color:var(--border);background:var(--panel);outline:none}.flow-output{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.flow-output input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;color:var(--text);width:190px}.flow-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.flow-body{display:grid;grid-template-columns:320px minmax(0,1fr);gap:14px;flex:1;min-height:0;padding-top:12px}.flow-steps{overflow-y:auto;padding-right:4px}.flow-section{margin-bottom:16px}.flow-section-title{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;margin-bottom:6px}.flow-source{display:flex;align-items:center;gap:7px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:5px;font-size:13px}.flow-source-alias{font-weight:600;cursor:pointer}.flow-source-alias:hover{color:var(--primary);text-decoration:underline}.flow-source-ds{flex:1;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-add-source{width:100%;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:12.5px;color:var(--muted);background:transparent}.flow-var{margin-bottom:5px}.flow-var-row{display:flex;align-items:center;gap:5px}.flow-var-row input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;font-size:12.5px;min-width:0}.flow-var-name{flex:0 0 38%;font-weight:600;font-family:var(--font-mono, monospace)}.flow-var-value{flex:1}.flow-var-resolvido{display:block;font-size:11px;margin:2px 0 0 3px;font-family:var(--font-mono, monospace)}.flow-add-var,.flow-var-toggle{width:100%;border:1px dashed var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:12.5px;color:var(--muted);background:transparent;text-align:left}.flow-var-toggle{border-style:none;padding-left:3px}.flow-var-toggle:hover:not(:disabled){color:var(--primary)}.flow-var-builtins{margin-top:4px;border-left:2px solid var(--border);padding-left:8px}.flow-var-builtin{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;padding:2px 0}.flow-var-builtin code{font-size:11.5px}.flow-var-builtin span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-step{display:flex;align-items:flex-start;gap:8px;width:100%;text-align:left;padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;margin-bottom:3px;position:relative}.flow-step:hover{background:var(--bg)}.flow-step.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent)}.flow-step.off{opacity:.5}.flow-step.erro{border-color:var(--danger, #c0392b)}.flow-step-icon{color:var(--muted);margin-top:2px;flex-shrink:0}.flow-step.active .flow-step-icon{color:var(--primary)}.flow-step-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.flow-step-text strong{font-size:13px;font-weight:600}.flow-step-text .subtle{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-step-actions{display:none;gap:2px;flex-shrink:0}.flow-step:hover .flow-step-actions,.flow-step.active .flow-step-actions{display:flex}.flow-step-actions button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:1px 3px;border-radius:var(--radius-xs)}.flow-step-actions button:hover:not(:disabled){background:var(--panel);color:var(--text)}.flow-step-actions button:disabled{opacity:.3;cursor:default}.flow-add-wrap{position:relative;margin-top:4px}.flow-add-menu{position:absolute;z-index:20;top:100%;left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-menu);padding:5px;max-height:340px;overflow-y:auto}.flow-add-menu button{display:flex;gap:8px;align-items:flex-start;width:100%;text-align:left;border:0;background:transparent;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text)}.flow-add-menu button:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 10%,transparent)}.flow-add-menu button:disabled{opacity:.45;cursor:not-allowed}.flow-add-menu button span{display:flex;flex-direction:column;gap:1px}.flow-add-menu strong{font-size:13px}.flow-add-menu .subtle{font-size:11px}.flow-add-group-title{position:sticky;top:-5px;background:var(--panel);padding:6px 8px 3px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.flow-add-group+.flow-add-group .flow-add-group-title{border-top:1px solid var(--border);margin-top:3px}.flow-main{display:flex;flex-direction:column;gap:12px;min-height:0}.flow-config{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;background:var(--panel);max-height:46%;overflow-y:auto}.flow-config-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.flow-config-head .subtle{font-size:12px}.step-form{display:flex;flex-direction:column;gap:10px}.step-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.step-row select,.step-row input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 7px;font-size:13px;color:var(--text);min-width:110px}.step-row .pf{margin-bottom:0}.step-formula{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px;color:var(--text);resize:vertical}.flow-preview{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.flow-preview-head{display:flex;align-items:baseline;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg);font-size:13px}.flow-table{flex:1;overflow:auto}.flow-col-type{display:block;font-size:10px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}.flow-error{margin:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.flow-empty{padding:30px;text-align:center;color:var(--muted)}@media (max-width: 1100px){.flow-body{grid-template-columns:1fr}.flow-steps{max-height:320px}}.script-step{gap:8px}.script-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.script-hint{flex:1;min-width:180px;font-size:11.5px}.script-vars{font-size:11.5px;margin:0 0 6px;line-height:1.6}.script-vars code{font-size:11.5px}.monaco-host{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.script-cols{font-size:11.5px}.script-cols code{font-family:ui-monospace,Consolas,monospace;background:var(--bg);padding:1px 5px;border-radius:var(--radius-xs)}.script-result{display:flex;flex-direction:column;gap:6px}.script-table{max-height:220px;overflow:auto}.script-new{margin-left:5px;font-size:9px;text-transform:uppercase;color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);border-radius:var(--radius-xs);padding:0 3px}.script-example{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.script-example-toggle{display:block;width:100%;text-align:left;padding:7px 10px;font-size:12.5px;background:var(--bg)}.script-example-body{padding:10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.script-example-nav{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11.5px}.script-example-nav button{border:1px solid var(--border);background:transparent;border-radius:var(--radius-xs);min-width:24px;padding:2px 6px;font-size:11.5px;color:var(--muted);cursor:pointer}.script-example-nav button.on{border-color:var(--primary);color:var(--primary);font-weight:700}.script-example-json{margin:0;padding:10px 12px;background:var(--bg);border-radius:var(--radius-sm);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.5;overflow-x:auto;white-space:pre}.script-example-tips{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.script-example-tips code{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;background:var(--bg);padding:1px 5px;border-radius:var(--radius-xs);color:var(--text)}.script-example-tips strong{color:var(--text)}.llm-view{padding:4px 2px}.llm-aviso{display:flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb,#b0603a 45%,transparent);background:color-mix(in srgb,#b0603a 8%,transparent);color:#b0603a;border-radius:var(--radius);padding:9px 12px;font-size:13px;margin-bottom:14px}.llm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.llm-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;background:var(--panel);display:flex;flex-direction:column;gap:10px}.llm-card.padrao{border-color:var(--primary)}.llm-card.off{opacity:.65}.llm-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.llm-card-head strong{font-size:15px}.llm-badge{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);border-radius:var(--radius-xl);padding:1px 8px}.llm-badge.off{color:var(--muted);border-color:var(--border)}.llm-props{margin:0;display:flex;flex-direction:column;gap:4px}.llm-props>div{display:flex;gap:8px;align-items:baseline;font-size:12.5px}.llm-props dt{color:var(--muted);min-width:66px;flex-shrink:0}.llm-props dd{margin:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.llm-props code{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;background:var(--bg);padding:1px 5px;border-radius:var(--radius-xs)}.llm-teste{font-size:12px;border-radius:var(--radius-sm);padding:6px 9px;background:var(--bg);word-break:break-word}.llm-teste.ok{color:#1a7f4b}.llm-teste.erro{color:var(--danger, #c0392b)}.llm-card-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.llm-form-checks{display:flex;gap:18px}.llm-form-checks .pf{margin-bottom:8px}.llm-step-aviso{display:flex;gap:8px;align-items:flex-start;border:1px solid color-mix(in srgb,#b0603a 40%,transparent);background:color-mix(in srgb,#b0603a 7%,transparent);border-radius:var(--radius);padding:9px 11px;font-size:12px;color:var(--text);line-height:1.45}.llm-step-aviso svg{color:#b0603a;flex-shrink:0;margin-top:1px}.llm-prompt{min-height:76px}.llm-exemplos{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.llm-step-acoes{display:flex;gap:8px}.llm-avancado{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.llm-avancado summary{cursor:pointer;font-size:12.5px;color:var(--muted)}.llm-avancado textarea{width:100%;box-sizing:border-box;margin-top:8px}.llm-preview-prompt{display:flex;flex-direction:column;gap:4px}.llm-preview-prompt pre{margin:0;padding:9px 11px;background:color-mix(in srgb,var(--primary) 7%,transparent);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);border-radius:var(--radius-sm);font-family:ui-monospace,Consolas,monospace;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--text)}.data-table th.col-pendente{color:var(--muted)}.col-pendente-tag{display:block;font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:#b0603a}.flow-pendente-aviso{font-size:12px;color:#b0603a;margin-left:auto;text-align:right}.link-btn,a{color:var(--primary-dark)}
