:root,.theme-dark{--bg: #0e1013;--panel: #16191e;--line: #2a2e33;--hover: #22262c;--text: #e6e8eb;--muted: #8b919a;--active: #4c8dff;--up: #2ebd85;--down: #f6465d;--mark: #ff6d00;--cross: #5c6570;--chip: #2a3038;--buy: #4184f3;--sell: #ff7043;--shadow: 0 8px 24px rgba(0, 0, 0, .45)}.theme-light{--bg: #f6f7f9;--panel: #ffffff;--line: #e2e5ea;--hover: #eef0f3;--text: #1c1e21;--muted: #6b7280;--active: #387ed1;--up: #0f9d6e;--down: #e53935;--mark: #ff6d00;--cross: #9aa3ad;--chip: #2a3038;--buy: #4184f3;--sell: #ff7043;--shadow: 0 8px 24px rgba(0, 0, 0, .12)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;line-height:1.4;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;background:transparent;border:0}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}#root{height:100%}.app{--rail: 44px;--market: 300px;--side: 360px;height:100%;display:grid;grid-template-rows:40px minmax(0,1fr);grid-template-columns:var(--rail) var(--market) minmax(0,1fr) minmax(280px,var(--side))}.app.chat-min{--side: 36px;grid-template-columns:var(--rail) var(--market) minmax(0,1fr) var(--side)}.app.market-min{--market: 32px}.app.rail-min{--rail: 28px}@media(max-width:1100px){.app{--side: 280px;--market: 240px}.app.chat-min{--side: 36px}#exchange{display:none}}.top{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;gap:12px;padding:0 10px;border-bottom:1px solid var(--line);background:var(--bg);min-width:0;z-index:6}.brand{display:flex;align-items:center;gap:6px;flex:0 0 auto}.brand img{width:18px;height:18px;display:block;border-radius:4px}.brand-name{font-size:13px;font-weight:600;letter-spacing:-.02em}.brand-name span{color:var(--up)}.ticker{display:flex;align-items:baseline;gap:8px;min-width:0}.symbol{font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted);font-size:11px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:2px}.icon-btn{height:28px;padding:0 8px;border-radius:4px;color:var(--muted);font-size:12px;font-weight:500}.icon-btn:hover,.pane-toggle:hover,.rail button:hover,.toolbar button:hover,.tabs button:hover,.pine-head button:hover,.chat-head button:hover{background:var(--hover);color:var(--text)}.rail{grid-column:1;grid-row:2;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding-top:4px;min-height:0;background:var(--bg)}.rail button{width:36px;height:32px;border-radius:4px;color:var(--muted)}.rail button.active{color:var(--text);background:var(--hover)}.app.rail-min .rail button:not(#rail-min){display:none}#rail-min{width:24px;height:24px}.drawer{grid-column:2;grid-row:2;border-right:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.market-body{display:flex;flex-direction:column;min-height:0;flex:1}.market-label{padding:8px 10px 2px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}#side-panel .market-label{position:sticky;top:0;z-index:1;background:var(--panel);margin:-8px -10px 6px;padding:8px 10px}#watchlist{max-height:36%;overflow:auto}.chain-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}#side-panel{flex:1;overflow:auto;padding:8px 10px;min-height:0}.app.market-min .market-body,.app.market-min .drawer .pane-title{display:none}.app.market-min .drawer .pane-bar{justify-content:center;padding:0;border-bottom:0}.drawer button.row{display:block;width:100%;text-align:left;padding:6px 10px;font-size:12px}.watch-row{display:flex;align-items:center}.watch-row .row{flex:1}.row-x{width:28px;color:var(--muted)}.stage{grid-column:3;grid-row:2;position:relative;z-index:1;min-height:0;min-width:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(168px,34%);background:var(--bg)}.stage.toolbar-min{grid-template-rows:32px minmax(0,1fr) minmax(168px,34%)}.stage.bottom-min{grid-template-rows:auto minmax(0,1fr) 32px}.stage.toolbar-min.bottom-min{grid-template-rows:32px minmax(0,1fr) 32px}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-height:36px;padding:4px 6px;border-bottom:1px solid var(--line);background:var(--bg);min-width:0;position:relative;z-index:4}.toolbar button{height:26px;padding:0 7px;border-radius:4px;color:var(--muted);font-size:12px;font-weight:500;white-space:nowrap;flex:0 0 auto}.toolbar button.active{color:var(--text);background:var(--hover)}.toolbar-label{display:none;margin-right:6px}.stage.toolbar-min .toolbar>button:not(#toolbar-min),.stage.toolbar-min .toolbar .search,.stage.toolbar-min .toolbar .menu{display:none}.stage.toolbar-min .toolbar-label{display:inline}#toolbar-min{margin-left:auto}.search{position:relative;flex:1 1 120px;min-width:96px;max-width:180px}.search input,.pine-head input,.dialog input,.dialog select{width:100%;height:26px;border:1px solid var(--line);border-radius:4px;padding:0 8px;font-size:12px;background:var(--panel)}.chart-search .results{left:0;right:auto;top:30px}.results,.menu,.dialog{position:absolute;z-index:7;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}.results{width:320px;max-height:320px;overflow:auto}.results button,.menu button{display:block;width:100%;text-align:left;padding:7px 10px;font-size:12px}.menu button.on{color:var(--text)}.menu{top:32px;min-width:140px}#indicators{min-width:190px;max-height:min(70vh,520px);overflow:auto}.menu-label{padding:8px 10px 2px;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}input[type=datetime-local],input[type=date],input[type=time]{color-scheme:dark}.theme-light input[type=datetime-local],.theme-light input[type=date],.theme-light input[type=time]{color-scheme:light}.charts{height:100%;min-height:0;min-width:0;display:grid;gap:1px;background:var(--line)}.slot{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--bg);position:relative}.slot.off{display:none}.charts[data-layout="1"] .slot{grid-template-rows:minmax(0,1fr)}.charts[data-layout="1"] .slot-bar{display:none}.slot.active{outline:1px solid var(--active);outline-offset:-1px;z-index:1}.charts[data-layout="1"] .slot.active{outline:none}.slot-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;height:22px;padding:0 8px;font-size:11px;font-weight:600}.slot-note{color:var(--muted);font-weight:400}.slot-chart,#chart{position:relative;min-height:0;min-width:0;width:100%;height:100%;overflow:hidden}#layouts{right:28px;left:auto;top:34px;display:grid;grid-template-columns:repeat(4,40px);gap:6px;padding:8px;min-width:0}#layouts[hidden]{display:none}#layouts button{width:40px;height:30px;padding:4px}#layouts button.on{outline:1px solid var(--active)}.layout-icon{display:grid;width:100%;height:100%;gap:1px}.layout-icon i{background:currentColor;opacity:.8;display:block;min-width:0;min-height:0}#side-panel button.leg{display:flex;align-items:baseline;justify-content:space-between;gap:6px;width:100%;padding:2px 0;font-size:12px;font-variant-numeric:tabular-nums}#side-panel button[data-right=CE]{color:var(--up)}#side-panel button[data-right=PE]{color:var(--down);flex-direction:row-reverse}.money{font-size:9px;font-weight:700;letter-spacing:.04em}.money.atm{color:var(--mark)}.money.itm{color:var(--up)}.money.otm{color:var(--muted)}#side-panel tr.atm td{background:color-mix(in srgb,var(--mark) 12%,transparent)}.line-label{position:absolute;z-index:5;width:180px;border:1px solid var(--active);border-radius:4px;padding:4px 8px;font-size:12px;color:var(--text);background:var(--panel);box-shadow:var(--shadow)}.bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--line);min-height:0}.bottom.tester-min:not(.pine-min){grid-template-columns:220px minmax(0,1fr)}.bottom.pine-min:not(.tester-min){grid-template-columns:minmax(0,1fr) 92px}.bottom.tester-min.pine-min{grid-template-columns:minmax(0,1fr) 92px}.pane{position:relative;min-height:0;min-width:0;display:flex;flex-direction:column}.pane+.pane{border-left:1px solid var(--line)}.pane-bar{display:flex;align-items:center;height:32px;padding:0 4px 0 8px;min-width:0}.pane-title{font-size:12px;font-weight:600;white-space:nowrap}.pane-toggle{width:24px;height:24px;margin-left:auto;border-radius:4px;color:var(--muted);font-size:12px;line-height:1;flex:0 0 auto}.tabs{display:flex;gap:0;min-width:0;overflow-x:auto}.pane-bar .tabs{flex:1}.tabs button{flex:0 0 auto;height:32px;padding:0 10px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}.tabs button.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--mark)}.bottom.tester-min #tester,.bottom.pine-min .pine-body{display:none}.pane-body{overflow:auto;padding:8px 10px;font-size:12px;min-height:0}.metrics{display:flex;gap:16px;flex-wrap:wrap}.metrics b{display:block;font-size:13px;font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--muted);font-weight:500}.pine-body{min-height:0;flex:1;display:flex;flex-direction:column}.pine-head{display:flex;gap:4px;align-items:center;padding:6px 8px;flex-wrap:nowrap;overflow-x:auto}.pine-head input{flex:1 1 120px;width:auto;min-width:80px}.pine-head button{height:26px;padding:0 8px;border-radius:4px;color:var(--muted);font-size:12px;font-weight:500;flex:0 0 auto}#side-panel td:nth-child(3),#side-panel th:nth-child(3){text-align:center;font-weight:600}#pine{flex:1;resize:none;width:100%;border:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;background:var(--bg);min-height:0}.status{font-size:11px;color:var(--muted);padding:0 8px 6px}.chat{grid-column:4;grid-row:2;position:relative;z-index:4;background:var(--bg);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;min-width:0}.chat-head{display:flex;align-items:center;gap:8px;height:32px;padding:0 8px 0 4px;border-bottom:1px solid var(--line)}.chat-head strong{flex:1;font-size:12px;font-weight:600}.chat-head button{height:24px;padding:0 8px;border-radius:4px;color:var(--muted);font-size:12px}.chat.collapsed .transcript,.chat.collapsed .composer,.chat.collapsed #confirm,.chat.collapsed .chat-head strong,.chat.collapsed #chat-new,.chat.collapsed .chat-head{border-bottom:0}.chat.collapsed .transcript,.chat.collapsed .composer,.chat.collapsed #confirm,.chat.collapsed .chat-head strong,.chat.collapsed #chat-new{display:none}.chat.collapsed .chat-head{justify-content:center;padding:0;height:32px}.transcript{flex:1;overflow:auto;padding:12px 12px 8px;display:flex;flex-direction:column;gap:12px;min-height:0}.turn.user{align-self:stretch;background:var(--hover);border-radius:6px;padding:8px 10px;white-space:pre-wrap;line-height:1.5;font-size:12px}.turn.assistant{font-size:12px;line-height:1.55;min-width:0}.assistant-body{min-width:0}.assistant-body p{margin:0 0 8px}.assistant-body p:last-child{margin-bottom:0}.assistant-body h3,.assistant-body h4,.assistant-body h5{margin:10px 0 6px;font-size:12px}.assistant-body ul{margin:0 0 8px;padding-left:18px}.assistant-body li{margin:2px 0}.assistant-body strong{font-weight:600}.assistant-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;background:var(--hover);border-radius:4px;padding:1px 4px}.assistant-body pre{margin:8px 0;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:auto}.assistant-body pre code{background:transparent;padding:0}.tool-row{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;line-height:1.4;padding:2px 0}.tool-row:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--up);flex:0 0 auto}.thinking{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.spin{width:12px;height:12px;border:2px solid color-mix(in srgb,var(--muted) 40%,transparent);border-top-color:var(--active);border-radius:50%;display:inline-block;flex:0 0 auto;animation:spin .7s linear infinite}.slot-chart.is-busy:before,.chain-wrap.is-busy:before,#tester-pane.is-busy:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:color-mix(in srgb,var(--bg) 48%,transparent);pointer-events:auto}.slot-chart.is-busy:after,.chain-wrap.is-busy:after,#tester-pane.is-busy:after,.chart-search.is-busy:after,#pine-status.is-busy:before{content:"";position:absolute;z-index:6;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid color-mix(in srgb,var(--muted) 35%,transparent);border-top-color:var(--active);animation:spin .7s linear infinite;pointer-events:none}.chart-search.is-busy:after{top:6px;left:auto;right:8px;width:14px;height:14px;margin:0}#pine-status.is-busy:before{position:static;display:inline-block;width:10px;height:10px;margin:0 6px 0 0;vertical-align:-1px}@keyframes spin{to{transform:rotate(360deg)}}.turn.assistant.streaming .assistant-body:after{content:"";display:inline-block;width:7px;height:13px;margin-left:2px;background:var(--text);vertical-align:text-bottom;animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.composer{margin:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 8px 6px;display:flex;flex-direction:column;gap:4px}.composer:focus-within{border-color:var(--cross)}.composer textarea{flex:0 0 auto;width:100%;min-height:36px;max-height:140px;padding:2px 4px;line-height:1.45;background:transparent;overflow:auto}.composer-bar{display:flex;justify-content:flex-end}.composer-bar button{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--bg)}.composer-bar button svg{width:14px;height:14px}.composer-bar button:disabled{opacity:.35}.composer-bar button[hidden]{display:none}.confirm{margin:0 8px 8px;padding:8px;border:1px solid var(--line);border-radius:6px;font-size:12px}.replay{position:absolute;left:50%;bottom:calc(34% + 12px);transform:translate(-50%);display:none;gap:6px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px 8px;box-shadow:var(--shadow);z-index:4}.stage.bottom-min .replay{bottom:44px}.replay.open{display:flex}.replay button,.replay select,.replay input{height:26px;border-radius:4px;font-size:12px}.replay .buy,.replay .sell{padding:0 10px;color:#fff;font-weight:600}.replay .buy{background:var(--buy)}.replay .sell{background:var(--sell)}#replay-qty{width:48px;border:1px solid var(--line);text-align:center}.banner{display:none;padding:6px 12px;background:#3a2a12;color:#f3d19c;font-size:12px}.banner.show{display:block}.dialog-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:none;align-items:center;justify-content:center;z-index:8}.dialog-back.open{display:flex}.dialog{position:relative;width:520px;max-width:calc(100vw - 32px);max-height:86vh;overflow:auto;padding:16px}.dialog h2{margin:0 0 12px;font-size:14px;font-weight:600}.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.picker{width:320px}.picker-actions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.dot{width:7px;height:7px;border-radius:50%;background:var(--muted);display:inline-block;margin-left:4px}.dot.on{background:var(--up)}.dot.warn{background:#f3d19c}svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6}
