
:root{
  --bg:#f7f8fb;--card:#fff;--line:#e4e7ee;--text:#1f2937;--muted:#6b7280;
  --blue:#2563eb;--green:#15803d;--amber:#a16207;--red:#b91c1c;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif
}
main{max-width:760px;margin:auto;padding:48px 18px 72px}
h1{font-size:30px;margin:0 0 8px}
.subtitle{color:var(--muted);line-height:1.65;margin:0 0 24px}
.only{
  display:inline-block;margin-bottom:18px;padding:6px 10px;border-radius:999px;
  color:#8a5a00;background:#fff8e6;border:1px solid #f2dfaa;
  font-size:13px;font-weight:800
}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;
  box-shadow:0 8px 24px rgba(17,24,39,.05);margin-bottom:14px
}
.search{display:grid;grid-template-columns:1fr auto;gap:10px}
input,button{font:inherit;border-radius:10px}
input{
  width:100%;padding:13px 14px;border:1px solid #d8dde7;background:#fff;
  color:var(--text);font-size:18px;outline:none
}
input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.08)}
input:disabled{background:#f3f4f6;color:#9ca3af}
button{border:0;background:var(--blue);color:#fff;font-weight:800;padding:0 20px;cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
label{display:block;color:var(--muted);font-size:13px;margin-bottom:7px}
.meta,.note{font-size:13px;color:var(--muted);line-height:1.7}
.status{
  margin-top:14px;padding:13px 14px;border:1px solid var(--line);
  background:#f8fafc;border-radius:11px;font-size:13px;color:var(--muted);line-height:1.65
}
.result{text-align:center;padding:30px 18px}
.good{color:#dc2626 !important;}.warn{color:var(--amber)}.danger{color:var(--red)}.blue{color:var(--blue)}
.mini{background:#fafbfc;border:1px solid var(--line);border-radius:12px;padding:18px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}
.mini .v{font-size:19px;font-weight:800}
.rule{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.rule:last-child{border-bottom:0}
.rule span:last-child{text-align:right;font-weight:800}
.manual-card{border:2px solid #dbeafe}
.market-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);
  gap:12px;
  align-items:end;
}
.market-field{min-width:0}
.market-vxn-box{
  min-height:52px;
  border:1px solid #d8dde7;
  border-radius:10px;
  background:#f8fbff;
  padding:9px 12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.market-vxn-value{
  font-size:20px;
  line-height:1.1;
  font-weight:900;
  color:#1f2937;
}
.market-vxn-date{
  margin-top:4px;
  font-size:11px;
  color:#9ca3af;
  font-weight:700;
}
.price-help{font-size:12px;color:var(--muted);line-height:1.6}
@media(max-width:620px){
  .market-row{grid-template-columns:1fr}
}
.advice{
  display:none;border:2px solid #bfdbfe;background:#eff6ff;
  border-radius:16px;padding:24px;margin-bottom:14px
}
.advice.show{display:block}
.advice-kicker{font-size:13px;font-weight:900;color:var(--blue);margin-bottom:7px}
.advice-title{font-size:28px;font-weight:900;line-height:1.3;margin-bottom:9px}
.advice-detail{font-size:14px;line-height:1.75;color:#4b5563}
.advice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.advice-grid .mini{background:#fff}
.rebreak-warning{
  display:none;
  margin-top:16px;
  padding:14px 16px;
  border-radius:12px;
  background:#fff7ed;
  border:1px solid #fdba74;
  color:#9a3412;
  text-align:left;
  line-height:1.7;
  font-size:14px;
}
.rebreak-warning.show{display:block}
.rebreak-warning strong{display:block;font-size:15px;margin-bottom:3px}
@media(max-width:620px){
  .search{grid-template-columns:1fr}
  button{padding:13px}
  .stats,.advice-grid{grid-template-columns:1fr}
}

.tabs{display:flex;gap:8px;margin-bottom:26px;padding:5px;background:#eef1f6;border-radius:13px}
.tab-btn{flex:1;border:0;padding:11px 14px;border-radius:9px;background:transparent;color:#6b7280;font-weight:800;cursor:pointer}
.tab-btn.active{background:#fff;color:#1f2937;box-shadow:0 2px 8px rgba(17,24,39,.08)}
.tab-page{display:none}.tab-page.active{display:block}
.fund-tag{display:inline-block;margin-bottom:18px;padding:6px 10px;border-radius:999px;color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;font-size:13px;font-weight:800}
.dual-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.action-row{display:flex;gap:10px;margin-top:12px}
.secondary-btn{background:#fff;color:#374151;border:1px solid #d8dde7;padding:11px 16px}
.danger-btn{background:#fff;color:#b91c1c;border:1px solid #fecaca;padding:11px 16px}
.fund-advice{display:none;border:2px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:24px;margin-bottom:14px}
.fund-advice.show{display:block}
.pending-note{margin-top:14px;padding:12px 14px;border-radius:11px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;font-size:13px;line-height:1.7}
.bt-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.bt-summary .mini{background:#fff}
@media(max-width:620px){.dual-inputs,.bt-summary{grid-template-columns:1fr}.action-row{flex-direction:column}}


.state-help{
  margin-top:7px;
  color:#8a94a6;
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}


.auto-value{
  margin-top:6px;
  font-size:30px;
  line-height:1.2;
  font-weight:900;
  color:#1f2937;
}


.metric-date{
  margin-top:4px;
  font-size:11px;
  line-height:1.4;
  color:#9ca3af;
  font-weight:700;
}


.picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.picker-label{font-size:14px;font-weight:900;color:#374151}
.picker-sub{margin-top:3px;font-size:12px;color:#9ca3af}
.picker-meta{margin-top:12px}
.compact-status{
  margin-top:10px;
  padding:10px 12px;
  background:#fafafa;
}
#fundPage .fund-rule-condition-label .rule-days{
  margin-top:0;
  margin-left:7px;
  vertical-align:middle;
}

/* ===== 波段交易首頁 ===== */
#swingPage{
  --swing-soft:#eef8ff;
  --swing-soft-2:#e1f3ff;
  --swing-border:#b8dcf3;
  --swing-border-strong:#63a9d4;
  --swing-text:#155e75;
  --swing-strong:#0c4a6e;
  --swing-green:#047857;
  --swing-orange:#c2410c;
  --swing-blue:#0369a1;
}
#swingPage .swing-tag{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  background:var(--swing-soft);
  border:1px solid var(--swing-border);
  color:var(--swing-strong);
  font-size:12px;
  font-weight:900;
  margin-bottom:10px;
}
#swingPage .swing-picker{
  border-color:var(--swing-border);
}
#swingPage .swing-ticker-segment{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
#swingPage .swing-ticker-btn{
  appearance:none;
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:14px;
  padding:12px 14px;
  cursor:pointer;
  text-align:left;
  transition:.15s ease;
}
#swingPage .swing-ticker-btn.active{
  background:var(--swing-soft);
  border-color:var(--swing-border-strong);
  box-shadow:0 0 0 2px rgba(3,105,161,.08);
}
#swingPage .swing-ticker-code{
  display:block;
  font-size:16px;
  font-weight:900;
  color:#111827;
}
#swingPage .swing-ticker-name{
  display:block;
  margin-top:3px;
  font-size:12px;
  color:#6b7280;
  font-weight:700;
}
#swingPage .swing-signal{
  margin-top:14px;
  border:1px solid var(--swing-border-strong);
  background:linear-gradient(180deg,#f8fcff 0%,var(--swing-soft) 100%);
  border-radius:18px;
  padding:18px;
}
#swingPage .swing-signal-kicker{
  color:var(--swing-blue);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
}
#swingPage .swing-signal-title{
  font-size:28px;
  line-height:1.2;
  font-weight:950;
  color:#111827;
  margin-top:5px;
}
#swingPage .swing-signal-detail{
  margin-top:8px;
  color:#4b5563;
  font-size:14px;
  line-height:1.7;
}
#swingPage .swing-signal.bigbuy .swing-signal-title{color:#1d4ed8}
#swingPage .swing-signal.buy .swing-signal-title{color:var(--swing-blue)}
#swingPage .swing-signal.sell .swing-signal-title{color:var(--swing-orange)}
#swingPage .swing-signal.bigsell .swing-signal-title{color:#b91c1c}
#swingPage .swing-signal.hold .swing-signal-title{color:var(--swing-green)}
#swingPage .swing-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
#swingPage .swing-mini{
  background:#fff;
  border:1px solid var(--swing-border);
  border-radius:13px;
  padding:11px 12px;
}
#swingPage .swing-mini label{
  display:block;
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  margin-bottom:5px;
}
#swingPage .swing-mini .v{
  color:#111827;
  font-size:16px;
  font-weight:950;
}
#swingPage .swing-rule-flow{
  display:grid;
  gap:10px;
  margin-top:12px;
}
#swingPage .swing-rule{
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:12px;
  align-items:center;
  border:1px solid var(--swing-border);
  border-radius:14px;
  background:#fff;
  padding:12px 14px;
}
#swingPage .swing-step{
  width:32px;
  height:32px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--swing-soft-2);
  border:1px solid var(--swing-border);
  color:var(--swing-strong);
  font-weight:950;
}
#swingPage .swing-rule strong{display:block;margin-bottom:3px}
#swingPage .swing-rule small{color:#6b7280;line-height:1.5}
#swingPage .swing-rule-action{
  font-weight:950;
  color:var(--swing-strong);
  text-align:right;
  white-space:nowrap;
}
#swingPage .swing-status{
  border-color:var(--swing-border);
  background:#f8fcff;
}
@media(max-width:700px){
  #swingPage .swing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #swingPage .swing-rule{grid-template-columns:38px 1fr}
  #swingPage .swing-rule-action{grid-column:2;text-align:left}
}



#swingPage .swing-grid-v3{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
#swingPage .swing-grid-v3 #swingAdviceSignal{
  font-size:22px;
}


#swingPage .swing-stage-forecast{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--swing-border);
  border-radius:14px;
  background:#fff;
}
#swingPage .swing-stage-forecast-title{
  font-size:13px;
  font-weight:950;
  color:#111827;
  margin-bottom:10px;
}
#swingPage .swing-stage-forecast-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
#swingPage .swing-stage-box{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:10px 11px;
  background:#f8fafc;
}
#swingPage .swing-stage-box label{
  display:block;
  color:#64748b;
  font-size:10px;
  font-weight:800;
  margin-bottom:5px;
}
#swingPage .swing-stage-box strong{
  display:block;
  color:#111827;
  font-size:18px;
  font-weight:950;
}
#swingPage .swing-stage-box small{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:11px;
  line-height:1.4;
}
#swingPage .swing-stage-box.bullish strong{color:#0369a1}
#swingPage .swing-stage-box.bullish-strong strong{color:#1d4ed8}
#swingPage .swing-stage-box.bearish strong{color:#c2410c}
#swingPage .swing-stage-box.bearish-strong strong{color:#b91c1c}
#swingPage .swing-stage-forecast-note{
  margin-top:9px;
  color:#94a3b8;
  font-size:10px;
  line-height:1.5;
}
@media(max-width:700px){
  #swingPage .swing-stage-forecast-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* ===== 波段警戒與 2026 交易紀錄 ===== */
#swingPage .swing-signal.warn{
  border-color:#f59e0b;
  background:linear-gradient(180deg,#fffdf5 0%,#fff7e6 100%);
}
#swingPage .swing-signal.warn .swing-signal-title{color:#b45309}

#swingPage .swing-recent-list{
  margin-top:12px;
  overflow-x:auto;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#fff;
}
#swingPage .swing-trade-table{
  width:100%;
  border-collapse:collapse;
  min-width:520px;
}
#swingPage .swing-trade-table th,
#swingPage .swing-trade-table td{
  padding:11px 12px;
  border-bottom:1px solid #e5e7eb;
  text-align:left;
  vertical-align:middle;
  font-size:12px;
}
#swingPage .swing-trade-table th{
  background:#f8fafc;
  color:#64748b;
  font-weight:900;
  white-space:nowrap;
}
#swingPage .swing-trade-table tbody tr:last-child td{
  border-bottom:0;
}
#swingPage .swing-trade-date{
  font-weight:900;
  color:#374151;
  white-space:nowrap;
}
#swingPage .swing-trade-action{
  font-weight:950;
  white-space:nowrap;
}
#swingPage .swing-trade-action.buy{color:#0369a1}
#swingPage .swing-trade-action.sell{color:#c2410c}
#swingPage .swing-trade-action.hold{color:#047857}
#swingPage .swing-trade-alloc{
  font-weight:900;
  color:#111827;
  white-space:nowrap;
}
#swingPage .swing-trade-return{
  font-weight:950;
  white-space:nowrap;
}
#swingPage .swing-trade-reason{
  color:#6b7280;
  line-height:1.45;
}
#swingPage .swing-confidence-note{
  margin-top:10px;
  font-size:12px;
  color:#6b7280;
  line-height:1.6;
}
@media(max-width:700px){
  #swingPage .swing-recent-list{
    margin-left:-2px;
    margin-right:-2px;
  }
}

/* ===== 波段績效回測 ===== */
#swingPage .swing-backtest{
  margin-top:12px;
  display:grid;
  gap:10px;
}
#swingPage .swing-backtest-row{
  display:grid;
  grid-template-columns:120px 1fr 1fr;
  gap:12px;
  align-items:stretch;
}
#swingPage .swing-backtest-period{
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:13px;
  background:var(--swing-soft);
  border:1px solid var(--swing-border);
  color:var(--swing-strong);
  font-size:13px;
  font-weight:950;
  text-align:center;
  padding:10px;
}
#swingPage .swing-backtest-cell{
  border:1px solid #e5e7eb;
  border-radius:13px;
  background:#fff;
  padding:11px 12px;
}
#swingPage .swing-backtest-label{
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  margin-bottom:6px;
}
#swingPage .swing-backtest-pair{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  font-size:13px;
}
#swingPage .swing-backtest-pair strong{font-weight:950}
#swingPage .swing-backtest-win{color:#dc2626}
@media(max-width:700px){
  #swingPage .swing-backtest-row{grid-template-columns:1fr}
  #swingPage .swing-backtest-period{justify-content:flex-start}
}


#swingPage .swing-price-input{
  width:100%;
  margin-top:5px;
  padding:8px 10px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  color:#111827;
  font:inherit;
  font-size:18px;
  font-weight:950;
  line-height:1.2;
  outline:none;
  box-sizing:border-box;
}
#swingPage .swing-price-input:focus{
  border-color:#60a5fa;
  box-shadow:0 0 0 3px rgba(96,165,250,.14);
}

#swingPage .swing-money-input{
  width:100%;
  margin-top:5px;
  padding:8px 10px;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  color:#111827;
  font:inherit;
  font-size:16px;
  font-weight:900;
  line-height:1.2;
  outline:none;
  box-sizing:border-box;
}
#swingPage .swing-money-input:focus{
  border-color:#60a5fa;
  box-shadow:0 0 0 3px rgba(96,165,250,.14);
}

#swingPage .swing-capital-note{
  margin-top:10px;
  padding:9px 11px;
  border-radius:10px;
  background:#f8fafc;
  color:#64748b;
  font-size:11px;
  line-height:1.55;
  border:1px solid #e5e7eb;
}

/* ===== 今日波段訊號燈號說明 ===== */
#swingPage .swing-legend{
  margin-top:14px;
  padding-top:13px;
  border-top:1px dashed #cbd5e1;
}
#swingPage .swing-legend-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
#swingPage .swing-legend-item{
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  padding:9px 10px;
}
#swingPage .swing-legend-head{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  font-weight:950;
  color:#111827;
}
#swingPage .swing-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  flex:0 0 auto;
}
#swingPage .swing-dot.bigbuy{background:#1d4ed8}
#swingPage .swing-dot.green{background:#10b981}
#swingPage .swing-dot.orange{background:#f59e0b}
#swingPage .swing-dot.red{background:#ef4444}
#swingPage .swing-dot.blue{background:#0ea5e9}
@media(max-width:700px){
  #swingPage .swing-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ===== 策略版本資訊 ===== */
.strategy-footer{
  margin:24px 0 8px;
  padding:12px 14px;
  text-align:center;
  font-size:12px;
  font-weight:800;
  color:#64748b;
  border-top:1px solid #e5e7eb;
}


/* 2026 策略建議訊號：卡片式時間軸 */
.swing-signal-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
.swing-signal-summary-box{
  border:1px solid var(--line,#e5e7eb);
  border-radius:12px;
  padding:12px 14px;
  background:rgba(255,255,255,.55);
}
.swing-signal-summary-box small{
  display:block;
  color:#6b7280;
  margin-bottom:4px;
}
.swing-signal-summary-box strong{
  display:block;
  font-size:15px;
}
.swing-event-list{
  display:grid;
  gap:10px;
}
.swing-event-card{
  border:1px solid var(--line,#e5e7eb);
  border-radius:14px;
  padding:14px;
  background:rgba(255,255,255,.62);
}
.swing-event-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.swing-event-date{
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
.swing-event-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.swing-event-badge.buy{background:#eaf3ff;color:#2563eb}
.swing-event-badge.sell{background:#fff1eb;color:#c2410c}
.swing-event-badge.bigbuy{background:#e9f8ef;color:#15803d}
.swing-event-badge.bigsell{background:#feecec;color:#b91c1c}
.swing-event-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
}
.swing-event-panel{
  min-width:0;
}
.swing-event-label{
  font-size:12px;
  font-weight:800;
  color:#6b7280;
  margin-bottom:4px;
}
.swing-event-reason{
  font-size:14px;
  line-height:1.55;
}
.swing-demo-action{
  font-size:14px;
  font-weight:800;
  line-height:1.5;
}
.swing-demo-meta{
  margin-top:6px;
  font-size:12px;
  color:#6b7280;
  line-height:1.5;
}
.swing-balance-row{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:8px;
}
.swing-balance-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 8px;
  border-radius:999px;
  background:#f3f4f6;
  font-size:12px;
  font-weight:800;
}
.swing-event-latest{
  border-width:2px;
}
@media (max-width:680px){
  .swing-signal-summary,
  .swing-event-grid{
    grid-template-columns:1fr;
  }
  .swing-event-head{
    align-items:flex-start;
  }
}


/* 績效回測：摘要卡＋雙欄比較 */
.swing-backtest-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:12px 0 14px;
}
.swing-backtest-overview-card{
  border:1px solid var(--line,#e5e7eb);
  border-radius:14px;
  padding:13px 14px;
  background:rgba(255,255,255,.62);
}
.swing-backtest-overview-card small{
  display:block;
  color:#6b7280;
  margin-bottom:5px;
  font-weight:700;
}
.swing-backtest-overview-card strong{
  display:block;
  font-size:16px;
}
.swing-backtest-compare{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.swing-backtest-card{
  border:1px solid var(--line,#e5e7eb);
  border-radius:16px;
  padding:15px;
  background:rgba(255,255,255,.66);
}
.swing-backtest-card.strategy{
  border-width:2px;
}
.swing-backtest-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.swing-backtest-card-title{
  font-weight:900;
  font-size:15px;
}
.swing-backtest-card-sub{
  margin-top:3px;
  color:#6b7280;
  font-size:12px;
  line-height:1.45;
}
.swing-backtest-tag{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 8px;
  background:#f3f4f6;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.swing-backtest-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.swing-backtest-metric{
  border-radius:12px;
  background:#f8fafc;
  padding:10px;
  min-width:0;
}
.swing-backtest-metric span{
  display:block;
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  margin-bottom:4px;
}
.swing-backtest-metric strong{
  display:block;
  font-size:15px;
  word-break:keep-all;
}
.swing-backtest-vs{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--line,#e5e7eb);
  font-size:12px;
  color:#6b7280;
  line-height:1.55;
}
.swing-backtest-highlight{
  font-weight:900;
}
@media (max-width:760px){
  .swing-backtest-overview,
  .swing-backtest-compare{
    grid-template-columns:1fr;
  }
  .swing-backtest-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:480px){
  .swing-backtest-metrics{
    grid-template-columns:1fr;
  }
}



/* ===== 安聯 v3.0：比照正二的階段色彩與閱讀層級 ===== */
#fundPage{
  --fund-blue:#0369a1;
  --fund-blue-strong:#1d4ed8;
  --fund-green:#15803d;
  --fund-orange:#c2410c;
  --fund-red:#b91c1c;
  --fund-border:#dbe4ee;
}
#fundPage .fund-signal{
  margin-top:14px;
  border:1px solid #bfdbfe;
  background:linear-gradient(180deg,#f8fcff 0%,#eff6ff 100%);
  border-radius:18px;
  padding:18px;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
#fundPage .fund-signal-kicker{color:#0369a1;font-size:12px;font-weight:900;letter-spacing:.04em}
#fundPage .fund-signal-title{font-size:28px;line-height:1.2;font-weight:950;margin-top:5px;color:#111827}
#fundPage .fund-signal-detail{margin-top:8px;color:#4b5563;font-size:14px;line-height:1.7}
#fundPage .fund-signal.bigbuy{border-color:#93c5fd;background:linear-gradient(180deg,#f8fbff 0%,#eff6ff 100%)}
#fundPage .fund-signal.bigbuy .fund-signal-title{color:var(--fund-blue-strong)}
#fundPage .fund-signal.buy{border-color:#bae6fd;background:linear-gradient(180deg,#fbfdff 0%,#f0f9ff 100%)}
#fundPage .fund-signal.buy .fund-signal-title{color:var(--fund-blue)}
#fundPage .fund-signal.hold{border-color:#bbf7d0;background:linear-gradient(180deg,#fbfffc 0%,#f0fdf4 100%)}
#fundPage .fund-signal.hold .fund-signal-title{color:var(--fund-green)}
#fundPage .fund-signal.sell{border-color:#fed7aa;background:linear-gradient(180deg,#fffdfa 0%,#fff7ed 100%)}
#fundPage .fund-signal.sell .fund-signal-title{color:var(--fund-orange)}
#fundPage .fund-signal.bigsell{border-color:#fecaca;background:linear-gradient(180deg,#fffafa 0%,#fef2f2 100%)}
#fundPage .fund-signal.bigsell .fund-signal-title{color:var(--fund-red)}
#fundPage .fund-signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
#fundPage .fund-signal-mini{background:#fff;border:1px solid #e5e7eb;border-radius:13px;padding:11px 12px}
#fundPage .fund-signal-mini label{display:block;color:#6b7280;font-size:11px;font-weight:800;margin-bottom:5px}
#fundPage .fund-signal-mini .v{font-size:20px;font-weight:950;color:#111827}
#fundPage .fund-stage-forecast{margin-top:14px;padding:14px;border:1px solid var(--fund-border);border-radius:14px;background:#fff}
#fundPage .fund-stage-forecast-title{font-size:13px;font-weight:950;color:#111827;margin-bottom:10px}
#fundPage .fund-stage-forecast-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#fundPage .fund-stage-box{border:1px solid #e5e7eb;border-radius:12px;padding:10px 11px;background:#f8fafc}
#fundPage .fund-stage-box label{display:block;color:#64748b;font-size:10px;font-weight:800;margin-bottom:5px}
#fundPage .fund-stage-box strong{display:block;color:#111827;font-size:18px;font-weight:950}
#fundPage .fund-stage-box small{display:block;margin-top:4px;color:#64748b;font-size:11px;line-height:1.4}
#fundPage .fund-stage-box.bullish{background:#f0f9ff;border-color:#bae6fd}
#fundPage .fund-stage-box.bullish strong{color:var(--fund-blue)}
#fundPage .fund-stage-box.bullish-strong{background:#eff6ff;border-color:#bfdbfe}
#fundPage .fund-stage-box.bullish-strong strong{color:var(--fund-blue-strong)}
#fundPage .fund-stage-box.bearish{background:#fff7ed;border-color:#fed7aa}
#fundPage .fund-stage-box.bearish strong{color:var(--fund-orange)}
#fundPage .fund-stage-box.bearish-strong{background:#fef2f2;border-color:#fecaca}
#fundPage .fund-stage-box.bearish-strong strong{color:var(--fund-red)}
#fundPage .fund-stage-forecast-note{margin-top:9px;color:#94a3b8;font-size:10px;line-height:1.5}
#fundPage .fund-legend{margin-top:14px}
#fundPage .fund-legend-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#fundPage .fund-legend-item{background:#fff;border:1px solid #e5e7eb;border-radius:11px;padding:9px 10px}
#fundPage .fund-legend-head{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:900;color:#374151;white-space:nowrap}
#fundPage .fund-dot{width:9px;height:9px;border-radius:999px;flex:0 0 auto}
#fundPage .fund-dot.bigbuy{background:#1d4ed8}
#fundPage .fund-dot.blue{background:#38bdf8}
#fundPage .fund-dot.green{background:#22c55e}
#fundPage .fund-dot.orange{background:#f97316}
#fundPage .fund-dot.red{background:#dc2626}
#fundPage .fund-rule-flow{gap:9px}
#fundPage .fund-rule-card{position:relative;overflow:hidden}
#fundPage .fund-rule-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#cbd5e1}
#fundPage .fund-rule-card.stage-bigbuy:before{background:#1d4ed8}
#fundPage .fund-rule-card.stage-buy:before{background:#38bdf8}
#fundPage .fund-rule-card.stage-hold:before{background:#22c55e}
#fundPage .fund-rule-card.stage-sell:before{background:#f97316}
#fundPage .fund-rule-card.stage-bigsell:before{background:#dc2626}
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-card-title{color:#1d4ed8}
#fundPage .fund-rule-card.stage-buy .fund-rule-card-title{color:#0369a1}
#fundPage .fund-rule-card.stage-hold .fund-rule-card-title{color:#15803d}
#fundPage .fund-rule-card.stage-sell .fund-rule-card-title{color:#c2410c}
#fundPage .fund-rule-card.stage-bigsell .fund-rule-card-title{color:#b91c1c}
@media(max-width:700px){
  #fundPage .fund-stage-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #fundPage .fund-legend-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #fundPage .fund-signal-grid{grid-template-columns:1fr}
}



  #fundPage .stats{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  #fundPage .stats .mini[style*="grid-column"]{grid-column:1 / -1}
  #fundPage .fund-pair-left{grid-column:1}
  #fundPage .fund-pair-right{grid-column:2}
  #fundPage .fund-condition-left{grid-column:1}
  #fundPage .fund-condition-right{grid-column:2}
  @media (max-width:700px){
    #fundPage .stats{grid-template-columns:1fr}
    #fundPage .stats .mini,
    #fundPage .fund-pair-left,
    #fundPage .fund-pair-right,
    #fundPage .fund-condition-left,
    #fundPage .fund-condition-right{grid-column:1}
  }


  #fundPage .dual-inputs{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
  }
  @media (max-width:760px){
    #fundPage .dual-inputs{grid-template-columns:1fr}
  }


  #fundPage #fundAutoNavDate,
  #fundPage #fundAutoVxnDate{
    line-height:1.45;
  }


  #fundPage .fund-advice{
    padding:28px;
  }

  #fundPage .fund-advice-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:22px;
    align-items:stretch;
  }

  #fundPage .fund-advice.has-ceiling .fund-advice-layout{
    grid-template-columns:minmax(0,1.7fr) minmax(220px,.8fr);
  }

  #fundPage .fund-advice-main{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  #fundPage .fund-ceiling-card{
    margin:0;
    padding:20px 22px;
    border-radius:14px;
    background:#ffffff;
    border:1px solid #bfdbfe;
    box-shadow:0 4px 14px rgba(37,99,235,.06);
    align-self:stretch;
  }

  #fundPage .fund-ceiling-label{
    color:#64748b;
    font-size:12px;
    line-height:1.5;
    font-weight:800;
    letter-spacing:.02em;
  }

  #fundPage .fund-ceiling-value{
    margin-top:8px;
    color:#2563eb;
    font-size:30px;
    line-height:1.15;
    font-weight:900;
  }

  #fundPage .fund-ceiling-note{
    margin-top:7px;
    color:#94a3b8;
    font-size:11px;
    line-height:1.5;
    font-weight:700;
  }

  @media(max-width:700px){
    #fundPage .fund-advice.has-ceiling .fund-advice-layout{
      grid-template-columns:1fr;
    }
    #fundPage .fund-ceiling-card{
      padding:16px 18px;
    }
    #fundPage .fund-ceiling-value{
      font-size:26px;
    }
  }


  #fundPage .annual-summary-head{
    display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px
  }
  #fundPage .annual-summary-sub{
    margin-top:5px;color:#8a94a6;font-size:12px;line-height:1.5
  }
  #fundPage .annual-table{
    border:1px solid #e4e7ee;border-radius:14px;overflow:hidden;background:#fff
  }
  #fundPage .annual-row{
    display:grid;grid-template-columns:88px 1fr 1fr;align-items:stretch;border-bottom:1px solid #e4e7ee
  }
  #fundPage .annual-row:last-child{border-bottom:0}
  #fundPage .annual-year{
    display:flex;align-items:center;justify-content:center;padding:16px 10px;background:#f8fafc;
    color:#374151;font-size:13px;font-weight:900
  }
  #fundPage .annual-cell{
    padding:14px 16px;border-left:1px solid #e4e7ee
  }
  #fundPage .annual-metric-label{
    margin-bottom:7px;color:#8a94a6;font-size:11px;font-weight:800
  }
  #fundPage .annual-pair{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;color:#64748b;font-size:12px
  }
  #fundPage .annual-pair span{display:flex;flex-direction:column;gap:3px}
  #fundPage .annual-pair strong{color:#1f2937;font-size:16px;font-weight:900}
  #fundPage .annual-pair strong.annual-win{color:#dc2626}
  @media(max-width:700px){
    #fundPage .annual-row{grid-template-columns:72px 1fr}
    #fundPage .annual-cell:last-child{grid-column:2;border-top:1px solid #eef1f5}
  }


/* v50：安聯台灣科技 120% 雙確認版 */
#fundPage .fund-ma-card{border:2px solid #dbeafe}
#fundPage .fund-market-row{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(150px,.75fr) minmax(150px,.75fr);
  gap:14px;
  align-items:stretch;
}
#fundPage .fund-market-field{display:flex;flex-direction:column;min-width:0}
#fundPage .fund-market-field>label{
  min-height:22px;display:flex;align-items:flex-end;margin-bottom:8px
}
#fundPage #fundManualNav,
#fundPage .fund-indicator-box{
  height:64px;min-height:64px;border-radius:12px
}
#fundPage #fundManualNav{padding:0 16px;font-size:20px}
#fundPage .fund-indicator-box{
  border:1px solid #d8dde7;background:#f8fbff;padding:9px 14px;
  display:flex;flex-direction:column;justify-content:center
}
#fundPage .fund-indicator-value{font-size:21px;line-height:1.1;font-weight:900;color:#1f2937}
#fundPage .fund-indicator-sub{margin-top:5px;font-size:11px;line-height:1.2;color:#9ca3af;font-weight:700}
#fundPage .fund-refresh-row{margin-top:14px}
#fundPage .fund-strategy-badge{
  display:inline-block;margin-top:8px;padding:5px 9px;border-radius:999px;
  background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;font-size:12px;font-weight:900
}

#fundPage .fund-rule-note{display:none}
#fundPage .fund-rule-summary{
  margin-top:7px;
}
#fundPage .fund-rule-accent{
  color:#64748b;
  font-size:11px;
  font-weight:800;
}
#fundPage .fund-rule-flow{
  display:grid;
  gap:8px;
  margin-top:10px;
}
#fundPage .fund-rule-card{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  padding:9px 11px;
}
#fundPage .fund-rule-card-head{
  display:contents;
}
#fundPage .fund-rule-step{
  grid-column:1;
  grid-row:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  font-size:11px;
  font-weight:950;
  border:1px solid currentColor;
  background:#fff;
}
#fundPage .fund-rule-card-title{
  grid-column:2;
  grid-row:1;
  font-size:14px;
  font-weight:950;
  color:#1f2937;
  line-height:1.2;
}
#fundPage .fund-rule-row{
  display:contents;
}
#fundPage .fund-rule-row>div:first-child{
  grid-column:2;
  grid-row:2;
  min-width:0;
}
#fundPage .fund-rule-condition-label{
  display:none;
}
#fundPage .fund-rule-condition{
  font-size:11px;
  line-height:1.45;
  color:#6b7280;
}
#fundPage .fund-rule-action{
  grid-column:3;
  grid-row:1 / span 2;
  align-self:center;
  text-align:right;
  font-size:12px;
  font-weight:950;
  line-height:1.25;
  white-space:nowrap;
}
#fundPage .fund-rule-action small{
  display:none;
}

#fundPage .fund-rule-card .fund-rule-step,
#fundPage .fund-rule-card .fund-rule-action{
  color:#374151;
}
#fundPage .fund-rule-card{
  border-left:1px solid #e5e7eb;
}


#fundPage .annual-loading{padding:22px;text-align:center;color:#9ca3af;font-size:13px;font-weight:700}

@media(max-width:700px){
  #fundPage .fund-market-row{grid-template-columns:1fr}
  #fundPage .fund-market-field>label{min-height:auto}
  #fundPage .fund-rule-card{
    grid-template-columns:30px minmax(0,1fr);
    gap:8px;
    padding:9px 10px;
  }
  #fundPage .fund-rule-step{width:25px;height:25px}
  #fundPage .fund-rule-action{
    grid-column:2;
    grid-row:3;
    text-align:left;
    margin-top:2px;
  }
}

/* ===== 安聯 v3.0：2026 訊號紀錄＋績效卡 ===== */
#fundPage .swing-recent-list{
  margin-top:12px;
}
#fundPage .swing-backtest{
  margin-top:12px;
}
#fundPage .swing-event-card{
  border:1px solid #e5e7eb !important;
  border-left:1px solid #e5e7eb !important;
  background:#fff;
}




/* 安聯 v3.0：五階段規則改為單一中性色系 */
#fundPage .fund-rule-card,
#fundPage .fund-rule-card.stage-bigbuy,
#fundPage .fund-rule-card.stage-buy,
#fundPage .fund-rule-card.stage-hold,
#fundPage .fund-rule-card.stage-sell,
#fundPage .fund-rule-card.stage-bigsell{
  border:1px solid #e5e7eb !important;
  border-left:1px solid #e5e7eb !important;
  background:#fff !important;
}

#fundPage .fund-rule-card::before,
#fundPage .fund-rule-card.stage-bigbuy::before,
#fundPage .fund-rule-card.stage-buy::before,
#fundPage .fund-rule-card.stage-hold::before,
#fundPage .fund-rule-card.stage-sell::before,
#fundPage .fund-rule-card.stage-bigsell::before{
  display:none !important;
  content:none !important;
}

#fundPage .fund-rule-card-title,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-card-title,
#fundPage .fund-rule-card.stage-buy .fund-rule-card-title,
#fundPage .fund-rule-card.stage-hold .fund-rule-card-title,
#fundPage .fund-rule-card.stage-sell .fund-rule-card-title,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-card-title{
  color:#1f2937 !important;
}

#fundPage .fund-rule-step,
#fundPage .fund-rule-action,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-step,
#fundPage .fund-rule-card.stage-buy .fund-rule-step,
#fundPage .fund-rule-card.stage-hold .fund-rule-step,
#fundPage .fund-rule-card.stage-sell .fund-rule-step,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-step,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-action,
#fundPage .fund-rule-card.stage-buy .fund-rule-action,
#fundPage .fund-rule-card.stage-hold .fund-rule-action,
#fundPage .fund-rule-card.stage-sell .fund-rule-action,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-action{
  color:#374151 !important;
}

#fundPage .fund-rule-step{
  border-color:#475569 !important;
}


#fundPage .swing-event-card,
#fundPage .swing-event-card.selling,
#fundPage .swing-event-card.buying,
#fundPage .swing-event-card.aggressive-buy,
#fundPage .swing-event-card.aggressive-sell,
#fundPage .swing-event-card.swing-event-latest{
  border:1px solid #e5e7eb !important;
  border-left:1px solid #e5e7eb !important;
  background:#fff !important;
  box-shadow:none !important;
}


/* 2026 多筆策略訊號以今日波段訊號的淡藍底色交錯呈現 */
#swingPage #swingRecentSignals .swing-event-card:nth-child(odd),
#fundPage #fundRecentSignals .swing-event-card:nth-child(odd){
  border-color:#b8dcf3 !important;
  background:linear-gradient(180deg,#f8fcff 0%,#eef8ff 100%) !important;
}
#swingPage #swingRecentSignals .swing-event-card:nth-child(even),
#fundPage #fundRecentSignals .swing-event-card:nth-child(even){
  border-color:#e5e7eb !important;
  background:#fff !important;
}


#fundPage .swing-backtest-win,
#fundPage .swing-backtest-highlight{
  color:#dc2626 !important;
}


/* ===== 上線前字級一致性校正 =====
   原則：相同功能使用相同字級；資訊型五階段規則維持精簡，不刻意放大。 */

/* 頁首策略標籤：與正二一致 */
#fundPage .fund-tag{
  font-size:12px !important;
}

/* 最新價格 / 淨值輸入：與正二手動價格 18px 一致 */
#fundPage #fundManualNav{
  font-size:18px !important;
}

/* 目前操作建議中的兩個核心欄位：
   最新淨值對齊正二價格；今日建議對齊正二今日建議 22px */
#fundPage #fundAdviceNav{
  font-size:18px !important;
}
#fundPage #fundAdviceAllocation{
  font-size:22px !important;
}

/* 五階段顏色圖例：與正二圖例 12px 一致 */
#fundPage .fund-legend-head{
  font-size:12px !important;
  font-weight:950 !important;
}

/* 數字輸入在窄螢幕不額外縮小，保持兩頁一致 */
@media(max-width:700px){
  #fundPage #fundManualNav{
    font-size:18px !important;
  }
  #fundPage #fundAdviceNav{
    font-size:18px !important;
  }
  #fundPage #fundAdviceAllocation{
    font-size:22px !important;
  }
}


/* ===== 正二頁字級一致性校正 =====
   原則：同功能固定字級，避免 small/strong 吃瀏覽器預設。 */

/* ETF 選擇：代號 / 名稱 */
#swingPage .swing-ticker-code{
  font-size:18px !important;
}
#swingPage .swing-ticker-name{
  font-size:12px !important;
}

/* 今日訊號：標籤、手動價格、今日建議 */
#swingPage .swing-mini label{
  font-size:11px !important;
}
#swingPage .swing-price-input{
  font-size:18px !important;
}
#swingPage #swingAdviceSignal{
  font-size:22px !important;
}

/* 五階段規則：明確指定，不依賴 strong/small 預設 */
#swingPage .swing-step{
  font-size:11px !important;
}
#swingPage .swing-rule strong{
  font-size:14px !important;
  line-height:1.3 !important;
}
#swingPage .swing-rule small{
  font-size:11px !important;
  line-height:1.5 !important;
}
#swingPage .swing-rule-action{
  font-size:12px !important;
  line-height:1.3 !important;
}

/* 2026 策略建議訊號 */
#swingPage .swing-signal-summary-box small{
  font-size:11px !important;
  line-height:1.4 !important;
}
#swingPage .swing-signal-summary-box strong{
  font-size:15px !important;
  line-height:1.35 !important;
}
#swingPage .swing-event-date{
  font-size:13px !important;
}
#swingPage .swing-event-badge{
  font-size:12px !important;
}
#swingPage .swing-event-label{
  font-size:12px !important;
}
#swingPage .swing-event-reason,
#swingPage .swing-demo-action{
  font-size:14px !important;
}
#swingPage .swing-demo-meta,
#swingPage .swing-balance-chip{
  font-size:12px !important;
}
#swingPage .swing-confidence-note{
  font-size:12px !important;
}

/* 績效回測：補上原本未明確指定的摘要小字 */
#swingPage .swing-backtest-overview-card small{
  font-size:11px !important;
  line-height:1.4 !important;
}
#swingPage .swing-backtest-overview-card strong{
  font-size:16px !important;
}
#swingPage .swing-backtest-card-title{
  font-size:15px !important;
}
#swingPage .swing-backtest-card-sub{
  font-size:12px !important;
}
#swingPage .swing-backtest-tag,
#swingPage .swing-backtest-metric span{
  font-size:11px !important;
}
#swingPage .swing-backtest-metric strong{
  font-size:15px !important;
}
#swingPage .swing-backtest-vs{
  font-size:12px !important;
}


/* 安聯五階段規則改為正二同款淡藍色 */
#fundPage .fund-rule-card,
#fundPage .fund-rule-card.stage-bigbuy,
#fundPage .fund-rule-card.stage-buy,
#fundPage .fund-rule-card.stage-hold,
#fundPage .fund-rule-card.stage-sell,
#fundPage .fund-rule-card.stage-bigsell{
  border:1px solid #b8dcf3 !important;
  border-left:1px solid #b8dcf3 !important;
  border-radius:14px !important;
  background:#fff !important;
}

#fundPage .fund-rule-step{
  background:#e1f3ff !important;
  border:1px solid #b8dcf3 !important;
  color:#0c4a6e !important;
}

#fundPage .fund-rule-card-title{
  color:#1f2937 !important;
}

#fundPage .fund-rule-action{
  color:#1f4f7a !important;
  font-weight:950 !important;
}

#fundPage .fund-rule-condition{
  color:#6b7280 !important;
}


/* 安聯 2026 訊號說明文字對齊績效回測附註樣式 */
#fundPage .swing-confidence-note{
  font-size:13px !important;
  color:var(--muted) !important;
  line-height:1.7 !important;
}


/* ===== 兩頁共用正二湖水藍品牌色 ===== */
.tabs{background:#eaf5fb}
.tab-btn.active{
  color:#0c4a6e;
  box-shadow:0 2px 8px rgba(3,105,161,.10)
}

#fundPage{
  --fund-blue:#0369a1;
  --fund-blue-strong:#1d4ed8;
  --fund-border:#b8dcf3;
}
#fundPage .fund-tag{
  color:#0c4a6e;
  background:#eef8ff;
  border-color:#b8dcf3;
  margin-bottom:10px;
}
#fundPage .card{
  border-color:#e4e7ee;
}
#fundPage .manual-card{
  border:1px solid #b8dcf3;
  background:#fff;
}
#fundPage .fund-advice,
#fundPage .fund-signal,
#fundPage .fund-signal.bigbuy,
#fundPage .fund-signal.buy,
#fundPage .fund-signal.hold,
#fundPage .fund-signal.sell,
#fundPage .fund-signal.bigsell{
  border-color:#63a9d4;
  background:linear-gradient(180deg,#f8fcff 0%,#eef8ff 100%);
}
#fundPage .fund-signal-kicker{color:#0369a1}
#fundPage .fund-signal.bigbuy .fund-signal-title{color:#1d4ed8}
#fundPage .fund-signal.buy .fund-signal-title{color:#0369a1}
#fundPage .fund-signal.hold .fund-signal-title{color:#047857}
#fundPage .fund-signal.sell .fund-signal-title{color:#c2410c}
#fundPage .fund-signal.bigsell .fund-signal-title{color:#b91c1c}
#fundPage #fundRefreshBtn{
  background:#2563eb;
}
#fundPage input:focus{
  border-color:#60a5fa;
  box-shadow:0 0 0 3px rgba(96,165,250,.14);
}
#fundPage .fund-stage-forecast,
#fundPage .fund-signal-mini{
  border-color:#b8dcf3;
}
#fundPage .fund-stage-box,
#fundPage .fund-stage-box.bullish,
#fundPage .fund-stage-box.bullish-strong,
#fundPage .fund-stage-box.bearish,
#fundPage .fund-stage-box.bearish-strong{
  border-color:#e5e7eb;
  background:#f8fafc;
}
#fundPage .fund-stage-box.bullish strong{color:#0369a1}
#fundPage .fund-stage-box.bullish-strong strong{color:#1d4ed8}
#fundPage .fund-stage-box.bearish strong{color:#c2410c}
#fundPage .fund-stage-box.bearish-strong strong{color:#b91c1c}
#fundPage .fund-legend-item{
  border-color:#e5e7eb;
  border-radius:12px;
  padding:9px 10px;
}
#fundPage .fund-legend-head{
  color:#111827;
  font-size:12px !important;
  font-weight:950 !important;
}
#fundPage .fund-dot.bigbuy{background:#1d4ed8}
#fundPage .fund-dot.blue{background:#0ea5e9}
#fundPage .fund-dot.green{background:#10b981}
#fundPage .fund-dot.orange{background:#f59e0b}
#fundPage .fund-dot.red{background:#ef4444}
#fundPage .fund-rule-flow{gap:10px}
#fundPage .fund-rule-card,
#fundPage .fund-rule-card.stage-bigbuy,
#fundPage .fund-rule-card.stage-buy,
#fundPage .fund-rule-card.stage-hold,
#fundPage .fund-rule-card.stage-sell,
#fundPage .fund-rule-card.stage-bigsell{
  grid-template-columns:42px minmax(0,1fr) auto;
  gap:12px;
  border:1px solid #b8dcf3 !important;
  border-radius:14px;
  padding:12px 14px;
  background:#fff !important;
}
#fundPage .fund-rule-step,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-step,
#fundPage .fund-rule-card.stage-buy .fund-rule-step,
#fundPage .fund-rule-card.stage-hold .fund-rule-step,
#fundPage .fund-rule-card.stage-sell .fund-rule-step,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-step{
  width:32px;
  height:32px;
  background:#e1f3ff;
  border:1px solid #b8dcf3 !important;
  color:#0c4a6e !important;
}
#fundPage .fund-rule-card-title,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-card-title,
#fundPage .fund-rule-card.stage-buy .fund-rule-card-title,
#fundPage .fund-rule-card.stage-hold .fund-rule-card-title,
#fundPage .fund-rule-card.stage-sell .fund-rule-card-title,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-card-title{
  color:#1f2937 !important;
}
#fundPage .fund-rule-action,
#fundPage .fund-rule-card.stage-bigbuy .fund-rule-action,
#fundPage .fund-rule-card.stage-buy .fund-rule-action,
#fundPage .fund-rule-card.stage-hold .fund-rule-action,
#fundPage .fund-rule-card.stage-sell .fund-rule-action,
#fundPage .fund-rule-card.stage-bigsell .fund-rule-action{
  color:#0c4a6e !important;
}
@media(max-width:700px){
  #fundPage .fund-rule-card,
  #fundPage .fund-rule-card.stage-bigbuy,
  #fundPage .fund-rule-card.stage-buy,
  #fundPage .fund-rule-card.stage-hold,
  #fundPage .fund-rule-card.stage-sell,
  #fundPage .fund-rule-card.stage-bigsell{
    grid-template-columns:38px minmax(0,1fr);
  }
}

@media(max-width:520px){
  .tabs{overflow-x:auto}.tab-btn{min-width:128px}
}

.fund-condition-hit{color:#dc2626 !important;font-weight:900}
