/* Erststart-Assistent (willkommen.js, seit 04.10.2026): Karte im Seitenfluss und Dialog. */
.willkommen-karte {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    width: min(100% - 2 * var(--space-16), 640px);
    margin: var(--space-16) auto;
    padding: var(--space-16);
    border: 1px solid var(--accent-text);
    border-radius: var(--radius-xl);
    background: var(--card);
    color: var(--text);
}

.einstellungen-uebersicht .willkommen-karte {
    width: 100%;
    margin: 0 0 var(--space-12);
}

.willkommen-karte-titel {
    margin: 0;
    font-size: var(--text-16);
}

.willkommen-karte-text {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-14);
}

.willkommen-karte-knoepfe,
.willkommen-fuss {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-8);
}

.willkommen-knopf {
    min-height: 44px;
    padding: var(--space-8) var(--space-16);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--card);
    color: var(--text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.willkommen-knopf--haupt {
    border-color: transparent;
    background: var(--accent-contrast);
    color: #fff;
}

.willkommen-knopf--leise {
    font-weight: 400;
}

.willkommen-knopf:focus-visible,
.willkommen-wahl:focus-visible {
    outline: 2px solid var(--accent-text);
    outline-offset: 2px;
}

/* Dialog: dieselbe Ebene wie das Allergen-Blatt - ueber dem Hinweis-Stapel (z-layers-guard). */
.willkommen-dialog {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    /* iOS-App: oben nicht unter die Notch (mobile-css-guard). */
    padding: max(var(--space-16), env(safe-area-inset-top)) var(--space-16)
        max(var(--space-16), env(safe-area-inset-bottom));
    background: rgb(0 0 0 / 55%);
    /* Meldung 309: Wischen auf dem Hintergrund scrollte am iPhone die Seite dahinter
       (body overflow:hidden haelt iOS nicht auf). Die Mitte des Kastens ist der naechste
       Scroll-Container und scrollt weiter - touch-action gilt nur bis zu ihm. */
    touch-action: none;
}

.willkommen-dialog[hidden] {
    display: none;
}

.willkommen-box {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    width: 100%;
    max-width: 520px;
    max-height: 92vh;
    max-height: 92dvh;
    overflow: hidden;
    padding: var(--space-16);
    border-radius: var(--radius-xl);
    background: var(--card);
    color: var(--text);
    box-shadow: 0 8px 32px rgb(0 0 0 / 25%);
}

.willkommen-titel {
    margin: 0;
    font-size: var(--text-16);
}

/* Meldung 309: Kopf und Fuss stehen fest, nur die Mitte scrollt. */
.willkommen-kopf {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-8);
}

.willkommen-schliessen {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--text);
    cursor: pointer;
}

.willkommen-schliessen svg {
    width: 22px;
    height: 22px;
}

.willkommen-schliessen:focus-visible {
    outline: 2px solid var(--accent-text);
    outline-offset: 2px;
}

.willkommen-koerper {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--space-12);
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.willkommen-box > .willkommen-fuss {
    flex: 0 0 auto;
}

.willkommen-stand {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-13);
}

.willkommen-schritt {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

.willkommen-frage {
    margin: 0;
    font-size: var(--text-16);
}

.willkommen-hilfe,
.willkommen-unterfrage {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-14);
}

.willkommen-wahlen {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-8);
}

.willkommen-wahl {
    min-height: 44px;
    padding: var(--space-8) var(--space-12);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
    background: var(--card);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.willkommen-wahl[aria-pressed="true"] {
    border-color: var(--accent-text);
    background: var(--accent-soft);
    color: var(--accent-text);
    font-weight: 600;
}

/* Meldung 310: oeffnet das Allergen-Auswahlblatt hier im Dialog (statt Link). */
.willkommen-mehr {
    align-self: flex-start;
}

/* Meldung 285: Regler direkt in der ersten Frage. Name + Erklaerung links, Regler in der
   Mitte, Anteil rechts; am Handy steht der Regler in einer eigenen Zeile darunter. */
.willkommen-regler {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    margin: 0;
    padding: 0;
    list-style: none;
}

.willkommen-regler-zeile {
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 2fr) 3.5rem;
    align-items: center;
    gap: var(--space-8);
}

.willkommen-regler-name {
    display: flex;
    flex-direction: column;
    font-weight: 600;
}

.willkommen-regler-hilfe {
    color: var(--text-muted);
    font-size: var(--text-13);
    font-weight: 400;
}

.willkommen-regler-zeile input[type="range"] {
    width: 100%;
    min-height: 44px;
    /* Chromium gibt Range-Feldern 2 px Seitenrand - bei 360 px ragte die Zeile so
       um 2 px ueber (gemessen). */
    margin: 0;
    accent-color: var(--accent);
}

.willkommen-regler-wert {
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.willkommen-melden {
    display: flex;
    justify-content: center;
    margin: 0;
}

@media (max-width: 768px) {
    .willkommen-regler-zeile {
        grid-template-columns: 1fr auto;
    }

    .willkommen-regler-zeile input[type="range"] {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}
