.hub-nav-link{border:1px solid var(--red);border-radius:4px;color:var(--red-text);padding:8px 13px!important;margin-left:12px;white-space:nowrap}
.voting-hub-page{background:#101010;color:#f3f1ef;font-family:var(--body);min-height:100dvh}
.hub-shell{max-width:1040px;margin:auto;padding:28px 32px 70px}
.hub-eyebrow{color:#ff5262;letter-spacing:2px;font-weight:800;font-size:12px}.hub-shell h1{font:800 clamp(32px,6vw,60px)/1.1 var(--display);margin:12px 0}.hub-tabs{display:flex;gap:8px;margin:30px 0 20px;border-bottom:1px solid #33353b;padding-bottom:12px}.hub-tabs a{padding:12px 24px;border-radius:5px}.hub-tabs a[aria-current]{background:#ef3043;color:white}
#hub-account{padding:16px;background:#212123;border:1px solid #71323f;border-radius:6px;display:flex;justify-content:space-between;align-items:center;gap:16px}#hub-account small{display:block;color:#b0b0b0;margin-top:5px}.hub-help{color:#b8b8b8;font-size:14px;line-height:1.6;margin:20px 0}.hub-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;padding:22px 0;border-bottom:1px solid #303238;align-items:center}.hub-row small{font-size:11px;color:#a5a5a5}.hub-row h2{font:700 20px var(--body);margin:6px 0}.hub-row p{font-size:14px;color:#b8b8b8;margin:8px 0}.hub-vote-controls{display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums}.hub-vote-controls .button{min-width:44px;min-height:44px;padding:8px;font-size:20px}.hub-total{color:#ff5262;min-width:42px;margin-right:8px}.hub-voters{background:none;border:0;color:#ff6878;padding:10px 0;text-decoration:underline;font-size:13px}.hub-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.hub-toolbar input{flex:1;min-width:130px}.hub-toolbar select{width:auto;max-width:100%}.hub-shell input:not([type=checkbox]),.hub-shell select,.hub-shell textarea{background:#19191b;color:white;border:1px solid #47494f;padding:12px;border-radius:4px;font:inherit;max-width:100%}.hub-shell label{display:block;margin:16px 0;font-size:14px}.hub-shell label>input:not([type=checkbox]),.hub-shell label>textarea,.hub-shell label>select{display:block;width:100%;margin-top:8px}.hub-shell input[type=checkbox]{accent-color:#ef3043;width:18px;height:18px;vertical-align:middle}.hub-shell dialog,.admin-games-dialog{width:min(650px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;background:#19191b;border:1px solid #47494f;color:white;border-radius:8px}.hub-shell dialog::backdrop,.admin-games-dialog::backdrop{background:#000c}.hub-shell dialog header,.admin-games-dialog header{display:flex;justify-content:space-between;align-items:center;gap:16px}.hub-shell dialog h2{font:700 28px var(--display)}#hub-status:not(:empty){padding:12px 0;color:#ff97a3}#my-suggestions{margin-top:28px}#my-suggestion-list article{padding:15px 0;border-bottom:1px solid #33353b}.hub-shell summary{cursor:pointer;font-size:13px}.hub-shell [hidden]{display:none!important}
.admin-game-item{padding:18px 0;border-bottom:1px solid #44464c}.admin-game-item label{display:block;margin:8px 0}.admin-game-item input:not([type=checkbox]),.admin-game-item textarea,.admin-game-item select{width:100%;padding:8px;background:#111113;color:white;border:1px solid #55575d}.admin-game-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.admin-game-item fieldset{border:0;padding:0;display:flex;gap:12px;flex-wrap:wrap}.admin-game-item fieldset label{display:flex;gap:6px}.admin-games-dialog #admin-games-status{color:#ff97a3}
@media(max-width:700px){.hub-shell{padding:20px 16px 50px}.hub-row{gap:12px}.hub-row h2{font-size:15px}.hub-vote-controls{gap:5px}.hub-vote-controls .button{min-width:36px}.hub-total{margin-right:0;min-width:30px;font-size:13px}.hub-tabs a{padding:12px 20px}.hub-row p{font-size:12px}.hub-toolbar>*{font-size:13px}#public-menu-links .hub-nav-link{margin:8px 0 0}.hub-shell dialog{padding:18px}}
#hub-status{min-height:24px;font-size:13px}
#hub-status:not(:empty){padding:4px 0}
@media(max-width:700px){
 .hub-eyebrow{display:none}.hub-shell h1{font-size:28px;margin:8px 0}.hub-shell>p.muted{font-size:13px;margin:8px 0}
 .hub-tabs{margin:18px 0 8px;padding-bottom:8px}.hub-tabs a{padding:10px 18px}
 #hub-account{padding:12px;font-size:13px}.hub-help{font-size:13px;line-height:1.45;margin:12px 0}
 .hub-toolbar{gap:8px;margin:14px 0}.hub-toolbar input,.hub-toolbar select{padding:9px}.hub-row{padding:16px 0}
}
/* Full-width voting workspace: shared account, independent panel balances/lists. */
body.voting-hub-page .hub-shell{width:100%;max-width:1440px;padding:28px 48px 24px;height:100dvh;display:flex;flex-direction:column;min-height:0}
body.voting-hub-page .hub-page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;flex:none}
body.voting-hub-page .hub-page-heading h1{font:italic 900 clamp(30px,3vw,46px)/1.08 var(--display);text-transform:uppercase;margin:0;position:relative;padding-bottom:20px}
body.voting-hub-page .hub-page-heading h1::after{content:'';position:absolute;left:0;bottom:0;width:42px;height:3px;background:var(--red)}
body.voting-hub-page #hub-account{background:none;border:0;padding:0;display:flex;align-items:center;gap:12px;font-size:13px;flex:none}
body.voting-hub-page #hub-status{flex:none;min-height:28px;padding:4px 0}
.hub-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;flex:1;min-height:0}
.hub-panel{display:flex;flex-direction:column;min-width:0;min-height:0;padding:22px 24px;--hub-panel-bg:#18181a;background:var(--hub-panel-bg);border:1px solid #303238;border-radius:5px}
.hub-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.hub-panel-heading h2{font:800 28px/1.1 var(--display);margin:0}
.hub-panel-heading span{color:#b8b8b8;font-size:12px}
.hub-panel-heading>div{display:flex;align-items:baseline;gap:14px}
.hub-panel .hub-help{font-size:12px;margin:12px 0;flex:none}
.hub-panel .hub-scroll{flex:1;min-height:0;overflow-y:scroll;overscroll-behavior:contain;padding-right:12px;scrollbar-gutter:stable;scrollbar-color:#8c2938 #303030;scrollbar-width:thin}
.hub-scroll::-webkit-scrollbar{width:7px}.hub-scroll::-webkit-scrollbar-track{background:#303032;border-radius:9px}.hub-scroll::-webkit-scrollbar-thumb{background:#8c2938;border-radius:9px}
.hub-panel .hub-row{gap:12px;padding:18px 0}.hub-panel .hub-row:first-child{padding-top:8px}.hub-panel .hub-row h2{font-size:16px}.hub-panel .hub-row p{font-size:13px}
.hub-panel .hub-vote-controls{gap:6px}.hub-panel .hub-vote-controls .button{min-width:34px;padding:5px;min-height:40px}.hub-panel .hub-total{min-width:30px;margin-right:0;font-size:13px}
.hub-panel .hub-toolbar{margin:4px 0 14px;gap:8px;flex:none}.hub-panel .hub-toolbar input,.hub-panel .hub-toolbar select{font-size:12px;padding:9px;min-width:0}.hub-panel .hub-toolbar input{flex:1 1 120px}.hub-panel .hub-toolbar select{flex:0 1 auto;max-width:42%}
body.voting-hub-page #hub-consent{font-size:12px;margin:0 0 12px}
@media(max-width:1050px){body.voting-hub-page .hub-shell{padding-inline:28px}.hub-panel{padding:18px 16px}.hub-columns{gap:16px}.hub-panel-heading>div{display:block}.hub-panel-heading span{display:block;margin-top:5px}}
@media(max-width:800px){
 body.voting-hub-page .hub-shell{height:auto;min-height:100dvh;padding-inline:16px}
 body.voting-hub-page .hub-page-heading{align-items:flex-start;flex-direction:column;gap:16px}
 body.voting-hub-page .hub-page-heading h1{font-size:32px}
 .hub-columns{grid-template-columns:1fr;flex:none}.hub-panel{height:65dvh;min-height:400px}
 body.voting-hub-page #hub-account{flex-wrap:wrap}
}

.hub-panel-heading{min-height:48px}.hub-panel-heading>div{display:block}.hub-panel-heading span{display:block;margin-top:5px}
/* Reuse the original voting modal's compact rows and custom scrollbars. */
body.voting-hub-page .hub-page-heading h1{font:800 26px/1.1 var(--body);text-transform:none;padding:0;margin:0}
body.voting-hub-page .hub-page-heading h1::after{display:none}
body.voting-hub-page .hub-page-heading{min-height:44px}
body.voting-hub-page #hub-status{min-height:24px}
.hub-panel-heading{align-items:flex-start;min-height:50px}
.hub-panel-heading h2{font:italic 900 32px/1.1 var(--display);text-transform:uppercase;padding-bottom:14px;position:relative;margin:0 0 10px}
.hub-panel-heading h2::after{content:'';position:absolute;bottom:0;left:0;width:42px;height:3px;background:var(--red)}
.hub-panel-heading span{display:inline-block;padding:6px 10px;border-left:3px solid var(--red);background:#ed304314;color:var(--white);font:700 13px/1.3 var(--body);margin-top:0}
.hub-panel .voting-goal{grid-template-columns:minmax(0,1fr) 60px 116px;gap:12px;padding:16px 0;align-items:center}
.hub-panel .voting-goal-copy{grid-column:1;grid-row:1;align-self:center}
.hub-panel .voting-goal>.vote-total{grid-column:2;grid-row:1;align-self:center}
.hub-panel .vote-allocation{grid-column:3;grid-row:1}
.hub-panel .voting-goal-copy strong{font-size:14px}
.hub-panel .voting-goal-copy details{margin-top:6px;font-size:12px}.hub-panel .hub-voters{font-size:12px;padding:8px 0 0}
.hub-scroll-frame{flex:1;min-height:0}
.hub-panel .hub-scroll{overflow-y:auto;scrollbar-width:none;scrollbar-gutter:auto;padding-right:22px;outline-offset:-2px}
.hub-panel .hub-scroll::-webkit-scrollbar{display:none}
.hub-panel .voting-scrollbar{background:#303032}.hub-panel .voting-scrollbar>span{background:#8c2938}
@media(max-width:1100px){.hub-panel .voting-goal{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.hub-panel .vote-allocation{gap:4px}.hub-panel .vote-allocation button{width:34px;height:40px}.hub-panel .vote-mine{min-width:18px}.hub-panel .vote-total{font-size:14px;gap:5px}}
@media(max-width:800px){body.voting-hub-page .hub-page-heading{flex-direction:column;align-items:stretch;gap:10px}body.voting-hub-page .hub-page-heading h1{font-size:26px}.hub-panel .voting-goal-copy strong{font-size:13px}.hub-panel-heading h2{font-size:30px}}
@media(max-width:800px){body.voting-hub-page #hub-account{width:100%;flex:none;min-width:0;flex-wrap:nowrap;justify-content:space-between;font-size:12px;gap:12px}body.voting-hub-page #hub-account>span{min-width:0;overflow-wrap:anywhere}body.voting-hub-page #hub-account .button{flex:none;min-height:40px;font-size:12px;padding:8px 10px}}

/* Balance belongs alongside each panel title; account access stays shared. */
.hub-panel-heading span{flex:none;padding:7px 10px;border:1px solid #71323f;border-radius:4px;background:#212123;white-space:nowrap}
.hub-panel-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.hub-panel-tools .hub-help{flex:1;min-width:0}
.hub-panel-tools .button{flex:none;font-size:12px;padding:9px 12px}
.hub-panel .vote-allocation button:disabled{cursor:not-allowed}
@media(max-width:800px){body.voting-hub-page .hub-page-heading h1{font-size:22px}.hub-panel-heading span{font-size:12px;padding:6px 8px}}

body.voting-hub-page .hub-page-heading h1{font:600 23px/1.25 var(--body);text-transform:uppercase;letter-spacing:1.8px;color:#ba3447}
#hub-account strong{color:var(--white)}
.hub-panel-heading>.hub-game-actions{display:flex;align-items:center;gap:8px}
.hub-game-actions #game-balance,.hub-game-actions #suggest-open{height:36px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;margin:0;font:700 13px/1 var(--body);padding:0 10px;white-space:nowrap}
@media(max-width:1100px){.hub-panel-heading:has(.hub-game-actions){flex-wrap:wrap}.hub-panel-heading>.hub-game-actions{margin-left:auto}.hub-game-actions #game-balance,.hub-game-actions #suggest-open{font-size:12px}}
#voting-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
#voting-tab .voting-pending-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:2px 5px;border-radius:4px;background:#ff2020;color:#fff;border:1px solid #ff8585;box-shadow:0 1px 3px #0006;font-size:11px;font-weight:800;line-height:16px}
#admin-add-game{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:900px}
#admin-add-game label{display:flex;flex-direction:column;gap:6px}#admin-add-game .wide{grid-column:1/-1}#admin-add-game button{justify-self:start}
@media(max-width:650px){#admin-add-game{grid-template-columns:1fr}}

/* Match the main page’s How it works secondary action. */
#suggest-open{background:#272729;border-color:#696b71;color:var(--white)}
#suggest-open:hover:not(:disabled),#suggest-open:focus-visible{background:#363638;border-color:var(--red);color:#fff}

/* Modal-inspired eyebrow at a readable intermediate size. */
body.voting-hub-page .hub-page-heading h1{font:600 17px/1.5 var(--body);letter-spacing:1.5px;color:var(--red-text);text-transform:uppercase}
/* Voting admin: compact queue and published catalogue, with editing in dialogs. */
.admin-voting-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.admin-voting-columns .control-card{min-width:0;padding:22px}
.admin-voting-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.admin-voting-heading h2{font:700 26px/1.2 var(--body);margin:0}
.admin-voting-heading select{width:auto;max-width:150px;font-size:12px;padding:8px}
.admin-voting-heading .button{padding:7px 12px;white-space:nowrap}
.admin-voting-list{max-height:65vh;overflow:auto;scrollbar-color:#8c2938 #303030;scrollbar-width:thin}
.admin-voting-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--border)}
.admin-voting-copy{flex:1;min-width:0;overflow-wrap:anywhere}.admin-voting-item-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:15px}
.admin-voting-copy small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.admin-voting-copy small strong{color:var(--white)}
.admin-voting-copy p{font-size:13px;color:#b8b8b8;margin:5px 0;line-height:1.4}.admin-voting-copy a{font-size:12px;color:var(--red-text)}
.admin-voting-actions{display:flex;flex:none;gap:6px;flex-wrap:wrap}.admin-voting-actions .button{font-size:12px;padding:7px 9px}
#admin-played{margin-top:16px}#admin-played[hidden],.admin-games-dialog [hidden]{display:none!important}
.admin-games-dialog label{display:block;margin:14px 0;font-size:13px}.admin-games-dialog input:not([type=checkbox]),.admin-games-dialog textarea,.admin-games-dialog select{width:100%;margin-top:5px;padding:10px;background:#111113;border:1px solid #494b51;border-radius:3px;color:var(--white);font:inherit}
.admin-games-dialog input[type=checkbox]{width:auto}.admin-games-dialog textarea{resize:vertical}
#admin-game-error{font-size:13px;color:#ff97a3}
@media(max-width:950px){.admin-voting-columns{grid-template-columns:1fr}.admin-voting-actions{max-width:120px}}

/* Shared Vote / Rankings view switch and quieter allocation badges. */
.hub-title-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.hub-view-switch button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.hub-panel-heading #goal-balance,.hub-panel-heading #game-balance{background:none;border:0;color:var(--white);min-height:36px;display:inline-flex;align-items:center;gap:4px;padding:0;font:700 13px/1 var(--body);border-radius:0}
.hub-balance-number{color:var(--red);font-weight:800}
#suggest-open{background:#321c23;border-color:#71323f;color:var(--white)}
#suggest-open:hover:not(:disabled),#suggest-open:focus-visible{background:#44212a;border-color:var(--red)}
.hub-panel.hub-rankings .voting-goal{grid-template-columns:32px minmax(0,1fr) auto;min-height:73px}
.hub-panel.hub-rankings .voting-goal-copy{grid-column:2}
.hub-panel.hub-rankings .voting-goal>.vote-total{grid-column:3}
.hub-rank{grid-column:1;grid-row:1;color:#a7a7a7;font:700 18px/1 var(--body);font-variant-numeric:tabular-nums}
.hub-panel-heading:has(.hub-game-actions){flex-wrap:wrap}
.hub-panel-heading>.hub-game-actions{margin-left:auto}
@media(max-width:800px){.hub-title-tools{gap:8px}.hub-title-tools h1{flex-basis:100%}.hub-view-switch button{padding:11px 13px}.hub-panel.hub-rankings .voting-goal{grid-template-columns:24px minmax(0,1fr) auto}}

/* One row for list navigation; balances remain with the panel headings. */
.hub-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;border-bottom:1px solid var(--border);margin:6px 0 8px;min-height:46px}
.hub-list-toolbar #suggest-open{height:32px;padding:0 10px;font:700 12px/1 var(--body);border-radius:4px;white-space:nowrap;margin:0 0 5px}
.hub-panel>.hub-help{margin:12px 0;flex:none}
@media(max-width:400px){.hub-list-toolbar{gap:10px}.hub-view-switch{gap:5px}.hub-list-toolbar #suggest-open{padding:0 8px}}
@media(min-width:801px){.hub-panel>.hub-help{min-height:2lh}}
@media(max-width:800px){.hub-panel-heading{flex-wrap:wrap}.hub-panel-heading h2{white-space:nowrap}.hub-panel-heading #goal-balance,.hub-panel-heading #game-balance{margin-left:auto}}

/* The native title link covers the row; allocation controls remain separate. */
#hub-game-list .voting-goal{position:relative}
.hub-game-link{color:inherit}
.hub-game-link::after{content:"";position:absolute;inset:0;z-index:1}
#hub-game-list .vote-allocation{position:relative;z-index:2}
#hub-game-list .voting-goal:has(.hub-game-link):hover{background:#ffffff08}
#hub-game-list .voting-goal:hover .hub-game-link{color:var(--red-text)}
.hub-game-link:focus-visible::after{outline:2px solid var(--red);outline-offset:-2px}
.hub-panel-heading>.hub-balance-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-left:auto}
.hub-my-votes{min-height:36px;padding:9px 12px;border:1px solid #ad4553;border-radius:4px;background:#44212a;color:#fff;font:700 12px/1 var(--body);text-decoration:none;white-space:nowrap}
.hub-my-votes:hover,.hub-my-votes[aria-pressed=true]{color:#fff;border-color:var(--red);background:#44212a}
.hub-panel-heading:has(.hub-balance-tools){flex-wrap:wrap}

.hub-page-info{flex:none;margin:14px 0 0;padding:12px 16px;background:#18181ae8;border:1px solid var(--border);border-left:3px solid #743039;border-radius:4px;color:#c3c3c3;font:400 13px/1.6 var(--body)}

.hub-page-info{display:flex;align-items:flex-start;gap:10px}.hub-info-icon{width:18px;height:18px;flex:none;margin-top:2px;fill:none;stroke:#a7a9af;stroke-width:1.5;stroke-linecap:round}.hub-info-icon .hub-info-dot{fill:#a7a7a7;stroke:none}
#hub-goal-list .voting-goal,#hub-game-list .voting-goal{padding-inline:12px}

.admin-voting-item{position:relative;padding-inline:12px}
.admin-voting-copy .admin-game-link{font:inherit;color:inherit}
.admin-game-link::after{content:"";position:absolute;inset:0;z-index:1}
.admin-voting-item .admin-voting-actions{position:relative;z-index:2}
.admin-voting-item:has(.admin-game-link):hover{background:#ffffff08}
.admin-voting-item:hover .admin-game-link{color:var(--red-text)}
.admin-game-link:focus-visible::after{outline:2px solid var(--red);outline-offset:-2px}

.voting-hub-page .hub-columns{margin-top:24px}
#suggest-form button[type="submit"]{min-width:160px}

.hub-submit-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;align-items:center;min-height:72px}
.hub-submit-row #suggest-error{margin:0;color:var(--red-text);font-size:13px;line-height:1.4;max-height:72px;overflow:auto;overflow-wrap:anywhere}
@media(max-width:500px){.hub-submit-row{grid-template-columns:140px minmax(0,1fr);gap:12px;min-height:96px}.hub-submit-row #suggest-error{max-height:96px}#suggest-form button[type="submit"]{min-width:0;padding-inline:10px}}
#my-suggestions{margin-top:16px;border:1px solid #484a50;border-radius:5px;background:#151517;overflow:hidden}
#my-suggestions summary{display:flex;align-items:center;gap:10px;padding:14px 16px;min-height:48px;font:700 14px/1.3 var(--body);list-style:none;background:#242426;cursor:pointer}
#my-suggestions summary::-webkit-details-marker{display:none}
#my-suggestions summary:hover{background:#303032}
#my-suggestions[open] summary{border-bottom:1px solid #484a50}
.hub-suggestion-count{color:#b8b8b8;font-size:12px}
.hub-suggestion-chevron{margin-left:auto;width:8px;height:8px;border-right:2px solid #b8bac0;border-bottom:2px solid #b8bac0;transform:rotate(45deg);margin-top:-4px}
#my-suggestions[open] .hub-suggestion-chevron{transform:rotate(225deg);margin-top:4px}
#my-suggestion-list .hub-suggestion-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #303238}
#my-suggestion-list .hub-suggestion-row:last-child{border-bottom:0}
.hub-suggestion-copy{flex:1;min-width:0;font-size:14px;overflow-wrap:anywhere}
.hub-suggestion-status{display:block;color:#b8b8b8;font-size:12px;margin-top:4px}
.hub-suggestion-copy p{font-size:12px;color:#b8b8b8;margin:6px 0 0}
.hub-suggestion-row .button{flex:none;padding:8px 10px;min-height:36px;font-size:12px}
.hub-suggestions-empty{margin:0;padding:16px;color:#b8b8b8;font-size:13px}
.hub-panel.hub-completed .voting-goal{grid-template-columns:minmax(0,1fr) auto}
.hub-panel.hub-completed .voting-goal-copy{grid-column:1}

.hub-list-toolbar{flex-wrap:wrap;row-gap:10px}
@media(max-width:600px){.hub-list-toolbar:has(#suggest-open){display:grid;grid-template-columns:1fr auto}.hub-list-toolbar #suggest-open{grid-column:2;grid-row:1;justify-self:end}.hub-list-toolbar:has(#suggest-open) .hub-view-switch{grid-column:1/-1;grid-row:2}}
#my-suggestion-list{max-height:min(300px,35dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8c2938 #303030}
#my-suggestion-list::-webkit-scrollbar{width:7px}#my-suggestion-list::-webkit-scrollbar-track{background:#303032;border-radius:9px}#my-suggestion-list::-webkit-scrollbar-thumb{background:#8c2938;border-radius:9px}

.hub-balance-tools #suggest-open{height:36px;min-height:36px;padding:9px 12px;font:700 12px/1 var(--body);border-radius:4px;white-space:nowrap}
.admin-games-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.admin-voting-item.is-completed{background:#173d3066}
.admin-voting-item.is-completed strong{color:var(--muted)}

.admin-voting-actions .task-complete{background:#194838;border-color:#397b60;color:#effff6}
.admin-voting-actions .task-complete:hover{background:#245c48}

.admin-games-tools .official-completed-toggle{margin:0;font-size:13px}
.admin-decline.button{display:inline-flex;align-items:center;gap:7px;background:#321c23;border-color:#8d3543;color:#ff9aaa}
.admin-decline.button:hover{background:#48212b;border-color:#d44659;color:#ffc0ca}
.admin-decline svg{flex:none}

#suggest-conduct-notice{display:block;margin:16px 0;font-size:13px;line-height:1.5}
#suggest-conduct-notice strong{color:var(--white)}

/* Keep pending vote feedback inside the allocation that initiated it. */
.hub-panel .vote-allocation[aria-busy=true] .vote-mine{position:relative;color:transparent}
.hub-panel .vote-allocation[aria-busy=true] .vote-mine::after{content:'';position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border:2px solid #f7f9ff30;border-top-color:var(--red);border-radius:50%;animation:hub-vote-loading .8s linear infinite}
.hub-panel .vote-allocation[aria-busy=true] button:disabled{cursor:wait}
@keyframes hub-vote-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hub-panel .vote-allocation[aria-busy=true] .vote-mine::after{animation:none}}
.hub-view-switch{flex-wrap:wrap}
.hub-detail-open{border:0;background:none;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.hub-detail-open:hover{color:var(--red)}
.hub-detail-open:focus-visible{outline:2px solid var(--red);outline-offset:4px}
#admin-game-progress-fields{display:grid;gap:16px}
#admin-game-progress-fields[hidden]{display:none}
.game-clip-row{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--border)}
.game-clip-row button{justify-self:end}


.hub-completed .voting-goal>.activity-status{grid-column:2;grid-row:1;justify-self:end}
.hub-detail-cue{display:block;margin-top:5px;color:var(--muted);font:400 12px/1.4 var(--body)}

/* Metadata pencil and activity status are separate actions. */
.admin-voting-item>.admin-edit-pencil{align-self:flex-start;margin-top:2px}
.admin-voting-actions .game-status-button{background:#111113;border-color:#484a50;color:var(--white);white-space:nowrap}
.admin-voting-actions .game-status-button:hover{background:#252527;border-color:#6a6c72}
@media(max-width:600px){
 #admin-games-list .admin-voting-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:14px 8px}
 #admin-games-list .admin-voting-copy{grid-column:2;grid-row:1}
 #admin-games-list .admin-voting-actions{grid-column:2;max-width:none;justify-content:flex-end}
}

.hub-activity-actions{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:12px}

.hub-game-search{position:relative;display:flex;align-items:center;align-self:stretch;width:100%;margin:4px 0 12px;flex:none;min-width:0}.hub-shell .hub-game-search input[type=search]{min-width:0;width:100%;font-size:13px;padding:6px 52px 6px 32px;height:32px;border:1px solid #46484e;background:#131315;border-radius:4px;outline:none}.hub-game-search button{position:absolute;right:4px;background:none;border:0;color:var(--muted);font:600 12px var(--body);padding:8px}.hub-game-search button:hover{color:var(--white)}

.hub-game-search input::-webkit-search-cancel-button{display:none}
.admin-voting-heading:has(#admin-suggestion-add){flex-wrap:wrap}
.admin-suggestion-tools{margin-left:auto;gap:12px;justify-content:flex-end}
.admin-suggestion-tools select,.admin-suggestion-tools .button{margin:0;min-height:36px}

.hub-search-icon{position:absolute;left:10px;width:15px;height:15px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;pointer-events:none}

.hub-shell .hub-game-search input[type=search]:focus-visible{outline:1px solid var(--red);outline-offset:2px}
.hub-shell .hub-game-search input::placeholder{color:var(--muted);opacity:1}

/* Compact voting introduction with accessible hover help. */
.hub-help-toggle{display:inline-flex;align-items:center;gap:7px;padding:8px 0;background:none;border:0;color:var(--muted);font:500 13px/1.4 var(--body);cursor:pointer;white-space:nowrap}
.hub-help-toggle svg{transform:translateY(1px);width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.hub-help-toggle:hover,.hub-help-toggle:focus-visible{color:var(--white)}
.hub-help-toggle:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:2px}
.hub-help-wrap{position:relative;display:flex;align-items:center;flex:none}
#hub-voting-help{position:fixed;z-index:100;width:360px;max-width:calc(100vw - 32px);margin:0;padding:14px 16px;background:#222224;border:1px solid #515359;border-radius:6px;box-shadow:0 8px 24px #0008;font-size:13px;line-height:1.6}
#hub-voting-help::before{content:'';position:absolute;left:0;right:0;top:-8px;height:8px}
#hub-voting-help .hub-info-icon{display:none}
@media(max-width:800px){
 body.voting-hub-page .hub-page-heading{gap:8px}
 .hub-title-tools{column-gap:8px;row-gap:0}
 .hub-title-tools h1{flex-basis:auto}
}

/* Panel search shares the title row; account actions stay outside the panels. */
.hub-account-tools{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:none}
.hub-panel-heading{display:flex;flex-wrap:wrap;align-items:flex-start;gap:0 32px}
.hub-panel-heading h2{flex:1 0 auto;white-space:nowrap}
.hub-panel-heading>.hub-game-search{display:flex;align-items:center;flex:1 1 130px;min-width:130px;width:auto;max-width:240px;margin:0 0 12px;align-self:flex-start}
.hub-panel-heading>.hub-balance-tools{flex:0 0 100%;margin:0 0 8px;justify-content:flex-end}
.hub-panel-heading>.hub-balance-tools:not(:has(> :not([hidden]))){display:none}
@media(max-width:1100px) and (min-width:801px){
 .hub-panel-heading h2{font-size:27px}
}
@media(max-width:800px){
 .hub-account-tools{flex-wrap:wrap;justify-content:flex-start}
 body.voting-hub-page .hub-account-tools #hub-account{width:auto}
}

.hub-shell .hub-game-search:has(button[hidden]) input[type=search]{padding-right:10px}
body.voting-hub-page .hub-page-heading{flex-wrap:wrap;row-gap:10px}

.hub-list-toolbar>.hub-balance-tools{display:flex;align-items:center;gap:10px;margin-left:auto;padding-bottom:5px;flex:none}
.hub-list-toolbar>.hub-balance-tools:not(:has(> :not([hidden]))){display:none}
.hub-list-toolbar .hub-balance-tools>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;color:var(--white);font:700 12px/1 var(--body)}
.hub-list-toolbar .hub-my-votes{min-height:32px;padding:8px 10px}

/* Wrapped voting controls sit above the tabs, keeping tabs against the list. */
.hub-list-toolbar{flex-wrap:wrap-reverse}

/* Give phone voting controls an intentional row with balanced spacing. */
@media(max-width:600px){
 .hub-panel-heading h2{margin-bottom:0}
 .hub-panel-heading>.hub-game-search{margin-bottom:0}
 .hub-panel-heading{row-gap:12px}
 .hub-list-toolbar{margin-top:12px;row-gap:12px}
}

.hub-list-toolbar.is-wrapped>.hub-balance-tools{flex-basis:100%;justify-content:flex-start;margin-left:0;padding-bottom:0}

/* Compact account actions, including the signed-in identity. */
body.voting-hub-page .hub-account-tools{gap:8px}
body.voting-hub-page .hub-account-tools .button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:7px 10px;font:700 12px/1.25 var(--body);border-radius:4px}
.hub-account-name{color:inherit;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

body.voting-hub-page #hub-account [data-account=logout]{background:#272727}
body.voting-hub-page #hub-account [data-account=logout]:hover{background:#343434}
body.voting-hub-page #suggest-open{background:var(--red);border-color:var(--red);color:var(--white)}
body.voting-hub-page #suggest-open:hover:not(:disabled),body.voting-hub-page #suggest-open:focus-visible{background:#d92738;border-color:#d92738}

.hub-game-search button{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:6px;right:2px}
.hub-game-search button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.hub-shell .hub-game-search input[type=search]{padding-right:32px}
.hub-shell .hub-game-search:has(button[hidden]) input[type=search]{padding-right:10px}

/* With reverse wrapping, cross-start is the bottom edge of the toolbar. */
.hub-list-toolbar>.hub-view-switch{align-self:flex-start}

/* Stack panels before their tab rows become cramped. */
@media(max-width:1000px){
 body.voting-hub-page .hub-shell{height:auto;min-height:100dvh}
 .hub-columns{grid-template-columns:1fr;flex:none}
 .hub-panel{height:65dvh;min-height:400px}
}
.hub-list-toolbar>.hub-view-switch{max-width:100%;min-width:0}

/* Keep the heading and account actions together until their content needs to wrap. */
body.voting-hub-page .hub-page-heading{flex-direction:row;align-items:center;column-gap:20px;row-gap:12px}
body.voting-hub-page .hub-title-tools{flex:0 1 auto}
body.voting-hub-page .hub-account-tools{max-width:100%}
body.voting-hub-page .hub-account-tools #hub-account .button,
body.voting-hub-page .hub-account-tools #suggest-open{min-height:32px;height:32px;padding:7px 10px;font:700 12px/1.25 var(--body)}

/* Reserve the same account footprint before and after session data arrives. */
body.voting-hub-page .hub-account-tools{width:260px;min-height:32px;justify-content:flex-end}
body.voting-hub-page #hub-account.initial-loading{min-height:32px}
body.voting-hub-page .hub-account-tools:has(.initial-loading){height:32px}
@media(max-width:800px){body.voting-hub-page .hub-account-tools{justify-content:flex-start}}

/* Keep all four voting tabs on one line on phones. */
.hub-view-switch{flex-wrap:nowrap}
.hub-view-switch button{white-space:nowrap}
@media(max-width:440px){
 .hub-view-switch{gap:4px}
 .hub-view-switch button{font-size:12px;padding-inline:8px}
}
@media(max-width:360px){
 .hub-view-switch button{font-size:11px;padding-inline:6px}
}

/* Keep the longer panel title and search together at typical iPhone widths. */
@media(max-width:440px){
 .hub-panel-heading h2{font-size:26px}
}

/* Keep account labels intact and explain unavailable suggestions accessibly. */
body.voting-hub-page .hub-account-tools{width:max-content;min-width:min(260px,100%);flex-wrap:wrap}
body.voting-hub-page .hub-account-tools .button{white-space:nowrap;flex-shrink:0}
.hub-suggest-help{position:relative;display:inline-flex;flex:none}
body.voting-hub-page #suggest-open[aria-disabled=true]{opacity:1;cursor:not-allowed;background:#272727;border-color:#484a50;color:#a2a2a2}
#suggest-signin-help{display:none;position:absolute;top:calc(100% + 6px);right:0;width:230px;max-width:calc(100vw - 32px);margin:0;padding:8px 10px;text-align:left;white-space:normal;letter-spacing:normal;background:#222224;border:1px solid #515359;border-radius:5px;box-shadow:0 6px 20px #0008;color:var(--white);font:500 12px/1.5 var(--body);z-index:100}
.hub-suggest-help:has([aria-disabled=true]):hover #suggest-signin-help,
.hub-suggest-help:has([aria-disabled=true]):focus-within #suggest-signin-help{display:block}

body.voting-hub-page #suggest-open[aria-disabled=true],
body.voting-hub-page #suggest-open[aria-disabled=true]:hover,
body.voting-hub-page #suggest-open[aria-disabled=true]:focus-visible{
 background:#202020;border-color:#35373d;color:#787878;opacity:1;box-shadow:none;cursor:not-allowed;
}

/* Reuse the main-page segmented tabs; adapt only their size to each vote panel. */
.hub-list-toolbar{border-bottom:0;padding-bottom:4px}
.hub-list-toolbar>.hub-view-switch.milestone-filters{display:flex;flex:0 1 auto;flex-wrap:nowrap;align-self:center;width:auto;max-width:100%;gap:4px;padding:4px}
.hub-view-switch.milestone-filters button{flex:1 1 auto;min-width:0;min-height:38px;margin:0;padding:7px 14px;font:700 14px/1.2 var(--body);white-space:nowrap;cursor:pointer}
@media(max-width:1100px){.hub-view-switch.milestone-filters button{font-size:13px;padding-inline:10px}}
@media(max-width:440px){
 .hub-list-toolbar>.hub-view-switch.milestone-filters{width:100%;gap:2px;padding:3px}
 .hub-view-switch.milestone-filters button{font-size:12px;padding-inline:5px}
}
@media(max-width:360px){.hub-view-switch.milestone-filters button{font-size:11px;padding-inline:3px}}

/* Completed and in-progress activities are one keyboard-accessible row action. */
.hub-panel .voting-goal[role=button]{cursor:pointer}
.hub-panel .voting-goal[role=button]:hover{background:#ffffff08}
.hub-panel .voting-goal[role=button]:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
@media(max-width:440px){.hub-activity-actions{gap:6px}.hub-activity-actions .goal-video-cue{padding:6px;font-size:10px}}
