@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;450;500;600&display=swap');
:root{--bg:#0b0d11;--panel:#101318;--panel2:#14181e;--line:#242931;--muted:#7f899a;--text:#e3e7ee;--red:#ef535d;--green:#35cda3;--gold:#c8a766;--font:'DM Sans',system-ui,sans-serif;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px var(--font)}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer;background:none;border:0;white-space:nowrap}button:hover{background:#202630;color:#fff}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:3px}button{transition:background .15s,color .15s}a{color:inherit}img{display:block}h1,h2,h3,p{margin:0}.app-header{height:72px;display:flex;align-items:center;padding:0 28px;border-bottom:1px solid var(--line);gap:65px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:2px}.brand img{width:40px;height:40px;border-radius:50%;object-fit:contain}.brand-sub{display:block;font-size:9px;color:var(--muted);letter-spacing:1.2px;margin-top:4px}.main-nav{display:flex;gap:26px;height:100%;align-items:stretch}.main-nav button{position:relative;color:var(--muted);font-size:13px;padding:0 4px}.main-nav .nav-active{color:var(--text)}.nav-active:after{content:'';position:absolute;bottom:0;height:2px;background:var(--red);left:0;right:0}.header-end{margin-left:auto;display:flex;align-items:center;gap:20px}.prototype{font:10px var(--mono);letter-spacing:1.2px;color:var(--muted)}.avatar{width:32px;height:32px;border-radius:50%;background:#24202a;color:#eea8ae;font:11px var(--mono);border:1px solid #4a323a}.icon-button{min-width:30px;min-height:30px;border-radius:5px;font-size:18px;color:var(--muted)}.count{font:10px var(--mono);background:#252a32;color:#aab2c2;padding:2px 5px;border-radius:4px;margin-left:5px}.workspace-heading{display:flex;align-items:center;justify-content:space-between;padding:27px 28px 23px;gap:18px}.eyebrow{font:9px var(--mono);letter-spacing:1.5px;color:var(--muted)}.eyebrow span{color:#3e4551;margin:0 8px}h1{font-weight:500;font-size:25px;letter-spacing:-.8px;margin-top:9px}.red-dot{color:var(--red)}.workspace-actions{display:flex;gap:10px;align-items:center}.workspace-actions>span{font-size:11px;color:var(--muted);margin-right:14px}.button{min-height:35px;padding:8px 13px;border:1px solid #343a43;border-radius:5px;font-size:12px}.button.red{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}.button.red:hover{background:#d83b47}.market-strip{display:grid;grid-template-columns:repeat(3,1fr);margin:0 28px 20px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.ticker{display:flex;padding:16px 20px;align-items:center;gap:13px;text-align:left;background:#101318;position:relative;min-width:0}.ticker+.ticker{border-left:1px solid var(--line)}.coin-icon{height:31px;width:31px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;font-size:17px;background:#32281c;color:#ecae53}.coin-icon.AAPL{background:#252b35;color:#c9d2e0}.coin-icon.EURUSD{background:#202c3a;color:#83aedb}.ticker-name{font-size:12px;font-weight:600}.ticker-desc{display:block;color:var(--muted);font-size:10px;margin-top:4px}.ticker-price{font:13px var(--mono);margin-left:auto;text-align:right}.ticker-change{display:block;font:10px var(--mono);margin-top:5px}.positive{color:var(--green)}.negative{color:var(--red)}.spark{width:80px;height:30px;margin:0 3px 0 18px;flex-shrink:0}.terminal{margin:0 28px;border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:minmax(0,1fr) 288px;overflow:hidden;background:var(--panel)}.chart-workspace{min-width:0;display:flex;flex-direction:column}.chart-toolbar{min-height:49px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 12px;gap:9px}.symbol-switch{display:flex;align-items:center;gap:8px;padding:7px 2px;font-size:12px}.search-icon{font-size:22px;color:var(--muted);line-height:1}.shortcut{border:1px solid #353b45;padding:1px 5px;border-radius:3px;font:10px var(--mono);margin-left:6px;color:#667083}.divider{width:1px;height:19px;background:var(--line);margin:0 2px}.timeframes{display:flex;gap:2px}.timeframes button{font:11px var(--mono);border-radius:4px;padding:7px}.selected{color:var(--red)!important;background:#ed535b14!important}.tool-button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;min-height:32px;padding:5px 7px;border-radius:4px;color:#a1aaba}.tool-button>span:first-child{font-size:16px}.toolbar-end{display:flex;margin-left:auto;align-items:center}.chart-body{display:flex;min-height:464px;flex:1}.draw-tools{width:43px;flex-shrink:0;border-right:1px solid var(--line);padding:12px 5px;display:flex;align-items:center;flex-direction:column;gap:10px}.draw-tools button{width:31px;height:31px;font-size:21px;color:#8591a3;border-radius:4px}.draw-tools .active{color:var(--red);background:#ed535b14}.draw-separator{height:1px;background:var(--line);width:23px;margin:4px 0}.draw-bottom{margin-top:auto;opacity:.45;padding-top:25px}.draw-bottom img{width:20px}.charts{display:grid;flex:1;min-width:0;grid-template-columns:1fr;grid-auto-rows:minmax(230px,1fr)}.charts[data-layout="2"],.charts[data-layout="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.charts[data-layout="8"]{grid-template-columns:repeat(4,minmax(0,1fr));min-height:530px}.chart-tile{position:relative;min-width:0;min-height:230px;border:1px solid transparent;display:flex;flex-direction:column;overflow:hidden}.chart-tile.active-tile{border-color:#46404a}.charts[data-layout="1"] .chart-tile{border-color:transparent}.chart-title{padding:17px 17px 5px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;flex-wrap:wrap}.chart-title .exchange{color:var(--muted);font-size:10px}.chart-title .snapshot-pill{font:8px var(--mono);letter-spacing:.4px;padding:3px 5px;border:1px solid #41404a;color:#b7a487;border-radius:3px;margin-left:auto}.chart-ohlc{padding:2px 17px;font:9px var(--mono);display:flex;gap:9px;color:var(--muted);flex-wrap:wrap;min-height:20px}.chart-ohlc b{font-weight:400;color:#b6c0cd}.chart-legend{padding:4px 17px;font:9px var(--mono);display:flex;gap:12px;min-height:22px}.canvas-wrap{position:relative;flex:1;min-height:160px}.canvas-wrap canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:pan-y}.chart-watermark{pointer-events:none;position:absolute;bottom:38px;left:18px;font-size:11px;font-weight:700;letter-spacing:1px;color:#4c535f;opacity:.65}.chart-footer{border-top:1px solid var(--line);display:flex;align-items:center;min-height:38px;padding:0 14px;gap:10px;color:var(--muted);font:10px var(--mono)}.range-buttons{display:flex;gap:4px}.range-buttons button{padding:5px 7px;border-radius:3px;font-size:10px}.range-note{font:9px var(--font);color:#626e80}.footer-right{margin-left:auto;display:flex;align-items:center;gap:13px}.footer-right button{font:10px var(--mono);padding:5px}.right-panel{border-left:1px solid var(--line);background:#111419}.panel-heading{padding:15px 17px 10px;display:flex;align-items:center;justify-content:space-between}h2{font-size:13px;font-weight:600}.watchlist-tabs{padding:0 16px 12px;display:flex;gap:8px}.watchlist-tabs button{font-size:10px;padding:6px 9px;border-radius:4px;color:var(--muted)}.watchlist-tabs span{margin-left:3px;color:var(--gold)}.watchlist-columns{padding:0 18px 9px;display:flex;justify-content:space-between;color:#626e80;font:8px var(--mono);letter-spacing:1px}.watch-row{display:flex;align-items:center;min-height:53px;padding:9px 13px 9px 17px;border-left:2px solid transparent;gap:10px;cursor:pointer}.watch-row.current{background:#1e1c23;border-left-color:var(--red)}.watch-row:hover{background:#20242b}.watch-row .coin-icon{width:26px;height:26px;font-size:14px}.watch-symbol{flex:1;text-align:left;padding:0}.watch-symbol strong{font-size:11px}.watch-symbol small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.watch-price{text-align:right;font:11px var(--mono)}.watch-price small{display:block;font-size:9px;margin-top:4px}.favorite-button{font-size:13px;color:#59616e;padding:3px}.favorite-button.starred{color:var(--gold)}.watchlist-hint{display:flex;align-items:center;gap:7px;padding:13px 18px 17px;font-size:9px;color:var(--muted);border-bottom:1px solid var(--line)}.tiny-dot{height:5px;width:5px;border-radius:50%;background:var(--gold)}.instrument-detail{padding:19px 18px 16px;border-bottom:1px solid var(--line)}.detail-top{display:flex;gap:10px;align-items:center}.detail-top h3{font-size:12px;font-weight:500}.detail-top small{font-size:9px;color:var(--muted)}.detail-price{font:27px var(--mono);letter-spacing:-1px;margin-top:15px}.detail-price span{font:11px var(--mono);color:var(--muted);margin-left:7px;letter-spacing:0}.detail-change{font:10px var(--mono);margin:7px 0 17px}.detail-stats{display:grid;grid-template-columns:1fr 1fr;gap:13px}.detail-stats dt{font-size:9px;color:var(--muted);margin-bottom:5px}.detail-stats dd{margin:0;font:11px var(--mono)}.technical-section{padding:17px 18px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h3{font-size:11px;font-weight:500}.section-title>span{font:9px var(--mono);color:var(--muted)}.technical-row{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:10px;color:var(--muted)}.technical-row b{font:10px var(--mono);color:var(--text)}.signal-track{display:flex;gap:4px;margin:16px 0 7px}.signal-track i{height:4px;flex:1;background:#2a3038;border-radius:2px}.signal-track i.on{background:var(--red)}.source-card{margin:0 15px 16px;padding:13px 0 0;border-top:1px solid var(--line);display:flex;gap:9px;color:var(--muted)}.source-card strong{font-size:10px;font-weight:500;color:#b5bfcd}.source-card p{font-size:9px;margin:5px 0}.text-button{padding:3px 0;font-size:10px;color:#a6aebe}.source-icon{font-size:18px}.bottom-panel{margin:18px 28px 0;border:1px solid var(--line);border-radius:7px;background:var(--panel);overflow:hidden}.bottom-tabs{display:flex;min-height:43px;border-bottom:1px solid var(--line);padding:0 18px;gap:23px;align-items:stretch}.bottom-tabs>button{font-size:11px;color:var(--muted);padding:0 2px;position:relative}.bottom-tabs .selected{background:transparent!important;color:var(--text)!important}.bottom-tabs .selected:after{content:'';position:absolute;bottom:0;left:0;right:0;background:var(--red);height:2px}.bottom-spacer{flex:1}.local-badge{align-self:center;font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.overview-table{width:100%;border-collapse:collapse;font-size:11px}.overview-table th{font:8px var(--mono);letter-spacing:1px;color:var(--muted);text-align:right;padding:12px 20px;font-weight:400}.overview-table td{text-align:right;padding:10px 20px;border-top:1px solid #1b2027;font:11px var(--mono)}.overview-table th:first-child,.overview-table td:first-child{text-align:left}.overview-table td:first-child button{font:11px var(--font);padding:0;display:flex;gap:10px;align-items:center}.table-symbol{font-weight:600}.table-name{color:var(--muted);font-size:10px}.table-source{font:9px var(--font);color:var(--muted)}.status-bar{display:flex;justify-content:space-between;padding:14px 28px;font:9px var(--mono);color:#707c8e;gap:10px}.status-bar>div{display:flex;align-items:center;gap:9px}.status-dot{width:5px;height:5px;background:var(--gold);border-radius:50%}.status-divider{color:#394351}dialog{border:1px solid #3a414d;border-radius:12px;background:#14181f;color:var(--text);width:min(510px,calc(100vw - 30px));padding:24px;box-shadow:0 25px 120px #000a}dialog::backdrop{background:#05080cb8;backdrop-filter:blur(5px)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.modal-header h2{font-size:21px;margin-top:8px;letter-spacing:-.5px}.modal-copy{color:#a2adbd;line-height:1.8;font-size:12px}.modal-copy p+p{margin-top:12px}.modal-copy strong{color:#e0e6ef}.modal-copy code{color:var(--gold);font:11px var(--mono)}.input{display:block;width:100%;padding:11px 12px;background:#0d1117;color:var(--text);border:1px solid #363e4a;border-radius:5px;min-height:41px}.field-label{display:block;color:#a4afbf;font-size:11px;margin:17px 0 8px}.modal-option{display:flex;align-items:center;padding:14px 10px;border-bottom:1px solid #292f38;gap:12px;width:100%;text-align:left}.modal-option span:nth-child(2){flex:1}.modal-option small{color:var(--muted);display:block;margin-top:4px;font-size:10px}.modal-option input{accent-color:var(--red);width:16px;height:16px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.layout-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.layout-option{border:1px solid #353e4a;border-radius:5px;padding:17px 5px;min-height:95px;display:flex;align-items:center;flex-direction:column;gap:15px}.layout-preview{display:grid;gap:3px;width:44px;height:30px;grid-template-columns:repeat(2,1fr)}.layout-preview i{border:1px solid #8190a5;background:#252d38;border-radius:1px}.layout-preview.one{grid-template-columns:1fr}.replay-bar{border-top:1px solid #523035;background:#25191e;display:flex;align-items:center;gap:12px;padding:8px 15px}.replay-bar[hidden]{display:none}.replay-badge{font:9px var(--mono);color:var(--red);white-space:nowrap}.replay-bar input{min-width:30px;flex:1;accent-color:var(--red)}#replay-date{font:9px var(--mono);color:var(--muted)}#toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,20px);max-width:90%;background:#27312f;color:#c7f5df;border:1px solid #415d50;padding:12px 18px;border-radius:7px;opacity:0;pointer-events:none;transition:.2s;z-index:100;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}.empty-state{padding:23px;display:flex;gap:18px;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.empty-state strong{color:var(--text);display:block;font-weight:500;margin-bottom:5px}.notes-area{padding:15px 20px}.notes-area textarea{width:100%;min-height:90px;resize:vertical;background:#0d1117;color:var(--text);border:1px solid #303947;border-radius:5px;padding:12px;font:12px var(--font)}.notes-caption{font-size:10px;color:var(--muted);margin-top:7px}.alert-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 8px;border-bottom:1px solid var(--line)}.alert-item strong{font:11px var(--mono)}.alert-item small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.alert-state{font:9px var(--mono);color:var(--gold)}.modal-message{padding:18px 0;font-size:12px;color:var(--muted)}.check-row{display:flex;gap:10px;align-items:center;font-size:12px;padding:12px 0}.check-row input{accent-color:var(--red)}.error{color:#ff8993;font-size:11px;margin-top:9px}.charts[data-layout="8"] .chart-title{padding:10px 9px 4px;font-size:10px}.charts[data-layout="8"] .chart-ohlc{display:none}.charts[data-layout="8"] .chart-legend{padding:3px 9px;font-size:8px}.charts[data-layout="8"] .exchange{display:none}.charts[data-layout="8"] .snapshot-pill{font-size:6px}.snapshot-warning{color:var(--gold);font-size:11px;line-height:1.6;margin:10px 0}.disabled-text{color:var(--muted)}@media(min-width:1600px){.chart-body{min-height:560px}.terminal{grid-template-columns:minmax(0,1fr) 320px}.workspace-heading{padding-top:32px}}@media(max-width:1150px){.app-header{gap:35px}.workspace-actions>span{display:none}.spark{display:none}.terminal{grid-template-columns:minmax(0,1fr) 250px}.chart-toolbar{gap:3px;padding:0 7px}.tool-label{display:none}.shortcut{display:none}.charts[data-layout="8"]{grid-template-columns:repeat(2,minmax(0,1fr));min-height:900px}.ticker{padding:15px}.main-nav{gap:19px}.chart-title .exchange{display:none}}@media(max-width:850px){.terminal{grid-template-columns:1fr}.right-panel{display:none}.workspace-heading h1{font-size:22px}.workspace-heading{align-items:flex-start}.header-end{gap:10px}.prototype{display:none}.table-source,.table-name{display:none}.workspace-actions .button{padding:8px}.ticker-price{font-size:11px}.ticker{gap:8px;padding:12px}.coin-icon{width:26px;height:26px}.ticker-desc{font-size:9px}.chart-body{min-height:470px}.main-nav{gap:13px}}@media(max-width:560px){.app-header{padding:0 14px;height:61px;gap:18px}.brand{font-size:12px;letter-spacing:1.5px;gap:8px}.brand img{width:30px;height:30px}.brand-sub{font-size:7px;letter-spacing:4px}.main-nav{gap:8px;margin-left:auto}.main-nav button{font-size:10px}.main-nav button:first-child{display:none}.header-end{margin-left:0}.header-end .icon-button{display:none}.avatar{width:27px;height:27px;font-size:9px}.workspace-heading{padding:20px 14px 17px;display:block}.workspace-heading h1{font-size:23px}.workspace-actions{margin-top:15px;justify-content:flex-start}.workspace-actions .button{min-height:35px;font-size:11px}.eyebrow{font-size:8px}.market-strip{margin:0 14px 15px;grid-template-columns:1fr}.ticker{padding:10px 13px}.ticker+.ticker{border-left:0;border-top:1px solid var(--line)}.ticker-desc{display:inline;margin-left:7px}.ticker-price{display:flex;align-items:center;gap:12px}.ticker-change{margin:0;width:61px}.terminal{margin:0 10px;border-radius:5px}.chart-toolbar{flex-wrap:wrap;padding:7px;gap:3px;min-height:76px}.symbol-switch{font-size:11px}.chart-toolbar .divider{display:none}.timeframes button{font-size:10px;padding:7px}.tool-button{font-size:10px}.toolbar-end{margin-left:auto}.tool-label{display:inline;font-size:10px}.draw-tools{width:32px;padding:8px 1px;gap:9px}.draw-tools button{width:28px;height:34px;font-size:19px}.chart-body{min-height:430px}.chart-title{padding-left:10px;padding-right:9px;font-size:10px}.chart-ohlc{padding-left:10px;font-size:8px;gap:6px}.chart-legend{padding-left:10px;font-size:8px}.chart-footer{padding:0 5px;gap:3px}.range-note{display:none}.range-buttons{gap:0}.range-buttons button{padding:7px 5px;font-size:9px}.footer-right{gap:5px}.footer-right button{font-size:9px}.footer-right>span{display:none}.bottom-panel{margin:14px 10px 0}.bottom-tabs{padding:0 12px;gap:18px}.bottom-tabs>button{font-size:10px}.local-badge{display:none}.overview-table th{padding:10px 9px;font-size:7px}.overview-table td{padding:11px 9px;font-size:9px}.overview-table th:nth-child(4),.overview-table td:nth-child(4),.overview-table th:nth-child(5),.overview-table td:nth-child(5){display:none}.overview-table td:first-child button{font-size:10px}.status-bar{padding:12px 14px;font-size:8px}.status-bar>div:last-child>span:first-child,.status-bar>div:last-child>.status-divider{display:none}.charts[data-layout="2"],.charts[data-layout="4"],.charts[data-layout="8"]{grid-template-columns:1fr}.charts:not([data-layout="1"]){grid-auto-rows:300px}.charts[data-layout="8"]{min-height:2400px}.replay-bar{gap:5px;padding:7px}.replay-badge{font-size:7px}#replay-date{display:none}.modal-header h2{font-size:19px}.empty-state{padding:17px;flex-wrap:wrap;justify-content:flex-start}.table-name{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.snapshot-pill[data-feed="STREAM"]{color:#35cda3;border-color:#35cda357;background:#35cda310}.snapshot-pill[data-feed="OFFLINE"],.snapshot-pill[data-feed="SNAPSHOT"]{color:#ef8991;border-color:#ef535d50}.snapshot-pill[data-feed="CLOSED"]{color:#9ba8ba;border-color:#45515f}.source-card p{line-height:1.7;overflow-wrap:anywhere}
/* Search grows independently from the dialog; exchange-qualified names stay legible. */
#symbol-results{max-height:48vh;overflow:auto;margin-top:12px}
#symbol-results .modal-option{width:100%;text-align:left}
.watch-symbol strong{overflow-wrap:anywhere;font-size:11px}
.watch-symbol small{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chart-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.market-strip{overflow-x:auto}
/* Workspace controls and persistent alert history. */
.watch-controls{display:flex;align-items:center;gap:6px;padding:9px 12px;border-bottom:1px solid var(--border)}
.compact-input{padding:6px 8px;font-size:11px;min-width:0}
.inline-form{display:flex;gap:8px}.inline-form .input{flex:1;min-width:0}.inline-form .button{white-space:nowrap}
.section-subtitle{font-size:12px;color:var(--muted);margin:22px 0 10px;text-transform:uppercase;letter-spacing:1px}
.alert-dashboard{padding:16px 20px}.event-history{max-height:250px;overflow:auto}.management-list{margin-top:16px}
.alert-item{gap:10px;flex-wrap:wrap}.alert-item>div:first-child{min-width:160px;flex:1}.alert-item small{line-height:1.6}
#history-status{max-width:190px;white-space:normal;font-size:10px}.chart-footer{flex-wrap:wrap;gap:8px;min-height:36px;height:auto;padding-block:7px}
.draw-tools{overflow-y:auto;max-height:750px;flex-shrink:0}.canvas-wrap canvas{touch-action:none}
#modal .input[type=color]{padding:3px;height:36px}.study-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.watchlist-hint{line-height:1.5}.source-card p{overflow-wrap:anywhere}
@media(max-width:700px){#history-status{display:none}.inline-form{flex-wrap:wrap}.alert-item{font-size:11px}.draw-tools{max-height:600px}.study-config-grid{grid-template-columns:1fr}.chart-toolbar{flex-wrap:wrap}}

/* Keep an expanding symbol catalog from pushing charts below the fold. */
.market-strip{display:flex;overflow-x:auto}.market-strip .ticker{flex:1 0 300px}.ticker+.ticker{border-top:0;border-left:1px solid var(--line)}

.market-strip .ticker{flex:0 0 360px}.market-strip .spark{display:none}

.indicator-catalog{max-height:48vh;overflow-y:auto;margin-top:14px}.indicator-row[hidden]{display:none}.indicator-row label{display:flex;gap:10px;align-items:center;flex:1}.indicator-row small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.indicator-row .button{flex-shrink:0}
