/* 清爽清新版：浅色、留白、舒适中文字体 */
:root{--bg:#f5f9ff;--card:#fff;--text:#172033;--soft:#61728a;--muted:#91a0b4;--line:#dfe8f3;--blue:#2f6bff;--blue2:#e8f0ff;--green:#13a86b;--green2:#e8f8f0;--red:#e25364;--red2:#fff0f2;--amber:#d99022;--amber2:#fff7e8;--purple:#7b61ff;--purple2:#f0edff;--shadow:0 14px 42px rgba(30,64,115,.09);--softShadow:0 7px 22px rgba(30,64,115,.06);--sans:'Noto Sans SC','DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Microsoft YaHei',sans-serif;--mono:'JetBrains Mono',Menlo,Consolas,monospace}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);font-family:var(--sans);font-size:14px;background:radial-gradient(circle at 6% -8%,rgba(47,107,255,.12),transparent 30%),radial-gradient(circle at 94% 0%,rgba(19,168,107,.10),transparent 28%),linear-gradient(180deg,#fbfdff,#f4f9ff 54%,#edf6ff);overflow-x:hidden}body:before{content:'';position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(47,107,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(47,107,255,.03) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(180deg,black,transparent 70%)}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.appShell{position:relative;width:min(1520px,calc(100% - 40px));margin:0 auto;padding:22px 0 42px}.hero.superHero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:14px;padding:22px 26px;border:1px solid rgba(201,216,234,.85);border-radius:30px;background:rgba(255,255,255,.88);box-shadow:var(--shadow);backdrop-filter:blur(14px)}.heroLeft{position:relative;padding-left:72px}.heroLeft:before{content:'F';position:absolute;left:0;top:1px;width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#2f6bff,#89d8ff);color:#fff;font-weight:900;font-size:24px;box-shadow:0 14px 30px rgba(47,107,255,.2)}.eyebrow{display:flex;align-items:center;gap:9px;color:#6680a0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.liveDot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(19,168,107,.12)}h1{margin-top:7px;font-size:clamp(32px,3.7vw,50px);line-height:1.08;letter-spacing:-.045em;font-weight:800;color:#12233f}.hero p{max-width:900px;margin-top:9px;color:#62728a;line-height:1.75;font-size:14px}.heroRight{display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:180px}#refreshBtn{height:42px;border:0;border-radius:999px;padding:0 20px;background:#172033;color:#fff;font-weight:700;box-shadow:0 14px 28px rgba(23,32,51,.15)}#refreshBtn:hover{background:var(--blue)}.updated{color:#74849b;font-family:var(--mono);font-size:12px}.metricGrid{display:grid;grid-template-columns:repeat(8,minmax(108px,1fr));gap:10px;margin:0 0 12px}.metric{min-height:82px;padding:14px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:var(--softShadow)}.metric span{display:block;color:#718197;font-weight:700;font-size:12px}.metric b{display:block;margin:7px 0 2px;font-family:var(--mono);font-size:27px;line-height:1;color:#13213a}.metric em{font-style:normal;color:#9aa8ba;font-size:11px}.metric.tone-green b{color:var(--green)}.metric.tone-cyan b{color:#1598b9}.metric.tone-amber b{color:var(--amber)}.metric.tone-red b{color:var(--red)}.metric.tone-purple b{color:var(--purple)}.metric.tone-blue b{color:var(--blue)}.radarTabs{display:flex;gap:8px;overflow:auto;margin:12px 0 10px;padding:8px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.86);box-shadow:var(--softShadow)}.tab{white-space:nowrap;border:0;border-radius:999px;background:transparent;color:#6d7f98;padding:9px 14px;font-size:13px;font-weight:700;transition:.16s}.tab.active{background:#172033;color:#fff;box-shadow:0 10px 22px rgba(23,32,51,.14)}.tab:hover:not(.active){background:#f0f5fb;color:#20304a}.controlBar{display:grid;grid-template-columns:1.5fr repeat(5,minmax(118px,1fr));gap:10px;margin:10px 0 14px;padding:12px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.86);box-shadow:var(--softShadow)}.searchWrap{display:flex;align-items:center;gap:10px;height:42px;border:1px solid var(--line);border-radius:999px;background:#f8fbff;padding:0 14px;color:#93a2b5}.searchWrap input,.controlBar select{width:100%;height:42px;border:0;outline:0;background:transparent;color:var(--text)}.controlBar select{border:1px solid var(--line);border-radius:999px;background:#f8fbff;padding:0 13px;color:#41516a;font-size:13px}.ruleStrip,.ruleStrip.strategyTiles{display:none!important}.board{border:1px solid var(--line);border-radius:30px;background:rgba(255,255,255,.84);box-shadow:var(--shadow);overflow:hidden}.boardHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#f8fbff)}.boardHeader h2{font-size:24px;letter-spacing:-.03em}.boardHeader p{margin-top:7px;color:#6b7d95;line-height:1.6}.countPill{border:1px solid #c9d8ea;border-radius:999px;background:#f4f8fd;color:#60738c;padding:9px 14px;font-family:var(--mono);font-weight:800}.countPill span{color:var(--blue)}.table{padding:16px}.tableHead{display:none}#rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.marketTile{position:relative;display:flex!important;flex-direction:column;gap:12px;min-height:0!important;padding:16px!important;border:1px solid var(--line)!important;border-radius:24px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important;box-shadow:var(--softShadow)!important;overflow:hidden!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.marketTile:before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--green),#8fd7ff)}.marketTile.bear:before{background:linear-gradient(90deg,var(--red),#ffc4cd)}.marketTile:hover{transform:translateY(-2px);border-color:#bfd3ec!important;box-shadow:0 18px 46px rgba(30,64,115,.13)!important}.tileHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assetId b{display:block;font-size:24px;line-height:1;letter-spacing:-.03em;color:#15233c}.assetId small{display:block;margin-top:7px;color:#8a9ab0;font-size:12px}.scoreSplit{display:flex;gap:8px}.scoreDial.mini{position:relative;display:grid;place-items:center;width:54px!important;height:54px!important;min-width:54px!important;border-radius:50%;background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--blue) calc(var(--score,60)*1%),#edf2f7 0)!important;border:1px solid #dbe6f2!important;box-shadow:none!important}.scoreDial.mini span{font-family:var(--mono);font-size:16px!important;font-weight:800;color:#172033!important;z-index:1}.scoreDial.mini em{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font-style:normal;font-size:9px;color:#8493a8;z-index:1}.scoreDial.mini.scoreStrong,.scoreDial.mini.scoreGood{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--green) calc(var(--score,70)*1%),#edf2f7 0)!important}.scoreDial.mini.scoreMid{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--amber) calc(var(--score,55)*1%),#edf2f7 0)!important}.scoreDial.mini.scoreWeak{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(#b7c2d2 calc(var(--score,40)*1%),#edf2f7 0)!important}.scoreSplit .riskSafe{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--green) calc(var(--score,20)*1%),#edf2f7 0)!important}.scoreSplit .riskLow{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--amber) calc(var(--score,35)*1%),#edf2f7 0)!important}.scoreSplit .riskMid,.scoreSplit .riskHigh{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--red) calc(var(--score,60)*1%),#edf2f7 0)!important}.overheatBadge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#f8fbff;color:#667790}.overheatBadge.fresh{background:var(--blue2);color:#245ddc;border-color:#d5e2ff}.overheatBadge.confirm{background:var(--green2);color:#0a8754;border-color:#cbf0de}.overheatBadge.hot{background:var(--amber2);color:#ad6a10;border-color:#f3dfb9}.overheatBadge.danger{background:var(--red2);color:#c63b4e;border-color:#ffd3db}.tilePrice{display:flex;align-items:baseline;gap:10px}.tilePrice span{font-family:var(--mono);font-size:24px;font-weight:800;color:#172033}.tilePrice em{font-style:normal;font-family:var(--mono);font-size:12px;font-weight:800}.bull{color:var(--green)!important}.bear{color:var(--red)!important}.chartBox{position:relative;height:84px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#f8fbff,#eef6ff);overflow:hidden}.spark{position:absolute;inset:0;width:100%;height:100%}.tvMark{position:absolute;left:10px;top:8px;font-style:normal;color:#a1afc2;font-size:10px;font-family:var(--mono)}.chartSignal{position:absolute;right:10px;top:8px;border-radius:999px;padding:5px 8px;background:#fff;font-family:var(--mono);font-size:10px}.chartSignal.buy{color:var(--green)}.chartSignal.sell{color:var(--red)}.signalGrid{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.signalGrid span,.signalBadge{min-width:0;border-radius:12px;padding:8px 9px;background:#f4f8fd;border:1px solid var(--line);color:#60738c;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signalBadge.buy{background:var(--green2);border-color:#cbf0de;color:#0a8754}.signalBadge.sell{background:var(--red2);border-color:#ffd3db;color:#c63b4e}.signalBadge.neutral{background:#f4f8fd;color:#7f8fa4}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.miniStats span{border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:8px 7px;color:#617189;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reasonLine{display:flex;align-items:center;gap:5px;min-height:34px;border:1px solid #dceefa;border-radius:14px;background:#f3fbff;padding:8px 10px;color:#698098;overflow:hidden;white-space:nowrap}.reasonLine small{color:#1685aa;font-weight:800;flex:0 0 auto}.reasonLine span{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;color:#41536e;font-size:12px}.tileFooter{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.statusPill,.tag{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700;background:#f4f8fd;border:1px solid var(--line);color:#64758d}.tag.good{background:var(--green2);border-color:#cbf0de;color:#0a8754}.hotStatus{background:var(--amber2);color:#ad6a10;border-color:#f3dfb9}.earlyStatus,.watchStatus{background:var(--blue2);color:#245ddc;border-color:#d5e2ff}.riskStatus{background:var(--red2);color:#c63b4e;border-color:#ffd3db}.row.superRow:not(.marketTile){border:1px solid var(--line);border-radius:22px;background:white;box-shadow:var(--softShadow);padding:16px}.symbolCell{display:flex;gap:12px;align-items:center}.coinMark{display:grid;place-items:center;width:48px;height:48px;min-width:48px;border-radius:16px;background:var(--blue2);color:var(--blue);font-weight:900}.sym b{display:block;font-size:19px}.sym small{display:block;color:var(--muted);margin-top:5px}.score{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--blue2);color:var(--blue);font-family:var(--mono);font-size:22px;font-weight:800}.grade,.sub{display:block;margin-top:5px;color:var(--muted);font-size:12px}.mainNum{display:block;color:#21304b;font-weight:800;font-size:13px}.st,.volPill{display:inline-flex;border-radius:999px;padding:6px 9px;background:#f4f8fd;border:1px solid var(--line);font-size:12px;font-weight:700}.volGood{background:var(--green2);color:#0a8754}.volWarn{background:var(--amber2);color:#ad6a10}.volNeutral{background:#f4f8fd;color:#6b7d95}.actionCell b{display:block;color:#283854;line-height:1.5}.toolLinks,.verdictTags,.personalBtns{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.toolLink,.miniBtn{border:1px solid var(--line);border-radius:999px;background:#f8fbff;color:#52647c;text-decoration:none;padding:6px 9px;font-size:12px}.miniBtn.on,.toolLink:hover{background:#172033;color:#fff}.miniBtn.danger.on{background:var(--red);color:white}.userNote{display:block;color:#7b8aa1;margin-top:6px}.aiBlock{margin-top:10px;border:1px solid var(--line);border-radius:16px;background:#f8fbff;padding:10px}.empty{grid-column:1/-1;border:1px dashed #c9d8ea;border-radius:20px;background:#fbfdff;color:#73849a;padding:28px;text-align:center}.empty.mini{padding:18px}.bottomGrid{display:grid;grid-template-columns:1fr 1.4fr .9fr;gap:14px;margin-top:16px}.panel{border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.84);box-shadow:var(--softShadow);padding:18px}.panel h3{margin-bottom:12px;font-size:17px}.panel p,.panel li{color:#697b93;line-height:1.75}.panel ul{margin:0;padding-left:18px}.alertItem{border:1px solid var(--line);border-radius:16px;background:#f8fbff;padding:10px 12px;margin-bottom:8px;color:#52647c}.risk{border-color:#ffd4dc}@media(max-width:1100px){#rows{grid-template-columns:repeat(2,minmax(0,1fr))}.metricGrid{grid-template-columns:repeat(4,1fr)}.controlBar{grid-template-columns:1fr 1fr 1fr}}@media(max-width:820px){#rows{grid-template-columns:repeat(2,minmax(0,1fr))}.metricGrid{grid-template-columns:repeat(2,1fr)}.controlBar{grid-template-columns:1fr 1fr}.hero.superHero{flex-direction:column;align-items:flex-start}.heroRight{align-items:flex-start}.bottomGrid{grid-template-columns:1fr}.boardHeader{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.appShell{width:calc(100% - 22px);padding-top:14px}.hero.superHero{padding:20px}.heroLeft{padding-left:60px}.heroLeft:before{width:46px;height:46px}.hero p{font-size:13px}.metricGrid,.controlBar,#rows{grid-template-columns:1fr}.signalGrid,.miniStats{grid-template-columns:1fr}.assetId b{font-size:22px}.tilePrice span{font-size:21px}.radarTabs{border-radius:20px}.tab{font-size:12px;padding:8px 12px}}


/* 适配当前 app.js 的清爽卡片结构 */
.radarCard{position:relative;display:flex!important;flex-direction:column;gap:12px;min-height:0!important;padding:16px!important;border:1px solid var(--line)!important;border-radius:24px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important;box-shadow:var(--softShadow)!important;overflow:hidden!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.radarCard:before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--green),#8fd7ff)}.radarCard:has(.coinMark.bear):before{background:linear-gradient(90deg,var(--red),#ffc4cd)}.radarCard:hover{transform:translateY(-2px);border-color:#bfd3ec!important;box-shadow:0 18px 46px rgba(30,64,115,.13)!important}.cardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.badgeLine{display:flex;gap:8px;flex-wrap:wrap}.priceLine{display:flex;align-items:baseline;gap:10px}.priceBig{font-family:var(--mono);font-size:24px;font-weight:800;color:#172033}.change{font-family:var(--mono);font-size:12px;font-weight:800}.scoreSection{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scoreSection>div{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:10px}.scoreDial{position:relative;display:grid;place-items:center;width:76px!important;height:76px!important;min-width:76px!important;border-radius:50%;background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--blue) 68%,#edf2f7 0)!important;border:1px solid #dbe6f2!important;box-shadow:none!important}.scoreDial span{font-family:var(--mono);font-size:20px!important;font-weight:800;color:#172033!important;z-index:1}.scoreDial small{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:10px;color:#8493a8;z-index:1}.scoreDial.scoreStrong,.scoreDial.scoreGood{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--green) 78%,#edf2f7 0)!important}.scoreDial.scoreMid{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--amber) 62%,#edf2f7 0)!important}.scoreDial.scoreWeak{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(#b7c2d2 45%,#edf2f7 0)!important}.scoreDial.riskSafe{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--green) 24%,#edf2f7 0)!important}.scoreDial.riskLow{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--amber) 38%,#edf2f7 0)!important}.scoreDial.riskMid,.scoreDial.riskHigh{background:radial-gradient(circle,#fff 56%,transparent 57%),conic-gradient(var(--red) 58%,#edf2f7 0)!important}.cardMetrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.cardMetrics>div{border:1px solid var(--line);border-radius:14px;background:#fbfdff;padding:10px;min-width:0}.personalActions{display:flex;gap:8px;margin-top:auto}.personalActions button{border:1px solid var(--line);border-radius:999px;background:#f8fbff;color:#52647c;padding:7px 11px;font-weight:700}.personalActions button.active{background:#172033;color:#fff}.tag{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolLinks{max-height:72px;overflow:hidden}.coinMark.bull{background:var(--green2);color:var(--green)}.coinMark.bear{background:var(--red2);color:var(--red)}

.scoreSection.scoreSplit{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}.reasonLine b{white-space:nowrap;color:#1685aa}.reasonLine .toolLinks{display:flex;flex-wrap:wrap;gap:6px;margin:0;max-height:58px}.momentum-tag{background:linear-gradient(135deg,#7b61ff,#a89fff)!important;color:#fff!important;border:none!important}
/* 二次压缩：卡片更轻、更清爽，首屏露出内容 */
.radarCard{gap:8px!important;padding:13px!important;border-radius:20px!important}.assetId b,.sym b{font-size:20px!important}.coinMark{width:42px!important;height:42px!important;min-width:42px!important;border-radius:14px!important}.badgeLine{gap:6px}.statusPill,.overheatBadge,.tag{font-size:10.5px!important;padding:5px 8px!important}.priceLine{margin:-2px 0}.priceBig{font-size:21px!important}.scoreSection.scoreSplit{display:flex!important;gap:8px!important;align-items:center!important}.scoreSection.scoreSplit>div{border:0!important;background:transparent!important;padding:0!important;justify-content:flex-start!important}.scoreDial{width:54px!important;height:54px!important;min-width:54px!important}.scoreDial span{font-size:16px!important}.scoreDial small{bottom:7px!important;font-size:9px!important}.cardMetrics{grid-template-columns:repeat(2,1fr)!important;gap:6px!important}.cardMetrics>div{padding:7px!important;border-radius:12px!important}.mainNum{font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub{font-size:10.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reasonLine{display:block!important;min-height:0!important;max-height:48px!important;padding:8px!important;overflow:hidden!important}.reasonLine b{display:block;margin-bottom:5px;font-size:11px}.reasonLine .toolLinks{max-height:22px!important;overflow:hidden!important}.toolLinks{max-height:30px!important;overflow:hidden!important;margin-top:4px!important}.toolLink{font-size:10.5px!important;padding:5px 7px!important}.personalActions{gap:6px!important}.personalActions button{padding:6px 10px!important;font-size:11px!important}.boardHeader{padding:16px 20px!important}.table{padding:14px!important}
