:root{
  --bg:#050505; --bg-2:#0a0a0a; --surface:#111114; --surface-2:#1a1a1f;
  --line:#2a2a30; --line-2:#3a3a42;
  --text:#f5f5f0; --text-2:#9a9a90; --text-3:#666660;
  --gold:#D4AF37; --gold-bright:#FFD700; --gold-light:#FFF2A6; --gold-soft:rgba(212,175,55,.14);
  --up:#e0566a; --up-soft:rgba(224,86,106,.12);
  --down:#2ebd85; --down-soft:rgba(46,189,133,.12);
  --shadow:0 8px 30px rgba(0,0,0,.5);
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden;max-width:100%}
body{background:#050505;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;position:relative}
body::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:radial-gradient(900px 600px at 50% -10%,rgba(212,175,55,.08),transparent 60%)}

/* 背景风格：流光 */
body.bg-aurora::before{
  background:
    radial-gradient(600px circle at 20% 20%,rgba(91,141,239,.15),transparent 60%),
    radial-gradient(500px circle at 80% 30%,rgba(201,169,97,.10),transparent 60%),
    radial-gradient(700px circle at 50% 85%,rgba(181,140,255,.12),transparent 60%);
  animation:aurora 18s ease-in-out infinite alternate;
}
@keyframes aurora{0%{transform:translate(0,0) scale(1)}50%{transform:translate(-40px,30px) scale(1.08)}100%{transform:translate(30px,-20px) scale(1)}}

/* 背景风格：网格 */
body.bg-grid::before{
  background:
    radial-gradient(500px circle at 90% 10%,rgba(91,141,239,.12),transparent 60%),
    radial-gradient(400px circle at 10% 90%,rgba(201,169,97,.08),transparent 60%),
    linear-gradient(rgba(34,45,70,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(34,45,70,.18) 1px,transparent 1px);
  background-size:100% 100%,100% 100%,42px 42px,42px 42px;
}

/* 背景风格：波浪 */
body.bg-waves::before{background:linear-gradient(180deg,#0a1020 0%,#0d1428 40%,#080c16 100%)}
body.bg-waves::after{
  bottom:0;top:auto;height:320px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='rgba(91,141,239,0.06)' d='M0,160L48,144C96,128,192,96,288,106.7C384,117,480,171,576,186.7C672,203,768,181,864,154.7C960,128,1056,96,1152,96C1248,96,1344,128,1392,144L1440,160L1440,320L0,320Z'/%3E%3Cpath fill='rgba(201,169,97,0.04)' d='M0,224L48,213.3C96,203,192,181,288,186.7C384,192,480,224,576,234.7C672,245,768,235,864,213.3C960,192,1056,160,1152,154.7C1248,149,1344,171,1392,181.3L1440,192L1440,320L0,320Z'/%3E%3C/svg%3E");
  background-size:cover;background-position:bottom;opacity:.6;
  animation:wave 12s ease-in-out infinite alternate;
}
@keyframes wave{0%{transform:translateX(0)}100%{transform:translateX(-60px)}}

/* 卡片扫光 + 纯净模式 */
.mkt,.ind-card,.pick,.news{position:relative;overflow:hidden}
.mkt::after,.ind-card::after,.pick::after,.news::after{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,.07),transparent);
  transition:left .6s ease;pointer-events:none;z-index:1;
}
.mkt:hover::after,.ind-card:hover::after,.pick:hover::after,.news:hover::after{left:150%}
body.bg-clean #bgCanvas{display:none}

/* 噪点纹理 + 太阳光晕 + 金色标题 */
.noise{position:fixed;inset:0;z-index:999;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.sun-glow{position:fixed;top:-10%;right:-5%;width:50vw;height:50vw;border-radius:50%;
  background:radial-gradient(circle,rgba(248,215,119,.15),rgba(156,97,13,.07) 25%,transparent 60%);
  pointer-events:none;z-index:-1}
.gold-title{background:linear-gradient(100deg,#744304,#f5d76c 48%,#fff0a6 62%,#9a6008);
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* 背景切换器 */
.bg-switcher{position:fixed;bottom:20px;right:20px;display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;z-index:100;box-shadow:var(--shadow)}
.bg-switcher button{font-size:11.5px;padding:5px 12px;border-radius:999px;color:var(--text-3);transition:all .15s}
.bg-switcher button.active{background:var(--gold-soft);color:var(--gold)}
.bg-switcher button:hover{color:var(--text)}
a{color:inherit;text-decoration:none;transition:color .15s}
a:hover{color:var(--gold)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.wrap{max-width:1000px;margin:0 auto;padding:28px 20px 64px}

/* Header */
.header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:30px}
.brand{display:flex;align-items:center;gap:13px}
.logo{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--gold),#9c6b3f);display:grid;place-items:center;font-size:23px;box-shadow:0 6px 18px rgba(201,169,97,.28)}
.brand h1{font-size:21px;font-weight:700;letter-spacing:.6px}
.brand .sub{font-size:12.5px;color:var(--text-3);margin-top:1px}
.meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pill{font-size:12px;color:var(--text-2);background:var(--surface);border:1px solid var(--line);padding:6px 13px;border-radius:999px;white-space:nowrap}
.pill.mock{color:var(--gold);border-color:var(--gold-soft);background:var(--gold-soft)}

/* Module */
.module{margin-bottom:40px}
.mod-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.mod-num{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:1.5px}
.mod-head h2{font-size:18px;font-weight:700;letter-spacing:.4px}
.mod-head .mod-sub{font-size:12.5px;color:var(--text-3);margin-left:auto;text-align:right}

/* Module 1: Market selector + cards */
.mkt-selector{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.mkt-chip{font-size:12.5px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);transition:all .18s;white-space:nowrap;display:flex;align-items:center;gap:5px}
.mkt-chip:hover{border-color:var(--line-2);color:var(--text)}
.mkt-chip.active{border-color:var(--gold);background:var(--gold-soft);color:var(--gold);font-weight:600}
.mkt-chip.disabled{opacity:.4;cursor:not-allowed}
.mkt-chip .mc-flag{font-size:14px}
.mkt-hint{font-size:11.5px;color:var(--text-3);margin-bottom:14px}
.markets{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mkt{position:relative;background:linear-gradient(160deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 14px;overflow:hidden;transition:transform .2s,border-color .2s}
.mkt:hover{transform:translateY(-2px);border-color:var(--line-2)}
.mkt .m-name{font-size:12.5px;color:var(--text-2);display:flex;align-items:center;gap:6px}
.mkt .m-flag{font-size:14px}
.mkt .m-val{font-size:23px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:.3px}
.mkt .m-chg{font-size:13px;font-weight:600;margin-top:3px;font-variant-numeric:tabular-nums}
.mkt .spark{margin-top:10px;height:30px;width:100%}
.up-c{color:var(--up)} .down-c{color:var(--down)}
.mkt.up::before,.mkt.down::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.mkt.up::before{background:var(--up)} .mkt.down::before{background:var(--down)}

/* Module 2: Industry grid + detail */
.ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ind-card{background:linear-gradient(160deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:var(--radius);padding:16px;cursor:pointer;transition:transform .2s,border-color .2s;display:flex;flex-direction:column;gap:10px}
.ind-card:hover{transform:translateY(-2px);border-color:var(--line-2)}
.ind-card .ic-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ind-card .ic-name{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:700}
.ind-card .ic-icon{font-size:17px}
.ind-card .ic-trend{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}
.ind-card .ic-head{font-size:13px;color:var(--text-2);line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ind-card .ic-foot{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--text-3);padding-top:9px;border-top:1px dashed var(--line)}
.ind-card .ic-go{color:var(--gold)}
.ind-card .ic-count{display:flex;gap:3px;align-items:center}

.id-back{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text-2);margin-bottom:16px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);transition:all .15s}
.id-back:hover{color:var(--text);border-color:var(--line-2)}
.id-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.id-head .id-title{font-size:18px;font-weight:700;display:flex;align-items:center;gap:8px}
.id-head .id-trend{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.id-market-hint{font-size:11.5px;color:var(--text-3);margin-bottom:14px;padding:8px 12px;background:var(--surface);border-radius:8px;border:1px solid var(--line)}
.id-market-hint b{color:var(--gold)}

.type-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{font-size:13px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);transition:all .18s;white-space:nowrap}
.chip:hover{color:var(--text);border-color:var(--line-2)}
.chip.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}
.chip .cnt{opacity:.6;margin-left:3px}

.news-list{display:flex;flex-direction:column;gap:12px}
.news{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--radius);padding:15px 17px;transition:border-color .2s,transform .2s}
.news:hover{transform:translateY(-1px)}
.news-main{flex:1;min-width:0}
.news-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.ttag{font-size:10.5px;font-weight:600;padding:2px 9px;border-radius:5px;letter-spacing:.4px}
.ttag.info{background:rgba(91,141,239,.15);color:#5b8def}
.ttag.policy{background:rgba(201,169,97,.15);color:#c9a961}
.ttag.earnings{background:rgba(181,140,255,.15);color:#b58cff}
.ttag.announce{background:rgba(240,160,75,.15);color:#f0a04b}
.ttag.move{background:rgba(224,86,106,.15);color:#e0566a}
.ttag.research{background:rgba(63,207,192,.15);color:#3fcfc0}
.mtag{font-size:10px;padding:1px 7px;border-radius:4px;background:var(--surface-2);color:var(--text-3);border:1px solid var(--line)}
.ntime{font-size:11.5px;color:var(--text-3)}
.news h3{font-size:15.5px;font-weight:600;line-height:1.5;margin-bottom:5px}
.news h3 a{color:var(--text)}
.news h3 a:hover{color:var(--gold)}
.nsum{font-size:13px;color:var(--text-2);line-height:1.6}
.nfoot{display:flex;align-items:center;gap:14px;margin-top:11px;flex-wrap:wrap}
.nsrc{font-size:11.5px;color:var(--text-3)}
.nsrc a{color:var(--text-2);border-bottom:1px dotted var(--line-2)}
.nsrc a:hover{color:var(--gold)}
.nlink{font-size:11.5px;color:var(--gold);display:inline-flex;align-items:center;gap:3px}
.nlink:hover{text-decoration:underline}

/* Module 3: Picks */
.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pick{background:linear-gradient(160deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:var(--radius);padding:17px 17px 15px;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}
.pick:hover{transform:translateY(-2px);border-color:var(--line-2)}
.p-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.ptype{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:5px;letter-spacing:.3px}
.ptype.stock{background:var(--up-soft);color:var(--up)}
.ptype.fund{background:var(--down-soft);color:var(--down)}
.prisk{font-size:11px;color:var(--text-3)}
.p-name{font-size:16px;font-weight:700;margin-bottom:3px}
.p-ind{font-size:11.5px;color:var(--text-3);margin-bottom:10px}
.p-reason{font-size:12.5px;color:var(--text-2);line-height:1.6;margin-bottom:13px;flex:1}
.p-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:12px;border-top:1px dashed var(--line)}
.pm{font-size:11px}
.pm .lab{color:var(--text-3);display:block;margin-bottom:2px}
.pm .val{color:var(--text);font-weight:600;font-size:13px}
.pm .val.gold{color:var(--gold)}
.p-src{margin-top:12px;font-size:11.5px}
.p-src a{color:var(--text-2);border-bottom:1px dotted var(--line-2)}
.p-src a:hover{color:var(--gold)}

/* 基金实时数据 */
.p-fund{display:flex;align-items:center;gap:10px;padding:7px 11px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;font-size:12px}
.pf-nav{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
.pf-chg{font-weight:700;font-variant-numeric:tabular-nums}
.pf-time{color:var(--text-3);margin-left:auto;font-size:11px}

/* Footer */
.foot{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);font-size:11.5px;color:var(--text-3);line-height:1.8}
.foot b{color:var(--text-2)}
.foot .disc{margin-top:6px;color:var(--text-3)}

/* Responsive */
@media(max-width:860px){
  .markets{grid-template-columns:repeat(2,1fr)}
  .picks{grid-template-columns:repeat(2,1fr)}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .wrap{padding:22px 15px 54px}
  .markets{grid-template-columns:1fr}
  .picks{grid-template-columns:1fr}
  .ind-grid{grid-template-columns:1fr}
  .brand h1{font-size:19px}
  .mod-head .mod-sub{display:none}
  .news{padding:13px 14px}
  .news h3{font-size:14.5px}
}
