/* Existing cat-logo palette; isolated activity styles, no global changes. */
.annual-vote-entry { grid-column:1/-1; display:grid; grid-template-columns:minmax(0, 1.8fr) minmax(0, 1fr); align-items:center; margin-bottom:8px; overflow:hidden; border-radius:16px; background:var(--accent-soft); color:var(--text); text-decoration:none; }
.annual-vote-entry img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.annual-entry-copy { display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:28px; }
.annual-entry-copy strong { font-size:clamp(22px,2.8vw,32px); line-height:1.4; }
.annual-entry-action { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:10px; padding:10px 18px; border-radius:8px; background:var(--brand); color:var(--brand-ink); font-size:16px; font-weight:600; }
.annual-vote-entry:hover .annual-entry-action { background:var(--brand-hover); }
.annual-votes-page { max-width:880px; margin:0 auto; padding-bottom:28px; }
.annual-back { display:inline-flex; gap:4px; align-items:center; min-height:44px; color:var(--muted); font-size:14px; text-decoration:none; }
.annual-heading { margin:18px 0 24px; }
.annual-heading h1 { margin:0 0 8px; font-size:30px; line-height:1.4; }
.annual-heading p { margin:0; color:var(--muted); font-size:15px; line-height:1.7; }
.annual-platforms { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 24px; }
.annual-platforms button { min-height:48px; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--panel); color:var(--muted); font:inherit; font-size:16px; cursor:pointer; transition:background-color 160ms ease-out,color 160ms ease-out; }
.annual-platforms button[aria-selected="true"] { background:var(--brand); border-color:var(--brand); color:var(--brand-ink); font-weight:600; }
.annual-platforms button:hover:not([aria-selected="true"]) { background:var(--surface-soft); color:var(--text); }
.annual-tools { display:flex; gap:20px; align-items:center; justify-content:space-between; }
.annual-search { display:flex; align-items:center; gap:8px; width:min(380px, 60%); padding:0 12px; border:1px solid var(--line); border-radius:8px; }
.annual-search input { min-width:0; width:100%; height:46px; padding:0; border:0; background:transparent; color:var(--text); font:inherit; font-size:15px; box-shadow:none; }
.annual-search:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
.annual-search input:focus { outline:none; border:0; box-shadow:none; }
.annual-source { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:var(--accent-strong); font-size:14px; text-decoration:none; white-space:nowrap; }
.annual-source:hover,.annual-back:hover { text-decoration:underline; text-underline-offset:4px; }
.annual-votes-page svg,.annual-entry-action svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.annual-search svg { color:var(--muted); }
.annual-update { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0; }
.annual-update p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; font-variant-numeric:tabular-nums; }
.annual-platform-note { margin:0 0 16px; color:var(--muted); font-size:13px; line-height:1.8; max-width:72ch; }
.annual-status { margin:12px 0; padding:14px 16px; border-radius:8px; background:var(--surface-soft); color:var(--muted); font-size:14px; line-height:1.7; }
.annual-status.is-warning { background:var(--accent-soft); color:var(--brand-ink); }
.annual-list-head { display:flex; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
.annual-hero-list { margin:0; padding:0; list-style:none; }
.annual-hero-row { display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.annual-rank { color:var(--muted); font-size:16px; font-variant-numeric:tabular-nums; text-align:center; }
.annual-hero-row[data-top="true"] .annual-rank { color:var(--accent-strong); font-weight:700; }
.annual-identity { display:flex; align-items:center; gap:12px; min-width:0; }
.annual-avatar { display:grid; place-items:center; flex-shrink:0; width:48px; height:48px; overflow:hidden; border-radius:8px; background:var(--surface-soft); color:var(--muted); font-size:18px; }
.annual-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.annual-hero-name { min-width:0; margin:0; font-size:17px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.annual-vote-count { min-width:0; margin:0; color:var(--accent-strong); font-size:20px; line-height:1.5; font-weight:600; font-variant-numeric:tabular-nums; text-align:right; overflow-wrap:anywhere; }
.annual-vote-count.is-long { font-size:15px; }
.annual-vote-count span { margin-left:5px; font-size:13px; font-weight:400; color:var(--muted); white-space:nowrap; }
.annual-disclaimer { margin:24px 0 0; color:var(--muted); font-size:13px; line-height:1.8; max-width:72ch; }
.annual-votes-page :is(button,a,[tabindex]):focus-visible,.annual-vote-entry:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.annual-votes-page #annualRanking:focus-visible { outline-offset:6px; }
@media (max-width:860px) {
  .annual-vote-entry { grid-template-columns:1fr; margin-bottom:0; }
  .annual-entry-copy { padding:16px 18px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px 12px; align-items:center; }
  .annual-entry-copy strong { font-size:20px; }
  .annual-entry-action { grid-column:2; grid-row:1; margin:0; padding:8px 12px; font-size:14px; }
  .annual-heading { margin:12px 0 20px; }
  .annual-heading h1 { font-size:26px; }
  .annual-heading p { font-size:14px; }
  .annual-platforms { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:20px; }
  .annual-platforms button { font-size:15px; }
  .annual-tools { gap:12px; }
  .annual-search { width:58%; }
  .annual-source { font-size:13px; }
  .annual-update p { font-size:12px; }
  .annual-hero-row { grid-template-columns:28px minmax(0,1fr) auto; gap:10px; padding:14px 0; }
  .annual-avatar { width:40px; height:40px; }
  .annual-identity { gap:8px; }
  .annual-hero-name { font-size:15px; }
  .annual-vote-count { font-size:17px; max-width:140px; }
  .annual-vote-count.is-long { font-size:13px; max-width:128px; }
  .annual-vote-count span { font-size:12px; margin-left:3px; }
}
@media (max-width:360px) { .annual-hero-row { gap:7px; } .annual-avatar { width:32px; height:32px; } .annual-hero-name { font-size:14px; } .annual-source { gap:2px; font-size:12px; } }
@media (prefers-reduced-motion:reduce) { .annual-platforms button { transition:none; } }
