:root{--ink:#192b36;--muted:#89949b;--green:#158567;--mint:#eaf6ef;--line:#e9eeed;--bg:#f6f8f8;--nav:#142b2b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Microsoft YaHei',sans-serif;font-size:13px}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:3px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:218px;background:var(--nav);color:#b6c5c3;padding:32px 19px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:white;font-size:23px;letter-spacing:-.8px;font-weight:700;margin:0 5px 48px}.brandmark{display:grid;place-items:center;background:#a9ead3;color:#164136;border-radius:11px;width:39px;height:39px;font-size:36px;line-height:1;font-style:italic;padding-bottom:8px}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#9db4af;font-weight:400;margin-top:4px}.navlabel{font-size:10px;letter-spacing:1.5px;color:#748d88;padding:0 14px;margin-bottom:15px}.nav{border:0;background:none;display:flex;width:100%;align-items:center;text-align:left;padding:14px;border-radius:7px;margin-bottom:7px;gap:12px;color:#a7bbb6;font-size:13px}.nav span{font-size:20px;width:22px}.nav.active{color:#cff8e9;background:#24453f}.nav.active:before{content:'';position:absolute;left:0;height:24px;width:3px;background:#a9ead3}.nav:hover{background:#203c38}.nav b{margin-left:auto;background:#436758;border-radius:5px;padding:2px 5px;font-size:10px}.sidebar-note{margin-top:54px;padding:16px 13px;border:1px solid #304640;border-radius:8px;font-size:11px;color:#c3d4ce}.sidebar-note p{font-size:10px;line-height:1.9;color:#8fa69e}.live-dot,.dot{width:6px;height:6px;border-radius:50%;background:#7cdbb4;display:inline-block;margin-right:6px}.mini-w{height:44px;overflow:hidden;opacity:.7;margin-top:12px}.bottom{margin-top:auto}.profile{border-top:1px solid #30423f;padding-top:20px;display:flex;gap:10px;font-size:11px}.profile>span,.avatar{display:grid;place-items:center;width:31px;height:31px;background:#355349;border-radius:50%;color:#cfe7dc}.profile small{display:block;font-size:9px;color:#799087;margin-top:5px}.workspace{margin-left:218px}header{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.breadcrumb{font-size:11px;color:#919b9f}.breadcrumb span{margin:0 15px;color:#cbd2d3}.breadcrumb b{font-weight:500;color:#46565e}.header-right{display:flex;align-items:center;gap:22px;font-size:10px;color:#7b8990}.iconbtn{border:0;background:none;font-size:24px}.avatar{background:#eef2ef;color:#416b5c;font-size:12px}main{max-width:1650px;margin:auto;padding:31px 36px 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:2px;color:#699184;font-weight:700}h1{font-size:27px;letter-spacing:-.7px;margin:8px 0 9px;font-weight:650}.page-heading p{margin:0;font-size:12px;color:#879299}.actions{display:flex;gap:10px}.button{border:1px solid #dae3df;border-radius:6px;background:#fff;padding:10px 15px;font-size:11px;font-weight:500;white-space:nowrap}.primary{background:#18785f;color:#fff;border-color:#18785f;box-shadow:0 2px 3px #18785f12}.button:hover{filter:brightness(.97)}.banner{padding:11px 15px;border:1px solid #e3e9d9;background:#f2f5e9;border-radius:6px;color:#6d7951;display:flex;justify-content:space-between;font-size:11px;margin-bottom:20px;gap:12px}.banner button{border:0;background:none;color:#556c3d;font-size:11px;white-space:nowrap}.error{background:#fff0ee;border:1px solid #ecc8c1;color:#aa4a3d;padding:12px;border-radius:6px;margin-bottom:15px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats article{background:white;border:1px solid var(--line);border-radius:8px;padding:20px 21px}.stats article>div{display:flex;justify-content:space-between;color:#78878d;font-size:11px}.stats article>div span{font-size:17px}.stats strong{display:block;margin:13px 0 10px;font-size:30px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.stats em{font-size:10px;font-style:normal;color:#a0a8aa;font-weight:400}.stats small{font-size:10px;color:#9aa3a8}.stats .period-stat{font-size:23px;padding:5px 0}.green{color:#23876a!important}.gold{color:#b59a5a}.green-bg{background:#39a481}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;margin-bottom:22px}.panel{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;gap:12px}.titleline{display:flex;align-items:center;gap:9px}h2{font-size:13px;font-weight:600;margin:0}h3{font-size:17px;margin:0}.indicator{height:13px;width:3px;background:#23876a;border-radius:2px}.tag{font-size:9px;background:#f3f5ef;color:#8b9670;border-radius:3px;padding:3px 6px;font-weight:400}.textbutton{border:0;background:none;color:#7c8b8c;padding:0;font-size:10px}.textbutton:hover{color:#158567}.stock-summary{display:flex;justify-content:space-between;padding:0 22px 18px}.stock-summary h3{display:inline-block;font-size:17px;font-weight:600;margin-right:9px}.stock-summary #stockCode{font-size:10px;color:#9aa4a7}.industry{display:block;color:#7d8d8f;font-size:10px;margin-top:7px}.price-block{text-align:right}.price-block strong{font-size:26px;font-weight:600}.price-block span{display:block;font-size:10px;margin-top:4px}.up{color:#d46662}.down{color:#1e9a78}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;padding:0 22px 8px;gap:10px}.period-tabs{display:flex;gap:3px;background:#f5f7f6;padding:3px;border-radius:5px}.period-tabs button,.filterbar button{background:none;border:0;padding:6px 10px;font-size:10px;color:#879493;border-radius:4px}.period-tabs .selected{background:#fff;color:#267a62;box-shadow:0 1px 4px #152c2110}.legend{font-size:9px;color:#c0a05b;white-space:nowrap}.legend i{display:inline-block;width:12px;height:2px;background:#c0a05b;margin-right:5px;vertical-align:middle}.legend b{font-weight:500;margin-left:4px}.chart{padding:0 12px;height:305px;position:relative}.chart svg{width:100%;height:100%;display:block}.chart-footer{display:flex;justify-content:space-between;font-size:9px;color:#98a6a6;border-top:1px solid #f1f4f3;padding:11px 22px}.chart-footer>span:first-child{color:#57816f}.rule-summary .panel-heading{padding-bottom:12px}.rule-visual{background:#f8faf9;margin:0 20px 5px;border-radius:6px;text-align:center;padding:4px 14px 10px}.rule-visual svg{height:83px;width:100%}.rule-visual span{font-size:9px;color:#82968c}.rule-item{display:flex;align-items:flex-start;margin:0 20px;padding:17px 0;border-bottom:1px solid #f0f3f1;gap:10px}.step{font-size:10px;color:#9db0a7;padding-top:2px}.rule-item b{font-size:11px;font-weight:500}.rule-item p{font-size:10px;color:#8e9b97;margin:6px 0 0}.check{margin-left:auto;color:#389b7c;font-size:12px}.rule-foot{margin:15px 20px;color:#9ca69e;font-size:9px;line-height:1.8}.list-panel .panel-heading{padding-bottom:15px}.counter{font-size:10px;background:#eef3ef;padding:2px 6px;border-radius:4px;color:#658575}.table-actions{display:flex;align-items:center;gap:20px}.table-actions input{border:1px solid #e4eae7;background:#fff;border-radius:5px;padding:7px 10px;width:208px;font-size:10px;outline-color:#80c3a9}.filterbar{display:flex;justify-content:space-between;align-items:center;margin:0 22px 14px;color:#97a39e;font-size:10px}.filterbar button{font-size:10px;margin-right:8px}.filterbar .selected{background:#eef6f0;color:#27815f}.filterbar b{font-weight:400;color:#65776e;margin-left:8px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:11px}th{background:#f8faf9;color:#95a19b;font-weight:400;text-align:left;padding:12px 15px;font-size:10px}td{padding:15px;border-bottom:1px solid #f0f3f1;font-variant-numeric:tabular-nums;color:#576961}th:first-child,td:first-child{padding-left:22px}td:first-child b{font-weight:500;color:#32493d}td small{display:block;font-size:9px;color:#9ba69f;margin-top:4px}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.row-selected{background:#f7fbf8}.badge{font-size:9px;padding:4px 8px;border-radius:4px;background:#eaf6ef;color:#31856a;display:inline-block}.badge.confirmed{background:#faf3e5;color:#a7894a}.badge.neutral{background:#f2f4f3;color:#8a958e}.table-footer{display:flex;justify-content:space-between;padding:13px 22px;font-size:9px;color:#9aa69e}footer{display:flex;justify-content:space-between;margin-top:23px;font-size:9px;color:#9ca9a3}footer i{margin:0 10px;color:#c5cdc8}.fullpanel{min-height:390px}.section-note{margin:0 24px 24px;color:#86968c;line-height:1.9;font-size:12px;max-width:800px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;padding:10px 24px 28px;max-width:850px}label{display:block;font-size:12px;margin-bottom:8px}.field input,#token{border:1px solid #dce5df;border-radius:5px;padding:10px;width:100%;outline-color:#80c3a9}.field small{display:block;margin-top:7px;font-size:10px;color:#98a39a}.form-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:20px 24px}.form-bottom span{font-size:11px;color:#96a196}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:10px 26px 35px}.data-grid h3{font-size:16px;margin-bottom:14px}.data-grid p{font-size:12px;color:#85958a;line-height:1.9}.data-grid small{display:block;font-size:10px;line-height:1.8;color:#97a396;margin:10px 0 18px}.data-grid form{margin:24px 0}.data-info{background:#f7faf7;border-radius:8px;padding:22px}.data-info a{font-size:11px;color:#398267}.alert-row{display:flex;align-items:center;gap:18px;border-top:1px solid var(--line);padding:20px 24px}.alert-row.unread{background:#f8fcf8}.alert-symbol{width:34px;height:34px;border-radius:50%;background:#e6f3eb;color:#2a8c68;display:grid;place-items:center}.alert-row b{font-size:12px;font-weight:500}.alert-row p{font-size:11px;color:#8b9b90;margin:7px 0 0}.alert-row time{margin-left:auto;font-size:10px;color:#93a195}.empty{padding:45px;text-align:center;color:#9aa99e;font-size:12px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;background:#244438;color:white;padding:13px 22px;border-radius:7px;box-shadow:0 6px 25px #163c2920;transition:.2s;z-index:20;font-size:12px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.chart-tooltip{position:absolute;background:#244438;color:white;padding:8px;border-radius:5px;font-size:10px;pointer-events:none;top:4px;left:28px}.chart .chart-empty{display:grid;place-items:center;height:100%;font-size:12px;color:#91a195}@media(min-width:1500px){.chart{height:340px}.main-grid{grid-template-columns:minmax(0,1fr) 320px}}@media(max-width:1200px){.sidebar{width:184px;padding:26px 13px}.workspace{margin-left:184px}main{padding:26px 22px}.main-grid{grid-template-columns:minmax(0,1fr) 265px;gap:15px}.stats article{padding:16px}.stats{gap:12px}.rule-item{margin:0 14px;gap:7px}.rule-item b{font-size:10px}.brand{font-size:21px}.page-heading p{font-size:11px}.stats .period-stat{font-size:19px}.table-actions input{width:175px}}@media(max-width:980px){.main-grid{grid-template-columns:1fr}.rule-summary{display:none}.page-heading{align-items:flex-start;gap:15px}.actions{padding-top:20px}.page-heading p{max-width:350px;line-height:1.8}.stats{grid-template-columns:repeat(2,1fr)}.sidebar-note{display:none}.data-grid{grid-template-columns:1fr;gap:20px}}@media(max-width:680px){.sidebar{width:61px;padding:25px 8px}.brand{margin:0 3px 30px}.brand>span:nth-child(2),.navlabel,.nav b,.profile,.bottom,.sidebar-note{display:none}.brandmark{width:35px;height:35px;font-size:30px}.nav{font-size:0;padding:12px 10px;gap:0}.nav span{font-size:22px}.workspace{margin-left:61px}header{height:60px;padding:0 16px}.header-right{gap:12px}#clock{display:none}main{padding:22px 14px}.page-heading{display:block}h1{font-size:23px}.actions{padding-top:15px}.stats{gap:10px}.stats article{padding:14px}.stats strong{font-size:26px}.stats .period-stat{font-size:17px}.stats small{font-size:9px}.banner{line-height:1.8}.panel-heading{padding:16px}.stock-summary{padding:0 16px 15px}.stock-summary h3{font-size:14px}#stockCode{display:block;margin-top:4px}.chart-toolbar{padding:0 12px}.period-tabs button{padding:6px}.chart{height:270px;padding:0 3px}.chart-footer{padding:10px;font-size:8px}.table-actions input{width:125px}.table-actions{gap:10px}.filterbar{margin:0 12px 12px}.filterbar>span{display:none}.filterbar button{margin-right:0;padding:6px 8px}.form-grid{grid-template-columns:1fr}.form-bottom{gap:18px}.alert-row{gap:10px;padding:15px}.alert-row time{max-width:80px}.legend{font-size:8px}footer{line-height:1.8;gap:15px}}
:root{--source-warning:#a96735}.instrument-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.instrument-card{display:flex;flex-direction:column;gap:9px;align-items:flex-start;background:white;border:1px solid var(--line);border-radius:7px;padding:15px 18px;text-align:left}.instrument-card.active{border-color:#6bb899;background:#f0f9f4;box-shadow:0 0 0 1px #6bb899}.instrument-card span{font-size:12px}.instrument-card strong{font-size:23px;font-weight:600}.instrument-card small{font-size:10px}.source-bad{color:var(--source-warning)}.source-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:0 24px 24px}.source-cards article{background:#f7faf8;padding:20px;border-radius:7px}.source-cards h3{font-size:14px;margin-bottom:8px}.source-cards span,.source-cards p{font-size:11px;color:#819289;line-height:1.9}.source-cards a{font-size:11px;color:#188266}.chart-footer{flex-wrap:wrap;gap:6px}input[readonly]{background:#f2f5f3;color:#8c9a91}@media(max-width:680px){.instrument-cards{grid-template-columns:repeat(2,1fr);gap:10px}.instrument-card{padding:12px}.instrument-card strong{font-size:20px}.source-cards{grid-template-columns:1fr}.period-tabs button{white-space:nowrap}}
.instrument-cards.top-switcher{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:26px}.top-switcher .instrument-card{border-radius:9px;padding:15px 20px}.top-switcher .instrument-card span{font-weight:600}.top-switcher .instrument-card strong{font-size:25px}@media(max-width:680px){.instrument-cards.top-switcher{gap:7px}.top-switcher .instrument-card{padding:11px 8px}.top-switcher .instrument-card strong{font-size:16px}.top-switcher .instrument-card span{font-size:10px}.top-switcher .instrument-card small{font-size:8px}}
