/* ============================================================
   System Głosowań – style
   ============================================================ */

:root {
    --clr-for:     #198754;
    --clr-against: #dc3545;
    --clr-abstain: #6c757d;
    --clr-active:  #0d6efd;
}

/* Ogólne */
body { background: #f8f9fa; }

/* Karty głosowań */
.voting-card {
    transition: box-shadow .2s;
    border-left: 4px solid transparent;
}
.voting-card.status-active  { border-left-color: var(--clr-for); }
.voting-card.status-upcoming { border-left-color: var(--clr-active); }
.voting-card.status-closed  { border-left-color: var(--clr-abstain); }
.voting-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.12); }

/* Przyciski głosowania */
.vote-btn {
    min-width: 120px;
    font-size: 1rem;
    padding: .6rem 1.2rem;
    transition: transform .1s, box-shadow .1s;
}
.vote-btn:active { transform: scale(.97); }
.vote-btn.btn-for     { background: var(--clr-for);     border-color: var(--clr-for);     color: #fff; }
.vote-btn.btn-against { background: var(--clr-against); border-color: var(--clr-against); color: #fff; }
.vote-btn.btn-abstain { background: var(--clr-abstain); border-color: var(--clr-abstain); color: #fff; }
.vote-btn.btn-for:hover     { filter: brightness(1.1); }
.vote-btn.btn-against:hover { filter: brightness(1.1); }
.vote-btn.btn-abstain:hover { filter: brightness(1.1); }

/* Wybrany głos */
.vote-btn.selected { box-shadow: 0 0 0 3px rgba(255,255,255,.6), 0 0 0 5px currentColor; }

/* Paski wyników */
.result-bar-wrap { height: 28px; border-radius: 6px; overflow: hidden; background: #e9ecef; }
.result-bar-for     { background: var(--clr-for);     height: 100%; transition: width .6s ease; }
.result-bar-against { background: var(--clr-against); height: 100%; transition: width .6s ease; }
.result-bar-abstain { background: var(--clr-abstain); height: 100%; transition: width .6s ease; }

/* Liczniki */
.vote-count {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    transition: transform .3s;
}
.vote-count.bump {
    transform: scale(1.3);
    color: var(--clr-active);
}

/* Tabela podsumowania */
.summary-table th { white-space: nowrap; }

/* Countdown */
#countdown-badge {
    font-size: 1.1rem;
    letter-spacing: .05em;
}

/* Zmiana głosu – pasek odliczania */
.change-countdown {
    height: 6px;
    border-radius: 3px;
    background: #dee2e6;
    overflow: hidden;
}
.change-countdown-bar {
    height: 100%;
    background: var(--clr-active);
    transition: width .5s linear;
}

/* Admin tabela */
.admin-table td, .admin-table th { vertical-align: middle; }

/* Animacja nowego głosu */
@keyframes newVote {
    0%   { background: #fff3cd; }
    100% { background: transparent; }
}
.new-vote-row { animation: newVote 1.5s ease; }

/* Responsywne przyciski głosowania */
@media (max-width: 576px) {
    .vote-btn { min-width: 90px; font-size: .9rem; }
}
