
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-size:16px;
  font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  background:#f0f2f5;color:#333;
}
.hide{display:none!important}

/* 表头 */
.header-wrap{max-width:1100px;margin:0 auto;padding:30px 20px 0}
.header{
  background:#fff;border-radius:12px;padding:24px 32px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.acct-top{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;
}
.acct-top .left{display:flex;align-items:center;gap:10px;font-size:15px;color:#666}
.acct-top .left .dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.acct-top .left .dot.red{background:#e60012}
.acct-top .right{font-size:14px;color:#999}
.acct-top .right .num{font-weight:700;color:#333;font-size:16px}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}
.sum-item{text-align:left}
.sum-item .lbl{font-size:13px;color:#999;margin-bottom:6px}
.sum-item .val{font-size:24px;font-weight:700;letter-spacing:-0.5px}
.sum-item .sub{font-size:14px;margin-top:2px}
.blue{color:#0066ff}.red{color:#e60012}
.summary2{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  padding-top:16px;border-top:1px solid #eee;
}
.sum2-item{text-align:left}
.sum2-item .lbl{font-size:13px;color:#999;margin-bottom:4px}
.sum2-item .val{font-size:20px;font-weight:700}
.sum2-item .tag{
  display:inline-block;padding:3px 10px;border-radius:4px;
  font-size:14px;margin-left:8px;vertical-align:middle;
}
.sum2-item .tag.orange{background:#fff3e0;color:#ff6d00}
.sum2-item .tag.orange::after{content:'\u25b6';margin-left:3px;font-size:12px}

/* 持仓卡片 */
.cards-wrap{max-width:1100px;margin:0 auto;padding:20px}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.card{
  background:#fff;border-radius:12px;padding:24px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.card-hdr{
  display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:8px;
}
.card-hdr .left{overflow:hidden}
.card-hdr .name{font-size:20px;font-weight:700}
.card-hdr .code{font-size:13px;color:#999;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-hdr .badge{font-size:14px;padding:3px 12px;border-radius:12px;font-weight:600}
.badge.bad{background:#e8f5e9;color:#2e7d32}
.badge.good{background:#fce4ec;color:#c62828}
.badge.ok{background:#fff8e1;color:#f57f17}
.card-hdr .mktval{flex-shrink:0;margin-left:auto}
.card-hdr .mktval .lbl{font-size:14px;color:#999;margin-bottom:4px}
.card-hdr .mktval .val{font-size:22px;font-weight:700;letter-spacing:-0.5px}
.card-body{display:flex;gap:24px;padding:16px 0;border-top:1px solid #f0f0f0}
.card-pnl{flex:1;text-align:center;padding:8px 0}
.card-pnl .lbl{font-size:14px;color:#999;margin-bottom:6px}
.card-pnl .val{font-size:28px;font-weight:700;letter-spacing:-0.5px}
.card-pnl .pct{font-size:14px;margin-top:4px;font-weight:600}
.card-info{flex:1}
.card-info .row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}
.card-info .row .lbl{color:#999}
.card-info .row .val{font-weight:600}
.slider-section{padding:16px 0 12px;border-top:1px solid #f0f0f0}
.slider-labels{display:flex;justify-content:space-between;margin-bottom:6px}
.slider-labels .sl{font-size:14px}
.slider-labels .sl.stop{color:#e60012;font-weight:600}
.slider-labels .sl.target{color:#e60012;font-weight:600}
.slider-bar{position:relative;height:6px;background:#e0e0e0;border-radius:3px;margin:8px 0}
.slider-bar .fill{
  position:absolute;left:0;top:0;height:100%;border-radius:3px;
  background:linear-gradient(90deg,#e60012,#ff9800,#4caf50);
}
.slider-bar .thumb{
  position:absolute;top:50%;transform:translate(-50%,-50%);
  width:18px;height:18px;background:#fff;border:2px solid #e60012;
  border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.2);
}
.slider-vals{display:flex;justify-content:space-between;font-size:13px;color:#666}
.slider-vals span:first-child{color:#e60012}
.slider-vals span:last-child{color:#e60012}
.slider-vals .curr{font-weight:700;color:#333}
.alert{
  margin-top:12px;padding:12px 16px;border-radius:8px;
  font-size:13px;display:flex;align-items:flex-start;gap:8px;line-height:1.6;
}
.alert.danger{background:#fff5f5;color:#c62828}
.alert.info{background:#f0f7ff;color:#1565c0}
.alert.warn{background:#fff8e1;color:#e65100}
.alert .icon{font-size:16px;flex-shrink:0;margin-top:1px}
.btn{
  display:inline-block;margin-top:10px;padding:6px 20px;
  border-radius:18px;font-size:13px;font-weight:600;
  border:none;background:#fff3e0;color:#e65100;cursor:pointer;
}
.btn:hover{background:#ffe0b2}
.deep-link{text-align:center;padding:12px 0 4px;font-size:14px;color:#999;cursor:pointer}
.deep-link:hover{color:#666}
.deep-link .arrow{font-size:12px;margin-left:4px}

/* 交易 */
.trade-header{max-width:1100px;margin:0 auto;padding:20px 20px 0}
.trade-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,0.06)}
.trade-card .back{display:inline-block;padding:6px 16px;border-radius:6px;font-size:13px;color:#666;cursor:pointer;margin-bottom:16px}
.trade-card .back:hover{background:#f0f0f0}
.trade-card .tt{font-size:18px;font-weight:700;margin-bottom:16px}
.trade-pnl-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;background:#fafafa;border-radius:8px;margin-bottom:16px}
.trade-pnl-item .lbl{font-size:13px;color:#999;margin-bottom:4px}
.trade-pnl-item .lbl .tag{display:inline-block;font-size:12px;color:#bbb;margin-left:4px}
.trade-pnl-item .val{font-size:22px;font-weight:700}
.trade-pnl-item .sub{font-size:14px;margin-top:2px}
.trade-pnl-item .detail{font-size:13px;color:#999;margin-top:6px}
.trade-pnl-item .detail span{margin-right:12px}
.trade-item{padding:14px 0;border-bottom:1px solid #f0f0f0}
.trade-item:last-child{border-bottom:none}
.trade-item .ti-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.trade-item .ti-type{font-size:13px;font-weight:600}
.trade-item .ti-type.buy{color:#e60012}
.trade-item .ti-type.sell{color:#0066ff}
.trade-item .ti-date{font-size:13px;color:#999}
.trade-item .ti-body{display:flex;justify-content:space-between;align-items:flex-start}
.trade-item .ti-left{text-align:left}
.trade-item .ti-left .p{font-size:15px;font-weight:600;color:#333}
.trade-item .ti-left .q{font-size:14px;color:#666;margin-top:2px}
.trade-item .ti-right{text-align:right}
.trade-item .ti-right .amt{font-size:14px;font-weight:600}
.trade-item .ti-right .fee{font-size:13px;color:#999;margin-top:2px}
.trade-item .ti-right .pnl{font-size:14px;font-weight:600}
.trade-item .ti-note{font-size:13px;color:#999;margin-top:4px}
.trade-filter{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.trade-filter select{padding:6px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#fff;color:#333}

/* 报告新排版 - 紧凑版（一眼看完） */
.report-page{display:block}
.report-page.hide{display:none}
.report-expand{display:block;margin-top:16px;padding:0;border-top:1px solid #eee}
.report-expand.hide{display:none}

/* ===== 交易记录 - 浅色投行仪表盘风格 ===== */
.tr-hero{background:#fff;border-radius:12px;padding:20px 24px;margin-bottom:10px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,0.04);display:flex;justify-content:space-between;align-items:center;border-left:4px solid #ff9800}
.tr-hero .th-left{display:flex;flex-direction:column}
.tr-hero .th-label{font-size:11px;color:#999;letter-spacing:1px;font-weight:600}
.tr-hero .th-amt{font-size:36px;font-weight:800;font-family:'Courier New',monospace;letter-spacing:-1.5px}
.tr-hero .th-pct{font-size:14px;margin-top:4px;font-weight:600}
.tr-hero .th-right{display:flex;gap:24px}
.tr-hero .th-stat{text-align:right}
.tr-hero .th-stat .n{font-size:20px;font-weight:700;color:#1d1d1f}
.tr-hero .th-stat .l{font-size:11px;color:#999}

/* KPI Grid - 8 columns */
.tr-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.tr-kpi{background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px rgba(0,0,0,0.04);text-align:center}
.tr-kpi .lbl{font-size:11px;color:#999;margin-bottom:4px}
.tr-kpi .val{font-size:20px;font-weight:700;font-family:'Courier New',monospace}
.tr-kpi .sub{font-size:11px;color:#bbb;margin-top:2px}

/* Nav tabs row */
.tr-nav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.tr-nav-btn{background:#fff;border-radius:10px;padding:12px 8px;text-align:center;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,0.04);border:1px solid transparent;font-size:13px;font-weight:600;color:#666;transition:all 0.2s}
.tr-nav-btn.active{background:#1d1d1f;color:#fff;border-color:#1d1d1f}
.tr-nav-btn .icon{font-size:18px;display:block;margin-bottom:iat3px}
.tr-nav-btn .badge{margin-top:iat3px;display:block;font-size:11px;color:#bbb}
.tr-nav-btn.active .badge{color:rgba(255,255,255,0.6)}

/* Daily card */
.tr-day-card{background:#fafafa;border-radius:8px;padding:12px 16px;margin-bottom:6px;border-left:3px solid}
.tr-day-card.up{border-color:#e60012}
.tr-day-card.down{border-color:#0066ff}
.tr-day-card .day-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tr-day-card .date{font-size:14px;font-weight:700;color:#1d1d1f}
.tr-day-card .dow{font-size:12px;color:#999;margin-left:6px;font-weight:400}
.tr-day-card .pnl{font-size:16px;font-weight:700;font-family:'Courier New',monospace}
.tr-day-card .stock-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.tr-stock-tag{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.tr-stock-tag.buy{background:#fff5f5;color:#c62828}
.tr-stock-tag.sell{background:#f0faf4;color:#2e7d32}
.tr-trade-row{display:flex;align-items:center;padding:4px 0;font-size:12px;gap:12px;color:#999}
.tr-trade-row .td-name{color:#1d1d1f;font-weight:600;min-width:80px}
.tr-trade-row .td-dir{font-weight:600;min-width:36px}
.tr-trade-row .td-dir.buy{color:#e60012}
.tr-trade-row .td-dir.sell{color:#0066ff}

/* Mini chart */
.tr-mini-chart{background:#fafafa;border-radius:8px;padding:12px 16px;margin-bottom:8px}

/* Weekly card */
.tr-wk-card{background:#fafafa;border-radius:8px;padding:14px;margin-bottom:6px}
.tr-wk-card .wk-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.tr-wk-card .wk-label{display:flex;align-items:center;gap:8px}
.tr-wk-card .wk-em{font-size:18px}
.tr-wk-card .wk-n{font-size:14px;font-weight:700;color:#1d1d1f}
.tr-wk-card .wk-dates{font-size:12px;color:#999}
.tr-wk-card .wk-pnl{font-size:18px;font-weight:700;font-family:'Courier New',monospace}
.tr-wk-card .wk-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.tr-wk-item{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;color:#999}
.tr-wk-item .cl{color:#666}
.tr-wk-item .cv{font-weight:600;color:#1d1d1f}

.tr-panel{background:#fff;border-radius:10px;padding:16px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,0.04);margin-bottom:8px}
.tr-panel-title{font-size:i13px;font-weight:700;color:#1d1d1f;margin-bottom:12px}

/* Back button */
.back-btn{cursor:pointer;font-size:13px;color:#999;padding:4px 12px;border-radius:16px;background:#f5f5f7;border:1px solid #e5e5ea;transition:all 0.2s;display:inline-block}
.back-btn:hover{color:#1d1d1f;border-color:#c8a951}

/* Page header */
.page-header-c{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.page-header-c .page-title{font-size:16px;font-weight:700}
.page-header-c .page-sub{font-size:13px;color:#999;font-weight:400;margin-left:4px}

/* 迷你折线图容器 */
.chart-mini{
  background:#fff;border-radius:10px;padding:12px 16px;
  box-shadow:0 1px 3px rgba(0,0,0,0.04);position:relative;
}
.chart-mini .cm-hdr{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;
}
.chart-mini .cm-hdr .cm-title{font-size:13px;font-weight:600;color:#666}
.chart-mini .cm-hdr .cm-latest{
  font-size:15px;font-weight:700;color:#e60012;
  background:#fff5f5;border-radius:4px;padding:2px 10px;
}

/* 通用页面控件 */
.page-header-c{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;
}
.page-header-c .back-btn{
  display:flex;align-items:center;gap:4px;font-size:13px;color:#666;cursor:pointer;
  padding:5px 12px;border-radius:6px;border:1px solid #eee;background:#fff;
}
.page-header-c .back-btn:hover{background:#fafafa}
.page-header-c .page-title{font-size:17px;font-weight:700}
.page-header-c .page-sub{font-size:14px;color:#999;font-weight:400;margin-left:6px}

/* 日报分组 */
.daily-group-c{
  background:#fff;border-radius:10px;padding:12px 14px;margin-bottom:8px;
  box-shadow:0 1px 3px rgba(0,0,0,0.04);
}
.daily-group-c .dg-hdr{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;
}
.daily-group-c .dg-date{font-size:15px;font-weight:700}
.daily-group-c .dg-date .dow{font-size:14px;color:#999;font-weight:400;margin-left:4px}
.daily-group-c .dg-pnl{font-size:16px;font-weight:700}
.daily-group-c .dg-stocks{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.daily-group-c .dg-stock{
  display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:14px;
}
.daily-group-c .dg-stock.buy{background:#fff5f5;color:#c62828}
.daily-group-c .dg-stock.sell{background:#e8f5e9;color:#2e7d32}
.daily-group-c .dg-stock.mixed{background:#fff8e1;color:#e65100}
.daily-group-c .dg-trade{
  display:flex;justify-content:space-between;align-items:center;
  padding:6px 0;border-bottom:1px solid #f8f8f8;font-size:13px;
}
.daily-group-c .dg-trade:last-child{border-bottom:none}
.daily-group-c .dg-trade .td-name{font-weight:600;min-width:60px;font-size:13px}
.daily-group-c .dg-trade .td-dir{
  display:inline-block;padding:2px 8px;border-radius:4px;font-size:13px;font-weight:600;margin:0 6px;
}
.daily-group-c .dg-trade .td-dir.buy{background:#fce4ec;color:#c62828}
.daily-group-c .dg-trade .td-dir.sell{background:#e8f5e9;color:#2e7d32}
.daily-group-c .dg-trade .td-price{color:#666;min-width:44px;text-align:right}
.daily-group-c .dg-trade .td-qty{color:#666;min-width:36px;text-align:right}
.daily-group-c .dg-trade .td-amt{font-weight:600;min-width:60px;text-align:right}
.daily-group-c .dg-trade .td-pnl{font-weight:600;min-width:60px;text-align:right;font-size:13px}
.daily-group-c .dg-note{
  margin-top:6px;padding:5px 10px;border-radius:4px;font-size:14px;
}
.daily-group-c .dg-note.warn{background:#fff8e1;color:#e65100}
.daily-group-c .dg-note.danger{background:#fff5f5;color:#c62828}

/* 周流水条 */
.flow-card-c{background:#fff;border-radius:10px;padding:10px 14px;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.flow-bar-c{margin-bottom:6px}
.flow-bar-c .fb-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.flow-bar-c .fb-hdr .fb-label{font-size:14px;font-weight:600}
.flow-bar-c .fb-hdr .fb-label .fb-sub{color:#999;font-weight:400;font-size:13px;margin-left:3px}
.flow-bar-c .fb-hdr .fb-val{font-size:13px;font-weight:700}
.flow-bar-c .fb-track{
  position:relative;height:18px;background:#f5f5f5;border-radius:9px;overflow:hidden;
}
.flow-bar-c .fb-track .fb-fill{
  position:absolute;height:100%;border-radius:9px;transition:width 0.2s;
}
.flow-bar-c .fb-track .fb-fill.up{background:linear-gradient(90deg,#ffcdd2,#e60012);right:0}
.flow-bar-c .fb-track .fb-fill.down{background:linear-gradient(90deg,#0066ff,#bbdefb);left:0}
.flow-bar-c .fb-track .fb-badge{
  position:absolute;top:50%;transform:translateY(-50%);
  font-size:11px;color:#fff;font-weight:600;padding:0 6px;
}
.flow-bar-c .fb-track .fb-badge.left{left:3px}
.flow-bar-c .fb-track .fb-badge.right{right:3px}

/* ===== 市场行情 - 投行仪表盘浅色版 ===== */
.idx-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.idx-card{background:#fff;border-radius:10px;padding:14px 16px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.idx-name{font-size:12px;color:#999;margin-bottom:4px;font-weight:500}
.idx-price{font-size:22px;font-weight:700;font-family:'Courier New',monospace;color:#1d1d1f;letter-spacing:-1px}
.idx-change{font-size:13px;font-weight:600;margin-top:2px}

.hero-diag{background:#fff;border-radius:12px;padding:18px 22px;margin-bottom:12px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,0.04);border-left:4px solid #ff9800}
.hero-diag .hd-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.hero-diag .hd-label{font-size:12px;color:#999;letter-spacing:1px;font-weight:600}
.hero-diag .hd-time{font-size:12px;color:#bbb;font-family:'Courier New',monospace}
.hero-diag .hd-body{display:flex;gap:16px;align-items:center}
.hero-diag .hd-signal{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.hero-diag .hd-signal.positive{background:#4caf50;box-shadow:0 0 8px rgba(76,175,80,0.4)}
.hero-diag .hd-signal.neutral{background:#ff9800;box-shadow:0 0 8px rgba(255,152,0,0.4)}
.hero-diag .hd-signal.negative{background:#e60012;box-shadow:0 0 8px rgba(230,0,18,0.4)}
.hero-diag .hd-text{font-size:14px;line-height:1.7;color:#666;flex:1}
.hero-diag .hd-text strong{color:#1d1d1f}
.hero-diag .hd-tags{display:flex;gap:6px;flex-shrink:0}
.hero-diag .hd-tag{padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600}
.hero-diag .hd-tag.up{background:#fff5f5;color:#e60012}
.hero-diag .hd-tag.down{background:#f0faf4;color:#0066ff}

.row-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}

.panel{background:#fff;border-radius:10px;padding:16px;border:1px solid #eee;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.panel-title{font-size:13px;font-weight:700;color:#1d1d1f;margin-bottom:12px;letter-spacing:0.5px}
.panel-title .sub{color:#999;font-weight:400;margin-left:4px;font-size:12px}

.dist-bar{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fafafa;border-radius:8px;margin-bottom:8px}
.dist-bar .db-stat{text-align:center;min-width:60px}
.dist-bar .db-stat .n{font-size:18px;font-weight:700;font-family:'Courier New',monospace}
.dist-bar .db-stat .l{font-size:11px;color:#999;margin-top:1px}
.dist-bar .db-bar{flex:1;height:10px;background:#eee;border-radius:5px;overflow:hidden;display:flex}
.dist-bar .db-bar .up{background:#e60012;height:100%}
.dist-bar .db-bar .down{background:#0066ff;height:100%}
.dist-bar .db-ratio{font-size:12px;color:#999;min-width:50px;text-align:right}

.amt-display{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fafafa;border-radius:8px}
.amt-display .lbl{font-size:12px;color:#999}
.amt-display .val{font-size:16px;font-weight:700;color:#1d1d1f;font-family:'Courier New',monospace}
.amt-display .change{font-size:12px;color:#bbb}

.fund-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fund-item{padding:10px 12px;border-radius:8px}
.fund-item.bg1{background:#fff5f5}
.fund-item.bg2{background:#f0faf4}
.fund-item.bg3{background:#fffcf0}
.fund-item.bg4{background:#f0f4ff}
.fund-item .lbl{font-size:11px;color:#999;margin-bottom:3px}
.fund-item .val{font-size:16px;font-weight:700;font-family:'Courier New',monospace;letter-spacing:-0.5px}
.fund-item .sub{font-size:11px;color:#bbb;margin-top:2px}

.sector-list{display:flex;flex-direction:column;gap:8px}
.sector-item{background:#fafafa;border-radius:8px;padding:10px 12px;border-left:3px solid}
.sector-item.up{border-color:#e60012}
.sector-item.down{border-color:#0066ff}
.sector-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sector-name{font-size:13px;font-weight:700;color:#1d1d1f}
.sector-pct{font-size:12px;font-weight:600}
.sector-stocks{display:flex;gap:4px;flex-wrap:wrap}
.sec-stock{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;border-radius:4px;font-size:11px}
.sec-stock.up{background:#fff5f5;color:#c62828}
.sec-stock.down{background:#f0faf4;color:#2e7d32}
.sec-crown{font-size:9px;margin-left:1px}

/* 月报表格 */
.monthly-card-c{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.monthly-card-c table{width:100%;border-collapse:collapse;font-size:13px}
.monthly-card-c th{
  text-align:left;padding:8px 12px;border-bottom:2px solid #f0f0f0;
  color:#999;font-weight:600;font-size:13px;background:#fafafa;
}
.monthly-card-c td{padding:8px 12px;border-bottom:1px solid #f5f5f5}
.monthly-card-c tr:last-child td{border-bottom:none}
.monthly-card-c tr:hover td{background:#fafafa}

/* 交易 */
.trade-ctrl{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.trade-ctrl select{
  padding:5px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;
  background:#fff;color:#333;appearance:none;cursor:pointer;flex:1;
}
.trade-item-c{
  background:#fff;border-radius:10px;padding:10px 14px;margin-bottom:6px;
  box-shadow:0 1px 3px rgba(0,0,0,0.03);
  border-left:4px solid #eee;
}
.trade-item-c.buy{border-left-color:#e60012}
.trade-item-c.sell{border-left-color:#0066ff}
.trade-item-c .ti-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.trade-item-c .ti-name{font-size:14px;font-weight:700}
.trade-item-c .ti-name .ti-dir{
  display:inline-block;padding:2px 10px;border-radius:4px;font-size:13px;font-weight:600;margin-left:6px;
}
.trade-item-c .ti-name .ti-dir.buy{background:#fce4ec;color:#c62828}
.trade-item-c .ti-name .ti-dir.sell{background:#e3f2fd;color:#1565c0}
.trade-item-c .ti-date{font-size:14px;color:#999}
.trade-item-c .ti-body{display:flex;justify-content:space-between;align-items:center}
.trade-item-c .ti-detail{display:flex;gap:12px;font-size:13px;color:#666}
.trade-item-c .ti-detail strong{color:#333}
.trade-item-c .ti-pnl{font-size:14px;font-weight:700}
.trade-item-c .ti-note{font-size:13px;color:#999;margin-top:4px;padding-top:4px;border-top:1px solid #f5f5f5}
.trade-summary-c{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 14px;
  background:#fafafa;border-radius:8px;margin-bottom:8px;
}
.trade-summary-c .ts-item{text-align:center}
.trade-summary-c .ts-item .lbl{font-size:13px;color:#999;margin-bottom:3px}
.trade-summary-c .ts-item .val{font-size:20px;font-weight:700}
.trade-summary-c .ts-item .sub{font-size:14px;margin-top:2px}
.trade-summary-c .ts-item .detail{font-size:13px;color:#999;margin-top:3px}
.trade-summary-c .ts-item .detail span{margin-right:8px}

/* 标签栏 */
.tab-bar{
  max-width:1100px;margin:0 auto;padding:0 20px 0;
  display:flex;align-items:center;gap:4px;
}
.tab-bar .brand{
  font-size:18px;font-weight:800;color:#e60012;
  margin-right:16px;letter-spacing:1px;
}
.tab-btn{
  padding:10px 28px;font-size:15px;font-weight:600;
  border:none;background:transparent;color:#999;
  cursor:pointer;border-radius:10px 10px 0 0;
  transition:all 0.15s;
}
.tab-btn:hover{color:#666;background:#e8e8e8}
.tab-btn.active{color:#e60012;background:#fff;box-shadow:0 -2px 6px rgba(0,0,0,0.05)}

.ft{text-align:center;padding:30px 20px 40px;font-size:14px;color:#bbb}


/* === 白金升级 === */
/* ===== 顶部状态条 ===== */.top-bar{  background:rgba(255,255,255,0.95);border-bottom:1px solid #e5e5ea;  padding:8px 24px;display:flex;justify-content:space-between;align-items:center;  position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);}.logo{font-size:18px;font-weight:800;letter-spacing:2px;display:flex;align-items:center;gap:10px}.logo-navy{color:#1a1a3e}.logo-accent{color:#c8a951;font-weight:400;margin-left:2px}.logo-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#34c759;box-shadow:0 0 8px rgba(52,199,89,0.3);animation:pulse 2s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}.top-right{display:flex;align-items:center;gap:20px;font-size:14px;color:#8e8e93}.top-right .time{font-family:'Courier New',monospace;font-size:14px;color:#1a1a3e;font-weight:600}/* ===== 指数迷你条 ===== */.index-bar{  display:flex;gap:0;background:#ffffff;border-bottom:1px solid #e5e5ea;  padding:6px 24px;font-size:13px;box-shadow:0 1px 2px rgba(0,0,0,0.02);}.idx-item{display:flex;align-items:center;gap:8px;padding:0 16px;border-right:1px solid #f0f0f2}.idx-item:last-child{border:none}.idx-item .name{color:#8e8e93}.idx-item .val{font-family:'Courier New',monospace;font-weight:700;font-size:13px;color:#1d1d1f}.idx-item .pct{font-family:'Courier New',monospace;font-size:13px;font-weight:600}.idx-item .pct.up{color:#e60012}.idx-item .pct.down{color:#00a854}.idx-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.idx-dot.up{background:#e60012;box-shadow:0 0 6px rgba(230,0,18,0.3)}.idx-dot.down{background:#00a854;box-shadow:0 0 6px rgba(0,168,84,0.3)}/* ===== 标签导航 ===== */.tab-bar{  display:flex;gap:0;padding:0 20px;border-bottom:1px solid #e5e5ea;  background:#ffffff;  max-width:1100px;margin:0 auto;overflow-x:auto;-webkit-overflow-scrolling:touch;  -ms-overflow-style:none;scrollbar-width:none;}.tab-bar::-webkit-scrollbar{display:none}.tab-gold{font-size:13px;  padding:12px 16px;font-weight:600;cursor:pointer;  color:#8e8e93;position:relative;transition:all 0.3s;border:none;background:none;  white-space:nowrap;flex-shrink:0;}.tab-gold:hover{color:#1d1d1f}.tab-gold.active{color:#1a1a3e}.tab-gold.active::after{  content:'';position:absolute;bottom:0;left:16px;right:16px;height:3px;  background:#c8a951;border-radius:3px;box-shadow:0 0 12px rgba(200,169,81,0.3);}/* ===== 主容器 ===== */.wrap{max-width:1100px;margin:0 auto;padding:20px 24px}/* ===== 账户总览 ===== */.acct-hero{  background:linear-gradient(135deg,#1a1a3e,#2a2a5e,#1a1a3e);  border-radius:16px;padding:28px 32px;margin-bottom:20px;  position:relative;overflow:hidden;color:#fff;}.acct-hero::before{  content:'';position:absolute;top:-50%;right:-20%;width:300px;height:300px;  background:radial-gradient(circle,rgba(200,169,81,0.08),transparent 70%);}.acct-hero::after{  content:'';position:absolute;bottom:-30%;left:-10%;width:200px;height:200px;  background:radial-gradient(circle,rgba(255,255,255,0.03),transparent 70%);}.acct-row{display:flex;justify-content:space-between;align-items:flex-end;position:relative;z-index:1}.acct-left{}.acct-label{font-size:13px;color:rgba(255,255,255,0.45);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px}.acct-amount{font-family:'Courier New',monospace;font-size:42px;font-weight:700;letter-spacing:-2px;color:#fff}.acct-amount .currency{font-size:22px;color:rgba(255,255,255,0.4)}.acct-pnl{font-size:16px;font-weight:600;margin-top:4px;font-family:'Courier New',monospace}.acct-pnl.up{color:#ff6b6b}.acct-pnl.down{color:#69db7c}.acct-extra{display:flex;gap:24px;margin-top:14px}.acct-extra>div{}.acct-extra .xl{font-size:12px;color:rgba(255,255,255,0.35);letter-spacing:1px}.acct-extra .xv{font-size:15px;font-weight:600;color:rgba(255,255,255,0.85);margin-top:2px}.acct-right{text-align:right}.acct-ring{width:80px;height:80px;position:relative}.acct-ring svg{transform:rotate(-90deg)}.acct-ring .ring-bg{fill:none;stroke:rgba(255,255,255,0.08);stroke-width:6}.acct-ring .ring-fill{fill:none;stroke:#c8a951;stroke-width:6;stroke-linecap:round}.acct-ring .ring-label{  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);  font-size:13px;font-weight:700;color:rgba(255,255,255,0.7);text-align:center;}.acct-ring .ring-label small{display:block;font-size:10px;color:rgba(255,255,255,0.3);font-weight:400}/* ===== 股票卡片 ===== */.stocks-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.stock-card{  background:#ffffff;border-radius:12px;padding:20px;  box-shadow:0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.03);  transition:all 0.25s;border:1px solid transparent;}.stock-card:hover{border-color:rgba(200,169,81,0.25);box-shadow:0 4px 20px rgba(0,0,0,0.06);transform:translateY(-2px)}.sc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.sc-left{display:flex;align-items:center;gap:10px}.sc-name{font-size:16px;font-weight:700;color:#1d1d1f}.sc-code{font-size:13px;color:#8e8e93;margin-top:2px}.sc-badge{font-size:12px;padding:2px 10px;border-radius:10px;font-weight:600}.sc-badge.red{background:#fff0f0;color:#e60012;border:1px solid #ffe0e0}.sc-badge.green{background:#f0faf4;color:#00a854;border:1px solid #ddf4e8}.sc-badge.yellow{background:#fffcf0;color:#b8860b;border:1px solid #fef3d5}.sc-mktval{text-align:right}.sc-mktval .lbl{font-size:12px;color:#8e8e93}.sc-mktval .val{font-family:'Courier New',monospace;font-size:20px;font-weight:700;color:#1d1d1f;letter-spacing:-1px}.sc-body{display:flex;gap:16px;padding:12px 0;border-top:1px solid #f0f0f2}.sc-pnl{flex:1;text-align:center}.sc-pnl .lbl{font-size:12px;color:#8e8e93;margin-bottom:4px}.sc-pnl .val{font-family:'Courier New',monospace;font-size:26px;font-weight:700;letter-spacing:-1px}.sc-pnl .val.red{color:#e60012}.sc-pnl .val.green{color:#00a854}.sc-pnl .sub{font-size:13px;margin-top:2px;font-weight:600}.sc-pnl .sub.red{color:#e60012}.sc-pnl .sub.green{color:#00a854}.sc-info{flex:1}.sc-info .row{display:flex;justify-content:space-between;padding:5px 0;font-size:14px}.sc-info .row .lbl{color:#8e8e93}.sc-info .row .val{font-weight:600;color:#1d1d1f}.sc-slider{padding:12px 0 8px;border-top:1px solid #f0f0f2}.sc-slider-labels{display:flex;justify-content:space-between;margin-bottom:4px;font-size:12px}.sc-slider-labels .stop{color:#e60012}.sc-slider-labels .target{color:#1a1a3e;font-weight:600}.sc-slider-bar{height:4px;background:#e8e8ed;border-radius:2px;margin:6px 0;position:relative}.sc-slider-fill{position:absolute;left:0;top:0;height:100%;border-radius:2px;background:linear-gradient(90deg,#e60012,#ff9800,#00a854);transition:width 0.5s}.sc-slider-thumb{  position:absolute;top:50%;transform:translate(-50%,-50%);  width:14px;height:14px;background:#1a1a3e;border:2px solid #ffffff;  border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.2);transition:left 0.5s;}.sc-status{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6;margin-top:8px;display:flex;align-items:flex-start;gap:8px}.sc-status.warn{background:#fffcf0;color:#b8860b;border:1px solid #fef3d5}.sc-status.danger{background:#fff0f0;color:#c62828;border:1px solid #ffe0e0}.sc-status.info{background:#f0f4ff;color:#1a56db;border:1px solid #dde7f8}.sc-action{text-align:center;margin-top:10px}.sc-action button{  background:transparent;border:1px solid #c8a951;color:#1a1a3e;padding:7px 24px;  border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all 0.25s;}.sc-action button:hover{background:#c8a951;color:#fff}/* ===== 数据卡片 ===== */.data-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.data-card{  background:#ffffff;border-radius:12px;padding:20px;  box-shadow:0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.03);}.data-card .dc-title{font-size:13px;font-weight:700;margin-bottom:14px;color:#1a1a3e;letter-spacing:1px}/* 板块标签 */.sector-tags{display:flex;gap:6px;flex-wrap:wrap}.stag{  padding:4px 10px;border-radius:6px;font-size:13px;font-weight:600;  background:#fff0f0;color:#e60012;border:1px solid #ffe0e0;}.stag.green{background:#f0faf4;color:#00a854;border-color:#ddf4e8}/* 列表 */.list-item{  display:flex;justify-content:space-between;align-items:center;  padding:8px 0;border-bottom:1px solid #f0f0f2;font-size:14px;}.list-item:last-child{border:none}.list-name{color:#515154}.list-val{font-weight:600;font-family:'Courier New',monospace}.list-val.up{color:#e60012}.list-val.down{color:#00a854}/* ===== 投资建议 ===== */.advice-card{  background:#ffffff;border-radius:12px;padding:24px;  box-shadow:0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.03);  margin-bottom:16px;border-left:4px solid #c8a951;}.advice-card .ac-title{font-size:15px;font-weight:700;margin-bottom:16px;color:#1a1a3e;display:flex;align-items:center;gap:8px}.advice-item{  display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f2;  font-size:14px;line-height:1.7;color:#515154;}.advice-item:last-child{border:none}.advice-item .ai-icon{font-size:16px;flex-shrink:0;margin-top:1px}.advice-item .ai-text strong{color:#1a1a3e}/* ===== 页脚 ===== */.ft{  text-align:center;padding:20px;font-size:12px;color:#c7c7cc;  border-top:1px solid #f0f0f2;letter-spacing:0.5px;}/* ===== 模拟K线迷你图 ===== */.mini-chart{display:flex;align-items:flex-end;gap:2px;height:32px;margin-top:8px}.mini-bar{width:4px;border-radius:2px 2px 0 0;background:rgba(200,169,81,0.3);transition:height 0.3s}.mini-bar.up{background:rgba(230,0,18,0.4)}.mini-bar.down{background:rgba(0,168,84,0.4)}
.card{border-left-width:4px!important}
.card-pnl{flex:none!important;width:100%!important}
.card-info{width:100%!important}
.card-risk .ok{font-size:13px;line-height:1.5}
.tag-sm{display:inline-block;font-size:12px;padding:2px 10px;border-radius:10px;font-weight:600;white-space:nowrap}
.tag-sm.red{background:#fff0f0;color:#c62828;border:1px solid #ffe0e0}
.tag-sm.blue{background:#f0faf4;color:#2e7d32;border:1px solid #ddf4e8}
/* ===== 月度战绩卡片流 ===== */

/* ===== 周报卡片流 ===== */
.wk-summary-c{background:linear-gradient(135deg,#1a1a3e,#2a2a5e);border-radius:12px;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;color:#fff;margin-bottom:10px}
.ws-left{}
.ws-label{font-size:12px;color:rgba(255,255,255,0.4);letter-spacing:1px}
.ws-pnl{font-family:'Courier New',monospace;font-size:28px;font-weight:700;letter-spacing:-1px;margin-top:2px}
.ws-pnl.up{color:#ff6b6b}
.ws-pnl.down{color:#69db7c}
.ws-stats{display:flex;gap:16px}
.ws-item{text-align:center}
.ws-lbl{font-size:11px;color:rgba(255,255,255,0.35);display:block}
.ws-val{font-size:16px;font-weight:700;margin-top:1px}
.ws-val.up{color:#ff6b6b}
.ws-val.down{color:#69db7c}
.wk-flow-c{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 0 8px;-ms-overflow-style:none;scrollbar-width:none}
.wk-flow-c::-webkit-scrollbar{display:none}
.wk-card{flex:0 0 130px;background:#ffffff;border-radius:10px;padding:12px;border-left:3px solid;box-shadow:0 1px 3px rgba(0,0,0,0.04);min-width:130px}
.wk-card.up{border-left-color:#e60012}
.wk-card.down{border-left-color:#00a854}
.wc-top{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:4px}
.wc-emoji{font-size:14px}
.wc-week{font-size:13px;font-weight:700;color:#1d1d1f;letter-spacing:0.5px}
.wc-date{font-size:11px;color:#8e8e93;margin-left:auto}
.wc-pnl{font-family:'Courier New',monospace;font-size:20px;font-weight:700;letter-spacing:-1px;margin-bottom:4px}
.wc-pnl.up{color:#e60012}
.wc-pnl.down{color:#00a854}
.wc-meta{display:flex;justify-content:space-between;font-size:12px;color:#8e8e93}

/* ===== 月度分析 - 方案1 卡片网格+柱状图 ===== */
.mr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.mr-grid#mr-strip{grid-template-columns:repeat(3,1fr)}
.mr-grid#mr-cards{grid-template-columns:repeat(3,1fr)}
.mr-chart-box{background:#fff;border-radius:14px;padding:18px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.mr-ct{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.mr-ct .mr-t{font-size:14px;font-weight:700;color:#1a1a3e}
.mr-ct .mr-legend{font-size:11px;color:#8e8e93;display:flex;gap:12px}
.mr-sc{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.mr-sc .l{font-size:10px;color:#8e8e93;margin-bottom:3px;letter-spacing:0.5px}
.mr-sc .v{font-size:22px;font-weight:700;letter-spacing:-0.5px}
.mr-sc .v.up{color:#e60012}.mr-sc .v.down{color:#00a854}.mr-sc .v.blue{color:#0066ff}
.mr-sc .s{font-size:10px;color:#8e8e93;margin-top:2px}
.mr-card{background:#fff;border-radius:14px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,0.04);border-top:3px solid;transition:all 0.2s}
.mr-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.08)}
.mr-card.pos{border-top-color:#e60012}.mr-card.neg{border-top-color:#00a854}
.mr-card .mc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mr-card .mc-left{display:flex;align-items:center;gap:6px}
.mr-card .mc-emoji{font-size:18px}
.mr-card .mc-month{font-weight:700;font-size:15px;color:#1d1d1f}
.mr-card .mc-pnl{font-size:22px;font-weight:700;font-family:'SF Mono','Courier New',monospace;letter-spacing:-1px}
.mr-card .mc-pnl.pos{color:#e60012}.mr-card .mc-pnl.neg{color:#00a854}
.mr-card .mc-body{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:4px}
.mr-card .mc-item{text-align:center;padding:6px 4px;background:#f8f8fa;border-radius:8px;font-size:12px}
.mr-card .mc-item .l{font-size:9px;color:#8e8e93}
.mr-card .mc-item .v{font-weight:600;margin-top:1px}
.mr-card .mc-item .v.red{color:#e60012}.mr-card .mc-item .v.green{color:#00a854}
@media(max-width:640px){
  .mr-grid#mr-strip{grid-template-columns:repeat(2,1fr)}
  .mr-grid#mr-cards{grid-template-columns:1fr}
}

/* ===== 每周盈亏 - 方案2 仪表盘+时间线 ===== */
.weekly-ring-row{display:flex;gap:16px;margin-bottom:16px;align-items:stretch}
.weekly-ring-box{background:#fff;border-radius:14px;padding:18px;box-shadow:0 2px 8px rgba(0,0,0,0.04);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 160px}
.weekly-ring-svg{position:relative;width:100px;height:100px}
.weekly-ring-center{position:absolute;top:0;left:0;width:100px;height:100px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.weekly-ring-center .v{font-size:22px;font-weight:700}
.weekly-ring-center .l{font-size:10px;color:#8e8e93;margin-top:1px}
.weekly-ring-center .v.up{color:#e60012}
.weekly-ring-center .v.down{color:#00a854}
.weekly-kpi-strip{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.weekly-kpi-item{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 2px 8px rgba(0,0,0,0.04);display:flex;flex-direction:column;justify-content:center}
.weekly-kpi-item .l{font-size:11px;color:#8e8e93;margin-bottom:2px;letter-spacing:0.5px}
.weekly-kpi-item .v{font-size:20px;font-weight:700;letter-spacing:-0.5px}
.weekly-kpi-item .v.up{color:#e60012}
.weekly-kpi-item .v.down{color:#00a854}
.weekly-kpi-item .s{font-size:11px;color:#8e8e93;margin-top:1px}
.weekly-timeline{position:relative;padding-left:28px}
.weekly-timeline::before{content:'';position:absolute;left:10px;top:0;bottom:0;width:2px;background:#e0e0e5}
.weekly-tl-item{position:relative;margin-bottom:14px;background:#fff;border-radius:12px;padding:14px 16px 14px 20px;box-shadow:0 1px 4px rgba(0,0,0,0.04);cursor:pointer;transition:all 0.2s}
.weekly-tl-item:hover{transform:translateX(4px);box-shadow:0 4px 14px rgba(0,0,0,0.06)}
.weekly-tl-item::before{content:'';position:absolute;left:-24px;top:18px;width:10px;height:10px;border-radius:50%;border:2px solid}
.weekly-tl-item.up::before{background:#e60012;border-color:#e60012}
.weekly-tl-item.down::before{background:#00a854;border-color:#00a854}
.weekly-tl-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.weekly-tl-left{display:flex;align-items:center;gap:8px}
.weekly-tl-emoji{font-size:16px}
.weekly-tl-week{font-weight:700;font-size:14px}
.weekly-tl-date{font-size:11px;color:#8e8e93}
.weekly-tl-pnl{font-size:20px;font-weight:700;font-family:'SF Mono','Courier New',monospace;letter-spacing:-1px}
.weekly-tl-pnl.up{color:#e60012}
.weekly-tl-pnl.down{color:#00a854}
.weekly-tl-detail{display:none;margin-top:10px;padding-top:10px;border-top:1px solid #eee}
.weekly-tl-item.open .weekly-tl-detail{display:block}
.weekly-tl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.weekly-tl-d{text-align:center;padding:8px;background:#f8f8fa;border-radius:8px}
.weekly-tl-d .l{font-size:10px;color:#8e8e93}
.weekly-tl-d .v{font-size:14px;font-weight:600;margin-top:2px}
.weekly-tl-d .v.red{color:#e60012}
.weekly-tl-d .v.green{color:#00a854}
.weekly-tl-toggle{font-size:11px;color:#8e8e93;margin-top:6px;cursor:pointer;text-align:center;user-select:none}
.weekly-tl-toggle:hover{color:#1d1d1f}
@media(max-width:640px){
  .weekly-ring-row{flex-direction:column;align-items:stretch}
  .weekly-ring-box{flex:auto;flex-direction:row;gap:16px;padding:14px}
  .weekly-kpi-strip{grid-template-columns:repeat(2,1fr)}
  .weekly-tl-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== 报告KPI和图表 ===== */
.rk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.rk-kpi{background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.rk-lbl{font-size:12px;color:#8e8e93;margin-bottom:2px}
.rk-val{font-size:20px;font-weight:700;font-family:'Courier New',monospace;letter-spacing:-0.5px}
.rk-val.up{color:#e60012}
.rk-val.down{color:#00a854}
.rk-sub{font-size:12px;color:#8e8e93;margin-top:1px}
.rk-chart-wrap{background:#fff;border-radius:10px;padding:14px 16px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.rk-chart-title{font-size:14px;font-weight:700;color:#1a1a3e;margin-bottom:8px}
.rk-chart{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rk-section-title{font-size:14px;font-weight:700;color:#1a1a3e;margin-bottom:6px;padding:0 2px}
.rk-flow{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}
.rk-fc{display:flex;gap:8px}
.rk-card{flex:0 0 155px;background:#fff;border-radius:10px;padding:12px;border-left:3px solid;box-shadow:0 1px 3px rgba(0,0,0,0.04);min-width:155px}
.rk-card.up{border-left-color:#e60012}
.rk-card.down{border-left-color:#00a854}
.rk-ct{display:flex;align-items:center;gap:4px;margin-bottom:4px;flex-wrap:wrap}
.rk-em{font-size:14px}
.rk-wk{font-size:14px;font-weight:700;color:#1d1d1f}
.rk-dt{font-size:11px;color:#8e8e93;margin-left:auto}
.rk-cp{font-family:'Courier New',monospace;font-size:22px;font-weight:700;letter-spacing:-1px;margin-bottom:4px}
.rk-cp.up{color:#e60012}
.rk-cp.down{color:#00a854}
.rk-ci{font-size:12px}
.rk-ci table{width:100%;border-collapse:collapse}
.rk-ci td{padding:2px 0}
.rk-cl{color:#8e8e93;white-space:nowrap;padding-right:6px}
.rk-cv{font-weight:600;color:#1d1d1f;text-align:right}
.rk-cv.buy{color:#e60012}
.rk-cv.sell{color:#00a854}
.rk-cv.up{color:#e60012}
.rk-cv.down{color:#00a854}
@media(max-width:640px){.rk-grid{grid-template-columns:repeat(2,1fr)}}
.month-flow-c{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 0 8px;-ms-overflow-style:none;scrollbar-width:none}
.month-flow-c::-webkit-scrollbar{display:none}
.month-card{flex:0 0 140px;background:#ffffff;border-radius:10px;padding:14px;border-left:3px solid;box-shadow:0 1px 3px rgba(0,0,0,0.04);transition:all 0.2s;min-width:140px}
.month-card:hover{transform:translateY(-2px);box-shadow:0 3px 12px rgba(0,0,0,0.06)}
.month-card.up{border-left-color:#e60012}
.month-card.down{border-left-color:#00a854}
.mc-top{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.mc-emoji{font-size:14px}
.mc-month{font-size:14px;font-weight:700;color:#1d1d1f}
.mc-pnl{font-family:'Courier New',monospace;font-size:22px;font-weight:700;letter-spacing:-1px;margin-bottom:8px}
.mc-pnl.up{color:#e60012}
.mc-pnl.down{color:#00a854}
.mc-bar{height:4px;background:#f0f0f2;border-radius:2px;margin-bottom:6px;overflow:hidden}
.mc-bar-fill{height:100%;border-radius:2px;transition:width 0.5s}
.mc-bar-fill.good{background:linear-gradient(90deg,#e60012,#ff6b6b)}
.mc-bar-fill.bad{background:linear-gradient(90deg,#00a854,#69db7c)}
.mc-meta{display:flex;justify-content:space-between;font-size:12px;color:#8e8e93}
.mc-meta strong{color:#1d1d1f}
/* ===== 响应式 ===== */
/* ===== 个股深度分析 - AI研报浅色版 ===== */
.sd-ai-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sd-ai-hdr .hdr-left{display:flex;align-items:center;gap:10px}
.sd-ai-hdr .back{font-size:13px;color:#0066ff;cursor:pointer;padding:4px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff}
.sd-ai-hdr .back:hover{background:#f0f5ff}
.sd-ai-hdr .name{font-size:18px;font-weight:700;color:#1d1d1f}
.sd-ai-hdr .code{font-size:12px;color:#8e8e93}
.sd-ai-hdr .tag{font-size:10px;background:#f0f0f5;padding:2px 10px;border-radius:10px;color:#666;border:1px solid #e5e5ea}
.sd-ai-hdr .ai-badge{font-size:11px;color:#0066ff;background:#e8f4fd;padding:4px 12px;border-radius:12px;font-weight:500}
.sd-ai-hero{background:linear-gradient(135deg,#f0f4ff 0%,#e8f0fe 100%);border-radius:14px;padding:24px;margin-bottom:14px;border:1px solid #d1d9e6;display:flex;justify-content:space-between}
.sd-ai-hero .h-cur{display:flex;align-items:baseline;gap:4px}
.sd-ai-hero .h-cur .cy{font-size:20px;color:#8e8e93}
.sd-ai-hero .h-cur .pr{font-size:44px;font-weight:700;letter-spacing:-2px;color:#1d1d1f}
.sd-ai-hero .h-tags{display:flex;gap:6px;margin-top:8px}
.sd-ai-hero .h-tag{font-size:10px;padding:2px 10px;border-radius:8px;background:#fff;border:1px solid #d1d9e6;color:#666}
.sd-ai-hero .h-right{text-align:right}
.sd-ai-hero .h-pct{font-size:26px;font-weight:700;font-family:'SF Mono','Courier New',monospace}
.sd-ai-hero .h-pct.neg{color:#e60012}.sd-ai-hero .h-pct.pos{color:#00a854}
.sd-ai-hero .h-amt{font-size:13px;color:#8e8e93;margin-top:2px}
.sd-ai-hero .h-range{font-size:12px;color:#8e8e93;margin-top:6px}
.sd-ai-hero .h-range span.up{color:#e60012}.sd-ai-hero .h-range span.down{color:#00a854}
.sd-ai-kpi{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:14px}
.sd-ai-kpi .ks-card{background:#fff;border-radius:10px;padding:10px 12px;border:1px solid #e5e5ea;text-align:center;box-shadow:0 1px 2px rgba(0,0,0,0.03)}
.sd-ai-kpi .ks-card .l{font-size:9px;color:#8e8e93;margin-bottom:2px}
.sd-ai-kpi .ks-card .v{font-size:16px;font-weight:700;font-family:'SF Mono','Courier New',monospace;color:#1d1d1f}
.sd-ai-kpi .ks-card .v.up{color:#e60012}.sd-ai-kpi .ks-card .v.down{color:#00a854}
.sd-ai-kpi .ks-card .s{font-size:9px;color:#8e8e93;margin-top:1px}
.sd-ai-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.sd-ai-report{background:#fff;border-radius:12px;padding:14px 16px;border:1px solid #e5e5ea;box-shadow:0 1px 3px rgba(0,0,0,0.03);display:flex;flex-direction:column}
.sd-ai-report .rp-hdr{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f0f0f5;flex-wrap:wrap}
.sd-ai-report .rp-icon{font-size:13px;width:24px;height:24px;border-radius:6px;background:#f0f4ff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sd-ai-report .rp-t{font-weight:700;font-size:12px;color:#1d1d1f}
.sd-ai-report .rp-tag{font-size:10px;margin-left:auto;padding:1px 8px;border-radius:6px;background:#f5f5f7;color:#8e8e93;font-weight:500;flex-shrink:0}
.sd-ai-report .rp-tag.bear{background:#fff0f0;color:#e60012}
.sd-ai-report .rp-tag.div{background:#fff8e1;color:#b8860b}
.sd-ai-report .rp-tag.loss{background:#fff0f0;color:#e60012}
.sd-ai-report .rp-body{font-size:12px;line-height:1.8;color:#515154;flex:1}
.sd-ai-report .rp-body .hl{color:#0066ff;font-weight:600}
.sd-ai-report .rp-body .warn{color:#b8860b}
.sd-ai-report .rp-body .danger{color:#e60012}
.sd-ai-report .rp-body .good{color:#00a854}
.sd-ai-verdict{background:#fff;border-radius:14px;padding:18px;margin-bottom:12px;border:1px solid #e5e5ea;border-left:3px solid;box-shadow:0 1px 3px rgba(0,0,0,0.03)}
.sd-ai-verdict.hold{border-left-color:#b8860b}
.sd-ai-verdict .vd-hdr{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.sd-ai-verdict .vd-hdr .vd-icon{font-size:18px}
.sd-ai-verdict .vd-hdr .vd-verdict{font-weight:700;font-size:15px;color:#1d1d1f}
.sd-ai-verdict .vd-hdr .vd-conf{font-size:11px;padding:2px 8px;border-radius:6px;margin-left:auto;color:#b8860b;background:#fff8e1;font-weight:500}
.sd-ai-verdict .vd-body{font-size:13px;line-height:1.8;color:#515154}
.sd-ai-verdict .vd-body strong{color:#1d1d1f}
.sd-ai-plan{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.sd-ai-plan .vd-step{background:#f8f8fa;border-radius:8px;padding:10px;text-align:center;border:1px solid #e5e5ea}
.sd-ai-plan .vd-step .snum{font-size:10px;color:#8e8e93;margin-bottom:2px;font-weight:500}
.sd-ai-plan .vd-step .sact{font-size:12px;font-weight:700;color:#1d1d1f}
.sd-ai-plan .vd-step .stri{font-size:10px;color:#8e8e93;margin-top:2px}
.sd-ai-pos{background:#fff;border-radius:12px;padding:12px 18px;margin-bottom:14px;border:1px solid #e5e5ea;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,0.03)}
.sd-ai-pos .pb-left{display:flex;gap:16px;align-items:center}
.sd-ai-pos .pb-item{text-align:center}
.sd-ai-pos .pb-item .l{font-size:10px;color:#8e8e93}
.sd-ai-pos .pb-item .v{font-size:16px;font-weight:700;color:#1d1d1f;font-family:'SF Mono','Courier New',monospace}
.sd-ai-pos .pb-item .v.up{color:#e60012}.sd-ai-pos .pb-item .v.down{color:#00a854}
.sd-ai-pos .pb-tag{font-size:12px;padding:4px 16px;border-radius:8px;font-weight:500}
.sd-ai-pos .pb-tag.hold{background:#fff8e1;color:#b8860b;border:1px solid #ffe082}
@media(max-width:640px){
  .sd-ai-kpi{grid-template-columns:repeat(3,1fr)}
  .sd-ai-grid-2{grid-template-columns:1fr}
  .sd-ai-plan{grid-template-columns:repeat(2,1fr)}
  .sd-ai-hero{flex-direction:column;gap:12px}
  .sd-ai-pos{flex-direction:column;gap:10px}
}

/* ===== 个股卡片 - 新设计 ===== */
.stock-card{background:#ffffff;border-radius:12px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,0.04),0 4px 12px rgba(0,0,0,0.03);border:1px solid transparent;transition:all 0.25s}
.stock-card:hover{border-color:rgba(200,169,81,0.25);transform:translateY(-2px)}
.card{background:#ffffff;border-radius:10px;padding:16px 20px;border:1px solid #eee;transition:all 0.2s}
.card.danger{border-left:4px solid #e60012}
.card.warn{border-left:4px solid #ff9800}
.card.ok{border-left:4px solid #4caf50}
.card-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.card-hdr .left{display:flex;align-items:center;gap:8px}
.card-hdr .name{font-size:17px;font-weight:700;color:#1d1d1f}
.card-hdr .code{font-size:13px;color:#8e8e93;margin-top:1px}
.tag-sm{display:inline-block;font-size:11px;padding:2px 8px;border-radius:8px;font-weight:600}
.tag-sm.red{background:#fff0f0;color:#c62828;border:1px solid #ffe0e0}
.tag-sm.blue{background:#f0f0f2;color:#555;border:1px solid #e5e5ea}
.card-pnl{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f2;margin-bottom:8px}
.mpnl{font-family:'Courier New',monospace;font-size:28px;font-weight:700;letter-spacing:-1px}
.mpnl.red{color:#e60012}
.mpnl.blue{color:#0066ff}
.mpct{font-family:'Courier New',monospace;font-size:14px;font-weight:600}
.mpct.red{color:#ff6b6b}
.mpct.blue{color:#0066ff}
.card-info{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;padding-bottom:10px;border-bottom:1px solid #f0f0f2}
.ci-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:14px}
.ci-lbl{color:#8e8e93}
.ci-val{font-weight:700;color:#1d1d1f;font-family:'Courier New',monospace;font-size:13px}
.ci-val.red{color:#e60012}
.ci-val.blue{color:#0066ff}
.ci-val.stop-range{color:#e60012}
.ci-val.target-range{color:#1a1a3e}
.card-risk{padding:8px 0 6px;font-size:13px;line-height:1.6}
.card-risk .danger{color:#e60012}
.card-risk .warn{color:#e65100}
.card-risk .ok{color:#4caf50}

/* ===== 个股卡片-交易折叠 ===== */
.card-trade-hdr{
  display:flex;align-items:center;gap:6px;padding:8px 0;margin-top:2px;
  cursor:pointer;font-size:13px;color:#8e8e93;border-top:1px solid #f0f0f2;
  transition:color 0.2s;user-select:none;
}
.card-trade-hdr:hover{color:#1a1a3e}
.card-trade-hdr.open{color:#1a1a3e}
.ct-icon{font-size:10px;transition:transform 0.2s}
.ct-text{font-weight:600}
.ct-count{margin-left:auto;font-size:12px;color:#c7c7cc;background:#f5f5f7;padding:1px 8px;border-radius:8px}
.card-trade-body{display:none;padding:4px 0 8px;font-size:13px}
.ct-loading{color:#c7c7cc;text-align:center;padding:8px 0}
.ct-empty{text-align:center;padding:12px 0;color:#c7c7cc;font-size:14px}
.ct-list{}
.ct-item{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid #f5f5f7;font-size:13px}
.ct-item:last-child{border:none}
.ct-date{color:#8e8e93;min-width:40px}
.ct-dir{font-weight:600;min-width:28px;font-size:12px;padding:1px 6px;border-radius:4px;text-align:center}
.ct-dir.buy{background:#fff0f0;color:#c62828}
.ct-dir.sell{background:#f0faf4;color:#2e7d32}
.ct-qty{color:#1d1d1f;min-width:35px;text-align:right}
.ct-price{color:#1d1d1f;min-width:50px;font-family:'Courier New',monospace;text-align:right}
.ct-pnl-col{min-width:50px;text-align:right}
.ct-pnl{font-family:'Courier New',monospace;font-weight:600}
.ct-pnl.up{color:#e60012}
.ct-pnl.down{color:#00a854}
.ct-summary{display:flex;gap:8px;padding:6px 0 2px;font-size:12px;border-top:1px solid #f0f0f2;margin-top:4px;flex-wrap:wrap}
.cts-label{color:#8e8e93;margin-left:8px}
.cts-label:first-child{margin-left:0}
.cts-val{font-weight:600;color:#1d1d1f}
.cts-val.buy{color:#e60012}
.cts-val.sell{color:#00a854}
.cts-val.up{color:#e60012}
.cts-val.down{color:#00a854}

.card-foot{text-align:center;margin-top:4px;padding-top:8px;border-top:1px solid #f0f0f2}
.cf-link{font-size:13px;color:#8e8e93;cursor:pointer}
.cf-link:hover{color:#1a1a3e}

@media(max-width:640px){  .stocks-grid,.data-grid{grid-template-columns:1fr}  .wrap{padding:12px}  .acct-row{flex-direction:column;align-items:flex-start;gap:16px}  .acct-amount{font-size:32px}  .acct-extra{flex-wrap:wrap;gap:12px}}
.empty-state{text-align:center;padding:40px 0;color:#8e8e93;font-size:13px}
.page-sub{font-size:14px;color:#8e8e93;font-weight:400;margin-left:4px}
.back-btn{cursor:pointer;font-size:13px;color:#8e8e93;padding:4px 12px;border-radius:16px;background:#f5f5f7;border:1px solid #e5e5ea;transition:all 0.2s}
.back-btn:hover{color:#1a1a3e;border-color:#c8a951}

