@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;700;900&display=swap');

:root{
  --bg:#090d0f; --sur:#0e1618; --bdr:#1a2830;
  --y:#f5c842;  --r:#e05555;
  --tx:#c4d4dc; --sub:#8a9faa; --grn:#4dba6a;
  --nav-active:#1c2a33;
  --rad:10px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{background:var(--bg);color:var(--tx);
  font-family:'Noto Sans TC','Microsoft JhengHei',system-ui,-apple-system,sans-serif;
  font-weight:500;min-height:100vh}

/* ── Top bar ── */
.top-bar{background:#04070a;border-bottom:1px solid var(--bdr);
  padding:.3rem 1.5rem;display:flex;justify-content:space-between;
  font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sub)}

/* ── Header ── */
.site-header{border-bottom:1px solid var(--bdr);padding:.85rem 1.5rem}
.header-inner{max-width:900px;margin:0 auto;display:flex;
  align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.site-title{font-size:1.15rem;font-weight:800;letter-spacing:-.01em}
.site-sub{font-size:.65rem;color:var(--sub);letter-spacing:.05em;margin-top:.1rem}
nav{display:flex;gap:.15rem;align-items:center;background:var(--sur);
  border:1px solid var(--bdr);border-radius:999px;padding:.22rem}
nav a{color:var(--sub);text-decoration:none;font-size:.72rem;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;
  padding:.34em .85em;border-radius:999px;transition:color .15s,background .15s}
nav a:hover{color:var(--tx)}
nav a.active{color:var(--tx);background:var(--nav-active)}
nav a.lang-toggle{border:0;border-left:1px solid var(--bdr);border-radius:0;
  margin-left:.15rem;padding-left:.9em}
/* 分享圖卡：導覽列最後一項。窄螢幕只留圖示，避免導覽列被第七項擠爆 */
nav a.nav-card{display:inline-flex;align-items:center;gap:.34em;color:var(--y);opacity:.9}
nav a.nav-card:hover{color:var(--y);opacity:1}
nav a.nav-card.active{color:var(--y);background:var(--nav-active);opacity:1}
nav a.nav-card .nc-i{flex-shrink:0}
@media (max-width:560px){nav a.nav-card .nc-t{display:none}
  nav a.nav-card{padding-left:.6em;padding-right:.6em}}

/* ── Main ── */
main{max-width:900px;margin:0 auto;padding:1.5rem}

/* ── Alert ── */
.alert{background:#140f00;border:1px solid #2e2100;
  border-left:3px solid var(--y);color:var(--y);
  padding:.6rem 1rem;border-radius:var(--rad);
  font-size:.83rem;font-weight:700;margin-bottom:2rem;letter-spacing:.02em}

/* ── SITREP ── */
.sitrep{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);
  padding:1rem 1.25rem 1.1rem;margin-bottom:1.25rem}
.sitrep-label{font-size:1rem;text-transform:uppercase;letter-spacing:.16em;
  color:var(--sub);margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.sitrep-label::after{content:'';flex:1;min-width:30px;height:1px;background:var(--bdr)}

/* ── Stats ── */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr)}
.stat{padding:0 1.5rem}
.stat:first-child{padding-left:0}
.stat:last-child{padding-right:0}
.stat+.stat{border-left:1px solid var(--bdr)}
.stat-n{font-size:3.2rem;font-weight:800;line-height:1;
  letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.y{color:var(--y)}
.r{color:var(--r)}
.stat-l{font-size:.98rem;text-transform:uppercase;letter-spacing:.11em;
  color:var(--sub);margin-top:.45rem;white-space:nowrap}
.stat-detail{font-size:1.1rem;color:var(--sub);margin-top:.2rem;white-space:nowrap}
.delta-up{display:block;font-size:.7rem;color:#fff;margin-top:.28rem;font-weight:700}
.delta-dn{display:block;font-size:.7rem;color:#fff;margin-top:.28rem;font-weight:700}
.delta-note{font-size:.68rem;color:var(--sub);opacity:.8;text-align:center;margin-top:.55rem;
  letter-spacing:.02em}


/* ── Badge ── */
.badge{display:inline-block;padding:.2em .7em;border-radius:999px;font-size:.78rem;font-weight:700}
.badge.manned    {background:#152b0c;color:#7ed46a}
.badge.uav       {background:#0d1d2e;color:#6aaee0}
.badge.mixed     {background:#272008;color:var(--y)}
.badge.zero      {background:var(--sur);color:var(--sub);border:1px solid var(--bdr)}
.badge.helicopter{background:#20143a;color:#b898dc}

/* ── Chart sections ── */
.chart-section{margin-bottom:2rem}
.chart-header{display:flex;align-items:baseline;flex-wrap:wrap;
  gap:.5rem 1rem;margin-bottom:.75rem;
  padding-bottom:.5rem;border-bottom:1px solid var(--bdr)}
.chart-title{font-size:.7rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sub);white-space:nowrap}
.chart-obs{font-size:.95rem;color:var(--y);font-weight:600}

/* ── Chart.js split panels ── */
.split-panels{background:#1e2224;border-radius:var(--rad);padding:12px 12px 8px}
.panel-wrap-ac{position:relative;height:200px}
.panel-wrap-sh{position:relative;height:130px;margin-top:8px}
/* 艦艇細帶（近兩週版）：變異小的資料給小空間，讀起來更快 */
/* 46px（改版前 130px）：艦艇 60 日只在 7–17 之間，變異小的資料不該佔一半版面。
   日期由上圖標出，細帶不重複畫座標軸。 */
.panel-wrap-sh-slim{height:46px;margin-top:2px}
.chart-legend{display:flex;flex-wrap:wrap;gap:.45rem .95rem;margin:0 0 .55rem;
  font-size:.66rem;color:var(--sub);line-height:1.4}
.chart-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;
  margin-right:.3rem;vertical-align:-1px}
.chart-legend i.dash{height:0;border-radius:0;border-top:2px dashed;
  background:none;width:14px;vertical-align:2px}
.chart-legend .sh{margin-left:auto}

/* ── Records table ── */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap}
th{background:var(--sur);color:var(--sub);padding:.55rem .8rem;text-align:left;
   border-bottom:1px solid var(--bdr);font-size:.6rem;text-transform:uppercase;letter-spacing:.08em}
td{padding:.5rem .8rem;border-bottom:1px solid var(--bdr);color:var(--tx);vertical-align:middle}
tr:hover td{background:#0e1a20}
.num{text-align:right;font-variant-numeric:tabular-nums}
.special-cell{color:var(--sub);font-size:.74rem;max-width:200px;white-space:normal}

/* ── Monthly stats table ── */
.monthly-section{margin-bottom:2.5rem}
.monthly-month-label{font-size:.7rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sub);padding:.6rem 0 .4rem;
  border-bottom:1px solid var(--bdr);margin-bottom:.75rem}

/* ── Footer ── */
footer{border-top:1px solid var(--bdr);padding:1.1rem 1.5rem 1.4rem;margin-top:1rem;
  display:flex;flex-wrap:wrap;gap:.5rem 2rem;
  font-size:.65rem;color:var(--sub);letter-spacing:.05em}
footer a{color:var(--sub);text-decoration:none}
footer a:hover{color:var(--tx)}
.footer-hub{margin-left:auto}
.footer-hub a{color:var(--sub)}
.footer-hub a:hover{color:var(--y)}

/* ── Text SITREP (crawler-readable one-liner) ── */
.sitrep-text{font-size:.85rem;color:var(--sub);line-height:1.75;
  margin:1rem 0 2.25rem;padding:0}
html[lang="zh-Hant"] .sitrep-text{font-size:.9rem}

/* ── About / methodology prose ── */
.prose{max-width:760px;margin:0 auto}
.prose-title{font-size:1.5rem;font-weight:800;letter-spacing:-.01em;
  color:var(--tx);margin-bottom:.6rem}
.prose h2{font-size:1rem;font-weight:800;color:var(--tx);letter-spacing:.02em;
  margin:2rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--bdr)}
.prose p{font-size:.92rem;line-height:1.85;color:var(--tx);margin:.6rem 0}
.prose .lead{font-size:1rem;color:var(--sub);line-height:1.8;margin-bottom:.4rem}
.prose a{color:var(--y);text-decoration:none;border-bottom:1px solid #4a3f12;
  word-break:break-word}
.prose a:hover{color:#fff;border-bottom-color:var(--y)}
.prose strong{color:var(--tx);font-weight:700}
.prose ul{margin:.6rem 0 .6rem 1.2rem}
.prose li{font-size:.92rem;line-height:1.8;color:var(--tx);margin:.35rem 0}
html[lang="zh-Hant"] .prose p,html[lang="zh-Hant"] .prose li{font-size:.95rem}
.about-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.72rem;
  color:var(--sub);letter-spacing:.04em;margin:.6rem 0 1.5rem;
  padding:.6rem 0;border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr)}
.def-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);
  padding:.85rem 1rem;margin:.7rem 0}
.def-card .term{font-weight:800;color:var(--tx);font-size:.95rem}
.def-card .term .en{color:var(--sub);font-weight:500;font-size:.78rem;margin-left:.4rem}
.def-card p{margin:.4rem 0 0;font-size:.88rem;color:var(--sub);line-height:1.8}
html[lang="zh-Hant"] .def-card p{font-size:.9rem}

/* ── Activity Map ── */
.map-wrap{background:#070b0d;border-radius:var(--rad);overflow:hidden;border:1px solid var(--bdr)}
#activity-map{height:380px}
.leaflet-container{font-family:'Noto Sans TC','Microsoft JhengHei',sans-serif}
.leaflet-tile-pane{filter:brightness(1.8) contrast(1.3) saturate(1.4)}
.leaflet-control-attribution{
  background:rgba(7,11,13,0.82)!important;color:#3a5060!important;
  font-size:.52rem!important;border-top:1px solid #1a2830!important;padding:2px 6px!important}
.leaflet-control-attribution a{color:#3a5060!important}
.leaflet-control-zoom a{
  background:#0e1618!important;color:var(--sub)!important;
  border:1px solid var(--bdr)!important;font-size:14px!important;line-height:24px!important}
.leaflet-control-zoom a:hover{background:#152028!important;color:var(--tx)!important}
.leaflet-bar{border:1px solid var(--bdr)!important;box-shadow:none!important}
.map-lbl{color:#c4d4dc;font-size:.75rem;font-weight:700;
  font-family:'Noto Sans TC',sans-serif;
  text-shadow:0 1px 4px #000,0 0 8px rgba(0,0,0,.9);
  white-space:nowrap;pointer-events:none;line-height:1}
.map-lbl-sm{color:#4a6070;font-size:.58rem;font-weight:600;
  font-family:'Noto Sans TC',sans-serif;
  text-shadow:0 1px 3px #000,0 0 6px #000;
  white-space:nowrap;pointer-events:none;line-height:1}
.map-info{
  background:rgba(7,11,13,0.9);border:1px solid var(--bdr);border-radius:4px;
  padding:.5rem .7rem;font-size:.7rem;font-family:'Noto Sans TC',sans-serif;
  pointer-events:none;min-width:100px}
.map-info-row{display:flex;align-items:center;gap:.4rem;line-height:1.85;color:var(--sub)}
.map-ml-label{
  font-size:.58rem;font-weight:700;letter-spacing:.08em;
  color:#2a4050;text-transform:uppercase;margin-top:.3rem;line-height:1.4}
.map-note{
  margin-top:.75rem;padding:.55rem .9rem;
  border-left:2px solid #4dba6a;background:#050e09;
  font-size:.75rem;color:var(--sub);line-height:1.7;border-radius:0 var(--rad) var(--rad) 0}
.map-note strong{color:var(--tx)}

/* ── Scroll-triggered entrance animations ── */
.anim-ready{opacity:0;transform:translateY(14px);
  transition:opacity .5s ease,transform .5s ease}
.anim-ready.visible{opacity:1;transform:none}

/* ── zh-Hant 字型視覺校正（CJK 在相同 rem 下視覺較小，補齊至英文版水準）── */
html[lang="zh-Hant"] .site-title{font-size:1.4rem}
html[lang="zh-Hant"] .site-sub{font-size:.72rem}
html[lang="zh-Hant"] nav a{font-size:.82rem;letter-spacing:.06em}
html[lang="zh-Hant"] nav a.lang-toggle{font-size:.72rem;letter-spacing:.09em}

/* ── Arsenal dashboard ── */
.ars-hero{margin:.5rem 0 1.5rem}
.ars-h1{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;color:var(--tx);line-height:1.15}
html[lang="zh-Hant"] .ars-h1{font-size:1.85rem}
.ars-sub{font-size:.9rem;color:var(--sub);line-height:1.6;margin-top:.5rem;max-width:640px}
.ars-section{margin-bottom:2.25rem}
.ars-sec-title{font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sub);white-space:normal;padding-bottom:.5rem;margin-bottom:1rem;border-bottom:1px solid var(--bdr)}
html[lang="zh-Hant"] .ars-sec-title{font-size:.95rem;letter-spacing:.12em}
.ars-sec-title .sub{font-weight:600;letter-spacing:.04em;color:var(--sub);opacity:.75;margin-left:.6rem;text-transform:none}
.ars-lead{font-size:.88rem;color:var(--sub);line-height:1.7;margin:-.3rem 0 1rem;max-width:680px}
html[lang="zh-Hant"] .ars-lead{font-size:.9rem}

/* KPI grid */
.ars-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:2rem}
.ars-kpi{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);padding:.85rem 1rem}
.ars-kpi-n{font-size:1.9rem;font-weight:800;line-height:1;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;color:var(--tx)}
.ars-kpi-n.y{color:var(--y)}
.ars-kpi-n small{font-size:.9rem;font-weight:700;margin-left:.15rem}
.ars-kpi-l{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sub);margin-top:.4rem;white-space:nowrap}
html[lang="zh-Hant"] .ars-kpi-l{font-size:.78rem;letter-spacing:.04em}

/* 每日強度日曆（月統計頁）。列＝月、欄＝1→31 日。格子純 CSS，無 JS。 */
.hm{margin-top:1.6rem}
.hm-h{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.hm-t{font-size:.9rem;font-weight:800;color:var(--tx)}
.hm-s{font-size:.68rem;color:var(--sub)}
.hm-grid{display:flex;flex-direction:column;gap:3px}
.hm-row{display:grid;grid-template-columns:2.1rem repeat(31,minmax(0,1fr));gap:3px;align-items:center}
.hm-mo{font-size:.62rem;color:var(--sub);text-align:right;padding-right:.3rem;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.hm-c{aspect-ratio:1;border-radius:2px;position:relative;display:block;min-width:0}
.hm-c.e{background:none}
.hm-c.n{background:none;box-shadow:inset 0 0 0 1px var(--bdr)}
.hm-c.v0{background:#1a2830}
.hm-c.v1{background:#5c4c17}
.hm-c.v2{background:#8a7020}
.hm-c.v3{background:#c9a52f}
.hm-c.v4{background:#f5c842}
.hm-c.x::after{content:'';position:absolute;right:1px;bottom:1px;width:3px;height:3px;
  border-radius:50%;background:var(--r)}
.hm-lg{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .85rem;margin-top:.8rem;
  font-size:.66rem;color:var(--sub)}
.hm-lg span{display:inline-flex;align-items:center;gap:.3rem}
.hm-lg .hm-c{width:11px;height:11px;aspect-ratio:auto;flex-shrink:0}
.hm-lg-x{margin-left:auto}
@media(max-width:520px){
  .hm-row{grid-template-columns:1.7rem repeat(31,minmax(0,1fr));gap:2px}
  .hm-grid{gap:2px}
  .hm-mo{font-size:.58rem;padding-right:.2rem}
  .hm-c.x::after{width:2px;height:2px;right:0;bottom:0}
  .hm-lg-x{margin-left:0}
}

/* System card wall (裝備系統卡片牆) */
.ars-syscards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ars-syscard{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);overflow:hidden;
  display:flex;flex-direction:column}
.ars-syscard>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column}
.ars-syscard>summary::-webkit-details-marker{display:none}
.ars-scard-img{width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--bg);
  border-bottom:1px solid var(--bdr)}
.ars-scard-img img{width:100%;height:100%;object-fit:cover;display:block}
.ars-scard-band{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.35rem;background:var(--sur) repeating-linear-gradient(45deg,
  transparent 0 14px,var(--bdr) 14px 15px)}
.ars-scard-band .band-word{font-size:1.05rem;font-weight:800;letter-spacing:.35em;
  color:var(--sub);opacity:.55;padding-left:.35em}
.ars-scard-band .band-note{font-size:.62rem;letter-spacing:.08em;color:var(--sub);opacity:.5}
/* 無照片的卡：矮帶，不撐 16:9（撐滿會像圖片載入失敗） */
.ars-scard-band-slim{aspect-ratio:auto;height:38px}

/* 分組標題（有進度 / 尚未開始交付） */
.ars-grp{display:flex;align-items:baseline;gap:.5rem;margin:.2rem 0 .7rem}
.ars-grp+.ars-syscards,.ars-grp+.ars-prows{margin-top:0}
.ars-syscards+.ars-grp,.ars-prows+.ars-grp{margin-top:1.4rem}
.ars-grp-t{font-size:.74rem;font-weight:800;letter-spacing:.08em;color:var(--sub)}
.ars-grp-n{font-size:.68rem;color:var(--sub);opacity:.7;font-variant-numeric:tabular-nums}

/* 尚未開始交付的系統：縮圖緊湊列 */
.ars-prows{display:flex;flex-direction:column;gap:.4rem}
.ars-prow{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);overflow:hidden}
.ars-prow>summary{list-style:none;cursor:pointer;display:grid;
  grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.5rem .7rem}
.ars-prow>summary::-webkit-details-marker{display:none}
.ars-prow-thumb{width:42px;height:42px;border-radius:6px;overflow:hidden;background:var(--bg);
  border:1px solid var(--bdr);display:flex;align-items:center;justify-content:center}
.ars-prow-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ars-prow-glyph{font-size:1.05rem;font-weight:800;color:var(--sub);opacity:.6}
.ars-prow-main{min-width:0}
.ars-prow-name{display:block;font-size:.82rem;font-weight:800;color:var(--tx);line-height:1.3}
.ars-prow-name .en{display:block;font-size:.65rem;font-weight:600;color:var(--sub);
  margin-top:.1rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ars-prow-meta{display:block;font-size:.7rem;color:var(--sub);margin-top:.2rem;
  font-variant-numeric:tabular-nums}
.ars-prow-meta .dot{opacity:.5;margin:0 .35em}
.ars-prow-meta .brk{opacity:.8}
.ars-prow-tags{display:flex;align-items:center;gap:.35rem;flex-shrink:0}
.ars-prow-tags .tri{color:var(--sub);font-size:.7rem;transition:transform .15s;display:inline-block}
.ars-prow[open] .ars-prow-tags .tri{transform:rotate(90deg)}
.ars-prow>.ars-scard-detail{padding:0 .7rem .7rem;border-top:1px solid var(--bdr);margin-top:.1rem}
/* 全表狀態欄：狀態徽章＋延宕標籤同格不擠壓 */
.ars-td-st{white-space:nowrap}
.ars-td-st .ars-delaychip{margin-left:.3rem}
.ars-scard-body{padding:.75rem .85rem;display:flex;flex-direction:column;flex:1;min-width:0}
.ars-scard-head{display:flex;gap:.6rem;align-items:flex-start;justify-content:space-between}
.ars-scard-ph{width:40px;height:40px;border-radius:8px;border:1px solid var(--bdr);background:var(--bg);
  display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:.72rem;font-weight:700;flex-shrink:0}
.ars-scard-titles{min-width:0;flex:1}
.ars-scard-name{font-size:.9rem;font-weight:800;color:var(--tx);line-height:1.3}
.ars-scard-name .en{display:block;font-size:.7rem;font-weight:600;color:var(--sub);margin-top:.15rem;letter-spacing:.01em;line-height:1.35}
.ars-scard-agg{font-size:.78rem;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums;
  white-space:nowrap;text-align:right;flex-shrink:0;line-height:1.3}
.ars-scard-agg .brk{display:block;font-size:.66rem;font-weight:600;color:var(--sub);opacity:.9;white-space:normal;margin-top:.15rem}
.ars-scard-rows{display:flex;flex-direction:column;gap:.55rem;margin-top:.7rem}
.ars-scard-row-top{display:flex;align-items:center;gap:.45rem;margin-bottom:.32rem}
.ars-scard-case{font-size:.64rem;font-weight:700;color:var(--sub);font-variant-numeric:tabular-nums;
  background:var(--bg);border:1px solid var(--bdr);border-radius:4px;padding:.1em .4em;flex-shrink:0}
.ars-scard-qty{font-size:.74rem;color:var(--tx);font-variant-numeric:tabular-nums;flex:1;min-width:0;font-weight:600}
.ars-st{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  padding:.16em .55em;border-radius:999px;white-space:nowrap;flex-shrink:0}
.ars-st.completed {background:#123016;color:#5fce77}
.ars-st.delivering{background:#2a2408;color:var(--y)}
.ars-st.announced {background:#0d1d2e;color:#6aaee0}
.ars-st.unknown   {background:var(--sur);color:var(--sub);border:1px solid var(--bdr)}
.ars-st.cancelled {background:#2c1414;color:#e08585}
.ars-bar{display:flex;gap:2px;height:12px;border-radius:6px;overflow:hidden;background:var(--bg)}
.ars-seg{height:100%}
.ars-seg-d{background:var(--y)}
.ars-seg-p{background:rgba(245,200,66,.26)}
.ars-seg-c{flex:1;background:repeating-linear-gradient(45deg,#3a4448 0 5px,#222a2e 5px 10px)}
.ars-scard-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.7rem}
.ars-delaychip{font-size:.62rem;font-weight:800;letter-spacing:.05em;padding:.14em .5em;border-radius:999px;
  white-space:nowrap;flex-shrink:0;color:var(--y);border:1px solid var(--y);background:transparent}
.ars-caret{color:var(--sub);font-size:.7rem;display:inline-flex;align-items:center;gap:.3rem}
.ars-syscard[open] .ars-caret .tri{transform:rotate(90deg)}
.ars-caret .tri{transition:transform .15s;display:inline-block}
.ars-scard-detail{padding:0 .85rem .8rem}
.ars-scard-seg{margin-top:.6rem}
.ars-scard-seg-h{font-size:.72rem;font-weight:700;color:var(--tx);margin-bottom:.2rem;font-variant-numeric:tabular-nums}
.ars-detail{padding:0;font-size:.8rem;color:var(--sub);line-height:1.7}
html[lang="zh-Hant"] .ars-detail{font-size:.84rem}
.ars-detail .lbl{font-weight:700;color:var(--tx)}
.ars-detail a{color:var(--y);text-decoration:none;border-bottom:1px solid #4a3f12;word-break:break-all}
.ars-detail a:hover{color:#fff}
.ars-note{font-size:.72rem;color:var(--sub);line-height:1.6;margin-top:.75rem;opacity:.85}
html[lang="zh-Hant"] .ars-note{font-size:.76rem}

/* Annual chart */
.ars-chart-wrap{background:#1e2224;border-radius:var(--rad);padding:12px 12px 8px}
.ars-chart-canvas{position:relative;height:240px}

/* Qualitative reads */
.ars-reads{display:flex;flex-direction:column;gap:.7rem}
.ars-point{background:var(--sur);border:1px solid var(--bdr);border-left:3px solid var(--y);
  border-radius:0 var(--rad) var(--rad) 0;padding:.75rem 1rem}
.ars-point h3{font-size:.9rem;font-weight:800;color:var(--tx);margin-bottom:.35rem;letter-spacing:.01em}
.ars-point p{font-size:.83rem;color:var(--sub);line-height:1.7}
html[lang="zh-Hant"] .ars-point p{font-size:.87rem}
.ars-point .caveat{color:var(--y);font-weight:600}
.ars-src{font-size:.72rem;margin-top:.45rem}
.ars-src a{color:var(--sub);text-decoration:none;border-bottom:1px solid var(--bdr);margin-right:.7rem;word-break:break-word}
.ars-src a:hover{color:var(--y);border-bottom-color:var(--y)}

/* Delay table + counter cards */

/* Category badge */
.ars-cat{display:inline-block;padding:.15em .55em;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap}
.ars-cat.aircraft   {background:#0d1d2e;color:#6aaee0}
.ars-cat.missile    {background:#2c1414;color:#e08585}
.ars-cat.ground     {background:#272008;color:var(--y)}
.ars-cat.naval      {background:#07231f;color:#4fc7ad}
.ars-cat.uas        {background:#20143a;color:#b898dc}
.ars-cat.c4isr      {background:#08262b;color:#4fc2d0}
.ars-cat.sustainment{background:var(--sur);color:var(--sub);border:1px solid var(--bdr)}

/* All-cases: desktop table (mobile → cards) */
.ars-cases .ars-cards{display:none}
.ars-cases a.src{color:var(--sub);text-decoration:none;border-bottom:1px solid var(--bdr)}
.ars-cases a.src:hover{color:var(--y);border-bottom-color:var(--y)}
.ars-card{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);overflow:hidden;margin-bottom:.5rem}
.ars-card>summary{list-style:none;cursor:pointer;padding:.7rem .9rem}
.ars-card>summary::-webkit-details-marker{display:none}
.ars-card-top{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline}
.ars-card-sys{font-size:.85rem;font-weight:700;color:var(--tx);line-height:1.3}
.ars-card-meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.5rem;font-size:.74rem;color:var(--sub);
  font-variant-numeric:tabular-nums;align-items:center}
.ars-card-body{padding:0 .9rem .8rem;font-size:.8rem;color:var(--sub);line-height:1.7}
html[lang="zh-Hant"] .ars-card-body{font-size:.84rem}

/* Scope note */
.ars-scope{font-size:.72rem;color:var(--sub);line-height:1.75;margin-top:1rem;
  padding:.85rem 1rem;background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad)}
html[lang="zh-Hant"] .ars-scope{font-size:.76rem}
.ars-scope strong{color:var(--tx)}
.ars-scope .st{display:block;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sub);margin-bottom:.45rem}

/* Homepage → arsenal diversion card */
.ars-divert{display:block;text-decoration:none;background:var(--sur);border:1px solid var(--bdr);
  border-left:3px solid var(--y);border-radius:0 var(--rad) var(--rad) 0;padding:.7rem 1rem;
  margin:0 0 2rem;transition:border-color .15s,background .15s}
.ars-divert:hover{background:#12201a;border-left-color:var(--y)}
html[data-theme="light"] .ars-divert:hover{background:#f3f0e6}
.ars-divert .row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem}
.ars-divert .lab{font-weight:800;color:var(--y);letter-spacing:.02em}
.ars-divert .txt{color:var(--sub);line-height:1.5}
.ars-divert .arr{color:var(--sub)}
html[lang="zh-Hant"] .ars-divert .row{font-size:.86rem}

/* ── Arsenal weapon detail pages ── */
.ars-back{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.04em;
  color:var(--sub);text-decoration:none;margin-bottom:.55rem}
.ars-back:hover{color:var(--y)}
/* weapon-page hero banner (only rendered when assets/arsenal/hero-{page}.jpg exists) */
.ars-hero-imgwrap{position:relative;max-height:260px;overflow:hidden;border-radius:var(--rad);margin-bottom:1rem}
.ars-hero-img{display:block;width:100%;max-height:260px;object-fit:cover}
.ars-hero-courtesy{position:absolute;right:.6rem;bottom:.5rem;font-size:.62rem;color:#fff;
  background:rgba(0,0,0,.55);padding:.15em .55em;border-radius:999px;letter-spacing:.02em}
/* vertical procurement timeline */
.ars-tl{position:relative;margin-left:.4rem;padding-left:1.1rem;border-left:2px solid var(--bdr)}
.ars-tl-item{position:relative;padding:0 0 1.05rem}
.ars-tl-item:last-child{padding-bottom:0}
.ars-tl-item::before{content:'';position:absolute;left:calc(-1.1rem - 5px);top:.3rem;
  width:9px;height:9px;border-radius:50%;background:var(--y);border:2px solid var(--bg)}
.ars-tl-date{font-size:.74rem;font-weight:800;letter-spacing:.04em;color:var(--y);
  font-variant-numeric:tabular-nums;margin-bottom:.18rem}
.ars-tl-body{font-size:.84rem;color:var(--sub);line-height:1.7}
html[lang="zh-Hant"] .ars-tl-body{font-size:.88rem}
.ars-tl-body a{color:var(--y);text-decoration:none;border-bottom:1px solid #4a3f12;
  font-size:.72rem;margin-left:.25rem;white-space:nowrap}
.ars-tl-body a:hover{color:#fff}
/* ranking chart wrap (variable height set inline) */
.ars-rank-canvas{position:relative;width:100%}
/* PAC-3 user wall */
.ars-userwall{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.ars-usercard{background:var(--sur);border:1px solid var(--bdr);border-radius:var(--rad);padding:.75rem .9rem}
.ars-uc-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.32rem}
.ars-uc-country{font-size:.9rem;font-weight:800;color:var(--tx)}
.ars-uc-var{font-size:.76rem;color:var(--y);font-weight:600;margin-bottom:.3rem}
.ars-uc-meta{font-size:.72rem;color:var(--sub);line-height:1.5;font-variant-numeric:tabular-nums}
.ars-uc-meta a.src{color:var(--sub);text-decoration:none;border-bottom:1px solid var(--bdr)}
.ars-uc-meta a.src:hover{color:var(--y);border-bottom-color:var(--y)}
/* alliance tag chip (text label, not color-only) */
.ars-atag{display:inline-block;padding:.12em .5em;border-radius:999px;font-size:.62rem;
  font-weight:800;letter-spacing:.03em;white-space:nowrap}
.ars-atag.treaty {background:#123016;color:#5fce77}
.ars-atag.nato   {background:#0d1d2e;color:#6aaee0}
.ars-atag.mnna   {background:#20143a;color:#b898dc}
.ars-atag.partner{background:#2a2408;color:var(--y)}
.ars-atag.aid    {background:#2c1414;color:#e08585}
/* Taiwan-defense role list */
.ars-role{list-style:none;display:flex;flex-direction:column;gap:.55rem}
.ars-role li{position:relative;padding-left:1.1rem;font-size:.86rem;color:var(--sub);line-height:1.75}
html[lang="zh-Hant"] .ars-role li{font-size:.9rem}
.ars-role li::before{content:'\25b8';position:absolute;left:0;top:0;color:var(--y);font-weight:800}
/* source list */
.ars-srclist{list-style:none;display:flex;flex-direction:column;gap:.35rem}
.ars-srclist li{font-size:.76rem;line-height:1.5}
.ars-srclist a{color:var(--sub);text-decoration:none;border-bottom:1px solid var(--bdr);word-break:break-all}
.ars-srclist a:hover{color:var(--y);border-bottom-color:var(--y)}
/* weapon internal-page cards (on arsenal index) */
.ars-wcards{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.ars-wcard{display:flex;flex-direction:column;background:var(--sur);border:1px solid var(--bdr);
  border-radius:var(--rad);overflow:hidden;text-decoration:none;border-top:3px solid var(--y);
  transition:background .15s,transform .15s}
.ars-wcard:hover{background:#12201a;transform:translateY(-2px)}
html[data-theme="light"] .ars-wcard:hover{background:#f3f0e6}
.ars-wcard-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.ars-wcard-body{display:flex;flex-direction:column;flex:1;padding:.9rem 1rem}
.ars-wcard-name{font-size:.95rem;font-weight:800;color:var(--tx);line-height:1.25}
.ars-wcard-var{font-size:.68rem;color:var(--sub);margin-top:.2rem;letter-spacing:.02em}
.ars-wcard-teaser{font-size:.8rem;color:var(--sub);line-height:1.65;margin:.55rem 0 .7rem;flex:1}
html[lang="zh-Hant"] .ars-wcard-teaser{font-size:.84rem}
.ars-wcard-cta{font-size:.72rem;font-weight:800;color:var(--y);letter-spacing:.03em}
/* source chip (arsenal only — replaces default blue browser links).
   selector uses a.src-chip so it wins over the earlier .ars-detail/.ars-src/
   .ars-tl-body/.ars-srclist context link rules (same specificity, later in source). */
a.src-chip{display:inline-flex;align-items:center;gap:.25em;font-size:.68rem;font-weight:600;
  color:var(--sub);text-decoration:none;border:1px solid var(--bdr);border-radius:999px;
  padding:.12em .6em;background:var(--sur);letter-spacing:.02em;white-space:nowrap;
  transition:color .15s,border-color .15s;vertical-align:middle}
a.src-chip:hover{color:var(--tx);border-color:var(--y)}
a.src-chip::after{content:'\2197';font-size:.85em;opacity:.7}
.ars-srclist li{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap}
.src-full{font-size:.7rem;color:var(--sub);opacity:.68;word-break:break-all;line-height:1.5}

/* ── Mobile ── */
@media(max-width:640px){
  .top-bar{display:none}
  .site-header{padding:.7rem 1rem}
  .header-inner{gap:.5rem}
  nav{gap:.05rem;padding:.18rem;flex-wrap:nowrap}
  nav a{padding:.3em .5em;letter-spacing:.03em;font-size:.66rem}
  main{padding:.6rem 1rem 1rem}
  /* en 導覽新增「Arms」後手機寬度超出 343px 預算 → 壓字級至 .62rem 保持單行 */
  html[lang="en"] nav a{font-size:.62rem;letter-spacing:.02em;padding:.3em .42em}
  .alert{margin-bottom:1rem}
  .sitrep{padding:.55rem .9rem .6rem;margin-bottom:.55rem}
  .map-note{margin-top:.5rem}
  .stats-row{grid-template-columns:repeat(3,1fr);gap:0}
  .stat{padding:0 .5rem;min-width:0}
  .stat:first-child{border-left:none;padding-left:0}
  .stat-n{font-size:2.3rem}
  .stat-l{white-space:normal;font-size:.78rem;overflow-wrap:break-word}
  .stat-detail{display:block;white-space:nowrap;margin-top:.1rem}
  footer{padding:.75rem 1rem;gap:.4rem 1.2rem}
  .footer-hub{margin-left:0;flex-basis:100%}
  .prose-title{font-size:1.3rem}
  #activity-map{height:260px}
  /* arsenal mobile */
  .ars-kpis{grid-template-columns:repeat(2,1fr);gap:.5rem}
  .ars-kpi-n{font-size:1.6rem}
  .ars-h1{font-size:1.5rem}
  html[lang="zh-Hant"] .ars-h1{font-size:1.55rem}
  .ars-cases .ars-cards{display:block}
  .ars-cases .ars-tbl-wrap{display:none}
  .ars-chart-canvas{height:220px}
  .ars-wcards{grid-template-columns:1fr}
  .ars-userwall{grid-template-columns:1fr}
  .ars-syscards{grid-template-columns:1fr}
}
@media(max-width:380px){
  .stat-n{font-size:1.9rem}
  nav{gap:.05rem}
  html[lang="zh-Hant"] nav a{font-size:.78rem;letter-spacing:.03em}
}

/* ── 淺色主題（平常日）── :root 即深色主題，維持不動；以下僅覆蓋顏色/邊框色/陰影，
   絕不改動任何 padding / margin / font-size，版面高度與深色版一致 ── */
html[data-theme="light"]{
  --bg:#f5f4f0; --sur:#ffffff; --bdr:#e3dfd4;
  --tx:#20262b; --sub:#5d6b75; --y:#9a7500; --r:#c23a3a; --grn:#2f8f4f;
  --nav-active:#eee9db;
}
html[data-theme="light"] .top-bar{background:#eceadf}
html[data-theme="light"] .alert{background:#fdf6dd;border-color:#eadfae;
  border-left-color:#6f5600;color:#6f5600}
html[data-theme="light"] .badge.manned    {background:#e4f3dc;color:#2f7a1e}
html[data-theme="light"] .badge.uav       {background:#dbeaf6;color:#1f6fa8}
html[data-theme="light"] .badge.mixed     {background:#f3ecc9;color:#8a6a00}
html[data-theme="light"] .badge.helicopter{background:#ece1f7;color:#7a4fb0}
html[data-theme="light"] .delta-up,html[data-theme="light"] .delta-dn{color:var(--tx)}
html[data-theme="light"] th{background:#f0eee6}
html[data-theme="light"] tr:hover td{background:#f7f5ee}
/* 深色版 .split-panels 無邊框；淺色改用 inset box-shadow 模擬 1px 描邊，
   不佔版面寬高（符合「版面高度不得改變」硬約束，box-shadow 為允許變更項）。 */
html[data-theme="light"] .split-panels{background:#fbfaf6;
  box-shadow:inset 0 0 0 1px var(--bdr)}
html[data-theme="light"] .prose a{border-bottom-color:#d9c98a}
html[data-theme="light"] .prose a:hover{color:var(--tx);border-bottom-color:var(--y)}
html[data-theme="light"] .map-wrap{background:#fbfaf6}
html[data-theme="light"] .leaflet-tile-pane{filter:saturate(.9) contrast(1.02)}
html[data-theme="light"] .leaflet-control-attribution{
  background:rgba(255,255,255,0.85)!important;color:#5d6b75!important;
  border-top-color:#e3dfd4!important}
html[data-theme="light"] .leaflet-control-attribution a{color:#5d6b75!important}
html[data-theme="light"] .leaflet-control-zoom a{
  background:#ffffff!important;color:var(--sub)!important}
html[data-theme="light"] .leaflet-control-zoom a:hover{
  background:#eee9db!important;color:var(--tx)!important}
html[data-theme="light"] .map-lbl{color:#33454f;
  text-shadow:0 1px 4px #fff,0 0 8px rgba(255,255,255,.9)}
html[data-theme="light"] .map-lbl-sm{color:#5d7079;
  text-shadow:0 1px 3px #fff,0 0 6px #fff}
html[data-theme="light"] .map-info{background:rgba(255,255,255,0.9)}
html[data-theme="light"] .map-ml-label{color:#5a7280}
html[data-theme="light"] .map-note{background:#eef4ee;border-left-color:#2f8f4f}

/* 每日強度日曆淺色階（同一色相由淺到深，順序與深色版一致） */
html[data-theme="light"] .hm-c.v0{background:#e9e5da}
html[data-theme="light"] .hm-c.v1{background:#efdfae}
html[data-theme="light"] .hm-c.v2{background:#ddc477}
html[data-theme="light"] .hm-c.v3{background:#c09a25}
html[data-theme="light"] .hm-c.v4{background:#8a6300}

/* ── Arsenal 淺色覆蓋（僅顏色，不動版面尺寸）── */
html[data-theme="light"] .ars-chart-wrap{background:#fbfaf6;box-shadow:inset 0 0 0 1px var(--bdr)}
html[data-theme="light"] .ars-seg-p{background:rgba(154,117,0,.20)}
html[data-theme="light"] .ars-seg-c{background:repeating-linear-gradient(45deg,#cfc9ba 0 5px,#e7e2d6 5px 10px)}
html[data-theme="light"] .ars-st.completed {background:#dff0e0;color:#227a35}
html[data-theme="light"] .ars-st.delivering{background:#f3ecc9;color:#7a5c00}
html[data-theme="light"] .ars-st.announced {background:#dbeaf6;color:#1f6fa8}
html[data-theme="light"] .ars-st.cancelled {background:#f5dede;color:#b23a3a}
html[data-theme="light"] .ars-cat.aircraft   {background:#dbeaf6;color:#1f6fa8}
html[data-theme="light"] .ars-cat.missile    {background:#f5dede;color:#b23a3a}
html[data-theme="light"] .ars-cat.ground     {background:#f3ecc9;color:#8a6a00}
html[data-theme="light"] .ars-cat.naval      {background:#d6efe8;color:#1f8a72}
html[data-theme="light"] .ars-cat.uas        {background:#ece1f7;color:#7a4fb0}
html[data-theme="light"] .ars-cat.c4isr      {background:#d8eef2;color:#1f8496}
html[data-theme="light"] .ars-detail a{border-bottom-color:#d9c98a}
html[data-theme="light"] .ars-point{border-left-color:var(--y)}
html[data-theme="light"] .ars-tl-body a{border-bottom-color:#d9c98a}
html[data-theme="light"] .ars-atag.treaty {background:#dff0e0;color:#227a35}
html[data-theme="light"] .ars-atag.nato   {background:#dbeaf6;color:#1f6fa8}
html[data-theme="light"] .ars-atag.mnna   {background:#ece1f7;color:#7a4fb0}
html[data-theme="light"] .ars-atag.partner{background:#f3ecc9;color:#7a5c00}
html[data-theme="light"] .ars-atag.aid    {background:#f5dede;color:#b23a3a}
