*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#17272d;font:14px/1.6 'Segoe UI','Microsoft YaHei',sans-serif}button,input,a{font:inherit}button,a{cursor:pointer}button{border:0}a{color:#127d6a;text-decoration:none}aside{width:235px;background:#102e32;color:#dce9e8;position:fixed;inset:0 auto 0 0;padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin-bottom:57px}.brand b{font-size:17px;letter-spacing:1px}.brand small{display:block;font-size:10px;font-weight:400;color:#84a9a9;letter-spacing:1px;margin-top:4px}.mark{background:#c4e8c2;color:#163d38;border-radius:10px;font-size:22px;font-weight:600;padding:4px 11px}.nav-label{font-size:11px;color:#6c9396;letter-spacing:2px;padding:0 15px;margin-bottom:16px}nav button{display:block;width:100%;text-align:left;color:#9fbabb;background:transparent;padding:13px 16px;border-radius:7px;margin-bottom:9px}nav button.active{background:#23484a;color:#dbf3df;border-left:3px solid #b9e7b4}nav button:hover{background:#23484a}.aside-bottom{margin-top:auto;padding:14px;font-size:12px}.aside-bottom small{display:block;color:#789a9b;font-size:10px;margin-top:7px}.dot{display:inline-block;width:6px;height:6px;background:#a4e8a9;border-radius:50%;margin-right:5px}main{margin-left:235px}header{height:72px;border-bottom:1px solid #e2e7e9;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 42px;color:#859296;font-size:12px}header i{font-style:normal;margin:0 15px;color:#bec8ca}header b{color:#35494f;font-weight:500}.tag{border:1px solid #d9e5e3;padding:5px 11px;border-radius:5px;color:#5e7f77}.content{padding:34px 42px;max-width:1600px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:2px;color:#3a8779}h1{font-size:29px;font-weight:600;margin:8px 0}p{color:#849194;margin:5px 0;font-size:12px}.source-badge{border:1px solid #dce4e1;padding:9px 13px;background:#fff;font-size:11px;color:#588675;border-radius:6px}.source-badge span{color:#919d9b;border-left:1px solid #ddd;margin-left:8px;padding-left:8px}.notice{background:#e9f2ef;border:1px solid #d3e5de;color:#4e786a;padding:11px 16px;border-radius:6px;margin-bottom:22px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:24px}.stats>div{border:1px solid #e1e7e7;background:#fff;padding:19px 22px;border-radius:8px}.stats small{font-size:12px;color:#687e81}.stats strong{font-size:31px;display:block;font-weight:600;line-height:1.6}.stats span{font-size:10px;color:#9ba5a7}.green{color:#18816a}.panel{background:#fff;border:1px solid #e0e6e7;border-radius:8px;margin-bottom:24px;overflow:hidden}.panel-top{padding:20px 23px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf0f1}h2{margin:0;font-weight:600;font-size:15px}.text-btn{background:none;color:#20826d;font-size:12px}.strategy-flow{display:flex;align-items:center;justify-content:space-between;padding:30px 24px}.strategy-flow>div{display:flex;gap:12px;align-items:center}.strategy-flow b{font-size:17px;color:#6c9e91;background:#edf5f1;border-radius:7px;padding:8px}.strategy-flow span{font-size:12px;font-weight:600}.strategy-flow small{display:block;font-size:10px;color:#95a4a5;font-weight:400;margin-top:4px}.strategy-flow em{color:#b9c9c7;font-style:normal}.run-bar{padding:16px 23px;background:#fafcfc;border-top:1px solid #edf0f1;display:flex;gap:15px;align-items:center}.run-bar label{font-size:12px;color:#677e81}.run-bar span{color:#9ba7a8;font-size:10px}.run-bar button{margin-left:auto}.primary{background:#176f61;color:#fff;border:1px solid #176f61;border-radius:5px;padding:10px 19px;font-size:12px}.primary:hover{background:#105447}.primary:disabled{opacity:.5;cursor:wait}.secondary{background:#fff;color:#53716e;border:1px solid #dce5e3;border-radius:5px;padding:8px 13px;font-size:12px}input{border:1px solid #dce5e4;border-radius:5px;padding:8px 10px;color:#405957;background:#fff;font-size:12px}input[type=date]{margin-left:9px}.filters{display:flex;justify-content:space-between;padding:14px 23px;gap:10px}.tabs button{background:none;color:#879597;font-size:11px;padding:7px 12px}.tabs button.active{background:#eaf3ef;color:#1c7863;border-radius:4px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{font-size:10px;font-weight:500;color:#8d9a9d;background:#f9fbfb;padding:12px 23px}td{padding:16px 23px;border-top:1px solid #eef2f2}td small{display:block;color:#9ba7a7;font-size:10px}.empty{text-align:center;padding:55px;color:#889f9c;font-size:13px}.empty small{margin-top:8px}.badge{padding:4px 8px;border-radius:4px;font-size:10px;white-space:nowrap}.badge.pass{color:#17845f;background:#e7f5ed}.badge.fail{color:#8a7771;background:#f3efed}.badge.missing{color:#aa8432;background:#faf4e6}.muted{color:#93a19f;font-size:12px}.hidden{display:none!important}footer{display:flex;justify-content:space-between;font-size:10px;color:#9baaa9;margin-top:34px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.toolbar span{font-size:12px;color:#8b9998}.rule-group{padding:20px 23px}.rule{display:grid;grid-template-columns:230px 1fr;gap:20px;padding:18px 0;border-top:1px solid #edf0ef}.rule:first-of-type{margin-top:15px}.rule label{display:flex;align-items:flex-start;gap:8px;font-size:12px}.rule input[type=checkbox]{accent-color:#13745f}.rule p{font-size:11px;max-width:680px;margin-top:9px}.rule input[type=number],.rule input[type=text]{width:230px}.year-options{display:flex;flex-wrap:wrap;gap:8px}.year-options label{border:1px solid #dfe8e4;border-radius:4px;padding:5px 8px;font-size:11px}.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.upload{padding:28px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}.data-icon{font-size:24px;color:#3f8c7d;background:#eaf4ef;padding:3px 12px;border-radius:8px}.upload p{line-height:1.9;min-height:45px}.upload code{background:#f6f8f8;padding:12px;font-size:11px;word-break:break-all;width:100%;min-height:60px;color:#6a807d}.upload a{font-size:11px}.file-status{font-size:12px;color:#788e88}.demo-panel{display:flex;justify-content:space-between;align-items:center;padding:24px}.notes{padding:24px}.notes p{margin-top:12px;line-height:1.9}.history-row{padding:18px 24px;display:flex;justify-content:space-between;border-bottom:1px solid #edf1ef;font-size:12px}dialog{border:1px solid #dce4e1;border-radius:12px;width:760px;max-width:90vw;padding:0;box-shadow:0 30px 100px #1235}dialog::backdrop{background:#152f3c66}#detail-body{padding:12px 24px;max-height:65vh;overflow:auto}.check-row{padding:12px 0;border-bottom:1px solid #edf1ef;display:grid;grid-template-columns:65px 1fr;gap:10px}.check-row b{font-size:12px;font-weight:500}.check-row p{font-size:11px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#163d36;color:#fff;padding:12px 22px;border-radius:6px;display:none;z-index:9;font-size:13px}@media(max-width:1100px){aside{width:190px;padding:25px 12px}main{margin-left:190px}.content{padding:25px}.strategy-flow{flex-wrap:wrap;gap:15px}.strategy-flow em{display:none}.source-badge{display:none}.run-bar span{display:none}}@media(max-width:750px){aside{position:static;width:100%;padding:15px}.brand{margin-bottom:15px}nav{display:flex}nav button{font-size:11px;padding:8px}.nav-label,.aside-bottom{display:none}main{margin:0}header{padding:0 20px}.content{padding:20px}.stats{grid-template-columns:repeat(2,1fr)}.data-grid{grid-template-columns:1fr}.rule{grid-template-columns:1fr}.run-bar{flex-wrap:wrap}.toolbar{gap:15px}.heading h1{font-size:24px}.filters{flex-wrap:wrap}footer span{display:none}}
select{border:1px solid #dce5e4;border-radius:5px;background:#fff;color:#405957;padding:7px 12px;font:inherit;font-size:12px}.account{display:flex;align-items:center;gap:12px}.account>span{font-size:12px;color:#176f61}.login-view{min-height:100vh;display:grid;place-items:center;background:radial-gradient(at 20% 20%,#234e4d,#102e32 70%)}.login-view form{width:460px;max-width:92vw;background:#fff;padding:46px;border-radius:16px;box-shadow:0 25px 100px #0003}.login-view .eyebrow{margin-top:28px;letter-spacing:1px}.login-view h1{font-size:25px}.login-view label{display:block;margin-top:22px;color:#56756d;font-size:12px}.login-view input{display:block;width:100%;margin-top:8px;padding:12px}.login-view button{width:100%;margin-top:28px}.login-view small{display:block;font-size:10px;color:#95a6a0;margin-top:22px}.login-view #login-error{color:#b35e40;margin-top:12px}.password-form{padding:28px;display:grid;gap:16px}#edit-fields{padding:24px;max-height:60vh;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px}#edit-fields label{font-size:12px;color:#55786b}#edit-fields input{display:block;width:100%;margin-top:5px}input[readonly]{background:#f1f5f3;color:#83978e}@media(max-width:750px){.account{gap:4px;flex-wrap:wrap}.account button{font-size:10px}header{height:auto;min-height:72px;gap:10px}#edit-fields{grid-template-columns:1fr}.login-view form{padding:30px}}
@media(max-width:750px){.results table thead{display:none}.results table,.results tbody,.results tr,.results td{display:block}.results tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:18px;border-top:1px solid #e7edeb}.results td{border:0;padding:0;white-space:normal}.results td:first-child{grid-column:1/-1;margin-bottom:5px}.results td:nth-child(2)::before{content:'数据日期 ';color:#97a5a1;font-size:10px}.results td:nth-child(3)::before{content:'收盘价 ';color:#97a5a1;font-size:10px}.results td:nth-child(4)::before{content:'条件通过 ';color:#97a5a1;font-size:10px}.results td:last-child{grid-column:1/-1;text-align:right}.results td.empty{grid-column:1/-1;padding:24px}.run-bar button{margin-left:0}.tabs button{padding:7px 9px}.nav-label{display:none}nav button{white-space:nowrap}nav button[data-page=params]{font-size:10px}}
.account-fields{padding:24px;display:grid;gap:16px}.account-fields label{font-size:12px;color:#55786b}.account-fields label>input:not([type=checkbox]),.account-fields select,.account-fields textarea{display:block;width:100%;margin-top:6px}.account-fields textarea{border:1px solid #dce5e4;border-radius:6px;padding:12px;font:12px/1.8 'Microsoft YaHei',sans-serif;color:#405957}.account-fields small{font-size:10px;color:#90a39a;display:block;margin-top:5px}.check-label{display:flex;align-items:center;gap:7px}.check-label input{accent-color:#176f61}.expiry-presets{display:flex;gap:8px}.form-error{color:#b65e43!important}#account-dialog{width:620px}#credential-dialog{width:580px}.account-table td{white-space:nowrap}.account-table td small{white-space:normal;max-width:220px}#account-audit{max-height:400px;overflow:auto}#account-audit .history-row{gap:15px;font-size:11px}#credential-text{resize:vertical}nav{overflow:auto}@media(max-width:750px){nav{flex-wrap:wrap}nav button{width:auto;flex:1 0 28%}.account-table th,.account-table td{padding:12px}.account-fields{padding:18px}}
/* Research panels use the same readable spacing on desktop and mobile. */
#data>.panel:first-child,#shareholders>.panel,#news>.panel,#market>.panel{padding:24px}
#em-jobs .history-row{align-items:flex-start;gap:14px}#em-jobs small{display:block;max-width:900px;white-space:normal;overflow-wrap:anywhere}
#holder-state,#news-profile{overflow-wrap:anywhere}#news-items a,#research-inbox a{color:#176f61;line-height:1.7}#news-items .history-row{padding:16px 0}#holder-chart{margin:20px 0}#holder-chart svg{background:#fafcfb;border-radius:8px}
@media(max-width:750px){#data>.panel:first-child,#shareholders>.panel,#news>.panel,#market>.panel{padding:18px}#em-jobs .history-row{flex-wrap:wrap}#em-jobs small{max-width:100%}}
/* Unified dashboard spacing and title hierarchy. */
.content{max-width:1700px;margin:0 auto}.heading{gap:24px;align-items:center}.heading h1{font-size:28px;letter-spacing:2px}.heading p{max-width:760px}.stats{gap:18px}.stats>div{min-width:0;display:flex;flex-direction:column;align-items:flex-start}.stats strong{line-height:1.2;margin:12px 0}.stats .text-btn{padding-left:0;margin-top:8px}.panel-top{gap:16px;flex-wrap:wrap}.panel-top>div:first-child{flex:1;min-width:180px}.panel h2{font-size:18px;letter-spacing:1px}.filters{gap:12px;flex-wrap:wrap}.filters input{max-width:100%;min-width:0}.run-bar{gap:16px;flex-wrap:wrap}.run-bar label{display:flex;gap:8px;align-items:center}.run-bar input[type=checkbox]{width:auto}.strategy-flow{gap:18px;justify-content:space-between}.strategy-flow>div{flex:1;min-width:0}.strategy-flow small{white-space:normal}#screen>.panel>.notice{margin:0 24px 18px}#auto-screen-status{display:inline-block;overflow-wrap:anywhere}nav button{letter-spacing:1px}
@media(max-width:1000px){.strategy-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.heading{align-items:flex-start;flex-direction:column;gap:12px}.heading h1{font-size:24px}.stats{gap:12px}.stats>div{padding:18px}.panel-top{padding:18px;align-items:flex-start}.panel-top>button,.panel-top>a{font-size:12px;padding:9px 12px}.run-bar{padding:18px}.run-bar>span{width:100%}.run-bar>button{width:100%}.strategy-flow{gap:18px;padding:18px}.strategy-flow b{font-size:18px}.source-badge{max-width:100%;white-space:normal}#screen>.panel>.notice{margin:0 18px 14px}nav button{flex:1 0 28%;text-align:center;padding:10px 6px;letter-spacing:0}}
.golden-fields{display:grid;grid-template-columns:1fr 1fr 2fr;gap:14px}.golden-fields label{font-size:12px!important;display:block!important}.golden-fields input{width:100%;display:block;margin-top:6px}.golden-fields small{display:block;font-size:11px;color:#859996;margin-top:6px;line-height:1.6}@media(max-width:1000px){.golden-fields{grid-template-columns:1fr 1fr}.golden-fields label:last-child{grid-column:1/-1}}@media(max-width:750px){.golden-fields{grid-template-columns:1fr}.golden-fields label:last-child{grid-column:auto}}
.parameter-fields,.golden-fields{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:16px;max-width:900px}.rule .parameter-fields label{display:block!important;font-size:12px;color:#405c57}.rule .parameter-fields input,.rule .golden-fields input{width:100%!important;min-height:42px;margin-top:7px;border-radius:7px;padding:10px 12px}.parameter-fields small,.single-param small{display:block;margin-top:5px;font-size:11px;color:#7c918a;line-height:1.6}.single-param .value{max-width:100%;min-height:42px}.rule{grid-template-columns:260px minmax(0,1fr);gap:28px;padding:24px 0}.rule>label{font-size:14px;font-weight:600;line-height:1.8;padding-top:4px}.rule>label input{margin-top:5px;flex-shrink:0}.rule p{font-size:12px;line-height:1.9;max-width:900px;margin-top:14px}.rule-group{padding:26px 28px}.year-options label{min-width:66px;justify-content:center;padding:8px 10px;border-radius:6px}.year-options label:has(input:checked){background:#e9f4ef;border-color:#74b39f;color:#176f61}#params .toolbar{position:sticky;top:0;z-index:5;background:#f4f6f8;padding:16px 0;align-items:center;border-bottom:1px solid #e0e8e5;margin-bottom:20px}#params .toolbar>span{max-width:750px;line-height:1.8}.results td:last-child{min-width:230px;white-space:normal}.results td:last-child .text-btn{display:inline-block;padding:5px 8px}.results td:nth-child(4)>b{font-size:17px;color:#146c5b}.results th,.results td{padding:16px 18px}.results .filters{justify-content:space-between}.results .filters input{min-width:220px}.account{flex-wrap:wrap}#toast{max-width:calc(100vw - 36px);white-space:normal;line-height:1.7}
@media(max-width:1200px){.rule{grid-template-columns:220px minmax(0,1fr);gap:20px}.parameter-fields,.golden-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.rule{grid-template-columns:minmax(0,1fr);gap:14px}.rule-group{padding:20px}.parameter-fields,.golden-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.golden-fields label:last-child{grid-column:auto}.rule>label{font-size:14px}.rule p{font-size:12px}.rule input.value{width:100%}#params .toolbar{flex-wrap:wrap;gap:10px}#params .toolbar>span{font-size:12px}#save{width:100%}.results td:last-child{min-width:0}.results td:nth-child(4)::before{content:'策略评分 ';}.results .filters input{width:100%;min-width:0}.run-bar label{width:100%;flex-wrap:wrap}}

.level-actions{grid-column:1/-1;display:flex;gap:12px;align-items:center}.level-actions button{font-size:12px;padding:8px 12px}

.year-options{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;width:100%;max-width:900px}.year-options label{min-width:0;min-height:38px;padding:6px 4px;align-items:center;gap:5px;font-size:12px;white-space:nowrap}.year-options input{margin:0;width:14px;height:14px}.custom-score-body{padding:20px 24px}.custom-score-body>label{display:block;font-weight:600;margin-bottom:8px}.custom-score-body textarea{width:100%;resize:vertical;min-height:84px;border:1px solid #dce5e4;border-radius:7px;padding:12px;font:inherit;color:#405957}.custom-score-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}.custom-score-actions .primary{flex-shrink:0}@media(max-width:1200px){.year-options{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:750px){.year-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.custom-score-body{padding:16px}.custom-score-actions{align-items:stretch;flex-direction:column}.custom-scoring .panel-top{gap:10px;flex-wrap:wrap}}

#holder-watches{overflow:auto}#holder-watches table{min-width:720px}#holder-watches .holder-count{font-size:16px;color:#176f61;white-space:nowrap}#holder-watches td{vertical-align:middle}#holder-watches td small{display:block}#holder-watches td:last-child{min-width:170px}

.pool-score{font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px}.pool-name{font-size:14px;font-weight:600;padding-left:0}.check-row small{display:block;color:#176f61;margin-top:5px}#detail-body .notice p{color:#4e786a}

.rule-group>summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;min-height:32px}.rule-group>summary::-webkit-details-marker{display:none}.group-toggle{color:#20826d;font-size:12px}.group-toggle::after{content:"展开参数"}.rule-group[open] .group-toggle::after{content:"收起参数"}.rule-group>summary:focus-visible{outline:2px solid #20826d;outline-offset:5px}

.status-count{display:block;margin-top:4px;font-size:11px;white-space:nowrap;color:#788b87}

.holder-period-note{padding:10px 24px;line-height:1.8}#holder-watches table{min-width:900px}

#holder-detail{width:1050px}.holder-detail-body{padding:20px;max-height:75vh;overflow:auto}

.golden-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;min-width:155px}.golden-chips span{padding:2px 5px;background:#f1f4f3;border-radius:4px;font-size:10px;color:#78918a}.golden-chips .hit{color:#176f61;background:#d8efe2;font-weight:600}.golden-detail{padding-left:0}

.strategy-branches{padding-left:20px;margin-top:-4px;margin-bottom:12px}.strategy-branches button{padding:7px 14px;font-size:12px;margin-bottom:3px}nav .strategy-branches button.active{border-left:0;background:#1b4042;color:#c4e8c2}@media(max-width:750px){.strategy-branches{display:flex;padding-left:0;width:100%;gap:6px}}

.config-menu{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px}.config-menu h2{margin:0}.config-menu p{margin:6px 0 0}.config-tabs{display:flex;gap:8px}.config-tabs button{border:1px solid #d5e4df;border-radius:8px;background:white;color:#53766e;padding:10px 18px;white-space:nowrap}.config-tabs button.active{background:#176f61;color:white;border-color:#176f61}@media(max-width:750px){.config-menu{flex-direction:column;align-items:stretch}.config-tabs button{flex:1}}

.holder-types{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.holder-types label{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #d5e4df;border-radius:6px}.bull-list{display:block}.bull-list textarea{display:block;width:100%;min-height:80px;margin-top:8px}.bull-list small{display:block;line-height:1.6}

.group-heading{display:flex;align-items:center;gap:12px;cursor:pointer}.group-heading h2{margin:0}.group-heading input{width:18px;height:18px;accent-color:#176f61}.group-disabled .rule{opacity:.55}.group-disabled summary h2{color:#879893}
