/* 目標 */

/* ============================================================
   目標・マイルストーン
   ============================================================ */
.goal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.goal-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: 16px 18px; box-shadow: var(--shadow-xs); }
.goal-card-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.goal-name { font-size: var(--text-md); font-weight: var(--fw-bold); color: var(--color-text); }
.goal-edit { border: none; background: none; cursor: pointer; font-size: var(--text-md); color: var(--color-text-subtle); padding: 2px 4px; border-radius: var(--radius-md); }
.goal-edit:hover { background: var(--color-bg); color: var(--color-text); }
.goal-amts { font-size: var(--text-sm); color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.goal-amts b { font-size: var(--text-lg); color: var(--color-text); }
.goal-src { font-size: var(--text-2xs); background: var(--color-bg); color: var(--color-text-subtle); border-radius: var(--radius-pill); padding: 2px 9px; margin-left: 8px; }
.goal-prog { height: 9px; background: var(--color-bg); border-radius: var(--radius-sm); overflow: hidden; margin: 9px 0 5px; }
.goal-prog i { display: block; height: 100%; border-radius: var(--radius-sm); transition: width 0.3s; }
.goal-pct { font-size: var(--text-xs); font-weight: var(--fw-semibold); color: var(--color-text); font-variant-numeric: tabular-nums; }
.goal-proj { font-size: var(--text-xs); color: var(--color-text-muted); margin-top: 6px; }
.goal-proj b { color: var(--color-primary); }
.goal-done { color: var(--color-success-text); font-weight: var(--fw-bold); }
.goal-deadline { font-size: var(--text-xs); margin-top: 6px; padding: 5px 9px; border-radius: var(--radius-md); font-variant-numeric: tabular-nums; }
.goal-deadline.ok { background: rgba(16,185,129,0.08); color: var(--color-success-text); }
.goal-deadline.warn { background: rgba(245,158,11,0.1); color: var(--color-warning-text); }
/* 達成予測が置いている前提（想定年率・投資分）。予測の直後に小さく添える
   ＝複利を織り込んだぶん、何を仮定した結果なのかが見えないと数字が独り歩きする */
.goal-assume {
  display: block; margin-top: 2px;
  font-size: var(--text-2xs); color: var(--color-text-subtle);
  font-variant-numeric: tabular-nums;
}

.goal-pace { font-size: var(--text-2xs); color: var(--color-text-subtle); margin-top: 7px; font-variant-numeric: tabular-nums; }
