
  @import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=JetBrains+Mono:wght@400;500;700&display=swap');
  :root{
    color-scheme: light;
    --page:#f9f9f7; --surface-1:#fcfcfb; --surface-2:#ffffff;
    --text-primary:#0b0b0b; --text-secondary:#52514e; --muted:#898781;
    --grid:#e1e0d9; --border:rgba(11,11,11,0.10);
    --good:#006300; --good-tint:#e2f4e8; --bad:#d03b3b; --bad-tint:#fbe7e2;
    --pending:#a8720f; --pending-tint:#faf0dd; --live:#c0392b; --live-tint:#fbe7e2;
    --accent:#a8720f;
    --done-bg:#d9d7ce; --done-border:#c3c1b7; --done-text:#84827a;
  }
  @media (prefers-color-scheme: dark) {
    :root {
      color-scheme: dark;
      --page:#0d0d0d; --surface-1:#1a1a19; --surface-2:#212120;
      --text-primary:#ffffff; --text-secondary:#c3c2b7; --muted:#8f8d85;
      --grid:#2c2c2a; --border:rgba(255,255,255,0.10);
      --good:#4ed184; --good-tint:#123423; --bad:#f08363; --bad-tint:#3a1f16;
      --pending:#e0b34a; --pending-tint:#332a10; --live:#f08363; --live-tint:#3a1f16;
      --accent:#e0b34a;
      --done-bg:#0a0a09; --done-border:#232320; --done-text:#6d6c66;
    }
  }
  * { box-sizing:border-box; }
  body { margin:0; background:var(--page); color:var(--text-primary); font-family:"Zen Kaku Gothic New","Hiragino Sans",system-ui,sans-serif; padding:28px 16px 56px; }
  .num { font-family:"JetBrains Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums; }
  .wrap { max-width:880px; margin:0 auto; }
  a { color:inherit; }
  .eyebrow { font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:700; margin:0 0 6px; display:flex; align-items:center; gap:8px; }
  .live-dot { width:8px; height:8px; border-radius:50%; background:var(--live); display:inline-block; animation:pulse 1.4s infinite; }
  @keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:.3;} }
  h1 { font-size:clamp(22px,4.5vw,30px); font-weight:900; margin:0 0 8px; }
  .lede { color:var(--text-secondary); font-size:14px; line-height:1.65; max-width:62ch; margin:0; }
  .warn { margin-top:10px; font-size:12px; background:var(--live-tint); color:var(--live); border-radius:8px; padding:8px 12px; display:inline-block; }
  .meta-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; font-size:12px; color:var(--muted); }
  .meta-chip { background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:4px 11px; }
  .back-link { display:inline-block; margin-bottom:14px; font-size:13px; color:var(--accent); font-weight:700; text-decoration:none; }
  .archive-banner { background:var(--pending-tint); color:var(--pending); border-radius:10px; padding:9px 14px; font-size:12.5px; font-weight:700; margin-bottom:16px; }
  .archive-banner a { color:inherit; text-decoration:underline; }
  .archive-link-row { display:flex; flex-wrap:wrap; gap:8px; }
  .archive-link { background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:6px 14px; font-size:12.5px; font-weight:700; color:var(--text-secondary); text-decoration:none; }
  .archive-link:hover { border-color:var(--accent); color:var(--accent); }
  section.panel { background:var(--surface-1); border:1px solid var(--border); border-radius:16px; padding:20px 18px; margin-top:16px; }
  .panel-title { font-size:15px; font-weight:700; margin:0 0 4px; }
  .panel-note { font-size:12.5px; color:var(--muted); margin:0 0 14px; }
  .tally-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
  .tally-card { flex:1; min-width:120px; background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:11px 13px; }
  .tally-card .k { font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700; margin-bottom:4px; }
  .tally-card .v { font-size:17px; font-weight:700; }
  .tally-card .v.pos { color:var(--good); }
  .tally-card .v.neg { color:var(--bad); }
  .tally-group { margin-bottom:14px; }
  .tally-group:last-child { margin-bottom:6px; }
  .tally-group-title { font-size:12px; font-weight:700; color:var(--muted); margin:0 0 6px; }
  .bet-type-heading { font-size:13px; font-weight:700; color:var(--muted); margin:18px 0 8px; }
  .bet-type-heading:first-child { margin-top:0; }
  .pick-columns { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; align-items:start; }
  .pick-column { min-width:0; }
  details.finished-group { margin-top:6px; }
  details.finished-group summary { cursor:pointer; font-size:12.5px; color:var(--muted); font-weight:700; padding:7px 2px; list-style:none; }
  details.finished-group summary::-webkit-details-marker { display:none; }
  details.finished-group summary::before { content:"▶ "; }
  details.finished-group[open] summary::before { content:"▼ "; }
  .pick-card { border:2px solid var(--border); border-radius:12px; padding:11px 14px; margin-bottom:9px; background:var(--surface-2); }
  .pick-card.ev { border-color:#e0a800; background:linear-gradient(180deg,rgba(224,168,0,0.10),transparent 60%); box-shadow:0 0 0 1px rgba(224,168,0,0.25); }
  .ev-num { font-weight:900; color:#8a6100; }
  :root:not([data-theme="light"]) .ev-num { color:#e0b34a; }
  .pick-head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap; }
  .pick-title { font-weight:700; font-size:13.5px; }
  .pick-time { font-size:11.5px; color:var(--muted); }
  .pick-body { display:flex; gap:12px; flex-wrap:wrap; margin-top:5px; font-size:12px; color:var(--text-secondary); }
  .pick-result { margin-top:4px; font-size:11.5px; color:var(--muted); }
  .status-badge { display:inline-block; font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:999px; }
  .status-badge.hit { background:var(--good-tint); color:var(--good); }
  .status-badge.miss { background:var(--bad-tint); color:var(--bad); }
  .status-badge.pending { background:var(--pending-tint); color:var(--pending); }
  .status-badge.neutral { background:var(--surface-1); color:var(--muted); border:1px solid var(--border); }
  .status-badge.live { background:var(--live-tint); color:var(--live); animation:pulse 1.4s infinite; }
  .venue-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; }
  .venue-card { display:block; text-decoration:none; background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:13px 14px; }
  .venue-card .name { font-weight:700; font-size:14px; margin-bottom:6px; }
  .venue-card .stat { font-size:11.5px; color:var(--muted); display:flex; justify-content:space-between; }
  .venue-card .stat + .stat { margin-top:3px; }
  .venue-card .stat .v { color:var(--text-secondary); font-weight:700; }
  .venue-card.done { background:var(--done-bg); border-color:var(--done-border); }
  .venue-card.done .name, .venue-card.done .stat, .venue-card.done .stat .v { color:var(--done-text); }
  .venue-card.live-now { background:var(--live-tint); border-color:var(--live); box-shadow:0 0 0 1px var(--live); }
  .venue-live-flag { font-size:11px; font-weight:900; color:var(--live); animation:pulse 1.4s infinite; }
  .empty-note { color:var(--muted); font-size:12.5px; padding:8px 2px; }
  .pending-cell { color:var(--pending); text-align:center; }
  .race-card { border:2px solid var(--border); border-radius:12px; padding:12px 14px; margin-bottom:10px; background:var(--surface-2); }
  .race-card.watch { border-color:var(--accent); }
  .race-card.ev { border-color:#e0a800; background:linear-gradient(180deg,rgba(224,168,0,0.10),transparent 60%); box-shadow:0 0 0 1px rgba(224,168,0,0.25); }
  .race-card.live-now { border-color:var(--live); background:linear-gradient(180deg,var(--live-tint),transparent 60%); box-shadow:0 0 0 1px var(--live); }
  .race-card.done { background:var(--done-bg); border-color:var(--done-border); box-shadow:none; filter:grayscale(.55) brightness(.96); opacity:.82; }
  .race-card.done .race-card-title, .race-card.done .race-card-result { color:var(--done-text); }
  .race-card.done .bet-chip { background:transparent; border-color:var(--done-border); opacity:.7; }
  .race-card.done .bet-chip .pr, .race-card.done .bet-chip .ev-sub { color:var(--done-text); }
  .race-card.done .bet-chip.ev-hit { background:transparent; border-color:var(--done-border); }
  .race-card.done .bet-chip.ev-hit .bt, .race-card.done .bet-chip.ev-hit .combo,
  .race-card.done .bet-chip.ev-hit .pr, .race-card.done .bet-chip .ev-star { color:var(--done-text); }
  .race-card.done .ev-flag { opacity:.6; }
  .race-card.done .status-badge { opacity:.6; }
  .pick-card.done { background:var(--done-bg); border-color:var(--done-border); box-shadow:none; filter:grayscale(.55) brightness(.96); opacity:.82; }
  .pick-card.done .pick-title, .pick-card.done .pick-result { color:var(--done-text); }
  .pick-card.done .ev-num { color:var(--done-text); }
  .pick-card.done .status-badge { opacity:.6; }
  .race-card-head { display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
  .race-card-title { font-weight:700; font-size:13.5px; }
  a.race-card-title-link { color:inherit; text-decoration:none; border-bottom:1px dashed var(--accent); }
  a.race-card-title-link:hover { color:var(--accent); }
  .race-link { font-size:11px; color:var(--muted); text-decoration:none; border:1px solid var(--border); border-radius:999px; padding:2px 8px; }
  .race-link:hover { color:var(--text-primary); border-color:var(--text-primary); }
  .ev-flag { font-size:11px; font-weight:900; color:#8a6100; background:#fff2c4; border:1px solid #e0a800; border-radius:999px; padding:3px 10px; }
  :root:not([data-theme="light"]) .ev-flag { color:#ffe9a8; background:#3a2e08; border-color:#e0a800; }
  .ev-legend { font-weight:700; color:#8a6100; }
  :root:not([data-theme="light"]) .ev-legend { color:#e0b34a; }
  .bet-chip-row { display:flex; flex-wrap:wrap; gap:6px; }
  .bet-chip { display:inline-flex; align-items:baseline; gap:5px; background:var(--page); border:1px solid var(--border); border-radius:8px; padding:4px 9px; font-size:11.5px; }
  .bet-chip .bt { color:var(--muted); font-weight:700; font-size:10px; }
  .bet-chip .combo { font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:700; }
  .bet-chip .pr { font-family:"JetBrains Mono",ui-monospace,monospace; color:var(--accent); font-weight:700; }
  .bet-chip .ev-sub { font-family:"JetBrains Mono",ui-monospace,monospace; color:var(--muted); font-size:10px; }
  .bet-chip .ref-note { font-family:inherit; margin-left:2px; }
  .bet-chip.ev-hit { background:#fff2c4; border:2px solid #e0a800; padding:4px 9px 4px 7px; }
  :root:not([data-theme="light"]) .bet-chip.ev-hit { background:#3a2e08; }
  .bet-chip.ev-hit .bt, .bet-chip.ev-hit .combo, .bet-chip.ev-hit .pr { color:#5a4300; }
  :root:not([data-theme="light"]) .bet-chip.ev-hit .bt,
  :root:not([data-theme="light"]) .bet-chip.ev-hit .combo,
  :root:not([data-theme="light"]) .bet-chip.ev-hit .pr { color:#ffe9a8; }
  .bet-chip .ev-star { font-weight:900; font-size:10px; color:#8a6100; }
  :root:not([data-theme="light"]) .bet-chip .ev-star { color:#ffcc4d; }
  .race-card-result { margin-top:8px; font-size:11.5px; color:var(--text-secondary); }
  .ticket-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin-top:4px; }
  .ticket-card { position:relative; background:var(--surface-2); border:1px solid var(--border); border-left:4px solid var(--muted); border-radius:10px; padding:12px 14px 10px; text-align:center; }
  .ticket-card.ticket-hit { border-left-color:var(--good); background:var(--good-tint); }
  .ticket-card.ticket-miss { border-left-color:var(--bad); opacity:.75; }
  .ticket-card.ticket-live { border-left-color:var(--pending); background:var(--pending-tint); }
  .ticket-head { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:8px; }
  .ticket-type { font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .ticket-flag { font-size:9.5px; font-weight:900; color:#8a6100; }
  :root:not([data-theme="light"]) .ticket-flag { color:#ffcc4d; }
  .ticket-combo { font-family:"JetBrains Mono",ui-monospace,monospace; font-weight:900; font-size:28px; letter-spacing:.03em; line-height:1.1; margin:6px 0; }
  .ticket-foot { display:flex; flex-direction:column; align-items:center; gap:4px; margin-top:6px; font-size:11px; }
  .ticket-prob { font-family:"JetBrains Mono",ui-monospace,monospace; color:var(--text-secondary); font-weight:700; }
  .table-scroll { overflow-x:auto; }
  table.rank-table { width:100%; border-collapse:collapse; font-size:12.5px; }
  table.rank-table th, table.rank-table td { padding:7px 9px; text-align:right; border-bottom:1px solid var(--grid); white-space:nowrap; }
  table.rank-table thead th { color:var(--muted); font-weight:700; font-size:10.5px; text-transform:uppercase; }
  table.rank-table thead th:first-child, table.rank-table td.rank-row-head { text-align:left; }
  td.rank-row-head { font-weight:700; }

  /* 本命/対抗形式の予想表 */
  table.forecast-table { width:100%; border-collapse:collapse; font-size:13px;
    font-variant-numeric:tabular-nums; }
  table.forecast-table th, table.forecast-table td {
    padding:9px 10px; text-align:right; border-bottom:1px solid var(--grid); white-space:nowrap; }
  table.forecast-table thead th { color:var(--muted); font-weight:700; font-size:10.5px; }
  table.forecast-table thead th .th-sub { display:block; font-weight:500; opacity:.7;
    font-size:9.5px; letter-spacing:0; }
  table.forecast-table th:first-child, table.forecast-table th:nth-child(2),
  table.forecast-table td.mark-cell, table.forecast-table td.slot-cell { text-align:left; }
  tr.forecast-row.top-pick { background:color-mix(in srgb, var(--accent) 9%, transparent); }
  td.mark-cell .mark { font-size:17px; font-weight:700; margin-right:6px; vertical-align:-1px; }
  td.mark-cell .mark-本命 { color:var(--good); }
  td.mark-cell .mark-対抗 { color:var(--accent); }
  td.mark-cell .mark-name { font-size:10.5px; color:var(--muted); }
  table.forecast-table td.strong { font-weight:700; font-size:14px; }
  /* 選手名は左寄せ。登録番号は同名の選手を見分けるために小さく添える。
     nth-child では「選手列が無いときの勝率列」を誤って左寄せするので
     クラスで指定している。予想表と注目レース表の両方で使う */
  th.player-th, td.player-cell { text-align:left; }
  td.player-cell { font-weight:700; white-space:nowrap; }
  td.player-cell a { color:var(--accent); text-decoration:none; }
  td.player-cell a:hover { text-decoration:underline; }
  td.player-cell .player-id { display:block; font-size:9.5px; font-weight:500;
    color:var(--muted); letter-spacing:.02em; }

  .fm-grid { display:flex; gap:12px; flex-wrap:wrap; }
  .fm-card { flex:1 1 260px; min-width:0; background:var(--surface-2);
    border:1px solid var(--border); border-radius:12px; padding:14px; }
  .fm-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
  .fm-name { font-weight:700; font-size:14px; }
  .fm-pts { font-size:11px; font-weight:700; color:var(--accent); }
  .fm-cols { display:flex; gap:8px; }
  .fm-col { flex:1; min-width:0; }
  .fm-pos { font-size:10px; color:var(--muted); font-weight:700; margin-bottom:5px; }
  .fm-boats { display:flex; gap:4px; flex-wrap:wrap; }
  .fm-b { display:inline-flex; align-items:center; justify-content:center;
    width:24px; height:24px; border-radius:5px; font-size:12.5px; font-weight:700;
    background:color-mix(in srgb, var(--accent) 16%, transparent); }
  .fm-prob { margin-top:12px; padding-top:10px; border-top:1px solid var(--grid);
    font-size:11.5px; color:var(--muted); }
  .fm-prob b { font-size:19px; color:var(--text-primary); margin-left:6px;
    font-variant-numeric:tabular-nums; }

  table.focus-table { width:100%; border-collapse:collapse; font-size:12.5px;
    font-variant-numeric:tabular-nums; }
  table.focus-table th, table.focus-table td { padding:8px 9px; text-align:right;
    border-bottom:1px solid var(--grid); white-space:nowrap; }
  table.focus-table thead th { color:var(--muted); font-size:10.5px; font-weight:700; }
  table.focus-table th:nth-child(-n+3), table.focus-table td:nth-child(-n+3),
  table.focus-table th:last-child, table.focus-table td:last-child { text-align:left; }
  table.focus-table td a { font-weight:700; text-decoration:none; }
  table.focus-table td a:hover { color:var(--accent); }
  table.focus-table td.strong { font-weight:700; font-size:14px; }
  .focus-res { font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:4px; }
  .focus-res.ok { background:var(--good-tint); color:var(--good); }
  .focus-res.ng { background:var(--bad-tint); color:var(--bad); }
  .focus-res.pend { background:var(--pending-tint); color:var(--pending); }
  .focus-res.pre { background:var(--surface-2); color:var(--muted); }

  /* 競艇の艇色: 1白 2黒 3赤 4青 5黄 6緑 */
  .lane { display:inline-flex; align-items:center; justify-content:center;
    width:23px; height:23px; border-radius:5px; font-weight:700; font-size:12.5px;
    line-height:1; vertical-align:-3px; }
  .lane-1, .fm-b.lane-1 { background:#ffffff; color:#141414; box-shadow:inset 0 0 0 1px #b9b7ae; }
  .lane-2, .fm-b.lane-2 { background:#1b1b1b; color:#ffffff; box-shadow:inset 0 0 0 1px #4a4a4a; }
  .lane-3, .fm-b.lane-3 { background:#d8352a; color:#ffffff; }
  .lane-4, .fm-b.lane-4 { background:#1b6ec2; color:#ffffff; }
  .lane-5, .fm-b.lane-5 { background:#efd000; color:#141414; }
  .lane-6, .fm-b.lane-6 { background:#108f47; color:#ffffff; }
  td.slot-cell { width:2.6em; }

  .acc-grid { display:flex; gap:16px; flex-wrap:wrap; }
  .acc-block { flex:1 1 300px; min-width:0; }
  .acc-head { font-size:13px; font-weight:700; margin:0 0 2px; }
  .acc-head .acc-sub { font-size:10.5px; font-weight:500; color:var(--muted); margin-left:7px; }
  .acc-overall { font-size:12.5px; color:var(--text-secondary); margin:0 0 10px; }
  .acc-overall b { font-size:15px; color:var(--text-primary); }
  table.acc-table { width:100%; border-collapse:collapse; font-size:12px; font-variant-numeric:tabular-nums; }
  table.acc-table th, table.acc-table td { padding:6px 8px; text-align:right; border-bottom:1px solid var(--grid); white-space:nowrap; }
  table.acc-table thead th { color:var(--muted); font-weight:700; font-size:10px; }
  table.acc-table th:first-child, table.acc-table td:first-child { text-align:left; }
  table.acc-table td.strong { font-weight:700; }
  table.acc-table td.pos { color:var(--good); }
  table.acc-table td.neg { color:var(--bad); }

  section.panel.owner-only { border-color:color-mix(in srgb, var(--warn, #c98a2b) 45%, var(--line)); }
  .owner-badge { margin-left:8px; font-size:9.5px; font-weight:700; letter-spacing:.04em;
    padding:2px 6px; border-radius:3px; vertical-align:2px;
    color:var(--panel); background:var(--warn, #c98a2b); }
  td.rank-cell { font-family:"JetBrains Mono",ui-monospace,monospace; }
  footer.foot { margin-top:22px; font-size:11px; color:var(--muted); line-height:1.7; }

  .stats-hero { padding:10px 0 4px; }
  .stats-hero .big { font-size:clamp(24px,5.5vw,38px); font-weight:900; line-height:1.15;
                     margin:8px 0 6px; text-wrap:balance; }
  .fact { background:var(--surface-2); border:1px solid var(--border); border-radius:14px;
          padding:14px 16px; margin:16px 0; }
  .fact .label { font-size:10.5px; letter-spacing:.06em; color:var(--muted); font-weight:700; }
  .fact .num { font-size:28px; font-weight:900; font-variant-numeric:tabular-nums; margin-top:3px; }
  .fact .note { font-size:11.5px; color:var(--text-secondary); margin-top:4px; line-height:1.6; }
  .scroll-x { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table.st { width:100%; border-collapse:collapse; font-size:12.5px;
             font-variant-numeric:tabular-nums; }
  table.st th, table.st td { padding:7px 8px; border-bottom:1px solid var(--grid);
                             text-align:right; white-space:nowrap; }
  table.st th:first-child, table.st td:first-child { text-align:left; }
  table.st thead th { color:var(--muted); font-size:10.5px; font-weight:700; text-align:right; }
  table.st thead th:first-child { text-align:left; }
  table.st td.name { font-weight:700; }
  table.st tbody tr:hover { background:var(--surface-2); }
  /* 量の比較は1本の軸で。棒は単色の濃淡だけで、系列色は使わない */
  .bar-wrap { display:flex; align-items:center; gap:8px; min-width:150px; }
  .bar { flex:1 1 auto; height:8px; background:var(--grid); border-radius:4px; overflow:hidden; }
  .bar > i { display:block; height:100%; background:var(--accent); border-radius:4px; }
  .bar-val { flex:none; width:52px; text-align:right; font-weight:700; }
  .vgrid { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
  .vgrid a { flex:1 1 92px; text-align:center; text-decoration:none; font-size:12.5px;
             font-weight:700; color:var(--text-primary); background:var(--surface-2);
             border:1px solid var(--border); border-radius:10px; padding:9px 6px; }
  .vgrid a:hover { border-color:var(--accent); color:var(--accent); }
  .vgrid a .sub { display:block; font-size:10.5px; font-weight:600; color:var(--muted);
                  margin-top:2px; font-variant-numeric:tabular-nums; }
  .src { font-size:11.5px; color:var(--muted); line-height:1.7; margin-top:16px; }
  .crumb { font-size:11.5px; margin-bottom:6px; }
  .crumb a { color:var(--accent); text-decoration:none; font-weight:600; }
  .pill { display:inline-block; font-size:10.5px; font-weight:700; padding:2px 8px;
          border-radius:999px; background:var(--surface-2); border:1px solid var(--border);
          color:var(--text-secondary); }

  .pl-hero .big { font-size:clamp(22px,5vw,34px); font-weight:900; line-height:1.2;
                  margin:8px 0 6px; text-wrap:balance; }
  .two { display:flex; gap:12px; flex-wrap:wrap; }
  .two > .fact { flex:1 1 220px; margin:0; }
  .inactive { background:var(--pending-tint); border:1px solid var(--border);
              border-radius:12px; padding:11px 13px; font-size:12px;
              color:var(--text-secondary); line-height:1.6; margin:12px 0; }
  .plist { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
  .plist a { flex:1 1 118px; text-decoration:none; font-size:12.5px; font-weight:700;
             color:var(--text-primary); background:var(--surface-2);
             border:1px solid var(--border); border-radius:9px; padding:8px 9px;
             min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .plist a:hover { border-color:var(--accent); color:var(--accent); }
  .plist a .sub { color:var(--muted); font-weight:600; font-size:10.5px;
                  font-variant-numeric:tabular-nums; }
  .pager { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
  .pager a, .pager span { font-size:12px; font-weight:700; text-decoration:none;
             padding:6px 10px; border-radius:8px; border:1px solid var(--border);
             color:var(--text-primary); background:var(--surface-2); }
  .pager span.cur { background:var(--accent); color:var(--page); border-color:var(--accent); }
