/* NSP Awards – Simplified Voting stylesheet — S13G
 * All visual values reference --nsp-awards-simplified-* CSS variables emitted
 * by StyleRenderer::renderStyleTag() on .nsp-awards-voting, with theme-safe
 * fallbacks. Internal layout/spacing variables are scoped to .nsp-awards-voting
 * only — no :root declarations to prevent theme leakage.
 */

/* Containment — also declares internal spacing/layout defaults scoped here only */
.nsp-awards-voting {
    /* Internal variables not controlled by StyleRenderer */
    --nsp-awards-color-filter-active-bg:   #1a1a1a;
    --nsp-awards-color-filter-active-text: #ffffff;
    --nsp-awards-color-warning:            #b45309;
    --nsp-awards-border-width:             1px;
    --nsp-awards-spacing-field:            1rem;
    --nsp-awards-spacing-category:         1.25rem;
    --nsp-awards-spacing-filter-gap:       0.5rem;
    --nsp-awards-spacing-inner:            1rem;
    --nsp-awards-spacing-nominee-gap:      0.5rem;

    box-sizing: border-box;
    color:       var(--nsp-awards-simplified-text,        inherit);
    font-family: var(--nsp-awards-simplified-font-family, inherit);
    font-size:   var(--nsp-awards-simplified-font-size,   1rem);
    max-width: 100%;
    overflow-x: hidden;
}

.nsp-awards-intake-form,
.nsp-awards-ballot-form,
.nsp-awards-review-actions {
    max-width: 100%;
}

/* Fields */
.nsp-awards-field {
    display: flex;
    flex-direction: column;
    margin-bottom: var(--nsp-awards-spacing-field);
    max-width: 100%;
}

.nsp-awards-input {
    border: var(--nsp-awards-border-width) solid var(--nsp-awards-simplified-form-border, currentColor);
    border-radius: var(--nsp-awards-simplified-btn-radius, 4px);
    box-sizing: border-box;
    font-family: var(--nsp-awards-simplified-font-family, inherit);
    font-size:   var(--nsp-awards-simplified-font-size,   1rem);
    max-width: 100%;
    padding: 0.375rem 0.75rem;
    width: 100%;
}

/* Focus visibility – WCAG 2.4.11 */
.nsp-awards-button:focus-visible,
.nsp-awards-input:focus-visible,
.nsp-awards-checkbox:focus-visible,
.nsp-awards-nominee-radio:focus-visible,
.nsp-awards-filter-btn:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 2px;
}

/* Buttons */
.nsp-awards-button {
    background-color: var(--nsp-awards-simplified-btn-bg,     #1a1a1a);
    border: var(--nsp-awards-border-width) solid var(--nsp-awards-simplified-btn-border, #1a1a1a);
    border-radius: var(--nsp-awards-simplified-btn-radius,    4px);
    box-sizing: border-box;
    color:            var(--nsp-awards-simplified-btn-text,   #ffffff);
    cursor: pointer;
    display: inline-block;
    font-family: var(--nsp-awards-simplified-font-family, inherit);
    font-size:   var(--nsp-awards-simplified-font-size,   1rem);
    max-width: 100%;
    padding: 0.5rem 1rem;
}

/* Parish filter bar */
.nsp-awards-ballot-filters {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nsp-awards-spacing-filter-gap);
    max-width: 100%;
}

.nsp-awards-filter-btn {
    flex-shrink: 0;
}

.nsp-awards-filter-active {
    background-color: var(--nsp-awards-color-filter-active-bg);
    color: var(--nsp-awards-color-filter-active-text);
}

/* Ballot categories */
.nsp-awards-ballot-category {
    border: var(--nsp-awards-border-width) solid var(--nsp-awards-simplified-form-border, currentColor);
    border-radius: var(--nsp-awards-simplified-btn-radius, 4px);
    box-sizing: border-box;
    margin-bottom: var(--nsp-awards-spacing-category);
    max-width: 100%;
    padding: var(--nsp-awards-spacing-inner);
    width: 100%;
}

/* Nominee radios */
.nsp-awards-nominee-label {
    align-items: center;
    display: flex;
    gap: var(--nsp-awards-spacing-nominee-gap);
    max-width: 100%;
}

/* Admin tables */
.nsp-awards-ballot-table,
.nsp-awards-votes-table {
    max-width: 100%;
    width: 100%;
}

/* Vote-warning icon */
.nsp-awards-vote-warning {
    color: var(--nsp-awards-color-warning);
}

/* Hidden honeypot — never visible to users */
.nsp-awards-hp {
    display: none !important;
}

/* 390px viewport — no horizontal overflow */
@media screen and (max-width: 390px) {
    .nsp-awards-voting,
    .nsp-awards-ballot-filters,
    .nsp-awards-ballot-category,
    .nsp-awards-intake-form,
    .nsp-awards-ballot-form,
    .nsp-awards-review-actions {
        max-width: 100%;
        overflow-x: hidden;
        width: 100%;
    }

    .nsp-awards-button {
        display: block;
        width: 100%;
    }
}
