:root{--bg:#0d1117;--bg2:#161b22;--bg3:#21262d;--border:#30363d;--red:#f85149;--red-dim:#3d1f1f;--green:#3fb950;--green-dim:#1a3d25;--yellow:#e3b341;--yellow-dim:#3d3020;--blue:#58a6ff;--blue-dim:#1a2d4a;--purple:#bc8cff;--text:#c9d1d9;--text-dim:#8b949e;--text-bright:#f0f6fc;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--nav-h:calc(48px + var(--sat))}*{box-sizing:border-box;margin:0;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font-family:-apple-system,'SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.6;min-height:100vh;padding-top:var(--nav-h);padding-bottom:calc(var(--sab) + 16px);-webkit-font-smoothing:antialiased}.nav-bar{position:fixed;top:0;left:0;right:0;z-index:200;height:var(--nav-h);background:rgba(13,17,23,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);padding:var(--sat) 16px 0;display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:10px}.nav-back{display:flex;align-items:center;gap:5px;color:var(--blue);text-decoration:none;font-size:14px;font-weight:500;padding:4px 0}.nav-back:active{opacity:.6}.nav-title{font-size:14px;font-weight:600;color:var(--text-bright)}.nav-issue{font-size:12px;color:var(--text-dim)}.header{background:linear-gradient(135deg,#0d1117 0%,#1a0a2e 50%,#0d1117 100%);border-bottom:1px solid var(--border);padding:24px 20px 20px}.header-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;gap:12px}.logo{font-size:11px;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.header h1{font-size:26px;font-weight:700;color:var(--text-bright)}.header h1 span{color:var(--red)}.header-meta{text-align:right;flex-shrink:0}.header-date{font-size:12px;color:var(--text-dim);line-height:1.8}.header-badge{display:inline-block;background:var(--red-dim);color:var(--red);border:1px solid rgba(248,81,73,.4);border-radius:4px;padding:2px 10px;font-size:11px;font-weight:600;letter-spacing:1px;margin-top:6px}.market-sentiment{padding:8px 20px 6px;display:flex;gap:14px 20px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border)}.sentiment-item{font-size:12px;color:var(--text-dim)}.sentiment-item strong{color:var(--text)}.container{max-width:900px;margin:0 auto;padding:20px 16px}.section-title{font-size:12px;font-weight:600;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.market-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:28px}.market-card{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:14px}.market-card .label{font-size:11px;color:var(--text-dim);margin-bottom:6px}.market-card .value{font-size:20px;font-weight:700}.market-card .change{font-size:12px;margin-top:4px}.up{color:var(--red)}.down{color:var(--green)}.neutral{color:var(--text-dim)}.emotion-bar{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:28px}.emotion-row{display:flex;gap:20px 28px;flex-wrap:wrap;align-items:flex-start}.emotion-item{flex:1;min-width:100px}.emotion-item .el{font-size:11px;color:var(--text-dim);margin-bottom:5px}.emotion-item .ev{font-size:17px;font-weight:700}.emotion-item .ed{font-size:11px;color:var(--text-dim);margin-top:2px;line-height:1.4}.progress-wrap{margin-top:7px;background:var(--bg3);border-radius:4px;height:5px;overflow:hidden}.progress-bar{height:100%;border-radius:4px;transition:width .8s ease}.candidates{margin-bottom:28px}.candidate-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden;transition:border-color .15s}.candidate-header:active{background:var(--bg3)}@media(hover:hover){.candidate-card:hover{border-color:#484f58}}.candidate-header{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);cursor:pointer;position:relative}.candidate-card.collapsed .candidate-header{border-bottom-color:transparent}.candidate-card.collapsed .candidate-body{display:none}.candidate-header::after{content:'›';font-size:20px;font-weight:300;color:var(--text-dim);transition:transform .25s ease;flex-shrink:0;line-height:1}.candidate-card.collapsed .candidate-header::after{transform:rotate(0deg)}.candidate-card:not(.collapsed) .candidate-header::after{transform:rotate(90deg)}.candidate-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.rank{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.rank-1{background:var(--red);color:#fff}.rank-2{background:#e6612e;color:#fff}.rank-3{background:var(--yellow);color:#000}.rank-4{background:var(--bg3);color:var(--text-dim);border:1px solid var(--border)}.rank-5{background:var(--bg3);color:var(--text-dim);border:1px solid var(--border)}.candidate-name{font-size:15px;font-weight:700;color:var(--text-bright)}.candidate-code{font-size:11px;color:var(--text-dim);margin-top:2px}.candidate-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.tag{display:inline-block;padding:1px 7px;border-radius:3px;font-size:11px;font-weight:500}.tag-red{background:var(--red-dim);color:var(--red);border:1px solid rgba(248,81,73,.3)}.tag-blue{background:var(--blue-dim);color:var(--blue);border:1px solid rgba(88,166,255,.3)}.tag-yellow{background:var(--yellow-dim);color:var(--yellow);border:1px solid rgba(227,179,65,.3)}.tag-green{background:var(--green-dim);color:var(--green);border:1px solid rgba(63,185,80,.3)}.candidate-right{display:flex;align-items:center;gap:14px;flex-shrink:0}.candidate-pct{font-size:20px;font-weight:700}.score-box{text-align:right}.score-stars{font-size:15px;color:var(--yellow);letter-spacing:1px}.score-label{font-size:11px;color:var(--text-dim);margin-top:2px}.candidate-body{padding:14px 16px}.metrics-row{display:flex;gap:16px 28px;flex-wrap:wrap;margin-bottom:14px}.metric{min-width:90px}.metric .ml{font-size:11px;color:var(--text-dim);margin-bottom:4px}.metric .mv{font-size:13px;font-weight:600}.analysis-block{background:var(--bg3);border-radius:8px;padding:12px 14px;margin-top:10px}.analysis-block h4{font-size:11px;color:var(--text-dim);margin-bottom:8px;letter-spacing:1px;text-transform:uppercase}.analysis-text{font-size:13px;line-height:1.75;color:var(--text)}.table-wrap{overflow-x:auto;margin-bottom:28px;-webkit-overflow-scrolling:touch;border-radius:8px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;min-width:520px}thead th{background:var(--bg3);padding:10px 12px;font-size:11px;font-weight:600;color:var(--text-dim);letter-spacing:1px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr{border-bottom:1px solid var(--border);transition:background .1s}tbody tr:last-child{border-bottom:none}tbody td{padding:10px 12px;font-size:13px;white-space:nowrap}.td-code{color:var(--blue);font-weight:600}.td-name{color:var(--text-bright);font-weight:600}.td-up{color:var(--red);font-weight:600}.td-down{color:var(--green);font-weight:600}.td-highlight{background:rgba(248,81,73,.06)}.sector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:28px}.sector-item{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.sector-item.hot{border-color:rgba(248,81,73,.35)}.sector-name{font-size:12px;color:var(--text);margin-bottom:4px}.sector-pct{font-size:13px;font-weight:700}.sector-flow{font-size:11px;color:var(--text-dim);margin-top:2px}.verify-box{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:28px}.verify-item{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border)}.verify-item:last-child{border-bottom:none;padding-bottom:0}.verify-icon{font-size:18px;flex-shrink:0;margin-top:1px}.verify-name{font-size:13px;font-weight:600;color:var(--text-bright);margin-bottom:4px}.verify-pred{font-size:12px;color:var(--text-dim);margin-bottom:4px}.verify-result{font-size:12px;line-height:1.6}.hit{color:var(--green)}.miss{color:var(--red)}.logic-box{background:var(--bg2);border:1px solid rgba(227,179,65,.4);border-radius:10px;padding:16px;margin-bottom:28px}.logic-box h3{color:var(--yellow);font-size:14px;margin-bottom:12px}.logic-item{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.logic-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.logic-desc{font-size:13px;color:var(--text);line-height:1.75}.tomorrow-box{background:var(--bg2);border:1px solid rgba(88,166,255,.3);border-radius:10px;padding:16px;margin-bottom:28px}.tomorrow-box h3{color:var(--blue);font-size:14px;margin-bottom:10px}.tomorrow-text{font-size:13px;line-height:1.8;color:var(--text)}footer{text-align:center;padding:20px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--border)}@media(max-width:600px){.header h1{font-size:22px}.candidate-pct{font-size:17px}.market-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:380px){.market-grid{grid-template-columns:repeat(2,1fr)}.emotion-row{gap:12px}}

/* ===== 新增：关键数据高亮卡片 ===== */
.stats-highlight{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:28px}
.stats-card{background:linear-gradient(135deg,var(--bg2) 0%,#1a1f2e 100%);border:1px solid var(--border);border-radius:12px;padding:18px 16px;text-align:center;position:relative;overflow:hidden;transition:transform .15s,border-color .15s}
.stats-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.stats-card.up-card::before{background:linear-gradient(90deg,var(--red),#ff7b72)}
.stats-card.down-card::before{background:linear-gradient(90deg,var(--green),#7ee787)}
.stats-card.blue-card::before{background:linear-gradient(90deg,var(--blue),#79c0ff)}
.stats-card.yellow-card::before{background:linear-gradient(90deg,var(--yellow),#ffd700)}
.stats-card:active{transform:scale(.98)}
@media(hover:hover){.stats-card:hover{border-color:#484f58}}
.stats-card .sl{font-size:11px;color:var(--text-dim);margin-bottom:8px;letter-spacing:1px}
.stats-card .sv{font-size:28px;font-weight:800;line-height:1.2}
.stats-card .sc{font-size:12px;color:var(--text-dim);margin-top:6px}
.stats-card .sv-up{color:var(--red)}
.stats-card .sv-down{color:var(--green)}
.stats-card .sv-blue{color:var(--blue)}
.stats-card .sv-yellow{color:var(--yellow)}

/* ===== 新增：目录导航 ===== */
.toc-bar{position:sticky;top:var(--nav-h);z-index:150;background:rgba(13,17,23,.92);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px 24px;padding:0 16px}
.toc-bar::-webkit-scrollbar{display:none}
.toc-list{display:flex;gap:8px;padding:10px 0;min-width:max-content}
.toc-item{display:inline-block;padding:6px 14px;border-radius:20px;background:var(--bg2);border:1px solid var(--border);color:var(--text-dim);font-size:12px;text-decoration:none;white-space:nowrap;transition:all .15s;cursor:pointer}
.toc-item:hover,.toc-item.active{background:var(--blue-dim);color:var(--blue);border-color:rgba(88,166,255,.4)}
.toc-item:active{opacity:.7}

/* ===== 新增：分享功能 ===== */
.share-bar{display:flex;gap:10px;align-items:center;margin-bottom:24px;flex-wrap:wrap}
.share-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;background:var(--bg2);border:1px solid var(--border);color:var(--text);font-size:13px;cursor:pointer;transition:all .15s}
.share-btn:hover{border-color:var(--blue);color:var(--blue)}
.share-btn:active{transform:scale(.96)}
.share-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;padding:20px}
.share-modal.open{display:flex}
.share-box{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:24px;max-width:360px;width:100%;text-align:center}
.share-box h3{font-size:16px;color:var(--text-bright);margin-bottom:16px}
.qrcode-wrap{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;display:inline-block}
.qrcode-wrap img,.qrcode-wrap canvas,.qrcode-wrap svg{display:block;margin:0 auto}
.share-url{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--text);word-break:break-all;margin-bottom:12px;text-align:left}
.share-actions{display:flex;gap:10px}
.share-actions .share-btn{flex:1;justify-content:center}
.share-close{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);color:var(--text-dim);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.yaogu-toast{position:fixed;bottom:calc(var(--sab) + 24px);left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 20px;font-size:13px;color:var(--text-bright);opacity:0;pointer-events:none;transition:all .3s;z-index:400;white-space:nowrap}
.yaogu-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== 新增：相关报告推荐 ===== */
.related-section{margin-bottom:28px}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.related-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;display:block;transition:all .15s}
@media(hover:hover){.related-card:hover{border-color:var(--blue)}}
.related-card:active{transform:scale(.98)}
.related-date{font-size:12px;color:var(--text-dim);margin-bottom:6px}
.related-title{font-size:13px;font-weight:600;color:var(--text-bright);margin-bottom:8px;line-height:1.5}
.related-stats{display:flex;gap:12px;font-size:11px;color:var(--text-dim)}
.related-stats span{display:flex;align-items:center;gap:4px}
.related-loading{font-size:13px;color:var(--text-dim);padding:12px 0}

@media(max-width:600px){.stats-highlight{grid-template-columns:repeat(2,1fr)}.related-grid{grid-template-columns:1fr}}
@media(max-width:380px){.stats-highlight{grid-template-columns:1fr 1fr}.stats-card .sv{font-size:24px}}
