# #024 Calendar Package v1.0.215 — mounted #029 FIT + integer yen

Status: **Candidate / NOT COMPLETED**. Runtime BoneCalendar **1.0.96** unchanged.

- Root cause of FIT failure: v214 #029 measured its voucher grid at creation (before parent table-cell mount) and had fixed `width:160` without a resize observer. v215 recalculates the **formal #029 grid** after mount and after container resizing, updates supported #029 `width` and `voucherDigitCount` through its public `setOptions`, and calls formal `showVoucherDisplay` only when not in input mode. #029 owns grid and glyph rendering; no fake HTML number input or custom digit grid.
- Integer yen: new controls use `step:1`, `decimalPlaces:0`, `displayDecimalPlaces:0`, `inputMode:'numeric'`, and block decimal entry/paste. Both debit, credit, earnings, deductions, and the net read-only preview use frozen #029.
- Totals/save validate whole-number yen. Historic fractional values are not silently rounded or migrated; saving those vouchers prompts explicit correction.
- Inactive voucher grid, click-to-edit and blur-to-voucher behavior retained. `ResizeObserver` tracks FIT on table width changes. The narrow 960px forced min width is removed to avoid clipping.
- Dependencies #001/#002/#022/#029 installed separately. Their frozen runtime files are not copied or changed. No external CDNs and no query parameters for assets.
- Tests: 86 node contracts and Chromium in-memory actual #029 runtime with dependency mocks. This is not a Windows install or live-host verification.

Check: `http://localhost/boneflow/sample/024/calendar/finance-voucher.html` (open from Calendar so opener is available). Verify PACKAGE v1.0.215 and cell border/digits at multiple window widths; no unverified PASS claims for Windows or SQLite.
