/* ============================================================
   Wahl
   ============================================================ */


/* ------------------------------------------------------------
   Wahl im Verfahrensschritt
   ------------------------------------------------------------ */

.verfahrensschritt-wahlen {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.75rem;
}


.verfahrensschritt-wahl {
    overflow: hidden;

    border: 1px solid var(--farbe-rahmen);
    border-radius: 8px;

    background-color: var(--farbe-oberflaeche);
}


.verfahrensschritt-wahl-kopf {
    padding: 0.7rem 1rem;

    border-bottom: 1px solid var(--farbe-rahmen);

    background-color: var(--farbe-hintergrund);
}


.verfahrensschritt-wahl-label {
    color: var(--farbe-text-nebenbei);

    font-size: 0.8rem;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: 0.04em;
}


/* ------------------------------------------------------------
   Ergebnis im Verfahrensschritt
   ------------------------------------------------------------ */

.verfahrensschritt-wahl-ergebnis {
    padding: 1rem;
}


.verfahrensschritt-wahl-ergebnis-text {
    width: 100%;

    padding: 0;

    border: 0;

    background: transparent;

    color: var(--farbe-text);

    font: inherit;
    font-size: 1rem;
    font-weight: 700;

    text-align: left;

    cursor: pointer;
}


.verfahrensschritt-wahl-ergebnis-text:hover {
    color: var(--farbe-primaer);
}


.verfahrensschritt-wahl-statistik {
    display: flex;
    flex-wrap: wrap;

    gap: 0.75rem;

    margin-top: 0.6rem;

    color: var(--farbe-text-nebenbei);

    font-size: 0.85rem;
}


/* ------------------------------------------------------------
   Bearbeiten
   ------------------------------------------------------------ */

.verfahrensschritt-wahl-bearbeiten {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;

    padding: 0.8rem 1rem;

    border: 0;
    border-top: 1px solid var(--farbe-rahmen);

    background: transparent;

    color: var(--farbe-text);

    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;

    text-align: left;

    cursor: pointer;
}


.verfahrensschritt-wahl-bearbeiten:hover {
    background-color: var(--farbe-hintergrund);
    color: var(--farbe-primaer);
}


/* ============================================================
   Wahl-Modal
   ============================================================ */

.wahl-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 1.5rem;

    background-color: rgba(0, 0, 0, 0.45);
}


.wahl-modal[hidden] {
    display: none;
}


.wahl-fenster {
    width: min(100%, 680px);
    max-height: calc(100vh - 3rem);

    overflow: hidden;

    background-color: var(--farbe-oberflaeche);

    border: 1px solid var(--farbe-rahmen);
    border-radius: 12px;

    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
}


/* ------------------------------------------------------------
   Kopf
   ------------------------------------------------------------ */

.wahl-kopf {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;

    gap: 1rem;

    padding: 1.25rem 1.5rem;

    border-bottom: 1px solid var(--farbe-rahmen);
}


.wahl-kategorie {
    display: block;

    margin-bottom: 0.2rem;

    color: var(--farbe-text-nebenbei);

    font-size: 0.8rem;
    font-weight: 600;

    text-transform: uppercase;
    letter-spacing: 0.06em;
}


.wahl-kopf h2 {
    margin: 0;

    color: var(--farbe-text);

    font-size: 1.35rem;
}


.wahl-schliessen {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 2rem;
    height: 2rem;

    padding: 0;

    border: 0;
    border-radius: 6px;

    background: transparent;

    color: var(--farbe-text-nebenbei);

    font-size: 1.5rem;

    cursor: pointer;
}


.wahl-schliessen:hover {
    background-color: var(--farbe-hintergrund);
    color: var(--farbe-text);
}


/* ------------------------------------------------------------
   Inhalt
   ------------------------------------------------------------ */

.wahl-inhalt {
    overflow-y: auto;

    padding: 1.5rem;
}


.wahl-feld {
    display: flex;
    flex-direction: column;

    gap: 0.35rem;
}


.wahl-feld label {
    color: var(--farbe-text);

    font-size: 0.85rem;
    font-weight: 600;
}


.wahl-feld input {
    width: 100%;

    box-sizing: border-box;

    padding: 0.7rem 0.8rem;

    border: 1px solid var(--farbe-rahmen);
    border-radius: 7px;

    background-color: var(--farbe-oberflaeche);

    color: var(--farbe-text);

    font: inherit;
}


.wahl-feld input:focus {
    outline: none;

    border-color: var(--farbe-primaer);

    box-shadow: 0 0 0 2px rgba(31, 95, 84, 0.12);
}


/* ------------------------------------------------------------
   Stimmen
   ------------------------------------------------------------ */

.wahl-stimmen {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 0.75rem;

    margin-top: 1rem;
}


/* ------------------------------------------------------------
   Nicht abgegeben
   ------------------------------------------------------------ */

.wahl-nicht-abgegeben {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-top: 1rem;
    padding: 0.8rem 1rem;

    border-radius: 7px;

    background-color: var(--farbe-hintergrund);

    color: var(--farbe-text-nebenbei);

    font-size: 0.9rem;
}


.wahl-nicht-abgegeben strong {
    color: var(--farbe-text);
}


/* ------------------------------------------------------------
   Fehler
   ------------------------------------------------------------ */

.wahl-fehler {
    margin-top: 1rem;
    padding: 0.8rem 1rem;

    border: 1px solid #b02a37;
    border-radius: 7px;

    background-color: rgba(176, 42, 55, 0.08);

    color: #b02a37;

    font-size: 0.9rem;
}


/* ------------------------------------------------------------
   Fußbereich
   ------------------------------------------------------------ */

.wahl-fuss {
    display: flex;
    justify-content: space-between;
    align-items: center;

    gap: 1rem;

    padding: 1rem 1.5rem;

    border-top: 1px solid var(--farbe-rahmen);
}


.wahl-fuss-rechts {
    display: flex;
    gap: 0.6rem;
}


.wahl-abbrechen,
.wahl-loeschen,
.wahl-speichern {
    padding: 0.6rem 1rem;

    border-radius: 7px;

    font: inherit;
    font-weight: 600;

    cursor: pointer;
}


.wahl-abbrechen {
    border: 1px solid var(--farbe-rahmen);

    background-color: var(--farbe-oberflaeche);

    color: var(--farbe-text);
}


.wahl-speichern {
    border: 1px solid var(--farbe-primaer);

    background-color: var(--farbe-primaer);

    color: white;
}


.wahl-loeschen {
    border: 1px solid #b02a37;

    background-color: transparent;

    color: #b02a37;
}


/* ============================================================
   Öffentliches Wahlergebnis
   ============================================================ */

.wahl-ergebnis-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 1.5rem;

    background-color: rgba(0, 0, 0, 0.45);
}


.wahl-ergebnis-modal[hidden] {
    display: none;
}


.wahl-ergebnis-fenster {
    width: min(100%, 760px);
    max-height: calc(100vh - 3rem);

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background-color: var(--farbe-oberflaeche);

    border: 1px solid var(--farbe-rahmen);
    border-radius: 12px;

    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
}


/* ------------------------------------------------------------
   Kopf
   ------------------------------------------------------------ */

.wahl-ergebnis-kopf {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;

    padding: 1.25rem 1.5rem;

    border-bottom: 1px solid var(--farbe-rahmen);
}


.wahl-ergebnis-kategorie {
    display: block;

    margin-bottom: 0.2rem;

    color: var(--farbe-text-nebenbei);

    font-size: 0.8rem;
    font-weight: 600;

    text-transform: uppercase;
    letter-spacing: 0.06em;
}


.wahl-ergebnis-kopf h2 {
    margin: 0;

    color: var(--farbe-text);

    font-size: 1.35rem;
}


.wahl-ergebnis-schliessen {
    width: 2rem;
    height: 2rem;

    padding: 0;

    border: 0;
    border-radius: 6px;

    background: transparent;

    color: var(--farbe-text-nebenbei);

    font-size: 1.5rem;

    cursor: pointer;
}


/* ------------------------------------------------------------
   Inhalt
   ------------------------------------------------------------ */

.wahl-ergebnis-inhalt {
    overflow-y: auto;

    padding: 1.5rem;
}


.wahl-ergebnis-label {
    display: block;

    margin-bottom: 0.3rem;

    color: var(--farbe-text-nebenbei);

    font-size: 0.8rem;
    font-weight: 600;
}


.wahl-ergebnis-person {
    padding: 1rem;

    border-radius: 8px;

    background-color: var(--farbe-hintergrund);
}


.wahl-ergebnis-person strong {
    color: var(--farbe-text);

    font-size: 1.1rem;
}


/* ------------------------------------------------------------
   Ergebnis
   ------------------------------------------------------------ */

.wahl-ergebnis-status {
    margin-top: 1rem;
}


.wahl-ergebnis-status-text {
    display: block;

    padding: 1rem;

    border-radius: 8px;

    background-color: var(--farbe-hintergrund);

    color: var(--farbe-text);

    font-size: 1.05rem;

    text-align: center;
}


.wahl-ergebnis-status-text.ist-angenommen {
    color: #198754;
}


.wahl-ergebnis-status-text.ist-abgelehnt {
    color: #b02a37;
}


/* ------------------------------------------------------------
   Statistik
   ------------------------------------------------------------ */

.wahl-ergebnis-statistik {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 0.75rem;

    margin-top: 1rem;
}


.wahl-ergebnis-statistik>div {
    padding: 0.8rem;

    border: 1px solid var(--farbe-rahmen);
    border-radius: 8px;

    text-align: center;
}


.wahl-ergebnis-statistik span {
    display: block;

    margin-bottom: 0.3rem;

    color: var(--farbe-text-nebenbei);

    font-size: 0.78rem;
}


.wahl-ergebnis-statistik strong {
    color: var(--farbe-text);

    font-size: 1.2rem;
}


/* ------------------------------------------------------------
   Sitzgrafik
   ------------------------------------------------------------ */

.wahl-ergebnis-sitzgrafik {
    margin-top: 1.25rem;

    padding: 1rem;

    border: 1px solid var(--farbe-rahmen);
    border-radius: 8px;

    background-color: var(--farbe-oberflaeche);
}


.wahl-ergebnis-sitzgrafik-kopf {
    margin-bottom: 0.75rem;

    color: var(--farbe-text);

    font-size: 0.85rem;
    font-weight: 700;
}


/*
 * Die eigentliche SVG kommt aus:
 * abstimmungs_sitzgrafik(...)
 */

#wahl-ergebnis-sitzgrafik {
    display: flex;
    justify-content: center;
    align-items: center;

    width: 100%;

    overflow-x: auto;
}


#wahl-ergebnis-sitzgrafik svg {
    display: block;

    max-width: 100%;
    height: auto;
}


/* ------------------------------------------------------------
   Fußbereich
   ------------------------------------------------------------ */

.wahl-ergebnis-fuss {
    display: flex;
    justify-content: flex-end;

    padding: 1rem 1.5rem;

    border-top: 1px solid var(--farbe-rahmen);
}


.wahl-ergebnis-schliessen-button {
    padding: 0.6rem 1rem;

    border: 1px solid var(--farbe-rahmen);
    border-radius: 7px;

    background-color: var(--farbe-oberflaeche);

    color: var(--farbe-text);

    font: inherit;
    font-weight: 600;

    cursor: pointer;
}


/* ============================================================
   Mobil
   ============================================================ */

@media (max-width: 700px) {

    .wahl-modal,
    .wahl-ergebnis-modal {
        align-items: flex-end;

        padding: 0;
    }


    .wahl-fenster,
    .wahl-ergebnis-fenster {
        width: 100%;
        max-height: 92vh;

        border-radius: 12px 12px 0 0;
    }


    .wahl-stimmen {
        grid-template-columns: 1fr;
    }


    .wahl-ergebnis-statistik {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .wahl-ergebnis-inhalt {
        padding: 1rem;
    }


    .wahl-fuss,
    .wahl-ergebnis-fuss {
        padding: 0.9rem 1rem;
    }


    .wahl-fuss {
        flex-direction: column-reverse;
        align-items: stretch;
    }


    .wahl-fuss-rechts {
        width: 100%;
    }


    .wahl-abbrechen,
    .wahl-speichern {
        flex: 1;
    }


    .wahl-loeschen {
        width: 100%;
    }


    .wahl-ergebnis-schliessen-button {
        width: 100%;
    }

}