.bi-root{display:flex;flex-direction:column;min-height:0}.bi-explore{display:grid;grid-template-columns:252px minmax(0,1fr) 292px;gap:14px;min-height:0;flex:1 1 auto;align-items:start}@media (max-width:1360px){.bi-explore{grid-template-columns:228px minmax(0,1fr) 264px}}@media (max-width:1100px){.bi-explore{grid-template-columns:1fr}}.bi-panel{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--over);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 196px);position:sticky;top:0;overflow:hidden}.bi-panel__hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:13px var(--s4) 11px;font-size:var(--t-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:500}.bi-panel__scroll{overflow-y:auto;padding:0 10px 12px;min-height:0}.bi-panel__grp{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:var(--s4) 6px 7px;font-size:var(--t-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-weight:500}.bi-panel__grp:first-child{padding-top:6px}.bi-panel__grp span{font-family:var(--mono);font-size:10px;letter-spacing:0;color:var(--text-3);background:var(--fill);border-radius:var(--r-xs);padding:1px 5px;text-transform:none}.bi-panel__none{padding:var(--s4) 6px;font-size:var(--t-xs);color:var(--text-3)}.bi-select{width:100%;font:inherit;font-size:var(--t-xs);color:var(--text);background:var(--over);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 9px;cursor:pointer;transition:border-color var(--d2,.16s)}.bi-select:hover{border-color:var(--frame)}.bi-select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.bi-select--table{margin:0 10px 8px;width:calc(100% - 20px);font-weight:500}.bi-search{display:flex;align-items:center;gap:7px;margin:0 10px 6px;border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 9px;color:var(--text-3);background:var(--fill);transition:border-color var(--d2,.16s),background var(--d2,.16s)}.bi-search:focus-within{border-color:var(--accent);background:var(--over)}.bi-search input{flex:1 1 auto;min-width:0;border:0;background:none;font:inherit;font-size:var(--t-xs);color:var(--text);outline:none}.bi-search input::placeholder{color:var(--text-3)}.bi-search button{border:0;background:none;color:var(--text-3);cursor:pointer;padding:0;display:flex}.bi-search button:hover{color:var(--text)}.bi-field{display:flex;align-items:center;gap:var(--s2);padding:6px 7px;border-radius:var(--r-sm);cursor:grab;user-select:none;transition:background var(--d1,.12s)}.bi-field:hover{background:var(--fill)}.bi-field:active{cursor:grabbing;background:var(--fill-2)}.bi-field__ico{display:flex;flex:none;width:20px;height:20px;align-items:center;justify-content:center;border-radius:var(--r-xs);color:var(--text-3);background:var(--fill-2)}.bi-field__ico--number{color:#2f9e6b;background:rgba(47,158,107,.12)}.bi-field__ico--date{color:#3b7dd8;background:rgba(59,125,216,.12)}.bi-field__ico--boolean{color:#7a5bd8;background:rgba(122,91,216,.12)}.bi-field__nm{flex:1 1 auto;font-size:var(--t-xs);color:var(--text);display:flex;align-items:baseline;gap:3px}.bi-field__nm,.bi-field__pre{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-field__pre{flex:0 1 auto;color:var(--text-3);font-size:var(--t-2xs)}.bi-field__leaf:before{content:"› ";color:var(--text-3)}.bi-field__leaf{flex:0 0 auto;white-space:nowrap}.bi-field__nm>.bi-field__leaf:first-child:before{content:none}.bi-field__tag{flex:none;font-family:var(--mono);font-size:9px;color:var(--text-3);background:var(--fill-2);border-radius:var(--r-xs);padding:1px 4px}.bi-field__add{flex:none;border:0;background:none;color:var(--text-3);cursor:pointer;padding:3px;border-radius:var(--r-xs);opacity:0;display:flex;transition:opacity var(--d1,.12s),color var(--d1,.12s)}.bi-field:hover .bi-field__add,.bi-field__add:focus-visible{opacity:1}.bi-field__add:hover{color:var(--accent);background:var(--fill-2)}.bi-stage{border:1px solid color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:var(--r-xl);background:var(--over);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;min-width:0;min-height:540px;overflow:hidden}.bi-stage__bar{display:flex;align-items:center;gap:var(--s3);padding:11px var(--s4);border-bottom:1px solid var(--hairline)}.bi-title{flex:0 1 380px;min-width:0;border:1px solid transparent;background:none;font:inherit;font-size:var(--t-lg);font-weight:500;letter-spacing:-.01em;color:var(--text);padding:4px 8px;margin-left:-8px;border-radius:var(--r-sm);transition:border-color var(--d2,.16s),background var(--d2,.16s)}.bi-title::placeholder{color:var(--text-2)}.bi-title:hover{background:var(--fill)}.bi-title:focus{border-color:var(--accent);background:var(--over);outline:none}.bi-meta{display:flex;align-items:center;gap:var(--s2);font-family:var(--mono);font-size:var(--t-2xs);color:var(--text-3);white-space:nowrap}.bi-meta button{border:1px solid var(--border);background:var(--over);color:var(--text-3);font:inherit;font-size:10px;letter-spacing:.04em;padding:2px 7px;border-radius:var(--r-sm);cursor:pointer;transition:color var(--d1),border-color var(--d1)}.bi-meta button:hover{color:var(--accent);border-color:var(--accent)}.bi-sql{margin:0;padding:11px var(--s4);font-family:var(--mono);font-size:var(--t-2xs);line-height:1.6;color:var(--text-2);background:var(--fill);border-bottom:1px solid var(--hairline);white-space:pre-wrap;word-break:break-word}.bi-canvas{flex:1 1 auto;min-height:470px;padding:var(--s4);display:flex}.bi-canvas__hint{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);text-align:center;color:var(--text-3);padding:var(--s6) var(--s5)}.bi-canvas__hint b{color:var(--text);font-size:var(--t-body);font-weight:500}.bi-canvas__hint .faint{font-size:var(--t-sm);max-width:44ch;line-height:1.6}.bi-canvas__hint--err b{color:var(--accent)}.bi-chart{flex:1 1 auto;width:100%;min-height:0;min-width:0}.bi-canvas>.bi-chart{min-height:430px}.bi-chart__empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:var(--t-sm);min-height:200px}.bi-chart--host{position:relative}.bi-chart__canvas,.bi-chart__empty--over{position:absolute;inset:0}.bi-chart__empty--over{background:var(--over)}.bi-wells{display:flex;flex-direction:column;gap:var(--s2)}.bi-well{border:1px dashed var(--frame);border-radius:var(--r-lg);padding:9px 10px;background:var(--fill);transition:border-color var(--d2,.16s),background var(--d2,.16s),box-shadow var(--d2,.16s)}.bi-well--over{border-color:var(--accent);border-style:solid;background:var(--over);box-shadow:0 0 0 3px var(--accent-weak,rgba(192,86,43,.12))}.bi-well--full{border-style:solid;border-color:var(--border)}.bi-well__hd{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:var(--t-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-weight:500;margin-bottom:7px}.bi-well__kind{font-family:var(--mono);font-size:9px;opacity:.75;text-transform:none;letter-spacing:0}.bi-well__ph{font-size:var(--t-2xs);color:var(--text-3);padding:3px 1px;line-height:1.5}.bi-chip{position:relative;display:flex;align-items:center;margin-bottom:5px;background:var(--over);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);transition:border-color var(--d1,.12s)}.bi-chip:last-child{margin-bottom:0}.bi-chip:hover{border-color:var(--frame)}.bi-chip--open{border-color:var(--accent)}.bi-chip__main{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:5px;border:0;background:none;font:inherit;font-size:var(--t-2xs);color:var(--text);padding:6px 7px;cursor:pointer;text-align:left}.bi-chip__main:disabled{cursor:default}.bi-chip__t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-chip__x{flex:none;border:0;background:none;color:var(--text-3);cursor:pointer;padding:6px 7px;display:flex;border-radius:var(--r-sm)}.bi-chip__x:hover{color:var(--accent);background:var(--fill)}.bi-chip__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--over);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);padding:4px;display:flex;flex-direction:column;max-height:240px;overflow-y:auto}.bi-chip__menu button{border:0;background:none;font:inherit;font-size:var(--t-2xs);color:var(--text-2);text-align:left;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer}.bi-chip__menu button:hover{background:var(--fill);color:var(--text)}.bi-chip__menu button.on{color:var(--accent);font-weight:500;background:var(--fill)}.bi-types{display:flex;flex-direction:column;gap:var(--s3)}.bi-types__lbl{font-size:var(--t-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-weight:500;margin-bottom:6px}.bi-types__row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.bi-type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--over);color:var(--text-2);cursor:pointer;padding:8px 4px 7px;transition:border-color var(--d1,.12s),color var(--d1,.12s),background var(--d1,.12s)}.bi-type__nm{max-width:100%;font-size:10px;line-height:1.15;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-type:hover{border-color:var(--frame);color:var(--text);background:var(--fill)}.bi-type--on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--over));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.bi-type--sug:not(.bi-type--on){border-color:color-mix(in srgb,var(--accent) 42%,var(--border))}.bi-type--off{opacity:.3;cursor:not-allowed}.bi-type--off:hover{border-color:var(--border);color:var(--text-2);background:var(--over)}.bi-types__hint{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding-top:var(--s1);font-size:var(--t-xs);color:var(--text-2);font-weight:500}.bi-types__sug{border:0;background:none;padding:0;font:inherit;font-size:var(--t-2xs);color:var(--accent);cursor:pointer;white-space:nowrap}.bi-types__sug:hover{text-decoration:underline}.bi-opts{gap:var(--s3)}.bi-opts,.bi-opts label{display:flex;flex-direction:column}.bi-opts label{gap:5px;font-size:var(--t-2xs);letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-weight:500}.bi-opts__chk{flex-direction:row!important;align-items:center;gap:7px;color:var(--text-2);text-transform:none!important;letter-spacing:0!important;font-weight:400!important;font-size:var(--t-xs)!important;cursor:pointer}.bi-opts__chk input{accent-color:var(--accent)}.bi-saved{display:flex;align-items:center;border-radius:var(--r-sm);transition:background var(--d1,.12s)}.bi-saved:hover{background:var(--fill)}.bi-saved--on{background:var(--fill-2)}.bi-saved__m{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:7px;border:0;background:none;font:inherit;font-size:var(--t-xs);color:var(--text);padding:7px;cursor:pointer;text-align:left}.bi-saved--on .bi-saved__m{color:var(--accent);font-weight:500}.bi-saved__m span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-saved>button:not(.bi-saved__m){flex:none;border:0;background:none;color:var(--text-3);cursor:pointer;padding:5px;border-radius:var(--r-xs);opacity:0;display:flex;transition:opacity var(--d1,.12s),color var(--d1,.12s)}.bi-saved:hover>button:not(.bi-saved__m),.bi-saved>button:focus-visible{opacity:1}.bi-saved>button:not(.bi-saved__m):hover{color:var(--accent);background:var(--fill-2)}.bi-filters{gap:var(--s2);flex-wrap:wrap;padding:10px var(--s4);border-bottom:1px solid var(--hairline);background:var(--fill)}.bi-filters,.bi-filters__lbl{display:flex;align-items:center}.bi-filters__lbl{gap:6px;font-size:var(--t-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-weight:500}.bi-fchip{display:inline-flex;align-items:center;background:var(--over);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--shadow-sm)}.bi-fchip--xf{border-color:var(--accent)}.bi-fchip__m{border:0;background:none;font:inherit;font-size:var(--t-2xs);color:var(--text);padding:4px 8px;cursor:pointer;display:flex;gap:6px;align-items:center}.bi-fchip__m b{color:var(--text-3);font-weight:400}.bi-fchip__x{border:0;background:none;color:var(--text-3);cursor:pointer;padding:4px 6px;display:flex}.bi-fchip__x:hover{color:var(--accent);background:var(--fill)}.bi-filters__clr{border:0;background:none;font:inherit;font-size:var(--t-2xs);color:var(--text-3);cursor:pointer;text-decoration:underline;margin-left:auto}.bi-filters__clr:hover{color:var(--accent)}.bi-kpi{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.bi-kpi__label{font-size:var(--t-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:500}.bi-kpi__value{font-size:clamp(34px,6vw,62px);font-weight:600;letter-spacing:-.03em;color:var(--text);line-height:1.02;font-variant-numeric:tabular-nums}.bi-kpi__sub{font-size:var(--t-xs);color:var(--text-3)}.bi-tblwrap{flex:1 1 auto;overflow:auto;min-height:0;width:100%}.bi-tbl{width:100%;border-collapse:collapse;font-size:var(--t-xs)}.bi-tbl td,.bi-tbl th{padding:8px 11px;text-align:left;border-bottom:1px solid var(--hairline);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-tbl th{position:sticky;top:0;background:var(--over);color:var(--text-3);font-weight:500;font-size:var(--t-2xs);letter-spacing:.06em;text-transform:uppercase;z-index:1;border-bottom-color:var(--border)}.bi-tbl tbody tr{transition:background var(--d1,.12s)}.bi-tbl tbody tr:hover{background:var(--fill)}.bi-tbl .bi-num{text-align:right;font-variant-numeric:tabular-nums}.bi-tbl .bi-tot{font-weight:600;color:var(--text)}.bi-tbl--pivot tfoot td{border-top:1px solid var(--border);background:var(--fill)}.bi-dash{display:flex;flex-direction:column;gap:var(--s4);min-height:0}.bi-dash__bar{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.bi-dash__bar .bi-select{width:auto;min-width:220px;font-weight:500}.bi-hintline{font-size:var(--t-xs)}.bi-xf{display:inline-flex;align-items:center;gap:7px;font-size:var(--t-2xs);color:var(--accent);background:var(--accent-weak,var(--fill-2));border:1px solid var(--accent);border-radius:var(--r-sm);padding:3px 9px}.bi-xf button{border:0;background:none;font:inherit;color:var(--text-3);text-decoration:underline;cursor:pointer}.bi-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}@media (max-width:980px){.bi-grid>.bi-tile{grid-column:span 12!important}}.bi-tile{display:flex;flex-direction:column;min-width:0;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--over);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color var(--d2,.16s),box-shadow var(--d2,.16s)}.bi-tile:hover{border-color:var(--frame);box-shadow:var(--shadow-pop)}.bi-tile__hd{display:flex;align-items:center;gap:var(--s2);padding:10px 11px 10px var(--s4);border-bottom:1px solid var(--hairline)}.bi-tile__t{flex:1 1 auto;min-width:0;font-size:var(--t-xs);font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bi-tile__acts{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity var(--d2,.16s)}.bi-tile:focus-within .bi-tile__acts,.bi-tile:hover .bi-tile__acts{opacity:1}.bi-tile__acts button{border:0;background:none;color:var(--text-3);cursor:pointer;font:inherit;font-size:10px;font-weight:500;padding:4px 6px;border-radius:var(--r-xs);display:flex;align-items:center}.bi-tile__acts button:hover{color:var(--text);background:var(--fill)}.bi-tile__acts button.on{color:var(--accent);background:var(--accent-weak,var(--fill-2))}.bi-tile__body{padding:var(--s3);display:flex;min-width:0}.bi-tile__err{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:var(--s2);color:var(--text-2);font-size:var(--t-xs);text-align:center;padding:var(--s4)}.bi-fatal{display:flex;align-items:flex-start;gap:var(--s3)}.bi-fatal b{font-size:var(--t-body)}.bi-fatal code{font-family:var(--mono);font-size:var(--t-2xs);background:var(--fill);border-radius:var(--r-xs);padding:1px 5px}