/* Seiten vor der Anmeldung (Entwurf 6a): Elternportal (elternportal/anmeldeseite_template.php)
 * und Adminportal (user/login/login.php). Dunkelblauer Kopf mit Logo und Namen des Trägers,
 * darunter die Karten der Seite. */
.ep-anm { min-height: 100vh; display: flex; flex-direction: column; background: #ffffff; color: #1f2937; font-family: "Open Sans", Helvetica, Arial, sans-serif; }
.ep-anm a { color: #3f7d14; }
.ep-anm a:hover { color: #2f5f0e; }
.ep-anm p { margin: 0; color: #4b5563; }
.ep-anm h1, .ep-anm h2 { margin: 0; font-weight: 700; color: #1f2937; }
.ep-anm .alert { margin: 0; }

.ep-anm-kopf { background: linear-gradient(135deg, #4a5568 0%, #2d3748 100%); padding: 48px 16px 104px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.ep-anm-logo { background: #ffffff; border-radius: 16px; padding: 14px 22px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3); }
.ep-anm-logo img { display: block; max-width: min(320px, 70vw); max-height: 96px; }
.ep-anm-kopf h1 { font-size: 34px; color: #ffffff; }
.ep-anm-kopf p { font-size: 18px; color: #e5e7eb; }

.ep-anm-inhalt { flex: 1; padding: 0 16px 40px; margin-top: -64px; display: flex; justify-content: center; }
.ep-anm-raster { width: 100%; max-width: 960px; display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; align-content: flex-start; }
.ep-anm-karte { box-sizing: border-box; background: #ffffff; border-radius: 18px; padding: 34px 38px; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12); display: flex; flex-direction: column; gap: 18px; }
.ep-anm-karte h2 { font-size: 22px; }
.ep-anm-haupt { flex: 1 1 420px; }
.ep-anm-seite { flex: 1 1 320px; display: flex; flex-direction: column; gap: 20px; }
.ep-anm-seite .ep-anm-karte { padding: 26px 30px; gap: 10px; }
.ep-anm-seite .ep-anm-karte h2 { font-size: 19px; }

.ep-anm-formular { display: flex; flex-direction: column; gap: 18px; }
.ep-anm-feld { display: flex; flex-direction: column; gap: 6px; }
.ep-anm-feld label { margin: 0; font-size: 14px; font-weight: 600; color: #374151; }
.ep-anm-feld input { height: 50px; box-sizing: border-box; padding: 0 14px; border: 1px solid #c9d0db; border-radius: 10px; font-size: 16px; color: #1f2937; }
.ep-anm-feld input:focus { outline: none; border-color: #3f7d14; box-shadow: 0 0 0 3px rgba(63, 125, 20, 0.2); }
.ep-anm-feld small { font-size: 14px; color: #4b5563; }
.ep-anm-vergessen { align-self: flex-end; padding: 11px 0; margin: -11px 0; font-size: 14px; font-weight: 600; }
.ep-anm-knopf { width: 100%; height: 52px; border: 0; border-radius: 10px; background: #3f7d14; color: #ffffff; font-size: 17px; font-weight: 700; cursor: pointer; }
.ep-anm-knopf:hover { background: #356b10; }
.ep-anm-knopf:disabled { background: #6b8f52; cursor: wait; }
.ep-anm-wechsel { text-align: center; font-size: 15px; }

.ep-anm-hinweis { font-size: 14px; color: #4b5563; }
.ep-anm-kontakt { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; font-weight: 600; word-break: break-word; }
.ep-anm-kontakt svg { flex: none; }

.ep-anm .ep-anm-app { background: #2b3445; color: #ffffff; box-shadow: none; }
.ep-anm-app h2 { color: #ffffff; }
.ep-anm-app p { font-size: 14px; color: #d1d5db; }
.ep-anm-id { font-size: 34px; font-weight: 700; letter-spacing: 7px; color: #ffffff; }
.ep-anm .ep-anm-app a.ep-anm-id { color: #ffffff; text-decoration: underline; }
.ep-anm-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }

.ep-anm-fuss { border-top: 1px solid #e5e7eb; padding: 18px 32px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; font-size: 14px; color: #4b5563; }
.ep-anm .ep-anm-fuss a.ep-anm-gtspro { display: inline-flex; align-items: center; gap: 10px; color: #4b5563; }

/* Nur eine Karte ohne Seitenspalte (Adminportal) */
.ep-anm-raster.ep-anm-schmal { max-width: 480px; }
/* GTSPro-Logo oben links im Kopf (Adminportal), eigene Zeile über dem Träger; am Handy mittig */
.ep-anm-produkt { align-self: flex-start; width: 392px; max-width: 100%; height: auto; margin: -24px 0 0 12px; }

/* Schulauswahl (content/schulauswahl.php): Gemeinde-Knöpfe, darunter je Gemeinde ein Abschnitt auf
 * grauer Fläche mit Kacheln (Schatten, Login-Knopf). Suche und Gemeinde blenden per hidden aus. */
.ep-anm-gemeindewahl { display: flex; flex-direction: column; gap: 8px; }
.ep-anm-gemeindewahl > span { font-size: 14px; font-weight: 600; color: #374151; }
.ep-anm-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ep-anm-chip { min-height: 40px; padding: 0 14px; border: 1px solid #c9d0db; border-radius: 999px; background: #ffffff; color: #1f2937; font-family: inherit; font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ep-anm-chip span { color: #4b5563; }
.ep-anm-chip:hover { border-color: #3f7d14; }
.ep-anm-chip:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(63, 125, 20, 0.3); }
.ep-anm-chip[aria-pressed="true"] { border-color: #3f7d14; background: #3f7d14; color: #ffffff; font-weight: 700; }
.ep-anm-chip[aria-pressed="true"] span { color: #ffffff; }

.ep-anm-gemeinden { display: flex; flex-direction: column; gap: 32px; padding: 24px; border-radius: 16px; background: #f4f6f8; }
.ep-anm-gemeinden[hidden], .ep-anm-gemeinde[hidden], .ep-anm-schulen > li[hidden] { display: none; }
.ep-anm-gemeinde { display: flex; flex-direction: column; gap: 12px; }
.ep-anm-gemeinde-kopf { display: flex; align-items: center; gap: 12px; }
.ep-anm-gemeinde-kopf::after { content: ""; flex: 1; height: 1px; background: #dde2e8; }
.ep-anm .ep-anm-gemeinde h3 { margin: 0; display: flex; align-items: baseline; gap: 8px; font-size: 17px; font-weight: 700; color: #1f2937; }
.ep-anm .ep-anm-gemeinde h3 span { font-size: 14px; font-weight: 600; color: #4b5563; }

.ep-anm-schulen { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.ep-anm-schulen > li { display: flex; }
.ep-anm-schule { flex: 1; box-sizing: border-box; display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid #e3e7ec; border-radius: 14px; background: #ffffff; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 8px 20px rgba(15, 23, 42, 0.08); }
.ep-anm-schule-text { display: flex; flex-direction: column; gap: 6px; }
.ep-anm .ep-anm-schule-name { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.3; color: #1f2937; }
.ep-anm-schule-angaben { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: #4b5563; }
.ep-anm-schule-kuerzel { padding: 2px 8px; border-radius: 6px; background: #f3f4f6; color: #374151; font-size: 12px; font-weight: 700; letter-spacing: 0.5px; }
.ep-anm a.ep-anm-schule-login { margin-top: auto; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border-radius: 10px; background: #3f7d14; color: #ffffff; font-size: 15px; font-weight: 700; text-decoration: none; box-shadow: 0 2px 4px rgba(63, 125, 20, 0.3); }
.ep-anm a.ep-anm-schule-login:hover, .ep-anm a.ep-anm-schule-login:focus { background: #356b10; color: #ffffff; }
.ep-anm a.ep-anm-schule-login:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(63, 125, 20, 0.35); }
.ep-anm-schule--ohne { border-style: dashed; border-color: #c9d0db; background: #f9fafb; box-shadow: none; }
.ep-anm .ep-anm-schule--ohne .ep-anm-schule-name { color: #374151; }
.ep-anm-schule--ohne .ep-anm-schule-kuerzel { background: #e5e7eb; }
.ep-anm-schule-nicht { margin-top: auto; display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 10px; background: #e5e7eb; color: #4b5563; font-size: 14px; font-weight: 600; }
.ep-anm-schulen-leer { font-size: 16px; color: #4b5563; }

@media (max-width: 575px) {
    .ep-anm-kopf { padding: 32px 16px 88px; }
    .ep-anm-kopf h1 { font-size: 26px; }
    .ep-anm-kopf p { font-size: 16px; }
    .ep-anm-karte { padding: 24px 20px; }
    .ep-anm-seite .ep-anm-karte { padding: 22px 20px; }
    .ep-anm-fuss { padding: 16px; justify-content: center; text-align: center; }
    .ep-anm-produkt { align-self: center; width: 260px; margin: -8px 0 0; }
    .ep-anm-gemeinden { padding: 14px; gap: 24px; }
}
