:root{--bg:#131722;--panel:#1e222d;--border:#2a2e39;--text:#d1d4dc;--muted:#787b86;--up:#26a69a;--down:#ef5350;--accent:#2962ff}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;font:13px/1.4 -apple-system,Segoe UI,Roboto,Noto Sans KR,sans-serif}body{flex-direction:column;height:100dvh;display:flex}#topbar{padding:calc(6px + env(safe-area-inset-top)) 8px 6px;border-bottom:1px solid var(--border);background:var(--bg)}.row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row+.row{margin-top:6px}select,.chip,.seg button{background:var(--panel);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:6px;padding:5px 9px}select{min-width:110px;font-weight:600}.seg{gap:2px;display:flex}.seg button{border-right-width:0;border-radius:0;min-width:36px}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-right-width:1px;border-radius:0 6px 6px 0}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}.seg button.ind.on{background:var(--panel);color:var(--c,var(--text));border-color:var(--c,var(--border));box-shadow:inset 0 -2px 0 var(--c)}.chip input[type=checkbox]{vertical-align:-2px;accent-color:var(--accent);margin:0 2px 0 0}.chip.file{color:var(--muted)}.chip.file input{display:none}#chart{flex:1;min-height:0;position:relative}#status{padding:5px 10px calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--border);font-variant-numeric:tabular-nums;color:var(--muted);align-items:center;gap:12px;display:flex}#price{color:var(--text);font-size:15px;font-weight:700}#price.up{color:var(--up)}#price.down{color:var(--down)}#tradeinfo{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.conn:before{content:"";background:var(--muted);vertical-align:0;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.conn.open:before{background:var(--up)}.conn.closed:before,.conn.error:before{background:var(--down)}.conn.reconnecting:before,.conn.connecting:before,.conn.loading:before{background:#f5c542}.row.tools .seg button{min-width:34px;font-size:14px;line-height:1}.row.tools .seg button[data-tool=alert].on{color:#131722;background:#f5c542;border-color:#f5c542}#chart.tool-active{cursor:crosshair}#alertStatus{color:#f5c542;white-space:nowrap;text-overflow:ellipsis;max-width:45vw;overflow:hidden}#alertPanel{z-index:5;border:1px solid var(--border);background:#1e222df5;border-radius:8px;width:min(320px,100vw - 80px);max-height:calc(100% - 16px);padding:8px;position:absolute;top:8px;right:60px;overflow:auto;box-shadow:0 6px 24px #0006}#alertPanel .hdr{color:var(--muted);justify-content:space-between;gap:8px;margin:4px 0 6px;font-size:12px;display:flex}#alertPanel .push.on{color:var(--up)}#alertPanel .push.off,#alertPanel .push.unsupported{color:#f5c542}#alertPanel ul{margin:0 0 6px;padding:0;list-style:none}#alertPanel li{border-top:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:38px 16px 1fr auto 24px;align-items:center;gap:6px;padding:5px 4px;display:grid}#alertPanel li.done{opacity:.6;grid-template-columns:38px 16px auto 1fr}#alertPanel li.empty{color:var(--muted);font-size:12px;display:block}#alertPanel .sym{font-weight:600}#alertPanel .dir.above{color:var(--up)}#alertPanel .dir.below{color:var(--down)}#alertPanel .note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}#alertPanel button.del{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:14px}#alertPanel button.del:hover{color:var(--down)}#alertPanel .actions{justify-content:flex-end;gap:6px;display:flex}dialog#settings{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;width:min(360px,92vw);padding:16px 18px}dialog#settings::backdrop{background:#0000008c}dialog#settings h3{margin:0 0 10px;font-size:15px}dialog#settings label{color:var(--muted);margin:8px 0;font-size:12px;display:block}dialog#settings input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;margin-top:4px;padding:7px 9px;display:block}dialog#settings .hint{color:var(--muted);margin:6px 0 0;font-size:11px}dialog#settings menu{justify-content:flex-end;gap:8px;margin:12px 0 0;padding:0;display:flex}dialog#settings button{background:var(--panel);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:6px;padding:6px 12px}dialog#settings button.primary{background:var(--accent);border-color:var(--accent);color:#fff}#alertPanel .setup{color:var(--text);margin:4px 0 8px;font-size:12px;line-height:1.5}#alertPanel code{background:var(--bg);border-radius:3px;padding:1px 4px;font-size:11px}.seg.scroll{scrollbar-width:none;max-width:100%;overflow-x:auto}.seg.scroll::-webkit-scrollbar{display:none}.seg.scroll button{flex:none}.row.tools .seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}#magnetBtn.on{color:#131722!important;background:#f5c542!important;border-color:#f5c542!important}#undoBtn:disabled,#redoBtn:disabled{opacity:.35;cursor:default}#shapeBar{z-index:6;border:1px solid var(--border);background:#1e222df7;border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;max-width:calc(100% - 70px);padding:5px 6px;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 6px 24px #0006}#shapeBar .name{color:var(--muted);padding:0 4px;font-size:12px}#shapeBar button{background:var(--bg);color:var(--text);border:1px solid var(--border);min-width:28px;height:28px;font:inherit;cursor:pointer;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;font-size:13px;display:inline-flex}#shapeBar button.on{border-color:var(--accent);color:#fff;background:var(--accent)}#shapeBar .sw,#shapeBar .grp{gap:3px;display:inline-flex}#shapeBar .swatch{background:var(--c);border:2px solid #0000;border-radius:50%;width:22px;min-width:22px;height:22px;padding:0}#shapeBar .swatch.on{border-color:#fff}#shapeBar button i{background:currentColor;border-radius:1px;width:14px;display:block}#shapeBar .act-del:hover{color:var(--down)}.chip.bot{border-color:#f5c54266}#botPanel{z-index:5;border:1px solid var(--border);background:#1e222df5;border-radius:8px;width:min(420px,100vw - 16px);max-height:55%;padding:8px 10px;font-size:12px;position:absolute;bottom:8px;left:8px;overflow:auto;box-shadow:0 6px 24px #0006}#botPanel .hdr{color:var(--text);justify-content:space-between;gap:8px;margin:0 0 6px;font-weight:600;display:flex}#botPanel .muted{color:var(--muted);font-weight:400}#botPanel .up{color:var(--up)}#botPanel .down{color:var(--down)}#botPanel .strat{margin:8px 0 2px;line-height:1.4;display:block}#botPanel .strat input{accent-color:var(--accent);vertical-align:-1px}#botPanel ul{font-variant-numeric:tabular-nums;margin:2px 0 4px 18px;padding:0;line-height:1.5}#botPanel .setup{color:var(--text);margin:4px 0}#botPanel .hdr{cursor:pointer;-webkit-user-select:none;user-select:none}#botPanel .hdr .caret{color:var(--muted);margin-left:auto}#botPanel.collapsed>:not(.hdr){display:none}#botPanel.collapsed{max-height:none}#botPanel .note{color:var(--muted);margin:0 0 4px;font-size:11px;line-height:1.4}.chip.accent{border-color:var(--accent);color:#fff;background:var(--accent)}.chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chips .ichip{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-left:3px solid var(--c,var(--border));border-radius:6px;align-items:center;gap:4px;padding:3px 4px 3px 8px;font-size:12px;display:inline-flex}.chips .ichip .rm{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 3px;font-size:13px;line-height:1}.chips .ichip .rm:hover{color:var(--down)}dialog#indicatorDialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:min(520px,94vw);max-height:86dvh;padding:0}dialog#indicatorDialog[open]{display:flex}dialog#indicatorDialog::backdrop{background:#0000008c}.dlg-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;display:flex}.dlg-head input{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;flex:1;padding:8px 10px}.dlg-head .x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:16px}#indBody{padding:6px 0 10px;overflow:auto}#indBody h4{color:var(--muted);letter-spacing:.02em;margin:10px 12px 4px;font-size:12px;font-weight:600}#indBody .item{border-top:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:8px 12px;display:grid}#indBody .item .nm{font-weight:600}#indBody .item .ds{color:var(--muted);grid-column:1;font-size:12px}#indBody .item .act{grid-row:1/span 2;gap:6px;display:flex}#indBody .item button{background:var(--bg);color:var(--text);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:6px;padding:5px 10px}#indBody .item button.primary{background:var(--accent);border-color:var(--accent);color:#fff}#indBody .item button.danger:hover{color:var(--down);border-color:var(--down)}#indBody .item.active{border-left:3px solid var(--c,var(--accent))}#indBody .empty{color:var(--muted);padding:8px 12px;font-size:12px}#indBody label.strat{border-top:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:8px;padding:8px 12px;display:flex}#indBody label.strat input{accent-color:var(--accent);margin-top:3px}.chips .ichip.strat{border-left-style:double;border-left-width:4px}#indBody .item .st{color:var(--text);opacity:.85;grid-column:1;font-size:11px}
