body{margin:0;background:#f5f7fa;font-family:'Segoe UI',Arial,sans-serif;color:#1f2937}
.shell{max-width:780px;margin:35px auto;padding:0 20px}
.card{background:#fff;border-radius:10px;padding:28px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.field{margin-bottom:18px}.field label{display:block;margin-bottom:6px;font-weight:600}
.textbox{width:100%;box-sizing:border-box;padding:11px;border:1px solid #cbd5e1;border-radius:6px}
.btn{border:0;border-radius:6px;padding:11px 18px;font-size:15px;cursor:pointer}
.primary{background:#0f4c81;color:#fff}.yes{background:#198754;color:#fff;min-width:110px}.no{background:#b42318;color:#fff;min-width:110px}
.error{color:#b42318}.success{color:#157347;font-weight:600}.resolution{white-space:pre-wrap;line-height:1.55;margin:22px 0}

.topbar {
    background: #0f4c81;
    color: #fff;
    padding: 14px 32px;
    display: flex;
    align-items: center;
    gap: 180px;
}

.union-logo {
    height: 120px;
    width: auto;
    object-fit: contain;
}


.site-title {
    font-size: 24px;
    font-weight: 600;
}

.vote-instruction {
    margin: 24px 0 18px 0;
}

.anonymous-note {
    display: block;
    background-color: #f0f7ff;
    border-left: 4px solid #0f4c81;
    border-radius: 5px;
    padding: 14px 16px;
    font-size: 14px;
    line-height: 1.5;
}

.vote-buttons {
    display: flex;
    gap: 16px;
    padding-top: 25px;
}

.anonymous-icon {
    margin-right: 6px;
}

.yes,
.no {
    min-width: 110px;
}

.ballot-message {
    display: block;
    margin-top: 18px;
    padding: 12px 16px;
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    border-left: 4px solid #b42318;
    border-radius: 6px;
    color: #b42318;
    font-weight: 600;
    line-height: 1.5;
}

    .ballot-message:empty {
        display: none;
    }


.results {
    width: auto;
    border-collapse: collapse;
}

.results td,
    .results th {
        padding: 8px 12px;
        border-bottom: 1px solid #ddd;
        text-align: left;
    }

.results th:first-child,
        .results td:first-child {
            padding-right: 50px;
        }

.results th:nth-child(2),
        .results td:nth-child(2) {
            min-width: 140px;
        }

.admin-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-bottom: 20px;
}

    .admin-header h2 {
        margin: 0;
    }

.results-summary {
    margin-top: 20px;
}

.vote-check-ok {
    color: #198754;
    font-weight: 600;
}

.vote-check-warning {
    color: #b42318;
    font-weight: 700;
}

.vote-check-pending {
    color: #6b7280;
    font-style: italic;
}