.poll-page *, .poll-admin-page * { box-sizing: border-box; }
.poll-page, .poll-admin-page {
    --poll-bg: rgba(27, 32, 38, .93);
    --poll-card: rgba(42, 48, 55, .86);
    --poll-border: rgba(255, 255, 255, .14);
    --poll-text: #e7ebef;
    --poll-muted: #929ca6;
    --poll-primary: #72d572;
    --poll-primary-dark: #45a849;
    --poll-danger: #ff6b5e;
    --poll-warning: #ffb84d;
    max-width: 1120px;
    margin: 28px auto;
    color: var(--poll-text);
    font-family: "Segoe UI", system-ui, sans-serif;
}
.poll-shell {
    background: var(--poll-bg);
    border: 1px solid var(--poll-border);
    border-radius: 14px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(0,0,0,.28);
}
.poll-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 26px;
    border-bottom: 1px solid var(--poll-border);
}
.poll-topbar h1 { margin: 0; font-size: 25px; color: var(--poll-primary); }
.poll-topbar p { margin: 6px 0 0; color: var(--poll-muted); }
.poll-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.poll-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 40px;
    padding: 9px 15px;
    border: 0;
    border-radius: 7px;
    background: #59636e;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    font-size: 14px;
}
.poll-btn:hover { filter: brightness(1.08); color: #fff; }
.poll-btn.primary { background: var(--poll-primary-dark); }
.poll-btn.danger { background: #b94a48; }
.poll-btn.warning { background: #a86d20; }
.poll-btn.ghost { background: transparent; border: 1px solid var(--poll-border); }
.poll-content { padding: 24px 26px 30px; }
.poll-notice { padding: 12px 15px; border-radius: 7px; margin-bottom: 18px; border-left: 4px solid; }
.poll-notice.success { background: rgba(76,175,80,.12); border-color: #4caf50; color: #a9e5ab; }
.poll-notice.error { background: rgba(244,67,54,.12); border-color: #f44336; color: #ffaaa3; }
.poll-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.poll-card {
    display: block;
    padding: 19px;
    background: var(--poll-card);
    border: 1px solid var(--poll-border);
    border-radius: 10px;
    color: var(--poll-text);
    text-decoration: none;
    transition: transform .16s, border-color .16s;
}
.poll-card:hover { transform: translateY(-2px); border-color: rgba(114,213,114,.48); color: var(--poll-text); }
.poll-card h2 { font-size: 18px; margin: 10px 0 8px; color: #dfffdc; }
.poll-card p { color: var(--poll-muted); margin: 0 0 15px; line-height: 1.65; }
.poll-meta { display: flex; gap: 12px; flex-wrap: wrap; color: var(--poll-muted); font-size: 13px; }
.poll-badge { display: inline-flex; padding: 3px 9px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.poll-badge.open { background: rgba(76,175,80,.18); color: #8fe693; }
.poll-badge.closed { background: rgba(158,158,158,.18); color: #bbc1c6; }
.poll-badge.scheduled { background: rgba(255,184,77,.18); color: #ffc873; }
.poll-badge.draft { background: rgba(33,150,243,.17); color: #8ecaff; }
.poll-empty { text-align: center; padding: 70px 20px; color: var(--poll-muted); }
.poll-description { white-space: pre-wrap; line-height: 1.7; color: #ffc873; margin: 2px 0 20px; font-size: 15px; }
.poll-question {
    margin: 0 0 17px;
    padding: 20px;
    background: var(--poll-card);
    border: 1px solid var(--poll-border);
    border-radius: 10px;
}
.poll-question-title { margin-bottom: 14px; font-size: 16px; font-weight: 600; }
.poll-required { color: #ff786d; margin-left: 5px; }
.poll-hint { color: var(--poll-muted); font-size: 12px; margin: -6px 0 12px; }
.poll-choice { display: flex; align-items: flex-start; gap: 10px; padding: 10px 11px; border-radius: 7px; cursor: pointer; }
.poll-choice:hover { background: rgba(255,255,255,.045); }
.poll-choice input { margin-top: 4px; accent-color: #55b85b; }
.poll-input, .poll-textarea, .poll-select {
    width: 100%;
    padding: 11px 12px;
    border-radius: 7px;
    border: 1px solid var(--poll-border);
    background: rgba(20,24,28,.68);
    color: var(--poll-text);
    outline: none;
}
.poll-input:focus, .poll-textarea:focus, .poll-select:focus { border-color: rgba(114,213,114,.7); }
.poll-textarea { min-height: 120px; resize: vertical; }
.poll-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.poll-field { margin-bottom: 17px; }
.poll-field label { display: block; margin-bottom: 7px; color: #cfd6dc; font-size: 14px; }
.poll-checkbox { display: flex; gap: 8px; align-items: center; color: #cfd6dc; }
.poll-checkbox input { accent-color: #55b85b; }
.poll-submitbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; }
.poll-progress { height: 10px; background: rgba(255,255,255,.08); border-radius: 20px; overflow: hidden; margin: 8px 0 4px; }
.poll-progress > span { display: block; height: 100%; background: linear-gradient(90deg,#49a94e,#82db75); }
.poll-result-option { margin: 14px 0; }
.poll-result-line { display: flex; justify-content: space-between; gap: 20px; font-size: 14px; }
.poll-result-count { color: var(--poll-muted); white-space: nowrap; }
.poll-table-wrap { overflow-x: auto; }
.poll-table { width: 100%; border-collapse: collapse; }
.poll-table th, .poll-table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--poll-border); vertical-align: middle; }
.poll-table th { color: #aeb8c1; font-size: 13px; }
.poll-table td { color: #dce1e5; }
.poll-admin-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.poll-builder-question { padding: 18px; border: 1px solid var(--poll-border); border-radius: 10px; background: var(--poll-card); margin-bottom: 15px; }
.poll-builder-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 13px; }
.poll-builder-head strong { color: var(--poll-primary); }
.poll-option-row { display: flex; gap: 8px; margin-top: 9px; }
.poll-option-row .poll-input { flex: 1; }
.poll-small-btn { border: 0; border-radius: 6px; min-width: 38px; background: #5b6670; color: #fff; cursor: pointer; }
.poll-danger-text { color: #ff9d95; }
.poll-muted { color: var(--poll-muted); }
.poll-text-answer { padding: 12px; background: rgba(0,0,0,.16); border-radius: 7px; margin-top: 8px; }
.poll-text-answer small { color: var(--poll-muted); display: block; margin-bottom: 5px; }
@media (max-width: 760px) {
    .poll-page, .poll-admin-page { margin: 12px; }
    .poll-topbar { align-items: flex-start; flex-direction: column; padding: 18px; }
    .poll-content { padding: 18px; }
    .poll-grid, .poll-form-row { grid-template-columns: 1fr; }
    .poll-submitbar { align-items: stretch; flex-direction: column; }
    .poll-btn { width: 100%; }
}

/* 矩阵评分题 */
.poll-subsection-title {
    margin: 15px 0 10px;
    color: #dfe8ee;
    font-size: 14px;
    font-weight: 600;
}
.poll-option-row.matrix-option .poll-score-input,
.poll-score-input {
    flex: 0 0 120px;
    max-width: 120px;
}
.poll-matrix-wrap,
.poll-matrix-result-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--poll-border);
    border-radius: 8px;
}
.poll-matrix {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    table-layout: fixed;
    background: rgba(18, 22, 27, .34);
}
.poll-matrix th,
.poll-matrix td {
    border-right: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding: 12px 10px;
    text-align: center;
    vertical-align: middle;
}
.poll-matrix thead th {
    color: #dce4ea;
    font-size: 13px;
    font-weight: 600;
    background: rgba(255,255,255,.07);
}
.poll-matrix thead th:first-child,
.poll-matrix tbody th {
    width: 180px;
    text-align: left;
}
.poll-matrix tbody th {
    color: #e5ebef;
    font-size: 14px;
    font-weight: 500;
    background: rgba(255,255,255,.035);
}
.poll-matrix tbody tr:nth-child(even) th,
.poll-matrix tbody tr:nth-child(even) td {
    background-color: rgba(255,255,255,.025);
}
.poll-matrix tr:last-child th,
.poll-matrix tr:last-child td { border-bottom: 0; }
.poll-matrix th:last-child,
.poll-matrix td:last-child { border-right: 0; }
.poll-matrix-radio {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    cursor: pointer;
}
.poll-matrix-radio input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.poll-matrix-radio span {
    display: block;
    width: 22px;
    height: 22px;
    border: 2px solid #8b969f;
    border-radius: 50%;
    background: rgba(0,0,0,.12);
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.poll-matrix-radio:hover span {
    border-color: #88d78b;
}
.poll-matrix-radio input:focus + span {
    box-shadow: 0 0 0 3px rgba(85,184,91,.2);
}
.poll-matrix-radio input:checked + span {
    border-color: #62c567;
    background: radial-gradient(circle, #62c567 0 38%, transparent 42%);
}
.poll-matrix-radio input:disabled + span {
    cursor: default;
    opacity: .65;
}
.poll-matrix-results td strong,
.poll-matrix-results td small {
    display: block;
}
.poll-matrix-results td strong { color: #eaf3e9; font-size: 15px; }
.poll-matrix-results td small { color: var(--poll-muted); margin-top: 3px; font-size: 11px; }
.poll-matrix-results .poll-average {
    color: #9be39d;
    font-size: 16px;
    font-weight: 700;
}

@media (max-width: 760px) {
    .poll-option-row.matrix-option { flex-wrap: wrap; }
    .poll-option-row.matrix-option .poll-score-input { flex: 1 1 110px; max-width: none; }
    .poll-matrix { min-width: 680px; }
}


/* v1.3：游客可浏览，登录后投票 */
.poll-notice.info {
    background: rgba(33, 150, 243, 0.12);
    border-left: 3px solid #2196f3;
    color: #d9ecff;
}

.poll-inline-link {
    margin-left: 8px;
    color: #90caf9;
    font-weight: 600;
    text-decoration: underline;
}

.poll-inline-link:hover {
    color: #ffffff;
}

/* v1.4：后台重置、逐账号答题明细与统一按钮尺寸 */
.poll-result-actions {
    align-items: stretch;
}
.poll-result-actions > a,
.poll-result-actions > form {
    display: inline-flex;
    flex: 0 0 118px;
    width: 118px;
    margin: 0;
    padding: 0;
}
.poll-result-actions .poll-btn {
    width: 100%;
    min-width: 0;
    height: 42px;
    min-height: 42px;
    padding: 8px 10px;
    line-height: 1;
    white-space: nowrap;
    box-sizing: border-box;
}
.poll-submission-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 28px 0 12px;
}
.poll-submission-heading h2 {
    margin: 0 0 5px;
    font-size: 20px;
    color: #e6ecef;
}
.poll-submission-heading p {
    margin: 0;
}
.poll-detail-batch-actions {
    flex: 0 0 auto;
}
.poll-detail-batch-actions .poll-btn,
.poll-detail-toggle {
    min-height: 36px;
    padding: 7px 12px;
}
.poll-submission-table th:last-child,
.poll-submission-table td:last-child {
    width: 112px;
    text-align: center;
}
.poll-submission-summary-row td {
    background: rgba(255,255,255,.012);
}
.poll-submission-detail-row td {
    padding: 0;
    background: rgba(5, 8, 11, .28);
}
.poll-submission-detail-row[hidden] {
    display: none;
}
.poll-submission-detail {
    padding: 16px;
    border-left: 3px solid rgba(114, 213, 114, .58);
}
.poll-user-answer-block {
    padding: 14px;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 8px;
    background: rgba(255,255,255,.025);
}
.poll-user-answer-block + .poll-user-answer-block {
    margin-top: 12px;
}
.poll-user-answer-title {
    margin-bottom: 10px;
    color: #dfffdc;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.55;
}
.poll-user-answer-value {
    padding: 10px 12px;
    border-radius: 6px;
    background: rgba(0,0,0,.16);
    color: #e2e7eb;
    line-height: 1.6;
}
.poll-user-matrix-wrap {
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 7px;
}
.poll-user-matrix-table th,
.poll-user-matrix-table td {
    padding: 9px 10px;
}
.poll-user-matrix-table th:first-child,
.poll-user-matrix-table td:first-child {
    width: 48%;
}
.poll-user-matrix-table th:nth-child(2),
.poll-user-matrix-table td:nth-child(2) {
    width: 34%;
}
.poll-user-matrix-table th:last-child,
.poll-user-matrix-table td:last-child {
    width: 18%;
    text-align: center;
}
.poll-score-value {
    color: #9be39d !important;
    font-weight: 700;
}
.poll-empty-compact {
    padding: 34px 20px;
}

@media (max-width: 760px) {
    .poll-result-actions > a,
    .poll-result-actions > form {
        flex: 1 1 100%;
        width: 100%;
    }
    .poll-submission-heading {
        align-items: stretch;
        flex-direction: column;
    }
    .poll-detail-batch-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .poll-submission-table {
        min-width: 760px;
    }
}

/* v1.5：已有答卷后仍可编辑运行设置，题目结构只读预览 */
.poll-locked-questions {
    display: grid;
    gap: 14px;
    margin-top: 12px;
}

.poll-locked-question {
    margin-bottom: 0;
    background: rgba(34, 40, 46, 0.58);
}

.poll-locked-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.poll-locked-options .poll-badge {
    position: static;
    display: inline-flex;
}

.poll-locked-matrix-preview {
    margin-top: 12px;
}

.poll-locked-matrix-preview td:last-child {
    min-width: 280px;
    line-height: 1.65;
}

@media (max-width: 768px) {
    .poll-locked-matrix-preview td:last-child {
        min-width: 220px;
    }
}


/* v1.7：矩阵评分原生 Canvas 分组柱状图 */
.poll-chart-card {
    position: relative;
    margin-top: 2px;
    border: 1px solid var(--poll-border);
    border-radius: 10px;
    background: rgba(18, 22, 27, .38);
    overflow: hidden;
}
.poll-chart-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 14px 10px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.poll-chart-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 15px;
    min-width: 0;
}
.poll-chart-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #cfd6dc;
    font-size: 12px;
    line-height: 1.25;
}
.poll-chart-legend-item i {
    display: inline-block;
    width: 21px;
    height: 11px;
    border-radius: 1px;
    flex: 0 0 auto;
}
.poll-chart-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
}
.poll-chart-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 6px;
    background: rgba(255,255,255,.035);
    color: #9ecaff;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
    white-space: nowrap;
}
.poll-chart-action:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
}
.poll-chart-scroll {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-color: rgba(255,255,255,.28) rgba(255,255,255,.07);
    scrollbar-width: thin;
}
.poll-matrix-chart-canvas {
    display: block;
    max-width: none;
}
.poll-chart-tooltip {
    position: absolute;
    z-index: 8;
    min-width: 150px;
    max-width: 260px;
    padding: 9px 11px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 7px;
    background: rgba(7, 10, 13, .94);
    box-shadow: 0 8px 24px rgba(0,0,0,.38);
    color: #e7ebef;
    font-size: 12px;
    line-height: 1.45;
    pointer-events: none;
}
.poll-chart-tooltip strong,
.poll-chart-tooltip span {
    display: block;
}
.poll-chart-tooltip strong {
    margin-bottom: 4px;
    color: #fff;
}
.poll-chart-tooltip span i {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: 6px;
    border-radius: 2px;
}
.poll-chart-table {
    margin-top: 12px;
}
.poll-chart-table[hidden] {
    display: none;
}

@media (max-width: 760px) {
    .poll-chart-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .poll-chart-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .poll-chart-action {
        width: 100%;
    }
}

/* v1.8：结果操作、单账号重置与综合汇总 */
.poll-result-actions > a,
.poll-result-actions > form,
.poll-submission-actions > button,
.poll-submission-actions > form {
    width: 100%;
    min-width: 0;
    margin: 0;
}
.poll-inline-action-form {
    display: flex;
    margin: 0;
    padding: 0;
}
.poll-inline-action-form .poll-btn,
.poll-result-actions .poll-btn,
.poll-submission-actions .poll-btn {
    width: 100%;
    min-width: 0;
}
.poll-result-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(132px, 1fr));
    gap: 10px;
    margin-bottom: 18px;
    align-items: stretch;
}
.poll-result-actions > a,
.poll-result-actions > form {
    display: flex;
    flex: none;
    width: auto;
}
.poll-result-actions .poll-btn {
    height: 44px;
    min-height: 44px;
}
.poll-question-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.poll-question-heading .poll-question-title {
    flex: 1 1 auto;
    min-width: 0;
    margin-bottom: 0;
    line-height: 1.55;
}
.poll-question-heading .poll-chart-launch {
    flex: 0 0 auto;
}
.poll-result-view-actions {
    display: flex;
    justify-content: flex-end;
    margin: 0 0 12px;
}
.poll-chart-launch {
    display: inline-flex;
}
.poll-chart-launch > script {
    display: none;
}
.poll-chart-open-btn {
    min-width: 132px;
    height: 42px;
    min-height: 42px;
    padding: 9px 16px;
    white-space: nowrap;
    background: var(--poll-primary-dark);
    border: 1px solid rgba(114, 213, 114, .48);
    color: #fff;
    box-shadow: 0 0 0 1px rgba(69, 168, 73, .18), 0 4px 12px rgba(0, 0, 0, .18);
}
.poll-chart-open-btn:hover,
.poll-chart-open-btn:focus {
    background: #4fb454;
    border-color: rgba(143, 230, 147, .72);
    color: #fff;
}
.poll-default-result-table {
    margin-top: 0;
}
.poll-summary-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 15px;
}
.poll-summary-heading .poll-question-title {
    margin-bottom: 6px;
}
.poll-overall-summary {
    border-color: rgba(114, 213, 114, .38);
    background: linear-gradient(180deg, rgba(52, 74, 57, .30), rgba(42, 48, 55, .86));
}
.poll-summary-table-wrap {
    border: 1px solid var(--poll-border);
    border-radius: 8px;
}
.poll-summary-table {
    min-width: 820px;
}
.poll-summary-table th,
.poll-summary-table td {
    text-align: center;
    white-space: nowrap;
}
.poll-summary-table th:first-child,
.poll-summary-table td:first-child {
    text-align: left;
    position: sticky;
    left: 0;
    z-index: 1;
    background: #252c32;
}
.poll-summary-table .poll-total-score {
    color: #ffd27d;
    font-size: 16px;
    font-weight: 700;
}
.poll-summary-table .poll-total-score small {
    color: var(--poll-muted);
    font-size: 11px;
    font-weight: 400;
}
.poll-submission-table th:last-child,
.poll-submission-table td:last-child {
    width: 250px;
    min-width: 250px;
}
.poll-submission-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.poll-submission-actions .poll-btn {
    min-height: 38px;
    padding: 7px 9px;
    white-space: nowrap;
}
.poll-user-detail-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,.10);
}
.poll-user-detail-footer .poll-inline-action-form {
    flex: 0 0 auto;
}

.poll-modal-open {
    overflow: hidden;
}
.poll-chart-modal[hidden] {
    display: none;
}
.poll-chart-modal {
    position: fixed;
    z-index: 10050;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
}
.poll-chart-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .72);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.poll-chart-dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 96vw);
    max-height: 92vh;
    overflow: auto;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 13px;
    background: #171d22;
    color: #e7ebef;
    box-shadow: 0 24px 80px rgba(0,0,0,.55);
}
.poll-chart-dialog-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255,255,255,.11);
}
.poll-chart-dialog-header h2 {
    margin: 0;
    color: #dfffdc;
    font-size: 20px;
}
.poll-chart-dialog-header p {
    margin: 5px 0 0;
    color: #929ca6;
    font-size: 13px;
}
.poll-chart-dialog-actions {
    display: flex;
    gap: 9px;
    flex: 0 0 auto;
}
.poll-chart-modal-card {
    margin: 18px;
    overflow: visible;
}
.poll-chart-modal-card .poll-chart-scroll {
    min-height: 390px;
}
.poll-chart-modal-card .poll-chart-tooltip {
    z-index: 12;
}

@media (max-width: 900px) {
    .poll-result-actions {
        grid-template-columns: repeat(2, minmax(132px, 1fr));
    }
}

@media (max-width: 760px) {
    .poll-result-actions {
        grid-template-columns: 1fr 1fr;
    }
    .poll-result-actions > a,
    .poll-result-actions > form {
        width: 100%;
    }
    .poll-summary-heading,
    .poll-question-heading,
    .poll-user-detail-footer,
    .poll-chart-dialog-header {
        flex-direction: column;
        align-items: stretch;
    }
    .poll-summary-heading .poll-chart-launch,
    .poll-summary-heading .poll-btn,
    .poll-question-heading .poll-chart-launch,
    .poll-question-heading .poll-btn,
    .poll-user-detail-footer .poll-inline-action-form,
    .poll-chart-dialog-actions,
    .poll-chart-dialog-actions .poll-btn {
        width: 100%;
    }
    .poll-chart-dialog-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .poll-chart-modal {
        padding: 8px;
    }
    .poll-chart-dialog {
        width: 100%;
        max-height: 96vh;
    }
    .poll-chart-modal-card {
        margin: 10px;
    }
    .poll-submission-table {
        min-width: 900px;
    }
}


/* 后台投票列表 */
.poll-admin-list-wrap {
    overflow-x: visible;
}
.poll-admin-list-table {
    width: 100%;
    table-layout: fixed;
}
.poll-admin-list-table .poll-col-title { width: 33%; }
.poll-admin-list-table .poll-col-status { width: 8%; }
.poll-admin-list-table .poll-col-count { width: 8%; }
.poll-admin-list-table .poll-col-submissions { width: 9%; }
.poll-admin-list-table .poll-col-creator { width: 10%; }
.poll-admin-list-table .poll-col-actions { width: 32%; }
.poll-admin-list-table th,
.poll-admin-list-table td {
    padding: 12px 8px;
    vertical-align: middle;
}
.poll-admin-poll-cell {
    min-width: 0;
    padding-right: 18px !important;
    overflow: hidden;
    white-space: normal !important;
}
.poll-admin-poll-title {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    line-height: 1.4;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.poll-admin-poll-cell small {
    display: block;
    margin-top: 3px;
    line-height: 1.2;
}
.poll-cell-center {
    text-align: center !important;
}
.poll-admin-actions-cell {
    overflow: hidden;
}
.poll-admin-list-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
}
.poll-admin-list-actions > a,
.poll-admin-list-actions > form {
    width: 100%;
    min-width: 0;
    margin: 0;
}
.poll-admin-list-actions .poll-btn {
    width: 100%;
    min-width: 0;
    height: 40px;
    min-height: 40px;
    padding: 6px;
    font-size: 13px;
    line-height: 1.1;
    white-space: nowrap;
}
@media (max-width: 980px) {
    .poll-admin-list-wrap {
        overflow-x: auto;
    }
    .poll-admin-list-table {
        min-width: 900px;
    }
}

/* v1.9.1 中英文切换：等宽分段按钮 */
.poll-topbar-tools {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
}
.poll-language-switch {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 132px;
    height: 34px;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--poll-border);
    border-radius: 7px;
    background: rgba(10, 14, 18, .46);
}
.poll-language-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 0;
    color: var(--poll-muted);
    background: transparent;
    box-shadow: none !important;
    outline: none;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}
.poll-language-link + .poll-language-link {
    border-left: 1px solid var(--poll-border);
}
.poll-language-link:hover {
    background: rgba(255, 255, 255, .05);
    color: #fff;
}
.poll-language-link.active {
    background: var(--poll-primary-dark);
    color: #fff;
    cursor: default;
}
.poll-language-link:focus {
    outline: none;
    box-shadow: none !important;
}
.poll-language-link:focus-visible {
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .28) !important;
}
.poll-runtime-meta {
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.poll-runtime-times {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.poll-change-policy {
    margin-left: auto;
    font-weight: 700;
}
.poll-change-policy.allowed { color: #4caf50; }
.poll-change-policy.blocked { color: #ff6b6b; }
.poll-i18n-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.poll-bilingual-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) 120px 38px;
    gap: 8px;
    margin-top: 9px;
    align-items: center;
}
.poll-bilingual-row.no-score {
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) 38px;
}
.poll-translation-input {
    border-color: rgba(80, 150, 220, .35);
}
.poll-locked-translation {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed var(--poll-border);
}
.poll-locked-translation .poll-field { margin-bottom: 10px; }
.poll-locked-translation-table input { min-width: 220px; }
@media (max-width: 760px) {
    .poll-topbar-tools { width: 100%; align-items: stretch; }
    .poll-language-switch { align-self: flex-end; }
    .poll-runtime-meta { align-items: flex-start; }
    .poll-change-policy { margin-left: 0; width: 100%; }
    .poll-i18n-grid { grid-template-columns: 1fr; }
    .poll-bilingual-row,
    .poll-bilingual-row.no-score { grid-template-columns: 1fr; }
    .poll-bilingual-row .poll-small-btn { min-height: 38px; }
}
