:root{font-family:Arial,sans-serif;color:#202635;background:#fff;font-size:12px;--bg:#fff;--line:#e3e6ed;--text:#202635;--grid:#edf0f3;--blue:#306b9f}*{box-sizing:border-box}body{margin:0;display:flex;height:100vh;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;background:none;border:0;color:inherit}button:hover{background:#eaf1fc;color:#3769db}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4778ff;outline-offset:-2px}.nav{width:230px;flex-shrink:0;background:#30699c;color:#c2d9ed;display:flex;flex-direction:column}.brand{height:43px;display:flex;align-items:center;color:white;font-size:32px;font-weight:700;letter-spacing:3px;padding:0 12px;border-bottom:1px solid #aac7dd}.brandmark{color:#463cff;font-size:43px;line-height:1;text-shadow:3px -3px #a629e0}.brand button{margin-left:auto;font-size:29px;color:white;padding:0}.profile{padding:12px 22px;text-align:center;display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #85a5c6;color:white}.profile small{width:100%;font-size:12px;color:#bfd7e9}.avatar{border-radius:50%;background:#4b59b2;padding:7px 11px}.nav nav{padding:12px 16px;overflow:auto}.nav nav button{display:flex;align-items:center;gap:18px;text-align:left;width:100%;height:45px;padding:0 15px;font-size:17px;border-radius:4px;white-space:nowrap}.nav nav button span{font-size:13px;font-weight:600}.nav button.active{background:#487ea9;color:white}.nav label{display:block;color:#78b1d2;padding:22px 3px 10px;font-size:12px}.navfoot{margin-top:auto;text-align:center;line-height:18px;padding:14px 5px;font-size:10px}.nav.small{width:63px}.nav.small .brand{font-size:0;padding:0 12px}.nav.small .brandmark,.nav.small .profile,.nav.small nav label,.nav.small nav span,.nav.small .navfoot{display:none}.nav.small nav{padding:12px 4px}main{min-width:0;flex:1;display:flex;flex-direction:column}header{height:41px;border-bottom:3px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 9px;flex-shrink:0}header button{height:32px;font-size:19px;white-space:nowrap}header button span{font-size:12px}header select{border:0;background:var(--bg);color:var(--text);width:42px}.search{display:flex;align-items:center;gap:4px}.search>span{font-size:24px}.search input{width:79px;font-weight:700;border:0;background:transparent;color:var(--text);text-transform:uppercase;outline:none}.divider{height:22px;border-left:1px solid var(--line)}.spacer{flex:1}.mock{font-size:9px;letter-spacing:.6px;color:#997129;background:#fff4d8;border:1px solid #f1dfaf;border-radius:3px;padding:4px 6px}.workspace{display:flex;flex:1;min-height:0}.drawtools{width:46px;border-right:3px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:9px;padding-top:12px;flex-shrink:0}.drawtools button{width:34px;height:32px;font-size:24px;font-weight:300}.drawtools .selected{color:#4968ff}.chartpanel{display:flex;flex-direction:column;min-width:0;flex:1}.charthead{padding:7px 8px 0;line-height:22px;font-size:12px;height:90px;flex-shrink:0}.star{background:#eb6672;color:#ffdc66;border-radius:100%;padding:0 2px}.ohlc{margin-left:12px;color:#3c9c8a;font-size:11px}.legend{font-size:11px}.legend div{line-height:20px}.legend .blue{color:#3975ff}.legend .purple{color:#a13abb}.legend .red{color:#f25459}#chartWrap{position:relative;flex:1;min-height:230px;overflow:hidden}canvas{display:block;width:100%;height:100%;cursor:crosshair}.watermark{position:absolute;top:45%;left:38%;font-size:64px;letter-spacing:5px;color:rgba(90,125,160,.045);pointer-events:none}#chartWrap{overflow:visible}#tooltip{display:none;position:absolute;z-index:4;pointer-events:none;background:var(--bg);border:1px solid var(--line);box-shadow:0 3px 12px #0002;padding:9px;line-height:18px;border-radius:4px;font-size:11px}.chartcredit{position:absolute;bottom:31px;left:8px;color:#8d99aa;font-size:9px;pointer-events:none}footer{height:35px;display:flex;align-items:center;border-top:1px solid var(--line);padding:0 8px;gap:8px;white-space:nowrap;font-size:11px}.ranges{display:flex;gap:2px;flex:1}.ranges button{padding:5px 4px}.ranges .on{color:#386dce;background:#edf3ff;border-radius:3px}#clock{color:#526987}#auto{color:#597fff}.watch{width:272px;border-left:1px solid #c7ccd8;display:flex;flex-direction:column;flex-shrink:0}.watchtitle{display:none;padding:10px;font-weight:700}.watchtitle button{float:right}.watchfilter{display:flex;border-bottom:1px solid var(--line);padding:5px;gap:4px}.watchfilter input{width:100%;min-width:0;border:0;background:var(--bg);color:var(--text);font-size:10px;outline:none}.watchfilter select{width:62px;border:0;font-size:10px;background:var(--bg);color:var(--text)}.watchscroll{overflow:auto;flex:1}.watch table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}.watch th{position:sticky;top:0;z-index:1;background:#30699c;color:#fff;height:41px;cursor:pointer}.watch td,.watch th{padding:8px 6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:right}.watch td:first-child,.watch th:first-child{text-align:left}.watch td:first-child{color:#4e59c7}.watch tr{cursor:pointer}.watch tr:nth-child(odd){background:#f8fafc}.watch tr:hover,.watch tr.chosen{background:#e8f0ff}.up{color:#4c9b25}.down{color:#ee5f77}.watchbottom{font-size:9px;padding:8px 5px;border-top:1px solid var(--line);color:#7f8899}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#dda84e;margin-right:3px}.tabs{width:35px;border-left:1px solid var(--line);padding-top:8px}.tabs button{writing-mode:vertical-rl;padding:12px 8px;border:1px solid #d6dbea;border-radius:6px;color:#505ab7;margin-bottom:4px}.tabs button.active{background:#4852b8;color:white}.popover{position:absolute;left:390px;top:42px;z-index:12;background:var(--bg);border:1px solid var(--line);box-shadow:0 6px 24px #0002;padding:18px;border-radius:6px}.popover label{display:block;padding-top:15px}dialog{border:1px solid var(--line);border-radius:10px;box-shadow:0 15px 70px #132e5640;width:510px;max-width:90vw;padding:28px;background:var(--bg);color:var(--text)}dialog::backdrop{background:#14263c50}dialog p{line-height:1.7}dialog .close{position:absolute;right:10px;top:5px;font-size:25px}dialog table{width:100%;border-collapse:collapse}dialog td,dialog th{padding:10px;border-bottom:1px solid var(--line);text-align:left}#toast{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);background:#253e5d;color:white;padding:11px 20px;border-radius:5px;display:none;z-index:30}.dark{--bg:#17222f;--text:#c6d1df;--line:#2c3b4c;--grid:#263545;background:var(--bg);color:var(--text)}.dark .watch tr:nth-child(odd){background:#1a2837}.dark .watch tr:hover,.dark .watch tr.chosen{background:#263a54}.dark .mock{background:#423b25;color:#dfc583}.watch.hidden{display:none}@media(min-width:1600px){.nav{width:260px}.watch{width:310px}.nav nav button{height:48px}.charthead{font-size:14px}}@media(max-width:1100px){.nav{width:65px}.nav .brand{font-size:0}.nav .brandmark,.nav .profile,.nav nav label,.nav nav span,.nav .navfoot{display:none}.nav nav{padding:12px 4px}.watch{width:230px}.ohlc{display:block;margin-left:0}.charthead{height:110px}.ranges button:nth-child(1),.ranges button:nth-child(2),#clock{display:none}.popover{left:180px}}@media(max-width:700px){body{height:100dvh}.nav{display:none}header{gap:3px;padding:0 5px}header #chartStyle,header #reset,header #export{display:none}.mock{font-size:7px;padding:3px}header button span{display:none}.drawtools{width:31px}.drawtools button{width:27px;font-size:20px}.tabs{width:27px}.tabs button{padding:10px 5px}.watch{position:absolute;right:27px;top:41px;bottom:0;width:255px;z-index:8;background:var(--bg);box-shadow:-8px 0 20px #0002;display:none}.watch.mobileopen{display:flex}.charthead{font-size:10px;height:110px}.legend{font-size:9px}.ohlc{font-size:9px}.ranges{gap:0}.ranges button{font-size:10px;padding:5px 3px}.popover{left:45px;right:35px}.watermark{font-size:35px}}

.signalbar{display:flex;align-items:center;flex-shrink:0;gap:22px;min-height:70px;padding:10px 18px;background:var(--bg);border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.signalidentity{display:flex;flex-direction:column;gap:7px;min-width:114px}.signalidentity span{font-size:9px;letter-spacing:.65px;color:#8492a5}.signalidentity strong{font-size:18px;color:#386caa}.signalmetrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));flex:1;gap:12px}.signalmetric{display:flex;flex-direction:column;gap:8px;white-space:nowrap}.signalmetric span{color:#8190a3;font-size:11px}.signalmetric strong{font-size:14px;font-weight:600}.signalaction strong{color:#d43665}.signalflash{animation:signalhighlight 1.4s ease-out}@keyframes signalhighlight{from{background:#e2ecff}to{background:var(--bg)}}@media(max-width:1100px){.signalbar{gap:14px;padding:10px 12px}.signalidentity{min-width:95px}.signalmetrics{gap:8px}.signalmetric strong{font-size:12px}}@media(max-width:800px){.signalbar{align-items:flex-start;gap:12px}.signalidentity{min-width:80px}.signalidentity strong{font-size:15px}.signalidentity span{font-size:8px}.signalmetrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px}.signalmetric{gap:4px}.signalmetric span{font-size:10px}.signalmetric strong{font-size:11px}.signalbar{min-height:115px}.watch{top:156px}}@media(max-width:440px){.signalbar{display:block;padding:8px}.signalidentity{flex-direction:row;align-items:center;margin-bottom:10px;gap:10px}.signalidentity span{font-size:9px}.signalmetrics{gap:10px 5px}.signalmetric strong{font-size:11px}.signalbar{min-height:131px}.watch{top:172px}}@media(prefers-reduced-motion:reduce){.signalflash{animation:none}}


/* Signal summary belongs exclusively to the chart column. */
.chartpanel{container-type:inline-size}.chartpanel>.signalbar{width:100%;max-width:100%;min-width:0;gap:14px;padding:12px;min-height:76px}.signalidentity{min-width:92px}.signalmetrics{min-width:0;gap:10px}.signalmetric{min-width:0}.signalmetric strong{font-size:12px}.watch{width:310px;position:relative}.watch>.tabs{display:flex;align-items:stretch;width:100%;min-height:76px;padding:0 7px;border-left:0;border-bottom:1px solid var(--line);gap:4px;flex-shrink:0}.watch>.tabs button{writing-mode:horizontal-tb;padding:12px 5px;margin:0;border:0;border-radius:0;font-size:11px;color:#75859c;border-bottom:3px solid transparent;white-space:nowrap}.watch>.tabs button:first-child{flex:1;text-align:left}.watch>.tabs button.active{color:#326dab;background:transparent;border-bottom-color:#326dab;font-weight:700}.watchtitle{display:none}.watchfilter{min-height:34px;padding:6px 9px}.watch.hidden{display:flex}.watchscroll{min-height:0}
@container(max-width:820px){.chartpanel>.signalbar{gap:10px}.signalidentity{min-width:80px}.signalidentity strong{font-size:15px}.signalmetrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px}.signalmetric{gap:4px;white-space:normal}.signalmetric span{font-size:10px}.signalmetric strong{font-size:12px;white-space:nowrap}}
@container(max-width:450px){.chartpanel>.signalbar{display:block;padding:10px;min-height:0}.signalidentity{flex-direction:row;align-items:center;margin:0 0 10px;gap:10px}.signalmetrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.signalmetric span{font-size:10px}}
@media(max-width:1100px){.watch{width:290px}.watch>.tabs{padding:0 4px;gap:2px}.watch>.tabs button{padding:10px 4px}}
@media(max-width:700px){body{height:auto;min-height:100dvh;overflow:auto}main{min-width:0}header{position:sticky;top:0;background:var(--bg);z-index:15}.workspace{display:grid;grid-template-columns:31px minmax(0,1fr);flex:none}.chartpanel{height:730px}.drawtools{grid-column:1;grid-row:1}.watch,.watch.mobileopen{display:flex;position:relative;grid-column:1/-1;top:auto;right:auto;bottom:auto;width:100%;height:380px;box-shadow:none;border-top:1px solid var(--line);border-left:0;z-index:auto}.watch>.tabs{min-height:50px}.watch>.tabs button{font-size:12px;padding:12px 9px}.chartpanel>.signalbar{min-height:0}.charthead{height:110px}footer{padding:0 3px;gap:2px}.ranges button{padding:5px 2px}}

.panelheading{min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line);flex-shrink:0}.panelheading h1{font-size:24px;line-height:1.2;font-weight:600;margin:0;color:var(--text)}.panelheading button{font-size:23px}.workspace>.side-tabs{display:flex;flex-direction:column;align-items:center;width:35px;flex-shrink:0;padding:8px 2px;border-left:1px solid var(--line);gap:4px}.workspace>.side-tabs button{writing-mode:vertical-rl;white-space:nowrap;border:1px solid #d6dbea;border-radius:6px;padding:12px 7px;margin:0;font-size:11px;color:#505ab7;background:var(--bg)}.workspace>.side-tabs button.active{background:#4852b8;color:white;border-color:#4852b8}.panelcount{padding:6px 10px;font-size:10px;color:#8190a3;border-bottom:1px solid var(--line)}.filtercontrols{padding:12px 10px;display:grid;gap:10px;border-bottom:1px solid var(--line)}.filtercontrols label{display:grid;gap:5px;font-size:11px;color:#8190a3}.filtercontrols select,.filtercontrols input,.recommendcontrols select{width:100%;padding:7px;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--text);font-size:12px}.recommendcontrols{padding:12px 10px;border-bottom:1px solid var(--line);display:grid;gap:8px;font-size:11px;color:#8190a3}.recommendation{display:block;width:100%;padding:14px 12px;text-align:left;border-bottom:1px solid var(--line);background:var(--bg)}.recrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;font-size:12px}.recrow strong{font-size:15px;color:#4e59c7}.recrow>span:not(.recbadge){color:#8190a3}.recbadge{padding:4px 8px;border-radius:3px;font-size:11px;font-weight:600}.recbadge.buy{color:#268c60;background:#e6f5ed}.recbadge.sell{color:#ce3e5c;background:#fce8ee}.recmeta{font-size:10px;color:#8190a3}.panelempty{padding:20px 12px;color:#8190a3;line-height:1.5}[hidden]{display:none!important}.dark .recbadge.buy{background:#24483c;color:#84dfb9}.dark .recbadge.sell{background:#4c2a37;color:#ff9bb0}@media(max-width:700px){.workspace{grid-template-columns:31px minmax(0,1fr) 35px}.chartpanel{grid-column:2/4;grid-row:1}.watch,.watch.mobileopen{grid-column:1/3;grid-row:2;height:440px}.workspace>.side-tabs{grid-column:3;grid-row:2}.panelheading{min-height:65px}.panelheading h1{font-size:22px}}

.rolelabel{width:100%;font-size:10px;color:#bfd7e9;display:grid;gap:5px}.rolelabel select{padding:5px;border:1px solid #76a0c2;border-radius:4px;background:#2b6090;color:white;max-width:100%}
.chartpanel>.signalbar{display:grid;grid-template-columns:155px minmax(0,1fr);align-items:center;padding:14px 12px;gap:14px;background:linear-gradient(110deg,#f3f7fd,var(--bg) 40%);min-height:91px}.strategyidentity{display:flex;flex-direction:column;gap:9px;border-left:3px solid #4278d5;padding-left:10px;min-width:0}.strategyidentity>span{color:#7c8da6;font-size:10px;font-weight:600;letter-spacing:.7px}.strategyidentity i{font-size:8px;font-style:normal;margin-left:5px;color:#b4832f;background:#fff2d1;padding:3px 4px;border-radius:3px}.strategyidentity strong{font-size:15px;line-height:1.4;color:#326ba5}.signalmetrics{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.signalmetric span{font-size:10px;white-space:nowrap}.signalmetric strong{font-size:12px}.symbolmetric strong{color:#326ba5}.signalaction strong{color:#cf3c61;background:#fbeaf0;border-radius:3px;padding:3px 4px;font-size:10px;align-self:flex-start}.panelheading{min-height:91px}.watch{width:340px}.watch th{font-size:10px;line-height:1.5}.watch td{padding:8px 5px}.watch .statuscell{text-align:center;color:#fff;font-weight:600;font-size:10px;white-space:nowrap}.watch .buystatus{background:#17a665}.watch .holdstatus{background:#448f21}.watch .sellstatus{background:#df4760}.rectable td{font-size:11px;height:42px}.rectable th{height:53px}.recstock{padding:0;color:#4e59c7;font-size:11px}.recside{display:block;font-size:8px;margin-top:3px}.recadd{background:#4cbe58;color:white;border-radius:3px;font-size:22px;line-height:28px;width:30px;height:30px}.recdelete{color:#ed5745;font-size:18px;padding:3px 6px}.recommendcontrols{padding:8px 10px}.recommendcontrols>span{font-size:10px}.dark .chartpanel>.signalbar{background:linear-gradient(110deg,#203248,var(--bg) 55%)}.dark .strategyidentity strong,.dark .symbolmetric strong{color:#8ab5ed}.dark .signalaction strong{color:#ff9bad;background:#4e2c3c}#recommendForm{display:grid;gap:13px}#recommendForm h2{margin:0;font-size:21px}#recommendForm .formnote{font-size:11px;color:#8390a1;margin:0}#recommendForm label{display:grid;gap:7px;font-size:12px}#recommendForm input,#recommendForm select{padding:10px;border:1px solid var(--line);border-radius:5px;color:var(--text);background:var(--bg);width:100%}.formactions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.formactions button{padding:10px 15px;border:1px solid var(--line);border-radius:5px}.formactions .saveRec{color:white;background:#326b9f;border:0}
@container(max-width:1120px){.chartpanel>.signalbar{grid-template-columns:1fr;gap:12px}.strategyidentity{flex-direction:row;align-items:center;gap:10px}.strategyidentity strong{font-size:14px}.signalmetrics{grid-template-columns:repeat(8,minmax(0,1fr))}.signalmetric strong{font-size:11px}}
@container(max-width:720px){.signalmetrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.strategyidentity{flex-wrap:wrap}.signalmetric strong{font-size:12px}.signalaction strong{font-size:10px}}
@container(max-width:360px){.signalmetrics{grid-template-columns:repeat(3,minmax(0,1fr))}.strategyidentity{gap:7px}.strategyidentity strong{font-size:13px}}
@media(max-width:1100px){.watch{width:310px}}@media(max-width:700px){.watch,.watch.mobileopen{width:100%;height:480px}.chartpanel{height:800px}.panelheading{min-height:65px}}

