:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#1c2928;background:#f7f8f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr)}.sidebar{background:#183b3c;color:#d8e5e1;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:18px;font-weight:700;text-decoration:none;letter-spacing:0}.brand-mark{display:grid;place-items:center;width:34px;height:34px;color:#173c3d;background:#d5e86b;border-radius:6px}.sidebar-nav{display:grid;gap:6px;margin-top:48px}.nav-link{display:flex;align-items:center;gap:11px;padding:11px 12px;color:inherit;border-radius:5px;text-decoration:none;font-size:14px}.nav-link.active{background:#275456;color:#fff}.nav-link.muted{color:#a5c0bc}.sidebar-footer{margin-top:auto;color:#9fb8b4;font-size:12px;line-height:1.7}.main-content{min-width:0;padding:26px clamp(20px,4vw,64px) 52px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-bottom:24px;border-bottom:1px solid #dce3dc}.eyebrow{margin:0 0 5px;color:#75847c;font-size:11px;letter-spacing:0;font-weight:700}h1,h2,h3,h4,p{margin-top:0}h1{font-size:21px;margin-bottom:0}h2{font-size:30px;margin-bottom:8px;letter-spacing:0}h3{margin:0;font-size:15px}h4{margin:0 0 10px;font-size:13px}.global-search{position:relative;width:min(360px,100%)}.global-search form{display:flex;align-items:center;gap:8px;height:42px;padding:0 10px;background:#fff;border:1px solid #d3ddd5;border-radius:5px;color:#63746e}.global-search input{min-width:0;flex:1;border:0;outline:0;color:#1c2928;background:transparent;font-size:14px}.icon-button{width:28px;height:28px;border:0;background:transparent;color:#6e7d77;display:grid;place-items:center}.search-menu{position:absolute;z-index:5;width:100%;top:calc(100% + 6px);background:#fff;border:1px solid #d3ddd5;border-radius:5px;box-shadow:0 12px 24px #1a33251f;overflow:hidden}.search-menu button{width:100%;display:flex;justify-content:space-between;text-align:left;border:0;padding:12px 14px;background:#fff;color:#1c2928}.search-menu button:hover{background:#f1f5e6}.search-menu span{display:grid;gap:3px}.search-menu small,.search-menu p{color:#74827c;font-size:12px}.search-menu p{margin:0;padding:14px}.search-menu code,code{color:#5e6f68;font-family:Cascadia Mono,Consolas,monospace;font-size:12px}.page{padding-top:38px;max-width:1320px;margin:auto}.page-heading,.stock-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px}.page-heading>div>p:last-child,.stock-heading p{margin-bottom:0;color:#6e7d77;font-size:14px}.command-button{border:1px solid #9bada1;color:#234545;background:transparent;border-radius:4px;height:36px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700}.command-button:hover{background:#e9f0de}.command-button:disabled{cursor:wait;opacity:.55}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d5ded6;border:1px solid #d5ded6;margin-bottom:18px}.metric-strip>div{min-height:80px;padding:15px 18px;background:#fff}.metric-strip span{display:block;color:#6e7d77;font-size:12px;margin-bottom:7px}.metric-strip strong{font-size:21px}.metric-strip div:last-child strong{font-size:15px}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #d6ded7}.hotspots-table{border-collapse:collapse;width:100%;min-width:860px;font-size:13px}.hotspots-table th{padding:12px 14px;background:#edf2e9;color:#65766e;text-align:left;font-size:11px;font-weight:700}.hotspots-table td{padding:15px 14px;border-top:1px solid #e2e8e1;vertical-align:middle}.hotspots-table tbody tr{cursor:pointer}.hotspots-table tbody tr:hover{background:#f8faef}.hotspots-table td:nth-child(2){min-width:125px}.hotspots-table td:nth-child(2) strong{display:block;margin-bottom:4px}.rank{color:#7a8982;font-family:Cascadia Mono,Consolas,monospace}.driver{display:block;color:#264d4c;font-weight:700}.reason{display:block;margin-top:4px;color:#7b8983;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage,.scenario{display:inline-block;padding:3px 7px;border-radius:3px;font-size:11px;font-weight:700}.stage.emerging{background:#eaf0cb;color:#53651b}.stage.strengthening{background:#dcefe4;color:#175d43}.stage.diverging{background:#f5e4da;color:#9a4c33}.stage.cooling{background:#e8ecea;color:#63726d}.score-number{font-weight:800}.positive,.up{color:#c3422e!important}.caution{color:#857117}.neutral{color:#58706a}.down{color:#217064!important}.state-panel,.empty-panel{min-height:180px;background:#fff;border:1px solid #d6ded7;display:flex;justify-content:center;align-items:center;gap:10px;color:#60726a}.state-panel.error{color:#a54734;flex-wrap:wrap;padding:20px}.spinner{width:17px;height:17px;border:2px solid #cbd6ce;border-top-color:#1c5754;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.back-link{display:inline-flex;align-items:center;gap:5px;color:#42615e;font-size:13px;text-decoration:none;margin-bottom:23px}.back-link:hover{text-decoration:underline}.stock-heading h2 code{vertical-align:middle;margin-left:8px}.quote{text-align:right}.quote span{display:block;color:#718079;font-size:12px;margin-bottom:2px}.quote strong{display:block;font-size:30px}.quote b{display:inline-flex;align-items:center;gap:4px;font-size:13px}.asof{margin:-16px 0 24px;color:#75847e;font-size:12px}.overview-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:16px}.panel{background:#fff;border:1px solid #d6ded7;padding:20px}.panel-heading{display:flex;align-items:center;gap:8px;margin-bottom:18px;color:#244c4b}.panel-heading .confidence{margin-left:auto;color:#6e7d77;font-size:11px}.feature-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-bottom:15px;margin-bottom:14px;border-bottom:1px solid #e4e9e3}.feature-summary div{display:grid;gap:4px}.feature-summary span,.score-bar span,.stat-grid dt{color:#718078;font-size:12px}.feature-summary strong{font-size:23px}.score-bar{margin:13px 0}.score-bar>div:first-child{display:flex;justify-content:space-between}.score-bar strong{font-size:12px}.track{height:5px;background:#e8ece7;margin-top:6px}.track i{display:block;height:100%}.track i.positive{background:#cc5037}.track i.caution{background:#b39a32}.track i.neutral{background:#5f8780}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);margin:0}.stat-grid div{padding:12px 0;border-top:1px solid #e4e9e3}.stat-grid div:nth-child(odd){border-right:1px solid #e4e9e3;padding-right:14px}.stat-grid div:nth-child(2n){padding-left:14px}.stat-grid dt{margin-bottom:6px}.stat-grid dd{margin:0;font-weight:700;font-size:14px}.research-panel,.events-panel{min-height:280px}.scenario-list{display:grid;gap:12px}.scenario-list article{padding:11px 12px;background:#f6f8f3;border-left:3px solid #7b9386}.scenario-list p{margin:7px 0 4px;font-size:13px;line-height:1.55}.scenario-list small{color:#708078;font-size:11px}.scenario.bullish{background:#dcefe4;color:#1f6046}.scenario.base{background:#e9ebd7;color:#656222}.scenario.bearish{background:#f2e2da;color:#98503c}.risks{margin-top:18px;padding-top:15px;border-top:1px solid #e4e9e3}.risks p{color:#6e5149;font-size:12px;margin:6px 0}.theme-line{display:flex;align-items:center;gap:9px;padding-bottom:14px;border-bottom:1px solid #e4e9e3}.theme-line span{font-size:12px;color:#718078}.theme-line em{margin-left:auto;color:#266554;font-size:12px;font-style:normal}.event-list{list-style:none;margin:15px 0 0;padding:0}.event-list li{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf0ec}.event-list time,.event-list small{color:#75847e;font-size:11px}.event-list strong{display:block;font-size:13px;margin-bottom:4px}.empty-copy{color:#75847e;font-size:13px}@media (max-width: 820px){.app-shell{display:block}.sidebar{padding:14px 18px;flex-direction:row;align-items:center}.sidebar-nav{margin:0 0 0 auto;display:flex}.nav-link{padding:8px;font-size:0}.nav-link svg{width:19px;height:19px}.sidebar-footer{display:none}.main-content{padding:18px 16px 40px}.topbar{align-items:flex-start;flex-direction:column;gap:16px}.global-search{width:100%}.page{padding-top:28px}.page-heading,.stock-heading{align-items:flex-start;flex-direction:column}.metric-strip{grid-template-columns:1fr}.metric-strip>div{min-height:62px}.overview-grid{grid-template-columns:1fr}.quote{text-align:left}.asof{margin-top:-16px}.event-list li{grid-template-columns:78px 1fr}}.quality-note{margin:-4px 0 14px;color:#8a5f2d;font-size:12px}.risk-flag{display:inline-block;padding:3px 7px;border-radius:3px;font-size:11px;font-weight:700;background:#e6ece8;color:#526963}.risk-flag.elevated{background:#f2e2da;color:#98503c}.dataset-status-list li>span{display:grid;gap:2px;flex:1}.dataset-status-list small{color:#75847e;font-size:10px}.dataset-refresh{width:28px;height:28px;border:1px solid #ccd7cf;background:#fff;color:#46645e;display:grid;place-items:center;border-radius:4px}.dataset-refresh:disabled{opacity:.5;cursor:wait}.confirmation-heading h2 code{margin-left:8px;vertical-align:middle}.identity-badge{display:inline-flex;align-items:center;gap:7px;color:#205d47;background:#e2f0e7;border:1px solid #bed8c7;border-radius:4px;padding:8px 10px;font-size:12px;font-weight:700}.confirmation-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);border:1px solid #d6ded7;background:#d6ded7;gap:1px}.confirmation-summary,.collection-scope{background:#fff;padding:24px}.confirmation-details{display:grid;grid-template-columns:repeat(2,1fr);margin:0}.confirmation-details div{padding:14px 0;border-top:1px solid #e4e9e3}.confirmation-details div:nth-child(odd){padding-right:18px}.confirmation-details div:nth-child(2n){padding-left:18px;border-left:1px solid #e4e9e3}.confirmation-details dt{color:#718078;font-size:12px;margin-bottom:5px}.confirmation-details dd{margin:0;font-size:14px;font-weight:700}.business-summary{color:#65766f;border-top:1px solid #e4e9e3;margin:0;padding-top:16px;font-size:13px;line-height:1.65}.profile-state{border-top:1px solid #e4e9e3;border-bottom:1px solid #e4e9e3;padding:14px 0;display:grid;gap:4px}.profile-state span{color:#718078;font-size:12px}.profile-state strong{font-size:16px}.profile-state em{color:#267052;font-size:11px;font-style:normal}.dataset-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:10px}.dataset-list li{display:flex;align-items:center;gap:8px;color:#354c48;font-size:13px}.dataset-list svg{color:#56806c}.scope-note{color:#718078;font-size:12px;line-height:1.6}.inline-error{color:#a54734;background:#f8ebe6;padding:9px;font-size:12px}.primary-command{width:100%;min-height:40px;border:1px solid #193f3e;border-radius:4px;background:#204f4e;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700}.primary-command:hover{background:#183f3e}.primary-command:disabled{cursor:wait;opacity:.58}@media (max-width: 820px){.confirmation-layout,.confirmation-details{grid-template-columns:1fr}.confirmation-details div:nth-child(odd),.confirmation-details div:nth-child(2n){padding:12px 0;border-left:0}.identity-badge{margin-top:2px}}.history-list{border:1px solid #d6ded7;background:#d6ded7;display:grid;gap:1px}.history-row{display:grid;grid-template-columns:minmax(210px,1.6fr) repeat(5,minmax(88px,.7fr));background:#fff;min-height:74px;align-items:center}.history-row>div{height:100%;padding:13px 16px;border-right:1px solid #e2e8e1;display:flex;flex-direction:column;justify-content:center;gap:4px}.history-row>div:last-child{border-right:0}.history-row span,.history-row code{color:#718078;font-size:11px}.history-row strong{font-size:16px}.history-time{display:grid!important;grid-template-columns:20px 1fr!important}.history-time code{grid-column:2}.movement{position:relative}.movement svg{position:absolute;right:12px;top:12px}.operations-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.health-healthy{color:#267052}.health-warning{color:#8a6b1f}.health-failed{color:#a54734}.audit-list,.quality-list{border-top:1px solid #e4e9e3}.audit-list article,.quality-list article{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:start;gap:9px;padding:13px 0;border-bottom:1px solid #edf0ec}.audit-list strong,.quality-list strong{display:block;font-size:13px}.audit-list small,.quality-list small{display:block;margin-top:4px;color:#75847e;font-size:11px}.audit-list p{margin:6px 0 0;color:#a54734;font-size:11px;line-height:1.4}.audit-list code,.quality-list code{font-size:10px}.status-mark{display:grid;place-items:center}.status-mark.completed{color:#267052}.status-mark.failed{color:#a54734}.status-mark.warning,.status-mark.partial{color:#8a6b1f}.status-dot{width:8px;height:8px;margin:5px;border-radius:50%;background:#6e7d77}.status-dot.passed{background:#2e795d}.status-dot.warning{background:#b39027}.status-dot.failed{background:#b94734}.research-history-panel{margin-top:16px}.research-version-list{border-top:1px solid #e4e9e3}.research-version-list article{display:grid;grid-template-columns:140px minmax(0,1fr) 150px;gap:18px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0ec}.research-version-list time,.research-version-list small{color:#75847e;font-size:11px}.research-version-list strong,.research-version-list small{display:block}.research-version-list div:last-child{text-align:right}.version-comparison{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e0e6df;margin-bottom:16px}.version-comparison div{padding:12px 14px;border-right:1px solid #e0e6df}.version-comparison div:last-child{border-right:0}.version-comparison span{display:block;color:#718078;font-size:11px;margin-bottom:5px}.version-comparison strong{font-size:17px}@media (max-width: 820px){.history-row{grid-template-columns:repeat(2,1fr)}.history-row>div{border-bottom:1px solid #e2e8e1}.history-time{grid-column:1 / -1}.operations-grid{grid-template-columns:1fr}.research-version-list article{grid-template-columns:1fr auto}.research-version-list time{grid-column:1 / -1}.research-version-list div:last-child{text-align:right}.version-comparison{grid-template-columns:repeat(2,1fr)}.version-comparison div:nth-child(2){border-right:0}.version-comparison div:nth-child(-n+2){border-bottom:1px solid #e0e6df}}.operations-alerts{margin-top:16px}.health-degraded{color:#8a5f2d}
