:root{--bg: #0f1012;--panel: #151719;--line: #24272c;--line-soft: #1c1f23;--text: #d6d8dc;--muted: #7c8290;--dim: #4b505a;--up: #2ebd85;--down: #f6465d;--accent: #e0b04a;--ema20: #f2c94c;--ema50: #4c9df2;--ema200: #c9c9c9;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 var(--font);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}.app{display:grid;grid-template-rows:38px 1fr;grid-template-columns:300px 1fr;height:100%}.top{grid-column:1 / -1;display:flex;align-items:center;gap:24px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--panel)}.brand{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12px}.top .idx{display:flex;gap:8px;align-items:baseline;font-family:var(--mono);font-size:12px}.top .idx .lbl{color:var(--muted);font-family:var(--font)}.top .spacer{flex:1}.top .updated{color:var(--dim);font-size:12px}.side{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel);min-height:0}.search{margin:8px;padding:6px 8px;background:var(--bg);border:1px solid var(--line);border-radius:3px;outline:none;width:calc(100% - 16px)}.search:focus{border-color:var(--dim)}.search::placeholder{color:var(--dim)}.list-head,.row-main{display:grid;grid-template-columns:minmax(0,1fr) 62px 70px;gap:6px;align-items:center}.list-head{padding:0 10px;grid-template-columns:minmax(0,1fr) 62px 70px 48px}.list-head.fvg,.row-main.fvg{grid-template-columns:minmax(0,1fr) 58px 38px 38px}.list-head.fvg{gap:8px}.list-head.fvg{grid-template-columns:minmax(0,1fr) 58px 38px 38px 48px}.list-head.fvg button{text-align:right}.list-head.fvg button:first-child{text-align:left}.row .num.angka{display:flex;align-items:center;justify-content:flex-end}.row .num.angka b{font-size:13.5px}.row{display:flex;align-items:stretch;border-bottom:1px solid var(--line-soft)}.row-main{flex:1;min-width:0;padding:0 0 0 10px;text-align:left}.list-head{height:24px;white-space:nowrap;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none}.list-head button{color:inherit;text-align:right}.list-head button:first-child{text-align:left}.list-head button.on{color:var(--text)}.list{overflow-y:auto;flex:1}.row{height:38px;font-family:var(--mono);font-size:11.5px;line-height:1.3;position:relative}.row:hover{background:#1b1e22}.row.on{background:#1f2329;box-shadow:inset 2px 0 0 var(--accent)}.row .cell{min-width:0}.row .code{font-weight:600;font-family:var(--font);font-size:12.5px}.row .name{display:block;color:var(--dim);font-family:var(--font);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .num{text-align:right;white-space:nowrap}.row .num .sub{display:block;font-size:10.5px}.row .num b{font-weight:600;font-size:13px}.kosong{padding:24px 14px;color:var(--dim);text-align:center}.wl-pill.sinyal i{color:var(--accent)}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}.wl{display:flex;flex-wrap:wrap;gap:3px;padding:7px 8px 4px;border-bottom:1px solid var(--line-soft)}.wl-pill{padding:3px 8px;border-radius:3px;color:var(--muted);font-size:11.5px;white-space:nowrap}.wl-pill i{font-style:normal;color:var(--dim);font-family:var(--mono);font-size:10.5px}.wl-pill:hover{color:var(--text)}.wl-pill.on{color:var(--text);background:#23272d}.wl-pill.on i{color:var(--muted)}.wl-pill.add{color:var(--dim);padding:3px 7px}.wl-pill.add:hover{color:var(--text)}.wl-input{width:104px;padding:3px 6px;background:var(--bg);border:1px solid var(--accent);border-radius:3px;outline:none;font-size:11.5px}.wl-menu-wrap{position:relative}.wl-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:3px;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;min-width:150px}.wl-menu button{padding:8px 12px;text-align:left;white-space:nowrap;font-size:12px}.wl-menu button:hover{background:#23272d}.wl-menu .danger{color:var(--down)}.info{width:22px;flex:0 0 22px;display:grid;place-items:center;color:var(--dim);font-size:10px;font-weight:700;font-style:italic;font-family:Georgia,serif}.info:before{content:"";position:absolute;width:15px;height:15px;border:1px solid currentColor;border-radius:50%}.info{position:relative}.info:hover,.info.on{color:var(--accent)}.star{width:26px;flex:0 0 26px;color:var(--dim);font-size:13px;line-height:1;display:grid;place-items:center}.star:hover,.star.on{color:var(--accent)}.star-wrap{position:relative;display:flex}.star-wrap .star{width:28px;flex-basis:28px;font-size:15px}.picker{position:fixed;z-index:40;min-width:190px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 24px #00000080;font-family:var(--font);font-size:12px;text-align:left}.picker-head{color:var(--dim);font-size:11px;padding:2px 6px 6px}.picker-row{display:flex;align-items:center;gap:8px;padding:6px;cursor:pointer;border-radius:3px}.picker-row:hover{background:#1b1e22}.picker-row input{accent-color:var(--accent);width:15px;height:15px}.picker-add{padding:7px 6px;color:var(--muted);font-size:11.5px;width:100%;text-align:left}.picker-add:hover{color:var(--text)}.picker-new{width:100%;margin-top:4px;padding:5px 6px;background:var(--bg);border:1px solid var(--accent);border-radius:3px;outline:none;font-size:12px}.detail{position:fixed;z-index:60;overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 12px 40px #0009;font-family:var(--font);text-align:left}.detail-head{display:flex;align-items:baseline;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.detail-head b{font-size:15px}.detail-head span{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tutup{margin-left:auto;color:var(--dim);font-size:13px;padding:0 2px}.tutup:hover{color:var(--text)}.detail-sect{padding:10px 12px;border-bottom:1px solid var(--line-soft)}.detail-sect:last-child{border-bottom:0}.sect-head{display:flex;align-items:baseline;justify-content:space-between;color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.sect-head b{font-family:var(--mono);font-size:16px;color:var(--text);letter-spacing:0}.meter{height:3px;background:#23272d;border-radius:2px;overflow:hidden;margin-bottom:9px}.meter span{display:block;height:100%}.fakta{display:flex;gap:8px;align-items:baseline;padding:2.5px 0;font-size:12px}.fakta i{font-style:normal;width:24px;flex:0 0 24px;font-family:var(--mono);font-size:11px}.fakta i.ya{color:var(--up)}.fakta i.tidak{color:var(--down)}.fakta i.net{color:var(--dim)}.fakta span{color:var(--text)}.tangga{font-family:var(--mono);font-size:12px;margin:2px 0 8px}.anak{display:grid;grid-template-columns:70px 1fr 58px;gap:6px;padding:4px 6px;border-left:2px solid transparent;border-radius:2px}.anak .lbl{font-family:var(--font);font-size:11px;color:var(--muted)}.anak .hrg{text-align:right}.anak .pct{text-align:right;font-size:11px}.anak.tp{border-left-color:var(--up)}.anak.tp .pct{color:var(--up)}.anak.res{border-left-color:var(--accent);background:#e0b04a0f}.anak.res .pct,.anak.res .lbl{color:var(--accent)}.anak.kini{border-left-color:var(--text);background:#1f2329}.anak.kini .hrg{font-weight:600}.anak.sl{border-left-color:var(--down)}.anak.sl .pct{color:var(--down)}.zona-baris{font-size:11.5px;color:var(--muted);padding:0 6px}.zona-baris b{color:var(--text);font-family:var(--mono)}.catatan{margin:8px 6px 0;color:var(--dim);font-size:10.5px;line-height:1.5}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.head{display:flex;align-items:center;gap:18px;height:46px;padding:0 16px;border-bottom:1px solid var(--line)}.head .ticker{display:flex;align-items:center;gap:4px;min-width:0}.sym{display:flex;align-items:baseline;gap:10px;min-width:0;padding:3px 8px;margin-left:-8px;border-radius:3px;text-align:left}.sym:hover{background:#1b1e22}.sym b{font-size:16px;white-space:nowrap}.sym span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.head .quote{font-family:var(--mono);font-size:14px;display:flex;gap:10px;align-items:baseline}.head .ohlc{display:flex;gap:14px;font-family:var(--mono);font-size:11.5px;color:var(--muted)}.head .ohlc i{font-style:normal;color:var(--dim);margin-right:4px}.head .ohlc em{font-style:normal;color:var(--dim);margin-left:4px}.lencana{display:inline-flex;align-items:baseline;gap:3px;padding:2px 7px;margin-left:2px;border-radius:3px;border:1px solid var(--line);font-family:var(--mono);font-size:12.5px;flex-shrink:0}.lencana i{font-style:normal;color:var(--dim)}.lencana:hover{border-color:var(--dim);background:#1b1e22}.head .spacer{flex:1}.toolbar{display:flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-bottom:1px solid var(--line);font-size:11.5px}.toolbar .grp{display:flex;gap:2px;margin-right:14px}.toolbar button{padding:3px 7px;border-radius:3px;color:var(--muted)}.toolbar button:hover{color:var(--text)}.toolbar button.on{color:var(--text);background:#23272d}.toolbar .spacer{flex:1}.toolbar .ema{display:inline-flex;align-items:center;gap:5px}.toolbar .ema .dot{width:8px;height:2px;display:inline-block}.toolbar .ema.off{color:var(--dim)}.toolbar .ema.off .dot{opacity:.25}.toolbar .ema{font-family:var(--mono)}.emas{position:relative}.gear{padding:3px 7px;border-radius:3px;color:var(--muted);margin-right:2px}.gear:hover,.gear.on{color:var(--text);background:#23272d}.ema-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:20;max-width:calc(100vw - 16px);padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 24px #00000080}.ema-panel.kanan{left:auto;right:0}.ema-panel.wide{min-width:268px;max-width:min(300px,calc(100vw - 16px));max-height:70vh;overflow-y:auto}.ema-panel .sect{padding:8px 6px 3px;color:var(--dim);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}.ema-panel .sect:first-child{padding-top:2px}.ema-row.mati{opacity:.4}.ema-panel .ket{margin:0 0 6px;padding:0 6px;color:var(--dim);font-size:10.5px;line-height:1.45}.ema-panel .ket b{color:var(--muted);font-weight:600}.ema-sel{padding:4px 6px;border-radius:3px;background:var(--bg);border:1px solid var(--line);color:var(--text);font-size:12px;outline:none}.ema-sel:focus{border-color:var(--dim)}.ema-num:disabled{cursor:default}.ema-row .lbl{flex:1;color:var(--muted);font-size:11.5px}.ema-row{display:flex;align-items:center;gap:8px;padding:4px 6px;cursor:pointer}.ema-row:hover{background:#1b1e22;border-radius:3px}.ema-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.ema-row .dot{width:12px;height:2px}.swatch{width:26px;height:18px;padding:0;cursor:pointer;background:none;border:1px solid var(--line);border-radius:3px;-webkit-appearance:none;appearance:none}.swatch::-webkit-color-swatch-wrapper{padding:2px}.swatch::-webkit-color-swatch{border:0;border-radius:2px}.swatch::-moz-color-swatch{border:0;border-radius:2px}.swatch:hover{border-color:var(--dim)}.ema-num{width:62px;padding:4px 6px;background:var(--bg);border:1px solid var(--line);border-radius:3px;outline:none;font-family:var(--mono);font-size:12px}.ema-num:focus{border-color:var(--dim)}.refresh{padding:3px 9px;border-radius:3px;color:var(--muted);border:1px solid var(--line)}.refresh:hover:not(:disabled){color:var(--text);border-color:var(--dim)}.refresh:disabled{color:var(--dim);cursor:default}.fresh{color:var(--up);font-size:11px;margin-left:6px;white-space:nowrap}.chart{flex:1;min-height:0;position:relative}.chart>div{position:absolute;inset:0}.empty{flex:1;display:grid;place-items:center;color:var(--dim)}.qs{position:relative;width:200px;max-width:100%}.qs input{width:100%;padding:3px 8px;background:var(--bg);border:1px solid var(--dim);border-radius:3px;outline:none;font-size:16px;font-weight:600}.qs input::placeholder{color:var(--dim);font-weight:600}.qs input:focus{border-color:var(--dim)}.qs input::placeholder{color:var(--dim)}.qs-list{position:absolute;top:calc(100% + 4px);left:0;z-index:10;min-width:260px;max-width:calc(100vw - 24px);margin:0;padding:4px 0;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:3px;box-shadow:0 8px 24px #00000080}.qs-list li{display:flex;gap:10px;align-items:baseline;padding:7px 12px;cursor:pointer;white-space:nowrap}.qs-list li span{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis}.qs-list li.on,.qs-list li:hover{background:#23272d}.back{display:none}@media(max-width:767px){.app{grid-template-columns:1fr;grid-template-rows:44px 1fr;height:100dvh}.top{gap:14px;padding:0 12px}.top .updated{display:none}.side,.main{grid-row:2;grid-column:1}.app.chart-open .side{display:none}.app:not(.chart-open) .main{display:none}.side{border-right:0}.search{margin:10px 12px;padding:9px 10px;width:calc(100% - 24px);font-size:15px}.list-head{padding:0 12px;grid-template-columns:minmax(0,1fr) 78px 78px 66px}.info{width:30px;flex-basis:30px;font-size:12px}.info:before{width:19px;height:19px}.detail{font-size:13px}.row-main{padding-left:12px;grid-template-columns:minmax(0,1fr) 78px 78px}.row{height:48px;font-size:13px}.star{width:38px;flex-basis:38px;font-size:16px}.wl{padding:8px 10px 5px;gap:4px}.wl-pill{padding:5px 10px;font-size:12.5px}.picker{font-size:13px}.picker-new,.wl-input{font-size:16px}.row .code{font-size:14px}.row .name{font-size:11px}.row .num .sub{font-size:11.5px}.back{display:inline-flex;align-items:center;color:var(--muted);font-size:13px;padding:6px 8px 6px 0;margin-right:2px}.head{height:auto;flex-wrap:wrap;gap:4px 12px;padding:8px 12px}.head .ticker{flex:1 1 auto;min-width:0}.qs{flex:1;width:auto}.qs input{padding:6px 8px}.back{flex-shrink:0;white-space:nowrap}.sym{flex:1}.head .ohlc{flex:1 1 100%;gap:4px 10px;flex-wrap:wrap;white-space:nowrap}.toolbar{height:auto;flex-wrap:wrap;padding:4px 8px;row-gap:2px}.toolbar .grp{margin-right:8px}.toolbar button{padding:6px 8px}.toolbar .spacer{display:none}.ema-num{width:76px;font-size:16px}.ema-row{padding:7px 6px}}
