// Helm — 退休 / FIRE 試算。兩種模式:4% 法則(永續,花不完)/ 壽命模式(花到預計壽命剛好用完)。純前端計算。
// 欄位記憶:沒動過 → 用明細/預設的最新值;改過 → 記住你的值(localStorage)。「重設」清掉記憶、回到自動值。
(function () {
  const NS = window.HelmDesignSystem_9613a7;
  const { Field, Input } = NS;
  function fmt(n) { return Math.round(n || 0).toLocaleString("en-US"); }
  function wan(n) { return (Math.round((n || 0) / 1e4)).toLocaleString("en-US"); }
  function wan1(n) { return (Math.round((n || 0) / 1e3) / 10).toLocaleString("en-US"); }   // 萬,1 位小數
  function num(v) { return parseFloat(String(v).replace(/,/g, "")) || 0; }
  function lsGet(k) { return window.HelmPrefs ? window.HelmPrefs.get(k) : (function () { try { return localStorage.getItem(k); } catch (e) { return null; } })(); }
  function lsSet(k, v) { if (window.HelmPrefs) window.HelmPrefs.set(k, v); else { try { localStorage.setItem(k, v); } catch (e) {} } }
  function lsDel(k) { if (window.HelmPrefs) window.HelmPrefs.del(k); else { try { localStorage.removeItem(k); } catch (e) {} } }
  function ageFromBirth(b) {   // "1989/03/18" / "1989-03-18" → 當下足歲(生日未到當年不加)
    var m = String(b || "").match(/(\d{4})\D+(\d{1,2})\D+(\d{1,2})/);
    if (!m) return null;
    var now = new Date(), a = now.getFullYear() - (+m[1]);
    if (now.getMonth() + 1 < +m[2] || (now.getMonth() + 1 === +m[2] && now.getDate() < +m[3])) a--;
    return (a > 0 && a < 120) ? a : null;
  }
  const K = { mode: "helm-fire-mode", portfolio: "helm-fire-portfolio", monthly: "helm-fire-monthly", ret: "helm-fire-ret", annualExp: "helm-fire-annualexp", age: "helm-fire-age", life: "helm-fire-life", lpWage: "helm-fire-lpwage", lpRate: "helm-fire-lprate", lpReturn: "helm-fire-lpreturn", lpTax: "helm-fire-lptax" };

  function FireChart({ portfolio, monthly, returnPct, target, years }) {
    const ref = React.useRef(null);
    const chart = React.useRef(null);
    React.useEffect(function () {
      if (!ref.current || !window.Chart) return;
      const css = getComputedStyle(document.documentElement);
      const brass = (css.getPropertyValue("--accent-brass") || "#cbac74").trim();
      const tert = (css.getPropertyValue("--text-tertiary") || "#9aa").trim();
      const grid = (css.getPropertyValue("--line-faint") || "rgba(0,0,0,.06)").trim();
      const pos = (css.getPropertyValue("--value-positive") || "#3a8a5f").trim();
      const n = Math.max(5, Math.min(40, Math.ceil(years) + 2));
      const r = returnPct / 100;
      const labels = [], data = [];
      let bal = portfolio;
      for (let y = 0; y <= n; y++) { labels.push(y + "y"); data.push(Math.round(bal)); bal = bal * (1 + r) + monthly * 12; }
      if (chart.current) chart.current.destroy();
      chart.current = new window.Chart(ref.current, {
        type: "line",
        data: { labels: labels, datasets: [
          { data: data, borderColor: brass, backgroundColor: brass + "22", fill: true, tension: 0.25, pointRadius: 0, borderWidth: 2 },
          { data: labels.map(function () { return target; }), borderColor: pos, borderDash: [4, 4], pointRadius: 0, borderWidth: 1, fill: false },
        ] },
        options: {
          responsive: true, maintainAspectRatio: false,
          plugins: { legend: { display: false }, tooltip: { callbacks: { label: function (c) { return "NT$ " + Math.round(c.parsed.y).toLocaleString("en-US"); } } } },
          scales: {
            y: { ticks: { color: tert, maxTicksLimit: 5, callback: function (v) { return Math.round(v / 1e6) + "M"; } }, grid: { color: grid } },
            x: { ticks: { color: tert, maxTicksLimit: 8 }, grid: { display: false } },
          },
        },
      });
      return function () { if (chart.current) { chart.current.destroy(); chart.current = null; } };
    }, [portfolio, monthly, returnPct, target, years]);
    return <div className="ov-trendchart" style={{ height: 150 }}><canvas ref={ref} /></div>;
  }

  function RetireScreen({ onClose }) {
    const H = window.HELM || {};
    const worktype = (window.HelmPrefs && window.HelmPrefs.get("helm-prot-worktype")) || "employee";
    const isEmployer = worktype === "employer";   // 僱主/自營=只有國保、無雇主提撥;受僱=有勞保勞退。文案依此中性化(設定→個人資料可改)
    const cf = H.cashflow || {};
    const loanPay = (cf.loans || []).reduce(function (s, l) { return s + (l.monthly || 0); }, 0);   // 房貸/車貸/信貸月付
    const baseExpenseMo = Math.max(0, (cf.expenseSum || 50000) - loanPay);   // 退休時貸款多半已還清 → 預設扣掉
    const birthAge = ageFromBirth(H.birth);   // 有設生日 → 自動算當下年齡(優先)

    // 自動帶入的「預設值」(沒記憶時用這些;會跟著明細變)
    const dftPortfolio = String(Math.round(H.liquid || 0));
    const dftMonthly = String(Math.max(0, Math.round(cf.investSum || cf.savingPower || 0)));   // 定期定額
    const dftAnnualExp = String(Math.round(baseExpenseMo * 12));
    const dftAge = birthAge != null ? String(birthAge) : "35";

    // 每個欄位:有記住的值就用記住的,否則用自動帶入的預設
    const [mode, setMode] = React.useState(function () { return lsGet(K.mode) || "perpetual"; });
    const [portfolio, setPortfolio] = React.useState(function () { return lsGet(K.portfolio) || dftPortfolio; });
    const [monthly, setMonthly] = React.useState(function () { return lsGet(K.monthly) || dftMonthly; });
    const [ret, setRet] = React.useState(function () { return lsGet(K.ret) || "5"; });
    const [annualExp, setAnnualExp] = React.useState(function () { return lsGet(K.annualExp) || dftAnnualExp; });
    const [age, setAge] = React.useState(function () { return birthAge != null ? String(birthAge) : (lsGet(K.age) || "35"); });
    const [lifeExp, setLifeExp] = React.useState(function () { return lsGet(K.life) || "85"; });
    const [infl, setInfl] = React.useState(function () { return lsGet("helm-fire-infl") || "2.5"; });
    // 勞退自提(僱主/自營)
    const [lpWage, setLpWage] = React.useState(function () { return lsGet(K.lpWage) || "45800"; });
    const [lpRate, setLpRate] = React.useState(function () { return lsGet(K.lpRate) || "6"; });
    const [lpReturn, setLpReturn] = React.useState(function () { return lsGet(K.lpReturn) || "3"; });
    const [lpTax, setLpTax] = React.useState(function () { return lsGet(K.lpTax) || "12"; });

    // 改欄位 = 同時記住(只在使用者實際輸入時寫,所以沒動的欄位仍跟著明細)
    function persist(setter, key) { return function (e) { const v = e.target.value; setter(v); lsSet(key, v); }; }
    function pickMode(m) { setMode(m); lsSet(K.mode, m); }
    function resetAll() {
      [K.mode, K.portfolio, K.monthly, K.ret, K.annualExp, K.age, K.life].forEach(lsDel);
      lsDel("helm-fire-infl");
      setMode("perpetual"); setPortfolio(dftPortfolio); setMonthly(dftMonthly); setRet("5");
      setAnnualExp(dftAnnualExp); setAge(dftAge); setLifeExp("85"); setInfl("2.5");
      [K.lpWage, K.lpRate, K.lpReturn, K.lpTax].forEach(lsDel);
      setLpWage("45800"); setLpRate("6"); setLpReturn("3"); setLpTax("12");
    }

    const P = num(portfolio), M = num(monthly), R = num(ret), AE = num(annualExp), AG = num(age), D = num(lifeExp), INF = num(infl);
    const realR = ((1 + R / 100) / (1 + INF / 100) - 1) * 100;   // 實質報酬=報酬扣通膨 → 全程用「今天的購買力」算,避免高估
    const rM = realR / 100 / 12, rA = realR / 100;
    function annuityPV(yrs) {   // 退休後 yrs 年、每年領 AE、剩餘以 rA 成長 → 退休那天所需本金(年金現值)
      if (yrs <= 0) return 0;
      if (rA <= 0) return AE * yrs;
      return AE * (1 - Math.pow(1 + rA, -yrs)) / rA;
    }

    let displayTarget, months = 0, reached = true;
    if (mode === "perpetual") {
      displayTarget = AE * 25;   // 4% 法則
      let bal = P;
      if (P < displayTarget) { while (bal < displayTarget && months < 600) { bal = bal * (1 + rM) + M; months++; } if (months >= 600) reached = false; }
    } else {
      // 壽命模式:單趟掃描——投資逐月成長,同時「所需本金」隨年齡增長而縮小(剩餘退休年數變少),第一次追上=達成點
      let bal = P, curAge = AG, tgt = annuityPV(D - curAge);
      if (P < tgt) {
        while (months < 600) { bal = bal * (1 + rM) + M; months++; curAge = AG + months / 12; tgt = annuityPV(D - curAge); if (tgt <= 0 || bal >= tgt) break; }
        if (months >= 600 && bal < tgt) reached = false;
      }
      displayTarget = reached ? annuityPV(D - (AG + months / 12)) : annuityPV(Math.max(1, D - AG));
    }
    const years = months / 12;
    const fiAge = AG + years;
    const progress = displayTarget > 0 ? Math.min(100, Math.round(P / displayTarget * 100)) : 100;
    const retireYears = Math.max(0, Math.round(D - fiAge));   // 壽命模式:退休後要靠這筆錢的年數

    // 勞退自提試算(僱主/自營:只有個人自願提繳 ≤6%,沒有雇主那 6%)
    const LPW = Math.min(150000, num(lpWage)), LPR = num(lpRate), LPRET = num(lpReturn), LPTAX = num(lpTax);
    const lpMo = LPW * LPR / 100;                    // 每月自提
    const lpYr = lpMo * 12;                          // 每年自提
    const lpTaxSave = lpYr * LPTAX / 100;            // 每年節稅(自提全額不計入綜所稅)
    const lpYrsTo60 = Math.max(0, 60 - AG);
    const lpI = LPRET / 100 / 12;
    const lpFV = lpI > 0 ? lpMo * (Math.pow(1 + lpI, lpYrsTo60 * 12) - 1) / lpI : lpMo * lpYrsTo60 * 12;  // 到60歲累積
    const lpPension = lpFV / 21 / 12;                // 月退粗估(年金現值因子≈21、餘命攤提)
    const lpTotalTaxSave = lpTaxSave * lpYrsTo60;    // 累計節稅

    // 退休提領模擬:退休本金=目標,每年花 AE(實質購買力),用實質報酬滾,看撐到幾歲;附報酬壓力測試
    function depleteAge(realRatePct) {
      var rr = realRatePct / 100, bal = displayTarget, n = 0;
      while (n < 75) { bal = bal * (1 + rr) - AE; n++; if (bal <= 0) return Math.round(fiAge) + n; }
      return null;   // 撐過 75 年 → 視為夠用一輩子
    }
    const retStart = Math.round(fiAge);
    const baseDeplete = depleteAge(realR);
    const lastsLife = baseDeplete == null || (D && baseDeplete >= D);
    const stress = [
      { k: "報酬差 2%", r: realR - 2, age: depleteAge(realR - 2) },
      { k: "你的設定", r: realR, age: baseDeplete },
      { k: "報酬好 2%", r: realR + 2, age: depleteAge(realR + 2) },
    ];

    return (
      <div className="fpage" role="dialog" aria-modal="true" aria-label="退休 FIRE 試算">
        <div className="fpage__panel">
          <header className="fpage__bar">
            <button className="fpage__cancel" onClick={onClose}><i className="ph ph-arrow-left" aria-hidden="true" />返回</button>
            <span className="fpage__title">退休 / FIRE 試算</span>
            <span aria-hidden="true" />
          </header>
          <div className="fpage__scroll">
            <div className="fpage__body">

              <section className="fpage__card">
                <div className="fpage__card-head"><span className="t-overline">財務自由目標</span></div>

                {/* 模式切換 */}
                <div className="fire-seg" role="tablist">
                  <button type="button" role="tab" aria-selected={mode === "perpetual"} className={"fire-seg__btn" + (mode === "perpetual" ? " is-on" : "")} onClick={function () { pickMode("perpetual"); }}>4% 法則</button>
                  <button type="button" role="tab" aria-selected={mode === "lifespan"} className={"fire-seg__btn" + (mode === "lifespan" ? " is-on" : "")} onClick={function () { pickMode("lifespan"); }}>壽命模式</button>
                </div>

                {/* 模式說明(帶你的實際數字)*/}
                {mode === "perpetual" ? (
                  <div className="fire-desc">
                    <p><b>這是什麼</b>:假設你只花投資賺的、<b>不動到本金</b> → 錢花不完,還能留給家人。比較保守,要存的錢多一點。</p>
                    <p><b>怎麼算</b>:需要的錢 = 年支出 × 25(等於每年只領本金的 4%)。你年支出約 {wan1(AE)} 萬,× 25 ≈ <b>{wan(AE * 25)} 萬</b>。</p>
                  </div>
                ) : (
                  <div className="fire-desc">
                    <p><b>這是什麼</b>:假設錢<b>花到 {D || "—"} 歲剛好用完</b>(本金也花掉)→ 需要的錢比較少、可能更早退休;但要是活得比預期久就會不夠。</p>
                    <p><b>怎麼算</b>:退休後約 {retireYears} 年、每年花 {wan1(AE)} 萬,粗估共 {wan(AE * retireYears)} 萬;但錢會<b>邊花邊繼續生利息</b>,所以退休那天其實只要準備約 <b>{wan(displayTarget)} 萬</b>,就夠花到 {D || "—"} 歲。</p>
                  </div>
                )}

                <div className="fx-now"><span className="fx-now__unit">{mode === "perpetual" ? "需要約" : "退休需要約"}</span><span className="fx-now__rate t-num">{wan(displayTarget)} 萬</span></div>
                <div className="goal__bar"><div className="goal__fill" style={{ width: progress + "%" }} /></div>
                <div className="goal__nums">
                  <span className="t-num">投資部位 {wan(P)} 萬 <span className="goal__of">/ {wan(displayTarget)} 萬</span></span>
                  <span className="goal__pct t-num">{progress}%</span>
                </div>
                {P >= displayTarget ? (
                  <div className="fx-advice fx-advice--low"><span className="fx-advice__txt">🎉 你的投資部位已達標!{mode === "perpetual" ? "以 4% 推算,被動收入估計能覆蓋年支出。" : "這筆錢估計夠你花到 " + D + " 歲。"}</span></div>
                ) : reached ? (
                  <div className="fx-advice fx-advice--mid">
                    <span className="fx-advice__tag">💡 估算結果</span>
                    <span className="fx-advice__txt">照現在的步調,大約 <b>{years.toFixed(1)} 年後</b>(約 <b>{Math.round(fiAge)} 歲</b>){mode === "perpetual" ? "達成財務自由" : "就能退休,錢夠花到 " + D + " 歲"}。</span>
                  </div>
                ) : (
                  <div className="fx-advice fx-advice--high"><span className="fx-advice__txt">照現在的步調 50 年內到不了 —— 試著提高「每月投入」或檢視假設(下面可調)。</span></div>
                )}
                {P < displayTarget && reached && <FireChart portfolio={P} monthly={M} returnPct={realR} target={displayTarget} years={years} />}
              </section>

              {/* 退休後:錢夠用嗎?(提領模擬)*/}
              <section className="fpage__card">
                <div className="fpage__card-head"><span className="t-overline">退休後:錢夠用嗎?</span><span className="fpage__card-hint">提領模擬</span></div>
                <p className="prot-sum__note">假設你 {retStart} 歲帶著 <b>{wan(displayTarget)} 萬</b> 退休、每年花 {wan1(AE)} 萬(隨通膨調整)、投資續抱 —— 這筆錢能撐到幾歲。</p>
                <div className={"fx-advice " + (lastsLife ? "fx-advice--low" : "fx-advice--high")} style={{ marginTop: 10 }}>
                  <span className="fx-advice__txt">{baseDeplete == null
                    ? "✅ 以你設定的報酬,這筆錢花不完(撐過 75 年)——退休現金流穩。"
                    : lastsLife
                      ? "✅ 約可撐到 " + baseDeplete + " 歲,超過你設的壽命 " + (D || "—") + " 歲 —— 夠用。"
                      : "⚠️ 約在 " + baseDeplete + " 歲就會花光,早於你設的壽命 " + (D || "—") + " 歲。可:退休本金多存一點、退休後少花一點、或晚幾年退休。"}</span>
                </div>
                <div className="stk-cats" style={{ marginTop: 10 }}>
                  <div className="ov-trend__label t-caption">報酬壓力測試(萬一報酬不如預期)</div>
                  {stress.map(function (s, i) {
                    return (
                      <div key={i} className="stk-cat__row">
                        <span className="stk-cat__label">{s.k}</span>
                        <span className="stk-cat__sub t-num">實質 {s.r.toFixed(1)}%</span>
                        <span className="stk-cat__pct t-num">{s.age == null ? "花不完 ✅" : (s.age + " 歲" + (D && s.age < D ? " ⚠️" : ""))}</span>
                      </div>
                    );
                  })}
                </div>
                <p className="stk-note" style={{ marginTop: 8 }}>⚠️ 這是用「平均報酬」的簡化模擬,沒算「退休前幾年剛好遇到大跌」(順序風險)—— 真實要更保守抓。{isEmployer ? "你是僱主/自營、沒有勞退/勞保的老年年金,這筆自己存的錢更要留安全邊際。" : "這筆自己存的錢是在勞退/勞保老年年金之外的加碼,留點安全邊際更穩。"}</p>
              </section>

              <section className="fpage__card">
                <div className="fpage__card-head"><span className="t-overline">假設(可調,改過會記住)</span></div>
                <div className="fpage__fields">
                  <Field label="目前投資部位" hint="預設帶入你的活錢+投資(房子車子不算)">
                    <Input amount affix="NT$" inputMode="decimal" value={fmt(P)} onChange={persist(setPortfolio, K.portfolio)} />
                  </Field>
                  <Field label="每月可投入" hint={"每月固定投入投資的錢(預設=定期定額" + ((cf.savingPower || 0) > (cf.investSum || 0) ? "、上限 " + fmt(cf.savingPower) : "") + ")"}>
                    <Input amount affix="NT$" inputMode="decimal" value={fmt(M)} onChange={persist(setMonthly, K.monthly)} />
                  </Field>
                  <Field label="年報酬率(%)" hint="長期股市約 5–7%,保守抓 5">
                    <Input inputMode="decimal" value={ret} onChange={persist(setRet, K.ret)} />
                  </Field>
                  <Field label="通膨率(%)" hint={"用實質報酬(報酬−通膨)算,結果是今天的購買力。你的實質報酬約 " + (((1 + R / 100) / (1 + num(infl) / 100) - 1) * 100).toFixed(1) + "%"}>
                    <Input inputMode="decimal" value={infl} onChange={persist(setInfl, "helm-fire-infl")} />
                  </Field>
                  <Field label="退休後年支出" hint={"預設 = 現在支出扣掉房貸車貸後 ×12" + (loanPay > 0 ? "(已扣月付 " + fmt(loanPay) + ")" : "")}>
                    <Input amount affix="NT$" inputMode="decimal" value={fmt(AE)} onChange={persist(setAnnualExp, K.annualExp)} />
                  </Field>
                  <Field label="目前年齡" hint={birthAge != null ? "依你的生日自動計算" : "改過會記住"}>
                    <Input inputMode="decimal" value={age} onChange={persist(setAge, K.age)} />
                  </Field>
                  {mode === "lifespan" && (
                    <Field label="預計壽命(歲)" hint="壽命模式用:錢要花到這歲剛好用完">
                      <Input inputMode="decimal" value={lifeExp} onChange={persist(setLifeExp, K.life)} />
                    </Field>
                  )}
                </div>
                <button type="button" className="fire-reset" onClick={resetAll}><i className="ph ph-arrow-counter-clockwise" aria-hidden="true" /> 回復預設值</button>
              </section>

              {/* 勞退自提評估(僱主/自營專用)*/}
              <section className="fpage__card">
                <div className="fpage__card-head"><span className="t-overline">勞退自提評估</span><span className="fpage__card-hint">{isEmployer ? "僱主 / 自營" : "受僱也能自提加碼"}</span></div>
                <div className="fire-desc">
                  <p><b>你的情況</b>:{isEmployer
                    ? <>僱主/自營者<b>沒有雇主幫你提那 6%</b>,但可以「個人自願提繳」最高 6% 進自己的勞退專戶(受僱者是雇主 6% + 自提 6%,你只有自提這半邊)。</>
                    : <>受僱者除了雇主幫你提的 6%,還能<b>個人自願再提繳</b>最高 6% 進勞退專戶——這張卡算的就是「你自己加提那 6%」值不值得。</>}</p>
                  <p><b>為什麼值得</b>:① 自提的錢<b>當年全額不計入綜所稅</b>(等於第一年就穩賺你的稅率)② 政府<b>保證收益不低於 2 年定存</b>、虧損不扣本金 ③ 強迫存退休。<b>缺點</b>:<b>60 歲前領不出來</b>(鎖死)、報酬保守、領回時要再課稅。</p>
                  <p><b>怎麼領</b>:年滿 <b>60 歲</b> 可請領;提繳年資 ≥15 年可選月退或一次,&lt;15 年只能一次領。</p>
                </div>
                <div className="fx-now"><span className="fx-now__unit">每年先省稅</span><span className="fx-now__rate t-num">{fmt(lpTaxSave)}</span></div>
                <div className="tax-break">
                  <div className="tax-row"><span>每月自提({fmt(LPW)} × {LPR}%)</span><span className="t-num">{fmt(lpMo)}</span></div>
                  <div className="tax-row"><span>每年自提</span><span className="t-num">{fmt(lpYr)}</span></div>
                  <div className="tax-row tax-row--sum"><span>= 每年省稅(邊際 {LPTAX}%)</span><span className="t-num">{fmt(lpTaxSave)}</span></div>
                  <div className="tax-row"><span>到 60 歲累積(年化 {LPRET}%、{lpYrsTo60} 年)</span><span className="t-num">{fmt(lpFV)}</span></div>
                  <div className="tax-row"><span>≈ 月退休金(粗估)</span><span className="t-num">{fmt(lpPension)}</span></div>
                  <div className="tax-row tax-row--sum"><span>累計省稅({lpYrsTo60} 年)</span><span className="t-num">{fmt(lpTotalTaxSave)}</span></div>
                </div>
                <div className="fx-advice fx-advice--low">
                  <span className="fx-advice__txt">把它當「<b>節稅版的退休保本帳戶</b>」——提好提滿(你稅率越高越划算),但<b>別當主要投資</b>。想追高報酬或要保留隨時能動的現金,用一般投資另外規劃(那邊報酬高、又不鎖死)。</span>
                </div>
                <div className="fpage__fields">
                  <Field label="月提繳工資" hint="勞退上限 150,000(別跟勞保 45,800 搞混);自營可自選級距,通常依實際月收入">
                    <Input amount affix="NT$" inputMode="decimal" value={fmt(LPW)} onChange={persist(setLpWage, K.lpWage)} /></Field>
                  <Field label="自提率(%)" hint={isEmployer ? "上限 6%(你沒有雇主那 6%,自提是你唯一的提繳)" : "上限 6%(這是雇主 6% 之外、你自己額外提的)"}>
                    <Input inputMode="decimal" value={lpRate} onChange={persist(setLpRate, K.lpRate)} /></Field>
                  <Field label="勞退基金年報酬(%)" hint="有保證收益(≥2年定存);近5年約7.4%、長期約3–4.6%。保守抓 3">
                    <Input inputMode="decimal" value={lpReturn} onChange={persist(setLpReturn, K.lpReturn)} /></Field>
                  <Field label="你的邊際稅率(%)" hint="估節稅用;你薪資級距約 12%(可對照報稅工具)">
                    <Input inputMode="decimal" value={lpTax} onChange={persist(setLpTax, K.lpTax)} /></Field>
                </div>
              </section>

              <p className="fx-disclaim">粗估、給方向用:報酬率是假設不是保證。<b>4% 法則</b>保守(留著本金、抗長壽);<b>壽命模式</b>需要的錢少但活得比預期久會不夠。<b>已用實質報酬(報酬−通膨)折算,數字是「今天的購買力」</b>。還沒把稅、勞保勞退、報酬波動算進去——當方向參考,別當精算。</p>
            </div>
          </div>
        </div>
      </div>
    );
  }

  window.RetireScreen = RetireScreen;
})();
