.csp-ce-ballot-public-id {
    color: #667085;
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
    font-weight: 650;
    margin: 3px 0;
}

.csp-ce-ballot-program-snapshot {
    white-space: pre-line;
}

.csp-ce-ballot-program-link {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 7px;
    padding: 6px 9px;
    border: 1px solid #d8d0f7;
    border-radius: 9px;
    color: #5831c9;
    font-size: 11px;
    font-weight: 750;
    text-decoration: none;
}

.csp-ce-ballot-program-link:hover,
.csp-ce-ballot-program-link:focus-visible {
    background: #f4f1ff;
    outline: 2px solid #7359cd;
    outline-offset: 2px;
}

.csp-ce-ballot-candidate__links {
    display: flex;
    flex: 0 0 auto !important;
    flex-direction: column;
    gap: 6px;
    align-items: flex-end;
}

.csp-ce-ballot-candidate__links a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #d8d0f7;
    border-radius: 10px;
    background: #fff;
    color: #5831c9;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.csp-ce-ballot-candidate__links a:hover,
.csp-ce-ballot-candidate__links a:focus-visible {
    border-color: #8f72e7;
    background: #f4f1ff;
    color: #4024a7;
}

.csp-ce-results__heading h4,
.csp-ce-results__heading p {
    margin: 0;
}

.csp-ce-results__heading p {
    margin-top: 4px;
    color: #687087;
    font-size: 12px;
}

.csp-ce-results__bars {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.csp-ce-result-row {
    padding: 12px;
    border: 1px solid #dfd9f5;
    border-radius: 13px;
    background: #fff;
}

.csp-ce-result-row > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
    font-size: 12px;
}

.csp-ce-result-row > div span {
    color: #5831c9;
    font-weight: 800;
}

.csp-ce-result-row > i {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 99px;
    background: #ece9f7;
}

.csp-ce-result-row > i > b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #6e43e8, #0d9f91);
}

.csp-ce-results__protocol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.csp-ce-results__protocol span {
    padding: 6px 9px;
    border-radius: 99px;
    background: #effaf7;
    color: #08766c;
    font-size: 11px;
    font-weight: 750;
}

.csp-ce-results__downloads {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.csp-ce-results__downloads a {
    padding: 8px 10px;
    border: 1px solid #d8d0f7;
    border-radius: 9px;
    text-decoration: none;
}

@media (max-width: 620px) {
    .csp-ce-ballot-candidate { align-items: flex-start; flex-wrap: wrap; }
    .csp-ce-ballot-candidate__links { width: 100%; align-items: stretch; padding-left: 70px; }
    .csp-ce-ballot-candidate__links a { justify-content: center; }
}

.csp-ce-ballot__document {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid #d8d1ee;
    border-radius: 11px;
    background: #f8f6ff;
    color: #5431c7;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.csp-ce-ballot__document:hover,
.csp-ce-ballot__document:focus-visible {
    border-color: #b9aae8;
    background: #f1edff;
    color: #4024a7;
}

[data-ce-identity-action] a {
    display: inline-block;
    text-align: center;
    text-decoration: none;
}

.csp-ce-verifier {
    border-top: 1px solid #d8d8ee;
    margin-top: 18px;
    padding-top: 16px;
}

.csp-ce-verifier label,
.csp-ce-verifier strong,
.csp-ce-verifier span {
    display: block;
}

.csp-ce-verifier span {
    color: #687087;
    font-size: 12px;
    margin: 4px 0 9px;
}

.csp-ce-verifier input {
    box-sizing: border-box;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .08em;
    margin: 0 8px 10px 0;
    max-width: 360px;
    text-transform: uppercase;
    width: 100%;
}
