.hvl-vote{max-width:1050px;margin:0 auto 44px;color:#223447;font-family:inherit}
.hvl-vote *{box-sizing:border-box}
.hvl-vote-head{display:flex;justify-content:flex-end;align-items:center;margin:0 0 16px}
.hvl-vote-rank-link,.hvl-vote-bottom-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:9px 16px;border-radius:999px;background:#087c91;color:#fff!important;font-weight:700;text-decoration:none!important;text-align:center;box-shadow:0 3px 9px #10485c24}
.hvl-vote-rank-link:hover,.hvl-vote-bottom-link:hover{background:#075f70;color:#fff!important}
.hvl-vote-intro{margin:0 4px 8px!important;font-size:1rem;line-height:1.9}
.hvl-vote-note{margin:0 4px 24px!important;color:#526678;font-size:.86rem;line-height:1.7}
.hvl-vote-tools{padding:18px 20px;background:#f8fafb;border:1px solid #e0e8ed;border-radius:14px}
.hvl-vote-search-label{display:block;margin-bottom:7px;font-weight:700}
.hvl-vote-search{display:block;width:100%;max-width:560px;padding:12px 14px!important;border:1px solid #a7bac8!important;border-radius:9px!important;background:#fff!important;font-size:1rem!important}
.hvl-vote-search:focus{outline:3px solid #addde5;outline-offset:2px}
.hvl-vote-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.hvl-vote-filters button{min-height:40px;padding:7px 17px;border:1px solid #a3bdc8;border-radius:999px;background:#fff;color:#23445a;cursor:pointer;font-weight:700}
.hvl-vote-filters button.is-active{background:#125a76;border-color:#125a76;color:#fff}
.hvl-vote-count{margin:13px 0 0!important;font-weight:700;color:#1e596b}
.hvl-vote-session-retry{min-height:44px;margin-top:10px;padding:8px 16px;border:1px solid #a3bdc8;border-radius:9px;background:#fff;color:#23445a;cursor:pointer;font-weight:700}
.hvl-vote-session-retry[hidden]{display:none!important}
.hvl-vote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:18px 0 24px}
.hvl-vote-card{position:relative;display:flex;flex-direction:column;min-height:100px;padding:7px;border:1px solid #d7e3e9;border-radius:12px;background:#fff;box-shadow:0 2px 8px #173e5710;-webkit-tap-highlight-color:transparent}
.hvl-vote-card[hidden],.hvl-vote-empty[hidden],.hvl-vote-message[hidden],.hvl-ranking-empty[hidden],.hvl-ranking-confirm[hidden],.hvl-ranking-retry[hidden],.hvl-ranking-voted-badge[hidden]{display:none!important}
.hvl-vote-card.is-selected{border:2px solid #ef7043;padding:6px;background:#fff8f2;box-shadow:0 0 0 3px #f8c8ab70}
.hvl-vote-card.is-voted{background:#f1f5f6}
.hvl-vote-select{flex:1;width:100%;border:0;background:transparent;color:#193b54;text-align:left;font-size:.96rem;font-weight:700;line-height:1.45;cursor:pointer;padding:8px}
.hvl-vote-select:focus-visible,.hvl-vote-filters button:focus-visible,.hvl-vote-submit:focus-visible{outline:3px solid #dd8a47;outline-offset:2px}
.hvl-vote-select:disabled{cursor:not-allowed;color:#687b87}
.hvl-vote-artist-link,.hvl-vote-comment-link,.hvl-ranking-reading-link{display:inline-flex;align-items:center;align-self:flex-start;min-height:40px;max-width:100%;margin:0 2px 2px;padding:5px 6px;border-radius:5px;color:#0a6d8a!important;font-size:12px;line-height:1.5;text-decoration:underline!important;text-underline-offset:3px;overflow-wrap:anywhere;touch-action:manipulation}
.hvl-vote-card-links{display:flex;align-items:center;gap:2px 4px;margin:0;flex-wrap:wrap}
.hvl-vote-card-links .hvl-vote-artist-link,.hvl-vote-card-links .hvl-vote-comment-link{margin:0 0 2px}
.hvl-vote-card a:focus-visible,.hvl-ranking-reading-link:focus-visible{outline:3px solid #dd8a47;outline-offset:1px;background:#e3f4f7}
.hvl-vote-card a:active,.hvl-vote-card a.is-opening,.hvl-ranking-reading-link:active,.hvl-ranking-reading-link.is-opening{background:#cbeaf0;color:#06445b!important;box-shadow:inset 0 0 0 1px #75b4c3}
@media(hover:hover){.hvl-vote-card a:hover,.hvl-ranking-reading-link:hover{background:#e3f4f7;color:#06445b!important}}
.hvl-vote-badge{display:block;position:static;align-self:flex-end;margin:5px 6px 3px;padding:2px 6px;border-radius:5px;background:#e2ebee;color:#46616f;font-size:.72rem;font-weight:700;line-height:1.5}
.hvl-vote-empty{padding:16px;text-align:center;color:#5f7180}
.hvl-vote-action{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border:1px solid #bed5db;border-radius:13px;background:#fff;box-shadow:0 8px 28px #143f5a2b}
.hvl-vote-selected{margin:0!important;font-weight:700}
.hvl-vote-submit{min-height:48px;min-width:230px;padding:10px 18px;border:0;border-radius:9px;background:#ef672d;color:#fff;font-size:1rem;font-weight:700;cursor:pointer}
.hvl-vote-submit:hover:not(:disabled){background:#ce4e1b}
.hvl-vote-submit:disabled{background:#aab9c1;cursor:not-allowed}
.hvl-vote-message{margin:14px 0!important;color:#a34319;font-weight:700}
.hvl-ranking-confirm{padding:14px 18px;margin:20px 0!important;border-radius:10px;background:#e7f7ed;color:#1c6a3e;font-weight:700}
.hvl-ranking-summary{margin:24px 2px 15px!important;font-weight:700;color:#2d536a}
.hvl-ranking-list{list-style:none!important;margin:0!important;padding:0!important}
.hvl-ranking-item{display:grid;grid-template-columns:70px 1fr 80px;align-items:center;gap:14px;min-height:68px;padding:11px 17px;margin:0 0 9px!important;border:1px solid #dce7eb;border-radius:11px;background:#fff;-webkit-tap-highlight-color:transparent}
.hvl-ranking-item.is-top{background:#f0f9fb;border-color:#c7e2e8}
.hvl-ranking-position{font-weight:800;color:#0b6682}
.hvl-ranking-artist{font-weight:700;color:#1b445d!important;text-decoration:none!important}
.hvl-ranking-artist:hover{text-decoration:underline!important}
.hvl-ranking-votes{text-align:right;font-weight:700;color:#405a6c}
.hvl-ranking-empty{padding:28px 14px;text-align:center;background:#f5f8fa;border-radius:12px}
.hvl-vote-bottom-link{margin-top:22px}
@media(max-width:640px){.hvl-vote-rank-link{width:100%;font-size:.88rem}.hvl-vote-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hvl-vote-card{min-height:92px}.hvl-vote-action{bottom:5px;flex-direction:column;align-items:stretch;gap:8px}.hvl-vote-submit{width:100%;min-width:0}.hvl-ranking-item{grid-template-columns:48px 1fr 60px;gap:7px;padding:10px}.hvl-ranking-position,.hvl-ranking-votes{font-size:.88rem}}

/* Monthly voting and selected singers */
.hvl-vote-period{margin:10px 4px 0!important;color:#17637a;font-weight:700}
.hvl-vote-tools{margin-top:18px}
.hvl-vote-filters button:focus-visible,.hvl-vote-kana-buttons button:focus-visible,
.hvl-vote-remove:focus-visible,.hvl-ranking-scopes button:focus-visible,
.hvl-ranking-month-select:focus-visible,.hvl-ranking-search:focus-visible,
.hvl-vote-sort:focus-visible{outline:3px solid #dd8a47;outline-offset:2px}
.hvl-vote-kana-details{margin-top:14px}
.hvl-vote-kana-details summary{width:max-content;max-width:100%;cursor:pointer;color:#145e7a;font-weight:700;text-decoration:underline}
.hvl-vote-kana-buttons{display:flex;flex-wrap:wrap;gap:7px;padding:12px 0 2px}
.hvl-vote-kana-buttons button{min-height:38px;padding:6px 12px;border:1px solid #a3bdc8;border-radius:999px;background:#fff;color:#23445a;font-weight:700;cursor:pointer}
.hvl-vote-kana-buttons button.is-active{background:#125a76;border-color:#125a76;color:#fff}
.hvl-vote-sort{min-height:42px;margin-top:12px;padding:7px 12px;border:1px solid #a3bdc8;border-radius:8px;background:#fff;color:#23445a;font:inherit}
.hvl-vote-sort-label{display:block;margin-top:13px;font-weight:700}
.hvl-vote-jump-action{display:inline-block;margin-top:12px;color:#0a6d8a!important;font-weight:700;text-decoration:underline!important}
.hvl-vote-avatar{display:grid;place-items:center;width:50px;height:50px;margin:5px 8px 0;border-radius:50%;background:#e3f0f2;color:#35829a;font-size:1.5rem;object-fit:cover}
.hvl-vote-card-band{display:block;margin:0 8px 7px;color:#627582;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}
.hvl-vote-card:not(.is-unavailable){cursor:pointer}
.hvl-vote-card.is-unavailable{cursor:default}
.hvl-vote-card[hidden],.hvl-ranking-item[hidden],.hvl-vote-badge[hidden],.hvl-vote-card-status[hidden],
.hvl-ranking-mine[hidden],.hvl-ranking-updated[hidden],.hvl-vote-bottom-link[hidden]{display:none!important}
.hvl-vote-card-status{display:block;margin-top:5px;color:#9b431e;font-size:.77rem;font-weight:800}
.hvl-vote-action{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:5px 18px}
.hvl-vote-selected{grid-column:1;grid-row:1}
.hvl-vote-selected-list{grid-column:1;grid-row:2;display:flex;flex-wrap:wrap;gap:6px;max-height:88px;overflow:auto;list-style:none!important;margin:0!important;padding:0!important}
.hvl-vote-selected-item{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 9px;border:1px solid #f3c5ac;border-radius:999px;background:#fff4eb;color:#713c27;font-size:.83rem;font-weight:700}
.hvl-vote-selected-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hvl-vote-remove{flex:0 0 auto;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#fff;color:#723c27;font-size:1.2rem;line-height:1;cursor:pointer}
.hvl-vote-remove:hover{background:#f7d8c6}
.hvl-vote-submit{grid-column:2;grid-row:1/span 2}
.hvl-vote-message.is-error{color:#a34319}

/* Ranking period controls, reader's votes, and search */
.hvl-ranking-scopes{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin:24px 0 14px}
.hvl-ranking-scope{min-height:43px;padding:8px 18px;border:1px solid #a3bdc8;border-radius:999px;background:#fff;color:#23445a;font:inherit;font-weight:700;cursor:pointer}
.hvl-ranking-scope.is-active{background:#125a76;border-color:#125a76;color:#fff}
.hvl-ranking-month-label{display:flex;align-items:center;gap:8px;color:#38576a;font-weight:700}
.hvl-ranking-month-select{min-height:43px;padding:7px 12px;border:1px solid #a3bdc8;border-radius:8px;background:#fff;color:#23445a;font:inherit}
.hvl-ranking-search-label{display:block;margin-top:18px;margin-bottom:7px;font-weight:700}
.hvl-ranking-search{display:block;width:100%;max-width:460px;padding:11px 14px!important;border:1px solid #a7bac8!important;border-radius:9px!important;background:#fff!important;font-size:1rem!important}
.hvl-ranking-mine{margin:20px 0;padding:18px;border:1px solid #b9e1e7;border-radius:14px;background:#f1fbfc}
.hvl-ranking-mine-title{margin:0 0 5px!important;color:#184b63;font-size:1.1rem}
.hvl-ranking-mine-caption{margin:0 0 10px!important;color:#4b6675}
.hvl-ranking-mine-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;list-style:none!important;margin:0!important;padding:0!important}
.hvl-ranking-mine-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border:1px solid #d4e7eb;border-radius:9px;background:#fff}
.hvl-ranking-mine-result{flex:0 0 auto;color:#2c6478;font-weight:700;font-size:.85rem}
.hvl-ranking-updated{margin:0 2px 15px!important;color:#5b7080;font-size:.86rem}
.hvl-ranking-item{grid-template-columns:52px 66px minmax(0,1fr) 80px}
.hvl-ranking-item.is-mine{border-color:#f1bc95;background:#fff9f2}
.hvl-ranking-image{display:block;width:52px;height:52px;border-radius:50%;object-fit:cover;background:#e0edf0}
.hvl-ranking-image.is-placeholder{display:grid;place-items:center;color:#307990;font-size:1.5rem}
.hvl-ranking-image.is-spacer{background:transparent}
.hvl-ranking-name{min-width:0}
.hvl-ranking-artist{overflow-wrap:anywhere}
.hvl-ranking-name span.hvl-ranking-artist{display:inline-block;font-weight:700;color:#1b445d}
.hvl-ranking-name span.hvl-ranking-artist:hover{text-decoration:none!important}
.hvl-ranking-reading-links{display:flex;align-items:center;flex-wrap:wrap;gap:2px 4px;margin-top:5px}
.hvl-ranking-reading-links .hvl-ranking-reading-link{margin:0 0 2px}
.hvl-ranking-voted-badge{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:999px;background:#fce5d5;color:#8e481f;font-size:.72rem;font-weight:700;white-space:nowrap}
.hvl-ranking-new-badge{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:999px;background:#e8f3e5;color:#39723f;font-size:.72rem;font-weight:700;white-space:nowrap}
@media(max-width:640px){
  .hvl-vote-action{bottom:calc(5px + env(safe-area-inset-bottom));grid-template-columns:1fr;gap:6px;padding:10px 12px}
  .hvl-vote-selected,.hvl-vote-selected-list,.hvl-vote-submit{grid-column:1;grid-row:auto}
  .hvl-vote-selected-list{max-height:56px}
  .hvl-vote-card{min-height:110px}
  .hvl-vote-avatar{width:42px;height:42px}
  .hvl-vote-select{overflow-wrap:anywhere}
  .hvl-ranking-item{grid-template-columns:40px 46px minmax(0,1fr) 56px;gap:6px;padding:9px}
  .hvl-ranking-image{width:40px;height:40px}
  .hvl-ranking-votes{white-space:nowrap}
  .hvl-ranking-voted-badge{display:block;width:max-content;margin:4px 0 0}
  .hvl-ranking-new-badge{display:block;width:max-content;margin:4px 0 0}
  .hvl-ranking-mine-list{grid-template-columns:1fr}
}

/* Keep the vote action ahead of the long artist list and within reach. */
.hvl-vote-intro{margin:16px 4px 4px!important}
.hvl-vote-period{margin:5px 4px 0!important;font-size:.88rem}
.hvl-vote-rules{margin:6px 4px 18px;color:#526678;font-size:.85rem;line-height:1.6}
.hvl-vote-rules summary{width:max-content;cursor:pointer;color:#0a6d8a;text-decoration:underline}
.hvl-vote-rules p{margin:6px 0 0!important}
.hvl-vote-action{position:sticky;top:68px;bottom:auto;z-index:30;margin:14px 0}
.hvl-vote-message{grid-column:1/-1;margin:0!important}
.hvl-vote-message:empty{display:none}
.hvl-vote-grid{margin-top:14px}
@media(max-width:640px){
  .hvl-vote-action{position:relative;top:auto;bottom:auto;z-index:20;grid-template-columns:1fr;margin:14px 0}
  .hvl-vote.has-selection{padding-bottom:130px}
  .hvl-vote.has-selection .hvl-vote-action{position:fixed;top:auto;bottom:calc(6px + env(safe-area-inset-bottom));left:8px;right:8px;z-index:1001;width:auto;margin:0;padding:9px 12px}
  .hvl-vote.has-selection .hvl-vote-selected-list{flex-wrap:nowrap;max-height:34px;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
  .hvl-vote.has-selection .hvl-vote-selected-item{flex:0 0 auto}
  .hvl-vote.has-selection .hvl-vote-message{max-height:80px;overflow-y:auto;font-size:.82rem}
  body.hvl-vote-selection-active .go-to-top{display:none!important}
}
