Jesse_Chen
a96df75473
Independent Staging Quality Gate / validate (push) Successful in 10m50s
Independent Staging Quality Gate / publish (push) Has been cancelled
fix(frontend): stop the personal report rendering white on white in dark mode
...
.personal-report-reader declared --report-paper, --report-rule and
--report-accent on itself. A custom property resolves from the nearest
element that declares it, so an element-local declaration beats :root
regardless of media queries or source order — the dark override added
with the theme was dead the moment it was written.
The inks did follow the theme, because they live on :root. So dark mode
put --color-ink (#f2f0ea) on paper that stayed #f8f5ee: 1.05:1 for
headings and 1.22:1 for body. The report was effectively invisible.
Printing had the same defect from the other side: the print block forces
white backgrounds but never reset the inks, so printing from a dark
screen produced a blank page. It now pins the palette back to light —
paper is always paper.
Every report ink now clears AA on report paper in both themes, and the
new contract test forbids re-declaring the report palette anywhere but
:root, which is the trap that caused this.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
2026-08-30 11:29:58 +00:00
..
2026-08-15 07:06:19 +08:00
2026-08-18 19:30:13 +08:00
2026-08-22 20:48:01 +08:00
2026-08-30 16:32:58 +08:00
2026-08-16 14:07:57 +08:00
2026-08-17 13:14:15 +08:00
2026-08-18 17:28:22 +08:00
2026-08-16 17:55:15 +08:00
2026-08-07 18:24:16 +08:00
2026-08-08 01:38:50 +08:00
2026-08-16 17:55:15 +08:00
2026-08-08 17:29:17 +08:00
2026-08-17 11:41:35 +08:00
2026-08-16 17:55:15 +08:00
2026-08-06 20:15:50 +08:00
2026-08-18 17:28:22 +08:00
2026-08-16 17:55:15 +08:00
2026-08-25 19:31:14 +08:00
2026-08-23 17:02:06 +08:00
2026-08-15 07:06:19 +08:00
2026-08-19 19:40:50 +08:00
2026-08-22 09:10:47 +08:00
2026-08-27 13:59:38 +08:00
2026-08-25 10:52:33 +08:00
2026-08-07 12:07:57 +08:00
2026-07-30 14:38:17 +08:00
2026-08-30 15:55:45 +08:00
2026-07-20 14:58:57 +08:00
2026-07-19 14:48:02 +08:00
2026-07-22 17:39:11 +08:00
2026-07-21 16:06:30 +08:00
2026-07-19 10:56:09 +08:00
2026-07-20 14:45:08 +08:00
2026-08-22 20:48:01 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 08:25:33 +08:00
2026-07-19 10:12:18 +08:00
2026-07-21 15:50:02 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 04:57:43 +08:00
2026-07-19 04:38:20 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:24:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 08:25:33 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 22:23:29 +08:00
2026-07-19 09:45:32 +08:00
2026-07-19 11:04:25 +08:00
2026-07-19 14:51:06 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-20 14:58:57 +08:00
2026-07-20 11:44:56 +08:00
2026-08-17 22:13:03 +08:00
2026-08-22 20:48:01 +08:00
2026-07-18 18:40:23 +08:00
2026-07-27 11:29:12 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-25 01:17:14 +08:00
2026-07-29 17:49:19 +08:00
2026-07-19 06:42:17 +08:00
2026-07-20 14:58:57 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 07:20:40 +08:00
2026-07-19 06:42:17 +08:00
2026-07-19 14:48:02 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 07:20:40 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-08-15 16:25:39 +08:00
2026-07-18 18:40:23 +08:00
2026-07-21 16:06:30 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 10:12:18 +08:00
2026-07-22 09:43:11 +08:00
2026-08-30 11:19:50 +08:00
2026-08-30 15:55:45 +08:00
2026-08-29 03:39:43 +08:00
2026-07-20 16:52:53 +08:00
2026-08-19 15:29:04 +08:00
2026-08-23 01:49:05 +08:00
2026-08-19 19:40:50 +08:00
2026-08-29 03:39:43 +08:00
2026-08-17 21:38:17 +08:00
2026-07-21 11:58:42 +08:00
2026-08-30 15:55:45 +08:00
2026-08-29 03:39:43 +08:00
2026-07-22 02:35:31 +08:00
2026-08-29 05:40:29 +00:00
2026-08-30 11:19:50 +08:00
2026-08-21 22:02:40 +08:00
2026-07-15 22:23:17 +08:00
2026-08-23 14:38:50 +08:00
2026-07-17 11:56:29 +08:00
2026-08-21 20:37:44 +08:00
2026-08-20 21:42:47 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 06:04:23 +08:00
2026-08-29 03:39:43 +08:00
2026-08-22 09:10:47 +08:00
2026-08-19 10:25:55 +08:00
2026-07-17 14:09:57 +08:00
2026-08-21 15:29:58 +08:00
2026-08-22 09:10:47 +08:00
2026-08-18 15:44:19 +08:00
2026-07-22 10:50:23 +08:00
2026-08-22 20:48:01 +08:00
2026-08-23 17:02:06 +08:00
2026-08-19 19:08:17 +08:00
2026-08-22 09:10:47 +08:00
2026-08-23 01:49:05 +08:00
2026-08-23 14:38:50 +08:00
2026-08-22 21:19:00 +08:00
2026-08-23 14:38:50 +08:00
2026-08-18 23:30:36 +08:00
2026-08-17 13:03:57 +08:00
2026-08-17 13:03:57 +08:00
2026-08-21 15:29:58 +08:00
2026-08-30 11:19:50 +08:00
2026-08-11 17:57:40 +08:00
2026-08-11 00:10:24 +08:00
2026-08-07 12:08:58 +08:00
2026-08-06 20:15:50 +08:00
2026-08-16 18:15:28 +08:00
2026-08-17 10:25:16 +08:00
2026-08-18 17:28:22 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 16:03:53 +08:00
2026-08-27 13:59:38 +08:00
2026-08-15 05:10:37 +08:00
2026-08-07 19:05:01 +08:00
2026-08-10 10:49:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-22 20:48:01 +08:00
2026-08-17 14:16:05 +08:00
2026-08-05 11:13:34 +08:00
2026-08-16 14:07:57 +08:00
2026-08-19 15:29:04 +08:00
2026-08-15 23:55:57 +08:00
2026-08-19 19:39:01 +08:00
2026-08-20 21:42:47 +08:00
2026-08-26 20:21:49 +08:00
2026-08-18 17:28:22 +08:00
2026-08-29 03:39:43 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-07-21 17:52:25 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 17:52:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-07 12:55:32 +08:00
2026-08-11 19:46:11 +08:00
2026-08-22 20:46:30 +08:00
2026-08-29 12:01:50 +00:00
2026-08-17 13:14:15 +08:00
2026-08-29 05:40:29 +00:00
2026-08-05 11:13:34 +08:00
2026-08-17 18:42:54 +08:00
2026-08-07 20:03:20 +08:00
2026-08-08 17:29:17 +08:00
2026-08-08 17:29:17 +08:00
2026-08-22 20:48:01 +08:00
2026-08-18 15:44:19 +08:00
2026-07-18 18:40:23 +08:00
2026-08-29 10:56:04 +08:00
2026-08-22 20:48:01 +08:00
2026-08-18 15:44:19 +08:00
2026-07-22 15:51:54 +08:00
2026-08-22 20:46:30 +08:00
2026-08-15 05:10:37 +08:00
2026-08-09 00:54:55 +08:00
2026-08-29 11:22:39 +00:00
2026-08-15 05:10:37 +08:00
2026-08-22 20:46:30 +08:00
2026-08-22 20:46:30 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-30 11:29:58 +00:00
2026-08-18 17:28:22 +08:00
2026-08-22 20:46:30 +08:00
2026-08-18 19:30:13 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 09:32:28 +08:00
2026-08-22 20:48:01 +08:00
2026-08-15 23:28:49 +08:00
2026-07-17 13:42:50 +08:00
2026-08-28 16:30:09 +08:00
2026-08-30 00:51:14 +08:00
2026-08-22 20:48:01 +08:00
2026-08-05 00:58:53 +08:00
2026-08-30 18:35:16 +08:00
2026-08-20 14:24:05 +08:00
2026-08-30 18:35:16 +08:00
2026-08-27 16:40:47 +08:00
2026-08-30 10:55:11 +08:00
2026-08-30 18:35:16 +08:00
2026-08-29 01:23:34 +08:00
2026-08-29 00:06:17 +08:00
2026-08-28 23:19:09 +08:00
2026-08-30 10:55:11 +08:00
2026-08-30 18:35:16 +08:00
2026-08-30 18:35:16 +08:00
2026-08-28 18:04:34 +08:00
2026-08-30 18:35:16 +08:00
2026-08-24 21:26:57 +08:00
2026-08-27 20:31:05 +08:00
2026-08-29 01:45:39 +08:00
2026-08-27 20:31:05 +08:00
2026-08-19 10:41:47 +08:00
2026-08-28 20:56:58 +08:00
2026-07-19 09:00:14 +08:00
2026-08-30 18:35:16 +08:00
2026-08-27 13:59:38 +08:00
2026-08-30 10:55:11 +08:00
2026-08-30 18:35:16 +08:00
2026-08-30 00:51:14 +08:00
2026-08-28 18:04:34 +08:00
2026-08-25 16:34:25 +08:00
2026-08-30 15:49:20 +08:00
2026-08-28 16:30:09 +08:00
2026-08-30 18:35:16 +08:00
2026-08-28 20:31:15 +08:00
2026-08-27 13:59:38 +08:00
2026-08-28 23:19:09 +08:00
2026-08-27 13:59:38 +08:00
2026-08-28 20:31:15 +08:00
2026-08-27 16:40:47 +08:00
2026-08-19 07:44:23 +08:00
2026-08-27 16:40:47 +08:00
2026-08-14 16:37:53 +08:00
2026-08-26 10:18:57 +08:00
2026-08-28 16:30:09 +08:00
2026-08-30 15:49:20 +08:00
2026-08-27 20:31:05 +08:00
2026-08-15 17:50:51 +08:00
2026-08-28 20:31:15 +08:00
2026-08-19 20:11:51 +08:00
2026-08-30 10:01:32 +08:00
2026-08-30 10:55:11 +08:00
2026-08-30 10:55:11 +08:00
2026-08-07 19:05:01 +08:00
2026-08-17 13:14:15 +08:00
2026-08-19 19:39:01 +08:00
2026-08-17 13:14:15 +08:00
2026-08-29 09:44:53 +08:00
2026-08-19 21:15:33 +08:00
2026-08-20 23:54:20 +08:00
2026-07-17 14:09:57 +08:00
2026-08-30 16:32:58 +08:00
2026-08-29 12:01:50 +00:00
2026-07-17 17:17:10 +08:00
2026-08-29 10:56:04 +08:00
2026-08-19 15:29:04 +08:00
2026-08-14 16:52:35 +08:00
2026-08-14 16:52:35 +08:00
2026-08-28 10:33:39 +08:00
2026-08-21 10:29:43 +08:00
2026-08-06 19:18:04 +08:00
2026-08-29 03:39:43 +08:00
2026-08-21 22:02:40 +08:00
2026-08-15 16:25:39 +08:00
2026-08-08 21:34:03 +08:00
2026-08-29 12:12:06 +00:00
2026-08-18 15:44:19 +08:00
2026-08-30 11:19:50 +08:00
2026-07-22 00:07:42 +08:00
2026-08-30 15:55:45 +08:00