+ {entries.slice(0, 10).map((e, i) => {
+ const start = new Date(parseInt(e.started_at, 10) * 1000);
+ return (
+
+ {fmtRelative(start, now)}
+ {e.title || '—'}
+ {e.artist || '—'}
+
+ );
+ })}
+
+ );
+}
diff --git a/frontend/src/styles/components/history-card.css b/frontend/src/styles/components/history-card.css
new file mode 100644
index 0000000..999115d
--- /dev/null
+++ b/frontend/src/styles/components/history-card.css
@@ -0,0 +1,28 @@
+.full-secthead { margin-bottom: 14px; }
+.full-secthead-jp { font-family: var(--f-pixel); font-size: 18px; color: var(--lemon); letter-spacing: 4px; }
+.full-secthead-en { font-family: var(--f-pixel); font-size: 22px; color: var(--cream); letter-spacing: 1px; margin-top: 2px; }
+
+.card {
+ background: var(--plum);
+ border: 2px solid var(--ink);
+ padding: 22px 24px;
+ position: relative;
+}
+.card::before {
+ content: ""; position: absolute; inset: 4px; border: 1px dashed #ff3ea522; pointer-events: none;
+}
+
+.history-list { display: flex; flex-direction: column; }
+.history-row {
+ display: grid; grid-template-columns: 50px 1fr auto;
+ gap: 12px; padding: 8px 4px;
+ border-bottom: 1px dashed #ff3ea522;
+ font-size: 13px;
+}
+.history-row:last-child { border-bottom: none; }
+.history-row .t { font-family: var(--f-mono); color: var(--cyan); }
+.history-row .title { font-family: var(--f-pixel); font-size: 14px; color: var(--cream); }
+.history-row .artist { font-family: var(--f-mono); color: #fff4e8aa; font-size: 12px; }
+.history-empty {
+ font-family: var(--f-mono); font-size: 13px; color: #fff4e8aa; padding: 8px 4px;
+}