.vote-shell { width: min(650px, calc(100% - 40px)); margin: 0 auto; padding-bottom: 38px; }
.vote-results-shell { width: min(1000px, calc(100% - 48px)); }
.vote-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 29px 0 39px; }
.vote-back, .vote-cast-link, .vote-page-foot a { display: inline-flex; align-items: center; gap: 8px; color: #32658e; font-size: 12px; font-weight: 650; text-decoration: none; }
.vote-back svg, .vote-cast-link svg, .vote-page-foot svg { width: 18px; height: 18px; flex-shrink: 0; }
.vote-role { padding: 7px 10px; border-radius: 8px; background: #e1edf9; font-size: 11px; color: #32658e; }
.vote-heading { display: flex; gap: 17px; align-items: center; }
.vote-heading h1, .vote-results-heading h1 { font-size: clamp(32px, 4.5vw, 46px); }
.vote-heading .eyebrow { margin-bottom: 8px; }
.vote-heading-icon { display: grid; place-items: center; width: 64px; height: 64px; flex-shrink: 0; border: 1px solid #cddff0; border-radius: 18px; background: #e6f1fc; color: #326eab; }
.vote-heading-icon svg { width: 35px; height: 35px; }
.vote-intro { color: #587087; font-size: 14px; line-height: 1.9; margin: 22px 0 27px; }
.vote-form { padding: 30px; border: 1px solid #fff; border-radius: 22px; background: #ffffffed; box-shadow: 0 10px 42px #22436e09; }
.vote-field { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; font-size: 13px; font-weight: 700; color: #2b4c69; }
.vote-field select { width: 100%; min-height: 49px; padding: 10px 12px; border: 1px solid #c7d9e9; border-radius: 10px; background: #fbfdff; color: #294e70; font: inherit; font-size: 13px; font-weight: 500; }
.vote-field select:focus-visible { outline: 2px solid #387fb7; outline-offset: 3px; }
.vote-field small { color: #668096; font-size: 11px; line-height: 1.7; font-weight: 400; }
.vote-form-note { margin: 1px 0 22px; color: #668096; font-size: 12px; line-height: 1.8; }
.vote-submit, .vote-refresh { display: inline-flex; justify-content: center; align-items: center; gap: 9px; min-height: 46px; padding: 11px 19px; border: 1px solid #2563a9; border-radius: 11px; background: #2563a9; color: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }
.vote-submit { width: 100%; }
.vote-submit:hover { background: #1e528d; }
.vote-submit svg, .vote-refresh svg { width: 19px; height: 19px; flex-shrink: 0; }
.vote-page-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 17px; margin: 23px 2px 0; }
.vote-message { padding: 16px 18px; border: 1px solid #c9dceb; border-radius: 13px; background: #fff; margin: 0 0 24px; font-size: 13px; line-height: 1.8; color: #376080; }
.vote-error { border-color: #e8c8b8; color: #965038; background: #fff5ef; }
.vote-success { border-color: #bfdfce; color: #2f6c50; background: #edf8f2; }
.vote-admin-reset { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px; margin: 24px 0; padding: 19px 21px; border: 1px solid #e6d3c4; border-radius: 16px; background: #fffaf5; }
.vote-admin-reset b { font-size: 12px; color: #80542f; }
.vote-admin-reset p { margin: 7px 0 0; font-size: 11px; line-height: 1.8; color: #846d59; }
.vote-reset-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 13px; border: 1px solid #d8bca8; border-radius: 10px; background: #fff; color: #8c4e33; font-size: 11px; font-weight: 700; cursor: pointer; }
.vote-reset-button:hover { background: #fff1e7; } .vote-reset-button svg { width: 18px; height: 18px; }
.vote-reset-confirm { flex-basis: 100%; border-top: 1px solid #eadbd0; padding-top: 9px; }
.vote-reset-confirm > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 13px; }
.vote-reset-confirm a { text-decoration: none; font-size: 11px; }
.vote-results-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.vote-refresh { border-color: #c7d9e9; background: #fff; color: #32658e; }
.vote-refresh:hover { background: #e8f2fc; }
.vote-stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 17px; margin: 25px 0; }
.vote-stats > div { display: flex; flex-direction: column; gap: 9px; padding: 22px 23px; border: 1px solid #dbe7f2; border-radius: 17px; background: #ffffffd9; }
.vote-stats span { font-size: 12px; color: #587087; }
.vote-stats strong { font-size: 34px; font-weight: 750; color: #2563a9; letter-spacing: -.05em; }
.vote-stats small { font-size: 11px; line-height: 1.6; color: #668096; }
.vote-results-card { border: 1px solid #dbe7f2; border-radius: 20px; background: #fffffff0; overflow: hidden; }
.vote-results-table { width: 100%; border-collapse: collapse; font-size: 13px; text-align: left; table-layout: fixed; }
.vote-results-table caption { padding: 24px; text-align: left; font-size: 17px; font-weight: 750; color: #294e70; }
.vote-results-table th, .vote-results-table td { padding: 13px 23px; border-bottom: 1px solid #e6eef5; }
.vote-results-table thead { background: #f0f6fc; color: #587087; font-size: 11px; }
.vote-results-table th:first-child { width: 16%; }
.vote-results-table th:nth-child(2) { width: 14%; }
.vote-results-table th:nth-child(3) { width: 45%; }
.vote-results-table th:nth-child(4) { width: 25%; }
.vote-number { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; color: #2563a9; background: #e8f2fc; font-weight: 750; }
.vote-count { font-weight: 750; color: #294e70; font-variant-numeric: tabular-nums; }
.vote-share { display: flex; align-items: center; gap: 16px; font-variant-numeric: tabular-nums; }
.vote-share > span { min-width: 49px; text-align: right; color: #32658e; }
.vote-bar { flex: 1; height: 9px; border-radius: 8px; background: #e8f1fa; overflow: hidden; }
.vote-bar span { display: block; height: 100%; border-radius: inherit; background: #5a97ca; }
.vote-staff-percent { color: #587087; font-variant-numeric: tabular-nums; }
.vote-percentage-note { margin: 0; padding: 19px 23px; font-size: 11px; line-height: 1.9; color: #668096; }
.vote-updated, .vote-no-results { margin: 18px 1px 0; font-size: 11px; color: #668096; line-height: 1.8; }
@media (max-width:650px) {
 .vote-header { padding: 24px 0 32px; }
 .vote-results-heading { flex-wrap: wrap; gap: 18px; }
 .vote-heading { gap: 12px; } .vote-heading-icon { width: 48px; height: 48px; border-radius: 14px; } .vote-heading-icon svg { width: 27px; height: 27px; }
 .vote-form { padding: 25px 20px; } .vote-intro { font-size: 13px; }
 .vote-results-shell { width: calc(100% - 28px); }
 .vote-stats { gap: 8px; } .vote-stats > div { padding: 16px 11px; gap: 8px; } .vote-stats span { font-size: 10px; min-height: 24px; } .vote-stats strong { font-size: 28px; } .vote-stats small { font-size: 9px; }
 .vote-results-table { font-size: 11px; } .vote-results-table th, .vote-results-table td { padding: 13px 10px; } .vote-results-table thead { font-size: 10px; line-height: 1.5; }
 .vote-results-table th:first-child { width: 19%; } .vote-results-table th:nth-child(2) { width: 15%; } .vote-results-table th:nth-child(3) { width: 38%; } .vote-results-table th:nth-child(4) { width: 28%; }
 .vote-results-table caption { padding: 21px 15px; font-size: 15px; } .vote-number { width: 27px; height: 27px; border-radius: 8px; }
 .vote-share { gap: 6px; } .vote-share > span { min-width: 40px; } .vote-bar { height: 6px; }
 .vote-percentage-note { padding: 17px 15px; font-size: 10px; }
}
