:root{--bg: #000000;--fg: #d4d4d4;--dim: #6a6a6a;--amber: #d4a437;--cyan: #3eb0c4;--pos: #00d68f;--neg: #ff4d4d;--row-hover: #0e0e0e}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--fg)}body{overflow-y:auto;overflow-x:hidden;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;-webkit-font-smoothing:antialiased}button,input{font-family:inherit;font-size:inherit;color:inherit;background:transparent;border:none;outline:none;padding:0}button{cursor:pointer}input:focus{background:#050505}.setup{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.setup-box{width:420px;display:flex;flex-direction:column;gap:14px}.setup-logo{display:block;width:192px;height:192px;margin:0 auto 8px;image-rendering:-webkit-optimize-contrast}.setup-title{color:var(--amber);letter-spacing:2px;font-weight:600;text-align:center}.setup-sub{color:var(--dim);text-align:center}.setup-form{display:flex;gap:8px}.setup-input{flex:1;padding:6px 8px;background:#050505;color:var(--fg)}.setup-input::placeholder{color:var(--dim)}.setup-button{padding:6px 14px;color:var(--amber)}.setup-button:hover{background:#0e0e0e}.setup-error{color:var(--neg)}.setup-warn{color:var(--dim);font-size:12px;line-height:1.5;margin-top:8px}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.hdr{display:flex;align-items:center;gap:24px;padding:10px 16px;flex-wrap:wrap}.hdr-left,.hdr-right{display:flex;align-items:center;gap:12px}.hdr-windows{display:flex;gap:0;margin-left:auto}.hdr-title{color:var(--amber);letter-spacing:2px;font-weight:600}.pill{font-size:12px;letter-spacing:.5px;padding:0}.pill-live{color:var(--pos)}.pill-connecting{color:var(--amber)}.pill-error{color:var(--neg)}.pill-amber{color:var(--amber)}.hdr-range{display:inline-flex;align-items:center;gap:6px;margin-left:12px;padding-left:12px;border-left:1px solid #1a1a1a;font-size:11px;letter-spacing:.5px}.hdr-range-label{color:var(--dim);text-transform:uppercase}.hdr-range-value{color:var(--amber);font-variant-numeric:tabular-nums}.hdr-range-clear{color:var(--dim);font-size:14px;line-height:1;padding:0 4px}.hdr-range-clear:hover{color:var(--neg)}.win-btn:disabled{opacity:.4;cursor:not-allowed}.pill-dim{color:var(--dim)}.win-btn{padding:4px 10px;color:var(--dim);letter-spacing:.5px;border-bottom:2px solid transparent}.win-btn:hover{color:var(--fg)}.win-btn-active{color:var(--amber);border-bottom-color:var(--amber)}.search{position:relative;display:flex;align-items:center}.add-input{width:160px;padding:4px 8px;background:#050505;text-transform:uppercase;letter-spacing:1px}.add-input::placeholder{color:var(--dim);text-transform:none;letter-spacing:0}.search-spin{position:absolute;right:8px;color:var(--cyan);font-size:14px;pointer-events:none;letter-spacing:2px}.loading-dots{display:inline-block;color:var(--dim);animation:pulse 1.2s infinite ease-in-out}.cell-num .loading-dots{color:var(--cyan);letter-spacing:2px;font-size:14px;line-height:1}.chart-empty .loading-dots{color:var(--cyan);letter-spacing:4px;font-size:14px}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.search-drop{position:absolute;top:calc(100% + 2px);right:0;min-width:320px;max-width:480px;background:#050505;list-style:none;margin:0;padding:4px 0;z-index:50;max-height:320px;overflow-y:auto}.hit{display:grid;grid-template-columns:64px 1fr auto;align-items:baseline;gap:12px;padding:4px 12px;cursor:pointer;white-space:nowrap}.hit-sel{background:#14110a}.hit-exists{opacity:.45}.hit-tk{color:var(--amber);letter-spacing:1px;font-weight:500}.hit-sel .hit-tk{color:var(--amber)}.hit-nm{color:var(--fg);font-size:12px;overflow:hidden;text-overflow:ellipsis}.hit-meta{color:var(--dim);font-size:11px;letter-spacing:.5px}.key-btn{padding:4px 8px;color:var(--dim);font-size:12px;letter-spacing:1px}.key-btn:hover{color:var(--fg)}.tabs{display:flex;align-items:center;gap:0;padding:6px 16px 0;flex-wrap:wrap}.tab{display:inline-flex;align-items:center;border-bottom:2px solid transparent;margin-right:12px}.tab-name{padding:4px 0;color:var(--dim);letter-spacing:.5px;font-size:12px}.tab:hover .tab-name{color:var(--fg)}.tab-active{border-bottom-color:var(--amber)}.tab-active .tab-name{color:var(--amber)}.tab-rm{visibility:hidden;color:var(--dim);font-size:14px;line-height:1;padding:0 4px;margin-left:2px}.tab:hover .tab-rm{visibility:visible}.tab-rm:hover{color:var(--neg)}.tab-add{padding:4px 8px;color:var(--cyan);font-size:11px;letter-spacing:.5px}.tab-add:hover{color:var(--fg)}.tab-add-form{display:inline-flex}.tab-add-input{background:#050505;color:var(--fg);padding:3px 6px;font-size:12px;width:130px;letter-spacing:.5px}.unified-grid{flex:0 0 auto;padding:8px 16px;padding-bottom:calc(24px + env(safe-area-inset-bottom,24px))}.unified-grid .react-grid-layout{position:relative}.unified-grid .react-grid-item{overflow:hidden}.unified-grid .react-grid-item.tile-group>.react-resizable-handle{opacity:.55;background-image:none}.unified-grid .react-grid-item.tile-group:hover>.react-resizable-handle{opacity:1}.unified-grid .react-grid-item.tile-group>.react-resizable-handle:after{right:3px;bottom:3px;width:7px;height:7px;border-color:var(--dim)}.unified-grid .react-grid-item.tile-group:hover>.react-resizable-handle:after{border-color:var(--cyan)}.unified-grid .react-grid-item.tile-chart>.react-resizable-handle{opacity:1;background-image:none;z-index:5;width:22px;height:22px}.unified-grid .react-grid-item.tile-chart>.react-resizable-handle:after{right:3px;bottom:3px;width:11px;height:11px;border-color:var(--dim);border-right-width:2px;border-bottom-width:2px}.unified-grid .react-grid-item.tile-chart:hover>.react-resizable-handle:after{border-color:var(--amber)}.grp{width:100%;height:100%;overflow:hidden;padding:0;display:flex;flex-direction:column;position:relative}.grp-dragging{opacity:.4}.grp-dragover{outline:1px dashed var(--amber);outline-offset:-2px}.grp-hdr{display:flex;align-items:baseline;gap:12px;padding:0 0 4px;cursor:grab;-webkit-user-select:none;user-select:none}.grp-hdr:active{cursor:grabbing}.grp-handle{color:var(--dim);font-size:14px;letter-spacing:-2px;line-height:1}.grp-name{color:var(--amber);font-weight:600;letter-spacing:1.5px;font-size:13px}.grp-name-editable{cursor:pointer;border-bottom:1px dotted #3a2e0e}.grp-name-editable:hover{border-bottom-color:var(--amber)}.grp-name-input{background:#050505;font-family:inherit;padding:1px 4px;width:180px;cursor:text}.grp-count{color:var(--dim);font-size:11px}.grp-edit-toggle{margin-left:auto;color:var(--dim);font-size:11px;letter-spacing:.5px;padding:2px 6px}.grp-edit-toggle:hover{color:var(--fg)}.grp-edit-toggle-active{color:var(--cyan)}.grp-menu{position:relative;display:inline-flex;align-items:center;margin-left:auto}.grp-menu-trigger{color:var(--dim);font-size:14px;line-height:1;padding:0 6px;letter-spacing:1px}.grp-menu-trigger:hover,.grp-menu-trigger[aria-expanded=true]{color:var(--amber)}.grp-menu-pop{position:absolute;top:calc(100% + 2px);right:0;z-index:20;background:#050505;border:1px solid #1a1a1a;display:flex;flex-direction:column;min-width:140px;padding:2px 0}.grp-menu-item{text-align:left;background:transparent;color:var(--fg);font-family:inherit;font-size:11px;letter-spacing:.5px;padding:4px 10px;cursor:pointer;white-space:nowrap}.grp-menu-item:hover{background:var(--row-hover);color:var(--amber)}.grp-menu-item-danger:hover{color:var(--neg)}.grp-empty{color:var(--dim);font-size:12px;padding:8px 12px}.grp-body{flex:1 1 auto;overflow:hidden;min-height:0}.grp-cols{display:flex;flex-direction:row;align-items:flex-start;height:100%;overflow-x:auto}.grp-col{flex:0 0 auto;display:flex;flex-direction:column;min-width:110px}.grp-splitter{flex:0 0 5px;margin:0 4px;cursor:col-resize;background:#1a1a1a;position:relative}.grp-splitter:before{content:"";position:absolute;top:0;bottom:0;left:-3px;right:-3px}.grp-splitter:hover{background:var(--cyan)}.tk{display:flex;align-items:center;gap:8px;height:26px;padding:0 8px;break-inside:avoid;cursor:pointer;white-space:nowrap}.tk-head{display:flex;align-items:center;gap:8px;height:22px;padding:0 8px;color:var(--dim);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:default;-webkit-user-select:none;user-select:none;white-space:nowrap}.tk-head .tk-sym{flex:1 1 auto;color:var(--dim);letter-spacing:1px;overflow:hidden;text-overflow:ellipsis}.tk-head .tk-move,.tk-head .tk-vol{color:var(--dim);font-size:10px;font-variant-numeric:normal}.tk-rm-spacer{flex:0 0 auto;width:18px}.tk-head-cell{background:transparent;border:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap}.tk-head-cell:hover{color:var(--fg)}.tk-head .tk-head-active,.tk-head .tk-head-active:hover{color:var(--amber)}.tk:hover{background:var(--row-hover)}.tk-selected{background:#14110a}.tk-selected .tk-sym{color:var(--amber)}.tk-sym{flex:1 1 auto;color:var(--fg);letter-spacing:1px;overflow:hidden;text-overflow:ellipsis}.tk-err{color:var(--neg);margin-left:4px}.tk-move{flex:0 0 auto;font-variant-numeric:tabular-nums;text-align:right}.tk-vol{flex:0 0 auto;font-variant-numeric:tabular-nums;text-align:right;font-size:11px;min-width:48px}.tk-vol-low{color:var(--dim)}.tk-vol-normal{color:var(--fg)}.tk-vol-high{color:var(--amber)}.tk-vol-extreme{color:var(--pos);font-weight:600}.tk-pos{color:var(--pos)}.tk-neg{color:var(--neg)}.tk-dim{color:var(--dim)}.tk-rm{visibility:hidden;color:var(--dim);font-size:14px;line-height:1;padding:2px 4px}.tk:hover .tk-rm{visibility:visible}.tk-rm:hover{color:var(--neg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;z-index:200;display:flex;align-items:center;justify-content:center}.modal{background:#000;border:1px solid #1a1a1a;padding:14px 16px;min-width:280px;max-width:360px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;color:#c8c8c8}.modal-msg{line-height:1.4;margin-bottom:14px}.modal-emph{color:var(--amber)}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-btn{background:transparent;border:1px solid #1a1a1a;color:#c8c8c8;padding:4px 12px;font-family:inherit;font-size:11px;cursor:pointer;text-transform:lowercase}.modal-btn:hover{background:var(--row-hover);border-color:#2a2a2a}.modal-btn:focus-visible{outline:1px solid var(--amber);outline-offset:1px}.modal-btn-danger{color:var(--neg);border-color:#ff4d4d40}.modal-btn-danger:hover{background:#ff4d4d14;border-color:#ff4d4d80}.grp-add{padding:0}.grp-import-mode .grp-add{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.grp-add-row{display:flex;align-items:center;gap:6px}.grp-add-cancel{color:var(--dim);font-size:14px;line-height:1;padding:4px 6px}.grp-add-cancel:hover{color:var(--neg)}.grp-import{display:flex;flex-direction:column;gap:6px;max-width:520px;flex:1 1 auto;min-height:0}.grp-import-input{background:#050505;color:var(--fg);font-family:inherit;font-size:12px;letter-spacing:.5px;padding:6px 8px;resize:none;flex:1 1 auto;min-height:64px}.grp-import-input::placeholder{color:var(--dim);white-space:pre-line}.grp-import-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;flex:0 0 auto}.grp-import-stats{color:var(--dim)}.grp-import-actions{display:flex;gap:12px;align-items:center}.grp-import-submit{color:var(--cyan);letter-spacing:.5px;padding:4px 0}.grp-import-submit:hover:not(:disabled){color:var(--fg)}.grp-import-submit:disabled{color:var(--dim);cursor:not-allowed}.grp-add-btn{color:var(--cyan);font-size:12px;letter-spacing:.5px;padding:4px 8px}.grp-add-btn:hover{color:var(--fg)}.hdr-toggle{color:var(--dim);font-size:12px;letter-spacing:.5px;padding:4px 8px}.hdr-toggle:hover{color:var(--fg)}.hdr-toggle-on,.hdr-toggle-on:hover{color:var(--amber)}.lvl-wrap{position:relative;display:inline-block}.lvl-btn{font-variant-numeric:tabular-nums;min-width:44px;text-align:center}.lvl-popover{position:absolute;top:calc(100% + 4px);right:0;z-index:100;background:#000;padding:8px 0;font-family:var(--font);font-size:11px;border:1px solid #1a1a1a;min-width:220px}.lvl-popover-title{color:var(--dim);font-size:10px;text-transform:uppercase;letter-spacing:.8px;padding:0 12px 4px}.lvl-row{display:flex;align-items:center;gap:8px;padding:4px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.lvl-row:hover{background:var(--row-hover, #0e0e0e)}.lvl-row input[type=checkbox]{accent-color:var(--amber);width:12px;height:12px;cursor:pointer;margin:0}.lvl-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.4}.lvl-row input[type=checkbox]:disabled+.lvl-id,.lvl-row input[type=checkbox]:disabled~.lvl-full{color:var(--dim);opacity:.5}.lvl-id{display:inline-block;width:32px;color:var(--amber);font-weight:500}.lvl-full{color:var(--fg, #c8c8c8);flex:1}.lvl-row-master .lvl-label{color:var(--amber);font-weight:600;text-transform:uppercase;letter-spacing:.6px;font-size:10px}.lvl-divider{height:1px;background:#1a1a1a;margin:4px 12px}.hdr-guest{font-family:var(--font);font-size:10px;letter-spacing:1px;color:var(--bg);background:var(--amber);padding:2px 6px;align-self:center;text-transform:uppercase}.tbl-wrap{flex:1;overflow:auto;padding:4px 16px 24px}.tbl{width:100%;max-width:1000px;border-collapse:collapse;table-layout:fixed}.col-ticker{width:50%;min-width:90px}.col-num{width:40%;min-width:80px}.col-rm{width:36px}.th{text-align:left;padding:6px 12px;font-weight:500;letter-spacing:1px;color:var(--cyan);-webkit-user-select:none;user-select:none}.th-ticker{color:var(--amber)}.th-num{text-align:right}.th-sortable{cursor:pointer}.th-sortable:hover{color:var(--fg)}.sort-ind{display:inline-block;width:1ch;color:var(--dim);margin-left:4px}.row{height:26px;cursor:pointer}.row:hover{background:var(--row-hover)}.row-selected{background:#14110a}.row-selected .cell-ticker{color:var(--amber)}.row-selected:hover{background:#1a160d}.row:hover .rm-btn{visibility:visible}.cell-ticker{padding:0 12px;letter-spacing:1px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-err{color:var(--neg)}.cell-num{padding:0 12px;text-align:right;font-variant-numeric:tabular-nums}.cell-pos{color:var(--pos)}.cell-neg{color:var(--neg)}.cell-dim{color:var(--dim)}.cell-rm{padding:0 6px;text-align:center}.rm-btn{visibility:hidden;color:var(--dim);font-size:16px;line-height:1;padding:2px 6px}.rm-btn:hover{color:var(--neg)}.empty{padding:24px 12px;text-align:center;color:var(--dim)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:#1a1a1a}.chart{width:100%;height:100%;padding:0;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0}.chart-hdr{display:flex;align-items:baseline;gap:16px;font-size:12px;letter-spacing:.5px;cursor:grab;-webkit-user-select:none;user-select:none;min-width:0;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}.chart-hdr:active{cursor:grabbing}.chart-sym{color:var(--amber);font-weight:600;letter-spacing:1.5px;font-size:14px}.chart-sym-editable{cursor:pointer;border-bottom:1px dotted #3a2e0e}.chart-sym-editable:hover{border-bottom-color:var(--amber)}.chart-sym-input{background:#050505;color:var(--amber);font-weight:600;letter-spacing:1.5px;font-size:14px;font-family:inherit;padding:2px 4px;width:90px;text-transform:uppercase}.chart-last{color:var(--fg);font-variant-numeric:tabular-nums}.chart-move{font-variant-numeric:tabular-nums}.chart-meta{color:var(--dim);font-size:11px}.chart-earnings-link{color:var(--dim);font-size:11px;letter-spacing:1px;text-decoration:none;cursor:pointer}.chart-earnings-link:hover{color:var(--fg)}.chart-tf-wrap{display:inline-block;cursor:pointer}.chart-tf-wrap:focus{outline:none}.chart-tf-wrap:focus-visible .chart-tf{text-shadow:0 0 8px rgba(212,164,55,.6)}.chart-tf{color:var(--amber);font-variant-numeric:tabular-nums;font-weight:600;font-size:12px;letter-spacing:.5px;min-width:32px;display:inline-block}.chart-tf-hint{z-index:9999;background:#050505;border:1px solid var(--dim);padding:10px 14px;font-size:11px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.3px;white-space:nowrap;display:flex;flex-direction:column;gap:4px;min-width:320px;color:var(--fg)}.chart-tf-hint-row{display:flex;gap:12px;align-items:baseline}.chart-tf-hint-title{color:var(--amber);text-transform:uppercase;letter-spacing:1.5px;font-size:10px;font-weight:600;border-bottom:1px solid #1a1a1a;padding-bottom:6px;margin-bottom:4px}.chart-tf-hint-key{color:var(--cyan);font-weight:600;min-width:130px;flex-shrink:0}.chart-tf-hint-desc{color:var(--fg);flex:1}.chart-tf-typing{color:var(--cyan);text-shadow:0 0 8px rgba(62,176,196,.45)}.chart-tf-error{color:var(--neg);animation:chart-tf-shake .4s}.chart-mode{background:transparent;border:none;padding:0 4px;margin:0;cursor:pointer;font:inherit;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--dim);min-width:28px;text-align:center}.chart-mode:hover{color:var(--fg)}.chart-mode:focus{outline:none}.chart-mode:focus-visible{text-shadow:0 0 8px rgba(212,164,55,.6)}.chart-mode-zoom,.chart-mode-highlight{color:var(--amber)}@keyframes chart-tf-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.chart.chart-active .chart-hdr{border-bottom:1px solid var(--amber);padding-bottom:3px}.chart .chart-hdr{border-bottom:1px solid transparent;padding-bottom:3px}.chart-vol-ratio{display:inline-flex;align-items:baseline;gap:6px;font-size:11px;letter-spacing:.5px;font-variant-numeric:tabular-nums;cursor:help}.chart-vol-ratio .vol-ratio-label{color:var(--dim);text-transform:uppercase;font-size:10px}.chart-vol-ratio .vol-ratio-value{color:var(--fg);font-size:13px;font-weight:500}.chart-vol-ratio .vol-ratio-hint{color:var(--dim);font-size:10px;font-style:italic}.chart-vol-ratio-low .vol-ratio-value{color:var(--dim)}.chart-vol-ratio-normal .vol-ratio-value{color:var(--fg)}.chart-vol-ratio-high .vol-ratio-value{color:var(--amber)}.chart-vol-ratio-extreme .vol-ratio-value{color:var(--pos);font-weight:600}.chart-vol-ratio-loading .vol-ratio-value,.chart-vol-ratio-error .vol-ratio-value{color:var(--dim)}.chart-close{margin-left:auto;color:var(--dim);font-size:18px;line-height:1;padding:0 6px}.chart-close:hover{color:var(--neg)}.chart-plot{position:relative;flex:1 1 auto;min-height:0;width:100%}.chart-svg{width:100%;height:100%;min-height:0;display:block}.chart-svg-selectable{cursor:crosshair;-webkit-user-select:none;user-select:none}.chart-lwc-wrap{position:relative;flex:1 1 auto;min-height:0;min-width:0;height:100%;width:100%;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.chart-lwc-wrap:active{cursor:grabbing}.chart-lwc{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.chart-selection{fill:#d4a43721;stroke:#d4a4378c;stroke-width:1;shape-rendering:crispEdges}.chart-selection-layer{display:none;position:absolute;top:0;bottom:0;z-index:3;pointer-events:none;background:#d4a43721;border:1px solid rgba(212,164,55,.55);box-sizing:border-box;will-change:left,width}.chart-selection-layer.chart-selection-highlight{border-top:none;border-bottom:none}.chart-empty-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:#000;pointer-events:none;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:12px}.chart-history-extending{position:absolute;left:6px;top:6px;z-index:3;pointer-events:none;width:10px;height:10px}.chart-history-spinner{display:block;width:10px;height:10px;border:1.5px solid rgba(62,176,196,.25);border-top-color:var(--cyan);border-radius:50%;animation:chart-history-spin .7s linear infinite}@keyframes chart-history-spin{to{transform:rotate(360deg)}}.chart-hover-info{display:inline-flex;gap:8px;align-items:baseline;margin-left:auto;font-size:11px;color:var(--fg);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;flex-shrink:1}.chart-hover-info .chart-hover-time{color:var(--dim);font-size:10px}.chart-hover-info .chart-hover-k{color:var(--dim);margin-right:2px}.chart-empty{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:12px;letter-spacing:1px}.chart-placeholder-body{text-transform:uppercase}.chart-grid{stroke:#1a1a1a;stroke-width:1;shape-rendering:crispEdges}.chart-axis-text{fill:var(--dim);font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px}.chart-axis-x{font-size:10px}.chart-day-sep{stroke:#a04a4a;stroke-width:1;stroke-dasharray:3 3;stroke-opacity:.7;shape-rendering:crispEdges}.chart-day-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em}.chart-band{shape-rendering:crispEdges}.chart-band-rth{fill:#1e202f}.chart-band-pre{fill:#252e3f}.chart-band-post{fill:#343331}.chart-band-overnight{fill:#253340}.chart-band-label{font-size:9px;letter-spacing:.08em;fill:#6b7484;opacity:.7}.chart-up .chart-wick,.chart-wick-up{stroke:var(--pos);stroke-width:1;fill:none;shape-rendering:crispEdges}.chart-up .chart-body,.chart-body-up{fill:var(--pos);shape-rendering:crispEdges}.chart-down .chart-wick,.chart-wick-down{stroke:var(--neg);stroke-width:1;fill:none;shape-rendering:crispEdges}.chart-down .chart-body,.chart-body-down{fill:var(--neg);shape-rendering:crispEdges}.chart-vol-pos{fill:var(--pos);fill-opacity:.4}.chart-vol-neg{fill:var(--neg);fill-opacity:.4}@media (max-width: 600px){.hdr{gap:8px 12px;padding:8px 12px}.hdr-left{flex:1 0 100%}.hdr-windows{margin-left:0;flex-wrap:wrap;gap:0}.hdr-right{flex:1 0 100%;gap:8px}.search{flex:1}.add-input{width:100%}.search-drop{left:0;right:0;min-width:0;max-width:none}.tabs{padding:6px 12px 0}.tbl-wrap{padding:4px 12px 24px}.chart-hdr{flex-wrap:wrap;gap:8px;font-size:11px}.chart-meta{flex:1 0 100%}.unified-grid{padding-left:12px;padding-right:12px}}.earnings-view{display:flex;flex-direction:column;height:100vh;overflow:hidden}.earnings-topbar{display:flex;align-items:center;gap:16px;padding:8px 14px;background:#050505;flex:0 0 auto}.earnings-title{color:var(--amber);letter-spacing:2px;font-size:13px}.earnings-back{background:transparent;color:var(--cyan);cursor:pointer;padding:2px 6px;font-size:12px}.earnings-back:hover{color:#fff}.earnings-table{flex:1 1 auto;overflow:auto;padding:0 14px 24px}.earnings-filters{position:sticky;top:0;z-index:2;background:var(--bg);display:flex;align-items:center;gap:18px;padding:10px 0;font-size:12px;color:var(--dim)}.earnings-filters label{display:inline-flex;align-items:center;gap:4px;color:var(--fg)}.earnings-filters input[type=number]{background:#0a0a0a;color:var(--fg);padding:2px 4px;font-family:inherit}.earnings-daynav{display:inline-flex;align-items:center;gap:6px}.earnings-daynav .efocus{padding:3px 8px}.earnings-daynav .earnings-daynav-arrow{color:var(--amber);font-weight:700;font-size:14px}.earnings-daynav .earnings-daynav-arrow:hover{color:var(--amber);filter:brightness(1.3)}.earnings-daynav-label{color:var(--fg);letter-spacing:1px;min-width:110px;text-align:center}.earnings-lastsync{color:var(--dim);margin-left:auto}.earnings-error{color:var(--neg);padding:8px 0;font-size:12px}.earnings-partial{display:flex;align-items:center;gap:8px;color:var(--amber);padding:6px 0;font-size:12px;letter-spacing:1px}.earnings-spinner{display:inline-block;flex:0 0 auto;width:10px;height:10px;border:1.5px solid rgba(212,164,55,.25);border-top-color:var(--amber);border-radius:50%;animation:chart-history-spin .7s linear infinite;vertical-align:-1px}.earnings-empty .earnings-spinner{margin-right:8px}.earnings-empty{color:var(--dim);padding:16px 0;font-size:12px;text-align:center}.earnings-table table{width:100%;border-collapse:collapse;font-size:12px}.earnings-table thead th{position:sticky;top:40px;z-index:1;background:#050505;text-align:left;color:var(--dim);font-weight:400;padding:5px 10px;cursor:pointer;white-space:nowrap;letter-spacing:1px}.earnings-table thead th:hover{color:var(--fg)}.earnings-table tbody td{padding:4px 10px;color:var(--fg);white-space:nowrap}.earnings-row{cursor:pointer}.earnings-row:hover{background:var(--row-hover)}.earnings-ticker{color:var(--cyan)}.earnings-detail{flex:1 1 auto;overflow:auto;padding:0 14px 40px}.earnings-detail-hdr{position:sticky;top:0;z-index:2;background:var(--bg);display:flex;align-items:center;gap:18px;padding:10px 0}.earnings-detail-ticker{color:var(--cyan);font-size:16px;letter-spacing:1px}.earnings-focus-ctrl{display:inline-flex;gap:4px}.earnings-count-ctrl{display:inline-flex;align-items:center;gap:3px;color:var(--fg);font-size:12px}.earnings-count-label{color:var(--dim);margin-right:2px}.earnings-count-input{width:30px;text-align:center;padding:3px 0;background:#0a0a0a;color:var(--fg);font-family:inherit;font-size:12px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.earnings-count-input::-webkit-outer-spin-button,.earnings-count-input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.earnings-count-step{min-width:22px;padding:3px 0;color:var(--amber)}.efocus{background:#0a0a0a;color:var(--dim);cursor:pointer;padding:3px 12px;font-family:inherit;font-size:12px}.efocus:hover{color:var(--fg)}.efocus-on{background:var(--amber);color:#000}.earnings-charts-list{display:grid;gap:18px 14px}.earnings-chart-block{display:flex;flex-direction:column;gap:2px}.earnings-chart-label{color:var(--dim);font-size:11px;letter-spacing:1px;padding-left:2px}.earnings-chart-unavailable{min-height:260px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 16px;background:#050505;color:var(--dim);font-size:12px;letter-spacing:1px;text-align:center}.earnings-chart-unavailable>div:first-child{color:var(--amber)}.earnings-chart-skeleton-body{min-height:260px;display:flex;align-items:center;justify-content:center;gap:8px;background:#050505;color:var(--dim);font-size:12px;letter-spacing:1px}.earnings-chart-skeleton .earnings-chart-label{color:var(--amber)}.egap{margin-left:8px}.egap-pos{color:var(--pos)}.egap-neg{color:var(--neg)}.efocus-pos.efocus-on{background:var(--pos);color:#000}.efocus-neg.efocus-on{background:var(--neg);color:#000}.earnings-chart-wrap{display:flex;flex-direction:column;gap:1px}.earnings-hover{display:flex;gap:14px;align-items:baseline;font-size:11px;color:var(--fg);min-height:15px;padding-left:2px}.earnings-hover-time{color:var(--dim)}.earnings-hover-hint{color:#3a3a3a}.ehk{color:var(--dim);margin-right:3px}.earnings-chart-canvas{cursor:crosshair}.esel-rect{position:absolute;top:0;bottom:0;z-index:3;background:#d4a4371f;border-left:1px solid rgba(212,164,55,.5);border-right:1px solid rgba(212,164,55,.5);pointer-events:none}.esel-badge{position:absolute;top:4px;z-index:4;transform:translate(-50%);padding:1px 8px;font-size:12px;pointer-events:none;background:#14110a}.esel-pos{color:var(--pos)}.esel-neg{color:var(--neg)}
