/* 理財需要分析 v2.1（2026-09-05 重新設計）
   輸入頁闊版面（1200px，左輸入＋右釘住即時概覽）／結果頁闊版面（1180px）；小節卡＋12 欄網格；
   圖表全部 inline SVG（見 needs2.js），顏色只由 tokens.css 出，本檔不寫死顏色。 */
/* 五個需要各有一個身分色：只出現喺細色塊同表頭頂線，用嚟標「邊個需要」；
   狀態色（ok／warn／bad）只出現喺條的填充同數字，用嚟標「夠唔夠」。
   兩套色永遠唔會落喺同一個元素，所以唔會撈亂。全部由 tokens.css 派生。 */
.q2{--n-life:var(--brand-deep);--n-ci:var(--brand-gold-deep);--n-medical:var(--info);--n-education:var(--brand-green);--n-retirement:var(--warn)}
.q2-sw{display:inline-block;width:7px;height:7px;border-radius:2px;flex:none;margin-right:6px;vertical-align:1px}
.nd-life{background:var(--n-life)}
.nd-ci{background:var(--n-ci)}
.nd-medical{background:var(--n-medical)}
.nd-education{background:var(--n-education)}
.nd-retirement{background:var(--n-retirement)}
.nd-none{background:var(--faint)}
/* 用戶 09-10：揀咗客戶之後（問卷／結果）一樣要跟螢幕闊度，唔准寫死 max-width（列表／表格／圖表要食盡） */
.q2{max-width:none;width:100%;margin:0 auto}
.q2.wide{max-width:none}
.q2 h1{font-size:var(--fs-xl);margin:0 0 4px}
.q2 .meta{font-size:var(--fs-xs);color:var(--muted);margin-bottom:var(--sp-3)}
.q2-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-3h) var(--sp-4);margin-bottom:var(--sp-3)}
.q2-empty{color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-3) 0}
.q2-empty.warn{color:var(--bad)}
.q2-warn{font-size:var(--fs-2xs);color:var(--warn);background:var(--warn-soft);border-radius:var(--r-sm);padding:8px 10px;margin-bottom:var(--sp-3)}
.q2-hint{font-size:var(--fs-2xs);color:var(--muted);padding:6px 0}

/* ── 著陸頁：客戶清單（表格／藥丸／搜尋／星標同客戶管理中心同一份，見 yf-client-list.css）── */
/* 入口清單同客戶管理中心一樣要食盡螢幕闊度（用戶 09-10：「點解唔識隨螢幕闊度調整」＝ 08-19 iPad 白邊同一個病）—— 唔准寫死 max-width */
.q2.land{max-width:none;width:100%}
/* 09-10：著陸頁嘅標題列／工具列／搜尋欄改用客戶管理中心同一套（.ccy-head／.ccy-tools／.ccy-search），
   所以 .q2-lhead／.q2-tools／.q2-q 呢幾組規則冇人用，一齊剷走 —— 死 CSS 留住就會有人跟住抄。 */
.q2-drafts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-3)}
.q2-draft{display:inline-flex;align-items:stretch;border:1px dashed var(--line);border-radius:var(--r-pill);background:var(--card);overflow:hidden}
.q2-draft:hover{border-color:var(--brand-green-deep);border-style:solid}
.q2-draft .t{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;padding:0 6px 0 14px;min-height:40px;font:inherit;font-size:var(--fs-sm);color:var(--ink);cursor:pointer}
.q2-draft .x{border:0;background:transparent;padding:0 12px;min-height:40px;font:inherit;font-size:var(--fs-lg);line-height:1;color:var(--faint);cursor:pointer}
.q2-draft .x:hover{color:var(--bad)}
.q2-draft .dim{font-size:var(--fs-3xs);color:var(--muted);font-family:var(--mono)}
/* 三條缺口欄各有需要身分色嘅頂線，同圖例嘅色塊呼應 */
/* ⭐ 09-10：著陸頁張表改用客戶管理中心同一套 markup（.ccy-ltbl，CSS 喺 yf-client-list.css）。
   下面淨係分析頁自己嗰幾個欄嘅樣（缺口顏色／mono 字／標籤／「新增客戶」行）——
   宣告係由原本 .q2-ovtbl 搬過嚟，一個值都冇改；舊 .q2-ovtbl 已經冇人用，所以剷咗。 */
.ccy-ltbl thead th.nd{border-top:2px solid var(--line)}
.ccy-ltbl thead th.nd-h-life{border-top-color:var(--n-life)}
.ccy-ltbl thead th.nd-h-ci{border-top-color:var(--n-ci)}
.ccy-ltbl thead th.nd-h-retirement{border-top-color:var(--n-retirement)}
.q2 .ccy-ltbl td.num{font-family:var(--mono)}
.q2 .ccy-ltbl td.num.ok{color:var(--brand-green-deep)}
.q2 .ccy-ltbl td.num.bad{color:var(--bad)}
.q2 .ccy-ltbl td.dim,.q2 .ccy-ltbl .dim{color:var(--faint);font-weight:400}
.q2 .ccy-ltbl .tag{display:inline-block;margin-left:6px;font-size:var(--fs-3xs);font-weight:400;border:1px solid var(--line);border-radius:var(--r-pill);padding:0 7px;color:var(--muted)}
.q2 .ccy-ltbl .tag.lead{color:var(--info);border-color:var(--info);background:var(--info-soft)}
.q2 .ccy-ltbl .tag.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}
.ccy-ltbl tbody tr.newrow td{background:var(--card2)}
.ccy-ltbl tbody tr.newrow b{color:var(--brand-green-deep)}
/* 著陸頁表身高度同客戶管理中心一樣交由 .ccy-list 管；但表頭釘住要有個可捲容器 */
.q2.land .ccy-list .ccy-tblwrap{max-height:min(62vh,620px);overflow:auto}
.q2-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:var(--sp-3);font-size:var(--fs-3xs);color:var(--muted)}
.q2-legend span{display:inline-flex;align-items:center}
/* 過往分析（由舊版計算機搬過嚟）：同著陸頁嗰張表同一套視覺語法 */
.q2-histtbl td.num{font-family:var(--mono)}
.q2-histtbl td.num.ok{color:var(--brand-green-deep)}
.q2-histtbl td.num.bad{color:var(--bad)}
.q2-histtbl td.dim,.q2-histtbl .dim{color:var(--faint)}
.q2-histtbl .tag{display:inline-block;margin-left:6px;font-size:var(--fs-3xs);border:1px solid var(--brand-green-deep);color:var(--brand-green-deep);border-radius:var(--r-pill);padding:0 7px}
.q2-legend .mob{display:none}
/* 手機：客戶欄釘住唔跟住橫掃走，否則掃到「退休缺口」就唔知睇緊邊個客戶 */
@media (max-width:900px){
  .q2-legend .mob{display:inline-flex}
  /* ⭐ 釘住嘅一定要係**客戶名**嗰欄，唔係粒星 —— 星標格只有 36px，掃到「退休缺口」就認唔返
     邊個客戶，等於成個著陸頁嘅用途冇咗（呢頁係手機優先）。
     有星標（萬通）＝釘頭兩欄（星 ＋ 名）；冇星標（宏利）＝第一欄就係名。
     `.has-star` 由 needs2.js 按 listModel 嘅 star 落（客戶管理中心冇呢個 class，唔受影響）。
     ⚠️ 底色一律寫 `var(--pin-bg, …)`，唔准直接寫色值：下面幾條釘住規則用咗 `:not()`，
        特異度高過一般 `thead th`／`tr:hover` 規則，想覆蓋就要鬥特異度，一鬥就會錯（真 Chrome
        量過：表頭變兩截色、hover 套唔到釘住嗰欄）。改成「覆蓋個變數」就完全唔使理特異度。
     ⚠️ 星欄嘅寬一定要同名欄嗰個 `left` 讀同一個 `--star-w`，而且要用 `min-width` ——
        `width` 喺 `table-layout:auto` ＋ 橫向 overflow 之下只係「偏好值」，Chrome 會壓到 min-content：
        原本 min-content ＝ ★18px ＋ 左右 10px padding ＝ 38px（所以 `left:36px` 疊 2px）；
        padding 清零之後 min-content 跌到 18px，兩欄之間就開咗 18px 空洞（真 Chrome 量過兩次）。 */
  .q2 .ccy-list .ccy-ltbl th.ccy-th-star,.q2 .ccy-list .ccy-ltbl td.ccy-td-star{position:sticky;left:0;z-index:2;background:var(--pin-bg,var(--card));width:var(--star-w,36px);min-width:var(--star-w,36px);padding-left:0;padding-right:0}
  .q2 .has-star .ccy-ltbl tr>*:nth-child(2),
  .q2 .ccy-list:not(.has-star) .ccy-ltbl tr:not(.newrow)>*:first-child{position:sticky;z-index:2;background:var(--pin-bg,var(--card));border-right:1px solid var(--line2)}
  .q2 .has-star .ccy-ltbl tr>*:nth-child(2){left:var(--star-w,36px)}
  .q2 .ccy-list:not(.has-star) .ccy-ltbl tr:not(.newrow)>*:first-child{left:0}
  /* 表頭：釘住嗰格嘅底色要同表頭其餘格一樣（唔係就兩截色），而且要疊喺橫掃過嘅表頭格之上。
     底色靠 --pin-bg；z-index 冇得用變數，所以逐條寫返同等或更高特異度嘅 thead 變體。 */
  .q2 .ccy-list .ccy-ltbl thead th{--pin-bg:var(--bg2)}
  .q2 .ccy-list .ccy-ltbl thead th.ccy-th-star,
  .q2 .has-star .ccy-ltbl thead tr>*:nth-child(2),
  .q2 .ccy-list:not(.has-star) .ccy-ltbl thead tr:not(.newrow)>*:first-child{z-index:3}
  /* hover：掃過去成行變色，釘住嗰欄有自己底色，所以喺格上面覆蓋個變數就得 */
  .q2 .ccy-ltbl tbody tr:not(.newrow):hover>td{--pin-bg:var(--bg2)}
  .q2 .ccy-ltbl tbody tr.newrow>td{background:var(--card2)}
}
.q2-h{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-3xs);color:var(--muted);margin:var(--sp-4) 0 6px;letter-spacing:.04em}
.q2-h .cnt{font-family:var(--mono);color:var(--faint)}
.q2-h.flush{margin-top:0}
.q2-h.tight{margin:var(--sp-1) 0}

/* ── 輸入頁（2026-09-05 重排：左輸入右概覽、小節卡、12 欄網格）── */
.q2.ask{max-width:none}
.q2-back{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted);min-height:32px}
.q2-back .dim{font-size:var(--fs-3xs);color:var(--faint)}
.q2-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-2h)}
.q2-who{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.q2-who b{font-size:var(--fs-lg)}
.q2-who .dim{font-size:var(--fs-xs);color:var(--muted)}

/* 步驟導軌：圓點成一直線、名稱置中喺圓點下面，圓點之間用導軌連住。
   標籤長短唔一（「收入」對「公司福利及醫療保障」）都唔會令個列參差 ——
   因為對齊嘅係圓點，唔係文字；舊版用等闊藥丸＋省略號，所以先會睇落唔整齊。 */
.q2-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin-bottom:var(--sp-3);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);
  padding:var(--sp-3h) var(--sp-2) var(--sp-3)}
.q2-steps button{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;
  border:0;background:transparent;padding:0 var(--sp-1);margin:0;font:inherit;cursor:pointer;min-width:0}
.q2-steps button::before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line2)}
.q2-steps button:first-child::before{display:none}
.q2-steps button.lk::before{background:var(--brand-green-deep)}
.q2-steps .dot{position:relative;z-index:1;flex:none;width:28px;height:28px;border-radius:50%;
  border:1.5px solid var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted)}
.q2-steps .lb{font-size:var(--fs-2xs);line-height:1.35;color:var(--muted);text-align:center;word-break:keep-all}
.q2-steps .ck{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.q2-steps .done .dot{background:var(--brand-green-deep);border-color:var(--brand-green-deep);color:var(--primary-ink)}
.q2-steps .done .lb{color:var(--ink2)}
.q2-steps .on .dot{background:var(--brand-deep);border-color:var(--brand-deep);color:var(--primary-ink);box-shadow:0 0 0 4px var(--focus)}
.q2-steps .on .lb{color:var(--ink);font-weight:700}
.q2-steps button:hover .lb{color:var(--ink)}
@media (max-width:900px){
  .q2-steps{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:88px;overflow-x:auto;padding:var(--sp-3)}
}

/* 主版面：左輸入區、右釘住嘅即時概覽 */
.q2-ask{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-3);align-items:start}
.q2-main,.q2-side{min-width:0}
/* 卡片標題（輸入頁同結果頁共用）：標題左邊一條品牌色標記；
   卡首嘅標題出血到卡邊、上淺底，所以每張卡一眼分得開。 */
.q2-gh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 var(--sp-3);padding-bottom:8px;border-bottom:1px solid var(--line)}
.q2-gh.mt{margin-top:var(--sp-5)}
.q2-gh b{position:relative;font-size:var(--fs-lg);padding-left:13px}
.q2-gh b::before{content:"";position:absolute;left:0;top:.3em;width:4px;height:.82em;border-radius:2px;background:var(--brand-green-deep)}
.q2-gh .dim{font-size:var(--fs-3xs);color:var(--muted);text-align:right;flex:0 1 auto}
.q2-card>.q2-gh:first-child{margin:calc(var(--sp-3h) * -1) calc(var(--sp-4) * -1) var(--sp-3);
  padding:var(--sp-3) var(--sp-4);background:var(--card2);border-bottom:1px solid var(--line2);
  border-radius:var(--r-md) var(--r-md) 0 0}

/* 組標題（輸入頁）：號碼牌＋組名＋進度＋「影響邊個需要」色標籤 */
.q2-ghead{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;
  margin:calc(var(--sp-3h) * -1) calc(var(--sp-4) * -1) var(--sp-3h);
  padding:var(--sp-3) var(--sp-4);background:var(--card2);
  border-bottom:1px solid var(--line2);border-left:4px solid var(--brand-green-deep);
  border-radius:var(--r-md) var(--r-md) 0 0}
.q2-ghead .no{flex:none;width:30px;height:30px;border-radius:50%;background:var(--brand-deep);
  color:var(--primary-ink);display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:var(--fs-md);font-weight:700}
.q2-ghead .tt{min-width:0}
.q2-ghead .tt b{display:block;font-size:var(--fs-xl);line-height:1.3}
.q2-ghead .tt span{display:block;font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}
.q2-ghead .aff{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.q2-ghead .aff .afl{font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em}
.q2-chip{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--card);
  border-radius:var(--r-pill);padding:3px 10px;font-size:var(--fs-3xs);color:var(--ink2);white-space:nowrap}

/* 小節卡（fieldset）：小節標題＋一句說明 */
.q2-fs{border:1px solid var(--line2);border-radius:var(--r-md);background:var(--card);padding:var(--sp-3) var(--sp-3h) var(--sp-3h);margin-bottom:var(--sp-3)}
.q2-fs:last-child{margin-bottom:0}
/* 可摺小節：全部選填又長嘅一段（薪俸稅）預設收起，標題行同一般小節一模一樣 */
.q2-fs.fold>summary{cursor:pointer;list-style:none}
.q2-fs.fold>summary::-webkit-details-marker{display:none}
.q2-fs.fold>summary::after{content:"展開";margin-left:auto;font-size:var(--fs-3xs);color:var(--brand-green-deep)}
.q2-fs.fold[open]>summary::after{content:"收起"}
.q2-fs.fold>summary{margin-bottom:0;min-height:32px}
.q2-fs.fold[open]>summary{margin-bottom:var(--sp-3)}
.q2-fsh{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:var(--sp-3);border-bottom:1px solid var(--line2)}
.q2-fsh b{position:relative;font-size:var(--fs-md);padding-left:14px;color:var(--ink)}
.q2-fsh b::before{content:"";position:absolute;left:0;top:.44em;width:7px;height:7px;border-radius:50%;background:var(--brand-green)}
.q2-fsh span{font-size:var(--fs-3xs);color:var(--muted);line-height:1.6}

/* 12 欄網格：標籤在上、控件在下，同一行控件底部對齊（控件一律 46px 高，所以即係頂齊）*/
.q2-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-3)}
.q2-f{display:flex;flex-direction:column;min-width:0}
.q2-f>.lb{flex:1 0 auto;margin-bottom:6px}
.q2-f>.ct{margin-top:auto}
.q2-f .lb .t{display:block;font-size:var(--fs-sm);color:var(--ink);line-height:1.5}
.q2-f .lb small{display:block;font-size:var(--fs-3xs);color:var(--muted);margin-top:2px;line-height:1.55}
.q2-f .lb em{font-style:normal;font-size:var(--fs-3xs);margin-left:6px;padding:1px 6px;border-radius:var(--r-pill);white-space:nowrap}
/* 來源標籤＝中繼資料，唔係警示，所以用中性灰；用色會同「醫療」「退休」兩個需要身分色撞。
   「估算」用虛線邊同灰底分辨，唔靠顏色。 */
.q2-f .lb em.src{color:var(--ink2);background:var(--neutral-soft);border:1px solid var(--line2)}
.q2-f .lb em.est{color:var(--ink2);background:var(--card2);border:1px dashed var(--line)}
.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}
.c7{grid-column:span 7}.c8{grid-column:span 8}.c9{grid-column:span 9}.c10{grid-column:span 10}.c11{grid-column:span 11}.c12{grid-column:span 12}

/* 附屬欄位：主欄位正下方嘅淺色嵌套區，左邊品牌綠邊 */
.q2-sub{margin-top:var(--sp-2h);padding:var(--sp-2h) var(--sp-3);border-left:3px solid var(--brand-green-deep);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--card2)}
.q2-sub>.cap{font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em;margin-bottom:8px}
.q2-sub .q2-sub{border-left-color:var(--line);background:var(--bg2)}
.q2-fix{display:flex;align-items:center;height:46px;padding:0 12px;border:1px solid var(--line2);border-radius:var(--r-sm);background:var(--card2);font-family:var(--mono);font-size:var(--fs-lg);color:var(--ink2)}
.q2-note-in{font-size:var(--fs-2xs);color:var(--info);background:var(--info-soft);border-radius:var(--r-sm);padding:8px 10px;margin-top:var(--sp-3);line-height:1.6}

/* 子女卡 */
.q2-kids{display:flex;flex-direction:column;gap:var(--sp-2h)}
.q2-kid{border:1px solid var(--line2);border-radius:var(--r-sm);padding:var(--sp-2h) var(--sp-3) var(--sp-3);background:var(--card2)}
.q2-kidh{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-sm);margin-bottom:var(--sp-2h)}
.q2-kidh span{font-size:var(--fs-3xs);color:var(--muted);font-family:var(--mono)}
.q2-kid .q2-sub{background:var(--card)}

/* 可加減列表：其他收入／支出逐項／儲蓄逐項共用一個樣 */
.q2-rows{display:flex;flex-direction:column;gap:var(--sp-1h);margin-bottom:var(--sp-2)}
.q2-arr{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) 46px;gap:var(--sp-1h);align-items:center}
.q2-arr.two{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 46px}
.q2-arr.hd{font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em}
.q2-add{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;padding:0 16px;border:1px dashed var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--brand-green-deep);font:inherit;font-size:var(--fs-sm);cursor:pointer}
.q2-add:hover{border-color:var(--brand-green-deep)}
.q2-x{width:46px;height:46px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);cursor:pointer;font-size:16px;color:var(--muted)}
.q2-fixed{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 14px;background:var(--card2);border-radius:var(--r-sm);padding:var(--sp-2h) var(--sp-3);font-size:var(--fs-xs)}
.q2-fixed .k{display:block;font-size:var(--fs-3xs);color:var(--muted)}
.q2-fixed b{font-family:var(--mono);font-size:var(--fs-md)}
.q2-fixed .tot{grid-column:1/-1;border-top:1px dashed var(--line);padding-top:8px}
.q2-fixed .tot b{color:var(--brand-green-deep)}

/* 輸入元件（全頁統一）：金額 HK$ 前綴右對齊等寬字；數字後綴單位；選項組撐滿所在格；一律 46px 高 */
.q2-in{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);overflow:hidden;height:46px}
.q2-in .px,.q2-in .sx{font-size:var(--fs-2xs);color:var(--muted);padding:0 10px;font-family:var(--mono);white-space:nowrap}
.q2-in .px{border-right:1px solid var(--line2);height:100%;display:flex;align-items:center;background:var(--card2)}
.q2-in .sx{border-left:1px solid var(--line2);height:100%;display:flex;align-items:center;background:var(--card2)}
.q2-in input{flex:1;min-width:0;border:0;padding:0 10px;font:inherit;font-size:var(--fs-lg);font-family:var(--mono);text-align:right;background:transparent;outline:none;height:100%}
.q2-in.txt input{text-align:left;font-family:var(--sans);font-size:var(--fs-md)}
.q2-in.est input{color:var(--muted)}
.q2-in:focus-within{border-color:var(--brand-green-deep);box-shadow:0 0 0 3px var(--focus)}
.q2-two{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.q2-seg{display:flex;gap:4px;width:100%}
.q2-seg button{flex:1 1 0;min-width:0;height:46px;padding:0 8px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--ink);line-height:1.3}
.q2-seg button.on{background:var(--brand-green-deep);color:var(--primary-ink);border-color:var(--brand-green-deep);font-weight:600}
/* 短標籤（是／否、已婚／未婚、0–4）唔好撐到成行闊；長標籤照舊撐滿。 */
.q2-seg.cmp{justify-content:flex-start;gap:6px}
.q2-seg.cmp button{flex:0 1 auto;min-width:92px;max-width:156px;padding:0 20px}
.q2-seg.wrap{flex-wrap:wrap}
.q2-seg.wrap button{flex:1 1 120px;min-width:120px}
#plGroup{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.q2-sel{height:46px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font:inherit;font-size:var(--fs-sm);padding:0 10px;min-width:0;width:100%;color:var(--ink)}
.q2-est{font-size:var(--fs-3xs);color:var(--muted);text-align:right;margin:var(--sp-2h) 0 0}

/* 底部導航 */
.q2-nav{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4);padding-top:var(--sp-3h);border-top:1px solid var(--line)}
.q2-nav .btn{flex:0 0 auto;min-width:126px;min-height:52px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-md)}
.q2-go{flex:1 1 240px;min-height:52px;border:0;border-radius:var(--r-md);background:var(--brand-green-deep);color:var(--primary-ink);font:inherit;font-size:var(--fs-lg);font-weight:700;cursor:pointer}
.q2-peek{display:block;width:100%;min-height:44px;margin-top:var(--sp-2);border:0;background:transparent;color:var(--brand-green-deep);font:inherit;font-size:var(--fs-sm);cursor:pointer;text-align:center}

/* 右欄即時概覽（電腦）／頂部釘住摘要（手機、平板） */
.q2-side-strip{position:sticky;top:calc(var(--topbar-h,56px) + 8px);z-index:6;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-2h) var(--sp-3)}
.q2-side-strip>div{min-width:0;text-align:center}
.q2-side-strip .k{display:block;font-size:var(--fs-3xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q2-side-strip b{font-family:var(--mono);font-size:var(--fs-md)}
.q2-side-strip b.ok{color:var(--brand-green-deep)}
.q2-side-strip b.bad{color:var(--bad)}
.q2-side-strip .ph{grid-column:1/-1;text-align:center;font-size:var(--fs-2xs);color:var(--muted)}
.q2-side-panel{display:none}
.q2-side-panel .sh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-sm);font-weight:700;margin-bottom:var(--sp-3)}
.q2-side-panel .sh span{font-size:var(--fs-3xs);color:var(--muted);font-weight:400}
.q2-side-panel .sh2{font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em;margin:var(--sp-3h) 0 8px;padding-top:var(--sp-2h);border-top:1px dashed var(--line2)}
.q2-side-panel .nbr{margin-bottom:var(--sp-2h)}
.q2-side-panel .nbh{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-2xs);color:var(--ink2)}
.q2-side-panel .nbh>span{display:inline-flex;align-items:center;min-width:0}
.q2-side-panel .nbh b{font-family:var(--mono);font-size:var(--fs-xs)}
.q2-side-panel .nbh b.ok{color:var(--brand-green-deep)}
.q2-side-panel .nbh b.warn{color:var(--warn)}
.q2-side-panel .nbh b.bad{color:var(--bad)}
.nbt{height:8px;border-radius:4px;background:var(--card2);overflow:hidden;margin:4px 0 3px}
.nbt i{display:block;height:100%;border-radius:4px;background:var(--brand-green-deep)}
.nbt i.warn{background:var(--warn)}
.nbt i.bad{background:var(--bad)}
.nbt i.na{background:var(--line)}
.q2-side-panel .nbv{font-size:var(--fs-3xs);color:var(--muted)}
.q2-side-panel .cmp{display:flex;align-items:center;gap:10px}
.q2-side-panel .cmp .nbt{flex:1;margin:0}
.q2-side-panel .cmp b{font-family:var(--mono);font-size:var(--fs-xs)}
.q2-side-panel .kv>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-2xs);color:var(--ink2);padding:4px 0}
.q2-side-panel .kv b{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink)}
.q2-side-panel .kv b.ok{color:var(--brand-green-deep)}
.q2-side-panel .kv b.bad{color:var(--bad)}
.q2-side-panel .act{list-style:none;margin:0;padding:0}
.q2-side-panel .act li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:var(--fs-2xs);padding:7px 0;border-bottom:1px dashed var(--line2)}
.q2-side-panel .act li:last-child{border-bottom:0}
.q2-side-panel .act .t{color:var(--ink2);min-width:0}
.q2-side-panel .act b{font-family:var(--mono);white-space:nowrap}
.q2-side-empty{font-size:var(--fs-2xs);color:var(--muted);line-height:1.7;margin:0}
@media (min-width:1000px){
  .q2-ask{grid-template-columns:minmax(0,1fr) 340px;gap:var(--sp-4)}
  .q2-main{grid-column:1;grid-row:1}
  .q2-side{grid-column:2;grid-row:1;position:sticky;top:calc(var(--topbar-h,56px) + 12px)}
  .q2-side-strip{display:none}
  .q2-side-panel{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-3) var(--sp-3h);max-height:calc(100vh - var(--topbar-h,56px) - 28px);overflow:auto}
}

/* ── 結果頁：頁首 ── */
.q2-rhead{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand-green-deep);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-3h) var(--sp-4);margin-bottom:var(--sp-3)}
.q2-rhead .hl{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.q2-rhead .hl b{font-size:var(--fs-2xl);letter-spacing:.01em}
.q2-rhead .dt{font-size:var(--fs-2xs);color:var(--muted);font-family:var(--mono)}
.q2-rhead .fam{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.q2-rhead .fam span{font-size:var(--fs-2xs);color:var(--ink2);background:var(--card2);border:1px solid var(--line2);border-radius:var(--r-pill);padding:3px 10px}
.q2-rhead .comp{display:flex;flex-wrap:wrap;align-items:center;gap:6px 22px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line2)}
.q2-rhead .ct{flex:0 0 100%;font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em}
.q2-rhead .ci{display:flex;align-items:center;gap:6px;font-size:var(--fs-2xs);color:var(--ink2)}
.q2-rhead .ci b{font-family:var(--mono);color:var(--muted)}
.q2-rhead .ci>span{display:inline-flex;align-items:center}
.q2-rhead.warn{border-left-color:var(--warn)}
/* 一句結論：最重要嗰個數唔應該要顧問自己讀五條條形先睇得出 */
.q2-verdict{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:10px;padding:9px 12px;border-radius:var(--r-sm);background:var(--warn-soft)}
.q2-verdict b{font-size:var(--fs-md);color:var(--warn)}
.q2-verdict span{font-size:var(--fs-2xs);color:var(--ink2);line-height:1.6}
.q2-verdict.ok{background:var(--ok-soft)}
.q2-verdict.ok b{color:var(--ok)}
.q2-dots{display:inline-flex;gap:2px;vertical-align:middle}
.q2-dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.q2-dots i.on{background:var(--brand-green-deep)}

/* 需要總覽（手機釘頂） */
.q2-sum{position:sticky;top:calc(var(--topbar-h,56px) + 8px);z-index:5;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3)}
.q2-sumh{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-left:13px;font-size:var(--fs-sm);font-weight:600;margin-bottom:4px}
.q2-sumh::before{content:"";position:absolute;left:0;top:.32em;width:4px;height:.86em;border-radius:2px;background:var(--brand-green-deep)}
.q2-sumh .dim{font-size:var(--fs-3xs);color:var(--muted);font-weight:400}

/* 闊版網格 */
.q2-grid{display:grid;grid-template-columns:1fr;gap:0}
.q2-grid>.span2{grid-column:1/-1}

/* 圖表（inline SVG） */
.q2-chart-host{width:100%;min-height:24px}
.q2-chart-host.donut{display:flex;justify-content:center}
.q2-chart{display:block;max-width:100%}
.q2-chart .trk{fill:var(--card2)}
.q2-chart .fil{fill:var(--brand-green-deep)}
.q2-chart .fil.warn{fill:var(--warn)}
.q2-chart .fil.bad{fill:var(--bad)}
/* 分類色＝單一品牌色嘅深淺階（資源分配、子女教育開支都係「一舊嘢分幾份」）。
   刻意唔用五個需要嘅身分色 —— 同一版面入面同一隻顏色唔可以代表兩件事。 */
.q2-chart .s1{fill:var(--brand-green-deep);fill-opacity:1}
.q2-chart .s2{fill:var(--brand-green-deep);fill-opacity:.68}
.q2-chart .s3{fill:var(--brand-green-deep);fill-opacity:.44}
.q2-chart .s4{fill:var(--brand-green-deep);fill-opacity:.24}
.q2-chart .gl{stroke:var(--line2);stroke-width:1}
.q2-chart .ax{stroke:var(--line);stroke-width:1}
.q2-chart .ln{fill:none;stroke:var(--brand-green-deep);stroke-width:2;stroke-linejoin:round}
.q2-chart .ar{fill:var(--q2)}
.q2-chart .mk{stroke:var(--brand-gold-deep);stroke-width:1.5;stroke-dasharray:4 3}
.q2-chart .mkb{stroke:var(--bad);stroke-width:1.5;stroke-dasharray:4 3}
.q2-chart text{font-family:var(--sans);fill:var(--muted)}
.q2-chart .t-lab{font-size:13px;font-weight:600;fill:var(--ink)}
.q2-chart .t-sm{font-size:10.5px}
.q2-chart .t-v{font-size:13px;font-family:var(--mono);font-weight:700;fill:var(--ink)}
.q2-chart .t-c{font-size:19px;font-family:var(--mono);font-weight:700;fill:var(--ink)}
.q2-chart .sw-life{fill:var(--n-life)}
.q2-chart .sw-ci{fill:var(--n-ci)}
.q2-chart .sw-medical{fill:var(--n-medical)}
.q2-chart .sw-education{fill:var(--n-education)}
.q2-chart .sw-retirement{fill:var(--n-retirement)}
.q2-chart .ok{fill:var(--brand-green-deep)}
.q2-chart .warn{fill:var(--warn)}
.q2-chart .bad{fill:var(--bad)}
.q2-chart text.ok{fill:var(--brand-green-deep)}
.q2-chart text.bad{fill:var(--bad)}
.q2-lg{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 14px;margin-top:8px}
.q2-lg>div{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-2xs);min-width:0}
.q2-lg i{width:10px;height:10px;border-radius:2px;flex:none}
.q2-lg .k{color:var(--ink2);min-width:0}
.q2-lg b{margin-left:auto;font-family:var(--mono)}
.q2-lg .sw1{background:var(--brand-green-deep);opacity:1}
.q2-lg .sw2{background:var(--brand-green-deep);opacity:.68}
.q2-lg .sw3{background:var(--brand-green-deep);opacity:.44}
.q2-lg .sw4{background:var(--brand-green-deep);opacity:.24}
.q2-bh{font-size:var(--fs-3xs);color:var(--muted);letter-spacing:.04em;margin-top:var(--sp-4)}

/* 行動計劃 */
.q2-plan{list-style:none;margin:0;padding:0}
.q2-plan li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--line2)}
.q2-plan li:last-child{border-bottom:0}
.q2-plan .n{width:26px;height:26px;border-radius:50%;background:var(--brand-green-deep);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:var(--fs-xs);font-weight:700}
.q2-plan li:not(.in) .n{background:var(--faint)}
.q2-plan .t{font-size:var(--fs-md)}
.q2-plan .t small{display:block;font-size:var(--fs-3xs);color:var(--muted);margin-top:2px}
.q2-plan .a{font-family:var(--mono);font-size:var(--fs-md);font-weight:700;white-space:nowrap;text-align:right}
.q2-plan .a small{display:block;font-weight:400;font-size:var(--fs-3xs);color:var(--muted);font-family:var(--sans)}
.q2-aff{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:var(--sp-3);background:var(--card2);border-radius:var(--r-sm);padding:10px 12px;font-family:var(--mono);font-size:var(--fs-sm)}
.q2-aff .k{display:block;font-family:var(--sans);font-size:var(--fs-3xs);color:var(--muted)}
.q2-aff b{font-weight:400}
.q2-aff b.bad{color:var(--bad);font-weight:700}
.q2-note{font-size:var(--fs-3xs);color:var(--muted);margin-top:6px}
.q2-tax{font-size:var(--fs-xs);padding:10px 12px;border:1px dashed var(--line);border-radius:var(--r-sm);line-height:1.7}
.q2-tax small{display:block;color:var(--muted);font-size:var(--fs-3xs);margin-top:4px}
.q2-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--sp-3)}
.q2-flags span{font-size:var(--fs-3xs);color:var(--bad);background:var(--bad-soft);border-radius:var(--r-pill);padding:4px 10px}

/* 詳細組成 */
.q2-dets{display:grid;grid-template-columns:1fr;gap:0}
.q2-det{border-top:1px dashed var(--line2);padding:8px 0}
.q2-det summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:32px;font-size:var(--fs-sm);font-weight:600}
.q2-det summary::-webkit-details-marker{display:none}
.q2-det summary .dim{font-weight:400;font-family:var(--mono);font-size:var(--fs-xs);color:var(--muted)}
.q2-det table{width:100%;border-collapse:collapse;margin-top:6px;font-size:var(--fs-2xs)}
.q2-det td{padding:6px 0;border-bottom:1px dashed var(--line2);vertical-align:top}
.q2-det td.num{text-align:right;font-family:var(--mono);white-space:nowrap;padding-left:10px}
.q2-det em{font-style:normal;font-size:10px;color:var(--warn);border:1px solid var(--warn);border-radius:var(--r-pill);padding:0 5px;margin-left:4px}
.q2-ref{font-size:var(--fs-3xs);color:var(--muted);padding:6px 0 10px;line-height:1.7}
.q2-ref.treat{color:var(--ink2);background:var(--card2);border-radius:var(--r-sm);padding:8px 10px;margin:6px 0}

/* 假設／動作／免責 */
.q2-asm summary{cursor:pointer;font-size:var(--fs-xs);color:var(--muted);list-style:none;min-height:32px;display:flex;align-items:center}
.q2-asm summary::-webkit-details-marker{display:none}
.q2-asm table{width:100%;border-collapse:collapse;margin-top:8px;font-size:var(--fs-2xs)}
.q2-asm td{padding:6px 0;border-bottom:1px dashed var(--line2)}
.q2-asm td.num{text-align:right;font-family:var(--mono);white-space:nowrap}
.q2-disc{font-size:var(--fs-3xs);color:var(--muted);line-height:1.7;margin-top:var(--sp-3)}
.q2-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:var(--sp-3)}
.q2-acts.one{grid-template-columns:1fr}
.q2-acts .btn{min-height:46px;font-size:var(--fs-md);display:flex;align-items:center;justify-content:center}
.q2-acts .btn.primary{background:var(--brand-green-deep);color:var(--primary-ink);border-color:var(--brand-green-deep)}
.q2-edit summary{cursor:pointer;font-size:var(--fs-sm);font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:36px}
.q2-edit summary::-webkit-details-marker{display:none}
.q2-edit summary .dim{font-weight:400;font-size:var(--fs-2xs);color:var(--muted)}

/* 保單直接輸入 */
.q2-pol{margin-top:var(--sp-3);border-top:1px dashed var(--line2);padding-top:10px}
.q2-pol summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;font-size:var(--fs-sm);font-weight:600}
.q2-pol summary::-webkit-details-marker{display:none}
.q2-pol summary .dim{font-weight:400;font-size:var(--fs-3xs);color:var(--muted)}
.q2-poltbl{width:100%;border-collapse:collapse;margin:8px 0;font-size:var(--fs-2xs)}
.q2-poltbl td{padding:6px 4px;border-bottom:1px dashed var(--line2);vertical-align:top}
.q2-poltbl td.num{text-align:right;font-family:var(--mono);white-space:nowrap}
.q2-poltbl small{color:var(--muted)}
.q2-poltbl small.ok{color:var(--brand-green-deep)}
.q2-poltbl small.off{color:var(--muted)}
.q2-poltbl tr.rd td{color:var(--muted);font-size:var(--fs-3xs);border-bottom:1px dotted var(--line2)}
.q2-polform{display:flex;flex-direction:column;gap:8px;margin-top:8px;background:var(--card2);border-radius:var(--r-sm);padding:10px}
.q2-polform .btn{min-height:46px}
.q2-cov{background:var(--card2);border-radius:var(--r-sm);padding:10px 12px;margin:8px 0}
.q2-covg{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 14px;font-size:var(--fs-xs)}
.q2-covg .k{display:block;font-size:var(--fs-3xs);color:var(--muted)}
.q2-covg b{font-family:var(--mono)}
.q2-riders{border-top:1px dashed var(--line);padding-top:6px}
.q2-rider{display:grid;grid-template-columns:minmax(0,1.4fr) 96px minmax(0,1fr) minmax(0,1fr) 40px;gap:4px;margin-bottom:6px;align-items:center}

/* ── 電腦：結果頁兩欄 ── */
@media (min-width:1000px){
  .q2-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:0 var(--sp-3)}
  .q2-dets{grid-template-columns:1fr 1fr;gap:0 var(--sp-4)}
  .q2.wide .q2-sum{position:static}
  .q2-rhead .hl b{font-size:var(--fs-3xl)}
}
/* ── 手機 ── */
@media (max-width:640px){
  .q2-g{grid-template-columns:1fr;gap:var(--sp-3)}
  .q2-g>.q2-f{grid-column:1/-1}
  .q2-sub{padding:var(--sp-2) var(--sp-2h);margin-top:var(--sp-2)}
  .q2-fs{padding:var(--sp-3) var(--sp-3) var(--sp-3h)}
  .q2-nav .btn{flex:1 1 calc(50% - var(--sp-2));min-width:0}
  .q2-go{flex:1 1 100%}
  .q2-arr.hd{display:none}
  .q2-sum{top:calc(var(--topbar-h,56px) + 4px);padding:var(--sp-2h) var(--sp-3)}
  .q2-acts{grid-template-columns:1fr}
  .q2-arr{grid-template-columns:minmax(0,1fr) 40px}
  .q2-arr>.a1{grid-column:1}
  .q2-arr>.q2-x{grid-column:2;grid-row:1}
  .q2-arr>.a2,.q2-arr>.a3{grid-column:1/-1}
  .q2-arr.two{grid-template-columns:minmax(0,1fr) 40px}
  .q2-rider{grid-template-columns:1fr 1fr}
  .q2-rider .q2-in:first-child{grid-column:1/-1}
  .q2-seg.wrap button{flex:1 1 44%;min-width:0}
  #plGroup{grid-template-columns:repeat(2,minmax(0,1fr))}
  .q2-rhead .hl b{font-size:var(--fs-xl)}
  /* 手機所有可撳目標 ≥44px */
  .q2-steps button{min-height:44px}
  .q2-back{min-height:44px}
  .q2-card>.q2-gh:first-child{margin:calc(var(--sp-3h) * -1) calc(var(--sp-4) * -1) var(--sp-3);padding:var(--sp-2h) var(--sp-3)}
  .q2-ghead{margin:calc(var(--sp-3h) * -1) calc(var(--sp-4) * -1) var(--sp-3);padding:var(--sp-2h) var(--sp-3);gap:var(--sp-2h)}
  .q2-ghead .tt b{font-size:var(--fs-lg)}
  .q2-ghead .aff{margin-left:0;flex-basis:100%}
  .q2-q{max-width:none}
  .q2-ovwrap{max-height:none}
  /* 五個短掣（子女人數 0–4）喺 390–430px 機上一行放唔落，要準許換行，否則成版橫向溢出 */
  .q2-seg.cmp{flex-wrap:wrap}
  .q2-seg.cmp button{flex:1 1 84px;min-width:0;max-width:none;padding:0 10px}
  .q2-det summary,.q2-asm summary,.q2-edit summary,.q2-pol summary{min-height:44px}
}
/* 醫保計劃剔選 */
.q2-chks{display:flex;flex-direction:column;gap:6px}
.q2-chk{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--card);cursor:pointer;min-height:44px}
.q2-chk input{width:18px;height:18px;margin-top:2px;accent-color:var(--brand-green-deep);flex:none}
.q2-chk b{font-size:var(--fs-sm);font-weight:600}
.q2-chk small{display:block;font-size:var(--fs-3xs);color:var(--muted)}
/* 薪俸稅概算表 */
.q2-taxg{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-2)}
.q2-taxt{width:100%;border-collapse:collapse;font-size:var(--fs-2xs)}
.q2-taxt td{padding:4px 0;border-bottom:1px dashed var(--line2)}
.q2-taxt td.in{padding-left:14px;color:var(--muted)}
.q2-taxt td.num{text-align:right;font-family:var(--mono);white-space:nowrap}
.q2-taxt tr.sum td{font-weight:700;border-bottom:1px solid var(--line)}
@media (max-width:640px){.q2-taxg{grid-template-columns:1fr}}

/* 已終止保單：摺埋、灰底，同生效嗰批明確分開（用戶 2026-09-07 喺生產反映失效保單照樣顯示）。
   刻意唔剷走 —— 顧問要見得返「呢個客以前有咩、幾時斷咗」；但亦都唔准撈埋，
   撈埋就會睇落似仲有保障。 */
.q2-deadpol { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 8px; }
.q2-deadpol > summary { cursor: pointer; font-size: 13px; color: var(--dim); padding: 4px 0; list-style: none; }
.q2-deadpol > summary::-webkit-details-marker { display: none; }
.q2-deadpol > summary::before { content: "▸ "; }
.q2-deadpol[open] > summary::before { content: "▾ "; }
.q2-poltbl.dim { opacity: .62; }

/* 保單表：保障額同現金價值分開兩欄（用戶 2026-09-07）。表頭要睇得出邊欄係邊欄。 */
.q2-poltbl thead th { font-size: 12px; font-weight: 600; color: var(--dim); text-align: left; padding: 4px 8px 6px; border-bottom: 1px solid var(--line); }
.q2-poltbl thead th.num { text-align: right; }
.q2-kind { color: var(--dim); }
/* 退休醫保保費明細（逐張單＋合計）—— 用戶 09-10 */
.q2-det table.q2-mini{margin:6px 0 2px;font-size:var(--fs-2xs)}
.q2-det table.q2-mini th{text-align:left;font-weight:500;color:var(--muted);padding:4px 0;border-bottom:1px solid var(--line2)}
.q2-det table.q2-mini th.num{text-align:right;padding-left:10px}
.q2-det table.q2-mini tr.total td{font-weight:600;border-bottom:none}
