/* LayoutSwitcher - zentrale Styles (kann pro Layout überschrieben werden)
 * ----------------------------------------------------------------------------
 * Nutzt CSS-Variablen, sodass jedes Layout Farben oder Abstände einfach über
 * die --ls-*-Variablen anpassen kann. Alle Standardfarben erfüllen WCAG-AA
 * Kontrast - sowohl im hellen als auch im dunklen Modus. Fokus-Zustände sind
 * über die Tastatur sichtbar, Animationen berücksichtigen prefers-reduced-motion.
 * ----------------------------------------------------------------------------
 */

:root {
    --ls-bg: #f3f3f3;           /* Hintergrund Hellmodus */
    --ls-border: #888;          /* Rahmenfarbe */
    --ls-text: #333;            /* Textfarbe */
    --ls-accent: #0073e6;       /* Fokusring / aktive Zustände */
}

@media (prefers-color-scheme: dark) {
    :root {
        --ls-bg: #222;          /* Hintergrund Dunkelmodus */
        --ls-border: #555;
        --ls-text: #eee;
        --ls-accent: #5fa8ff;
    }
}

/* ??????????????????????????????????????????????????????????????????????????
 * Formular-Container
 * ---------------------------------------------------------------------- */
.layoutswitcher {
    display: inline-flex;       /* kompakte horizontale Anordnung */
    align-items: center;
    gap: .5rem;

    padding: .75rem 1rem;
    margin-block: 1rem;

    background-color: var(--ls-bg);
    border: 1px solid var(--ls-border);
    border-radius: .25rem;

    font-size: 1rem;
    color: var(--ls-text);
    text-align: center;
}

/* ??????????????????????????????????????????????????????????????????????????
 * Auswahlfeld <select>
 * Passt sich jetzt automatisch dem längsten Layoutnamen an (max-content).
 * ---------------------------------------------------------------------- */
.layoutswitcher select {
    /* Breite an längsten Eintrag anpassen - browserabhängige Fallbacks */
    width: max-content;            /* Standard */
    width: -moz-fit-content;       /* Firefox */
    width: -webkit-max-content;    /* Blink/WebKit */

    min-width: 8ch;                /* Mindestbreite */

    padding-block: .25rem;
    padding-inline: .5rem;

    background-color: #fff;
    border: 1px solid var(--ls-border);
    border-radius: .25rem;

    font-size: inherit;
    line-height: 1.2;
    transition: background-color .2s ease-in-out;
}

@media (prefers-reduced-motion: reduce) {
    .layoutswitcher select { transition: none; }
}

.layoutswitcher select:focus-visible {
    outline: 2px solid var(--ls-accent);
    outline-offset: 2px;
}

/* ??????????????????????????????????????????????????????????????????????????
 * Fallback-Button (wenn JavaScript deaktiviert)
 * ---------------------------------------------------------------------- */
.layoutswitcher input[type="submit"] {
    padding: .25rem .75rem;
    background-color: #e0e0e0;
    border: 1px solid var(--ls-border);
    border-radius: .25rem;
    font-size: inherit;
    cursor: pointer;
}

.layoutswitcher input[type="submit"]:focus-visible {
    outline: 2px solid var(--ls-accent);
    outline-offset: 2px;
}

.layoutswitcher input[type="submit"]:hover {
    filter: brightness(0.97);
}

/* ??????????????????????????????????????????????????????????????????????????
 * Anzeige des aktuell gewählten Layouts
 * ---------------------------------------------------------------------- */
.layoutswitcher .current-layout {
    font-size: .875em;
    font-style: italic;
    color: var(--ls-text);
}

/* ??????????????????????????????????????????????????????????????????????????
 * Progressive Enhancement - Button ausblenden, wenn JS Auto-Submit verfügbar
 * ---------------------------------------------------------------------- */
.js  .layoutswitcher input[type="submit"] { display: none; }
.no-js .layoutswitcher input[type="submit"] { display: inline-block; }
