/* 标准2/3/5/10：炭墨与纸白，酸橙色只用于主操作；无渐变、无毛玻璃。 */
:root{--font: "PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;--heading:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;--r:6px;--r-sm:4px;--r-lg:8px;--r-xl:12px;--topbar-h:64px;--bottom-h:68px;--hi:#cadc8b;--hi2:#cadc8b;--accent:#d9ed9a;--accent-bg:#d9ed9a14;--mid:#d6ac70;--shadow:none;--shadow-lg:0 18px 65px #0005}
:root,[data-theme="dark"]{--bg:#141613;--bg-grad:none;--surface:#1c1f1a;--surface-2:#242820;--surface-3:#30372b;--elev:#1c1f1a;--text:#f0f0e7;--text-2:#c3c8b9;--text-3:#a0a995;--border:#d8e7bd1c;--border-strong:#d8e7bd36;--scrim:#080b08b8;--green:#8dd4b0;--red:#edac9e;--warn:#e1bd85;--skel:linear-gradient(90deg,#1c1f1a,#30372b,#1c1f1a)}
[data-theme="light"]{--bg:#f5f4ec;--surface:#fffef7;--surface-2:#eeeee4;--surface-3:#e1e5d5;--elev:#fffef7;--text:#22281e;--text-2:#4e5946;--text-3:#64725a;--border:#32422220;--border-strong:#32422240;--accent:#425b20;--accent-bg:#425b2010;--hi:#425b20;--hi2:#425b20;--mid:#85602e;--warn:#82531d;--scrim:#18201166;--green:#226b48;--red:#a43c32;--shadow:none}
/* 标准8：标题用宋体衬线，正文用系统黑体；44/24/18/14/12五级字阶，数字等宽。 */
body{font-size:14px;line-height:1.65;background-image:none;font-weight:400}button,input,select{font-family:var(--font)}h1,h2,h3{letter-spacing:-.02em}button{-webkit-tap-highlight-color:transparent}button,input,select{touch-action:manipulation}
.topbar{background:var(--bg);backdrop-filter:none}
.topbar-inner{max-width:1440px;padding:0 24px;gap:20px}
.brand-mark{width:30px;height:30px;border-radius:0;background:none;box-shadow:none;color:var(--accent)}
.brand h1{font-size:15px;font-weight:600;letter-spacing:.07em}
.brand-sub{font-size:10px}
.brand-sub .pulse{animation:none}
.top-actions{flex:none}
.market-seg{margin-left:auto}
.mkt-btn{min-height:40px;padding:0 12px}
.mkt-btn[aria-pressed=true]{background:var(--accent);color:var(--bg);box-shadow:none}
.tabs-top{background:none;border:0;gap:12px}
.tab{min-height:44px;border-radius:0;font-size:13px;font-weight:500}
.tabs-top .tab[aria-current]{background:none;color:var(--text);box-shadow:inset 0 -2px var(--accent)}
.icon-btn{border:0;background:none;min-height:44px;min-width:44px;border-radius:6px}
.icon-btn:hover{background:var(--surface-2)}
main{max-width:1440px;padding:28px 24px 40px}
.edition{display:flex;gap:14px;align-items:center;color:var(--text-3);font-size:10px;letter-spacing:.14em}
.edition::before{content:'';width:28px;height:1px;background:var(--accent)}
.page-intro{position:relative;padding:12px 0 22px;display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border);margin-bottom:0}
.page-intro h2{font:500 44px/1.18 var(--heading);letter-spacing:-.04em;max-width:620px}
.page-intro h2 em{font-style:normal;color:var(--accent)}
.page-intro p{color:var(--text-2);font-size:13px;max-width:430px;margin:14px 0 0;line-height:1.8}
.intro-index{font:italic 100px/.9 var(--heading);color:var(--accent);opacity:.25;align-self:center}
.data-status{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--text-3);padding:12px 0}
.data-status::before{content:'';width:5px;height:5px;flex:none;margin-top:7px;background:var(--warn);border-radius:50%}
/* 标准1/4/7：来源和方法代替虚构用户评价；引导理解→筛选→验证，保留原有任务。 */
.quick-guide{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 0 18px;font-size:12px}
.quick-guide>summary{padding:12px 0;cursor:pointer;color:var(--text-2)}
.guide-content{padding:0 0 14px;color:var(--text-2);line-height:1.9}
.guide-content p{margin:4px 0}
.guide-content a{color:var(--accent);text-underline-offset:3px}
.guide-content b{font-weight:600;color:var(--text)}
.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 24px;border-bottom:1px solid var(--border)}
.kpi{padding:14px 0;min-height:90px;background:none;border:0;border-radius:0;box-shadow:none;animation:none}
.kpi+.kpi{padding-left:24px;border-left:1px solid var(--border)}
.kpi::after{display:none}
.kpi-value{font-size:28px;font-weight:600;margin-top:3px;line-height:1.2}
.kpi-value small{font-size:11px}
.kpi-label,.kpi-foot{font-size:11px}
.split-bar{height:2px;max-width:160px}
.kpi.clickable:hover{transform:none;background:var(--surface)}
.section-head{margin-bottom:14px}
.section-head h2{font-size:18px;font-weight:600}
.count{background:none;border:1px solid var(--border-strong);border-radius:3px;font:10px var(--mono);padding:2px 6px}
.seg{border-radius:5px;background:none}
.seg-btn{min-height:38px;font-size:12px;border-radius:3px}
.seg-btn[aria-pressed=true]{background:var(--surface-3);box-shadow:none}
.btn{min-height:44px;border-radius:5px;font-size:12px}
.btn.primary{color:var(--bg)}
.filter-toggle{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:650}
.badge{background:var(--bg);color:var(--accent);border-radius:4px}
.active-summary{font-size:11px;color:var(--text-3);line-height:1.7;margin:0 0 14px}
.result-tick{display:inline-block;width:5px;height:5px;background:var(--accent);margin-right:7px}
.filters{grid-template-columns:repeat(4,minmax(0,1fr));padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:none;gap:18px}
.f-search{grid-column:auto}
.f-field label,.f-label{font-size:11px}
.chips-group{height:44px;border-radius:4px}
.fchip{min-height:36px;padding:0 6px;flex:1;font-size:12px}
.f-field input[type=search],.f-field select{height:44px;border-radius:4px}
.f-field:has(.chips-group){min-width:0}
.f-range input{height:44px}
.f-switch .hint{display:block;font-size:10px}
.f-actions .btn{width:100%;justify-content:center}
.filter-footer{display:none}
/* 标准3/8：单个信号按标的→类型→价格→时效阅读；分数不再使用装饰性圆环。 */
.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 24px}
.signal-note{position:relative;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:20px 0;color:var(--text);transition:background .16s,transform .16s;animation:note-in .22s both}
.note-head{display:flex;align-items:baseline;gap:10px;justify-content:space-between}
.note-symbol{font-size:23px;letter-spacing:-.04em;font-weight:650}
.note-score{font:600 16px var(--mono);color:var(--text-2)}
.note-score small{font:10px var(--font);color:var(--text-3);margin-left:5px}
.note-labels{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:11px;color:var(--text-3);margin-top:4px}
.note-type{font-weight:600}
.note-bottom{display:grid;grid-template-columns:1fr 1.6fr;gap:12px;margin-top:15px;font-size:12px}
.note-price{font:500 16px var(--mono);letter-spacing:-.03em}
.note-price small{font:10px var(--font);color:var(--text-3);display:block;margin-bottom:3px}
.note-time{text-align:right;color:var(--text-3);font-size:11px}
.note-time b{display:block;font-size:12px;font-weight:400;color:var(--text-2)}
.note-meta{display:flex;justify-content:space-between;font-size:10px;margin-top:9px;color:var(--text-3)}
.note-unconfirmed{color:var(--warn)}
.note-arrow{font-size:12px;color:var(--accent);display:inline-block;transition:transform .18s}
.signal-note:hover .note-arrow{transform:translateX(4px)}
.signal-note:hover{background:var(--surface)}
.signal-note:active{transform:scale(.985)}
.signal-note.stale{opacity:.78}
.chip,.side-tag,.held-badge{border-radius:3px;font-size:11px}
.chip{height:23px}
.ring.lg{--size:64px}
.ring.lg .ring-txt{font-size:20px}
.ring.lg .ring-txt small{font-size:9px}
/* 标准6：结果更新动效帮助确认筛选生效；按钮反馈表达可点击；抽屉过渡保持位置感。 */
@keyframes note-in{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
.table-wrap{border-radius:5px;box-shadow:none}table{font-size:12px}tbody td{padding:13px 12px}
.sbar-track{height:3px}
.sbar .tier-txt{display:none}
.sym-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.sym-card,.panel,.pos-chart-card,.lv-card{border-radius:5px;box-shadow:none}
.panel{padding:22px}
.panel h3{font-size:16px}
.sym-card:hover{transform:none}
.pos-chart-head{flex-wrap:wrap}
.msec-title{font-size:18px}
.msec{border-radius:0}
.mx{font-size:12px}
.drawer{width:min(900px,100vw);background:var(--surface);box-shadow:var(--shadow-lg)}
.drawer-head{padding:18px 22px}
.drawer-body{padding:20px 22px}
.d-hero{border-radius:5px;background:var(--surface-2);padding:16px}
.research-details{border:1px solid var(--border);border-radius:4px;padding:14px}
.research-details>summary{cursor:pointer;color:var(--text-2);font-size:12px}
.research-details[open]>summary{margin-bottom:20px}
.research-details section+section{margin-top:16px}
.footer-inner{max-width:1440px;padding:20px 24px}
.footer p{font-size:11px}
.footer .disclaimer{line-height:1.8}
.proof-note{color:var(--text-3);font-size:11px;max-width:640px;line-height:1.8}
/* 标准5：浅色也独立调校；明确文本语义，不依赖红绿判断。 */
[data-theme=light] .chip-edge-buy,[data-theme=light] .t-edge-buy{color:#146979}
[data-theme=light] .chip-edge-sell,[data-theme=light] .t-edge-sell{color:#865514}
/* 标准9：移动端是默认工作方式，筛选面板放在拇指区；桌面扩展为同页筛选。 */
@media(max-width:900px){.tabs-top{display:none}
.topbar-inner{gap:8px}
.top-actions{flex:none}
.market-seg{margin-left:auto}
.tabs-bottom{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(68px + env(safe-area-inset-bottom));padding:5px 8px env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--border);backdrop-filter:none}
.tabs-bottom .tab{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;font-size:10px;padding:5px 0;gap:3px;border-radius:0;min-height:52px}
.tabs-bottom .tab[aria-current]{color:var(--accent);background:none}
.tabs-bottom .tab[aria-current]::before{content:'';position:absolute;top:0;width:24px;height:2px;background:var(--accent)}body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
.filters{grid-template-columns:repeat(2,minmax(0,1fr))}
.tabs-top{display:none}}
@media(max-width:760px){.topbar-inner{height:64px;padding:0 18px;gap:4px}
.brand h1{font-size:12px;letter-spacing:0}
.brand-mark{width:24px;height:24px}
.brand{gap:6px;min-width:0;flex:1}
.brand-sub{font-size:9px;max-width:130px}
.top-actions{gap:0}
.top-actions .icon-btn{min-width:38px;width:38px;padding:0}
.mkt-btn{font-size:10px;padding:0 8px;min-height:36px}
.market-seg{padding:2px;flex:none}main{padding:22px 20px 28px}
.edition{font-size:9px;gap:9px}
.page-intro{padding:13px 0 19px;gap:12px}
.page-intro h2{font-size:38px;line-height:1.2;max-width:260px}
.page-intro p{font-size:11px;line-height:1.8;max-width:270px;margin-top:11px}
.intro-index{font-size:66px;writing-mode:vertical-rl;align-self:start;margin-top:5px}
.data-status{font-size:10px;line-height:1.7;padding:10px 0}
.quick-guide{font-size:11px;margin-bottom:14px}
.quick-guide>summary{padding:10px 0}
.kpis{margin-bottom:20px}
.kpi{min-height:82px;padding:12px 0}
.kpi+.kpi{padding-left:18px}
.kpi-value{font-size:25px}
.kpi-foot{gap:4px;font-size:10px}
.kpi-label{font-size:10px}
.kpi-value small{font-size:10px}
.section-head{margin-bottom:9px;gap:10px;flex-wrap:nowrap}
.section-head h2{font-size:17px;gap:6px}
.head-right{gap:7px}
.seg-btn{padding:4px 8px;min-height:36px;font-size:10px}
.seg-btn svg{display:none}
.filter-toggle{display:inline-flex;min-height:44px;padding:0 12px}
.filter-toggle svg{width:13px}
.cards{grid-template-columns:1fr;gap:0}
.signal-note{padding:17px 0}
.note-symbol{font-size:24px}
.note-bottom{margin-top:12px}
.note-labels{font-size:11px;gap:8px}
.note-price{font-size:17px}
.note-meta{font-size:10px}
.sym-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sym-card{padding:12px}
.sym-head{align-items:flex-start}
.about-grid,.pos-duo{grid-template-columns:1fr}
.panel{padding:18px}
.footer-inner{padding:18px 20px}
.footer p{font-size:10px}
.drawer{top:0;left:0;bottom:0;height:100dvh;width:100%;border:0;border-radius:0;animation:slideIn .22s var(--ease) both}
.drawer-grip{display:none}
.drawer-head{padding:calc(14px + env(safe-area-inset-top)) 18px 14px}
.drawer-head h2{font-size:22px}
.drawer-body{padding:16px 18px 30px}
.d-hero{flex-direction:row;padding:12px;gap:14px}
.d-hero .ring{align-self:center}
.d-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.d-hero .ring.lg{--size:46px}
.d-hero .ring.lg .ring-txt{font-size:14px}
.d-hero .ring.lg .ring-txt small{font-size:8px}
.ichart-host{height:320px;min-height:260px}
.ichart-tog{min-height:40px;font-size:11px}
.ichart-toolbar{gap:12px}
.drawer .d-warn{font-size:12px}
.drawer .levels{grid-template-columns:1fr}
.sheet{width:100%;max-width:100%;border-radius:14px 14px 0 0}
.sheet-title{font-size:20px}
.ios-label{font-size:14px}
.ios-sub{font-size:12px}
/* 标准1/9：使用成熟的底部筛选面板，而非挤压手机列宽。 */
.filters{display:none;position:fixed;z-index:110;left:0;right:0;bottom:0;max-height:88dvh;overflow-y:auto;overscroll-behavior:contain;grid-template-columns:1fr 1fr;margin:0;padding:22px 20px calc(16px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;background:var(--surface);box-shadow:0 -10px 60px #0005;gap:18px}
.filters.open{display:grid}
.filters::before{content:'筛选信号';grid-column:1/-1;font-size:22px;font-weight:600;line-height:1.3}
.f-search,.f-field:has(.chips-group),.f-actions{grid-column:1/-1}
.filter-footer{grid-column:1/-1;display:flex;position:sticky;bottom:-1px;background:var(--surface);padding-top:10px}
.filter-footer .btn{width:100%;justify-content:center;font-size:14px;font-weight:600}
.filter-backdrop{position:fixed;inset:0;z-index:105;background:var(--scrim)}
.filter-close{position:absolute;top:16px;right:16px;z-index:1}
.f-switch .hint{font-size:10px}
.section-head:has(#h-symbols){flex-wrap:wrap}}
@media(min-width:761px){.filter-backdrop,.filter-close{display:none!important}
.filters.open{display:grid}
.page-intro h2 br{display:none}
.page-intro h2 em{margin-left:12px}
.filter-toggle{display:none}
.active-summary{margin-top:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.page-intro{border:0}
.data-status{color:#333}
.quick-guide,.filter-footer{display:none}}
/* 标准5/6/9：覆盖旧主题的硬编码蓝色；主要行动保持唯一酸橙强调。 */
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}
@media(max-width:760px){.mkt-btn{min-height:44px}
.top-actions .icon-btn{min-height:44px;min-width:40px}
.seg-btn{min-height:44px}
.fchip{min-height:40px}}
/* 首次筛选引导只出现在信号页，其余页面直接进入各自任务。 */
body:not([data-view="signals"]) .quick-guide{display:none}
