
*{box-sizing:border-box;}


h1{font-size:30px;margin:0 0 8px;}
.subtitle{margin:0 0 24px;}
.only{
  display:inline-block;margin-bottom:18px;padding:6px 10px;border-radius:999px;
  border:1px solid var(--signal-warning-line);
  font-size:13px;}


input{font:inherit;border-radius:10px;}
input{
  width:100%;padding:13px 14px;border:1px solid var(--color-line-strong);background:var(--color-surface);
  color:var(--text);font-size:18px;outline:none
;}

input:disabled{background:var(--color-loading-soft);color:var(--color-muted);}


label{display:block;margin-bottom:7px;}
.meta{line-height:1.7;}.note{line-height:1.7;}
.status{
  margin-top:14px;padding:13px 14px;border:1px solid var(--line);
  border-radius:11px;font-size:13px;line-height:1.65
;}
.result{text-align:center;padding:30px 18px;}

.mini{background:var(--color-surface-soft);border:1px solid var(--line);border-radius:12px;padding:18px;}

.mini .v{font-size:19px;}
.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;}
.manual-card{border:2px solid var(--color-action-fill);}
.market-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,.42fr);
  gap:12px;
  align-items:end;
}
.market-field{min-width:0;}




@media(max-width:620px){
  .market-row{grid-template-columns:1fr;}
}
.advice{
  display:none;border:2px solid var(--color-action-line-soft);
  border-radius:16px;padding:24px;margin-bottom:14px
;}
.advice.show{display:block;}








@media(max-width:620px){
  
  
  
}









@media(max-width:620px){}


















/* ===== 波段交易首頁 ===== */





















#swingPage .swing-rule-flow{
  display:grid;
  
  
}
#swingPage .swing-rule{
  display:grid;
  
  
  
  
  
  
  
}
#swingPage .swing-step{
  
  
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  
  border:1px solid var(--swing-border);
  
  
}
#swingPage .swing-rule strong{display:block;}

#swingPage .swing-rule-action{
  
  
  text-align:right;
  white-space:nowrap;
}
#swingPage .swing-status{
  border-color:var(--swing-border);
  background:var(--color-surface-subtle);
}
@media(max-width:700px){
  
  #swingPage .swing-rule{grid-template-columns:38px 1fr;}
  #swingPage .swing-rule-action{grid-column:2;text-align:left;}
}









#swingPage .swing-stage-forecast-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  
}

#swingPage .swing-stage-box label{
  display:block;
  
  
  
  margin-bottom:5px;
}
#swingPage .swing-stage-box strong{
  display:block;
  color:var(--color-ink);
  
  
}
#swingPage .swing-stage-box small{
  display:block;
  
  
  
  
}
#swingPage .swing-stage-box.bullish strong{color:var(--color-action);}
#swingPage .swing-stage-box.bullish-strong strong{color:var(--color-action-strong);}



@media(max-width:700px){
  #swingPage .swing-stage-forecast-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* ===== 波段警戒與 2026 交易紀錄 ===== */



#swingPage .swing-recent-list{
  margin-top:12px;
  overflow-x:auto;
  
  
  
}













@media(max-width:700px){
  #swingPage .swing-recent-list{
    margin-left:-2px;
    margin-right:-2px;
  }
}

/* ===== 波段績效回測 ===== */








@media(max-width:700px){
  
  
}










/* ===== 今日波段訊號燈號說明 ===== */










@media(max-width:700px){
  
}


/* ===== 策略版本資訊 ===== */



/* 2026 策略建議訊號：卡片式時間軸 */




.swing-event-list{
  display:grid;
  gap:10px;
}
.swing-event-card{
  border:1px solid var(--line,var(--color-line));
  border-radius:14px;
  padding:14px;
  background:rgba(255,255,255,.62);
}


.swing-event-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.swing-event-badge.buy{background:var(--color-action-soft);color:var(--color-action);}
.swing-event-badge.sell{background:var(--signal-negative-soft);color:var(--signal-negative);}
.swing-event-badge.bigbuy{background:var(--signal-positive-soft);color:var(--signal-positive);}
.swing-event-badge.bigsell{background:var(--signal-negative-soft);color:var(--signal-negative);}








.swing-event-latest{
  border-width:2px;
}
@media (max-width:680px){
  
  
}


/* 績效回測：摘要卡＋雙欄比較 */

















@media (max-width:760px){
  
  
}
@media (max-width:480px){
  
}



/* ===== 安聯 v3.0：比照正二的階段色彩與閱讀層級 ===== */

/* 安聯年度獨立 PK 回測 */

















@media(max-width:760px){
  
  
  
  
}
























#fundPage .fund-stage-box label{display:block;margin-bottom:5px;}
#fundPage .fund-stage-box strong{display:block;color:var(--color-ink);}
#fundPage .fund-stage-box small{display:block;}
































@media(max-width:700px){
  #fundPage .fund-stage-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  
  
}



  
  
  
  
  
  
  @media (max-width:700px){
    
    
  }


  
  @media (max-width:760px){
    
  }


  


  

  

  

  

  

  

  

  

  @media(max-width:700px){
    
    
    
  }


  
  
  
  
  
  
  
  
  
  
  
  
  @media(max-width:700px){
    
    
  }


/* v50：安聯台灣科技 120% 雙確認版 */



#fundPage .fund-market-field>label{
  display:flex;align-items:flex-end;}

#fundPage .fund-indicator-box{
  
  display:flex;flex-direction:column;justify-content:center
;}
























#fundPage .annual-loading{padding:22px;text-align:center;font-weight:700;}

@media(max-width:700px){
  #fundPage .fund-market-row{grid-template-columns:1fr;}
  #fundPage .fund-market-field>label{min-height:auto;}
  
  
  
}

/* ===== 安聯 v3.0：2026 訊號紀錄＋績效卡 ===== */
#fundPage .swing-recent-list{
  margin-top:12px;
}




/* 安聯 v3.0：五階段規則改為單一中性色系 */











#fundPage .swing-event-card{
  border:1px solid var(--color-line);
  border-left:1px solid var(--color-line);
  background:var(--color-surface);
  box-shadow:none;
}#fundPage .swing-event-card.swing-event-latest{
  border:1px solid var(--color-line);
  border-left:1px solid var(--color-line);
  background:var(--color-surface);
  box-shadow:none;
}


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





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

/* 頁首策略標籤：與正二一致 */


/* 目前操作建議中的兩個核心欄位：
   最新淨值對齊正二價格；今日建議對齊正二今日建議 22px */



/* 五階段顏色圖例：與正二圖例 12px 一致 */





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

/* ETF 選擇：代號 / 名稱 */



/* 今日訊號：標籤、手動價格、今日建議 */




/* 五階段規則：明確指定，不依賴 strong/small 預設 */





/* 2026 策略建議訊號 */









/* 績效回測：補上原本未明確指定的摘要小字 */









/* 安聯五階段規則改為正二同款淡藍色 */











/* 安聯 2026 訊號說明文字對齊績效回測附註樣式 */



/* ===== 兩頁共用正二湖水藍品牌色 ===== */






#fundPage .manual-card{
  border:1px solid var(--color-action-line-soft);
  background:var(--color-surface);
}








#fundPage input:focus{
  border-color:var(--color-action-mid);
  box-shadow:0 0 0 3px rgba(96,165,250,.14);
}


#fundPage .fund-stage-box.bullish strong{color:var(--color-action);}

#fundPage .fund-stage-box.bearish strong{color:var(--signal-warning);}













@media(max-width:700px){
  
}

@media(max-width:520px){
  
}



/* 正二 2026 訊號與資產疊加柱狀圖 */
#swingPage .swing-chart-shell{
  position:relative;margin-bottom:18px;padding:14px;border:1px solid var(--swing-border);
  background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-subtle) 100%);}#fundPage .swing-chart-shell{
  position:relative;margin-bottom:18px;padding:14px;border:1px solid var(--swing-border);
  background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-subtle) 100%);}





















@media(max-width:700px){
  
  
  #swingPage .swing-chart-shell{padding:12px;}#fundPage .swing-chart-shell{padding:12px;}
}

/* v0.27 手機閱讀模式：僅調整呈現，不影響策略與資料計算 */
.tab-label-mobile{display:none;}

@media(max-width:680px){
  
  
  .subtitle{margin-bottom:18px;font-size:13px;line-height:1.65;}

  
  
  .tab-label-desktop{display:none;}
  .tab-label-mobile{display:inline;}

  #swingPage .swing-chart-shell{position:relative;}#fundPage .swing-chart-shell{position:relative;}
  
  

  #swingPage .swing-recent-list{
    margin-right:-4px;margin-left:-4px;
    -webkit-overflow-scrolling:touch
  ;}


}

@media(max-width:390px){
  #swingPage .swing-stage-forecast-grid{
    grid-template-columns:1fr
  ;}#fundPage .fund-stage-forecast-grid{
    grid-template-columns:1fr
  ;}
}


/* v4.0 typography refinement: reduce excessive heavy weights */


strong{font-weight:650;}b{font-weight:650;}

.only{font-weight:650;}
label{font-weight:600;}
.mini .v{font-weight:700;}


.rule span:last-child{font-weight:650;}



.fund-indicator-value{font-weight:700;}.fund-stage-box strong{font-weight:700;}
.fund-indicator-sub{font-weight:500;}.fund-stage-box label{font-weight:500;}




/* 正二 v4.0：雙狀態版 */
#swingPage .swing-stage-forecast-grid-dual{grid-template-columns:repeat(2,minmax(0,1fr));}

@media(max-width:520px){
  #swingPage .swing-stage-forecast-grid-dual{grid-template-columns:1fr;}
}

/* ===== 投資中控台 ===== */

















.dashboard-state-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:650;white-space:nowrap;background:var(--color-line);color:var(--color-body);}













@media(max-width:760px){
  
  
  
  
  
  
}

/* ===== Dashboard v1.1 mobile-first refinement ===== */
@media(max-width:600px){
  
  
  

  /* Primary navigation stays reachable without stealing much screen height */
  
  

  
  
  
  
  

  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  #dashboardPage .dashboard-state-badge{
    flex:0 0 auto;
    padding:5px 8px;
    font-size:10px;
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

@media(max-width:390px){
  
  
  
  
  
  
}

/* ===== 主欄目垂直間距統一 =====
   所有同層級內容卡片之間保留一致的 14px 間隔。
   一般 .card 原本已有 margin-bottom:14px；補齊自訂訊號卡片。 */


/* v4.5.4：正二 2026 狀態切換訊號改為單層卡片，移除外層重複框線 */
#swingPage #swingRecentSignals{
  border:none;
  border-radius:0;
  background:transparent;
  overflow:visible;
  margin-left:0;
  margin-right:0;
}

/* ===== v4.5.8 全站字體層級與色彩一致性 =====
   同級資訊固定使用相同字級與灰階；狀態色只保留在策略狀態／買賣訊號。 */
:root{
  --type-heading:var(--color-ink);
  --type-body:var(--color-text-strong);
  --type-muted:var(--color-sub);
  --type-faint:var(--color-muted);
}

/* 頁面說明文字 */
.subtitle{
  font-size:14px;
  line-height:1.7;
  color:var(--type-muted);
}

/* 策略標籤：正二／安聯同級 */


/* 一級區塊標題 */


/* 二級區塊標題 */


/* 正文與主要說明 */


/* 一般欄位標籤／圖例／事件標示 */
label{
  font-size:12px;
  
}#swingPage .swing-event-badge{
  font-size:12px;
  color:var(--type-muted);
}#fundPage .swing-event-badge{
  font-size:12px;
  color:var(--type-muted);
}

/* 狀態色圖例保留文字本身中性，只由圓點辨識狀態 */


/* 次要說明文字：統一 12px 中灰 */
.meta{
  font-size:12px;
  
}.note{
  font-size:12px;
  
}

/* 最小輔助文字：門檻備註、日期、規則細節統一 11px */
#swingPage .swing-stage-box small{
  
  color:var(--type-faint);
}#fundPage .fund-stage-box small{
  
  color:var(--type-faint);
}

/* 11px 中仍屬內容的文字，不使用過淡灰 */


/* 規則卡：正二／安聯同級 */


#swingPage .swing-step{
  font-size:11px;
}

/* 點位預估數值：正二／安聯一致 */
#swingPage .swing-stage-box strong{
  
  font-weight:700;
}#fundPage .fund-stage-box strong{
  
  font-weight:700;
}

/* 2026 訊號卡：兩頁完全同級 */



/* 圖表文字：兩頁一致 */



/* 中控台：同級資訊套用同一灰階 */




/* 頁尾資訊 */


@media(max-width:700px){
  /* 手機不再把同級文字另外縮小，僅縮頁面主標避免換行壓迫 */
  
  
  
}

/* ===== v4.6.4 進攻／防守燈號語意色統一 =====
   進攻／恢復滿倉：綠；防守／撤資：紅。 */


/* 正二：今日訊號、圖例、歷史事件 */







/* 安聯：目前訊號、圖例、歷史事件 */







/* 中控台：正常／滿倉視為進攻色；防守為防守色 */



/* ===== v4.6.5 中控台關鍵價格易讀化 ===== */











@media(max-width:700px){
  
  
  
  
  
}

/* ===== v4.6.6 狀態圖例區重整 ===== */













@media(max-width:700px){
  
}

/* ===== v4.6.7 中控台：目前策略／下一觸發條件同權重 ===== */









/* 讓「目前策略」與「下一觸發條件」形成同一組決策資訊 */


@media(max-width:600px){
  
  
  
}

/* ===== v4.6.8 正二燈號圖例與安聯一致 ===== */



@media(max-width:700px){
  
}
@media(max-width:430px){
  
}

/* ===== v4.6.9 燈號語意修正：維持不變改為中性灰 ===== */


/* 圖例：只有實際回補動作使用綠燈；無動作一律灰燈 */


/* 今日訊號：維持不變採中性狀態，不再使用進攻綠色 */






/* ===== v4.7.5 狀態圖例只保留實際切換方向 ===== */

@media(max-width:430px){
  
}

/* ===== v4.7.10 精簡燈號說明 ===== */

#fundPage .fund-stage-forecast-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  
}#fundPage .fund-stage-forecast-grid-dual{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}

#fundPage .fund-stage-box.bullish{
  
  border-color:var(--color-line);
}#fundPage .fund-stage-box.bullish-strong{
  
  border-color:var(--color-line);
}#fundPage .fund-stage-box.bearish{
  
  border-color:var(--color-line);
}#fundPage .fund-stage-box.bearish-strong{
  
  border-color:var(--color-line);
}



@media(max-width:520px){
  #fundPage .fund-stage-forecast-grid{
    grid-template-columns:1fr;
  }#fundPage .fund-stage-forecast-grid-dual{
    grid-template-columns:1fr;
  }
}


/* ===== v4.7.10 精簡燈號說明 ===== */
















@media(max-width:700px){
  #dashboardPage .dashboard-section-flat{padding:0;margin-bottom:0;}
  
  
  
  
  
  
}


/* ===== v4.7.12 中控台：保留精簡資訊，增加呼吸感 ===== */

#dashboardPage .dashboard-section-flat{
  padding-top:2px;
}











@media(max-width:700px){
  
  
  
  
  
  
  
  
}

/* ===== v4.7.14 中控台：三欄共用外層白底，恢復整體感 ===== */
#dashboardPage .dashboard-section-flat{
  
  
  
  
  border-radius:22px;
  
}

@media(max-width:700px){
  #dashboardPage .dashboard-section-flat{
    padding:12px;
    border-radius:18px;
    margin-bottom:0;
  }
}

/* ===== v4.7.16 中控台：現在配置改為無框純文字 ===== */

@media(max-width:700px){
  
}

/* ===== v4.7.21 中控台：詳細策略按鈕整齊對齊 ===== */


@media(max-width:700px){
  
}


/* ===== v4.7.21 中控台：只固定下一步色塊尺寸，保留原始內容排版 ===== */

@media(max-width:700px){
  
}


/* ===== v4.7.23 中控台：下一步固定色塊、三行資訊層級 ===== */








@media(max-width:700px){
  
  
  
  
}

/* ===== v4.7.24 中控台：下一步色塊改為垂直三層 ===== */







@media(max-width:700px){
  
  
  
  
}

/* ===== Dashboard elegant spacing refinement ===== */








@media(max-width:700px){
  
  
  
  
  
  
  
}

/* ===== Elegant refinement step 1: Allianz market overview only ===== */


#fundPage .fund-market-field>label{
  
  
  color:var(--color-sub);
  font-weight:600;
}
#fundPage .fund-indicator-box{
  height:66px;
  
  
}









@media(max-width:700px){
  
  #fundPage .fund-market-row{gap:13px;}
  #fundPage .fund-indicator-box{
    height:62px;
    min-height:62px;
  }
  
}

/* ===== v4.7.24 正二詳細頁：ETF 選擇 / 資料更新區優雅化 ===== */













@media(max-width:700px){
  
  
  
  
}

/* ===== Elegant step 3: 正二三階段策略規則區 ===== */

#swingPage .swing-rule{
  grid-template-columns:34px minmax(0,1fr) 52px;
  gap:14px;
  align-items:center;
  
  
  
  
  
}
#swingPage .swing-step{
  width:28px;
  height:28px;
  border-color:var(--color-line);
  background:var(--color-canvas);
  color:var(--color-body);
  font-weight:650;
}
#swingPage .swing-rule strong{
  margin-bottom:5px;
  
  
  
  
}

#swingPage .swing-rule-action{
  align-self:center;
  
  line-height:1.2;
  
  
  letter-spacing:.01em;
  opacity:.9;
}
@media(max-width:700px){
  #swingPage .swing-rule-flow{gap:10px;margin-top:12px;}
  #swingPage .swing-rule{
    grid-template-columns:32px minmax(0,1fr);
    gap:11px 12px;
    padding:14px 14px 13px;
    border-radius:15px;
  }
  #swingPage .swing-step{width:27px;height:27px;}
  #swingPage .swing-rule strong{font-size:14px;margin-bottom:4px;}
  #swingPage .swing-rule small{line-height:1.6;}
  #swingPage .swing-rule-action{
    grid-column:2;
    margin-top:1px;
    text-align:left;
    font-size:11px;
    color:var(--color-sub);
  }
}


/* ===== Elegant step 4: 安聯策略規則區 ===== */








@media(max-width:700px){
  
  
  
  
  
  
  
}

/* ===== Elegant step 4.1: 安聯規則卡資訊集中，避免橫向留白失衡 ===== */





@media(max-width:700px){
  
}

/* ===== Elegant step 4.2: 安聯規則卡兩行式平衡佈局 ===== */






@media(max-width:700px){
  
  
  
  
  
}


/* ===== Final polish: centralized version + chart/signal chapter spacing ===== */


@media(max-width:700px){
  
  
}

/* ===== v4.7.24 中控台：更新全部資料按鈕統一精緻樣式 ===== */



@media(max-width:700px){
  
}

/* ===== Dashboard card structural alignment: fixed desktop row rhythm ===== */
@media(min-width:701px){
  
  
  
  
  
  
  
  
  
  
  
  
  
}


/* ===== Dashboard hero spacing refinement ===== */







@media(max-width:900px){
  
  
  
  
  
  
  
}
@media(max-width:700px){
  
  
  
  
  
  
}

/* ===== v4.7.27｜盤中預警視覺統一：優雅、直觀、無交通燈圖示 ===== */
.dashboard-state-badge.warning{
  
  
  border:1px solid var(--signal-warning-line);
}














@media(max-width:700px){
  
  
}


/* ===== v4.7.28｜參考價格來源與時間 ===== */


/* ===== v4.7.29｜Dashboard 完整版面修正：價格資訊垂直化、卡片節奏統一 ===== */
@media(min-width:701px){
  
  
  
  
  
  
  #dashboardPage .dashboard-state-badge{
    flex:0 0 auto;
    max-width:112px;
    padding:7px 12px;
    font-size:12px;
    line-height:1.2;
    text-align:center;
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

@media(max-width:700px){
  
  
  
  
  
  #dashboardPage .dashboard-state-badge{flex:0 0 auto;}
  
}

/* ===== v4.7.30｜中控台雙價格正式版 ===== */
@media(min-width:701px){
  
  
  
  
  
  
  
  
}

@media(max-width:700px){
  
  
  
  
  
  
}

/* ===== v4.7.30｜正二詳細頁：正式策略視圖 ===== */
















@media(max-width:700px){
  
  
  
  
  #swingPage .swing-stage-box{padding:14px 15px;}
}


@media(max-width:700px){
  
}

/* ===== v4.7.31｜中控台 1200px 級距舒展修正 ===== */
@media (min-width:701px) and (max-width:1280px){
  #dashboardPage .dashboard-section-flat{
    padding:16px;
    border-radius:20px;
  }
  
  
  
  
  
  #dashboardPage .dashboard-state-badge{
    max-width:92px;
    padding:6px 10px;
    font-size:11px;
  }

  
  
  
  
  
  
  
  

  
  
  
  

  
  
  
  
  
}

/* 中控台窄桌面：名稱可換行，但關鍵數值不要因欄寬被擠成兩行 */
@media (min-width:701px) and (max-width:1080px){
  #dashboardPage .dashboard-section-flat{padding:14px;}
  
  
  
  #dashboardPage .dashboard-state-badge{padding:5px 8px;font-size:10.5px;}
  
  
  
}

/* ===== v4.7.32｜中控台桌面寬度與數值可讀性修正 ===== */
/* 中控台需要三欄；詳細策略頁仍維持原本閱讀寬度。 */
@media (min-width:701px){
  
  #swingPage{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
  }#fundPage{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
  }
  #dashboardPage{
    width:100%;
  }

  #dashboardPage .dashboard-section-flat{
    padding:22px;
  }
  
  

  /* 正式收盤是最重要的價格，不允許省略號截斷。 */
  
  
}

/* 中型桌面／平板：寧可改成單欄，也不要壓縮關鍵數字。 */
@media (min-width:701px) and (max-width:960px){
  
  
  
  
  
}

/* 約 961–1280px：三欄仍保留，但稍微收斂字體與內距。 */
@media (min-width:961px) and (max-width:1280px){
  #dashboardPage .dashboard-section-flat{
    padding:18px;
  }
  
  
  
  
}

/* ===== v4.7.33｜回歸原寬度・中控台舒展版 ===== */
@media (min-width:701px){
  /* 回到原本偏好的閱讀寬度；詳細頁與中控台共用 760px 主框。 */
  
  #swingPage{
    max-width:none;
  }#fundPage{
    max-width:none;
  }

  #dashboardPage .dashboard-section-flat{
    padding:15px;
    border-radius:20px;
  }
  
  
  
  
  
  #dashboardPage .dashboard-state-badge{
    padding:5px 8px;
    font-size:10.5px;
  }

  /* 狹窄三欄下不再將兩個價格左右硬擠：正式收盤為主、盤中資訊置於下方。 */
  
  
  
  
  
  
  
  
  
  

  /* 安聯仍維持單一淨值，讓三卡價格區高度自然接近。 */
  
  
  

  
  
  
  
  

  
  
  
  
  
}

/* 平板仍維持單欄，避免 760px 以下重新壓縮成三欄。 */
@media (min-width:701px) and (max-width:760px){
  
}

/* ===== v4.7.34｜中控台三卡分隔線與下半部對齊 ===== */
@media (min-width:761px){
  /* 價格區統一高度：ETF 保留盤中列；安聯不補假資料，只保留等高留白。 */
  

  

  /* 從這條分隔線往下，三張卡使用相同節奏。 */
  
  
}



#fundPage .fund-official-nav-box .fund-indicator-sub{color:var(--color-muted);}
@media (min-width:761px){
  
  
  
}

/* ===== v4.7.41: Allianz latest NAV uses primary official-price color ===== */

#fundPage .fund-official-nav-box .fund-indicator-value{color:var(--color-ink);}

/* ===== v4.7.40: latest official price day-change, kept beside price ===== */







@media(max-width:600px){
  
  
}


/* ===== v4.7.42｜00685L recovery conditions breakdown ===== */

#swingPage .swing-recovery-breakdown[hidden]{display:none;}
#swingPage .swing-recovery-breakdown-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px;}
#swingPage .swing-recovery-breakdown-head strong{color:var(--signal-positive);}
#swingPage .swing-recovery-breakdown-head small{color:var(--color-muted);}
#swingPage .swing-recovery-breakdown-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
#swingPage .swing-recovery-condition{min-width:0;}
#swingPage .swing-recovery-condition span{display:block;margin-bottom:4px;}
#swingPage .swing-recovery-condition strong{display:block;color:var(--signal-positive);}
#swingPage .swing-recovery-condition small{display:block;margin-top:3px;color:var(--color-muted);}
#swingPage .swing-recovery-earliest{display:flex;align-items:baseline;gap:8px;padding-top:9px;}

#swingPage .swing-recovery-earliest strong{color:var(--signal-positive);}
#swingPage .swing-recovery-earliest small{color:var(--color-sub);}
@media(max-width:700px){
  #swingPage .swing-recovery-breakdown-grid{grid-template-columns:1fr;}
  #swingPage .swing-recovery-breakdown-head{align-items:flex-start;flex-direction:column;gap:3px;}#swingPage .swing-recovery-earliest{align-items:flex-start;flex-direction:column;gap:3px;}
}

/* ===== v4.7.47｜關鍵數字字級統一 =====
   視覺層級：
   1) 主關鍵數字（正式價格 / 淨值 / 關鍵門檻）26px
   2) 次級操作數字（配置 / 回補條件 / 摘要）18px
   3) 表格與回測維持原本較緊湊層級
*/
:root{
  --key-number-size:26px;
  --key-number-size-mobile:24px;
  --secondary-number-size:18px;
}

/* 中控台：三張策略卡的正式價格、基金淨值與關鍵門檻同級 */


/* 正二：正式收盤與策略階段門檻同級 */



/* 安聯：最新正式淨值 / 均線 / 恢復滿倉價同一主層級 */



/* 配置屬於次級資訊，不與價格搶層級 */


@media(max-width:700px){
  #swingPage .swing-stage-box strong{
    font-size:var(--key-number-size-mobile);
  }#fundPage .fund-indicator-value{
    font-size:var(--key-number-size-mobile);
  }
}

/* ===== v4.7.48｜補齊正二頁關鍵數字統一（修正 v4.7.47 遺漏區塊） ===== */
#swingPage .swing-stage-box strong{
  font-size:26px;
  line-height:1.08;
  letter-spacing:-.03em;
  
}



#swingPage .swing-recovery-condition strong{
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}#swingPage .swing-recovery-earliest strong{
  font-size:22px;
  line-height:1.1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}

#swingPage .swing-recovery-condition small{
  font-variant-numeric:tabular-nums;
}#swingPage .swing-stage-box small{
  font-variant-numeric:tabular-nums;
}#swingPage .swing-stage-forecast-note{
  font-variant-numeric:tabular-nums;
}

@media(max-width:700px){
  #swingPage .swing-stage-box strong{
    font-size:24px;
  }

  

  #swingPage .swing-recovery-condition strong{
    font-size:20px;
  }#swingPage .swing-recovery-earliest strong{
    font-size:20px;
  }
}

/* ===== v4.7.49｜安聯頂部三卡改為等寬，更平衡 ===== */
#fundPage .fund-market-row{
  
  
  align-items:stretch;
}
#fundPage .fund-market-field{
  min-width:0;
}
#fundPage .fund-market-field>label{
  min-height:24px;
  margin-bottom:8px;
}
#fundPage .fund-indicator-box{
  width:100%;
}
@media(max-width:900px){
  #fundPage .fund-market-row{
    grid-template-columns:1fr;
  }
}

/* ===== v4.7.50｜中控台三卡重心平衡修正 ===== */
@media (min-width:761px){
  

  

  /* 上半部不要留太多無效空白，標題與徽章更貼近內容 */
  
  
  

  /* 三卡價格區高度一致，但略收緊，重心更集中 */
  

  

  /* 讓中段資訊節奏一致 */
  
  

  /* 下一步卡提高存在感，但控制高度，避免某一張過重 */
  
  
  
  
  

  /* 底部按鈕固定成較輕的收尾，避免整張卡往下墜 */
  
}

/* ===== v4.7.51｜全站文字字級階層統一 =====
   文字層級：
   1) 狀態主標 24px
   2) 區塊標題 18px
   3) 欄位標籤 13px
   4) 說明文字 13px
   數字字級沿用 v4.7.47–50，不在此覆寫。
*/
:root{
  --text-status-title:24px;
  --text-section-title:18px;
  --text-label:13px;
  --text-body:13px;
  --text-caption:12px;
}

/* 正二：目前正式策略狀態 */





#swingPage .swing-stage-box small{
  font-size:var(--text-body);
  line-height:1.6;
}

#swingPage .swing-recovery-breakdown-head strong{
  font-size:15px;
  line-height:1.35;
}
#swingPage .swing-recovery-breakdown-head small{
  font-size:var(--text-caption);
  line-height:1.45;
}#swingPage .swing-recovery-earliest small{
  font-size:var(--text-caption);
  line-height:1.45;
}
#swingPage .swing-recovery-condition small{
  font-size:11px;
  line-height:1.45;
}

/* 安聯：與正二採相同文字層級 */



#fundPage .fund-market-field>label{
  font-size:var(--text-label);
  line-height:1.35;
}



/* 中控台：標籤與輔助文字同步，避免詳細頁調整後層級又不同 */





@media(max-width:700px){
  :root{
    --text-status-title:22px;
    --text-section-title:17px;
    --text-label:12px;
    --text-body:12px;
    --text-caption:11px;
  }
  
  
}

/* ===== v4.7.52｜正二頂部「正式配置」與正式收盤視覺平衡 ===== */



/* 配置卡不再做「卡中卡」，與左側正式收盤使用相同資訊結構 */








/* ===== v4.7.53｜正二防守語意紅色統一 ===== */
/* 防守相關狀態不再混用橘紅 / 酒紅；全部使用同一主防守紅。 */
#swingPage .swing-stage-box.bearish strong{
  color:var(--signal-defense);
}#swingPage .swing-stage-box.bearish-strong strong{
  color:var(--signal-defense);
}

/* 保留警示 amber，只有真正「待執行／警示」才使用黃褐色。 */


/* ===== v4.7.56｜正二 / 安聯「目前操作建議」區塊層級統一 ===== */
/* 這兩區屬於同等級資訊，因此統一文字與數字層級、卡片內距與節奏。 */










#fundPage .fund-stage-box strong{
  
  
  
  letter-spacing:-.03em;
  
}
#fundPage .fund-stage-box small{
  
  font-size:13px;
  
}


@media(max-width:700px){
  #fundPage .fund-stage-box strong{
    font-size:24px;
  }
  
}

/* ===== v4.7.57｜操作建議區塊重新設計：減少僵硬與為空白而空白 ===== */
/* 設計方向：把「大片留白的卡中卡」改成更緊湊的資訊面板，
   保留清楚層級，但讓內容更貼近彼此，減少空白的存在感。 */




/* 上方兩張關鍵資訊卡：拿掉多餘撐高，改成緊湊但仍清楚的面板 */





/* 狀態切換區改為次面板，而不是硬切一大塊空白 */





#swingPage .swing-stage-box small{
  margin-top:6px;
}


/* 00685L 補充條件區也改成柔和面板，避免又出現一大塊厚重盒子 */




/* 手機維持單欄，但不要留過多上下空白 */
@media(max-width:700px){
  
  #swingPage .swing-stage-forecast{
    padding:14px;
    border-radius:16px;
  }#fundPage .fund-stage-forecast{
    padding:14px;
    border-radius:16px;
  }#swingPage .swing-recovery-breakdown{
    padding:14px;
    border-radius:16px;
  }
}

/* ===== v4.7.58｜依目前實際版面重做操作建議區：連續資訊面板 ===== */
/* 目標：保留既有字級與資訊內容，移除「大框包小框」的僵硬感。 */


/* 主訊息保持自由呼吸，不再被下面卡片拉出巨大垂直空白 */


/* ===== 關鍵數據列：改成一個連續區塊，不是兩張孤立卡 ===== */





/* ===== 狀態切換：取消大外框，改成 section + 兩欄資訊 ===== */
#swingPage .swing-stage-forecast{
  
  padding:17px 0 0;
  border:0;
  border-top:1px solid var(--color-line);
  border-radius:0;
  background:transparent;
}#fundPage .fund-stage-forecast{
  
  padding:17px 0 0;
  border:0;
  
  border-radius:0;
  
}

#swingPage .swing-stage-forecast-grid{
  gap:0;
  overflow:hidden;
  border:1px solid var(--color-line);
  
  background:rgba(248,250,252,.72);
}#fundPage .fund-stage-forecast-grid{
  gap:0;
  overflow:hidden;
  border:1px solid var(--color-line);
  
  background:rgba(248,250,252,.72);
}
#swingPage .swing-stage-box{
  min-height:0;
  
  
  
  
  
}#fundPage .fund-stage-box{
  min-height:0;
  
  
  
  
  
}
#swingPage .swing-stage-box + .swing-stage-box{
  border-left:1px solid var(--color-line);
}#fundPage .fund-stage-box + .fund-stage-box{
  border-left:1px solid var(--color-line);
}

/* 狀態色只留在數字／文字，不再整張卡染色，減少厚重感 */
#swingPage .swing-stage-box.bearish{
  background:transparent;
}#swingPage .swing-stage-box.bearish-strong{
  background:transparent;
}#swingPage .swing-stage-box.bullish{
  background:transparent;
}#swingPage .swing-stage-box.bullish-strong{
  background:transparent;
}#fundPage .fund-stage-box.bearish{
  background:transparent;
}#fundPage .fund-stage-box.bearish-strong{
  background:transparent;
}#fundPage .fund-stage-box.bullish{
  background:transparent;
}#fundPage .fund-stage-box.bullish-strong{
  background:transparent;
}

#swingPage .swing-stage-forecast-note{
  
  padding:0 2px;
}

/* 00685L 額外條件改成附屬資訊條，不和主區塊搶層級 */
#swingPage .swing-recovery-breakdown{
  margin-top:12px;
  padding:13px 14px;
  border:1px solid var(--color-line);
  border-radius:16px;
  background:var(--color-surface-soft);
}
#swingPage .swing-recovery-breakdown-grid{
  gap:0;
  overflow:hidden;
  border:1px solid var(--color-line);
  border-radius:14px;
  background:var(--color-surface);
}
#swingPage .swing-recovery-condition{
  
  
  
  padding:10px 12px;
}
#swingPage .swing-recovery-condition + .swing-recovery-condition{
  border-left:1px solid var(--color-line);
}
#swingPage .swing-recovery-earliest{
  margin-top:10px;
  padding:10px 2px 0;
  border-top:1px solid var(--color-line);
  
}

@media(max-width:700px){
  
  #swingPage .swing-stage-forecast-grid{
    grid-template-columns:1fr;
  }#fundPage .fund-stage-forecast-grid{
    grid-template-columns:1fr;
  }#swingPage .swing-recovery-breakdown-grid{
    grid-template-columns:1fr;
  }
  #swingPage .swing-stage-box + .swing-stage-box{
    border-left:0;
    border-top:1px solid var(--color-line);
  }#fundPage .fund-stage-box + .fund-stage-box{
    border-left:0;
    border-top:1px solid var(--color-line);
  }#swingPage .swing-recovery-condition + .swing-recovery-condition{
    border-left:0;
    border-top:1px solid var(--color-line);
  }
}

/* ===== v4.7.59｜全站版面與文案一致性微調 ===== */
:root{
  --page-max:760px;
  --space-section:22px;
  --radius-card:18px;
  --shadow-card:0 8px 28px rgba(15,23,42,.045);
  --line-soft:var(--color-line);
  --text-soft:var(--color-sub);
}




/* 導覽：降低厚重感，讓目前分頁更明確 */




/* 中控台首屏：標題、版本、更新按鈕形成同一水平節奏 */







/* 中控台策略卡：資訊層級由「標的 → 價格 → 配置 → 切換點」向下閱讀 */
















/* 詳細頁開頭：標籤 → 簡述 → 資料控制，節奏一致 */

#swingPage>.subtitle{
  max-width:760px;
  margin-bottom:20px;
  font-size:14px;
  color:var(--color-sub);
}#fundPage>.subtitle{
  max-width:760px;
  margin-bottom:20px;
  font-size:14px;
  color:var(--color-sub);
}






/* 策略狀態：同一概念在正二與安聯保持完全一致的視覺層級 */




#swingPage .swing-stage-forecast-grid{
  border-radius:14px;
}#fundPage .fund-stage-forecast-grid{
  border-radius:14px;
}



/* 後段內容：歷史訊號與規則卡降低存在感，避免搶過目前狀態 */


#swingPage .swing-rule-flow{
  margin-top:14px;
}



/* 數字保持等寬，掃視三張卡與切換價時更穩定 */
#dashboardPage strong{
  font-variant-numeric:tabular-nums;
}#swingPage .v{
  font-variant-numeric:tabular-nums;
}#swingPage .swing-stage-box strong{
  font-variant-numeric:tabular-nums;
}#fundPage .fund-indicator-value{
  font-variant-numeric:tabular-nums;
}#fundPage .fund-stage-box strong{
  font-variant-numeric:tabular-nums;
}

@media(max-width:760px){
  
  
  
  
  
  
  
  #swingPage>.subtitle{font-size:13px;}#fundPage>.subtitle{font-size:13px;}
  
  
}


/* ===== v4.7.60｜年度切換訊號：手機優先精簡長條圖 ===== */

























.compact-event-list{display:grid;}
#swingPage .compact-event{
  display:grid;align-items:center;
  margin:0;border:0;border-bottom:1px solid var(--color-loading-soft);border-radius:0;background:transparent;box-shadow:none
;}#fundPage .compact-event{
  display:grid;align-items:center;
  margin:0;border:0;border-bottom:1px solid var(--color-loading-soft);border-radius:0;background:transparent;box-shadow:none
;}
#swingPage .compact-event:last-child{border-bottom:0;padding-bottom:2px;}#fundPage .compact-event:last-child{border-bottom:0;padding-bottom:2px;}
.compact-event-date{font-variant-numeric:tabular-nums;}
.compact-event-marker{display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-surface);background:var(--color-sub);}
.compact-event-marker.bigsell{background:var(--signal-negative);}.compact-event-marker.bigbuy{background:var(--color-sub);}
.compact-event-main{min-width:0;}
.compact-event-title{display:flex;align-items:center;gap:7px;}
#swingPage .compact-event .swing-event-badge{border-radius:7px;line-height:1.3;}#fundPage .compact-event .swing-event-badge{border-radius:7px;line-height:1.3;}



.compact-event-exec{line-height:1.35;}
.compact-event-alloc{border-radius:999px;white-space:nowrap;}
.compact-event-alloc.bigsell{color:var(--signal-negative);background:var(--signal-negative-soft);}.compact-event-alloc.bigbuy{color:var(--color-sub);background:var(--color-loading-soft);}

@media(max-width:680px){
  
  
  
  
  
  
  
  #swingPage .compact-event{grid-template-columns:42px 26px minmax(0,1fr);gap:8px;padding:13px 0;}#fundPage .compact-event{grid-template-columns:42px 26px minmax(0,1fr);gap:8px;padding:13px 0;}
  .compact-event-marker{width:24px;height:24px;}
  .compact-event-alloc{grid-column:3;justify-self:start;margin-top:0;padding:5px 8px;font-size:9px;}
}


/* v4.7.60：年度訊號列不使用舊版交錯底色，維持單層白底。 */
#swingPage #swingRecentSignals .compact-event:nth-child(odd){
  border-color:var(--color-loading-soft);
  background:transparent;
}#swingPage #swingRecentSignals .compact-event:nth-child(even){
  border-color:var(--color-loading-soft);
  background:transparent;
}#fundPage #fundRecentSignals .compact-event:nth-child(odd){
  border-color:var(--color-loading-soft);
  background:transparent;
}#fundPage #fundRecentSignals .compact-event:nth-child(even){
  border-color:var(--color-loading-soft);
  background:transparent;
}


/* ===== v4.7.61｜桌機閱讀寬度恢復 ===== */
@media (min-width:761px){
  
}

/* v4.7.62 — compact three-metric status + three-way annual asset bars */








#swingPage .strategy-trigger-detail{
  
  padding:0;
  border:0;
  background:transparent;
}#fundPage .strategy-trigger-detail{
  
  padding:0;
  border:0;
  background:transparent;
}
#swingPage .strategy-trigger-detail .swing-stage-forecast-note{
  margin-top:0;
  text-align:center;
}#fundPage .strategy-trigger-detail .fund-stage-forecast-note{
  margin-top:0;
  text-align:center;
}
















@media (max-width:520px){
  
  
  
  
  
  
}

/* ===== v4.7.63｜目前策略狀態：依參考圖收斂為單一卡片三欄 ===== */













#swingPage .strategy-trigger-detail{display:none;}#fundPage .strategy-trigger-detail{display:none;}




/* ===== v4.7.64｜長條圖整合進每筆狀態切換訊號 ===== */
#swingPage #swingSignalChart{display:none;}#fundPage #fundSignalChart{display:none;}

.event-mini-bars{
  display:grid;
  
  
  
  border-top:1px solid var(--color-loading-soft);
}
.event-mini-bar{
  display:grid;
  
  align-items:center;
  
  min-width:0;
}
.event-mini-bar>span{
  
  
  
  white-space:nowrap;
}
.event-mini-track{
  
  overflow:hidden;
  border-radius:999px;
  
}
.event-mini-track i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--color-action);
}


.event-mini-bar>b{
  
  
  
  text-align:right;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}



@media(max-width:680px){
  .event-mini-bars{margin-top:8px;padding-top:8px;gap:5px;}
  .event-mini-bar{grid-template-columns:30px minmax(60px,1fr) 48px;gap:6px;}
  .event-mini-track{height:7px;}
  .event-mini-bar>span{font-size:9px;}.event-mini-bar>b{font-size:9px;}
}


/* ===== v4.7.66｜目前水位整合進同一條狀態時間軸 ===== */
#swingPage .latest-water-level{
  display:grid;
  margin:0;
  padding:12px 0;
  border-bottom:1px solid var(--color-loading-soft);
}#fundPage .latest-water-level{
  display:grid;
  margin:0;
  padding:12px 0;
  border-bottom:1px solid var(--color-loading-soft);
}
.compact-event-marker.current{
  color:var(--color-surface);
  
}


.latest-water-level .latest-water-bars{
  margin-top:8px;
  padding-top:8px;
}
.latest-water-compare{
  
  
  
  
  
  line-height:1.3;
  text-align:left;
  font-variant-numeric:tabular-nums;
}




@media(max-width:680px){
  #swingPage .latest-water-level{padding:10px 0;}#fundPage .latest-water-level{padding:10px 0;}
  .latest-water-compare{margin-top:6px;padding:5px 7px;font-size:9px;}
  .latest-water-compare strong{font-size:10px;}
}


/* ===== v4.7.68｜視覺回歸：統一字級、字重、顏色與訊號區層級 ===== */


/* 目前策略狀態：保留三欄，但恢復較克制的字級與色彩 */











/* 年度訊號：回到和全站卡片一致的標題與內文字級 */




/* 切換列：日期、狀態、原因、配置使用同一套節奏 */
#swingPage .compact-event{
  grid-template-columns:48px 28px minmax(0,1fr) auto;
  gap:9px;
  padding:14px 0;
  
}#fundPage .compact-event{
  grid-template-columns:48px 28px minmax(0,1fr) auto;
  gap:9px;
  padding:14px 0;
  
}
.compact-event-date{
  
  font-size:11px;
  font-weight:650;
}
.compact-event-marker{
  width:24px;
  height:24px;
  font-size:10px;
  font-weight:700;
}
#swingPage .compact-event .swing-event-badge{
  padding:3px 7px;
  font-size:11px;
  font-weight:700;
}#fundPage .compact-event .swing-event-badge{
  padding:3px 7px;
  font-size:11px;
  font-weight:700;
}


.compact-event-reason{
  margin-top:4px;
  
  font-size:11px;
  line-height:1.45;
}
.compact-event-exec{
  margin-top:3px;
  
  font-size:9.5px;
}
.compact-event-alloc{
  padding:5px 8px;
  color:var(--color-body);
  font-size:9.5px;
  font-weight:650;
}

/* 每筆內嵌資產長條：避免文字過小或顏色過飽和 */
.event-mini-bars{
  gap:6px;
  margin-top:9px;
  padding-top:8px;
  border-top-color:var(--color-loading-soft);
}
.event-mini-bar{grid-template-columns:32px minmax(72px,1fr) 58px;gap:8px;}
.event-mini-bar>span{
  
  font-size:10px;
  font-weight:650;
}
.event-mini-track{height:7px;}



.event-mini-bar>b{
  
  font-size:10px;
  
}



/* 最新狀態使用與歷史訊號相同的視覺，不另成一套 */
.compact-event-marker.current{background:var(--color-sub);}
.swing-event-badge.current{color:var(--color-body);background:var(--color-loading-soft);}
.compact-event-alloc.current{color:var(--color-body);background:var(--color-loading-soft);}
.latest-water-compare{
  margin-top:7px;
  
  border-radius:7px;
  font-size:10px;
  font-weight:650;
}
.latest-water-compare strong{font-size:10px;font-weight:750;}




@media(max-width:520px){
  
  
  
  
  
  
  
  

  
  
  
  #swingPage .compact-event{grid-template-columns:40px 24px minmax(0,1fr);gap:7px;padding:12px 0;}#fundPage .compact-event{grid-template-columns:40px 24px minmax(0,1fr);gap:7px;padding:12px 0;}
  .compact-event-date{font-size:10px;}
  .compact-event-marker{width:22px;height:22px;font-size:9px;}
  .compact-event-alloc{grid-column:3;justify-self:start;font-size:9px;}
  .compact-event-reason{font-size:10.5px;}
  .compact-event-exec{font-size:9px;}
  .event-mini-bar{grid-template-columns:30px minmax(56px,1fr) 52px;gap:6px;}
  .event-mini-bar>span{font-size:9.5px;}.event-mini-bar>b{font-size:9.5px;}
  .latest-water-compare{font-size:9.5px;}
  .latest-water-compare strong{font-size:9.5px;}
}

/* v4.7.69｜年度切換訊號：100 萬起始點 */
.compact-event-marker.initial{background:var(--color-sub);}
.swing-event-badge.initial{color:var(--color-body);background:var(--color-loading-soft);border-color:var(--color-line);}
.compact-event-alloc.initial{color:var(--color-body);background:var(--color-surface-soft);border-color:var(--color-line);}
.initial-water-level{border-top:1px solid var(--color-line);}


/* ===== v4.7.70｜詳細頁狀態色完全對齊中控台燈號 ===== */


/* 目前策略卡：滿倉綠、防守紅、待執行黃 */




/* 配置數字沿用中控台燈號，不再用藍色代表滿倉 */










/* 歷史事件／現在／初始點：只允許綠、紅、灰三種語意 */






/* current / initial 不再強制灰色覆蓋實際狀態 */







/* 資產長條：投入資產＝滿倉綠、現金＝防守紅、長抱＝灰 */







/* 與長抱比較：贏綠、輸紅、平手灰 */




/* 規則卡狀態色同步，避免下半頁再出現另一套綠紅 */






/* ===== v4.7.71｜優雅回歸：狀態色只作點綴，不主導頁面 ===== */


/* 目前策略狀態：回歸白底與中性文字，大面積不染色 */






/* 預估買回點位只在小標籤上保留語意，不把大數字染色 */




/* 年度訊號：正文保持中性，只有 marker / badge / bar 有狀態色 */


.compact-event-date{color:var(--elegant-sub);}.compact-event-reason{color:var(--elegant-sub);}

#swingPage .compact-event{border-bottom-color:var(--elegant-line);}#fundPage .compact-event{border-bottom-color:var(--elegant-line);}

/* 小圓點才使用狀態色 */



/* 狀態 badge 使用非常淡的底色 */
#swingPage .swing-event-badge.current.bigbuy{
  color:var(--elegant-full);
  background:var(--elegant-full-bg);
}#fundPage .swing-event-badge.current.bigbuy{
  color:var(--elegant-full);
  background:var(--elegant-full-bg);
}
#swingPage .swing-event-badge.current.bigsell{
  color:var(--elegant-defense);
  background:var(--elegant-defense-bg);
}#fundPage .swing-event-badge.current.bigsell{
  color:var(--elegant-defense);
  background:var(--elegant-defense-bg);
}

/* 配置膠囊回歸灰階，不跟狀態搶視線 */
#swingPage .compact-event-alloc.current.bigbuy{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#fundPage .compact-event-alloc.current.bigbuy{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#swingPage .compact-event-alloc.current.bigsell{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#fundPage .compact-event-alloc.current.bigsell{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#swingPage .compact-event-alloc.initial.bigbuy{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#fundPage .compact-event-alloc.initial.bigbuy{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#swingPage .compact-event-alloc.initial.bigsell{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}#fundPage .compact-event-alloc.initial.bigsell{
  color:var(--color-body);
  background:var(--color-canvas);
  border-color:var(--color-line);
}



.event-mini-bar>b{color:var(--color-body);font-weight:650;}.event-mini-bar.asset>b{font-weight:650;}.event-mini-bar.cash>b{font-weight:650;}.event-mini-bar.hold>b{font-weight:650;}


/* 與長抱比較：只用文字色，不再鋪整塊紅綠底 */
.latest-water-compare{
  
  border:0;
  padding:4px 0 0;
}.latest-water-compare.ahead{
  background:transparent;
  border:0;
  padding:4px 0 0;
}.latest-water-compare.behind{
  background:transparent;
  border:0;
  padding:4px 0 0;
}.latest-water-compare.even{
  background:transparent;
  border:0;
  padding:4px 0 0;
}




/* 安聯規則卡：標題回歸深灰，只留左側細色條 */




/* 細節頁所有說明文字避免過淺 */
#swingPage small{line-height:1.45;}#fundPage small{line-height:1.45;}

@media(max-width:520px){
  
}



/* 每筆只留下：日期／編號／狀態 + 兩條資產比較 */














/* 最新一筆只多保留一行輸贏摘要 */


/* 初始點不再用額外上框製造另一個區塊 */


@media(max-width:520px){
  

  

  

  
}

/* ===== v4.7.73｜優雅收斂：年度時間軸、安聯關鍵價位、規則折疊 ===== */

/* 1–2. 年度切換訊號：單一時間軸，不再有卡片堆疊感 */



#swingPage .compact-event-list{
  
  margin-top:2px;
}#fundPage .compact-event-list{
  
  margin-top:2px;
}









/* 3. 安聯：最新淨值只在「目前策略狀態」出現一次；此卡只留關鍵價位 */

#fundPage .fund-market-duplicate{
  display:none;
}




/* 4. 策略規則：預設只顯示摘要，需要時再展開 */




.strategy-rules-summary-brief{
  grid-column:1;
  
  font-size:10.5px;
  font-weight:500;
  line-height:1.45;
}




.strategy-rules-detail-body{
  padding:14px 18px 18px;
}
#swingPage .strategy-rules-detail-body .swing-rule-flow{
  margin-top:0;
}

@media(max-width:520px){
  
  
  
  #fundPage .fund-market-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  
  
  .strategy-rules-summary-brief{font-size:9.5px;}
  
  .strategy-rules-detail-body{padding:12px 15px 15px;}
}

/* v4.7.74 fix: force current allocation to render as two lines */




/* ===== v4.7.76｜目前策略狀態：更緊湊、移除重複狀態字樣 ===== */








/* 「預估買回點位」屬於重複層級，只留下實際觸發條件與價格 */



/* 觸發價的大數字直接沿用中控台燈號語意：防守紅、恢復滿倉綠 */





/* ===== v4.7.77｜全站色彩系統重設：優雅、直觀、易讀 ===== */
:root{
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  /* 兼容既有變數，避免舊規則把顏色拉回去 */
  
  
  
  
  
  
  
  
  
  
  --ui-sub:var(--ss-sub);
  
  
  
  --ui-cash:var(--ss-defense);
  --ui-hold:var(--ss-hold);
  --ui-danger:var(--ss-defense);
  --ui-positive:var(--ss-full);
  --dash-full-text:var(--ss-full);
  --dash-full-dot:var(--ss-full);
  --dash-full-bg:var(--ss-full-soft);
  
  
  --dash-defense-text:var(--ss-defense);
  --dash-defense-dot:var(--ss-defense);
  --dash-defense-bg:var(--ss-defense-soft);
  
  
  --dash-warning-text:var(--ss-warning);
  --dash-warning-bg:var(--ss-warning-soft);
  
  --dash-neutral-text:var(--ss-sub);
  
  --dash-neutral-border:var(--ss-line);
  --elegant-text:var(--ss-ink);
  --elegant-sub:var(--ss-sub);
  --elegant-muted:var(--ss-muted);
  --elegant-line:var(--ss-line);
  --elegant-surface:var(--ss-surface);
  --elegant-soft:var(--color-surface-soft);
  --elegant-full:var(--ss-full);
  --elegant-full-bg:var(--ss-full-soft);
  --elegant-defense:var(--ss-defense);
  --elegant-defense-bg:var(--ss-defense-soft);
  --elegant-warning:var(--ss-warning);
  --elegant-warning-bg:var(--ss-warning-soft);
  --elegant-hold:var(--ss-hold);
}



/* 導覽與一般操作：只用品牌霧藍 */










/* 全站卡片保持白色，狀態不再染整張卡 */



/* 字色層級 */

.compact-event-exec{
  color:var(--ss-sub);
}

/* 中控台燈號：狀態色只出現在小面積元件 */





/* 詳細頁目前配置：有部位的資產才著色，0% 降為灰色 */







/* 切換價：恢復綠、防守紅 */



/* 年度訊號：節點、標籤與資產條採同一語意 */
#swingPage .compact-event-marker.bigbuy{
  background:var(--ss-full);
  color:var(--color-surface);
}#fundPage .compact-event-marker.bigbuy{
  background:var(--ss-full);
  color:var(--color-surface);
}
#swingPage .compact-event-marker.bigsell{
  background:var(--ss-defense);
  color:var(--color-surface);
}#fundPage .compact-event-marker.bigsell{
  background:var(--ss-defense);
  color:var(--color-surface);
}
#swingPage .swing-event-badge.bigbuy{
  color:var(--ss-full);
  background:var(--ss-full-soft);
}#fundPage .swing-event-badge.bigbuy{
  color:var(--ss-full);
  background:var(--ss-full-soft);
}#swingPage .swing-event-badge.initial.bigbuy{
  color:var(--ss-full);
  background:var(--ss-full-soft);
}#fundPage .swing-event-badge.initial.bigbuy{
  color:var(--ss-full);
  background:var(--ss-full-soft);
}
#swingPage .swing-event-badge.bigsell{
  color:var(--ss-defense);
  background:var(--ss-defense-soft);
}#fundPage .swing-event-badge.bigsell{
  color:var(--ss-defense);
  background:var(--ss-defense-soft);
}#swingPage .swing-event-badge.initial.bigsell{
  color:var(--ss-defense);
  background:var(--ss-defense-soft);
}#fundPage .swing-event-badge.initial.bigsell{
  color:var(--ss-defense);
  background:var(--ss-defense-soft);
}







.latest-water-compare.ahead{color:var(--ss-full);}
.latest-water-compare.behind{color:var(--ss-defense);}
.latest-water-compare.even{color:var(--ss-sub);}

/* 規則區：文字中性，只留下細小狀態提示 */

.strategy-rules-summary-brief{color:var(--ss-sub);}
#swingPage .swing-rule-action{
  
  background:var(--color-canvas);
  border-color:var(--ss-line);
}



/* 中控台關鍵切換點：只用文字與細框提示，不做大面積填色 */







/* 市場漲跌沿用台灣慣例：漲紅、跌綠，避免與策略狀態混為一談 */




/* 表單與提示 */
.status{
  color:var(--ss-sub);
}
.status{
  
  border-color:var(--ss-line);
}


/* ===== v4.7.78｜關鍵數字淡底強調 ===== */
/* 原則：只強調「現在持有什麼」與「下一個決策價位」；一般行情維持白底 */









/* 中控台的下一個關鍵價位也採同一語言 */







/* ===== 年度切換訊號：編號燈號與策略長條共用狀態色 ===== */
/* 滿倉／買回為綠色，防守為紅色；長抱比較維持中性。 */
#swingPage .compact-event .swing-event-badge{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#fundPage .compact-event .swing-event-badge{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#swingPage .compact-event .swing-event-badge.bigbuy{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#fundPage .compact-event .swing-event-badge.bigbuy{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#swingPage .compact-event .swing-event-badge.bigsell{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#fundPage .compact-event .swing-event-badge.bigsell{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#swingPage .compact-event .swing-event-badge.current{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#fundPage .compact-event .swing-event-badge.current{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#swingPage .compact-event .swing-event-badge.initial{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}#fundPage .compact-event .swing-event-badge.initial{
  color:var(--ss-ink);
  background:transparent;
  border-color:transparent;
  padding-left:0;
  padding-right:0;
}

#swingPage .compact-event-alloc{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#fundPage .compact-event-alloc{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#swingPage .compact-event-alloc.bigbuy{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#fundPage .compact-event-alloc.bigbuy{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#swingPage .compact-event-alloc.bigsell{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#fundPage .compact-event-alloc.bigsell{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#swingPage .compact-event-alloc.current{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#fundPage .compact-event-alloc.current{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#swingPage .compact-event-alloc.initial{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}#fundPage .compact-event-alloc.initial{
  color:var(--ss-sub);
  background:transparent;
  border-color:transparent;
}

/* 今、初與歷史編號一樣，依當時策略狀態顯示燈號色。 */
#swingPage .compact-event-marker.current,
#fundPage .compact-event-marker.current,
#swingPage .compact-event-marker.initial,
#fundPage .compact-event-marker.initial{
  background:var(--color-muted);
  color:var(--color-surface);
}
#swingPage .compact-event-marker.current.bigbuy,
#fundPage .compact-event-marker.current.bigbuy,
#swingPage .compact-event-marker.initial.bigbuy,
#fundPage .compact-event-marker.initial.bigbuy{
  background:var(--signal-positive);
  color:var(--color-surface);
}
#swingPage .compact-event-marker.current.bigsell,
#fundPage .compact-event-marker.current.bigsell,
#swingPage .compact-event-marker.initial.bigsell,
#fundPage .compact-event-marker.initial.bigsell{
  background:var(--signal-negative);
  color:var(--color-surface);
}

/* 歷史切換編號維持唯一紅綠提示 */
#swingPage .compact-event-marker.bigbuy:not(.current):not(.initial),
#fundPage .compact-event-marker.bigbuy:not(.current):not(.initial){
  background:var(--signal-positive);
  color:var(--color-surface);
}
#swingPage .compact-event-marker.bigsell:not(.current):not(.initial),
#fundPage .compact-event-marker.bigsell:not(.current):not(.initial){
  background:var(--signal-negative);
  color:var(--color-surface);
}

/* 策略長條與同列編號燈號使用相同狀態色。 */
.event-mini-track{
  background:var(--color-loading-soft);
}
.event-mini-bar.asset .event-mini-track i,
.event-mini-bar.cash .event-mini-track i{
  background:var(--color-sub);
}
.event-mini-bar.bigbuy .event-mini-track i{
  background:var(--signal-positive);
}
.event-mini-bar.bigsell .event-mini-track i{
  background:var(--signal-negative);
}
.event-mini-bar.hold .event-mini-track i{
  background:var(--color-muted);
}
.event-mini-bar.asset>b{
  color:var(--color-sub);
}
.event-mini-bar.cash>b{
  color:var(--color-sub);
}
.event-mini-bar.hold>b{
  color:var(--color-sub);
}
.event-mini-bar>span{
  color:var(--color-sub);
}

/* 最新輸贏只用文字，不加色塊 */
.latest-water-compare{
  background:transparent;
  border-color:transparent;
}

/* ===== v4.7.80｜正二／安聯年度切換訊號：單一共用視覺規格 ===== */
/* 兩頁只允許資產名稱不同，其餘尺寸、間距、時間軸、長條與字級完全一致。 */


#swingPage .swing-recent-list{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  border-radius:0;
}#fundPage .swing-recent-list{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  border-radius:0;
}
#swingPage .compact-event-list{
  position:relative;
  display:grid;
  gap:0;
  margin:0;
  padding:0;
}#fundPage .compact-event-list{
  position:relative;
  display:grid;
  gap:0;
  margin:0;
  padding:0;
}















/* 所有燈號（初、今、歷史編號）都依策略狀態顯示紅綠。 */



/* 長條只比較資產，不再使用紅綠狀態色。 */







@media(max-width:520px){
  
  
  
  
  
  
  
  
  
}

/* ===== v4.7.83｜活力版色彩微調：提高飽和但保留優雅 ===== */
:root{
  --ss-bg:var(--color-canvas);
  --ss-surface:var(--color-surface);
  --ss-ink:var(--color-ink);
  --ss-body:var(--color-body);
  --ss-sub:var(--color-sub);
  --ss-muted:var(--color-muted);
  
  --ss-line-strong:var(--color-line-strong);

  /* 介面色：由霧藍提升為較清透的石板藍 */
  
  --ss-blue-hover:var(--color-body);
  --ss-blue-soft:var(--color-loading-soft);

  /* 狀態色：中度飽和，避免螢光感 */
  --ss-full:var(--signal-positive);
  --ss-full-soft:var(--signal-positive-soft);
  --ss-defense:var(--signal-negative);
  --ss-defense-soft:var(--signal-negative-soft);
  --ss-warning:var(--color-warning);
  --ss-warning-soft:var(--signal-warning-soft);
  --ss-hold:var(--color-muted);

  --dash-full-soft:var(--signal-positive-soft);
  --dash-full-border:var(--signal-positive-line);
  --dash-defense-soft:var(--signal-negative-soft);
  --dash-defense-border:var(--signal-negative-line);
  --dash-warning-border:var(--signal-warning-line);
  --dash-neutral-bg:var(--color-loading-soft);
}



/* 分頁：提高品牌感但不做厚重實色 */



/* 主要按鈕：使用較有活力的藍，但降低陰影 */



/* 詳細頁標籤：用非常淡的品牌藍帶出層次 */


/* 目前策略狀態：只在關鍵數字小面積上色 */




/* 下一個觸發價：底色柔和、數字更有精神 */



/* 中控台燈號略增飽和；卡片仍保持白底 */
#dashboardPage .dashboard-state-badge.full{
  color:var(--ss-full);
  background:var(--ss-full-soft);
  border-color:var(--signal-positive-line);
}#dashboardPage .dashboard-state-badge.normal{
  
  
  border-color:var(--signal-positive-line);
}#dashboardPage .dashboard-state-badge.buy{
  
  
  border-color:var(--signal-positive-line);
}#dashboardPage .dashboard-state-badge.recovery{
  color:var(--ss-full);
  background:var(--ss-full-soft);
  border-color:var(--signal-positive-line);
}
#dashboardPage .dashboard-state-badge.defense{
  
  
  border-color:var(--signal-negative-line);
}#dashboardPage .dashboard-state-badge.sell{
  
  
  border-color:var(--signal-negative-line);
}#dashboardPage .dashboard-state-badge.bigsell{
  color:var(--ss-defense);
  background:var(--ss-defense-soft);
  border-color:var(--signal-negative-line);
}
#dashboardPage .dashboard-state-badge.warning{
  
  
  border-color:var(--signal-warning-line);
}#dashboardPage .dashboard-state-badge.pending{
  color:var(--ss-warning);
  background:var(--ss-warning-soft);
  border-color:var(--signal-warning-line);
}

/* 年度切換訊號：紅綠只留編號，長條改成更有活力的質感色 */








/* 卡片維持白底，但 hover/層次更輕盈 */


/* 策略規則：摘要用品牌藍提示可互動性，內容仍中性 */


/* =========================================================
   v4.7.92 — Dashboard visual-only redesign
   Goal: fewer separators, more whitespace, calmer hierarchy.
   No strategy / data / interaction logic changes.
   ========================================================= */
@media (min-width: 761px){
  
  #swingPage{max-width:none;width:100%;margin-left:auto;margin-right:auto;}#fundPage{max-width:none;width:100%;margin-left:auto;margin-right:auto;}
}

/* Navigation: quiet flat strip, active state carried by type + underline */





/* Hero */








/* Dashboard cards: no internal line maze; spacing carries hierarchy */





#dashboardPage .dashboard-state-badge{
  
  border-width:1px;
  
  
}

/* Market area */









/* Allocation: pure typography, no separator */



/* Recent change stays in DOM/data but is intentionally visually removed. */


/* Trigger: no large tinted panel, just semantic label + number */






/* Footer button settles at card bottom */





/* Tablet/mobile keeps the same visual language but stacks cards. */
@media(max-width:900px){
  
  
}
@media(max-width:760px){
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* =========================================================
   v4.7.93 — Dashboard preview-faithful layout correction
   Visual-only. Explicitly neutralize legacy min-heights.
   ========================================================= */
@media (min-width: 901px){
  

  

  

  

  

  

  

  

  

  

  
}

/* Keep the information rhythm compact on tablet/mobile as well. */
@media (max-width:900px){
  
}

/* ===== Dashboard mockup-faithful layout =====
   Presentation only. Strategy logic / data calculations remain untouched. */






.dashboard-tab-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:currentColor;
}







#dashboardPage .dashboard-section-flat{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}






#dashboardPage .dashboard-state-badge{
  padding:7px 11px;
  border-radius:9px;
  font-size:14px;
  line-height:1;
  font-weight:650;
}
#dashboardPage .dashboard-state-badge.normal{
  border:1px solid var(--signal-positive-line);
  
  
}#dashboardPage .dashboard-state-badge.buy{
  border:1px solid var(--signal-positive-line);
  background:var(--signal-positive-soft);
  color:var(--signal-positive);
}
#dashboardPage .dashboard-state-badge.defense{
  border:1px solid var(--signal-negative-line);
  background:var(--signal-negative-soft);
  color:var(--signal-negative);
}#dashboardPage .dashboard-state-badge.sell{
  border:1px solid var(--signal-negative-line);
  background:var(--signal-negative-soft);
  color:var(--signal-negative);
}
#dashboardPage .dashboard-state-badge.warning{
  border:1px solid var(--signal-warning-line);
  background:var(--signal-warning-soft);
  color:var(--color-warning);
}






















@media(max-width:900px){
  
  
  
  
  
}
@media(max-width:700px){
  
  
  
  .dashboard-tab-icon svg{width:15px;height:15px;}
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* ===== v4.7.93 dashboard navigation width fix =====
   Override the global .tab-btn { flex:1 } so desktop tabs no longer stretch
   evenly across the whole navigation bar. */
@media (min-width:701px){
  
  
}

/* ===== v4.7.93｜正二 / 安聯詳細頁：欄位標題字體統一 ===== */
/* 只統一視覺字級與字重，不更動任何資料、策略或 JS 邏輯。 */


/* 欄位標題：兩頁全部採同一規格 */


/* 「預估買回點位」實際顯示的觸發條件標題也沿用欄位標題規格 */


/* 區塊標題：保留層級，但正二 / 安聯使用完全相同字體規格 */






/* 目前策略狀態標題 */


/* 規則內各階段標題 */
#swingPage .swing-rule strong{
  font-family:inherit;
  
  
  
  letter-spacing:0;
}

@media(max-width:520px){
  #swingPage .swing-stage-box label{
    font-size:10.5px;
  }#fundPage .fund-stage-box label{
    font-size:10.5px;
  }#fundPage .fund-market-field > label{
    font-size:10.5px;
  }
  
  
  #swingPage .swing-rule strong{
    font-size:13px;
  }
}

/* =====================================================================
   v4.7.94 VISUAL SYSTEM — detailed pages rebuilt from Dashboard language
   Layout / typography only. Strategy logic and JS are untouched.
   ===================================================================== */

/* Shared canvas */
#swingPage{
  color:var(--color-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;
}#fundPage{
  color:var(--color-ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;
}

/* Page heading = same hierarchy as Dashboard hero */



/* All major blocks inherit the Dashboard card treatment */







/* Field labels = exactly the Dashboard small-label scale */
#swingPage .swing-stage-box label{
  
  font-family:inherit;
  
  
  
  
}#fundPage .fund-stage-box label{
  
  font-family:inherit;
  
  
  
  
}#swingPage .swing-recovery-condition span{
  
  font-family:inherit;
  
  
  
  
}#fundPage .fund-indicator-sub{
  
  font-family:inherit;
  
  
  
  letter-spacing:0;
}

/* Main numbers = Dashboard price scale */
#fundPage .fund-indicator-value{
  
  font-family:inherit;
  
  
  
  
}#swingPage .swing-stage-box > strong{
  
  font-family:inherit;
  
  
  
  
}#fundPage .fund-stage-box > strong{
  
  font-family:inherit;
  
  
  
  
}




/* Three status columns: clean separators, no nested-card look */





/* Fund market fields use same restrained treatment */

#fundPage .fund-market-field{
  
  border-right:1px solid var(--color-loading-soft);
}
#fundPage .fund-market-field:first-child{padding-left:0;}
#fundPage .fund-market-field:last-child{padding-right:0;}
#fundPage .fund-indicator-box{
  
  
  
  border-radius:0;
  
  box-shadow:none;
}


/* Selector follows Dashboard outlined controls */






/* Refresh buttons = Dashboard refresh button */



/* Helper/status text = Dashboard note tone */


/* Secondary forecast / recovery info: quieter nested areas */
#swingPage .strategy-trigger-detail{
  
  
  border-top:1px solid var(--color-loading-soft);
}
#swingPage .swing-stage-box{
  border:1px solid var(--color-loading-soft);
  border-radius:12px;
  background:var(--color-surface-soft);
  box-shadow:none;
}#fundPage .fund-stage-box{
  
  
  
  box-shadow:none;
}#swingPage .swing-recovery-condition{
  border:1px solid var(--color-loading-soft);
  border-radius:12px;
  background:var(--color-surface-soft);
  box-shadow:none;
}#swingPage .swing-recovery-earliest{
  border:1px solid var(--color-loading-soft);
  border-radius:12px;
  background:var(--color-surface-soft);
  box-shadow:none;
}

/* Rules: same typography and calmer card language */



#swingPage .strategy-rules-detail-body{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--color-loading-soft);
}#fundPage .strategy-rules-detail-body{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--color-loading-soft);
}
#swingPage .swing-rule{
  border:1px solid var(--color-loading-soft);
  border-radius:12px;
  background:var(--color-surface-soft);
  box-shadow:none;
}



/* Charts and signal lists */

#swingPage .swing-chart-shell{
  border-radius:12px;
  overflow:hidden;
}#fundPage .swing-chart-shell{
  border-radius:12px;
  overflow:hidden;
}
#swingPage .annual-loading{
  color:var(--color-muted);
  font-size:12px;
}#fundPage .annual-loading{
  color:var(--color-muted);
  font-size:12px;
}

/* Desktop vertical rhythm */


@media(max-width:700px){
  
  

  
  

  
  
  
  

  #fundPage .fund-market-row{display:grid;grid-template-columns:1fr;}
  #fundPage .fund-market-field{
    padding:15px 0;
    border-right:0;
    border-bottom:1px solid var(--color-loading-soft);
  }
  #fundPage .fund-market-field:first-child{padding-top:0;}
  #fundPage .fund-market-field:last-child{padding-bottom:0;border-bottom:0;}

  #fundPage .fund-indicator-value{font-size:22px;}#swingPage .swing-stage-box > strong{font-size:22px;}#fundPage .fund-stage-box > strong{font-size:22px;}
  

  
}

/* ===== v4.7.95｜2026 狀態切換訊號：線條配色收斂 =====
   只調整年度訊號內的資產比較線，不動策略與資料邏輯。
   狀態語意留給 marker / badge；比較線統一為中性藍灰＋灰。 */


/* 策略部位：不論正二／基金／現金，都使用同一條低飽和藍灰 */




/* 線條旁數字與名稱全部回到中性色，避免再產生第三、第四套顏色 */




/* ===== v4.7.96｜全站色彩系統重整：更有活力，但維持系統感與秩序 =====
   原則：
   1) 主色回歸系統藍；
   2) 狀態色使用綠 / 橘 / 紅，但只在需要處發聲；
   3) 所有淺底、外框、標籤共用同一組低飽和色階；
   4) 三個頁面（中控台 / 正二 / 安聯）同步套用。 */
:root{
  --bg:var(--color-canvas);
  --card:var(--color-surface);
  --line:var(--color-line);
  --text:var(--color-ink);
  --muted:var(--color-sub);
  --blue:var(--color-action);
  --green:var(--signal-positive);
  --amber:var(--signal-warning);
  --red:var(--signal-negative);

  --signal-attack:var(--signal-positive);
  --signal-attack-dot:var(--signal-positive);
  --signal-attack-bg:var(--signal-positive-soft);
  --signal-defense:var(--signal-negative);
  --signal-defense-dot:var(--signal-negative);
  --signal-defense-bg:var(--signal-negative-soft);
  --signal-neutral:var(--color-body);
  --signal-neutral-dot:var(--color-muted);
  --signal-neutral-bg:var(--color-surface-soft);
  --signal-neutral-border:var(--color-line);
}



.mini{
  border-color:var(--line);
}#swingPage .swing-rule{
  border-color:var(--line);
}#swingPage .swing-stage-forecast{
  border-color:var(--line);
}#swingPage .swing-stage-box{
  border-color:var(--line);
}#fundPage .fund-stage-forecast{
  border-color:var(--line);
}#fundPage .fund-stage-box{
  border-color:var(--line);
}#swingPage .swing-recent-list{
  border-color:var(--line);
}





input:focus{border-color:var(--color-action-mid);box-shadow:0 0 0 4px rgba(59,130,246,.10);}




.only{
  color:var(--signal-warning);
  background:var(--signal-warning-soft);
  border-color:var(--signal-warning-line);
}

.status{
  background:var(--color-surface-soft);
}

#swingPage{
  --swing-soft:var(--color-action-soft);
  --swing-soft-2:var(--color-action-fill);
  --swing-border:var(--color-action-line-soft);
  --swing-border-strong:var(--color-action-mid);
  --swing-text:var(--color-action-strong);
  --swing-strong:var(--color-action-strong);
  
  
  
}
#fundPage{
  
  
  
  
  
  --fund-border:var(--color-line);
}

.advice{
  border-color:var(--color-action-line-soft);
  background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-subtle) 100%);
}



























/* 詳細頁的年度切換訊號：恢復一點活力，但仍只保留三條有秩序的配色 */







/* 圖例與時間軸圓點統一回到系統色階 */






/* ===== v4.7.97｜全站色彩一致性修正 =====
   將歷史版本殘留的藍綠、青色、褐橘、舊紅與多套灰階收斂為單一系統色盤。 */
:root{
  --ui-blue:var(--color-action);
  --ui-blue-strong:var(--color-action-strong);
  --ui-blue-soft:var(--color-action-soft);
  --ui-blue-border:var(--color-action-line-soft);
  --ui-green:var(--signal-positive);
  --ui-green-bright:var(--signal-positive);
  
  --ui-orange:var(--signal-warning);
  --ui-orange-bright:var(--color-warning);
  
  --ui-red:var(--signal-negative);
  
  --ui-ink:var(--color-ink);
  --ui-text:var(--color-text-strong);
  --ui-muted:var(--color-sub);
  --ui-faint:var(--color-muted);
  --ui-line:var(--color-line);
  --ui-surface:var(--color-surface-soft);
}

/* 全站介面語意色 */


.warn{color:var(--ui-orange);}


/* 狀態標籤只使用四個語意：正常綠、防守紅、待執行橘、中性灰 */
.dashboard-state-badge.buy{background:var(--ui-green-soft);color:var(--ui-green);}
.dashboard-state-badge.sell{background:var(--ui-red-soft);color:var(--ui-red);}

.dashboard-state-badge.loading{background:var(--color-loading-soft);color:var(--ui-muted);}

/* 正二與安聯共用同一套訊號色，不再各有一套 cyan / teal */
#swingPage{
  --swing-blue:var(--ui-blue);
  --swing-green:var(--ui-green);
  --swing-orange:var(--ui-orange);
  --fund-blue:var(--ui-blue);
  --fund-blue-strong:var(--ui-blue-strong);
  --fund-green:var(--ui-green);
  --fund-orange:var(--ui-orange);
  --fund-red:var(--ui-red);
}#fundPage{
  --swing-blue:var(--ui-blue);
  --swing-green:var(--ui-green);
  --swing-orange:var(--ui-orange);
  --fund-blue:var(--ui-blue);
  --fund-blue-strong:var(--ui-blue-strong);
  --fund-green:var(--ui-green);
  --fund-orange:var(--ui-orange);
  --fund-red:var(--ui-red);
}






/* 2026 狀態切換：狀態紅綠只留在編號/徽章；資產比較線固定藍、綠、灰 */






/* 中控台三卡的狀態點綴與詳細策略按鈕使用相同語意色 */







/* 中性 UI 全部回到單一藍灰階 */
label{color:var(--ui-muted);}.meta{color:var(--ui-muted);}.note{color:var(--ui-muted);}


/* ===== v4.7.98｜中控台狀態色校正：側邊色與目前狀態一致，並移除螢光綠 ===== */
:root{
  --ui-red-soft:var(--signal-negative-line);
  --ui-orange-soft:var(--signal-warning-line);
  --ui-green-soft:var(--signal-positive-line);
}

/* 側邊色不再綁定卡片順序，改跟著實際狀態走 */





/* 對應的完整策略按鈕邊框也同步狀態，不再由第幾張卡片決定 */





/* 覆蓋先前依 nth-child 指定的色彩，避免狀態改變後顏色不跟著變 */



/* 螢光綠改成柔和鼠尾草綠，避免刺眼 */

#dashboardPage .dashboard-state-badge.normal{background:var(--signal-positive-soft);color:var(--ui-green);}


/* ===== v4.7.99｜整體收斂修正 ===== */

/* 1) 中控台：完整策略按鈕回到黑色中性，不再帶狀態色 */



/* 2) 2026 狀態切換訊號：保留狀態號碼，長條全部收斂為單一中性色 */





/* 3) 拿掉規則收合，改成固定標題列 */


.strategy-rules-static-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  
  
  border-bottom:1px solid var(--color-line);
}

.strategy-rules-static-head .strategy-rules-summary-brief{
  font-size:12px;
  color:var(--color-sub);
  white-space:nowrap;
}
@media(max-width:640px){
  .strategy-rules-static-head{flex-direction:column;align-items:flex-start;}
  .strategy-rules-static-head .strategy-rules-summary-brief{white-space:normal;}
}

/* 4) 「市場關鍵價位」與「選擇正二 ETF」共用同一套視覺語言 */




#fundPage .fund-market-field{
  
  
  
  box-shadow:none;
}



#fundPage .fund-market-row{
  display:grid;
  
  
}



#fundPage .fund-indicator-box{
  border:0;
  background:transparent;
  padding:0;
  min-height:auto;
}


#swingPage #swingDataStatus{
  margin-top:12px;
  background:var(--color-surface-soft);
  border:1px solid var(--color-line);
}#fundPage #fundDataStatus{
  margin-top:12px;
  background:var(--color-surface-soft);
  border:1px solid var(--color-line);
}

@media(max-width:720px){
  #fundPage .fund-market-row{grid-template-columns:1fr;}
  
}


/* ===== v4.8.00｜年度切換訊號：長條跟隨號碼色，長抱只留初 / 今 ===== */








/* ===== v4.8.01｜安聯頁面向正二頁面靠齊 ===== */

/* 頁首節奏與正二一致 */
/* 市場關鍵價位：延續正二選擇器的整體感 */


#fundPage .fund-market-row{
  gap:12px;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#fundPage .fund-market-field{
  
  
  border:1px solid var(--color-line);
  border-radius:16px;
  background:var(--color-surface-subtle);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
#fundPage .fund-market-field:first-child{
  
  border-right:1px solid var(--color-line);
}#fundPage .fund-market-field:last-child{
  
  border-right:1px solid var(--color-line);
}
#fundPage .fund-market-field > label{
  min-height:auto;
  margin-bottom:6px;
  
  
  
}
#fundPage .fund-indicator-box{
  margin-top:0;
}

#fundPage .fund-indicator-sub{
  margin-top:4px;
  
  
}


/* 目前策略狀態：直接沿用正二頁節奏 */




#fundPage .strategy-trigger-detail{
  
  
  border-top:1px solid var(--color-line);
}
#fundPage .fund-stage-forecast{
  
  
  border-top:1px solid var(--color-line);
  padding-left:0;
  padding-right:0;
  padding-bottom:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  background:transparent;
}
#fundPage .fund-stage-box{
  border-radius:15px;
  
  background:var(--color-surface-soft);
  border:1px solid var(--color-loading-soft);
}
#fundPage .fund-stage-box.bearish-strong strong{color:var(--signal-negative);}
#fundPage .fund-stage-box.bullish-strong strong{color:var(--signal-positive);}
#fundPage .fund-stage-box strong{
  
  font-size:26px;
  line-height:1.05;
}
#fundPage .fund-stage-box small{
  margin-top:7px;
  line-height:1.5;
}
#fundPage .fund-stage-forecast-note{
  
  padding:0 2px;
  
  
  
}

/* 規則區改成與正二相同語言 */







/* 年度切換訊號與規則卡之間節奏跟正二一致 */


@media(max-width:700px){
  #fundPage .fund-market-row{grid-template-columns:1fr;}
  #fundPage .fund-market-field{min-height:0;}
  
  #fundPage .fund-stage-box{padding:14px 15px;}
  #fundPage .fund-stage-box strong{font-size:25px;}
  
  
}


/* ===== v4.8.02｜安聯策略規則版型完全對齊正二 =====
   安聯與正二現在共用完全相同的 DOM class 與視覺規則。 */









@media(max-width:700px){
  
  
  
  
}


/* ===== v4.8.03｜正二 / 安聯欄位標題統一＋目前策略狀態改採中控台語言 ===== */

/* A. 所有「區塊標題」只有一套規格 */


/* B. 所有「欄位標題」統一：尺寸、顏色、字重完全相同 */
#swingPage .swing-stage-box > label{
  margin:0 0 6px;
  color:var(--color-sub);
  font-family:inherit;
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#fundPage .fund-stage-box > label{
  margin:0 0 6px;
  color:var(--color-sub);
  font-family:inherit;
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#fundPage .fund-market-field > label{
  margin:0 0 6px;
  
  font-family:inherit;
  
  
  
  
}#swingPage .swing-recovery-condition > span{
  margin:0 0 6px;
  color:var(--color-sub);
  font-family:inherit;
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#swingPage .swing-recovery-earliest > span{
  margin:0 0 6px;
  color:var(--color-sub);
  font-family:inherit;
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}

/* 次級欄位說明也只留一套灰階 */
#swingPage .swing-stage-box > small{
  color:var(--color-muted);
  font-size:11px;
  line-height:1.45;
  font-weight:500;
}#fundPage .fund-stage-box > small{
  color:var(--color-muted);
  font-size:11px;
  line-height:1.45;
  font-weight:500;
}#swingPage .swing-recovery-condition > small{
  color:var(--color-muted);
  font-size:11px;
  line-height:1.45;
  font-weight:500;
}#swingPage .swing-recovery-earliest > small{
  color:var(--color-muted);
  font-size:11px;
  line-height:1.45;
  font-weight:500;
}

/* C. 目前策略狀態：改成中控台卡片的結構語言 */


/* 正常 / 滿倉 = 柔和綠；防守 = 柔和紅；待確認 = 柔和橘 */







/* 中控台同款狀態 badge；文字直接由既有狀態 class 決定，不增加策略邏輯 */










/* D. 目前策略狀態內三欄也完全同步 */







/* 下一切換點只讓數值用狀態色，欄位標題維持同一灰色 */





/* ===== v4.8.04｜詳細頁緊湊化：保留新版層級，減少無效留白 ===== */

/* 頁首少一點空白 */


/* 正二 / 安聯所有主要區塊統一縮短節奏 */



/* 上方選擇器 / 關鍵價位不要撐高 */

#fundPage .fund-market-field{
  min-height:76px;
  padding:11px 14px;
}
#fundPage .fund-market-field:first-child{
  padding:11px 14px;
}#fundPage .fund-market-field:last-child{
  padding:11px 14px;
}



/* 目前策略狀態：仍 highlight，但改成資訊密度更高 */






/* 下一步詳細說明靠近主狀態，不再形成第二大塊空白 */
#swingPage .strategy-trigger-detail{
  margin-top:12px;
  padding-top:12px;
}#fundPage .strategy-trigger-detail{
  margin-top:12px;
  padding-top:12px;
}#swingPage .swing-stage-forecast{
  margin-top:12px;
  padding-top:12px;
}#fundPage .fund-stage-forecast{
  margin-top:12px;
  padding-top:12px;
}
#swingPage .swing-stage-box{
  padding:12px 14px;
}#fundPage .fund-stage-box{
  padding:12px 14px;
}
#swingPage .swing-stage-box strong{
  margin-top:3px;
}#fundPage .fund-stage-box strong{
  margin-top:3px;
}
#swingPage .swing-stage-forecast-note{
  margin-top:8px;
}#fundPage .fund-stage-forecast-note{
  margin-top:8px;
}

/* 年度訊號 / 規則區也收緊，但維持可讀性 */

.strategy-rules-static-head{
  padding-bottom:9px;
  margin-bottom:10px;
}
#swingPage .swing-rule{
  padding:10px 12px;
}#fundPage .swing-rule{
  padding:10px 12px;
}
#swingPage .swing-rule-flow{
  gap:8px;
}#fundPage .swing-rule-flow{
  gap:8px;
}

@media(max-width:700px){
  
  
  
}


/* ===== v4.8.05｜執行滿倉價語意與色彩統一 ===== */
/* 中控台與正二 / 安聯詳細頁，執行滿倉價一律使用同一系統綠。 */



/* ===== v4.8.06｜全站字級 / 顏色語意稽核與統一 =====
   同功能只使用同一套視覺語意：
   區塊標題 18px / 欄位標題 12px / 主數值 24px / 輔助文字 11px。
   一般資訊深灰；互動藍；滿倉綠；防守紅；待執行橘。 */
:root{
  --ss-text:var(--color-ink);
  --ss-text-2:var(--color-text-strong);
  --ss-label:var(--color-sub);
  --ss-help:var(--color-muted);
  --ss-line:var(--color-line);
  --ss-line-soft:var(--color-loading-soft);
  --ss-blue:var(--color-action);
  --ss-green:var(--signal-positive);
  --ss-red:var(--signal-negative);
  --ss-orange:var(--signal-warning);
}

/* A. 頁面 / 區塊標題：相同層級完全一致 */


/* B. 欄位標題：資料欄 / 狀態欄 / 關鍵價位全部同一規格 */
#swingPage .swing-stage-box label{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#fundPage .fund-stage-box label{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#fundPage .fund-market-field > label{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#swingPage .swing-recovery-condition span{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#swingPage .swing-recovery-earliest span{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#swingPage .event-mini-bar > span{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}#fundPage .event-mini-bar > span{
  color:var(--ss-label);
  font-size:12px;
  line-height:1.35;
  font-weight:600;
  letter-spacing:0;
}

/* C. 主數值：正式價格 / 淨值 / 關鍵價位統一 */
#fundPage .fund-indicator-value{
  color:var(--ss-text);
  font-size:24px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:-.02em;
}#swingPage .swing-stage-box > strong{
  color:var(--ss-text);
  font-size:24px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:-.02em;
}#fundPage .fund-stage-box > strong{
  color:var(--ss-text);
  font-size:24px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:-.02em;
}

/* 配置是文字型數值，三頁一致但比價格小一階 */


/* D. 次級說明 / 日期 / 狀態文字 */
#swingPage .swing-stage-forecast-note{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#fundPage .fund-stage-forecast-note{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#fundPage .fund-indicator-sub{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#swingPage .swing-rule small{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#fundPage .swing-rule small{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#swingPage .strategy-rules-summary-brief{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}#fundPage .strategy-rules-summary-brief{
  color:var(--ss-help);
  font-size:11px;
  line-height:1.55;
  font-weight:500;
}

/* E. 執行價：相同功能跨三頁固定同色與同層級 */
#swingPage .swing-stage-box.bullish-strong > strong{
  color:var(--ss-green);
}#fundPage .fund-stage-box.bullish-strong > strong{
  color:var(--ss-green);
}
#swingPage .swing-stage-box.bearish-strong > strong{
  color:var(--ss-red);
}#fundPage .fund-stage-box.bearish-strong > strong{
  color:var(--ss-red);
}



/* F. 狀態 badge：語意色僅在狀態元件使用 */
.dashboard-state-badge.normal{
  background:var(--signal-positive-soft);
  color:var(--ss-green);
}
.dashboard-state-badge.defense{
  background:var(--signal-negative-soft);
  color:var(--ss-red);
}
.dashboard-state-badge.warning{
  background:var(--signal-warning-soft);
  color:var(--ss-orange);
}

/* G. 相同按鈕同一套：更新=藍；完整策略=黑 */



/* H. 規則列：正二與安聯共用字級 / 顏色 */
#swingPage .swing-rule strong{
  color:var(--ss-text);
  font-size:14px;
  line-height:1.4;
  font-weight:650;
}#fundPage .swing-rule strong{
  color:var(--ss-text);
  font-size:14px;
  line-height:1.4;
  font-weight:650;
}
#swingPage .swing-rule-action{
  color:var(--ss-text-2);
  font-size:14px;
  font-weight:700;
}#fundPage .swing-rule-action{
  color:var(--ss-text-2);
  font-size:14px;
  font-weight:700;
}

/* I. 年度訊號：相同結構同字級，色彩只由狀態決定 */
#swingPage .compact-event-date{
  font-size:11px;
}#fundPage .compact-event-date{
  font-size:11px;
}#swingPage .compact-event-reason{
  font-size:11px;
}#fundPage .compact-event-reason{
  font-size:11px;
}#swingPage .compact-event-alloc{
  font-size:11px;
}#fundPage .compact-event-alloc{
  font-size:11px;
}
#swingPage .compact-event-date{
  color:var(--ss-label);
}#fundPage .compact-event-date{
  color:var(--ss-label);
}#swingPage .compact-event-reason{
  color:var(--ss-label);
}#fundPage .compact-event-reason{
  color:var(--ss-label);
}
#swingPage .event-mini-bar > b{
  font-size:11px;
  font-weight:650;
}#fundPage .event-mini-bar > b{
  font-size:11px;
  font-weight:650;
}

@media(max-width:520px){
  
  #fundPage .fund-market-field > label{
    font-size:11px;
  }
}

/* ---------------------------------------------------------------------
   Legacy component/theme styles end here.
   Current layout rules are intentionally isolated in:
   - layout-base.css
   - layout-dashboard.css
   - layout-swing.css
   - layout-fund.css
   Do not append page-layout patches to this file.
   --------------------------------------------------------------------- */


/* =====================================================================
   Shared strategy rules component — v4.12.3
   Used by both Swing and Fund detail pages. Page-specific rule layouts
   are intentionally not allowed here.
   ===================================================================== */
.strategy-rule-flow{
  display:grid;
  gap:8px;
  margin-top:0;
}
.strategy-rule{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 52px;
  gap:14px;
  align-items:center;
  padding:10px 12px;
  border:1px solid var(--color-loading-soft);
  border-radius:12px;
  background:var(--color-surface-soft);
  box-shadow:none;
}
.strategy-step{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border:1px solid var(--color-line);
  border-radius:50%;
  background:var(--color-canvas);
  color:var(--color-body);
  font-size:12px;
  font-weight:650;
  line-height:1;
}
.strategy-rule strong{
  display:block;
  margin-bottom:5px;
  color:var(--color-ink);
  font-size:14px;
  font-weight:650;
  line-height:1.4;
  letter-spacing:0;
}
.strategy-rule small{
  display:block;
  color:var(--color-muted);
  font-size:11px;
  font-weight:500;
  line-height:1.55;
}
.strategy-rule-action{
  align-self:center;
  color:var(--color-text-strong);
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  text-align:right;
  white-space:nowrap;
}
@media(max-width:700px){
  .strategy-rule{
    grid-template-columns:32px minmax(0,1fr);
    gap:11px 12px;
    padding:14px 14px 13px;
    border-radius:15px;
  }
  .strategy-step{width:27px;height:27px}
  .strategy-rule strong{margin-bottom:4px;font-size:14px}
  .strategy-rule small{line-height:1.6}
  .strategy-rule-action{
    grid-column:2;
    margin-top:1px;
    color:var(--color-sub);
    font-size:11px;
    text-align:left;
  }
}
@media(max-width:520px){
  .strategy-rule strong{font-size:13px}
}


/* Hidden state must override the grid layouts of optional trigger details. */
#swingPage .swing-stage-forecast-grid[hidden],
#swingPage .swing-recovery-breakdown[hidden],
#fundPage .fund-stage-forecast-grid[hidden]{
  display:none;
}
