:root{
  --navy:#061a34;--navy-2:#0a2c55;--navy-3:#124474;--blue:#176bff;--blue-2:#318cff;
  --cyan:#24d4ff;--cyan-soft:#dff8ff;--ink:#102943;--muted:#68809a;--soft:#f4f8fd;
  --bg:#edf4fb;--panel:#fff;--line:#d7e4f1;--red:#ed4f61;--orange:#f59b35;--green:#13b981;
  --radius:16px;--radius-sm:10px;--shadow:0 14px 42px rgba(15,59,107,.09);
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;min-height:100vh;background:
  radial-gradient(circle at 10% 20%,rgba(36,212,255,.08),transparent 24%),
  linear-gradient(180deg,#eaf3fb 0,#f5f8fc 470px,#eef4fa 100%);color:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(23,107,255,.22);outline-offset:2px}
.hidden{display:none!important}

.topbar{min-height:138px;padding:27px max(24px,calc((100vw - 1420px)/2));display:flex;justify-content:space-between;align-items:center;color:#fff;position:relative;overflow:hidden;background:
  radial-gradient(circle at 78% -50%,rgba(36,212,255,.28),transparent 42%),
  radial-gradient(circle at 18% 180%,rgba(49,140,255,.24),transparent 45%),
  linear-gradient(118deg,#04152d,#082d55 62%,#063b63);border-radius:0 0 28px 28px;box-shadow:0 20px 55px rgba(5,37,72,.18)}
.topbar-grid{position:absolute;inset:0;opacity:.13;background-image:
  linear-gradient(rgba(92,191,255,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(92,191,255,.32) 1px,transparent 1px);
  background-size:34px 34px;mask-image:linear-gradient(90deg,transparent 3%,#000 55%,transparent)}
.topbar:after{content:"";position:absolute;width:330px;height:330px;right:9%;top:-270px;border:1px solid rgba(73,219,255,.35);border-radius:50%;box-shadow:0 0 0 42px rgba(73,219,255,.04),0 0 0 88px rgba(73,219,255,.025)}
.brand,.top-actions{position:relative;z-index:1}
.brand{display:flex;align-items:center;gap:18px}
.brand-mark{width:55px;height:55px;border-radius:17px;display:flex;align-items:flex-end;justify-content:center;gap:5px;padding:12px;position:relative;background:linear-gradient(145deg,rgba(46,150,255,.26),rgba(21,211,250,.08));border:1px solid rgba(127,218,255,.35);box-shadow:inset 0 1px rgba(255,255,255,.15),0 12px 32px rgba(0,10,30,.22)}
.brand-mark i{display:block;width:6px;border-radius:6px 6px 2px 2px;background:linear-gradient(#68e9ff,#2195ff);box-shadow:0 0 12px rgba(36,212,255,.55)}
.brand-mark i:nth-child(1){height:15px}.brand-mark i:nth-child(2){height:29px}.brand-mark i:nth-child(3){height:21px}
.brand-mark span{position:absolute;width:35px;height:35px;border:1px solid rgba(76,189,255,.22);border-radius:50%}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.1px;color:#8fbce1}.eyebrow.blue{color:var(--blue)}
h1{font-size:28px;letter-spacing:2px;margin:4px 0 3px}.topbar p{margin:0;color:#a8c5dc;font-size:12px;letter-spacing:.3px}
.top-actions{display:flex;align-items:center;gap:13px}
.online{height:34px;padding:0 12px;border-radius:18px;display:flex;align-items:center;gap:7px;background:rgba(5,30,55,.43);border:1px solid rgba(144,203,235,.18);font-size:10px;letter-spacing:1.1px;color:#c5def0}
.online i,.health{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--green);box-shadow:0 0 9px rgba(19,185,129,.75)}
.time-stack{min-width:190px;display:grid;gap:5px;font-size:10px;color:#8fb1cb}.time-stack b{font-weight:650;color:#e4f4ff;margin-left:4px}.time-stack em{font-style:normal;color:#63e1ff;margin-left:4px}.time-stack em.stale{color:#ffba6e}

.button{min-height:36px;border-radius:10px;padding:8px 14px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;text-decoration:none;white-space:nowrap}
.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.46;cursor:not-allowed;transform:none}
.button-primary{background:linear-gradient(135deg,var(--blue),var(--blue-2));color:#fff;box-shadow:0 8px 20px rgba(23,107,255,.22)}
.button-primary:hover{box-shadow:0 10px 26px rgba(23,107,255,.3)}
.button-secondary{background:#edf5ff;border-color:#b9d5ff;color:#0c5edb}.button-secondary:hover{background:#e2efff;border-color:#82b6ff}
.button-report{background:#e9fbff;border-color:#a4e9f7;color:#08758c}.button-report:hover{background:#dff8fd}
.button-ghost{background:#fff;border-color:var(--line);color:#46627d}.button-ghost:hover{border-color:#9abce0;background:#f7fbff}
.button-dark{background:rgba(255,255,255,.08);border-color:rgba(168,216,244,.28);color:#e6f5ff}.button-dark:hover{background:rgba(255,255,255,.14)}
.button-dark:disabled{opacity:.82}.button-dark:disabled .refresh-icon{animation:spin 1s linear infinite}
.button-link{background:#f5f9fe;border-color:#d9e6f2;color:#1a64bc}.button-danger{background:#fff2f4;border-color:#ffc3ca;color:#c83246}
.refresh-icon{font-size:17px}

.stats{max-width:1420px;margin:-21px auto 0;padding:0 24px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;position:relative;z-index:3}
.stat{min-width:0;min-height:104px;text-align:left;background:rgba(255,255,255,.96);border:1px solid rgba(208,224,239,.95);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start}
.stat:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(var(--cyan),var(--blue))}
.stat-glow{position:absolute;width:75px;height:75px;border-radius:50%;right:-30px;top:-38px;background:rgba(37,167,255,.09)}
.stat .k{font-size:11px;color:var(--muted);letter-spacing:.5px}.stat .v{font-family:"Segoe UI",Arial,sans-serif;font-size:25px;line-height:1.2;color:var(--navy-2);margin:7px 0 5px}.stat .note{font-size:10px;color:#8da0b3}
.stat-action{cursor:pointer}.stat-action:hover{border-color:#9bc8ff;transform:translateY(-2px);box-shadow:0 18px 44px rgba(17,93,178,.14)}

.tabs{height:62px;margin-top:20px;background:rgba(255,255,255,.94);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}
.tabs-inner{height:100%;max-width:1372px;margin:auto;display:flex;gap:38px;padding:0 24px}
.tab{height:100%;border:0;background:transparent;color:#5f7891;padding:0 4px;font-size:14px;position:relative;display:flex;align-items:center;gap:8px}
.tab span{font:700 9px Arial;color:#a0b3c5}.tab.active{color:var(--navy);font-weight:750}.tab.active span{color:var(--blue)}
.tab.active:after{content:"";height:3px;border-radius:3px 3px 0 0;position:absolute;left:0;right:0;bottom:0;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 10px rgba(36,212,255,.45)}

main{max-width:1420px;margin:0 auto;padding:30px 24px 70px}.view{display:none}.view.active{display:block;animation:view-in .2s ease-out}@keyframes view-in{from{opacity:.4;transform:translateY(4px)}}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 19px}.section-head h2{font-size:24px;letter-spacing:.2px;margin:4px 0;color:var(--navy)}.section-head p{font-size:12px;color:var(--muted);margin:5px 0}.result-count{font-size:12px;color:var(--muted)}
.new-news-banner{width:100%;height:48px;margin:-3px 0 13px;padding:0 18px;border:1px solid #9fcbff;border-radius:13px;background:linear-gradient(90deg,#eaf4ff,#e9fbff);color:#0b5ecb;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 22px rgba(23,107,255,.08)}
.new-news-banner span{display:flex;align-items:center;gap:9px;font-weight:700}.new-news-banner i{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px rgba(23,107,255,.11)}.new-news-banner b{font-size:11px;font-weight:600;color:#4480bd}

.news-controls{position:sticky;top:62px;z-index:9;padding:10px 0 1px;background:linear-gradient(180deg,rgba(241,247,252,.98) 82%,rgba(241,247,252,.82) 93%,transparent);backdrop-filter:blur(12px)}
.filters{display:grid;grid-template-columns:minmax(260px,1fr) 190px 190px 160px;gap:11px;margin-bottom:12px}
.search-wrap,.select-wrap{height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;box-shadow:0 4px 14px rgba(15,58,100,.035);overflow:hidden}
.search-wrap:focus-within,.select-wrap:focus-within{border-color:#79afff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}
.search-wrap>span{font-size:23px;color:#7895af;margin:0 10px 0 14px}.search-wrap input{width:100%;height:100%;border:0;outline:0;padding:0 12px 0 0;color:var(--ink);background:transparent}
.global-search-form button{align-self:stretch;flex:none;border:0;border-left:1px solid #d9e6f0;background:#f3f8fd;color:#1769b7;padding:0 14px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.global-search-form button:hover{background:#e8f3ff}
.select-wrap>span{padding-left:13px;font-size:10px;color:#8ba0b5;white-space:nowrap}.select-wrap select{min-width:0;flex:1;height:100%;border:0;outline:0;padding:0 11px;color:#294b6b;background:#fff}
.level-tabs{display:flex;gap:7px;margin-bottom:12px;overflow:auto;padding:1px}
.level-tab{min-width:104px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#647d94;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 3px 10px rgba(17,58,98,.025)}
.level-tab b{font:800 12px Arial;color:var(--navy-2)}.level-tab span{font-size:12px}.level-tab:hover{border-color:#98bfe8}
.level-tab.active{background:linear-gradient(135deg,var(--navy-2),#104a79);border-color:var(--navy-2);color:#eaf7ff;box-shadow:0 7px 18px rgba(7,42,78,.16)}.level-tab.active b{color:var(--cyan)}
.level-tab.level-s:not(.active) b{color:var(--red)}.level-tab.level-a:not(.active) b{color:var(--orange)}.level-tab.level-b:not(.active) b{color:var(--blue)}
.level-guide{margin:-5px 0 12px;border:1px solid #d5e4f2;border-radius:11px;background:rgba(255,255,255,.84);color:#648099;font-size:10px}.level-guide summary{padding:7px 11px;color:#37698f;cursor:pointer}.level-guide div{padding:0 11px 9px;line-height:1.65}.level-guide b{color:#164f7f;margin-left:7px}.level-guide b:first-child{margin-left:0}

.feed-shell{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}
.feed-head{display:grid;grid-template-columns:126px 1fr 138px;gap:20px;padding:12px 22px;background:linear-gradient(90deg,#edf4fb,#f5f9fd);color:#728ba2;font-size:10px;letter-spacing:.8px;border-bottom:1px solid var(--line)}
.news-row{display:grid;grid-template-columns:126px minmax(0,1fr) 138px;gap:20px;padding:19px 22px;border-top:1px solid #e8eff6;position:relative;transition:background .15s}
.news-row:first-child{border-top:0}.news-row:before{content:"";position:absolute;left:0;top:15px;bottom:15px;width:4px;border-radius:0 4px 4px 0;background:#c4d2df}.news-row.level-S:before{background:var(--red);box-shadow:0 0 12px rgba(237,79,97,.23)}.news-row.level-A:before{background:var(--orange)}.news-row.level-B:before{background:var(--blue)}.news-row:hover{background:#f8fbff}
.news-row.is-read{background:#f6f9fc}.news-row.is-read .news-title-button{color:#7e91a4;font-weight:600}.news-row.is-read .news-title-button:after{content:" · 已读";font-size:9px;color:#9babb9;font-weight:500}.news-row.is-read .reason,.news-row.is-read .meta{opacity:.72}
.time-col{display:flex;align-items:flex-start;gap:11px}.time{font:750 14px "Segoe UI",Arial;color:#284966;white-space:nowrap}.date{display:block;color:#96a9bb;font-size:10px;font-weight:500;margin-top:5px}
.level{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#eef2f6;color:#74879a;font:800 12px Arial}.level-S .level{background:#fff0f2;color:var(--red)}.level-A .level{background:#fff5e8;color:#dc7a13}.level-B .level{background:#eaf3ff;color:var(--blue)}
.news-main{min-width:0}.news-main h3{display:flex;align-items:flex-start;gap:7px;font-size:15px;line-height:1.68;margin:-4px 0 7px;color:#102d49}.news-title-button{display:inline-block;width:100%;min-width:0;border:0;background:none;padding:0;color:inherit;text-align:left;text-decoration:none;font-weight:750;cursor:pointer;overflow-wrap:anywhere}.news-title-button:hover{color:#0d67e5;text-decoration:underline;text-decoration-color:#9bc8ff;text-underline-offset:4px}
.translated-mark{flex:none;margin-top:3px;border:1px solid #b5d8ff;border-radius:8px;padding:1px 5px;background:#eff6ff;color:#3574bb;font-size:9px;font-weight:600}
.meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;color:#8296a9}.source{color:#0b70d5;font-weight:650}.tag,.multi-source{padding:3px 7px;border-radius:8px;background:#edf5fd;color:#4c7395}.multi-source{background:#e9fbff;color:#16798d}
.tag{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:28px;max-width:100%;padding:0 8px;border:1px solid #d7e6f2;border-radius:7px;font-size:12px;font-weight:400;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.semantic-tag{background:#f4f8fc;color:#496981}.semantic-tag b{flex:none;font-size:inherit;line-height:inherit;color:inherit;font-weight:400}.tag-entity{border-color:#bcd7fb;background:#eef6ff;color:#1763af}.tag-industry{border-color:#c8e4db;background:#eff9f5;color:#23765d}.tag-theme{border-color:#d9d0f4;background:#f7f3ff;color:#69519b}.tag-event_type{border-color:#f1d6b5;background:#fff8ed;color:#9b6325}.tag-direction{border-color:#efd0d5;background:#fff4f6;color:#a54756}.legacy-tag{color:#4c7395}
.reason{margin-top:8px;border-left:2px solid #c4d9eb;padding-left:9px;font-size:11px;color:#758ba0;line-height:1.55}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.row-actions .button{width:100%;font-size:12px}.button-watch{background:#fff;border-color:#c9dcec;color:#496a86}.button-watch.active{background:#e8f3ff;border-color:#77afff;color:#075fc9}.button-status{border-color:#d5e2ef;background:#f7fafd;color:#4e6881}.button-status.status-running,.button-status.status-queued{background:#fff8eb;border-color:#ffd69c;color:#a7630c}.button-status.status-failed{background:#fff1f3;border-color:#ffc6cd;color:#c9364a}
.status-pill{display:inline-flex;align-items:center;gap:6px}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#8aa0b4}.status-running:before,.status-queued:before{background:var(--orange);animation:pulse 1.15s infinite}.status-complete:before{background:var(--green)}.status-failed:before{background:var(--red)}@keyframes pulse{50%{opacity:.3;box-shadow:0 0 0 5px rgba(245,155,53,.1)}}
.pager,.feed-loader{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:18px;font-size:12px;color:var(--muted)}.feed-loader{min-height:48px}.feed-loader.is-loading:before{content:"";width:15px;height:15px;border:2px solid #c5d7e6;border-top-color:var(--blue);border-radius:50%;animation:spin .75s linear infinite}.feed-loader.is-complete{color:#8da0b1}
.back-to-top{position:fixed;right:22px;bottom:max(22px,env(safe-area-inset-bottom));z-index:35;width:46px;height:46px;border:1px solid #b9d7ee;border-radius:50%;background:rgba(255,255,255,.94);color:#1769ad;box-shadow:0 9px 28px rgba(12,56,94,.18);font-size:23px;line-height:1;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .18s,visibility .18s,transform .18s,background .18s}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:#edf7ff}.back-to-top:focus-visible{outline:2px solid #58a8ec;outline-offset:3px}

.report-workspace{display:grid;grid-template-columns:340px minmax(0,1fr);min-height:680px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.report-list{border-right:1px solid var(--line);background:#f5f8fc;max-height:calc(100vh - 230px);overflow:auto}.report-list-card{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:18px;cursor:pointer;position:relative}.report-list-card:hover,.report-list-card.active{background:#fff}.report-list-card.active:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(var(--cyan),var(--blue))}.report-kind{font-size:9px;color:var(--blue);letter-spacing:1.2px;font-weight:800}.report-list-card h3{font-size:13px;line-height:1.6;margin:7px 0;color:#1a3956}.report-list-card p{font-size:10px;color:#899db0;margin:0}.report-list-card .report-heat{margin-top:6px;color:#3477ac}.report-viewer{min-width:0;max-height:calc(100vh - 230px);overflow:auto;background:#fff}.report-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:9px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.95);backdrop-filter:blur(12px)}.report-toolbar>div{flex:1;min-width:180px}.report-toolbar span{font-size:9px;color:var(--blue);letter-spacing:1px}.report-toolbar h3{font-size:13px;margin:3px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.report-body{padding:26px 34px 60px;font-size:13px;line-height:1.85;color:#29445d}.report-body h1{font-size:25px;color:var(--navy);border-bottom:2px solid #9bdfff;padding-bottom:12px}.report-body h2{font-size:18px;color:#123f67;margin-top:34px;border-left:4px solid var(--blue);padding-left:11px}.report-body h3{font-size:15px;color:#185a89;margin-top:26px}.report-body h4{font-size:14px}.report-body p{margin:8px 0}.report-body ul,.report-body ol{padding-left:23px}.report-body li{margin:5px 0}.report-body code{background:#edf4fb;border-radius:5px;padding:2px 5px;color:#0b5faf}.report-body blockquote{border-left:4px solid var(--cyan);border-radius:0 10px 10px 0;background:#eefaff;margin:14px 0;padding:9px 15px;color:#385f78}.report-body blockquote p{margin:4px 0}.table-wrap{width:100%;overflow-x:auto;margin:15px 0;border-radius:10px;border:1px solid #d4e2ef}.report-body table{width:100%;border-collapse:collapse}.report-body th,.report-body td{border-right:1px solid #d9e5f0;border-bottom:1px solid #d9e5f0;padding:9px 11px;min-width:95px;text-align:left}.report-body th{background:#eaf4ff;color:#174d79}.report-body tr:last-child td{border-bottom:0}.report-body a{color:#0a6ed8}.code-block{overflow:auto;background:#f3f8fd;color:#123b60;border:1px solid #cddfed;border-radius:12px;padding:15px;box-shadow:inset 0 1px 0 #fff}.code-block code{background:transparent;color:inherit;padding:0}.report-body hr{border:0;border-top:1px solid var(--line);margin:24px 0}.report-empty,.empty{min-height:190px;display:grid;place-items:center;text-align:center;padding:40px;color:#8196aa}.report-viewer>.report-empty{min-height:650px}.error-empty{color:#bd3b4d}
.analysis-launcher{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(300px,1.5fr) auto;gap:12px;align-items:center;margin:-4px 0 16px;padding:15px 17px;border:1px solid #c9dff4;border-radius:16px;background:linear-gradient(120deg,#f9fcff,#edf7ff);box-shadow:0 8px 25px rgba(15,59,107,.06)}.analysis-launcher>div span{display:block;font-size:9px;font-weight:800;letter-spacing:1.3px;color:var(--blue)}.analysis-launcher>div strong{display:block;margin:4px 0 2px;font-size:13px;color:#163b5e}.analysis-launcher>div p{margin:0;font-size:10px;line-height:1.45;color:#7890a6}.analysis-launcher textarea,.analysis-launcher select{width:100%;min-width:0;height:50px;border:1px solid #c7dced;border-radius:11px;background:#fff;color:var(--ink);outline:0}.analysis-launcher textarea{resize:none;padding:13px 11px;line-height:1.45}.analysis-launcher select{padding:0 10px}.analysis-launcher textarea:focus,.analysis-launcher select:focus{border-color:#67a8ff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}.stock-launcher{grid-template-columns:minmax(220px,.75fr) minmax(250px,.8fr) minmax(290px,1fr) auto;align-items:end}.stock-launcher>div{align-self:center}.launcher-field{display:grid;gap:6px;min-width:0}.launcher-field>span{font-size:9px;font-weight:750;color:#58738c;line-height:1}.stock-launcher>.button{height:50px}
.research-tabs{display:flex;gap:5px;width:max-content;margin:-4px 0 16px;padding:4px;border:1px solid #d1e1ee;border-radius:12px;background:#edf4fa}.research-tab{min-width:124px;border:0;border-radius:9px;padding:10px 18px;background:transparent;color:#71889d;font-weight:750;cursor:pointer}.research-tab.active{background:#fff;color:#125da9;box-shadow:0 3px 12px rgba(15,63,109,.1)}.research-panel.hidden{display:none}.report-subhead,.screen-explainer{display:flex;align-items:center;gap:12px;margin-bottom:12px}.report-subhead>span{flex:1;color:#56728a;font-size:11px}.screen-explainer{padding:13px 15px;border:1px solid #cbdfee;border-radius:13px;background:#f7fbff}.screen-explainer strong{color:#164b77;font-size:12px;white-space:nowrap}.screen-explainer span{flex:1;color:#607d94;font-size:11px;line-height:1.55}.screen-workspace{min-height:640px}.screen-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:15px 18px;border-bottom:1px solid var(--line);background:#f8fbfe}.screen-summary>div{padding:12px;border:1px solid #d8e5ef;border-radius:11px;background:#fff}.screen-summary span,.screen-summary small{display:block;color:#8095a8;font-size:9.5px}.screen-summary strong{display:block;margin:5px 0;color:#173f61;font-size:17px}.screen-rules{margin:13px 18px;padding:12px 14px;border:1px solid #d6e4ef;border-radius:11px;background:#fbfdff;color:#58758d;font-size:11px}.screen-rules summary{cursor:pointer;color:#1a5f96;font-weight:750}.screen-rules ul{margin:10px 0;padding-left:20px}.screen-rules p{margin:6px 0}.screen-candidate-list{display:grid;gap:8px;padding:5px 18px 28px}.screen-candidate{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(250px,1fr) minmax(210px,1fr) auto;gap:12px;align-items:center;padding:12px 13px;border:1px solid #d9e5ee;border-radius:12px;background:#fff}.screen-candidate.tier-a{border-left:4px solid #e45564}.screen-candidate.tier-b{border-left:4px solid #efb144}.screen-candidate.tier-c{border-left:4px solid #9eafbe}.screen-candidate-main{display:flex;align-items:center;gap:10px;min-width:0}.tier-badge{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#edf5fc;color:#196cba;font-weight:850}.screen-candidate-main h3{margin:0;color:#173d5f;font-size:13px}.screen-candidate-main h3 small{color:#8296a9;font-size:9px}.screen-candidate-main p{margin:4px 0 0;color:#7890a3;font-size:9.5px}.screen-metrics{display:grid;grid-template-columns:1fr 1fr;gap:4px 9px}.screen-metrics span,.screen-quick span{color:#8a9dad;font-size:9px}.screen-metrics b{color:#355873}.screen-quick{display:grid;gap:3px;min-width:0}.screen-quick b{font-size:10.5px;color:#345874}.screen-quick small{overflow:hidden;color:#8296a7;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.screen-action .button{white-space:nowrap}
.report-digest{margin:20px 24px 0;border:1px solid #bbd8f5;border-radius:17px;background:linear-gradient(145deg,#f7fbff,#edf7ff);box-shadow:0 10px 28px rgba(21,94,171,.07);overflow:hidden}.digest-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #d5e7f7}.quality-grade{width:46px;height:46px;border:0;flex:none;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#0a3765,#176bff);color:#fff;font:800 21px Arial;box-shadow:0 8px 20px rgba(23,107,255,.2);cursor:pointer}.quality-grade:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(23,107,255,.28)}.quality-grade.grade-C,.quality-grade.grade-D{background:linear-gradient(145deg,#80551d,#f59b35)}.digest-head>div{min-width:0;flex:1}.digest-head span{font-size:9px;letter-spacing:1px;color:#3579bd}.digest-head h3{margin:4px 0 0;font-size:14px;line-height:1.55;color:#113b62}.digest-head em{font-size:9px;font-style:normal;color:#7890a7}.digest-core{padding:16px 20px;background:#fff}.digest-core h4{margin:0 0 8px;font-size:11px;color:#1766b6}.digest-core ul{padding-left:19px;margin:0}.digest-core li{font-size:11px;line-height:1.7;color:#3d5972;margin:5px 0}.quality-details{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#dceaf6;border-top:1px solid #d5e7f7}.quality-details>div{background:#f9fcff;padding:13px 18px}.quality-details b{font-size:11px;color:#155f9c}.quality-details p{font-size:10px;line-height:1.55;color:#647e95;margin:5px 0}.digest-disclaimer{padding:10px 18px;font-size:9px;color:#71899e;background:#f7fbff;border-top:1px solid #e0edf8}.report-list-grade{float:right;border-radius:7px;padding:2px 6px;color:#0c64c6;background:#e9f3ff;font-size:9px}

.opportunity-overview{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:10px 13px;border:1px solid #d2e3f0;border-radius:13px;background:rgba(255,255,255,.82)}.opportunity-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:#6c8297;font-size:10px}.opportunity-summary span{display:flex;align-items:baseline;gap:4px}.opportunity-summary b{font:800 16px Arial;color:#176ec9}.opportunity-summary .summary-hot b{color:#d74757}.opportunity-summary .summary-warm b{color:#df861d}.opportunity-summary em{font-style:normal;color:#8ca0b1}.opportunity-sort{display:flex;align-items:center;gap:7px;flex:none;color:#7890a5;font-size:9px}.opportunity-sort select{height:34px;border:1px solid #c8dceb;border-radius:9px;background:#fff;color:#31526e;padding:0 28px 0 9px}
.opportunity-list{display:grid;gap:12px}.opportunity-card{display:grid;grid-template-columns:76px minmax(0,1fr) 126px;gap:18px;align-items:stretch;padding:17px 20px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 28px rgba(15,59,107,.06);position:relative;overflow:hidden}.opportunity-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;background:linear-gradient(var(--cyan),var(--blue));border-radius:0 4px 4px 0}.opportunity-card.is-read .news-title-button{color:#8193a5;font-weight:600}.opportunity-score{display:grid;place-content:center;text-align:center;border-right:1px solid #e7eef5;padding-right:16px}.opportunity-score strong{display:block;font:800 22px Arial;color:#105fae}.opportunity-score span{font-size:9px;color:#8095a9}.opportunity-main{min-width:0;align-self:center}.opportunity-main h3{font-size:14px;line-height:1.55;margin:0 0 7px;color:#123553}.opportunity-main>p{margin:0;font-size:10px;color:#8195a8}.precheck{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:5px 8px;align-items:center;margin-top:10px;padding:8px 10px;border:1px solid #d7e8f6;border-radius:10px;background:#f6faff}.precheck .heat{grid-row:1/3;padding:4px 7px;border-radius:8px;background:#e8f3ff;color:#1169bc;font-size:9px;font-weight:700}.precheck b{font-size:9px;color:#66829a}.precheck strong{font-size:10px;color:#1f537c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.precheck small{grid-column:2/4;color:#8296a8;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.light-insight{margin-top:8px}.insight-empty,.insight-progress,.insight-failed{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid #dde8f1;border-radius:9px;background:#fafcfe}.insight-empty>*,.insight-progress div>*,.insight-failed>*{display:block}.insight-empty b,.insight-progress b,.insight-failed b{font-size:10px;color:#365b79}.insight-empty span,.insight-progress span,.insight-failed span{font-size:9px;color:#8397a9}.insight-progress{border-color:#cce4f6;background:#f3faff}.insight-failed{border-color:#f2d5d9;background:#fff8f8}.insight-failed b{color:#b94150}.insight-result{border:1px solid #c9e1f2;border-radius:9px;background:#f7fbff;overflow:hidden}.insight-result summary{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;cursor:pointer;color:#1769b7;font-size:10px;font-weight:700}.insight-result summary em{font-size:9px;font-weight:400;font-style:normal;color:#879aab}.insight-result>div{padding:8px 12px 10px;border-top:1px solid #dbeaf5;font-size:10px;line-height:1.65;color:#38566f}.insight-result h2{margin:10px 0 4px;font-size:11px;color:#155f9e}.insight-result p,.insight-result ul{margin:4px 0}.insight-result ul{padding-left:18px}.insight-boundary{color:#8497a8!important;font-size:9px!important}.opportunity-actions{display:grid;grid-template-columns:1fr;align-content:center;gap:8px;padding-left:2px}.opportunity-actions .button{width:100%;min-height:38px;font-size:11px}

.modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:22px;background:rgba(3,20,40,.68);backdrop-filter:blur(7px)}.modal-card{width:min(620px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;border:1px solid rgba(165,207,240,.75);border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,21,50,.34);position:relative}.modal-card:before{content:"";position:absolute;left:28px;right:28px;top:0;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--blue),var(--cyan))}.modal-card h2{color:var(--navy);margin:7px 0 5px;font-size:22px}.modal-close,.drawer-close{position:absolute;right:15px;top:13px;width:36px;height:36px;border:0;border-radius:11px;background:#eff4f9;color:#6b8195;font-size:24px;line-height:1}.modal-close:hover,.drawer-close:hover{background:#e4edf6;color:var(--navy)}.modal-lead{color:var(--muted);font-size:12px;line-height:1.7;margin:4px 0 15px}.stock-modal-card{width:min(760px,100%)}.priority-legend{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 13px}.priority-legend span{border-radius:9px;padding:4px 8px;font-size:10px}.priority-a{color:#c63d32;background:#fff0ed}.priority-b{color:#0e64cb;background:#eaf3ff}.priority-c{color:#4e718e;background:#eef4f8}.priority-low{color:#766f7c;background:#f4f1f5}
.candidates{display:grid;gap:10px;max-height:310px;overflow:auto;padding-right:3px}.candidate-group{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fbfdff}.candidate-group h3{margin:0 0 9px;font-size:12px;color:#31506d}.candidate-group h3 span{font-weight:400;color:#8da0b2;margin-left:5px}.candidate-group>div{display:flex;flex-wrap:wrap;gap:7px}.candidate{min-width:135px;border:1px solid #cbdceb;border-radius:10px;background:#fff;color:#315471;padding:8px 10px;display:grid;grid-template-columns:13px 1fr;gap:2px 7px;text-align:left}.candidate i{grid-row:1/4;width:13px;height:13px;margin-top:3px;border:1px solid #9fb8ce;border-radius:4px}.candidate span{font-size:11px}.candidate b{font:700 11px Arial;color:#6d879d}.candidate small{grid-column:2;font-size:10px;color:#71899e}.candidate.active{border-color:#4b98ff;background:#edf6ff;box-shadow:0 0 0 2px rgba(23,107,255,.08)}.candidate.active i{border-color:var(--blue);background:var(--blue);box-shadow:inset 0 0 0 3px #fff}.priority-a .candidate.active{border-color:#f28578;background:#fff3f1}.priority-a .candidate.active i{background:#e45849;border-color:#e45849}.candidate-empty{padding:20px;text-align:center;color:var(--muted);font-size:12px;background:#f7fafd;border-radius:12px}.candidate-warning,.adaptive-warning{padding:11px 13px;border:1px solid #f4b8a8;border-radius:12px;background:#fff4ef;color:#9b382f;font-size:11px;line-height:1.6}.adaptive-warning{margin:14px 0}.adaptive-warning ul{margin:6px 0 0;padding-left:18px}.field-label{display:block;font-size:11px;color:#526d84;margin:17px 0 7px}.stock-input{width:100%;height:76px;resize:vertical;border:1px solid var(--line);border-radius:12px;background:#fbfdff;color:var(--ink);padding:11px 13px;outline:0}.stock-input:focus{border-color:#73adff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}.selection-summary{margin-top:9px;font-size:11px;color:#35658e;line-height:1.55}.selection-summary.warning{color:#c53d4d}.callout{display:flex;gap:10px;margin-top:14px;padding:11px 13px;border-radius:12px;background:#edf7ff;border:1px solid #cfe8ff;font-size:11px;color:#466d8d}.callout b{color:#0c66ca;white-space:nowrap}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}

.job-modal-card{width:min(820px,100%)}.job-modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-right:32px}.job-modal-head .status-pill{margin-top:22px;font-size:12px}.progress-track,.job-progress{display:block;width:100%;border:0;border-radius:8px;overflow:hidden;background:#e8eff6;color:var(--blue);accent-color:var(--blue)}.progress-track{height:8px;margin:8px 0}.job-progress{height:3px;margin-top:5px}.progress-track::-webkit-progress-bar,.job-progress::-webkit-progress-bar{background:#e2eaf2;border-radius:8px}.progress-track::-webkit-progress-value,.job-progress::-webkit-progress-value{border-radius:8px;background:linear-gradient(90deg,var(--blue),var(--cyan));box-shadow:0 0 10px rgba(36,212,255,.35)}.progress-track::-moz-progress-bar,.job-progress::-moz-progress-bar{border-radius:8px;background:linear-gradient(90deg,var(--blue),var(--cyan))}.progress-text{font-size:11px;color:#678198;margin-bottom:14px}.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.evidence{min-width:0;border:1px solid var(--line);border-radius:11px;background:#f8fbfe;padding:9px 11px}.evidence span{display:block;font-size:9px;color:#8da0b1;margin-bottom:4px}.evidence strong{display:block;font-size:11px;color:#35536d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evidence.ok{border-color:#bce8d9;background:#f0fbf7}.evidence.ok strong{color:#16835f}.evidence.bad{border-color:#ffd0d6;background:#fff5f6}.evidence.bad strong{color:#c13c4e}.evidence.mono strong{font-family:Consolas,monospace}.timeline{border:1px solid var(--line);border-radius:14px;overflow:hidden}.timeline-step{display:grid;grid-template-columns:31px 1fr auto;gap:10px;align-items:center;min-height:57px;padding:9px 13px;border-top:1px solid #e7eef5;background:#fff}.timeline-step:first-child{border-top:0}.step-index{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:#eef3f7;color:#7890a4;font:700 11px Arial}.timeline-step h3{font-size:12px;margin:0 0 3px;color:#294a67}.timeline-step p{font-size:10px;margin:0;color:#8396a8;line-height:1.4}.timeline-step em{font-size:10px;font-style:normal;color:#8597a7}.step-complete .step-index{background:#e6f8f1;color:#119369}.step-running{background:#f7fbff}.step-running .step-index{background:#e5f1ff;color:var(--blue);animation:pulse 1.2s infinite}.step-failed{background:#fff7f8}.step-failed .step-index{background:#ffe5e8;color:var(--red)}.step-failed h3,.step-failed em{color:#c53b4e}.step-not_recorded{opacity:.67}.raw-log{margin-top:14px;border:1px solid var(--line);border-radius:12px;background:#f7fafd;overflow:hidden}.raw-log summary{padding:11px 13px;font-size:11px;color:#46647e;cursor:pointer}.raw-log pre{max-height:270px;overflow:auto;margin:0;padding:13px;background:#071b31;color:#cee9f7;font:10px/1.55 Consolas,monospace;white-space:pre-wrap;word-break:break-word}

.source-drawer{position:fixed;inset:0;z-index:40}.drawer-backdrop{position:absolute;inset:0;background:rgba(3,20,40,.61);backdrop-filter:blur(4px)}.drawer-card{position:absolute;right:0;top:0;bottom:0;width:min(920px,94vw);background:#f7fafe;box-shadow:-25px 0 80px rgba(2,25,54,.3);display:flex;flex-direction:column;border-radius:24px 0 0 24px;overflow:hidden}.drawer-head{position:relative;padding:22px 68px 17px 25px;border-bottom:1px solid var(--line);background:#fff}.drawer-head h2{font-size:18px;line-height:1.5;margin:4px 0 0;color:var(--navy)}.drawer-head p{font-size:10px;color:#8599ab;margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-close{position:absolute}.reader-toolbar{display:flex;align-items:center;gap:8px;padding:11px 18px;border-bottom:1px solid var(--line);background:#f3f8fd}.source-choices{display:flex;gap:7px;overflow:auto;flex:1}.source-choice{flex:none;min-width:105px;border:1px solid #c9dcec;border-radius:10px;background:#fff;color:#5b748b;padding:6px 10px;text-align:left}.source-choice span{display:block;font-size:8px;color:#95a7b8}.source-choice b{font-size:11px}.source-choice.active{border-color:#5a9fff;background:#eaf4ff;color:#0b62ca}.reader-toolbar .button{font-size:11px;min-height:34px}.reader-state{min-height:46px;padding:9px 24px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);font-size:10px}.reader-state b{font-size:11px;white-space:nowrap}.reader-state span{color:#6d8397;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading-state{background:#f0f6fc;color:#55728d}.reader-ready{background:#eaf9f4;color:#147b59}.reader-warning{background:#fff8e9;color:#a06918}.reader-error{background:#fff0f2;color:#bc3548}.source-text{flex:1;overflow:auto;margin:0;background:#fff;padding:30px 42px 70px;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.92;color:#263f57}.source-text:empty:before{content:"正在准备正文…";color:#90a2b2}

.system-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-bottom:14px}.system-summary>div{min-width:0;background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px 17px;box-shadow:0 7px 22px rgba(15,58,100,.05)}.system-summary span{display:block;font-size:10px;color:#8599ac}.system-summary strong{display:block;margin:6px 0 4px;color:#163b5e;font-size:15px;overflow-wrap:anywhere}.system-summary strong.paused{color:#be6e14}.system-summary p{font-size:10px;color:#8b9eaf;margin:0;line-height:1.45;overflow-wrap:anywhere}.system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.system-card{display:flex;flex-direction:column;height:clamp(560px,68vh,680px);background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:var(--shadow);min-width:0;min-height:0}.system-card>header{display:flex;flex:none;justify-content:space-between;align-items:center;min-height:22px;margin-bottom:10px}.system-card h2{font-size:15px;margin:0;color:var(--navy)}.system-card header>span{font-size:9px;color:#8ca0b2}.job-list,.source-health-list{flex:1;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}.job-row{width:100%;min-height:44px;display:grid;grid-template-columns:72px minmax(0,1fr) 145px 72px;gap:9px;align-items:center;padding:9px 5px;border:0;border-top:1px solid #e8eff5;background:#fff;text-align:left;color:#4a6680}.job-row:first-of-type{border-top:0}.job-row:hover{background:#f6faff}.job-id{font-size:10px;color:#1c69bd}.job-name{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-stage{font-size:9px;color:#8498aa}.job-stage i{display:block;height:3px;border-radius:4px;background:#e2eaf2;margin-top:5px;overflow:hidden}.job-stage b{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan))}.job-row .status-pill{font-size:10px}.source-row{min-height:44px;display:grid;grid-template-columns:110px minmax(0,1fr) 126px;gap:8px;padding:9px 4px;border-top:1px solid #e8eff5;align-items:center;font-size:10px}.source-row>span{display:flex;align-items:center;gap:7px;color:#345571}.source-row b{font-weight:500;color:#6b8297;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.source-row time{color:#92a3b3}.health.bad{background:var(--red);box-shadow:none}
.system-secondary{margin:0 0 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.82);color:#5d7690}.system-secondary summary{cursor:pointer;padding:12px 16px;font-size:11px;color:#2e628f;font-weight:700}.system-secondary>div{display:grid;grid-template-columns:repeat(2,1fr);gap:7px 20px;padding:0 16px 14px;border-top:1px solid #e6eef6}.system-secondary p{margin:10px 0 0;font-size:10px;line-height:1.55}.system-secondary b{color:#214f78}
.toast{position:fixed;right:24px;bottom:24px;z-index:60;max-width:470px;padding:13px 18px;border:1px solid rgba(81,180,231,.32);border-radius:13px;background:#082b50;color:#e9f7ff;box-shadow:0 14px 40px rgba(1,20,42,.3);font-size:12px}.toast:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--cyan)}.toast.bad{background:#4b1e2a;border-color:#8f3d4b}.toast.bad:before{background:var(--red)}
.global-search-open{overflow:hidden}.global-search-modal{z-index:58}.global-search-card{width:min(980px,calc(100vw - 32px));height:min(82vh,820px);display:flex;flex-direction:column;padding:0;overflow:hidden}.global-search-head{flex:none;padding:26px 68px 18px 26px;border-bottom:1px solid #d9e6f0;background:linear-gradient(135deg,#fff,#f3f9ff)}.global-search-head h2{margin:6px 0;color:#133c61;font-size:23px}.global-search-head p{margin:0;color:#71889d;font-size:11px}.global-search-results{flex:1;min-height:0;overflow:auto;padding:18px 22px 26px;background:#f7fafc}.global-search-group+ .global-search-group{margin-top:18px}.global-search-group>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 3px}.global-search-group>header h3{margin:0;color:#174f7d;font-size:13px}.global-search-group>header span{color:#8195a7;font-size:10px}.global-search-group>div{display:grid;gap:8px}.global-search-item{position:relative;width:100%;display:block;padding:13px 110px 13px 15px;border:1px solid #d7e4ee;border-radius:12px;background:#fff;text-align:left;cursor:pointer;box-shadow:0 4px 14px rgba(15,58,100,.03)}.global-search-item:hover,.global-search-item:focus-visible{border-color:#8abcea;background:#f8fcff;outline:0}.global-search-item>span{display:block;margin-bottom:4px;color:#7d92a5;font-size:9px}.global-search-item h4{margin:0;color:#173e60;font-size:13px;line-height:1.45}.global-search-item p{margin:5px 0 0;color:#617d94;font-size:10px;line-height:1.55}.global-search-item em{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:#1769b7;font-size:10px;font-style:normal;font-weight:750}.global-search-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;border-top:1px solid #d7e4ee;background:#fff}.global-search-foot span{color:#7e92a4;font-size:9.5px}.search-hit{animation:search-pulse 1.3s ease 2}@keyframes search-pulse{50%{box-shadow:0 0 0 4px rgba(30,125,240,.2),0 8px 28px rgba(15,59,107,.09);border-color:#5ca4ed}}
.loading{display:flex;gap:9px;align-items:center;color:var(--muted);padding:36px}.spinner{width:17px;height:17px;border:2px solid #c5d7e6;border-top-color:var(--blue);border-radius:50%;animation:spin .75s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted);font-size:11px}

.dedup-info{padding:10px 18px;border-bottom:1px solid #cfe2f3;background:#edf7ff;color:#315b7e;font-size:10px}.dedup-info>div:first-child{display:flex;gap:10px;align-items:center}.dedup-info>div:first-child span{color:#7890a5}.dedup-member{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;margin-top:7px;padding-top:7px;border-top:1px solid #d8e9f7}.dedup-member span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dedup-member em{font-style:normal;color:#7390a8}.dedup-member button{border:1px solid #b9d4ea;border-radius:7px;background:#fff;color:#52708a;padding:3px 7px;font-size:9px;cursor:pointer}.dedup-member button:hover{border-color:#ff9ba8;color:#b83448}.dedup-member button:disabled{opacity:.6}

@media(max-width:1100px){
  .stats{grid-template-columns:repeat(3,1fr)}.stats .stat:nth-last-child(-n+2){grid-column:span 1}
  .report-workspace{grid-template-columns:285px minmax(0,1fr)}
  .feed-head,.news-row{grid-template-columns:110px minmax(0,1fr) 125px;gap:14px}
  .system-summary{grid-template-columns:repeat(2,1fr)}.system-grid{grid-template-columns:1fr}.system-card{height:auto}.job-list,.source-health-list{flex:none;max-height:min(62vh,520px)}
  .filters{grid-template-columns:minmax(240px,1fr) repeat(3,155px)}
  .analysis-launcher,.stock-launcher{grid-template-columns:1fr 1fr}.analysis-launcher>div{grid-column:1/-1}
}
@media(max-width:760px){
  .back-to-top{right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:44px;height:44px}
  .topbar{min-height:115px;padding:19px 15px;border-radius:0 0 20px 20px}.brand-mark{width:46px;height:46px;border-radius:14px}.brand-mark i:nth-child(2){height:23px}.brand h1{font-size:21px}.topbar p,.time-stack,.online{display:none}.top-actions{position:absolute;right:15px;top:57px;gap:6px}.button-dark{width:39px;min-height:39px;font-size:0;padding:7px}.button-dark .refresh-icon{font-size:20px}
  .stats{padding:0 14px;margin-top:-14px;grid-template-columns:repeat(2,1fr);gap:8px}.stat{min-height:91px;padding:13px 15px}.stats .stat:last-child{grid-column:1/-1}.stat .v{font-size:21px}
  .tabs{height:55px;margin-top:14px}.tabs-inner{padding:0 13px;gap:20px;overflow:auto}.tab{white-space:nowrap;font-size:12px}
  main{padding:22px 13px 50px}.section-head{align-items:flex-start;flex-direction:column;gap:8px}.section-head h2{font-size:21px}.section-head p{max-width:100%}.result-count{align-self:flex-end;white-space:nowrap}.news-controls{top:55px;margin:0 -4px;padding:7px 4px 1px}.filters{grid-template-columns:1fr 1fr}.search-wrap{grid-column:1/-1}.level-tabs{gap:5px}.level-tab{min-width:0;flex:1;height:39px;padding:0 5px}
  .feed-head{display:none}.news-row{grid-template-columns:76px minmax(0,1fr);padding:16px 13px;gap:10px}.time-col{gap:7px}.row-actions{grid-column:2;justify-content:flex-start}.row-actions .button{width:auto}.reason{font-size:10px}
  .report-workspace{display:block}.report-list{max-height:230px;border-right:0;border-bottom:1px solid var(--line)}.report-viewer{max-height:none}.report-viewer>.report-empty{min-height:300px}.report-body{padding:20px 17px}.report-toolbar{flex-wrap:wrap}.report-toolbar>div{flex-basis:100%}
  .modal{padding:10px}.modal-card{padding:24px 17px;max-height:calc(100vh - 20px);border-radius:18px}.evidence-grid{grid-template-columns:1fr}.timeline-step{grid-template-columns:29px 1fr}.timeline-step em{display:none}
  .global-search-card{width:100%;height:calc(100vh - 20px);padding:0}.global-search-head{padding:20px 54px 14px 16px}.global-search-head h2{font-size:19px}.global-search-results{padding:13px 10px 20px}.global-search-item{padding:12px 12px 38px}.global-search-item em{left:12px;right:auto;top:auto;bottom:11px;transform:none}.global-search-foot{padding:9px 11px}.global-search-foot span{max-width:65%;line-height:1.4}
  .drawer-card{width:100vw;border-radius:0}.drawer-head{padding-left:17px}.reader-toolbar{flex-wrap:wrap;padding:9px}.source-choices{flex-basis:100%;order:2}.reader-toolbar>.button{flex:1}.source-text{padding:23px 18px 60px}.reader-state{padding:9px 14px;align-items:flex-start;flex-direction:column;gap:3px}.reader-state span{white-space:normal}
  .system-summary{grid-template-columns:1fr}.job-row{grid-template-columns:65px minmax(0,1fr) 66px}.job-stage{grid-column:2}.job-row>.status-pill{grid-column:3;grid-row:1}.source-row{grid-template-columns:90px 1fr}.source-row time{display:none}.new-news-banner b{display:none}
  .system-secondary>div{grid-template-columns:1fr}
  .digest-grid,.quality-details{grid-template-columns:1fr}.digest-block:first-child{grid-row:auto}.report-digest{margin:13px 10px 0}.opportunity-overview{align-items:stretch;flex-direction:column}.opportunity-summary{gap:9px 13px}.opportunity-sort{justify-content:space-between}.opportunity-card{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:15px 14px}.opportunity-score{padding-right:10px}.opportunity-actions{grid-column:2;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.precheck{grid-template-columns:auto 1fr}.precheck .heat{grid-row:auto}.precheck strong,.precheck small{grid-column:1/-1;white-space:normal}.insight-result summary{align-items:flex-start;flex-direction:column;gap:2px}
  .analysis-launcher,.stock-launcher{grid-template-columns:1fr}.analysis-launcher>div{grid-column:auto}.analysis-launcher .button{width:100%}
}

.report-context-pill{min-height:36px;display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #cae0f1;border-radius:10px;background:#f2f8fd;color:#4f718c!important;white-space:nowrap;font-size:10px!important;font-weight:700}

/* Visual system v4 — 更克制的科技蓝研究终端 */
:root{
  --navy:#071a31;--navy-2:#0a315b;--navy-3:#0c4f88;--blue:#1476ff;--blue-2:#2799ff;
  --cyan:#27d7f7;--ink:#122b45;--muted:#6d8297;--bg:#eef5fb;--soft:#f6f9fc;
  --line:#d5e3ef;--radius:14px;--radius-sm:9px;
  --shadow:0 10px 30px rgba(20,61,101,.065);--shadow-hover:0 14px 34px rgba(20,77,133,.105)
}
html{scrollbar-color:#9bb2c7 transparent;scrollbar-width:thin}
body{
  background:
    radial-gradient(circle at 8% 12%,rgba(39,215,247,.075),transparent 24rem),
    radial-gradient(circle at 92% 38%,rgba(20,118,255,.045),transparent 30rem),
    linear-gradient(180deg,#eaf3fa 0,#f7f9fc 420px,#eef4f9 100%);
  letter-spacing:.005em
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.24;background-image:linear-gradient(rgba(60,125,182,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(60,125,182,.045) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(to bottom,#000,transparent 70%)}
*::-webkit-scrollbar{width:7px;height:7px}*::-webkit-scrollbar-thumb{background:#a5b9cb;border-radius:10px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-track{background:transparent}

.topbar{min-height:126px;padding-top:22px;padding-bottom:22px;border-radius:0 0 24px 24px;background:radial-gradient(circle at 77% -70%,rgba(39,215,247,.3),transparent 42%),linear-gradient(118deg,#04162d 0%,#082f59 66%,#075272 100%);box-shadow:0 16px 42px rgba(5,38,73,.16)}
.topbar-grid{opacity:.1;background-size:40px 40px}.topbar:after{right:8%;top:-285px;opacity:.72}
.brand{gap:15px}.brand-mark{width:50px;height:50px;padding:11px;border-radius:15px;box-shadow:inset 0 1px rgba(255,255,255,.14),0 9px 25px rgba(0,10,30,.2)}
.brand h1{font-size:26px;letter-spacing:1.4px;margin-top:3px}.topbar p{font-size:11px;color:#b4cede}.eyebrow{font-size:9px;letter-spacing:2px}
.top-actions{gap:10px}.online{height:32px;background:rgba(2,24,45,.4)}.time-stack{min-width:182px}

.button{min-height:38px;border-radius:10px;padding:8px 15px;font-weight:600;box-shadow:none}
.button:hover{transform:translateY(-1px)}.button-primary{background:linear-gradient(135deg,#0f6fff,#2699ff);box-shadow:0 7px 17px rgba(20,118,255,.18)}.button-primary:hover{box-shadow:0 10px 24px rgba(20,118,255,.25)}
.button-ghost,.button-watch{background:rgba(255,255,255,.86)}.button-ghost:hover,.button-watch:hover{border-color:#88b8e7;background:#f3f9ff}

.stats{max-width:1420px;margin-top:-18px;gap:10px}.stat{min-height:94px;padding:14px 17px;border-color:rgba(203,220,235,.94);border-radius:14px;box-shadow:0 9px 26px rgba(19,64,106,.07)}
.stat:before{top:15px;bottom:15px;width:3px}.stat-glow{width:70px;height:70px;background:rgba(35,170,242,.075)}.stat .k{font-size:10px}.stat .v{font-size:23px;margin:5px 0 4px}.stat-action:hover{box-shadow:var(--shadow-hover)}

.tabs{height:56px;margin-top:16px;border-top-color:rgba(213,227,239,.72);background:rgba(252,254,255,.88);box-shadow:0 5px 20px rgba(25,66,104,.035)}
.tabs-inner{gap:34px}.tab{font-size:13px}.tab.active:after{height:2px;left:3px;right:3px;box-shadow:0 0 8px rgba(39,215,247,.35)}
main{padding-top:25px}.section-head{margin-bottom:17px}.section-head h2{font-size:23px;letter-spacing:0}.section-head p{font-size:11px;line-height:1.65;margin-top:3px}.result-count{font-size:11px}

.news-controls{top:56px;padding-top:8px;background:linear-gradient(180deg,rgba(242,247,251,.965) 84%,transparent)}
.filters{gap:9px;margin-bottom:10px}.search-wrap,.select-wrap{height:42px;border-radius:11px;box-shadow:0 3px 12px rgba(15,58,100,.025)}
.search-wrap:focus-within,.select-wrap:focus-within{border-color:#65a8f5;box-shadow:0 0 0 3px rgba(20,118,255,.075)}
.level-tabs{margin-bottom:10px}.level-tab{height:39px;min-width:98px;border-radius:10px;box-shadow:none}.level-tab.active{background:linear-gradient(135deg,#0a315b,#0b4c7a);box-shadow:0 6px 15px rgba(7,47,86,.14)}
.level-guide{border-color:#dbe7f1;background:rgba(255,255,255,.7)}
.feed-shell,.report-workspace,.system-card,.opportunity-card{border-color:#cfdfec;box-shadow:var(--shadow)}
.feed-shell{border-radius:15px}.feed-head{background:#f1f6fa;padding-top:10px;padding-bottom:10px}.news-row{padding-top:16px;padding-bottom:16px;transition:background .16s,box-shadow .16s}.news-row:hover{background:#f7fbff;box-shadow:inset 3px 0 #7bb7ff}.news-row:before{top:13px;bottom:13px;width:3px}
.news-main h3{font-size:14px;line-height:1.62;margin-bottom:6px}.reason{margin-top:7px;color:#71869a}.tag,.multi-source{border-radius:7px;background:#eff5fa}.multi-source{background:#e9f9fc}
.row-actions .button{min-height:36px}.pager{margin-top:15px}

.analysis-launcher{position:relative;overflow:hidden;margin-bottom:14px;padding:14px 16px;border-color:#c8deef;border-radius:14px;background:rgba(249,252,255,.91);box-shadow:0 7px 22px rgba(15,59,107,.045)}
.analysis-launcher:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(var(--cyan),var(--blue))}
.analysis-launcher textarea,.analysis-launcher select{height:48px;border-radius:10px;background:rgba(255,255,255,.96)}.stock-launcher>.button{height:48px}
.report-workspace{grid-template-columns:320px minmax(0,1fr);border-radius:15px;min-height:650px}.report-list{background:#f4f8fb}.report-list-card{padding:16px}.report-list-card:hover{background:#f9fcff}.report-list-card.active{background:#fff;box-shadow:inset -1px 0 #fff}.report-list-card h3{font-size:12px;margin:6px 0}.report-list-card.active:before{width:3px}
.report-toolbar{padding:11px 16px;background:rgba(255,255,255,.92)}.report-toolbar h3{font-size:12px}.report-body{padding:25px 32px 58px;line-height:1.82}.report-body h1{font-size:24px;border-bottom-width:1px;border-bottom-color:#7bd8ee}.report-body h2{font-size:17px;border-left-width:3px}
.report-digest{margin:17px 20px 0;border-radius:14px;border-color:#bdd8ef;box-shadow:0 7px 22px rgba(21,94,171,.055)}.digest-head{padding:14px 16px}.quality-grade{width:43px;height:43px;border-radius:12px;font-size:19px}.digest-core{padding:14px 18px}.digest-core li{line-height:1.62}
.report-evidence-context{margin:12px 20px 0;border:1px solid #cfe0ed;border-radius:14px;background:#fff;overflow:hidden}.evidence-context-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#f7fafc;border-bottom:1px solid #e2ebf2}.evidence-context-head span{font-size:9px;letter-spacing:1px;color:#3b789e}.evidence-context-head h3{margin:3px 0 0;font-size:14px;color:#173f59}.evidence-context-head em{font-size:10px;font-style:normal;color:#607b8e}.evidence-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #e6edf2}.evidence-kpis>div{padding:10px 14px;border-right:1px solid #e6edf2}.evidence-kpis>div:last-child{border-right:0}.evidence-kpis b{display:block;font-size:16px;color:#145d88}.evidence-kpis span{font-size:9px;color:#718797}.evidence-timeline{list-style:none;margin:0;padding:5px 16px 7px}.evidence-timeline li{display:grid;grid-template-columns:116px minmax(0,1fr) auto;gap:12px;align-items:start;padding:9px 0;border-bottom:1px dashed #e3ebf0}.evidence-timeline li:last-child{border-bottom:0}.evidence-timeline time{font-size:9px;color:#8293a0}.evidence-timeline a{font-size:11px;line-height:1.5;color:#174e70;text-decoration:none}.evidence-timeline a:hover{text-decoration:underline}.evidence-timeline p{margin:2px 0 0;font-size:9px;color:#78909f}.evidence-timeline li>span{padding:2px 6px;border-radius:8px;background:#eef4f7;color:#587383;font-size:9px}.evidence-timeline .evidence-counter>span{background:#fff0ed;color:#a44736}.evidence-timeline .evidence-support>span{background:#eaf7ef;color:#267448}.evidence-method,.evidence-empty{margin:0;padding:9px 16px;border-top:1px solid #e6edf2;background:#fafcfd;font-size:9px;line-height:1.5;color:#758b99}

.opportunity-list{gap:10px}.opportunity-card{grid-template-columns:72px minmax(0,1fr) 140px;gap:16px;padding:15px 18px;border-radius:15px}.opportunity-card:hover{border-color:#a9cae7;box-shadow:var(--shadow-hover)}.opportunity-card:before{width:3px}.precheck{background:#f5f9fc;border-color:#d8e6f1}
.system-summary{gap:10px}.system-summary>div{padding:14px 16px;border-color:#d2e1ed;border-radius:13px;box-shadow:0 6px 18px rgba(15,58,100,.04)}.system-card{border-radius:15px;padding:17px}.system-secondary{background:rgba(255,255,255,.72)}

.modal{background:rgba(3,19,38,.62);backdrop-filter:blur(9px)}.modal-card{border-radius:18px;border-color:#b8d4e8;box-shadow:0 28px 75px rgba(0,24,52,.28)}.drawer-backdrop{background:rgba(3,19,38,.57);backdrop-filter:blur(7px)}.drawer-card{border-radius:20px 0 0 20px;box-shadow:-22px 0 65px rgba(2,25,54,.26)}.drawer-head{padding-top:19px;padding-bottom:15px}.source-text{font-size:14px;line-height:1.86;color:#243d55}
.toast{border-radius:11px;background:#082b50;box-shadow:0 12px 34px rgba(1,20,42,.26)}

@media(max-width:1100px){.report-workspace{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:760px){
  .topbar{min-height:108px;padding-top:16px;padding-bottom:16px;border-radius:0 0 18px 18px}.brand-mark{width:44px;height:44px}.brand h1{font-size:20px}.top-actions{top:52px}
  .stats{margin-top:-12px}.stat{min-height:86px}.tabs{height:52px;margin-top:12px}.news-controls{top:52px}
  main{padding-top:19px}.section-head h2{font-size:20px}.report-workspace{display:block}.report-body{padding:19px 16px 48px}.report-digest{margin:11px 9px 0}.report-evidence-context{margin:10px 9px 0}.evidence-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.evidence-kpis>div:nth-child(2){border-right:0}.evidence-kpis>div:nth-child(-n+2){border-bottom:1px solid #e6edf2}.evidence-timeline li{grid-template-columns:1fr auto;gap:5px 9px}.evidence-timeline time{grid-column:1/-1}.evidence-context-head{align-items:flex-start;flex-direction:column;gap:4px}
  .opportunity-card{grid-template-columns:56px minmax(0,1fr);padding:14px 13px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.view.active,.status-running:before,.status-queued:before,.step-running .step-index{animation:none!important}.button{transition:none}}

/* Visual system v5 — 统一控件、响应式布局与信息层级 */
:root{
  --control-compact:38px;
  --control-standard:42px;
  --control-primary:48px;
}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit}
select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%235f7891' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  padding-right:32px!important;
}
select:disabled{cursor:not-allowed;color:#91a3b3;background-color:#f2f5f8}
.button:active{transform:translateY(0)}
.button-danger{font-weight:700}
.stat .note{font-size:11px;line-height:1.35}
.tabs-inner{align-items:stretch}
.tab{justify-content:center}
.section-head p{max-width:820px}
.analysis-launcher>div p{font-size:11px;line-height:1.55}
.analysis-launcher>div span,.launcher-field>span{font-size:10px}
.analysis-launcher textarea,.analysis-launcher select{font-size:13px}
.report-list-card h3{font-size:13px;line-height:1.55}
.report-list-card p,.report-list-card .report-heat{font-size:10.5px}
.report-toolbar{min-width:0}
.report-toolbar .button,.report-context-pill{min-height:var(--control-compact)}
.digest-core h4,.quality-details b{font-size:12px}
.digest-core li{font-size:12px}
.opportunity-main>p{font-size:11px}
.precheck b{font-size:10px}.precheck strong{font-size:11px}.precheck small{font-size:10px}
.insight-empty b,.insight-progress b,.insight-failed b{font-size:11px}
.insight-empty span,.insight-progress span,.insight-failed span{font-size:10px}
.insight-result summary{font-size:11px}.insight-result summary em{font-size:10px}.insight-result>div{font-size:11px}
.opportunity-sort select{min-width:108px;height:var(--control-compact)}
.system-summary span,.system-summary p{font-size:11px}
.system-card header>span,.job-stage{font-size:10px}
.job-name,.source-row{font-size:11px}
.system-secondary summary{min-height:40px;display:flex;align-items:center}

.confirm-modal{z-index:55}
.confirm-card{width:min(480px,100%);padding:30px 30px 26px}
.confirm-symbol{width:46px;height:46px;margin-bottom:16px;border:1px solid #bcdcf5;border-radius:15px;background:linear-gradient(145deg,#eef7ff,#e4f5ff);box-shadow:0 8px 22px rgba(20,118,255,.1);display:grid;place-items:center}
.confirm-symbol i{width:17px;height:17px;border:2px solid var(--blue);border-radius:50%;position:relative}
.confirm-symbol i:after{content:"";position:absolute;width:2px;height:6px;left:50%;top:3px;border-radius:2px;background:var(--blue);box-shadow:0 8px 0 -0.2px var(--blue);transform:translateX(-50%)}
.confirm-card h2{font-size:22px;margin-top:7px}
.confirm-card .modal-lead{margin-top:8px;font-size:13px;line-height:1.75;color:#526d85}
.confirm-card .modal-actions .button{min-width:104px}
.confirm-card.is-danger .confirm-symbol{border-color:#f5c6cc;background:#fff2f4}
.confirm-card.is-danger .confirm-symbol i{border-color:var(--red)}
.confirm-card.is-danger .confirm-symbol i:after{background:var(--red);box-shadow:0 8px 0 -0.2px var(--red)}

@media(max-width:1180px){
  .report-toolbar{flex-wrap:wrap;align-items:stretch}
  .report-toolbar>div{flex:1 0 100%;min-width:0}
}

@media(min-width:901px) and (max-width:1100px){
  .stock-launcher{grid-template-columns:minmax(220px,.85fr) minmax(290px,1.2fr) auto}
  .stock-launcher>div{grid-column:1/-1}
}

@media(min-width:761px) and (max-width:1100px){
  .stats{grid-template-columns:repeat(6,minmax(0,1fr))}
  .stats>.stat{grid-column:span 2}
  .stats>.stat:nth-last-child(-n+2){grid-column:span 3}
}

@media(max-width:900px){
  .report-workspace{display:block;min-height:0}
  .report-list{max-height:238px;border-right:0;border-bottom:1px solid var(--line)}
  .report-viewer{max-height:none}
  .report-viewer>.report-empty{min-height:300px}
  .stock-launcher{grid-template-columns:1fr}
  .stock-launcher>div{grid-column:auto}
}

@media(max-width:760px){
  .topbar{min-height:104px}
  .stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:0 12px}
  .stats>.stat{grid-column:span 2;min-height:80px;padding:11px 12px}
  .stats>.stat:nth-last-child(-n+2){grid-column:span 3}
  .stat .v{font-size:20px;margin:4px 0 3px}.stat .k,.stat .note{font-size:9.5px}
  .stat:before{top:12px;bottom:12px}

  .tabs{height:50px;margin-top:10px}
  .tabs-inner{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0 4px;overflow:visible}
  .tab{min-width:0;padding:0 2px;font-size:11px;white-space:nowrap}
  .tab span{display:none}

  main{padding:18px 12px 46px}
  .section-head{gap:7px;margin-bottom:14px}
  .section-head h2{font-size:20px;line-height:1.3}.section-head p{font-size:11px;line-height:1.6}
  .section-head>.button{align-self:flex-start}
  .result-count{align-self:flex-start}

  .news-controls{top:50px;margin:0 -2px;padding:7px 2px 1px}
  .filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .search-wrap{grid-column:1/-1}
  .select-wrap{min-width:0}
  .select-wrap>span{padding-left:8px;font-size:9px}
  .select-wrap select{padding-left:5px;padding-right:24px!important;font-size:11px;background-position:right 5px center}
  .level-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible;padding:0}
  .level-tab{width:100%;min-width:0;height:38px;padding:0 3px;gap:4px}
  .level-tab b,.level-tab span{font-size:10.5px}
  .level-guide{margin-top:-3px}

  .news-row{grid-template-columns:68px minmax(0,1fr);padding:14px 11px;gap:9px}
  .time-col{gap:6px}.time{font-size:13px}.level{width:27px;height:27px}
  .news-main h3{font-size:14px;line-height:1.58}
  .meta{font-size:10px;gap:6px}.reason{font-size:10.5px}
  .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .row-actions .button{width:100%;min-width:0;padding-left:8px;padding-right:8px;font-size:11px}

  .analysis-launcher{padding:14px 15px}
  .analysis-launcher textarea{height:64px;padding-top:11px}
  .analysis-launcher select,.stock-launcher>.button{height:var(--control-primary)}
  .report-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px}
  .report-toolbar>div{grid-column:1/-1}
  .report-toolbar .button{width:100%;min-width:0;padding-left:8px;padding-right:8px;white-space:normal;text-align:center}
  .report-context-pill{grid-column:1/-1;width:100%;justify-content:center}
  .report-digest{margin:10px 8px 0}
  .digest-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:13px}
  .digest-head>.button{grid-column:1/-1;width:100%}
  .digest-head h3{font-size:13px}.digest-head em{display:block;margin-top:4px;line-height:1.5}
  .digest-core{padding:13px 15px}.digest-core li{font-size:11.5px}
  .quality-details{grid-template-columns:1fr}
  .digest-disclaimer{font-size:9.5px;line-height:1.55}

  .opportunity-summary{font-size:10.5px}.opportunity-summary em{flex-basis:100%;line-height:1.5}
  .opportunity-card{grid-template-columns:54px minmax(0,1fr);gap:10px;padding:14px 12px}
  .opportunity-score{padding-right:9px}.opportunity-score strong{font-size:21px}
  .opportunity-main h3{font-size:14px}.precheck{padding:9px}
  .opportunity-actions{grid-column:2;gap:6px}

  .system-card{padding:14px}.system-card>header{align-items:flex-start;gap:8px}
  .system-card header>span{text-align:right;line-height:1.4}
  .dedup-member{grid-template-columns:minmax(0,1fr) auto}
  .dedup-member>span{grid-column:1/-1;white-space:normal}

  .confirm-card{padding:26px 18px 20px}
  .confirm-symbol{width:42px;height:42px;margin-bottom:13px}
  .confirm-card h2{font-size:20px;padding-right:38px}
  .confirm-card .modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .confirm-card .modal-actions .button{min-width:0;width:100%}
  .toast{left:12px;right:12px;bottom:12px;max-width:none}
}

@media(max-width:360px){
  .brand h1{font-size:18px}.brand{gap:10px}.brand-mark{width:41px;height:41px}
  .tab{font-size:10px}
  .filters{grid-template-columns:1fr 1fr}
  .filters>.select-wrap:last-child{grid-column:1/-1}
  .stat .v{font-size:18px;white-space:nowrap}
  .stats>.stat:nth-child(3) .v{font-size:16px}
}

/* 标的研究 / 自选：保持五个顶层页面不变，只扩展研究工作台。 */
.watchlist-policy{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.watchlist-policy>div{padding:13px 15px;border:1px solid #cbdfee;border-radius:13px;background:#f7fbff}.watchlist-policy strong,.watchlist-policy span{display:block}.watchlist-policy strong{color:#164b77;font-size:12px}.watchlist-policy span{margin-top:5px;color:#607d94;font-size:10px;line-height:1.55}.watch-manual-form,.watch-rule-form{display:grid;grid-template-columns:minmax(240px,1fr) 150px auto;gap:10px;align-items:end;padding:14px 16px;border:1px solid #d6e4ef;border-radius:13px;background:#fff}.watch-manual-form label,.watch-rule-form label{display:grid;gap:6px;color:#698298;font-size:10px}.watch-manual-form input,.watch-manual-form select,.watch-rule-form input,.watch-rule-form select{height:39px;border:1px solid #ccddea;border-radius:9px;background:#fbfdff;color:#244761;padding:0 10px;outline:none}.watch-manual-form input:focus,.watch-rule-form input:focus,.watch-rule-form select:focus{border-color:#73adff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}.watch-section{margin-top:14px;border:1px solid #d5e3ed;border-radius:14px;background:#f9fcfe;overflow:hidden}.watch-section>header{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #dce8f0;background:#fff}.watch-section>header span{display:block;color:#3e8eed;font-size:9px;letter-spacing:.13em}.watch-section>header h3{margin:3px 0 0;color:#173d5f;font-size:15px}.watch-section>header em{color:#7e94a6;font-size:10px;font-style:normal}.watch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.watch-card{display:grid;gap:9px;padding:12px;border:1px solid #d8e5ee;border-radius:12px;background:#fff;min-width:0}.watch-card-head{display:flex;align-items:start;justify-content:space-between;gap:8px}.watch-card h4{margin:0;color:#1b4263;font-size:13px}.watch-card h4 small{color:#7d94a7;font:10px Arial}.watch-card p{margin:0;color:#71899d;font-size:10px;line-height:1.55}.watch-origins{display:flex;flex-wrap:wrap;gap:5px}.watch-origin{padding:4px 7px;border-radius:999px;background:#edf5fb;color:#4d7290;font-size:9px}.watch-signal{padding:7px 9px;border-radius:8px;background:#f2f6f9;color:#607b91;font-size:9px}.watch-signal.matched{background:#eaf8f3;color:#178263}.watch-card-actions{display:flex;flex-wrap:wrap;gap:6px}.watch-card-actions .button{padding:7px 10px;font-size:9.5px}.watch-rule-form{grid-template-columns:repeat(6,minmax(90px,1fr)) auto;margin:12px;border:0;padding:0;background:transparent}.watch-rule-note{margin:0 14px 12px;color:#748ca0;font-size:9.5px}.watch-rule-list{display:grid;gap:8px;padding:0 12px 12px}.watch-rule-card{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid #d8e5ee;border-radius:11px;background:#fff}.watch-rule-card>div{flex:1}.watch-rule-card strong{display:block;color:#274c69;font-size:11px}.watch-rule-card span{display:block;margin-top:3px;color:#8196a8;font-size:9px}.watch-rule-card em{padding:5px 8px;border-radius:999px;background:#eaf8f3;color:#178263;font-size:9px;font-style:normal}.watch-rule-card em.off{background:#f0f3f6;color:#8294a3}
.watch-edit-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;margin-top:10px;padding:14px 16px;border:1px solid #c9ddec;border-radius:13px;background:#f8fcff}.watch-edit-form>header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.watch-edit-form>header span,.watch-edit-form>header strong{display:block}.watch-edit-form>header span{color:#3e8eed;font-size:9px;letter-spacing:.13em}.watch-edit-form>header strong{margin-top:3px;color:#173d5f;font-size:14px}.watch-edit-form label{display:grid;gap:6px;color:#698298;font-size:10px}.watch-edit-form input,.watch-edit-form select{height:39px;min-width:0;border:1px solid #ccddea;border-radius:9px;background:#fff;color:#244761;padding:0 10px}.watch-edit-form .wide{grid-column:span 2}.watch-edit-form>.button{height:39px}.holding-manual-form{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(105px,.55fr)) repeat(2,minmax(170px,1fr)) minmax(110px,.6fr) auto;gap:9px;align-items:end;padding:14px 16px;border:1px solid #d6e4ef;border-radius:13px;background:#fff}.holding-manual-form label{display:grid;gap:6px;color:#698298;font-size:10px}.holding-manual-form input{height:39px;min-width:0;border:1px solid #ccddea;border-radius:9px;background:#fbfdff;color:#244761;padding:0 10px;outline:none}.holding-manual-form input:focus{border-color:#73adff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}
.observation-settings-form{grid-template-columns:minmax(190px,1.2fr) repeat(3,minmax(130px,1fr)) auto;margin:12px;border:0;background:transparent}.rule-trigger{display:grid;gap:4px;align-self:stretch;padding:7px 10px;border:1px solid #d7e5ef;border-radius:9px;background:#fff}.rule-trigger span{color:#698298;font-size:9px}.rule-trigger strong{color:#274d69;font-size:10px}.rule-trigger small{color:#8196a8;font-size:8.5px}.observation-rules{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 13px}.observation-rules b,.observation-rules span{padding:5px 8px;border-radius:999px;background:#eef5fa;color:#58758d;font-size:9px}.observation-rules b{background:#dfeefe;color:#176ac2}.watch-toolbar{display:flex;align-items:center;gap:14px}.watch-toolbar label{color:#607d94;font-size:10px}.watch-toolbar input{accent-color:#18805f}.watch-table,.holding-table{display:grid}.watch-table-head,.holding-table-head,.watch-table-row,.holding-table-row{display:grid;grid-template-columns:1.05fr 1.05fr 1.35fr .75fr .95fr 1.15fr .9fr;gap:9px;align-items:start}.watch-table-head,.holding-table-head{padding:9px 12px;background:#eff6fb;color:#668197;font-size:9px;font-weight:800;letter-spacing:.03em}.watch-table-row,.holding-table-row{margin:0 10px;padding:12px 9px;border-bottom:1px solid #dbe7ef;background:#fff}.watch-table-row:first-child,.holding-table-row:first-child{margin-top:10px;border-radius:11px 11px 0 0}.watch-table-row:last-child,.holding-table-row:last-child{margin-bottom:10px;border-bottom:0;border-radius:0 0 11px 11px}.watch-table-row.matched{border-left:4px solid #20a77c;background:#f7fffb}.watch-table-row.unknown{border-left:4px solid #e5ad34;background:#fffdf6}.watch-table-row.excluded{border-left:4px solid #aab7c2;background:#f8fafb}.watch-table-row>div,.holding-table-row>div{min-width:0;color:#607b91;font-size:9.5px;line-height:1.5}.watch-table-row strong,.watch-table-row small,.watch-table-row b,.holding-table-row strong,.holding-table-row small{display:block;overflow-wrap:anywhere}.watch-table-row strong,.watch-table-row b,.holding-table-row strong{color:#274d69;font-size:10px}.watch-table-row small,.holding-table-row small{margin-top:4px;color:#7c92a4}.signal-badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#edf2f6;color:#647d90;font-weight:800}.signal-badge.matched{background:#daf4e9;color:#14775a}.signal-badge.unknown{background:#fff0c9;color:#9b6b00}.signal-badge.excluded{background:#e7ecef;color:#667986}.watch-row-actions{display:grid;gap:6px}.watch-row-actions .button{width:100%;padding:7px 8px;font-size:9px}.holding-table-row .positive strong{color:#15936b}.holding-table-row .negative strong{color:#d04d5b}
@media(max-width:1180px){.watch-rule-form{grid-template-columns:repeat(3,1fr)}.watch-rule-form .button{grid-column:1/-1}.holding-manual-form{grid-template-columns:repeat(3,1fr)}.holding-manual-form .button{grid-column:1/-1}.watch-table-head,.holding-table-head{display:none}.watch-table-row,.holding-table-row{grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #dbe7ef;border-left-width:4px;border-radius:11px!important;margin:10px}.watch-row-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}}
@media(max-width:760px){.research-tab{padding-left:8px;padding-right:8px}.watchlist-policy,.watch-grid{grid-template-columns:1fr}.watch-manual-form,.watch-rule-form,.watch-edit-form,.observation-settings-form,.holding-manual-form{grid-template-columns:1fr}.watch-edit-form .wide{grid-column:auto}.watch-rule-form .button,.holding-manual-form .button{grid-column:auto}.watch-rule-card{align-items:flex-start;flex-wrap:wrap}.watch-table-row,.holding-table-row{grid-template-columns:1fr}.watch-row-actions{grid-column:auto}.watch-toolbar{align-items:flex-end;flex-direction:column;gap:4px}}

@media(max-width:1180px){.screen-candidate{grid-template-columns:minmax(210px,1fr) minmax(220px,1fr) auto}.screen-quick{grid-column:1/3}.screen-action{grid-column:3;grid-row:1/3}}
@media(max-width:760px){.research-tabs{width:100%}.research-tab{flex:1;min-width:0}.screen-explainer{align-items:flex-start;flex-wrap:wrap}.screen-explainer strong{width:100%}.screen-explainer .button{width:100%}.screen-summary{grid-template-columns:1fr;padding:11px}.screen-candidate-list{padding:4px 10px 20px}.screen-candidate{grid-template-columns:1fr;gap:9px}.screen-quick,.screen-action{grid-column:auto;grid-row:auto}.screen-action .button{width:100%}.screen-toolbar{align-items:stretch}.screen-toolbar .button{flex:1}.report-subhead{align-items:center}}

.ok-text{color:#118e68!important}.bad-text{color:#d34555!important}

/* Report workspace v7 — align top modules and keep dynamic status labels contained. */
.report-viewer{--report-module-gutter:20px}
.report-viewer>.adaptive-warning,
.report-viewer>.report-digest,
.report-viewer>.report-evidence-context{
  margin-left:var(--report-module-gutter);
  margin-right:var(--report-module-gutter);
}
.report-viewer>.adaptive-warning{
  margin-top:14px;
  margin-bottom:0;
  overflow-wrap:anywhere;
}
.digest-head{min-width:0}
.digest-head>div{min-width:0}
.digest-head h3{overflow-wrap:anywhere}
.digest-head>.button{flex:none}
.quality-grade{
  width:auto;
  min-width:43px;
  max-width:100%;
  height:43px;
  padding:0 10px;
  white-space:nowrap;
  line-height:1;
}
.quality-grade.grade-WARNING,
.quality-grade.grade-VERIFIED{
  min-width:78px;
  font-size:11px;
  letter-spacing:.45px;
}
.report-list-card{overflow:hidden}
.report-list-grade{
  max-width:58%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media(max-width:760px){
  .report-viewer{--report-module-gutter:8px}
  .quality-grade.grade-WARNING,
  .quality-grade.grade-VERIFIED{
    min-width:72px;
    padding-right:8px;
    padding-left:8px;
    font-size:10px;
  }
}

/* Opportunity workspace v6 — 决策优先的信息层级 */
.opportunity-overview{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;
  margin-bottom:14px;padding:13px 16px;border-color:#cbddeb;border-radius:14px;
  background:linear-gradient(120deg,rgba(255,255,255,.94),rgba(244,250,255,.9));
  box-shadow:0 7px 22px rgba(15,59,107,.04)
}
.opportunity-summary{display:grid;grid-template-columns:auto minmax(250px,1fr);align-items:center;gap:18px;min-width:0}
.opportunity-kpis{display:flex;align-items:center;gap:9px}
.opportunity-kpis>span{min-width:72px;display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:5px;padding:7px 10px;border:1px solid #dae7f1;border-radius:10px;background:rgba(255,255,255,.78)}
.opportunity-kpis b{font:800 18px/1 Arial;color:#176ec9}.opportunity-kpis small{font-size:10px;color:#617d94;white-space:nowrap}
.opportunity-kpis .summary-hot b{color:#d74455}.opportunity-kpis .summary-warm b{color:#dc8118}
.opportunity-summary-note{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#6e8498;font-size:10px;line-height:1.5}
.opportunity-summary-note>span{display:flex;align-items:center;gap:6px;color:#496b86;font-weight:650}.opportunity-summary-note i{width:7px;height:7px;border-radius:50%;background:#19bd96;box-shadow:0 0 0 4px rgba(25,189,150,.09)}
.opportunity-summary-note em{font-style:normal;color:#8296a8}
.opportunity-sort{height:44px;display:flex;align-items:stretch;gap:0;padding:0;overflow:hidden;border:1px solid #cbddeb;border-radius:11px;background:#fff;box-shadow:0 3px 12px rgba(15,58,100,.035);color:#466782}.opportunity-sort span{display:flex;align-items:center;padding:0 11px;font-size:11px;font-weight:700;white-space:nowrap}.opportunity-sort select{min-width:126px;height:42px;border:0;border-left:1px solid #d9e6f0;border-radius:0;background-color:#f8fbfe;color:#173f62;padding-left:12px;font-size:12px;font-weight:700}

.opportunity-list{display:grid;grid-template-columns:1fr;gap:13px}
.opportunity-card{display:block;padding:18px 20px 20px;border-radius:17px;overflow:hidden;transition:border-color .16s,box-shadow .16s,transform .16s}
.opportunity-card:hover{transform:translateY(-1px)}
.opportunity-card:before{top:17px;bottom:17px;width:3px;background:linear-gradient(180deg,var(--cyan),var(--blue))}
.opportunity-card-head{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:16px;min-width:0;min-height:62px;padding-right:242px}
.opportunity-score{min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px;border:1px solid #cfe1ef;border-radius:13px;background:linear-gradient(145deg,#f5fbff,#eaf5ff);text-align:center}
.opportunity-score strong{font:800 24px/1 Arial;color:#0d65bd}.opportunity-score span{font-size:9px;line-height:1.35;color:#66839b;white-space:nowrap}
.opportunity-score.grade-S{border-color:#f5c9ce;background:linear-gradient(145deg,#fff8f8,#fff0f2)}.opportunity-score.grade-S strong{color:#d73b4e}
.opportunity-score.grade-A{border-color:#f2d8b4;background:linear-gradient(145deg,#fffaf3,#fff4e6)}.opportunity-score.grade-A strong{color:#cf7717}
.opportunity-score.grade-B{border-color:#c8ddf2;background:linear-gradient(145deg,#f7fbff,#eaf4ff)}
.opportunity-heading{min-width:0}.opportunity-heading h3{display:flex;align-items:flex-start;gap:8px;margin:0 0 7px;font-size:15px;line-height:1.5;color:#102f4d}.opportunity-heading>p{margin:0;color:#7e93a6;font-size:10.5px;line-height:1.5}
.opportunity-heading .news-title-button{min-height:34px;display:flex;align-items:center;border-radius:7px}.opportunity-heading .news-title-button:focus-visible{outline:2px solid #67aaf4;outline-offset:3px}
.opportunity-read{flex:none;margin-top:2px;padding:2px 6px;border-radius:7px;background:#f0f4f7;color:#8a9baa;font-size:9px;font-weight:600}
.opportunity-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:9px 242px 0 98px}
.opportunity-actions{position:absolute;right:20px;top:29px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0}.opportunity-actions .button{width:auto;min-width:122px;min-height:40px;padding-left:14px;padding-right:14px;font-size:11px}.opportunity-actions .button-ghost{min-width:98px}

.opportunity-card-body{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:12px;margin-top:14px}
.precheck,.light-insight{min-width:0;min-height:138px;border:1px solid #d6e5f1;border-radius:13px;background:#f7fafc}
.precheck{display:flex;flex-direction:column;align-items:stretch;gap:9px;margin:0;padding:13px 14px}
.precheck-top{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.precheck-top .panel-kicker{margin-right:auto;color:#255a84;font-size:10px;font-weight:800;letter-spacing:.4px}.precheck-top em{padding:3px 6px;border:1px solid #cfe3f3;border-radius:7px;background:#fff;color:#66849d;font-size:9px;font-style:normal;font-weight:700}
.precheck .heat,.precheck .trend{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border-radius:8px;font-size:9.5px;font-style:normal;font-weight:750;white-space:nowrap}
.precheck .heat{background:#edf3f7;color:#547086}.precheck .heat-hot{background:#fff0f2;color:#ca3448}.precheck .heat-warm{background:#fff4e5;color:#bf6a0b}.precheck .heat-watch{background:#eaf4ff;color:#1263b5}.precheck .heat-calm{background:#edf3f7;color:#577188}
.precheck .trend{background:#fff;color:#688399}.precheck .trend-up{color:#c66e0a;background:#fff7ec}.precheck .trend-down{color:#3974a3;background:#eef7ff}
.precheck-decision{display:block;color:#163d5e;font-size:12px;line-height:1.55}
.impact-brief{display:grid;grid-template-columns:.8fr .75fr 1.45fr;gap:6px}.impact-brief span{min-width:0;padding:6px 7px;border:1px solid #d9e7f1;border-radius:8px;background:#fff;color:#4d6d86;font-size:9.5px;line-height:1.4}.impact-brief b{display:block;margin-bottom:2px;color:#7a91a4;font-size:8.5px;font-weight:650}
.impact-brief .impact-positive{border-color:#cce8d6;background:#f3fbf6;color:#277249}.impact-brief .impact-negative{border-color:#f0d3d7;background:#fff7f7;color:#a34855}.impact-brief .impact-mixed{border-color:#eadbbd;background:#fffaf0;color:#90631c}.impact-brief .impact-neutral{background:#f8fafc;color:#60788c}
.precheck-signals{display:flex;gap:6px;flex-wrap:wrap}.precheck-signals span{padding:4px 7px;border:1px solid #dae7f1;border-radius:8px;background:#fff;color:#617d93;font-size:9.5px;line-height:1.25}
.precheck>small{margin-top:auto;color:#8a9baa;font-size:9px;line-height:1.45}

.light-insight{display:flex;margin:0;background:linear-gradient(145deg,#f8fcff,#f1f8fd);overflow:hidden}
.insight-state{width:100%;display:flex;align-items:center;gap:11px;padding:14px;border:0;border-radius:0;background:transparent}.insight-state>div{min-width:0;display:flex;flex-direction:column;gap:4px}.insight-state b{color:#2a638e;font-size:10px;letter-spacing:.35px}.insight-state strong{color:#264c6b;font-size:12px}.insight-state span{color:#7c91a4;font-size:10px;line-height:1.55}
.insight-state-icon{flex:none;width:10px;height:10px;border:2px solid #7eb8e8;border-radius:50%;box-shadow:0 0 0 5px rgba(39,153,255,.07)}
.insight-progress{border:0;background:transparent}.insight-progress .spinner{flex:none}.insight-failed{border:0;background:#fff8f8}.insight-failed .insight-state-icon{border-color:#e66a79;box-shadow:0 0 0 5px rgba(230,106,121,.08)}.insight-failed strong{color:#b33a49}
.insight-preview{width:100%;min-height:136px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px}
.insight-summary-copy{min-width:0;display:flex;flex-direction:column;gap:6px}.insight-summary-copy b{color:#236390;font-size:10px;letter-spacing:.35px}.insight-summary-copy strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;color:#244763;font-size:11px;line-height:1.62}.insight-summary-copy small{color:#8195a7;font-size:9px;font-weight:400;line-height:1.45}
.insight-open{min-width:82px;height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #a9d0ee;border-radius:9px;background:#fff;color:#1268b7;font-size:11px;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.insight-open i{font:700 13px Arial}.insight-open:hover{border-color:#6aaaf0;background:#eef7ff;transform:translateX(1px)}.insight-open:focus-visible{outline:2px solid #67aaf4;outline-offset:2px}
.insight-boundary{font-size:10px!important;color:#8094a6!important}

body.insight-drawer-open{overflow:hidden}
.insight-drawer{z-index:45}.insight-drawer-card{width:min(780px,92vw);background:#fff}
.insight-drawer-head{padding:23px 68px 18px 28px;background:linear-gradient(135deg,#fff 0,#f5faff 100%)}.insight-drawer-head h2{font-size:20px;line-height:1.45}.insight-drawer-head p{font-size:11px}
.insight-drawer-meta{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;padding:12px 28px;border-bottom:1px solid #d9e6f0;background:#f3f8fc}.insight-drawer-meta span{min-width:105px;display:flex;flex-direction:column;gap:2px;padding:7px 10px;border:1px solid #d7e5f0;border-radius:9px;background:#fff;color:#8195a7;font-size:9px}.insight-drawer-meta b{color:#1c5784;font-size:11px}.insight-drawer-meta .drawer-heat b{color:#b66d15}.insight-drawer-meta em{display:flex;align-items:center;margin-left:auto;color:#8296a8;font-size:9.5px;font-style:normal}
.insight-drawer-content{flex:1;min-height:0;max-height:none;overflow:auto;padding:27px 34px 80px;background:#fff;font-size:13px;line-height:1.85;scrollbar-width:thin}.insight-drawer-content h2{margin-top:28px;font-size:17px;border-left-width:3px}.insight-drawer-content h2:first-child{margin-top:0}.insight-drawer-content h3{font-size:15px}.insight-drawer-content li{margin:7px 0}.insight-drawer-content .insight-boundary{margin-top:24px;padding-top:14px;border-top:1px solid #dbe6ef}
.insight-drawer-footer{flex:none;display:flex;justify-content:flex-end;gap:9px;padding:12px 20px;border-top:1px solid #d6e4ef;background:rgba(248,251,254,.96);box-shadow:0 -6px 20px rgba(20,61,101,.045)}.insight-drawer-footer>.button,.insight-drawer-footer #insightDrawerAction .button{min-width:136px;min-height:42px}.insight-drawer-footer #insightDrawerAction{display:flex}

@media(max-width:1100px){
  .opportunity-summary{grid-template-columns:1fr}.opportunity-card-head{grid-template-columns:76px minmax(0,1fr)}
  .opportunity-card-body{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .opportunity-card-head{padding-right:0}.opportunity-tags{margin-right:0}.opportunity-actions{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}.opportunity-actions .button{width:100%}
}
@media(max-width:820px){.opportunity-card-body{grid-template-columns:1fr}}
@media(max-width:620px){.impact-brief{grid-template-columns:1fr}.impact-brief span{display:grid;grid-template-columns:62px 1fr;gap:5px}.impact-brief b{margin:0}}
@media(max-width:760px){
  .opportunity-overview{grid-template-columns:1fr;gap:10px;padding:12px}.opportunity-summary{gap:11px}.opportunity-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.opportunity-kpis>span{min-width:0}.opportunity-summary-note{display:grid;gap:3px}.opportunity-sort{width:100%;justify-content:space-between}.opportunity-sort select{min-width:150px;flex:1}
  .opportunity-card{padding:15px 13px 16px}.opportunity-card-head{grid-template-columns:66px minmax(0,1fr);gap:11px}.opportunity-tags{margin-left:77px}.opportunity-score{min-height:58px;padding:6px}.opportunity-score strong{font-size:22px}.opportunity-score span{font-size:8.5px}.opportunity-heading h3{font-size:14px;line-height:1.5}.opportunity-heading>p{font-size:10px}
  .opportunity-actions{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.opportunity-actions .button{min-width:0;min-height:39px;padding-left:7px;padding-right:7px;font-size:10.5px}
  .opportunity-card-body{grid-template-columns:1fr;gap:9px;margin-top:11px}.precheck,.light-insight{min-height:0}.precheck{padding:12px}.insight-preview{min-height:0;padding:13px}.insight-summary-copy strong{-webkit-line-clamp:4}
  .insight-drawer-card{width:100vw;border-radius:0}.insight-drawer-head{padding:19px 56px 15px 18px}.insight-drawer-head h2{font-size:18px}.insight-drawer-head p{white-space:normal}.insight-drawer-meta{display:grid;grid-template-columns:1fr 1fr;padding:10px 14px;gap:6px}.insight-drawer-meta span{min-width:0}.insight-drawer-meta em{grid-column:1/-1;margin:2px 0 0}.insight-drawer-content{padding:22px 18px 76px;font-size:12.5px}.insight-drawer-footer{display:grid;grid-template-columns:1fr 1fr;padding:10px 12px}.insight-drawer-footer>.button,.insight-drawer-footer #insightDrawerAction,.insight-drawer-footer #insightDrawerAction .button{width:100%;min-width:0}
}
@media(max-width:360px){
  .opportunity-kpis>span{padding:7px 8px}.opportunity-kpis b{font-size:16px}.opportunity-kpis small{font-size:9px}
  .opportunity-actions{grid-template-columns:1fr}.opportunity-card-head{grid-template-columns:60px minmax(0,1fr)}
  .precheck-top .panel-kicker{flex-basis:100%}.insight-preview{grid-template-columns:1fr}.insight-open{width:100%}
}

/* Interaction polish v9 — compact stock rows, detail overlay and separated search action. */
.global-search-form{height:44px;display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:8px}
.global-search-input{min-width:0;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;overflow:hidden;box-shadow:0 4px 14px rgba(15,58,100,.035)}
.global-search-input:focus-within{border-color:#79afff;box-shadow:0 0 0 3px rgba(23,107,255,.08)}
.global-search-input>span{font-size:23px;color:#7895af;margin:0 10px 0 14px}.global-search-input input{width:100%;height:100%;min-width:0;border:0;outline:0;padding:0 12px 0 0;color:var(--ink);background:transparent}
.global-search-form button{
  width:76px;height:44px;min-height:44px;margin:0;padding:0;
  border:1px solid #bdd8ee;border-radius:12px;background:linear-gradient(135deg,#eff7ff,#dfeeff);
  color:#1265b8;font-size:11px;font-weight:800;box-shadow:0 4px 14px rgba(15,58,100,.035);
}
.global-search-form button:hover{background:linear-gradient(135deg,#ddecff,#cde4ff)}
.watch-color-legend{display:inline-flex!important;align-items:center;gap:6px;color:#668197!important;font-size:9.5px!important;letter-spacing:0!important}
.watch-color-legend i{width:8px;height:8px;border-radius:50%;background:#20a77c;box-shadow:0 0 0 4px rgba(32,167,124,.1)}
.watch-action-button.is-selected{border-color:#b9dfd2;background:#edf9f4;color:#167558;box-shadow:none}
.watch-action-button.is-selected:disabled{opacity:1;cursor:default}
.screen-action{width:238px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:stretch}
.screen-action .button{width:100%;height:38px;min-height:38px;min-width:0;padding:7px 9px;font-size:10px;overflow:hidden;text-overflow:ellipsis}
.screen-action .screen-main-action{grid-column:1/-1}
.watch-row-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.watch-row-actions>small{grid-column:1/-1;min-height:28px;margin:0!important}
.watch-row-actions .button{width:100%;height:36px;min-height:36px;min-width:0;padding:6px 7px;font-size:9px;overflow:hidden;text-overflow:ellipsis}
.report-toolbar .button{min-width:118px;height:38px;min-height:38px}
.modal-actions .button{min-width:128px;min-height:40px}
.candidate.is-watched{border-color:#acdcca;background:#f1fbf7}
.watch-manual-form{grid-template-columns:minmax(240px,1fr) 150px}
.watch-manual-form #watchManualSubmit{width:150px;height:39px;min-height:39px}
.watch-manual-form #watchManualSubmit.is-selected{border-color:#b9dfd2;background:#edf9f4;color:#167558;box-shadow:none;opacity:1}
.watch-table-head,.watch-table-row{grid-template-columns:minmax(130px,.9fr) minmax(150px,1.1fr) minmax(190px,1.35fr) minmax(105px,.75fr) 190px;align-items:center}
.holding-table-head,.holding-table-row{grid-template-columns:minmax(145px,1fr) minmax(125px,.85fr) minmax(170px,1.2fr) minmax(160px,1.1fr) 190px;align-items:center}
.compact-stock-row{min-height:74px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.compact-stock-row:hover,.compact-stock-row:focus-visible{border-color:#9fc8e8;box-shadow:0 7px 20px rgba(20,73,116,.08);outline:0;transform:translateY(-1px)}
.compact-stock-row>div:not(.compact-actions){overflow:hidden}.compact-stock-row>div:not(.compact-actions) strong,.compact-stock-row>div:not(.compact-actions) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-self:center}.compact-actions .button{height:36px!important}
.stock-detail-card{width:min(820px,100%)}
.stock-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}
.stock-detail-grid section{min-width:0;padding:12px 13px;border:1px solid #d8e5ef;border-radius:11px;background:#f8fbfe}
.stock-detail-grid span,.stock-detail-grid strong,.stock-detail-grid small{display:block}.stock-detail-grid span{color:#7790a4;font-size:9px}.stock-detail-grid strong{margin-top:5px;color:#234b6a;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.stock-detail-grid small{margin-top:4px;color:#7890a4;font-size:9.5px;line-height:1.5;overflow-wrap:anywhere}
.stock-detail-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.stock-detail-actions .button{width:100%;min-width:0}
.stock-load-more{display:flex;justify-content:center;padding:14px 10px 4px}.stock-load-more .button{min-width:220px;height:40px}

@media(max-width:1180px){
  .screen-candidate{grid-template-columns:minmax(210px,1fr) minmax(220px,1fr) 238px}
  .screen-action{width:238px}
  .compact-stock-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compact-stock-row .compact-actions{grid-column:1/-1}
}
@media(max-width:760px){
  .global-search-form{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 72px;gap:7px}.global-search-form button{width:72px}
  .watch-manual-form{grid-template-columns:1fr}
  .watch-toolbar{align-items:flex-end}
  .watch-color-legend{max-width:210px;text-align:right}
  .screen-action{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
  .screen-action .button{height:39px}
  .watch-row-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-toolbar .button{min-width:0}
  .watch-manual-form #watchManualSubmit{width:100%}
  .compact-stock-row{grid-template-columns:1fr}
  .compact-stock-row .compact-actions{grid-column:auto}
  .stock-detail-grid{grid-template-columns:1fr}
  .stock-detail-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1100px){.system-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stock-reading-layers { padding: clamp(16px, 3vw, 32px); color: #17364d; }
.stock-reading-layers > .report-body { padding: 0; margin: 0 0 28px; max-width: none; width: 100%; }
.stock-reading-layers h3 { margin: 0 0 16px; }
.stock-reading-section { border-top: 1px solid #c8d7e3; padding: 18px 0; }
.stock-reading-section > summary { cursor: pointer; font-weight: 650; min-height: 44px; box-sizing: border-box; padding: 10px 0; line-height: 1.6; }
.stock-reading-section > summary:focus-visible { outline: 2px solid #166cc1; outline-offset: 4px; }
.stock-reading-layers .report-body { overflow-wrap: anywhere; }
.stock-reading-layers table { display: block; max-width: 100%; overflow-x: auto; }
@media print { .stock-reading-layers { padding: 0; } .stock-reading-section > summary { font-size: 16pt; } }

/* Report reading layout: primary actions wrap, audit downloads stay secondary. */
#stockReportViewer { overflow-x: hidden; }
#stockReportViewer .report-toolbar { display: flex; flex-wrap: wrap; align-items: flex-start; }
#stockReportViewer .report-heading { flex: 1 1 100%; min-width: 0; }
#stockReportViewer .report-heading h3 { white-space: normal; overflow-wrap: anywhere; }
.report-primary-actions { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; max-width: 100%; }
.report-toolbar > .report-primary-actions { flex: 0 1 auto; min-width: 0; }
#stockReportViewer .report-primary-actions > .button,
#stockReportViewer .report-primary-actions > .report-context-pill { box-sizing: border-box; flex: 0 0 156px; width: 156px; min-width: 0; height: 40px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; letter-spacing: normal; font-size: 12px; }
#stockReportViewer .report-context-pill { overflow: hidden; text-overflow: ellipsis; }
#stockReportViewer .stock-reading-section > .report-body { padding: 16px 0 0; width: 100%; min-width: 0; }
#stockReportViewer .stock-reading-layers { min-width: 0; }
#stockReportViewer .report-digest { margin: 20px clamp(16px, 3vw, 32px) 0; }
#stockReportViewer .digest-head { flex-wrap: wrap; min-width: 0; }
#stockReportViewer .digest-head > div { min-width: 0; overflow-wrap: anywhere; }
.report-artifact-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.report-artifact-actions .button { width: 132px; height: 38px; min-width: 0; }

/* Compact grade-led overview; the grade measures report completeness only. */
#stockReportViewer .stock-reading-layers > .stock-core {
  box-sizing: border-box;
  padding: 16px 18px;
  margin: 0 0 28px;
  border: 1px solid #bbd8f5;
  border-radius: 14px;
  background: #f7fbff;
  color: #123f67;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}
#stockReportViewer .stock-core-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
#stockReportViewer .stock-core-heading .quality-grade { width: 43px; height: 43px; font-size: 19px; box-shadow: none; }
#stockReportViewer .stock-core-heading h3 { margin: 0 0 2px; font-size: 18px; line-height: 1.4; color: #123f67; }
#stockReportViewer .stock-core-heading small { font-size: 12px; color: #48647c; }
#stockReportViewer .stock-core-copy { min-width: 0; overflow-wrap: anywhere; }
#stockReportViewer .stock-risks > h2 {
  padding: 0;
  margin: 0 0 14px;
  border: 0;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 700;
  color: #123f67;
}
#stockReportViewer .stock-core p { margin: 0; }
#stockReportViewer .stock-risks { font-size: 14px; line-height: 1.8; background: transparent; border: 0; border-radius: 0; }
#stockReportViewer .stock-risks ul { margin: 0; }
#stockReportViewer .stock-risks li + li { margin-top: 10px; }
@media (max-width: 600px) {
  #stockReportViewer .stock-reading-layers > .stock-core { padding: 14px; }
}
@media print {
  #stockReportViewer .stock-reading-layers > .stock-core,
  #stockReportViewer .stock-reading-layers > .stock-risks { break-inside: avoid; background: white; }
}
@media (max-width: 600px) {
  #stockReportViewer .report-primary-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  #stockReportViewer .report-primary-actions > .button,
  #stockReportViewer .report-primary-actions > .report-context-pill { width: 100%; flex-basis: auto; font-size: 11px; }
}
.event-reading-layers { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; max-width: 100%; }
.event-reading-layers > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
.event-reading-layers .report-body { min-width: 0; max-width: 100%; box-sizing: border-box; }
.event-reading-layers pre { min-width: 0; max-width: 100%; box-sizing: border-box; overflow-x: auto; }
.event-reading-layers blockquote { overflow-wrap: anywhere; }
.event-reading-layers > .report-body { margin: 0; padding: 28px; width: 100%; box-sizing: border-box; }
.event-reading-layers .event-core { background: none; border-radius: 0; }
.event-reading-layers .stock-core-heading { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.event-reading-layers .stock-core-heading h3 { margin: 0; }
.event-reading-layers .stock-core-copy { font-size: 18px; line-height: 1.85; color: var(--ink); }
.event-reading-layers .stock-risks { border-top: 1px solid var(--line); }
.event-section-letter { display: inline-block; color: var(--blue); margin-right: 8px; }
.event-legacy-note { margin: 0 0 18px; padding: 10px 14px; border: 1px dashed #c9b98a; border-radius: 8px; background: #fdf8ec; color: #6b5a2f; font-size: 12.5px; line-height: 1.7; }
.event-reading-layers .event-warnings-line { margin: 0 0 4px; color: #7d5f22; font-size: 12.5px; line-height: 1.7; }
.event-boundary { color: #896320; border-left: 3px solid #dbb163; padding-left: 12px; }
.event-candidate { border-top: 1px solid var(--line); padding: 14px 0; overflow-wrap: anywhere; }
.event-candidate summary { display: flex; justify-content: space-between; gap: 12px; cursor: pointer; }
.event-reading-layers .stock-reading-section { margin: 0 28px; }
.event-reading-layers p,.event-reading-layers a,.event-reading-layers li { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .event-reading-layers > .report-body { padding: 20px 16px; }
  .event-reading-layers .stock-reading-section { margin: 0 16px; }
  .event-candidate summary { flex-direction: column; gap: 6px; }
  .event-reading-layers .stock-core-copy { font-size: 17px; }
}
/* ── 事件报告：A股标的总览卡（P4） ── */
.event-overview { border-top: 1px solid var(--line); }
.event-overview .so-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.event-overview .so-head h3 { margin: 0; }
.event-overview .so-head small { color: var(--muted); font-size: 12px; }
.so-list { display: grid; gap: 8px; }
.so-item { border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: var(--radius-sm); background: var(--panel); overflow: hidden; }
.so-item > summary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 11px 14px; cursor: pointer; list-style: none; }
.so-item > summary::-webkit-details-marker { display: none; }
.so-item .so-main { font-size: 15px; min-width: 0; overflow-wrap: anywhere; }
.so-item .so-main b { color: var(--ink); }
.so-item .so-main code { margin-left: 6px; font-size: 12px; color: var(--muted); background: var(--soft); padding: 1px 6px; border-radius: 5px; }
.so-item .so-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.so-tag { font-size: 11px; line-height: 1.6; padding: 2px 8px; border-radius: 20px; white-space: nowrap; }
.so-grade { font-weight: 700; background: #eef2f7; color: #46596d; }
.so-unverified { background: #fff4e0; color: #a8681a; border: 1px dashed #e0b070; }
.so-dir { background: var(--soft); color: var(--muted); }
.so-dir.dir-positive { background: #fdeaea; color: #c0392b; }
.so-dir.dir-negative { background: #e6f7f0; color: #0e8f63; }
.so-dir.dir-mixed { background: #fff6e5; color: #a8741a; }
.so-stage { background: #eef4ff; color: #2c5f9e; }
.so-item .so-detail { padding: 4px 14px 14px; border-top: 1px dashed var(--line); }
.so-item .so-detail p { margin: 7px 0; font-size: 13px; line-height: 1.72; color: var(--ink); }
.so-item .so-detail b { color: var(--muted); font-weight: 600; }
/* A 股涨红跌绿：受益正向红、受损反向绿（符合国内习惯） */
.so-item.grade-none { border-left-color: #c3cedb; }
.so-item.g-a { border-left-color: var(--red); } .so-item.g-a .so-grade { background: #fdeaea; color: #c0392b; }
.so-item.g-b { border-left-color: var(--orange); } .so-item.g-b .so-grade { background: #fff3e2; color: #b5701a; }
.so-item.g-c { border-left-color: #e0b93c; } .so-item.g-c .so-grade { background: #fdf8e4; color: #8d7318; }
.so-item.g-d { border-left-color: #9aa8b8; } .so-item.g-d .so-grade { background: #eef1f5; color: #56677a; }
.so-item.g-e { border-left-color: var(--green); } .so-item.g-e .so-grade { background: #e6f7f0; color: #0e8f63; }
.so-manual { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }
.so-manual > summary { cursor: pointer; color: var(--muted); font-size: 12px; min-height: 34px; box-sizing: border-box; padding: 8px 0; line-height: 1.5; }
.so-manual .so-list { margin-top: 8px; }
/* 软证据档：保留字母评级，但来源未经 typed verifier 核证 */
.so-soft { background: #eef4ff; color: #2f5fb3; border: 1px dashed #9ab6e8; }
.so-inline-soft { color: #2f5fb3; font-weight: 600; }
.so-soft-limit { color: #5a6b82; font-style: italic; }
@media (max-width: 600px) {
  .so-item > summary { flex-direction: column; align-items: flex-start; }
  .so-item .so-main { font-size: 14px; }
}
/* ── 事件报告：A股标的总览卡（P4） ── */
.event-overview { border-top: 1px solid var(--line); }
.event-overview .so-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.event-overview .so-head h3 { margin: 0; }
.event-overview .so-head small { color: var(--muted); font-size: 12px; }
.so-list { display: grid; gap: 8px; }
.so-item { border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: var(--radius-sm); background: var(--panel); overflow: hidden; }
.so-item > summary { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 11px 14px; cursor: pointer; list-style: none; }
.so-item > summary::-webkit-details-marker { display: none; }
.so-item .so-main { font-size: 15px; min-width: 0; overflow-wrap: anywhere; }
.so-item .so-main b { color: var(--ink); }
.so-item .so-main code { margin-left: 6px; font-size: 12px; color: var(--muted); background: var(--soft); padding: 1px 6px; border-radius: 5px; }
.so-item .so-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.so-tag { font-size: 11px; line-height: 1.6; padding: 2px 8px; border-radius: 20px; white-space: nowrap; }
.so-grade { font-weight: 700; background: #eef2f7; color: #46596d; }
.so-unverified { background: #fff4e0; color: #a8681a; border: 1px dashed #e0b070; }
.so-dir { background: var(--soft); color: var(--muted); }
.so-dir.dir-positive { background: #fdeaea; color: #c0392b; }
.so-dir.dir-negative { background: #e6f7f0; color: #0e8f63; }
.so-dir.dir-mixed { background: #fff6e5; color: #a8741a; }
.so-stage { background: #eef4ff; color: #2c5f9e; }
.so-item .so-detail { padding: 4px 14px 14px; border-top: 1px dashed var(--line); }
.so-item .so-detail p { margin: 7px 0; font-size: 13px; line-height: 1.72; color: var(--ink); }
.so-item .so-detail b { color: var(--muted); font-weight: 600; }
/* A 股涨红跌绿：受益正向红、受损反向绿（符合国内习惯） */
.so-item.grade-none { border-left-color: #c3cedb; }
.so-item.g-a { border-left-color: var(--red); } .so-item.g-a .so-grade { background: #fdeaea; color: #c0392b; }
.so-item.g-b { border-left-color: var(--orange); } .so-item.g-b .so-grade { background: #fff3e2; color: #b5701a; }
.so-item.g-c { border-left-color: #e0b93c; } .so-item.g-c .so-grade { background: #fdf8e4; color: #8d7318; }
.so-item.g-d { border-left-color: #9aa8b8; } .so-item.g-d .so-grade { background: #eef1f5; color: #56677a; }
.so-item.g-e { border-left-color: var(--green); } .so-item.g-e .so-grade { background: #e6f7f0; color: #0e8f63; }
.so-manual { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }
.so-manual > summary { cursor: pointer; color: var(--muted); font-size: 12px; min-height: 34px; box-sizing: border-box; padding: 8px 0; line-height: 1.5; }
.so-manual .so-list { margin-top: 8px; }
@media (max-width: 600px) {
  .so-item > summary { flex-direction: column; align-items: flex-start; }
  .so-item .so-main { font-size: 14px; }
}

/* ── 股票弹窗：模型原判标记（P6） ── */
.cand-model-grade { font-style: normal; color: #a8681a; background: #fff4e0; border: 1px dashed #e0b070; border-radius: 4px; padding: 0 4px; margin-right: 2px; }

/* ── 事件报告字号体系（6 级，覆盖散乱的默认值）──
   比例约 1.2，层级：L1 主标题 > L2 小节标题 > L3 核心观点/折叠条 > L4 正文 > L5 辅助 > L6 徽标
   L1 24px · L2 17px（核心观点导语同为 17px）· L3 15px · L4 13.5px · L5 12px · L6 11px          */
.event-reading-layers { font-size: 13.5px; }

/* L2 小节标题：原 17px→17px 保留，H3 原 15px 归入 L3 */
.event-reading-layers .report-body h2 { font-size: 17px; }
.event-reading-layers .report-body h3 { font-size: 15px; }

/* L3 折叠条标题：原 16px→15px，与小节标题同级 */
.event-reading-layers .stock-reading-section > summary { font-size: 15px; }

/* 核心观点（导语段，按用户指定）：正文 17px、标题 L2 17px、小字 L5 */
.event-reading-layers .stock-core-copy { font-size: 17px; line-height: 1.85; color: var(--ink); }
.event-reading-layers .stock-core-heading h3 { font-size: 17px; line-height: 1.4; margin: 0; color: #123f67; }
.event-reading-layers .stock-core-heading small { font-size: 12px; color: #48647c; }
.event-reading-layers .stock-core-heading .quality-grade { font-size: 18px; }

/* L4 正文：13px→13.5px */
.event-reading-layers .report-body { font-size: 13.5px; line-height: 1.82; }
.event-reading-layers .report-body p,
.event-reading-layers .report-body li { font-size: 13.5px; }
.event-reading-layers .report-body b,
.event-reading-layers .report-body strong { font-size: 13.5px; }
.event-reading-layers .report-body code { font-size: 12px; }

/* L5 辅助说明：原 12/12.5/10.8px 统一到 12px */
.event-reading-layers small { font-size: 12px; }
.event-reading-layers .event-legacy-note,
.event-reading-layers .event-warnings-line { font-size: 12px; line-height: 1.7; }
.event-reading-layers .event-boundary { font-size: 13.5px; }
.event-reading-layers p.muted { font-size: 12px; }

/* L6 徽标：so-tag / quality-grade / so-soft 统一 11px */
.event-reading-layers .so-tag { font-size: 11px; }
.event-reading-layers .so-soft-limit,
.event-reading-layers .so-inline-soft { font-size: 11px; }
.event-reading-layers .event-overview .so-head small { font-size: 12px; }

/* A 股总览卡：主体名 L4，强调代码 L5 */
.event-reading-layers .so-item .so-main { font-size: 14px; }
.event-reading-layers .so-item .so-main code { font-size: 12px; }

@media (max-width: 600px) {
  .event-reading-layers .stock-core-copy { font-size: 16px; }
}

/* ══════════════════════════════════════════════════════════════
   全站字号体系 v1（10 级 · 2026-10-14）
   普查发现：全站 17 种字号，含 8.5/9.5/10.5/13.5 四种半像素，
   且同一语义跨页不一致（研报正文 13px vs 事件正文 13.5px）。
   本体系置于文件末尾，覆盖前述散乱取值；信息密度保持不变。

   L1 26px  页面主标题 H1
   L2 23px  统计大数字
   L3 22px  详情页 H1（报告正文标题）
   L4 18px  详情页 H2
   L5 17px  小节标题 / 核心观点导语 / 折叠条
   L6 16px  详情页 H3 / 主要按钮 / 侧栏标题
   L7 15px  卡片小标题
   L8 14px  列表条目标题
   L9 13px  正文（跨页统一，原 13.5 归此）
   L10 12px 辅助说明 / 元信息 / 次要按钮
   L11 11px 徽标 / 标签 / 表格内文字
   L12 10px 次要元信息 / 进度条文字
   L13  9px 眉标 eyebrow / 卡片左上角标记
   ══════════════════════════════════════════════════════════════ */

/* ── L1 / L2 / L3：标题 ── */
h1 { font-size: 26px; }
.screen-title, .view-title { font-size: 26px; }
.stat-value strong, .strong.v, .system-summary strong { font-size: 23px; }
.screen-summary strong { font-size: 23px; }
.report-body h1, .stock-reading-layers .report-body h1 { font-size: 22px; }
.report-heading h3 { font-size: 16px; }

/* ── L4 / L5 / L6 / L7：层级标题 ── */
.report-body h2, .stock-reading-layers .report-body h2,
.event-reading-layers .report-body h2 { font-size: 18px; }
.screen-workspace h2, .system-card h2 { font-size: 18px; }
.report-body h3, .stock-reading-layers .report-body h3,
.event-reading-layers .report-body h3 { font-size: 16px; }
.event-reading-layers .stock-core-heading h3 { font-size: 17px; }
.event-reading-layers .stock-core-copy { font-size: 17px; line-height: 1.85; }
.event-reading-layers .stock-reading-section > summary { font-size: 15px; }
.screen-candidate-main h3 { font-size: 15px; }
.opportunity-main h3 { font-size: 15px; }
.event-overview .so-head h3 { font-size: 15px; }

/* ── L8：列表条目标题（跨页统一） ── */
a.news-title-button { font-size: 14px; }
.report-list-card h3 { font-size: 14px; }
.candidate-group h3, .candidates h3 { font-size: 14px; }

/* ── L9：正文（跨页统一，13.5 → 13） ── */
.report-body, .stock-reading-layers .report-body,
.event-reading-layers .report-body { font-size: 13px; line-height: 1.82; }
.report-body p, .report-body li, .report-body td,
.stock-reading-layers .report-body p, .stock-reading-layers .report-body li,
.event-reading-layers .report-body p, .event-reading-layers .report-body li,
.event-reading-layers .report-body td { font-size: 13px; }
.report-body b, .report-body strong,
.stock-reading-layers .report-body b, .stock-reading-layers .report-body strong,
.event-reading-layers .report-body b, .event-reading-layers .report-body strong { font-size: 13px; }
.report-body li, .stock-reading-layers .report-body li { font-size: 13px; }
.event-reading-layers .so-item .so-main { font-size: 14px; }
.event-boundary { font-size: 13px; }

/* ── L10：辅助说明 / 次要按钮 ── */
small, .stock-reading-layers small, .event-reading-layers small { font-size: 12px; }
.screen-subhead, .screen-explainer span, .opportunity-summary-note,
.report-subhead span, .report-list-card p, .report-list-card .report-heat { font-size: 11px; }
.screen-candidate-main p, .candidate-summary, .candidate-date { font-size: 11px; }
.event-reading-layers .event-legacy-note,
.event-reading-layers .event-warnings-line { font-size: 12px; line-height: 1.7; }
.event-overview .so-head small, .stock-core-heading small { font-size: 12px; }
.button-mini, .button.button-secondary, .button.button-ghost, .button.button-link { font-size: 12px; }
button.tab, .research-tab { font-size: 13px; }

/* ── L11：徽标 / 标签 / 表格文字 ── */
.report-body code, .stock-reading-layers .report-body code,
.event-reading-layers .report-body code { font-size: 12px; }
.report-body th, .report-body td,
.stock-reading-layers .report-body th, .stock-reading-layers .report-body td,
.event-reading-layers .report-body th, .event-reading-layers .report-body td { font-size: 13px; }
.report-body th, .stock-reading-layers .report-body th,
.event-reading-layers .report-body th { font-size: 12px; }
.so-tag, .so-inline-soft, .so-soft-limit { font-size: 11px; }
.tag, .semantic-tag, .legacy-tag { font-size: 11px; }
.screen-quick b { font-size: 11px; }
.insight-result summary { font-size: 11px; }

/* ── L12：次要元信息 ── */
.job-stage, .job-id, .source-row time, .source-row b,
.opportunity-card .time, .report-context-pill { font-size: 10px; }
.candidate span, .candidate b { font-size: 11px; }
.screen-summary span, .screen-summary small, .screen-rules,
.screen-quick span, .screen-quick small, .screen-candidate p { font-size: 10px; }
.system-summary span, .system-summary p, .system-secondary summary { font-size: 11px; }

/* ── L13：眉标 / 角标 ── */
.report-kind, .eyebrow, .panel-kicker, .quality-grade,
.report-list-grade, .job-row .status-pill, .status-pill { font-size: 9px; }
.report-toolbar span { font-size: 10px; }

/* ── 半像素归整：8.5/9.5/10.5/10.8333 一律就近取整 ── */
/* 机会规范页：消除 8.5 / 9.5 / 10.5 半像素，就近取整 */
.opportunity-overview .opportunity-kpis b,
.opportunity-overview .opportunity-summary b,
.opportunity-overview strong { font-size: 16px; }
.opportunity-card .heat, .opportunity-card .trend,
.opportunity-card .impact-neutral, .opportunity-card .impact-high,
.opportunity-card .impact-low, .opportunity-card .opportunity-card-head small { font-size: 10px; }
.opportunity-card .opportunity-main > p,
.opportunity-card .opportunity-card-body > p,
.opportunity-preview > p { font-size: 11px; }
.opportunity-card .opportunity-summary-note > span,
.opportunity-card em, .opportunity-card .k { font-size: 11px; }
.opportunity-card b, .opportunity-card .opportunity-score b { font-size: 11px; }
.source-health-list .source-row > span, .job-list .job-row .job-name { font-size: 11px; }

/* ── 主要按钮统一 16px（原 12px 次要按钮已上提到 L10） ── */
.button, .research-tab { font-size: 16px; }
.button-dark, .button-primary { font-size: 16px; }

/* ══════════════════════════════════════════════════════════════
   全站字号体系 v2（2026-10-14）—— 层级重排
   问题：标的行里公司名实测只有 13px，而 4 个彩色标签 11px，
        主体比辅助还小 2px，视觉重心反了；A 段标题 15px / B 段 16px 不一致。
   原则：主体放大、辅助后退、层级之间至少差 2px、同层必须等宽。
   L1 22  L2 18  L3 17  L4 16  L5 15  L6 14  L7 13  L8 12  L9 11
   ══════════════════════════════════════════════════════════════ */

/* ── 标的行：主体必须最大 ── */
.event-reading-layers .so-item > summary { padding: 12px 14px; }
.event-reading-layers .so-item .so-main { font-size: 15px; line-height: 1.5; font-weight: 650; }
/* 全局 b 规则会覆盖 .so-main 内的 b，必须显式抬回 */
.event-reading-layers .so-item .so-main b { font-size: 15px; line-height: 1.5; font-weight: 700; color: var(--ink); }
.event-reading-layers .so-item .so-main code { font-size: 12px; margin-left: 8px; }
/* 标签统一退到 L9，并降饱和度避免抢主体 */
.event-reading-layers .so-item .so-tags { gap: 6px; }
.event-reading-layers .so-tag { font-size: 11px; line-height: 1.6; opacity: .88; }

/* ── 章节标题：h3 全部拉平到 L3(17px)，消除 A 段 15 / B 段 16 的不一致 ── */
.event-reading-layers .stock-core-heading h3,
.event-reading-layers .event-overview .so-head h3,
.event-reading-layers .stock-risks > h2,
.event-reading-layers .event-reading-section > h2,
.event-reading-layers .event-global > h2 { font-size: 17px; line-height: 1.45; }
.event-reading-layers .event-section-letter { font-size: 17px; }
/* 兜底：报告区内所有章节级 h2/h3 一律 17px，杜绝 16px 残留 */
/* 提高权重，压过 `.report-body h2/.report-body h3 {18px}`（其选择器权重 0,2,1 更高） */
.event-reading-layers .report-body h2,
.event-reading-layers .report-body h3,
.event-reading-layers .report-body h4 { font-size: 17px; line-height: 1.5; }
.event-reading-layers .report-body h2 { margin: 0 0 10px; }
.event-reading-layers .report-body h3 { margin: 0 0 8px; }
/* 全球主体条目内的公司全名是长文本，比章节标题降一档更耐读 */
.event-reading-layers .entity-resolution-item h3,
.event-reading-layers .er-item h3 { font-size: 15px; line-height: 1.5; }

/* ── 折叠条：统一 L5(15px)，不再随段落变化 ── */
.event-reading-layers .stock-reading-section > summary { font-size: 15px; line-height: 1.6; }

/* ── 详情区正文：L7(13px) 保留，但行高放宽以提升可读性 ── */
.event-reading-layers .so-item .so-detail p { font-size: 13px; line-height: 1.78; }
.event-reading-layers .so-detail b { font-size: 13px; }
.event-reading-layers .so-inline-soft { font-size: 11px; }
.event-reading-layers .so-soft-limit { font-size: 11px; line-height: 1.7; }

/* ── 总览头部的小字统计：L8(12px)，与标题拉开距离 ── */
.event-reading-layers .event-overview .so-head small { font-size: 12px; }

/* ── 核心观点区：导语段 L3(17px) 已是最大正文，无需再放大 ── */
.event-reading-layers .stock-core-copy { font-size: 15px; line-height: 1.9; }
.event-reading-layers .stock-core-copy p { font-size: 15px; line-height: 1.9; }
.event-reading-layers .stock-core-heading .quality-grade { font-size: 18px; }

/* ══════════════════════════════════════════════════════════════
   半像素清零 v1（2026-10-14）
   CDP 全站普查发现「机会规范」页残留 8.5 / 9.5 / 10.5 / 13.5px 半像素字号。
   半像素在高分屏下会被渲染引擎舍入到相邻整像素，导致同一层级元素
   实际显示尺寸不一致（有的 9px 有的 10px），是「看起来大小不一」的隐形来源。
   这里只做兜底覆盖，不改原有语义层级：把半像素就近吸附到已定义的整数档。
   ══════════════════════════════════════════════════════════════ */
.stat .note, .stat .k,
.opportunity-heading > p,
.opportunity-summary,
.level-tab b, .level-tab span,
.reason,
.digest-disclaimer,
.precheck .heat, .precheck .trend,
.precheck-signals span,
.impact-brief span,
.impact-brief b,
.report-list-card p, .report-list-card .report-heat,
.watch-card-actions .button,
.watch-rule-note,
.watch-table-row > div, .holding-table-row > div,
.screen-summary span, .screen-summary small,
.screen-candidate-main p,
.screen-quick b,
.screen-quick small,
.global-search-foot span,
.precheck .heat,
.opportunity-actions .button { font-size: 11px; }
.rule-trigger small { font-size: 10px; }
.opportunity-score span { font-size: 10px; }
.insight-result-notice { color: #93651e; line-height: 1.65; white-space: normal; overflow-wrap: anywhere; }
