:root{font-family:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;color:#e9eef4;background:#08111b;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:214px;flex:0 0 214px;background:#0b1520;border-right:1px solid #1a2b38;display:flex;flex-direction:column;padding:26px 13px 18px}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 31px}.brand-mark{width:34px;height:34px;border:1px solid #53c5aa;border-radius:10px;color:#53d8b9;display:grid;place-items:center;font-size:30px;line-height:1;background:#112e2d}.brand strong{font-size:14px;letter-spacing:1.1px}.brand strong span{color:#52c8ad}.brand small{display:block;color:#758898;margin-top:2px;font-size:10px;letter-spacing:1px}.sidebar-section-title{display:flex;justify-content:space-between;color:#6f8292;font-size:11px;letter-spacing:1px;padding:0 14px 10px}.sidebar-section-title span{letter-spacing:0}.sidebar nav{overflow:auto;max-height:calc(100vh - 265px);padding-right:3px}.sidebar nav button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:#98a8b7;padding:10px 13px;border-radius:8px;text-align:left;font-size:12px}.sidebar nav button:hover,.sidebar nav button.active{background:#182c37;color:#e7f4ef}.nav-dot{width:6px;height:6px;border-radius:50%;background:#476477}.sidebar nav button.active .nav-dot{background:#50d4ae;box-shadow:0 0 0 4px #50d4ae20}.nav-count{margin-left:auto;color:#687f8f}.sidebar-bottom{margin-top:auto;padding:16px 10px 0;border-top:1px solid #1d2c37}.import-button{display:block;color:#c1d6d0;border:1px solid #345448;border-radius:7px;text-align:center;padding:9px;font-size:11px;cursor:pointer}.import-button:hover{background:#183a34}.sidebar-bottom p{font-size:10px;line-height:1.6;color:#657987;margin:12px 2px}.main{min-width:0;flex:1}.topbar{height:58px;border-bottom:1px solid #1a2a37;display:flex;align-items:center;justify-content:space-between;padding:0 31px;color:#8093a2;font-size:11px}.breadcrumb span{color:#43596b;margin:0 9px}.top-actions{display:flex;align-items:center;gap:9px}.top-actions #clock-label{margin-right:12px}.connection-dot{width:6px;height:6px;border-radius:50%;background:#4ec8a3}.content{padding:25px 30px 18px;max-width:1800px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:21px}.eyebrow{font-size:10px;color:#5bd1b4;letter-spacing:2.1px;font-weight:700}.page-heading h1{font-size:25px;letter-spacing:.3px;margin:7px 0 5px;font-weight:640}.page-heading p{color:#8597a5;margin:0;font-size:12px}.ghost-button,.icon-button{background:#111e2a;color:#c9d7de;border:1px solid #2a3b48;border-radius:7px}.ghost-button{padding:9px 14px;font-size:11px}.ghost-button:hover,.icon-button:hover{background:#1c3040}.overview{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:11px;margin-bottom:18px}.metric{background:#101e2a;border:1px solid #1d3140;border-radius:10px;padding:15px 18px;min-height:90px;position:relative}.metric:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:2px;background:#3a9c8f;border-radius:2px}.metric-alert:before{background:#d98965}.metric span{display:block;color:#8da0ad;font-size:11px}.metric strong{font-size:26px;line-height:1.4;font-weight:620;letter-spacing:-.7px}.metric strong.metric-text{font-size:15px;letter-spacing:0;display:block;padding-top:4px}.metric small{color:#6e8292;font-size:10px;margin-left:7px}.metric-text+small{margin-left:0}.setup-banner{display:flex;align-items:center;gap:14px;background:#17302f;border:1px solid #2f7165;border-radius:9px;margin-bottom:17px;padding:13px 17px}.setup-banner[hidden]{display:none}.setup-icon{font-size:24px;color:#62ddbd}.setup-banner strong{font-size:12px}.setup-banner p{margin:4px 0 0;color:#91b5aa;font-size:11px}.setup-banner button{margin-left:auto;background:#51caaa;border:0;border-radius:6px;color:#09241e;font-weight:650;font-size:11px;padding:9px 13px;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(205px,245px) minmax(460px,1fr) minmax(250px,290px);gap:12px;align-items:stretch}.panel{background:#101e2a;border:1px solid #1e3140;border-radius:11px;min-height:595px}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 17px 14px}.panel h2{margin:0;font-size:13px;font-weight:620}.panel-head small{display:block;color:#718797;margin-top:4px;font-size:10px}.count-pill{border-radius:9px;background:#1d3440;color:#a3c5bc;padding:3px 7px;font-size:10px}.watchlist{display:flex;flex-direction:column;overflow:hidden}.search-wrap{position:relative;margin:0 12px 11px}.search-wrap span{position:absolute;left:10px;top:3px;font-size:22px;color:#6a8293}.search-wrap input,.add-form input,.range-form input,.settings-card input{outline:none;background:#0c1823;color:#e4edf1;border:1px solid #263b4b;border-radius:6px}.search-wrap input{width:100%;padding:9px 9px 9px 32px;font-size:11px}.search-wrap input:focus,.add-form input:focus,.range-form input:focus,.settings-card input:focus{border-color:#53bfa6}.stock-list{overflow-y:auto;max-height:480px;flex:1}.stock-row{display:flex;align-items:center;width:100%;gap:10px;text-align:left;background:none;border:0;border-left:2px solid transparent;color:#dbe5ea;padding:10px 13px}.stock-row:hover{background:#172b38}.stock-row.active{background:#19313b;border-left-color:#54d2ae}.stock-avatar{width:29px;height:29px;display:grid;place-items:center;border-radius:7px;background:#243947;color:#b9dbd1;font-size:10px;font-weight:650;flex:none}.stock-main{min-width:0;flex:1}.stock-main strong{display:block;font-size:11px}.stock-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#728899;font-size:10px;margin-top:3px}.stock-right{text-align:right;min-width:32px}.stock-right strong{display:block;font-size:11px}.stock-right small{font-size:9px;color:#708799}.stock-row.below .stock-right strong,.stock-row.above .stock-right strong{color:#ec9b7c}.stock-row.inside .stock-right strong{color:#62d7b4}.stock-empty{color:#728a99;text-align:center;font-size:11px;padding:30px 12px;line-height:1.6}.add-form{display:flex;gap:6px;padding:12px;border-top:1px solid #1f3340}.add-form input{min-width:0;flex:1;padding:8px;font-size:10px}.add-form button{border:1px solid #315247;background:#1b3c36;color:#76d7b7;border-radius:6px;width:30px;font-size:18px}.chart-panel{min-width:0;display:flex;flex-direction:column}.chart-header{display:flex;justify-content:space-between;align-items:start;padding:18px 20px 14px}.symbol-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.symbol-line h2{font-size:21px;letter-spacing:.2px}.symbol-line>span:not(.tag){color:#8499a6;font-size:11px}.tag{background:#1d3340;border-radius:5px;color:#94b5b0;padding:4px 7px;font-size:9px}.quote-line{display:flex;align-items:baseline;gap:9px;margin-top:10px;flex-wrap:wrap}.quote-line strong{font-size:24px;font-weight:620}.quote-line>span:not(.state-tag){font-size:10px;color:#778d9c}.state-tag{border:1px solid #314b55;background:#18303b;color:#9bb8b2;border-radius:5px;padding:3px 6px;font-size:10px}.state-tag.above,.state-tag.below{color:#ffb18e;border-color:#855143;background:#3b2a2a}.state-tag.inside{color:#79dbbd;border-color:#35675c;background:#1b3937}.icon-button{width:29px;height:29px;font-size:17px}.chart-toolbar{border-top:1px solid #1b3040;border-bottom:1px solid #1b3040;display:flex;justify-content:space-between;align-items:center;padding:8px 15px 8px 20px;gap:10px;color:#8398a6;font-size:10px}.chart-toolbar>div:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-label{color:#c2d4db}.toolbar-divider{display:inline-block;height:10px;border-left:1px solid #405564;margin:0 10px}.period-switch{display:flex;background:#0b1823;padding:2px;border-radius:6px;flex:none}.period-switch button{border:0;background:none;color:#718997;padding:4px 7px;font-size:9px;border-radius:4px}.period-switch button.active{background:#26443e;color:#7ce1c0}.chart-wrap{position:relative;flex:1;min-height:425px;margin:10px 5px 0 5px;touch-action:none}canvas{width:100%;height:100%;display:block;cursor:crosshair}.chart-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#101e2a;color:#8498a5;padding:20px}.chart-empty[hidden]{display:none}.empty-candle{font-size:41px;color:#355f5c;margin-bottom:13px}.chart-empty strong{color:#dae8e6;font-size:13px}.chart-empty p{max-width:260px;line-height:1.6;font-size:11px}.chart-empty button{border:1px solid #3c6c60;background:#183830;color:#89dfc4;border-radius:6px;padding:8px 13px;font-size:11px;margin-top:6px}.chart-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #1c303e;margin-top:4px;padding:11px 17px;color:#718899;font-size:10px}.inspector{padding-bottom:14px;display:flex;flex-direction:column}.inspector-head{padding:18px 17px 12px}.target-icon{font-size:24px;color:#5cccad}.range-visual{margin:1px 16px 15px;background:#0d1923;border:1px solid #2a3d49;border-radius:7px;overflow:hidden}.range-top,.range-bottom{display:flex;justify-content:space-between;padding:9px 12px;color:#8ea3af;font-size:10px}.range-top strong,.range-bottom strong{color:#d8e8e7;font-size:12px}.range-band{height:50px;margin:0 11px;border-top:1px dashed #43ad94;border-bottom:1px dashed #43ad94;background:linear-gradient(180deg,#275d4f55,#24574b30);display:grid;place-items:center;color:#73d3b6;font-size:10px}.range-form{padding:0 16px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-pair label{color:#9dafb8;font-size:10px}.field-pair label span{float:right;color:#67818e;font-size:9px}.range-form input{display:block;width:100%;margin-top:7px;padding:9px 8px;font-size:11px}.primary-button{width:100%;background:#50caa5;color:#09211b;border:0;border-radius:6px;font-size:11px;font-weight:680;padding:10px}.primary-button:hover{background:#6edcba}.range-form .primary-button{margin-top:12px}.text-button{display:block;background:none;border:0;color:#7892a0;font-size:10px;padding:10px;margin:0 auto}.text-button:hover{color:#d9e9e6}.rule-note{display:flex;gap:8px;margin:0 16px 20px;padding:10px;background:#152836;border:1px solid #294251;border-radius:7px}.rule-note span{border:1px solid #547484;border-radius:50%;width:15px;height:15px;flex:none;text-align:center;color:#9fc1c4;font-size:10px}.rule-note p{margin:0;color:#8ba0ae;font-size:10px;line-height:1.55}.alerts-header{display:flex;justify-content:space-between;align-items:start;margin:0 16px 8px;padding-top:15px;border-top:1px solid #253a48}.alerts-header small{font-size:10px;color:#728896}.alerts-header button{color:#718997;background:none;border:0;font-size:10px}.alert-list{overflow:auto;max-height:215px;margin:0 14px}.alert-item{display:flex;gap:8px;border:1px solid #315049;background:#18342f;border-radius:6px;padding:9px;margin-bottom:7px}.alert-item.below,.alert-item.above{border-color:#60453d;background:#302725}.alert-bullet{color:#61d5ae}.alert-item.below .alert-bullet,.alert-item.above .alert-bullet{color:#e79c78}.alert-item strong{display:block;font-size:10px}.alert-item small{display:block;color:#8ba4a7;font-size:9px;margin-top:4px;line-height:1.4}.alerts-empty{font-size:10px;color:#718999;text-align:center;padding:22px 8px;line-height:1.5}.footnote{color:#5d7384;font-size:10px;margin-top:13px;text-align:center}dialog{border:1px solid #355363;border-radius:12px;padding:0;background:#142431;color:#e6eef0;max-width:430px;width:calc(100% - 30px);box-shadow:0 20px 70px #0009}dialog::backdrop{background:#020c13bb}.settings-card{padding:25px}.settings-head{position:relative}.settings-head h2{font-size:19px;margin:7px 0}.dialog-close{position:absolute;right:0;top:-6px;background:none;color:#94a8b3;border:0;font-size:23px}.settings-card p{font-size:11px;color:#9cb0ba;line-height:1.7}.settings-card label{display:block;font-size:10px;color:#b4c4c8;margin-top:20px}.settings-card input{display:block;width:100%;padding:10px;margin-top:7px;font-size:12px}.settings-actions{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:15px}.settings-actions a{font-size:10px;color:#74d1b4;text-decoration:none}.settings-actions .primary-button{width:auto;padding-left:18px;padding-right:18px}.settings-hint{border-top:1px solid #2b4351;margin-top:19px;padding-top:14px;color:#7992a0;font-size:10px;line-height:1.6}.toast{position:fixed;bottom:22px;right:22px;max-width:360px;padding:11px 15px;background:#204239;border:1px solid #4bab8f;border-radius:8px;color:#dff8ed;box-shadow:0 8px 30px #0008;font-size:11px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:10}.toast.show{opacity:1;transform:translateY(0)}.toast.warn{background:#3d2b27;border-color:#b47560;color:#ffddcb}
@media(max-width:1250px){.workspace{grid-template-columns:205px minmax(400px,1fr)}.inspector{grid-column:1/-1;min-height:0;display:grid;grid-template-columns:1fr 1fr;align-content:start}.inspector-head,.range-visual,.range-form,.rule-note{grid-column:1}.alerts-header,.alert-list{grid-column:2}.alerts-header{grid-row:1}.alert-list{grid-row:2/5;max-height:300px;margin-top:6px}.inspector .rule-note{margin-bottom:14px}.chart-panel,.watchlist{min-height:550px}}@media(max-width:800px){.sidebar{width:60px;flex-basis:60px;padding:20px 6px}.brand{padding:0 6px 25px}.brand>div:last-child,.sidebar-section-title,.sidebar nav button .nav-label,.nav-count,.sidebar-bottom p,.import-button{display:none}.sidebar nav button{justify-content:center;padding:11px}.sidebar nav button .nav-dot{width:9px;height:9px}.sidebar-bottom{padding:8px}.sidebar-bottom:after{content:"＋";display:block;text-align:center;color:#6bd5b5;cursor:pointer}.content{padding:20px 15px}.topbar{padding:0 15px}.workspace{grid-template-columns:1fr}.watchlist{min-height:0;max-height:265px}.stock-list{max-height:160px}.chart-panel{min-height:520px}.inspector{display:block}.alert-list{max-height:220px}.overview{grid-template-columns:repeat(3,1fr)}.metric{padding:12px}.metric strong{font-size:20px}.metric strong.metric-text{font-size:11px}}@media(max-width:540px){.sidebar{display:none}.topbar{height:46px}.top-actions #clock-label{display:none}.page-heading{align-items:start}.page-heading h1{font-size:21px}.page-heading p{line-height:1.5}.ghost-button{font-size:0;padding:9px}.ghost-button:first-letter{font-size:15px}.overview{gap:5px}.metric{padding:10px 8px;min-height:74px}.metric span,.metric small{font-size:9px}.metric strong{font-size:18px}.workspace{gap:9px}.chart-panel{min-height:470px}.chart-wrap{min-height:330px}.chart-footer span:last-child{display:none}.setup-banner{align-items:start}.setup-banner p{line-height:1.5}.setup-banner button{padding:7px}}

.inline-import{border:1px solid #315247;background:#1b3c36;color:#76d7b7;border-radius:6px;width:30px;font-size:18px;text-align:center;display:grid;place-items:center;cursor:pointer;flex:none}

.source-badge{display:inline-flex;align-items:center;border:1px solid #315f54;background:#163630;color:#79dab8;border-radius:7px;padding:8px 12px;font-size:11px;white-space:nowrap}

.sidebar nav{overflow:visible;max-height:none}
.content{padding-top:18px}
@media(min-width:1251px){.panel{min-height:calc(100vh - 135px)}.stock-list{max-height:none}}
.stock-list-wrap{position:relative;flex:1;min-height:0;overflow:hidden}
.stock-list{height:100%;max-height:none;min-height:0;padding-right:11px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.stock-list::-webkit-scrollbar{display:none;width:0}
.stock-scroll-track{position:absolute;right:5px;top:7px;bottom:7px;width:7px;border-radius:8px;background:#1b303b;border:1px solid #2d4650;touch-action:none;cursor:pointer}
.stock-scroll-track[hidden]{display:none}
.stock-scroll-thumb{position:absolute;left:0;right:0;top:0;min-height:24px;border-radius:7px;background:#5f9b91;box-shadow:inset 0 0 0 1px #9bd2bc55;cursor:grab}
.stock-scroll-track:hover .stock-scroll-thumb,.stock-scroll-track:focus-visible .stock-scroll-thumb{background:#79cdb3}
.stock-scroll-track.dragging .stock-scroll-thumb{background:#8adfc0;cursor:grabbing}
@media(min-width:1251px){html,body{height:100%;overflow:hidden}.app-shell{height:100vh;min-height:0;overflow:hidden}.main{display:flex;flex-direction:column;min-height:0}.content{flex:1;min-height:0;display:flex;flex-direction:column}.workspace{flex:1;min-height:0}.workspace>.panel{min-height:0}.sidebar{height:100vh;min-height:0}.footnote{flex:none}}

.content{width:100%}
html,body{scrollbar-width:none;-ms-overflow-style:none}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0}
.page-scroll-track{position:fixed;right:3px;top:6px;bottom:6px;width:7px;z-index:8;border:1px solid #2d4650;border-radius:8px;background:#1b303b;touch-action:none;cursor:pointer}
.page-scroll-track[hidden]{display:none}
.page-scroll-thumb{position:absolute;left:0;right:0;top:0;min-height:28px;border-radius:7px;background:#5f9b91;box-shadow:inset 0 0 0 1px #9bd2bc55;cursor:grab}
.page-scroll-track:hover .page-scroll-thumb,.page-scroll-track:focus-visible .page-scroll-thumb{background:#79cdb3}
.page-scroll-track.dragging .page-scroll-thumb{background:#8adfc0;cursor:grabbing}

.stock-right{min-width:62px;flex:none}
.stock-row.below .stock-right strong,.stock-row.above .stock-right strong,.stock-row.inside .stock-right strong{color:#dbe5ea}
.stock-right .daily-change{display:block;font-size:10px;font-weight:650;line-height:1.4}
.stock-right .range-status{display:block;color:#708799;font-size:9px;line-height:1.35}
.daily-change.up{color:#5bd6a8}
.daily-change.down{color:#ed8b83}
.daily-change.flat{color:#8da2ae}
.quote-line #daily-change{font-size:12px;font-weight:650}
.quote-line #daily-change[hidden]{display:none}
