:root{--rqb-spacing: .5rem;--rqb-border-width: 1px;--rqb-branch-indent: var(--rqb-spacing);--rqb-branch-width: var(--rqb-border-width);--rqb-base-color: #004bb8;--rqb-background-color: color-mix(in srgb, transparent, #004bb8 20%);--rqb-border-color: #8081a2;--rqb-border-style: solid;--rqb-border-radius: .25rem;--rqb-dnd-drop-indicator-color: rebeccapurple;--rqb-dnd-drop-indicator-style: dashed;--rqb-dnd-drop-indicator-width: 2px;--rqb-dnd-drop-indicator-copy-color: #693;--rqb-dnd-drop-indicator-copy-style: dashed;--rqb-dnd-drop-indicator-copy-width: 2px;--rqb-dnd-drop-indicator-group-color: #369;--rqb-dnd-drop-indicator-group-style: dashed;--rqb-dnd-drop-indicator-group-width: 2px;--rqb-dnd-drop-not-allowed-cursor: not-allowed;--rqb-branch-color: var(--rqb-border-color);--rqb-branch-radius: var(--rqb-border-radius);--rqb-branch-style: var(--rqb-border-style)}.ruleGroup{display:flex;flex-direction:column;gap:var(--rqb-spacing);padding:var(--rqb-spacing);border-width:var(--rqb-border-width)}.ruleGroup .ruleGroup-body{display:flex;flex-direction:column;gap:var(--rqb-spacing)}.ruleGroup .ruleGroup-body:empty{display:none}.ruleGroup .ruleGroup-header,.ruleGroup .rule{display:flex;gap:var(--rqb-spacing);align-items:center}.ruleGroup .rule .rule-value:has(.rule-value-list-item){display:flex;gap:var(--rqb-spacing);align-items:baseline}.ruleGroup .rule.rule-hasSubQuery{flex-wrap:wrap;padding:var(--rqb-spacing);border-width:var(--rqb-border-width)}.ruleGroup .rule.rule-hasSubQuery .ruleGroup-body{flex-basis:100%}.ruleGroup .betweenRules{display:flex}.ruleGroup .shiftActions{display:flex;flex-direction:column}.ruleGroup .shiftActions>*{padding:0}.dndOver.rule,.dndOver.ruleGroup-header{padding-bottom:var(--rqb-spacing)}.dndOver.betweenRules{padding-top:var(--rqb-spacing)}.dndGroup.rule.dndOver,.dndGroup.ruleGroup:has(.ruleGroup-header.dndOver){padding:var(--rqb-spacing)}.queryBuilder-branches:dir(ltr) .ruleGroup-body{margin-left:calc(2*var(--rqb-branch-indent))}.queryBuilder-branches:dir(ltr) .rule,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup{position:relative}.queryBuilder-branches:dir(ltr) .rule:before,.queryBuilder-branches:dir(ltr) .rule:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:after{content:"";width:var(--rqb-branch-indent);left:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width)));border-radius:0;position:absolute}.queryBuilder-branches:dir(ltr) .rule:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:before{top:calc(-1*var(--rqb-spacing));height:calc(50% + var(--rqb-spacing));border-width:0 0 var(--rqb-branch-width) var(--rqb-branch-width)}.queryBuilder-branches:dir(ltr) .rule:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:after{top:50%;height:50%;border-width:0 0 0 var(--rqb-branch-width)}.queryBuilder-branches:dir(ltr) .rule:last-child:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:last-child:after{display:none}.queryBuilder-branches:dir(ltr) .rule-hasSubQuery:before,.queryBuilder-branches:dir(ltr) .rule-hasSubQuery:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:after{left:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width) + var(--rqb-border-width)))}.queryBuilder-branches:dir(ltr) .rule-hasSubQuery:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:before{top:calc(-1*(var(--rqb-spacing) + var(--rqb-border-width)));height:calc(50% + var(--rqb-spacing) + var(--rqb-border-width))}.queryBuilder-branches:dir(ltr) .rule-hasSubQuery:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:after{height:calc(50% + var(--rqb-border-width))}.queryBuilder-branches:dir(ltr) .betweenRules:before{content:"";width:var(--rqb-branch-indent);left:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width)));border-radius:0;position:absolute;top:calc(-1*var(--rqb-spacing));height:calc(100% + var(--rqb-spacing));border-width:0 0 0 var(--rqb-branch-width)}.queryBuilder-branches:dir(rtl) .ruleGroup-body{margin-right:calc(2*var(--rqb-branch-indent))}.queryBuilder-branches:dir(rtl) .rule,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup{position:relative}.queryBuilder-branches:dir(rtl) .rule:before,.queryBuilder-branches:dir(rtl) .rule:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:after{content:"";width:var(--rqb-branch-indent);right:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width)));border-radius:0;position:absolute}.queryBuilder-branches:dir(rtl) .rule:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:after{top:calc(-1*var(--rqb-spacing));height:calc(50% + var(--rqb-spacing));border-width:0 var(--rqb-branch-width) var(--rqb-branch-width) 0}.queryBuilder-branches:dir(rtl) .rule:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:before{top:50%;height:50%;border-width:0 var(--rqb-branch-width) 0 0}.queryBuilder-branches:dir(rtl) .rule:last-child:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:last-child:before{display:none}.queryBuilder-branches:dir(rtl) .rule-hasSubQuery:before,.queryBuilder-branches:dir(rtl) .rule-hasSubQuery:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:after{right:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width) + var(--rqb-border-width)))}.queryBuilder-branches:dir(rtl) .rule-hasSubQuery:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:after{top:calc(-1*(var(--rqb-spacing) + var(--rqb-border-width)));height:calc(50% + var(--rqb-spacing) + var(--rqb-border-width))}.queryBuilder-branches:dir(rtl) .rule-hasSubQuery:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:before{height:calc(50% + var(--rqb-border-width))}.queryBuilder-branches:dir(rtl) .betweenRules:after{content:"";width:var(--rqb-branch-indent);right:calc(-1*(var(--rqb-branch-indent) + var(--rqb-branch-width)));border-radius:0;position:absolute;top:calc(-1*var(--rqb-spacing));height:calc(100% + var(--rqb-spacing));border-width:0 var(--rqb-branch-width) 0 0}.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.rule-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-combinators+.rule-remove,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.rule-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-notToggle+.rule-remove,.queryBuilder-justified:dir(ltr) .shiftActions+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .shiftActions+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .shiftActions+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .shiftActions+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .shiftActions+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .shiftActions+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .shiftActions+.rule-lock,.queryBuilder-justified:dir(ltr) .shiftActions+.rule-remove,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.rule-lock,.queryBuilder-justified:dir(ltr) .queryBuilder-dragHandle+.rule-remove,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.rule-lock,.queryBuilder-justified:dir(ltr) .ruleGroup-header+.rule-remove,.queryBuilder-justified:dir(ltr) .rule-operators+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .rule-operators+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .rule-operators+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .rule-operators+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .rule-operators+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .rule-operators+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .rule-operators+.rule-lock,.queryBuilder-justified:dir(ltr) .rule-operators+.rule-remove,.queryBuilder-justified:dir(ltr) .rule-value+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .rule-value+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .rule-value+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .rule-value+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .rule-value+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .rule-value+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .rule-value+.rule-lock,.queryBuilder-justified:dir(ltr) .rule-value+.rule-remove,.queryBuilder-justified:dir(ltr) .control+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .control+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .control+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .control+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .control+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .control+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .control+.rule-lock,.queryBuilder-justified:dir(ltr) .control+.rule-remove,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.rule-cloneRule,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.rule-lock,.queryBuilder-justified:dir(ltr) .chakra-select__wrapper+.rule-remove,.queryBuilder-justified:dir(ltr) input[type=hidden]+.ruleGroup-addRule,.queryBuilder-justified:dir(ltr) input[type=hidden]+.ruleGroup-addGroup,.queryBuilder-justified:dir(ltr) input[type=hidden]+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(ltr) input[type=hidden]+.ruleGroup-lock,.queryBuilder-justified:dir(ltr) input[type=hidden]+.ruleGroup-remove,.queryBuilder-justified:dir(ltr) input[type=hidden]+.rule-cloneRule,.queryBuilder-justified:dir(ltr) input[type=hidden]+.rule-lock,.queryBuilder-justified:dir(ltr) input[type=hidden]+.rule-remove{margin-left:auto!important}.queryBuilder-justified:dir(ltr) .ruleGroup-addRule:first-child,.queryBuilder-justified:dir(ltr) .ruleGroup-addGroup:first-child{margin-left:auto!important}.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.rule-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-combinators+.rule-remove,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.rule-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-notToggle+.rule-remove,.queryBuilder-justified:dir(rtl) .shiftActions+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .shiftActions+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .shiftActions+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .shiftActions+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .shiftActions+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .shiftActions+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .shiftActions+.rule-lock,.queryBuilder-justified:dir(rtl) .shiftActions+.rule-remove,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.rule-lock,.queryBuilder-justified:dir(rtl) .queryBuilder-dragHandle+.rule-remove,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.rule-lock,.queryBuilder-justified:dir(rtl) .ruleGroup-header+.rule-remove,.queryBuilder-justified:dir(rtl) .rule-operators+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .rule-operators+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .rule-operators+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .rule-operators+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .rule-operators+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .rule-operators+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .rule-operators+.rule-lock,.queryBuilder-justified:dir(rtl) .rule-operators+.rule-remove,.queryBuilder-justified:dir(rtl) .rule-value+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .rule-value+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .rule-value+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .rule-value+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .rule-value+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .rule-value+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .rule-value+.rule-lock,.queryBuilder-justified:dir(rtl) .rule-value+.rule-remove,.queryBuilder-justified:dir(rtl) .control+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .control+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .control+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .control+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .control+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .control+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .control+.rule-lock,.queryBuilder-justified:dir(rtl) .control+.rule-remove,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.rule-cloneRule,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.rule-lock,.queryBuilder-justified:dir(rtl) .chakra-select__wrapper+.rule-remove,.queryBuilder-justified:dir(rtl) input[type=hidden]+.ruleGroup-addRule,.queryBuilder-justified:dir(rtl) input[type=hidden]+.ruleGroup-addGroup,.queryBuilder-justified:dir(rtl) input[type=hidden]+.ruleGroup-cloneGroup,.queryBuilder-justified:dir(rtl) input[type=hidden]+.ruleGroup-lock,.queryBuilder-justified:dir(rtl) input[type=hidden]+.ruleGroup-remove,.queryBuilder-justified:dir(rtl) input[type=hidden]+.rule-cloneRule,.queryBuilder-justified:dir(rtl) input[type=hidden]+.rule-lock,.queryBuilder-justified:dir(rtl) input[type=hidden]+.rule-remove{margin-right:auto!important}.queryBuilder-justified:dir(rtl) .ruleGroup-addRule:first-child,.queryBuilder-justified:dir(rtl) .ruleGroup-addGroup:first-child{margin-right:auto!important}.ruleGroup,.rule-hasSubQuery{border-color:var(--rqb-border-color);border-style:var(--rqb-border-style);border-radius:var(--rqb-border-radius);background:var(--rqb-background-color)}.ruleGroup .shiftActions>*,.rule-hasSubQuery .shiftActions>*{background-color:#0000;border:none;cursor:pointer}.dndOver.rule,.dndOver.ruleGroup-header:not(.dndGroup .ruleGroup-header){border-bottom-width:var(--rqb-dnd-drop-indicator-width);border-bottom-style:var(--rqb-dnd-drop-indicator-style);border-bottom-color:var(--rqb-dnd-drop-indicator-color)}.dndOver.rule.dndCopy,.dndOver.ruleGroup-header:not(.dndGroup .ruleGroup-header).dndCopy{border-bottom-width:var(--rqb-dnd-drop-indicator-copy-width);border-bottom-style:var(--rqb-dnd-drop-indicator-copy-style);border-bottom-color:var(--rqb-dnd-drop-indicator-copy-color)}.dndOver.betweenRules{border-top-width:var(--rqb-dnd-drop-indicator-width);border-top-style:var(--rqb-dnd-drop-indicator-style);border-top-color:var(--rqb-dnd-drop-indicator-color)}.dndOver.betweenRules.dndCopy{border-top-width:var(--rqb-dnd-drop-indicator-copy-width);border-top-style:var(--rqb-dnd-drop-indicator-copy-style);border-top-color:var(--rqb-dnd-drop-indicator-copy-color)}.dndDropNotAllowed{cursor:var(--rqb-dnd-drop-not-allowed-cursor)}.dndGroup.rule.dndOver,.dndGroup.ruleGroup:has(>.ruleGroup-header.dndOver){border-width:var(--rqb-dnd-drop-indicator-group-width);border-style:var(--rqb-dnd-drop-indicator-group-style);border-color:var(--rqb-dnd-drop-indicator-group-color);border-radius:var(--rqb-border-radius)}.dndGroup.rule.dndOver.dndCopy,.dndGroup.ruleGroup:has(>.ruleGroup-header.dndOver).dndCopy{border-color:var(--rqb-dnd-drop-indicator-copy-color);border-width:var(--rqb-dnd-drop-indicator-copy-width);border-style:var(--rqb-dnd-drop-indicator-copy-style)}.ruleGroup.dndDragging,.rule.dndDragging{opacity:.5}.ruleGroup .queryBuilder-dragHandle,.rule .queryBuilder-dragHandle{cursor:move}.ruleGroup.queryBuilder-disabled .queryBuilder-dragHandle,.rule.queryBuilder-disabled .queryBuilder-dragHandle{cursor:not-allowed;opacity:.5}.queryBuilder-branches:dir(ltr) .rule:before,.queryBuilder-branches:dir(ltr) .rule:after,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:after{border-color:var(--rqb-branch-color);border-style:var(--rqb-branch-style)}.queryBuilder-branches:dir(ltr) .rule:last-child:before,.queryBuilder-branches:dir(ltr) .ruleGroup .ruleGroup:last-child:before{border-bottom-left-radius:var(--rqb-branch-radius)}.queryBuilder-branches:dir(ltr) .betweenRules{position:relative}.queryBuilder-branches:dir(ltr) .betweenRules:before{border-color:var(--rqb-branch-color);border-style:var(--rqb-branch-style)}.queryBuilder-branches:dir(rtl) .rule:before,.queryBuilder-branches:dir(rtl) .rule:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:before,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:after{border-color:var(--rqb-branch-color);border-style:var(--rqb-branch-style)}.queryBuilder-branches:dir(rtl) .rule:last-child:after,.queryBuilder-branches:dir(rtl) .ruleGroup .ruleGroup:last-child:after{border-bottom-right-radius:var(--rqb-branch-radius)}.queryBuilder-branches:dir(rtl) .betweenRules{position:relative}.queryBuilder-branches:dir(rtl) .betweenRules:after{border-color:var(--rqb-branch-color);border-style:var(--rqb-branch-style)}:root{--bg: #ffffff;--surface: #faf8f9;--border: #e8dfe4;--text: #2d2d2d;--text-muted: #888;--accent: #d4829c;--accent-light: #f2e0e8;--error: #c0392b;--sans: system-ui, "Segoe UI", Roboto, sans-serif;font:15px/1.5 var(--sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}button{font:inherit;cursor:pointer;border:none;border-radius:6px;padding:10px 20px;background:var(--accent);color:#fff;font-weight:600}button:hover:not(:disabled){opacity:.85}button:disabled{opacity:.4;cursor:default}input{font-size:16px;font-family:inherit;padding:10px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);outline:none}input:focus{border-color:var(--accent)}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-form{display:flex;flex-direction:column;gap:12px;width:320px}.login-form h1{margin-bottom:8px;font-size:24px;font-weight:600}.login-error{color:var(--error);font-size:14px}.password-field{position:relative;display:flex}.password-field input{flex:1;padding-right:40px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;line-height:1;color:var(--text-muted);display:flex;align-items:center;opacity:.6}.password-toggle:hover{opacity:1}.btn-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.layout{min-height:100vh}.layout-main{padding:16px;margin-left:48px;color:var(--text-muted);overflow:auto;height:100vh;transition:margin-left .15s ease}.layout-main--sidebar-open{margin-left:180px}.layout-main--sidebar-closed{margin-left:48px}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px 10px}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.chart-title{font-size:16px;font-weight:700;color:#5b4a7a}.chart-body{display:flex;height:38vh}.chart-y-axis{display:flex;flex-direction:column;justify-content:space-between;padding-right:12px;padding-bottom:28px}.chart-y-label{font-size:12px;color:var(--text-muted);text-align:right;line-height:1}.chart-plot-area{flex:1;display:flex;flex-direction:column;position:relative;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}.chart-gridlines{flex:1;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.chart-gridline{border-top:1px dashed var(--border)}.chart-overlay{position:absolute;top:0;right:0;bottom:28px;left:0;display:flex;align-items:center;justify-content:center;text-align:center}.chart-overlay-actions{display:flex;gap:10px}.chart-no-data{font-size:14px;color:var(--text-muted)}.chart-svg{position:absolute;top:0;right:0;bottom:28px;left:0;width:100%;height:calc(100% - 28px);pointer-events:none}.chart-header-left{display:flex;align-items:baseline;gap:14px}.chart-value{font-size:18px;font-weight:700;color:var(--text)}.chart-change{font-size:13px;font-weight:600;margin-left:6px}.chart-change--up{color:#27ae60}.chart-change--down{color:#c0392b}.chart-inspect-date{font-size:13px;font-weight:600;color:var(--text-muted);margin-right:2px}.chart-inspect-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5}.chart-card{position:relative;z-index:6}.chart-crosshair{position:absolute;top:0;bottom:28px;width:0;pointer-events:none;z-index:2}.chart-crosshair-line{position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--text-muted);opacity:.5}.chart-crosshair-dot{position:absolute;left:-4px;width:9px;height:9px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--accent)}.chart-tooltip{position:absolute;transform:translateY(-50%);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 8px;pointer-events:none;white-space:nowrap;box-shadow:0 2px 6px #0000001a}.chart-tooltip-date{font-size:11px;color:var(--text-muted);line-height:1.3}.chart-tooltip-value{font-size:13px;font-weight:700;color:var(--text);line-height:1.3}.chart-x-axis{display:flex;justify-content:space-between;padding-top:8px;padding-left:4px;padding-right:4px;height:28px}.chart-x-label{font-size:12px;color:var(--text-muted);line-height:1}.widget-row{display:flex;gap:16px;margin-top:16px}.widget-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;min-height:200px}.link-account-btn{display:flex;align-items:center;gap:10px;padding:14px 28px;font-size:15px;background:var(--accent);color:#fff;border-radius:8px}.link-account-btn svg{width:20px;height:20px;flex-shrink:0}.broker-badge{padding:3px 10px;border-radius:12px;font-size:13px;font-weight:500}.broker-badge--active{background:#e8f5e9;color:#2e7d32}.broker-badge--expired{background:#fce4ec;color:#c0392b}.broker-badge--standby{background:var(--accent-light);color:var(--accent)}.broker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:299}.broker-picker{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:24px 28px;width:340px;z-index:300;box-shadow:0 8px 32px #0000001f}.broker-picker-title{font-size:16px;font-weight:700;color:#5b4a7a;margin-bottom:16px;text-align:center}.broker-list{display:flex;flex-direction:column;gap:8px}.broker-option{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-weight:600;font-size:15px;transition:border-color .15s}.broker-option-left{display:flex;align-items:center;gap:12px}.broker-logo{width:32px;height:32px;border-radius:6px;object-fit:contain}.broker-option:hover:not(:disabled){border-color:var(--accent);opacity:1}.broker-option--disabled{color:var(--text-muted);font-weight:500}.broker-option-tag{font-size:11px;font-weight:500;color:var(--text-muted);background:var(--accent-light);padding:2px 8px;border-radius:10px}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;z-index:400;box-shadow:0 4px 16px #00000026}.sidebar-backdrop{display:none}@media (max-width: 600px){.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0003;z-index:199;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop--visible{opacity:1;pointer-events:auto}}.sidebar{position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column;width:48px;background:var(--surface);border-right:1px solid var(--border);transition:width .15s ease;overflow:hidden;z-index:200}.sidebar--expanded{width:180px}.sidebar-item-label{display:none}.sidebar--expanded .sidebar-item-label{display:inline}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;background:transparent;color:var(--text-muted);border-radius:0;flex-shrink:0}.sidebar-toggle:hover:not(:disabled){color:var(--accent);opacity:1}.sidebar-toggle svg{width:20px;height:20px}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:4px 0}.sidebar-footer{display:flex;flex-direction:column;gap:2px;padding:4px 0;border-top:1px solid var(--border)}.sidebar-item{display:flex;align-items:center;gap:10px;height:44px;padding:0 12px;background:transparent;color:var(--text-muted);font-size:15px;font-weight:500;white-space:nowrap;border-radius:0;border-bottom:1px solid var(--border)}.sidebar-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-item--active{color:var(--text);background:var(--accent-light)}@media (hover: hover){.sidebar-item:hover:not(:disabled):not(.sidebar-item--active){color:var(--text);opacity:1}}.sidebar-user{cursor:default;color:var(--text);font-weight:600}.sidebar-user:hover:not(:disabled){color:var(--text);opacity:1}.sidebar-mobile-only,.sidebar-fab{display:none}.admin-page{display:flex;flex-direction:column;gap:16px}.admin-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:4px}.admin-tab{padding:8px 20px;font-size:14px;font-weight:600;background:none;color:var(--text-muted);border-radius:0;border-bottom:2px solid transparent;margin-bottom:-2px}.admin-tab--active{color:#5b4a7a;border-bottom-color:#5b4a7a}.admin-tab:hover:not(.admin-tab--active){color:var(--text)}.admin-section-title{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.accounts-section-title{font-size:15px;font-weight:600;color:var(--text);margin:0;padding:12px 16px 0}.accounts-section-desc{font-size:12px;color:var(--text-muted);margin:2px 0 0;padding:0 16px}.accounts-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}.accounts-table th{text-align:left;padding:6px 16px;font-weight:600;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.accounts-table td{padding:8px 16px;border-bottom:1px solid var(--border-light, #f0eeef)}.accounts-table tbody tr:last-child td{border-bottom:none}.accounts-app-name,.accounts-username{font-weight:600}.accounts-no-link{color:var(--text-muted);font-style:italic}.accounts-link-item{display:inline-flex;align-items:center;gap:4px;margin-right:12px;font-size:13px}.credential-badge{display:inline-block;padding:1px 8px;border-radius:10px;color:#fff;font-size:11px;font-weight:600}.btn-reauth{padding:4px 12px;font-size:12px;font-weight:600;color:#fff;background:#5b4a7a;border:none;border-radius:4px;cursor:pointer}.btn-reauth:disabled{opacity:.6;cursor:default}@media (hover: hover){.btn-reauth:hover:not(:disabled){background:#4a3a66}}.stats-load-card{display:flex;align-items:center;gap:6px;padding:12px 16px;font-size:14px}.stats-load-label{font-weight:600;color:var(--text);margin-right:4px}.stats-load-value{font-weight:700;font-family:monospace;color:#5b4a7a}.stats-load-sep{color:var(--text-muted)}.stats-load-period{color:var(--text-muted);font-size:12px;margin-left:8px}.stats-svc-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}.stats-th-sort{cursor:pointer;user-select:none;-webkit-user-select:none}.stats-th-sort--active{color:var(--text)}.stats-svc-table th{text-align:left;font-weight:600;color:var(--text-muted);padding:4px 8px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase}.stats-svc-table td{padding:3px 8px;color:var(--text);font-family:monospace;font-size:12px}.stats-svc-table td:first-child{font-family:inherit;display:flex;align-items:center;gap:6px}.stats-svc-table tr:nth-child(2n){background:var(--surface)}.stats-legend-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;display:inline-block}.services-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.btn-refresh{background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:5px 14px;font-size:12px}.services-grid{display:flex;gap:32px}.service-group{flex:1}.service-group-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.service-list{display:flex;flex-direction:column;gap:6px}.service-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;background:var(--bg);border:1px solid var(--border)}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.service-name{flex:1;font-size:14px;font-weight:500;color:var(--text)}.service-status{font-size:12px;font-weight:500}.service-status--running{color:#27ae60}.service-status--disabled{color:#f39c12}.service-status--error{color:#c0392b}.service-error{color:var(--error);font-size:14px}.service-loading{color:var(--text-muted);font-size:14px}.modeler-page{display:flex;flex-direction:column;gap:12px;padding-bottom:120px}.modeler-header{display:flex;align-items:center;justify-content:space-between}.dialog-input{width:100%;margin:12px 0}.ticker-grid{display:flex;flex-wrap:wrap;gap:8px;max-height:60vh;overflow-y:auto}.ticker-chip{padding:6px 14px;font-size:13px;font-weight:600;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px}.ticker-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent);opacity:1}.explorer-tree{flex:1;--explorer-indent: 16px;--explorer-base: 10px}.explorer-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:transparent;color:var(--text);font-size:21px;font-weight:500;border-radius:4px;text-align:left;user-select:none;-webkit-user-select:none}@media (hover: hover){.explorer-row:hover:not(:disabled){background:var(--accent-light);opacity:1}}@media (max-width: 600px){.explorer-tree{--explorer-indent: 12px;--explorer-base: 2px;overflow-x:auto}.explorer-row{padding:8px 4px;white-space:nowrap;width:fit-content;min-width:100%}}.explorer-icon{flex-shrink:0;color:var(--text-muted)}.icon-dimmed{opacity:.35}.text-dimmed{opacity:.5}.explorer-folder-icon{color:#000;fill:#c8a96e}.explorer-folder-name{font-weight:600;color:var(--text)}.explorer-item-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.revision-lock-icon{margin-left:6px;color:#d98a8a;cursor:pointer;display:flex;align-items:center;padding:2px 4px}.explorer-item{cursor:default;touch-action:pan-y}.explorer-item--selected{background:var(--accent-light)}.explorer-revision{font-size:15px;font-weight:400;gap:6px}.explorer-revision-active{color:#27ae60;flex-shrink:0}.modeler-detail-page{padding:0 0 24px}.modeler-detail-page .dataset-config{margin-left:-12px;margin-right:-4px}.modeler-detail-page .dataset-config .heatmap-chart{margin-left:-4px;margin-right:4px}.modeler-detail-page .dataset-config .signal-subplot{margin-left:-5px;margin-right:5px}.modeler-detail-page .heatmap-controls{padding-left:16px}.modeler-detail-name{font-size:16px;font-weight:700;color:#5b4a7a;letter-spacing:.5px}.modeler-detail-subtitle{font-size:13px;font-weight:500;color:var(--text-muted);margin-top:2px}.active-badge{display:inline-block;background:#a8e06c;color:#000;border:1px solid #7cb342;border-radius:4px;padding:1px 8px;font-size:12px;font-weight:700}.btn-activate{background:#4caf50;color:#fff}.btn-activate:hover:not(:disabled){opacity:.85}.obsolete-badge{display:inline-block;background:#bbb;color:#fff;border:1px solid #999;border-radius:4px;padding:1px 8px;font-size:12px;font-weight:700}.context-menu-item--danger-btn{background:var(--error);color:#fff}.activate-confirm-note{font-size:14px;color:var(--text);margin:12px 0}.cascade-list{margin:8px 0;padding-left:20px;font-size:13px;color:var(--text)}.cascade-list li{margin:2px 0}.draft-badge{display:inline-block;background:#ffeb3b;color:#000;border:1px solid #d4c520;border-radius:4px;padding:1px 8px;font-size:12px;font-weight:700}.modeler-sub-tabs{margin-top:4px;margin-bottom:-4px}.modeler-page>.section-header{justify-content:flex-start}@media (max-width: 600px){.modeler-sub-tabs .admin-tab{padding-left:8px;padding-right:8px}}.modeler-detail-placeholder{font-size:18px;color:var(--text-muted)}.model-config{max-width:500px}.model-config-category{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:20px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.model-config-category:first-child{margin-top:0}.model-config-field{margin-bottom:16px}.model-config-label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;text-transform:capitalize}.model-config-value{font-size:16px;padding:10px 14px;color:var(--text);font-weight:500}.model-config-select,.model-config-input{width:100%;font-size:16px;font-family:inherit;padding:10px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);outline:none}.model-config-select:focus,.model-config-input:focus{border-color:var(--accent)}.model-config-select:disabled,.model-config-input:disabled{opacity:.5;cursor:default}.model-config-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}.model-config-checkbox input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}.model-config-hint{display:block;font-size:12px;color:var(--text-muted);margin-top:2px;white-space:pre-line}.model-config-error{display:block;font-size:12px;color:#e74c3c;margin-top:2px}.ds-combobox{position:relative}.ds-combobox-list{position:absolute;z-index:20;left:0;right:0;max-height:200px;overflow-y:auto;margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px}.ds-combobox-item{padding:6px 10px;cursor:pointer;font-size:13px;color:var(--text)}.ds-combobox-item:hover,.ds-combobox-item.selected{background:var(--accent);color:#fff}.model-config-actions{margin-top:24px;display:flex;justify-content:flex-end}.section-header{position:sticky;top:-16px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:12px 16px 4px;margin:-16px -16px 4px;background:#f0eeef;border-bottom:2px solid var(--border);z-index:10;box-sizing:content-box}@media (max-width: 600px){.section-header{margin-left:-6px;margin-right:-6px;padding-left:6px}}.section-header-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.section-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.section-header-save{padding:6px 16px;font-size:13px;font-weight:600;background:#c95968;color:#fff}.section-header-save:disabled{opacity:.5;cursor:default}.model-config-actions button:not(.btn-refresh){background:#c95968;color:#fff}.modeler-page-title{font-size:16px;font-weight:700;color:#5b4a7a;text-transform:uppercase;letter-spacing:.5px}.explorer-add-btn{width:26px;height:26px;padding:0;margin:4px 0 4px 10px;font-size:16px;font-weight:600;background:transparent;color:var(--text);border:2px solid var(--text);border-radius:6px;display:flex;align-items:center;justify-content:center}@media (hover: hover){.explorer-add-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);opacity:1}}.explorer-create-row{display:flex;gap:8px;align-items:center;margin-top:8px}.explorer-create-input{flex:1;padding:6px 10px;font-size:16px}.context-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:299;touch-action:none;background:transparent}.context-menu{position:fixed;z-index:300;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000001f;overflow:hidden;min-width:140px}.context-menu-item{display:block;width:100%;padding:10px 16px;font-size:14px;font-weight:500;background:transparent;color:var(--text);text-align:left;border-radius:0}.context-menu-item:hover:not(:disabled){background:var(--surface);opacity:1}.context-menu-item--danger{color:var(--error)}.move-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:20px;width:320px;z-index:300;box-shadow:0 8px 32px #0000001f}.move-dialog-title{font-size:15px;font-weight:700;color:#5b4a7a;margin-bottom:12px}.move-folder-list{max-height:200px;overflow-y:auto;margin-bottom:10px;border:1px solid var(--border);border-radius:6px}.move-folder-row{display:block;width:100%;padding:8px 10px;font-size:13px;font-weight:500;background:transparent;color:var(--text);text-align:left;border-radius:0}.move-folder-row:hover:not(:disabled){background:var(--surface);opacity:1}.move-folder-row--active{background:var(--accent-light);color:var(--accent);font-weight:600}.move-create-row{display:flex;gap:6px;align-items:center;margin-bottom:10px}.move-create-input{flex:1;padding:6px 10px;font-size:13px}.move-new-folder-btn{width:100%;margin-bottom:10px;text-align:center}.move-dialog-actions{display:flex;justify-content:flex-end;gap:8px}@media (max-width: 600px){.move-dialog{top:20%;transform:translate(-50%)}.sidebar{width:180px;transform:translate(-100%);transition:transform .2s ease}.sidebar.sidebar--expanded{transform:translate(0)}.sidebar-desktop-only{display:none}.sidebar-mobile-only{display:flex;flex-direction:column;gap:2px;padding:4px 0;flex:1}.sidebar-mobile-spacer{flex:1}.sidebar-fab{display:flex;align-items:center;justify-content:center;position:fixed;bottom:24px;left:16px;width:48px;height:48px;padding:0;border-radius:50%;background:var(--surface);color:var(--text-muted);border:1px solid var(--border);box-shadow:0 2px 8px #0000001f;z-index:200}.sidebar-fab svg{width:22px;height:22px}.sidebar-fab:hover:not(:disabled){opacity:1}.sidebar-fab--hidden{opacity:0;pointer-events:none}.layout-main{margin-left:0;padding:6px 6px 160px;min-height:auto;overflow-x:hidden}.chart-card,.widget-card{padding:8px 10px 6px;border-radius:8px;overflow-x:auto}.widget-row{flex-direction:column;gap:6px;margin-top:6px}.chart-header{margin-bottom:6px}.link-account-btn{padding:10px 18px;font-size:13px}.link-account-btn svg{width:16px;height:16px}.accounts-table th,.accounts-table td{padding:6px 8px;font-size:11px}.accounts-table th{font-size:10px}.btn-reauth{padding:3px 8px;font-size:11px}.stats-svc-table th,.stats-svc-table td{padding:6px;font-size:11px}}.avail-chart{margin-bottom:20px}.avail-nav{display:flex;align-items:flex-start;gap:4px}.avail-arrow{background:none;color:var(--text-muted);padding:6px;margin-top:28px;flex-shrink:0}.avail-arrow:hover:not(:disabled){color:var(--text)}.avail-months{display:flex;gap:16px;flex:1;min-width:0}.avail-month{flex:1;min-width:0}.avail-month-label{text-align:center;font-size:14px;font-weight:600;margin-bottom:6px;color:var(--text)}.avail-day-headers{display:grid;grid-template-columns:repeat(7,28px);gap:2px;margin-bottom:2px}.avail-day-header{text-align:center;font-size:10px;color:var(--text-muted);font-weight:600}.avail-grid{display:grid;grid-template-columns:repeat(7,28px);gap:2px}.avail-cell{width:28px;height:28px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;cursor:default}.avail-empty{background:transparent}.avail-none{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.avail-full{background:#4a90d9;color:#fff;border:1px solid #3a7bc8}.avail-partial{background:#e8943a;color:#fff;border:1px solid #d4802a}.avail-legend{display:flex;gap:16px;justify-content:center;margin-top:8px;font-size:12px;color:var(--text-muted)}.avail-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:middle;margin-right:4px}.avail-swatch.avail-full,.avail-swatch.avail-partial,.avail-swatch.avail-none{font-size:0}.avail-year-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.avail-year-cell{width:80px;height:48px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600}.avail-month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.avail-month-cell{height:44px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.avail-breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--accent);cursor:pointer;margin-bottom:4px}.avail-drill-title{text-align:center;font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text)}.avail-empty-msg{text-align:center;color:var(--text-muted);font-size:14px;margin:20px 0}.avail-closed{background:#f0f0f0;color:#bbb;border:1px solid #e0e0e0}.avail-swatch.avail-closed{font-size:0}.avail-clickable{cursor:pointer}@media (hover: hover){.avail-clickable:hover{outline:2px solid var(--accent);outline-offset:-1px}}.ohlcv-chart{margin-bottom:12px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.day-detail{margin-bottom:4px}.heatmap-date-label{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.heatmap-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.heatmap-col-select{font-size:14px;font-family:inherit;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.heatmap-chart{margin-bottom:2px}.heatmap-chart--locked{position:relative;z-index:5;background:var(--bg);will-change:transform}.heatmap-lock-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:4px;padding:4px 6px;cursor:pointer;color:var(--text-muted)}.heatmap-lock-btn:hover{color:var(--text)}.heatmap-lock-btn--active{background:var(--accent-light);border-color:var(--accent);color:var(--text)}.heatmap-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:1px 2px}.heatmap-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.heatmap-toggle button{padding:4px 14px;font-size:13px;font-weight:600;border-radius:0;background:#fff;color:var(--text-muted)}.heatmap-toggle .toggle-calls{border-radius:6px 0 0 6px}.heatmap-toggle .toggle-puts{border-radius:0 6px 6px 0}.heatmap-toggle .toggle-calls.active,.heatmap-toggle .toggle-puts.active{background:#dbe8f5;color:#222;box-shadow:inset 0 0 0 1px #3a6fb5}.heatmap-exp-select{font-size:14px;font-family:inherit;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text)}.heatmap-checkbox{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);cursor:pointer;white-space:nowrap}.heatmap-checkbox input{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.heatmap-body{display:flex;gap:0}.heatmap-sidebar{display:flex;flex-direction:column;gap:4px;flex-shrink:0;padding-top:2px}.heatmap-body canvas{flex:1;min-width:0;touch-action:none}.heatmap-group{border:1px solid var(--border);border-radius:4px;padding:4px 6px 6px;margin:0;display:flex;flex-direction:column;gap:3px}.heatmap-group legend{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;padding:0 3px}.heatmap-sidebar-check{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text);cursor:pointer;white-space:nowrap}.heatmap-sidebar-check input{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.heatmap-sidebar-select{font-size:12px;font-family:inherit;padding:2px 4px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);width:100%}.heatmap-sidebar-btn{font-size:11px;font-weight:600;padding:3px 8px;min-width:auto}.heatmap-icon-toggle:has(input:disabled){opacity:.35;cursor:default}.heatmap-body{position:relative}.heatmap-sidebar{display:none}.heatmap-sidebar.heatmap-sidebar--open{display:flex;flex-direction:column;gap:6px;position:fixed;top:120px;right:60px;z-index:120;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:0 10px 10px;box-shadow:0 4px 16px #0000002e;width:220px}.heatmap-toolbox-titlebar{margin:0 -10px 8px;padding:5px 10px;background:#e8e6e8;border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;cursor:move;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between;gap:6px}.heatmap-toolbox-close{background:transparent;border:none;padding:2px;margin:-2px -4px -2px 0;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;border-radius:3px}.heatmap-toolbox-close:hover{background:#00000014;color:var(--text)}.heatmap-sidebar--open .heatmap-group{padding:6px 8px 8px;gap:6px}.heatmap-toolbox-fab,.heatmap-zoom-fab{display:flex;align-items:center;justify-content:center;position:absolute;right:10px;z-index:2;width:36px;height:36px;padding:0;border-radius:6px;border:1px solid var(--border);background:#ffffffd9;color:var(--text-muted);cursor:pointer;box-shadow:0 1px 4px #0000001f}.heatmap-toolbox-fab{top:14px}.heatmap-zoom-fab{top:56px;display:none}.heatmap-zoom-fab.active{background:#3a6fb526;border-color:#3a6fb5;color:#3a6fb5}.heatmap-snapback-fab{display:flex;align-items:center;justify-content:center;position:absolute;right:10px;top:56px;z-index:2;width:36px;height:36px;padding:0;border-radius:6px;border:1px solid var(--border);background:#ffffffd9;color:var(--text-muted);cursor:pointer;box-shadow:0 1px 4px #0000001f}.heatmap-toolbox-backdrop{display:none}@media (max-width: 600px){.modeler-detail-page .dataset-config{margin-left:-4px;margin-right:-4px}.modeler-detail-page .dataset-config .heatmap-chart{margin-left:0;margin-right:-2px}.modeler-detail-page .dataset-config .signal-subplot{margin-left:-1px;margin-right:-1px}.market-signals-actions{padding:4px 10px}.rule-definition{padding:8px 12px 200px}.modeler-detail-page .heatmap-controls{padding-left:6px;padding-right:10px}.heatmap-sidebar.heatmap-sidebar--open{position:absolute;top:10px;right:10px;left:auto!important;width:auto}.heatmap-toolbox-titlebar{display:none}.heatmap-zoom-fab{display:flex}.heatmap-snapback-fab{top:98px}.heatmap-sidebar--open .heatmap-group legend{font-size:13px}.heatmap-sidebar--open .heatmap-sidebar-check{font-size:15px;gap:6px}.heatmap-sidebar--open .heatmap-sidebar-check input{width:18px;height:18px}.heatmap-sidebar--open .heatmap-sidebar-select{font-size:15px;padding:4px 6px}.heatmap-sidebar--open .heatmap-sidebar-btn{font-size:14px;padding:5px 10px}.heatmap-toolbox-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:115}}.heatmap-fit-overlay{position:absolute;right:2px;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#ffffffd9;color:var(--text-muted);border:1px solid var(--border);min-width:auto;cursor:pointer;z-index:1}.heatmap-fit-overlay.active{background:var(--accent);color:#fff;border-color:var(--accent)}.heatmap-reset{background:none;color:var(--text-muted);padding:4px 8px;min-width:auto}.heatmap-reset:hover{color:var(--text)}.dataset-config{padding:0}.dataset-empty-hint{color:var(--text-muted);font-size:14px;margin-bottom:16px}.market-rules-section{margin-top:8px;padding:0 4px}.market-rules-section .queryBuilder{font-size:13px}.market-rules-section .ruleGroup{background:#cfdff1;border:1px solid #a6c2e0;border-radius:8px;padding:10px;gap:6px}.market-rules-section .ruleGroup .ruleGroup{background:#e0ecf7;border-color:#b8cee6}.market-rules-section .rule{background:#f1f6fc;border:1px solid #c9dcef;border-radius:6px;padding:6px 8px;gap:6px}.market-rule-body{display:flex;align-items:center;gap:6px;flex:1}.chart-rules-toggle{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.chart-rules-toggle input[type=checkbox]{margin:0;cursor:pointer}.rule-enable-checkbox{margin:0;cursor:pointer;flex-shrink:0}.market-rules-section .rule.rule-disabled{opacity:.45}.market-rules-section .rule.rule-disabled .market-rule-summary{font-style:italic;text-decoration:line-through}.market-rules-section .ruleGroup.rule-group-disabled{opacity:.5}.market-rules-section .ruleGroup.rule-group-disabled>.ruleGroup-body{opacity:1}.market-rule-summary{flex:1;padding:4px 8px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.market-rule-icon-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:4px 6px;cursor:pointer;color:var(--text);display:flex;align-items:center;justify-content:center}.market-rule-icon-btn:hover{background:var(--surface)}.rule-definition{padding:8px 12px 200px 20px}.signal-subplot{margin-top:2px;border:1px solid var(--border);border-radius:4px;overflow:hidden}.signal-subplot-header{display:flex;align-items:center;justify-content:space-between;padding:2px 8px;background:#f5f5f5;cursor:pointer;font-size:12px;font-weight:600;color:var(--text)}.signal-subplot-toggle{font-size:11px;color:var(--text-muted)}.signal-subplot-plot{position:relative}.signal-subplot-canvas{width:100%;height:100px;display:block;touch-action:none}.rule-mask-overlay{position:absolute;left:0;width:100%;pointer-events:none;overflow:hidden}.rule-mask-overlay>div{position:absolute;top:0;height:100%;backdrop-filter:grayscale(100%) brightness(.65);-webkit-backdrop-filter:grayscale(100%) brightness(.65)}.signal-collapsed{display:flex;align-items:center;justify-content:space-between;padding:2px 8px;background:#f5f5f5;cursor:pointer;font-size:12px;border:1px solid var(--border);border-radius:4px;margin-top:2px}.signal-collapsed .signal-subplot-name{font-weight:600;color:var(--text)}.market-signals-actions{display:flex;gap:8px;padding:4px 0}.market-signals-actions .btn-refresh,.market-rules-section .btn-refresh{color:#222;font-weight:600;background:var(--accent-light);border-color:var(--accent)}.no-spinner::-webkit-outer-spin-button,.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinner{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.signal-error{color:#c0392b;font-size:13px;padding:8px 12px;background:#fdeaea;border:1px solid #f5c2c2;border-radius:4px;margin-bottom:8px}.signal-hint{margin-top:6px;font-size:12px;color:var(--text-muted);font-style:italic}.signal-edit-icon{cursor:pointer;color:var(--text-muted);margin-left:auto;flex-shrink:0}.signal-delete-icon{cursor:pointer;color:var(--text-muted);margin-left:6px;flex-shrink:0}.signal-delete-icon:hover{color:#c44}.heatmap-view-bar{margin-left:auto;display:flex;align-items:center;gap:4px}.heatmap-empty{display:flex;align-items:center;justify-content:center;height:120px;background:#fafafa;border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:14px;font-style:italic}.heatmap-day-nav{background:transparent;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;padding:0}.heatmap-day-nav:not(:disabled):hover{background:#f3f0f5;color:var(--text)}.heatmap-day-nav:disabled{opacity:.35;cursor:not-allowed}.view-bar{display:flex;align-items:center;gap:4px}.view-bar-dropdown{position:relative}.view-bar-select{font-size:14px;font-family:inherit;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);max-width:160px;min-width:100px;cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;overflow:hidden}.view-bar-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-bar-select:disabled{opacity:.5;cursor:not-allowed}.view-bar-caret{font-size:10px;color:var(--text-muted)}.view-bar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.view-bar-menu{position:absolute;top:100%;left:0;margin-top:2px;min-width:140px;max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:101;padding:4px 0}.view-bar-menu-item{padding:6px 12px;font-size:14px;cursor:pointer;user-select:none;-webkit-user-select:none}.view-bar-menu-item:hover{background:#f3f0f5}.view-bar-menu-item--active{background:#eef0f8;font-weight:600}.view-bar-menu-item--context{background:#ffe8a8;outline:1px solid #d4a017;outline-offset:-1px}.view-bar-input{font-size:14px;font-family:inherit;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);width:140px}.view-bar-btn{font-size:13px;font-family:inherit;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);cursor:pointer}.view-bar-btn:disabled{opacity:.5;cursor:not-allowed}.view-bar-btn:not(:disabled):hover{background:#f3f0f5}.signal-subplot-name{cursor:pointer}.signal-subplot-toggle{cursor:pointer;margin-left:4px;color:var(--text-muted)}.dataset-query-builder{font-family:var(--sans)}.dataset-query-builder .ruleGroup{background:#cfdff1;border:1px solid #a6c2e0;border-radius:8px;padding:12px;gap:8px}.dataset-query-builder .ruleGroup .ruleGroup{background:#e0ecf7;border-color:#b8cee6}.dataset-query-builder .ruleGroup-header{gap:8px;margin-bottom:4px}.dataset-query-builder .rule{gap:8px;padding:8px 10px;background:#f1f6fc;border:1px solid #c9dcef;border-radius:6px}.dataset-query-builder select,.dataset-query-builder .rule-value select{font-size:16px;font-family:inherit;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);outline:none}.dataset-query-builder select:focus{border-color:var(--accent)}.dataset-query-builder button{font-size:13px;padding:6px 14px;border-radius:6px;font-weight:600}.dataset-query-builder .ruleGroup-addRule,.dataset-query-builder .ruleGroup-addGroup{background:var(--accent-light);color:var(--text)}.dataset-query-builder .ruleGroup-remove,.dataset-query-builder .rule-remove{background:none;color:var(--text-muted);padding:6px 10px;font-size:16px;min-width:auto}.dataset-query-builder .ruleGroup-remove:hover,.dataset-query-builder .rule-remove:hover{color:var(--error)}.dataset-query-builder .ruleGroup-combinators{font-size:16px;font-family:inherit;padding:8px 12px;border:1px solid var(--accent);border-radius:6px;background:var(--accent-light);color:var(--text);font-weight:600}.dataset-query-builder .rule-operators,.dataset-query-builder .rule-value{display:none}.instance-queue-btn{margin-left:6px;padding:2px 4px;cursor:pointer;opacity:.7;color:#1565c0;flex-shrink:0}.instance-queue-btn:hover{opacity:1}.explorer-instance{cursor:pointer}.preview-spinner{width:32px;height:32px;border:3px solid #333;border-top-color:#5b8abd;border-radius:50%;margin:0 auto;animation:spin .8s linear infinite}.preview-stats-table{width:100%;border-collapse:collapse}.preview-stats-table td{padding:6px 8px;border-bottom:1px solid #333}.preview-stats-table td:first-child{color:#999;white-space:nowrap;width:1%}.preview-stats-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.ds-preview-section{margin:16px 0 8px;padding:0 4px}.ds-preview-btn{font-size:.82rem;padding:5px 14px}.ds-preview-progress{margin-top:6px;color:#888;font-size:.78rem}.ds-preview-error{margin-top:6px;color:#e57373;font-size:.82rem}.ds-preview-result{margin-top:6px;color:#ccc;font-size:.82rem}.ds-preview-sep{margin:0 6px;color:#666}.explorer-instance:hover{background:#ffffff0a}.instance-status-icon{flex-shrink:0}.instance-spinning{animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.instance-status-badge{font-size:.72rem;padding:1px 6px;border-radius:3px;text-transform:uppercase;font-weight:600;margin-right:6px}.instance-status-badge.status-queued{background:#555;color:#ccc}.instance-status-badge.status-loading,.instance-status-badge.status-preprocessing{background:#1a3a5c;color:#4fc3f7}.instance-status-badge.status-training{background:#1a4a1a;color:#66bb6a}.instance-status-badge.status-evaluating,.instance-status-badge.status-saving{background:#3a3a1a;color:#ffb74d}.instance-status-badge.status-complete{background:#1a3a1a;color:#66bb6a}.instance-status-badge.status-failed{background:#3a1a1a;color:#ef5350}.instance-ts{font-size:.72rem;opacity:.5}.instance-detail{padding:0 16px 16px}.instance-status-bar{display:flex;gap:2px;margin:16px 0}.instance-status-step{flex:1;min-width:0;text-align:center;padding:6px 2px;font-size:.65rem;text-transform:uppercase;background:var(--bg-hover);color:var(--text-muted);border-radius:3px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:1.3}.instance-status-step.step-done{background:#a5d6a7;color:#1b5e20;font-weight:600}.instance-status-step.step-active{background:#66bb6a;color:#fff;font-weight:700;border:2px solid #1a1a1a}.instance-status-step.step-failed{background:#ffebee;color:#c62828;font-weight:700;border:2px solid #1a1a1a}.instance-progress{display:flex;align-items:center;gap:10px;margin:8px 0}.instance-progress-bar{flex:1;height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.instance-progress-fill{height:100%;background:#4fc3f7;border-radius:3px;transition:width .3s ease}.instance-progress-detail{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.instance-error{background:var(--bg-hover);border:1px solid var(--border);border-radius:4px;padding:10px 14px;color:#ef5350;font-size:.85rem;margin:12px 0;white-space:pre-wrap}.instance-info-row{display:flex;gap:24px;font-size:.8rem;color:var(--text-muted);margin:8px 0 16px}.instance-sections{display:flex;flex-direction:column;gap:20px}.instance-chart-section h3,.instance-logs-section h3{font-size:.9rem;color:var(--text-muted);margin-bottom:8px}.instance-loss-chart{width:100%;height:300px;background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:4px}.instance-chart-empty{height:200px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:4px}.instance-logs{max-height:400px;overflow-y:auto;background:var(--bg-secondary, var(--bg));border:1px solid var(--border);border-radius:4px}.instance-logs table{width:100%;border-collapse:collapse;font-size:.8rem}.instance-logs th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-muted);position:sticky;top:0;background:var(--bg-secondary, var(--bg))}.instance-logs td{padding:4px 10px;border-bottom:1px solid var(--border)}.instance-logs .log-ts{color:var(--text-muted);white-space:nowrap}.instance-logs .log-phase{color:#5b4a7a;white-space:nowrap}.instance-logs-empty{padding:20px;text-align:center;color:var(--text-muted)}.status-badge{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:3px;text-transform:uppercase;font-weight:600;margin-right:8px}.status-badge.status-complete{background:#1a3a1a;color:#66bb6a}.status-badge.status-failed{background:#3a1a1a;color:#ef5350}.status-badge.status-training{background:#1a4a1a;color:#66bb6a}.status-badge.status-queued{background:#555;color:#ccc}.model-filename{font-size:.8rem;color:#888;margin-left:8px}.cancel-pending{font-size:.8rem;color:#ffb74d}.btn-danger{background:#c62828;color:#fff;border:none;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:13px}.btn-danger:hover{background:#e53935}.btn-primary{padding:6px 14px;font-size:13px}.instance-training-badge{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:600;color:#66bb6a;background:#66bb6a1f;border-radius:10px;cursor:pointer;text-transform:uppercase;flex-shrink:0}.instance-training-failed{color:#e57373;background:#e573731f}.instance-training-interrupted{color:#ffb74d;background:#ffb74d1f}.training-progress-popup{position:fixed;top:60px;left:50%;transform:translate(-50%);width:min(90vw,700px);max-height:80vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0000002e;z-index:300;padding-bottom:8px}.training-progress-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);font-size:14px;font-weight:700;color:#5b4a7a}.training-progress-close{background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1}.training-progress-close:hover{color:var(--text)}.training-progress-popup .instance-detail{padding:0 12px 12px}.training-progress-popup .section-header{position:static;margin:0;padding:8px 0;background:none;border-bottom:none}.train-count-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.train-count-row label{font-size:13px;color:var(--text-muted);font-weight:600}.train-count-input{width:60px;text-align:center;padding:6px 8px;font-size:14px}.train-device-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.train-device-btn{padding:4px 14px;font-size:13px;font-weight:600;background:transparent;color:var(--text-muted);border:none;cursor:pointer}.train-device-btn.active{background:var(--accent, #4fc3f7);color:#111}.model-size-indicator{position:sticky;top:32px;z-index:9;float:right;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;color:#5b4a7a;box-shadow:0 1px 4px #00000014;font-variant-numeric:tabular-nums}.model-size-sep{margin:0 5px;color:var(--text-muted)}
