/* =====================================================================
   Dominacall24 · Handy-Apps (Anbieter-App und Admin-App)

   Gemeinsames Design-System beider Apps. Farben kommen aus den Marken-
   variablen in app.css (--c-noir, --c-gold, --c-sand, --c-burgund …), so
   folgt die App automatisch der Marke. Alles hier ist bewusst ohne
   Tailwind-Klassen gebaut: der Build ist eingefroren, neue Utility-Klassen
   gäbe es nicht — eigene Klassen mit Präfix "ap-" gibt es immer.
   ===================================================================== */

:root {
    --ap-gold:      rgb(var(--c-gold));
    --ap-gold-hell: rgb(var(--c-gold-50));
    --ap-sand:      rgb(var(--c-sand));
    --ap-sand-2:    rgb(var(--c-sand-100));
    --ap-sand-3:    rgb(var(--c-sand-200));
    --ap-noir:      rgb(var(--c-noir));
    --ap-burgund:   rgb(var(--c-burgund));
    --ap-ok:        #3ecf8e;
    --ap-warn:      #f2b94b;
    --ap-rot:       #ff5d6c;
    --ap-blau:      #6cb4ff;

    --ap-karte:        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
    --ap-karte-rand:   rgb(var(--c-gold) / .16);
    --ap-karte-rand-2: rgb(var(--c-gold) / .34);
    --ap-radius:       18px;
    --ap-radius-klein: 12px;
    --ap-schatten:     0 10px 30px -18px rgba(0,0,0,.9);
    --ap-tabs-hoehe:   64px;
    --ap-kopf-hoehe:   0px;

    --ap-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
    --ap-sans:  Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

    --ap-dauer: .22s;
    --ap-kurve: cubic-bezier(.2,.8,.2,1);
}

/* ------------------------------------------------ Grundgerüst -------- */

html.ap-html {
    background: var(--ap-noir);
    -webkit-text-size-adjust: 100%;
    overscroll-behavior-y: contain;
    scroll-behavior: smooth;
}

body.ap-body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    font-family: var(--ap-sans);
    font-size: 15px;
    line-height: 1.45;
    color: var(--ap-sand);
    background:
        radial-gradient(120% 60% at 50% -10%, rgb(var(--c-gold) / .13), transparent 60%),
        radial-gradient(80% 40% at 100% 100%, rgb(var(--c-burgund) / .22), transparent 60%),
        var(--ap-noir);
    background-attachment: fixed;
    -webkit-font-smoothing: antialiased;
    -webkit-tap-highlight-color: transparent;
    padding-top: env(safe-area-inset-top);
    overflow-x: hidden;
}

/* Seitenwechsel gleiten statt zu springen (Chrome/Safari, sonst wirkungslos). */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) {
    @view-transition { navigation: none; }
    .ap-auftritt > * { animation: none !important; }
}

* { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
img { display: block; max-width: 100%; }
::selection { background: rgb(var(--c-gold) / .35); }

.ap-inhalt {
    padding: 0 16px calc(env(safe-area-inset-bottom) + var(--ap-tabs-hoehe) + 28px);
    max-width: 560px;
    margin: 0 auto;
}
.ap-inhalt--ohne-tabs { padding-bottom: calc(env(safe-area-inset-bottom) + 28px); }

/* Einblend-Animation der Karten beim Laden, leicht versetzt. */
.ap-auftritt > * { animation: ap-auf .42s var(--ap-kurve) both; }
.ap-auftritt > *:nth-child(2)  { animation-delay: .04s; }
.ap-auftritt > *:nth-child(3)  { animation-delay: .08s; }
.ap-auftritt > *:nth-child(4)  { animation-delay: .12s; }
.ap-auftritt > *:nth-child(5)  { animation-delay: .16s; }
.ap-auftritt > *:nth-child(6)  { animation-delay: .20s; }
.ap-auftritt > *:nth-child(n+7){ animation-delay: .24s; }
@keyframes ap-auf { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

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

.ap-kopf {
    position: sticky;
    top: 0;
    z-index: 30;
    padding: 12px 16px 10px;
    background: linear-gradient(180deg, rgb(var(--c-noir) / .96), rgb(var(--c-noir) / .82));
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgb(var(--c-gold) / .10);
}
.ap-kopf__innen { max-width: 560px; margin: 0 auto; display: flex; align-items: center; gap: 12px; }
.ap-kopf__zurueck {
    width: 40px; height: 40px; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgb(var(--c-gold) / .18);
    color: var(--ap-gold);
    transition: transform var(--ap-dauer) var(--ap-kurve), background var(--ap-dauer);
}
.ap-kopf__zurueck:active { transform: scale(.94); background: rgb(var(--c-gold) / .12); }
.ap-kopf__text { min-width: 0; flex: 1; }
.ap-kopf__titel {
    font-family: var(--ap-serif);
    font-weight: 500;
    font-size: 28px;
    line-height: 1.05;
    letter-spacing: .01em;
    color: var(--ap-sand);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ap-kopf__titel--klein { font-size: 22px; }
.ap-kopf__unter { font-size: 12.5px; color: var(--ap-sand-2); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-kopf__rechts { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }

.ap-avatar {
    width: 44px; height: 44px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgb(var(--c-gold) / .35), rgb(var(--c-burgund) / .5));
    border: 1px solid rgb(var(--c-gold) / .4);
    color: var(--ap-sand);
    font-family: var(--ap-serif);
    font-size: 18px;
    font-weight: 600;
    overflow: hidden;
    flex: 0 0 auto;
}
.ap-avatar img { width: 100%; height: 100%; object-fit: cover; }
.ap-avatar--klein { width: 36px; height: 36px; font-size: 14px; }
.ap-avatar--gross { width: 64px; height: 64px; font-size: 24px; }
.ap-avatar--eckig { border-radius: 14px; }

/* Kleiner runder Knopf im Kopf (Aktualisieren, alles gelesen …) */
.ap-kopfknopf {
    height: 36px; padding: 0 12px;
    display: inline-flex; align-items: center; gap: 6px;
    border-radius: 999px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgb(var(--c-gold) / .22);
    color: var(--ap-sand-2);
    font-size: 12px; font-weight: 500;
    white-space: nowrap;
    transition: transform var(--ap-dauer) var(--ap-kurve), background var(--ap-dauer);
}
.ap-kopfknopf:active { transform: scale(.95); }
.ap-kopfknopf--gold { color: var(--ap-noir); background: var(--ap-gold); border-color: transparent; font-weight: 600; }
.ap-kopfknopf--rund { width: 36px; padding: 0; justify-content: center; }

/* ------------------------------------------------ Icons -------------- */

.ap-i { width: 1.25em; height: 1.25em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ap-i--klein { width: 1em; height: 1em; }
.ap-i--gross { width: 1.6em; height: 1.6em; }

/* ------------------------------------------------ Abschnitte --------- */

.ap-abschnitt {
    display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
    margin: 22px 2px 10px;
}
.ap-abschnitt:first-child { margin-top: 14px; }
.ap-abschnitt__titel {
    font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
    color: var(--ap-gold);
}
.ap-abschnitt__rechts { font-size: 12px; color: var(--ap-sand-3); }
.ap-abschnitt__rechts a { color: var(--ap-gold); }

.ap-hinweis { font-size: 12.5px; color: var(--ap-sand-3); line-height: 1.5; }
.ap-klein { font-size: 12px; color: var(--ap-sand-2); }
.ap-mono { font-variant-numeric: tabular-nums; }
.ap-abstand { margin-top: 16px; }
.ap-abstand-klein { margin-top: 8px; }
.ap-mitte { text-align: center; }
.ap-stapel { display: grid; gap: 10px; }
.ap-reihe { display: flex; align-items: center; gap: 10px; }
.ap-reihe--zwischen { justify-content: space-between; }
.ap-wachsen { flex: 1 1 auto; min-width: 0; }
.ap-kuerzen { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ------------------------------------------------ Karten ------------- */

.ap-karte {
    position: relative;
    background: var(--ap-karte);
    border: 1px solid var(--ap-karte-rand);
    border-radius: var(--ap-radius);
    padding: 16px;
    box-shadow: var(--ap-schatten);
}
.ap-karte::before {
    /* feine Lichtkante oben */
    content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgb(var(--c-gold) / .35), transparent);
    border-radius: inherit;
    pointer-events: none;
}
.ap-karte + .ap-karte { margin-top: 10px; }
.ap-karte--gold { border-color: var(--ap-karte-rand-2); background: linear-gradient(180deg, rgb(var(--c-gold) / .12), rgb(var(--c-gold) / .04)); }
.ap-karte--warn { border-color: rgb(var(--c-burgund) / .9); background: linear-gradient(180deg, rgb(var(--c-burgund) / .40), rgb(var(--c-burgund) / .16)); }
.ap-karte--ok { border-color: rgba(62,207,142,.35); background: linear-gradient(180deg, rgba(62,207,142,.12), rgba(62,207,142,.04)); }
.ap-karte--gefahr { border-color: rgba(255,93,108,.35); background: linear-gradient(180deg, rgba(255,93,108,.10), rgba(255,93,108,.03)); }
.ap-karte--stumm { opacity: .7; }
.ap-karte--eng { padding: 12px 14px; }
.ap-karte--knopf { display: block; width: 100%; text-align: left; transition: transform var(--ap-dauer) var(--ap-kurve), border-color var(--ap-dauer); }
.ap-karte--knopf:active { transform: scale(.985); border-color: var(--ap-karte-rand-2); }
.ap-karte__titel { font-size: 15px; font-weight: 600; color: var(--ap-sand); }
.ap-karte__text { font-size: 13px; color: var(--ap-sand-2); margin-top: 4px; line-height: 1.5; }
.ap-karte__ueber { font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ap-gold); margin-bottom: 8px; }
/* Zahlen in der Grotesk: die Garamond hat altstilige Ziffern (die 1 sieht aus wie ein I). */
.ap-karte__zahl { font-family: var(--ap-sans); font-weight: 600; letter-spacing: -.02em; font-size: 36px; line-height: 1; color: var(--ap-gold); font-variant-numeric: tabular-nums lining-nums; }

/* ------------------------------------------------ Kacheln (Zahlen) --- */

.ap-kacheln { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ap-kachel {
    position: relative;
    display: block;
    background: var(--ap-karte);
    border: 1px solid var(--ap-karte-rand);
    border-radius: var(--ap-radius);
    padding: 14px 14px 12px;
    box-shadow: var(--ap-schatten);
    transition: transform var(--ap-dauer) var(--ap-kurve), border-color var(--ap-dauer);
    min-height: 104px;
}
.ap-kachel:active { transform: scale(.97); border-color: var(--ap-karte-rand-2); }
.ap-kachel__icon {
    width: 32px; height: 32px; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgb(var(--c-gold) / .12);
    color: var(--ap-gold);
    margin-bottom: 8px;
}
.ap-kachel__zahl { font-family: var(--ap-sans); font-weight: 600; letter-spacing: -.02em; font-size: 32px; line-height: 1; color: var(--ap-gold); font-variant-numeric: tabular-nums lining-nums; }
.ap-kachel__label { font-size: 12px; color: var(--ap-sand-2); margin-top: 6px; }
.ap-kachel.ist-neu .ap-kachel__zahl { color: var(--ap-rot); }
.ap-kachel.ist-neu .ap-kachel__icon { background: rgba(255,93,108,.15); color: var(--ap-rot); }
.ap-kachel--breit { grid-column: 1 / -1; }
.ap-kachel--hero {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, rgb(var(--c-gold) / .18), rgb(var(--c-burgund) / .28) 60%, rgba(255,255,255,.03));
    border-color: var(--ap-karte-rand-2);
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: end;
}
.ap-kachel--hero .ap-kachel__zahl { font-size: 44px; }

.ap-trend { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; margin-top: 6px; background: rgba(255,255,255,.06); color: var(--ap-sand-2); }
.ap-trend.ist-plus  { color: var(--ap-ok);  background: rgba(62,207,142,.14); }
.ap-trend.ist-minus { color: var(--ap-rot); background: rgba(255,93,108,.14); }

/* Punkt für „neu" */
.ap-punkt { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ap-rot); box-shadow: 0 0 0 0 rgba(255,93,108,.6); animation: ap-puls 1.8s ease-out infinite; }
.ap-punkt--gold { background: var(--ap-gold); box-shadow: 0 0 0 0 rgb(var(--c-gold) / .6); }
@keyframes ap-puls { 0% { box-shadow: 0 0 0 0 rgba(255,93,108,.55); } 70% { box-shadow: 0 0 0 7px rgba(255,93,108,0); } 100% { box-shadow: 0 0 0 0 rgba(255,93,108,0); } }

/* ------------------------------------------------ Listen-Zeilen ------ */

.ap-liste { display: grid; gap: 8px; }
.ap-liste--verbunden { gap: 0; background: var(--ap-karte); border: 1px solid var(--ap-karte-rand); border-radius: var(--ap-radius); overflow: hidden; }
.ap-liste--verbunden .ap-zeile { border-radius: 0; border: 0; box-shadow: none; background: transparent; }
.ap-liste--verbunden .ap-zeile + .ap-zeile { border-top: 1px solid rgb(var(--c-gold) / .10); }

.ap-zeile {
    display: flex; align-items: center; gap: 12px;
    width: 100%; text-align: left;
    background: var(--ap-karte);
    border: 1px solid var(--ap-karte-rand);
    border-radius: var(--ap-radius);
    padding: 11px 12px 11px 12px;
    min-height: 64px;
    box-shadow: var(--ap-schatten);
    transition: transform var(--ap-dauer) var(--ap-kurve), background var(--ap-dauer), border-color var(--ap-dauer);
}
.ap-zeile:active { transform: scale(.985); background: rgba(255,255,255,.06); }
.ap-zeile--gold { border-color: var(--ap-karte-rand-2); }
.ap-zeile--rot { border-color: rgba(255,93,108,.35); }
.ap-zeile--stumm { opacity: .65; }
.ap-zeile__bild {
    width: 52px; height: 52px; flex: 0 0 auto; border-radius: 14px;
    overflow: hidden;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgb(var(--c-gold) / .10);
    color: var(--ap-gold);
    font-family: var(--ap-sans); font-size: 17px; font-weight: 600;
}
.ap-zeile__bild img { width: 100%; height: 100%; object-fit: cover; }
.ap-zeile__bild--rot { background: rgba(255,93,108,.14); color: var(--ap-rot); }
.ap-zeile__bild--ok { background: rgba(62,207,142,.14); color: var(--ap-ok); }
.ap-zeile__bild--klein { width: 40px; height: 40px; border-radius: 11px; font-size: 15px; }
.ap-zeile__text { flex: 1 1 auto; min-width: 0; }
.ap-zeile__titel { font-size: 15px; font-weight: 500; color: var(--ap-sand); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 6px; }
.ap-zeile__unter { font-size: 12.5px; color: var(--ap-sand-2); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-zeile__rechts { flex: 0 0 auto; font-size: 12px; color: var(--ap-sand-3); text-align: right; }
.ap-zeile__pfeil { flex: 0 0 auto; color: var(--ap-sand-3); display: inline-flex; }

/* ------------------------------------------------ Marken (Badges) ---- */

.ap-marke {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 10.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
    padding: 3px 8px; border-radius: 999px; line-height: 1.2; white-space: nowrap;
    background: rgb(var(--c-gold) / .14); color: var(--ap-gold);
}
.ap-marke--ok   { background: rgba(62,207,142,.16); color: var(--ap-ok); }
.ap-marke--warn { background: rgba(242,185,75,.16); color: var(--ap-warn); }
.ap-marke--rot  { background: rgba(255,93,108,.16); color: var(--ap-rot); }
.ap-marke--blau { background: rgba(108,180,255,.16); color: var(--ap-blau); }
.ap-marke--grau { background: rgba(255,255,255,.08); color: var(--ap-sand-2); }
.ap-marke--voll { background: var(--ap-gold); color: var(--ap-noir); }

.ap-zaehlmarke {
    position: absolute; top: -6px; right: -8px;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 999px;
    background: var(--ap-rot); color: #fff;
    font-size: 10.5px; font-weight: 700; line-height: 18px; text-align: center;
    box-shadow: 0 0 0 2px var(--ap-noir);
}
.ap-zaehlmarke--gold { background: var(--ap-gold); color: var(--ap-noir); }
/* Ruhige Fassung fuer Listenzeilen: laeuft im Textfluss mit, statt sich
   als Punkt an ein Symbol zu haengen. */
.ap-zaehlmarke--ruhig { position: static; flex: 0 0 auto; box-shadow: none; }

/* ------------------------------------------------ Knöpfe ------------- */

.ap-knopf {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 50px; padding: 0 20px;
    border-radius: 14px;
    font-size: 15px; font-weight: 600;
    color: var(--ap-sand);
    background: rgba(255,255,255,.06);
    border: 1px solid rgb(var(--c-gold) / .25);
    transition: transform var(--ap-dauer) var(--ap-kurve), background var(--ap-dauer), opacity var(--ap-dauer);
    user-select: none;
    text-align: center;
    white-space: nowrap;
}
.ap-knopf:active { transform: scale(.97); }
.ap-knopf[disabled] { opacity: .45; pointer-events: none; }
.ap-knopf--voll { width: 100%; }
.ap-knopf--gold { background: linear-gradient(180deg, var(--ap-gold-hell), var(--ap-gold)); color: var(--ap-noir); border-color: transparent; box-shadow: 0 8px 24px -10px rgb(var(--c-gold) / .8); }
.ap-knopf--geist { background: transparent; border-color: rgb(var(--c-gold) / .55); color: var(--ap-gold); }
.ap-knopf--leise { background: rgba(255,255,255,.05); border-color: transparent; color: var(--ap-sand-2); }
.ap-knopf--ok { background: linear-gradient(180deg, #4ad99a, #2fb877); color: #05130c; border-color: transparent; }
.ap-knopf--gefahr { background: rgba(255,93,108,.12); border-color: rgba(255,93,108,.4); color: var(--ap-rot); }
.ap-knopf--gefahr-voll { background: linear-gradient(180deg, #ff6b78, #e0424f); border-color: transparent; color: #fff; }
.ap-knopf--klein { height: 40px; padding: 0 14px; font-size: 13px; border-radius: 11px; }
.ap-knopf--mini { height: 32px; padding: 0 10px; font-size: 12px; border-radius: 9px; gap: 5px; }
.ap-knopf--rund { width: 44px; height: 44px; padding: 0; border-radius: 50%; }
.ap-knopf--links { justify-content: flex-start; text-align: left; }
.ap-knopf--links .ap-i { color: var(--ap-gold); }

.ap-knopfreihe { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.ap-knopfreihe--2 { grid-template-columns: 1fr 1fr; grid-auto-flow: row; }

/* Text-Link */
.ap-link { color: var(--ap-gold); font-weight: 500; }
.ap-link--leise { color: var(--ap-sand-2); text-decoration: underline; text-decoration-color: rgb(var(--c-gold) / .4); text-underline-offset: 3px; }

/* ------------------------------------------------ Formulare ---------- */

.ap-feldgruppe { margin-bottom: 14px; }
.ap-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ap-gold); margin: 0 2px 7px; }
.ap-feld {
    width: 100%;
    background: rgba(255,255,255,.045);
    border: 1px solid rgb(var(--c-gold) / .28);
    border-radius: var(--ap-radius-klein);
    padding: 13px 14px;
    color: var(--ap-sand);
    font-size: 16px; /* 16px: sonst zoomt iOS beim Antippen hinein */
    line-height: 1.35;
    outline: none;
    transition: border-color var(--ap-dauer), box-shadow var(--ap-dauer), background var(--ap-dauer);
    appearance: none; -webkit-appearance: none;
}
.ap-feld::placeholder { color: var(--ap-sand-3); }
.ap-feld:focus { border-color: var(--ap-gold); box-shadow: 0 0 0 3px rgb(var(--c-gold) / .18); background: rgba(255,255,255,.06); }
/* Erst nach einer Eingabe rot, nicht schon beim leeren Pflichtfeld (Datumsfelder haben keinen Platzhalter) */
.ap-feld:user-invalid { border-color: rgba(255,93,108,.6); }
textarea.ap-feld { resize: none; min-height: 120px; }
select.ap-feld { background-image: none; }
.ap-feld[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

.ap-eingabe { position: relative; }
.ap-eingabe .ap-i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--ap-sand-3); pointer-events: none; }
.ap-eingabe .ap-feld { padding-left: 42px; }
.ap-eingabe__rechts { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); height: 32px; padding: 0 10px; border-radius: 9px; color: var(--ap-sand-2); font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.ap-eingabe__rechts:active { background: rgba(255,255,255,.08); }
.ap-eingabe--mit-rechts .ap-feld { padding-right: 70px; }

.ap-hilfe { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: var(--ap-sand-3); margin: 6px 2px 0; }
.ap-hilfe--fehler { color: var(--ap-rot); }
.ap-formkarte { padding: 14px; }
.ap-formkarte .ap-feldgruppe:last-child { margin-bottom: 0; }

/* Chips (Mehrfachauswahl, z. B. Neigungen) */
.ap-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-chip { position: relative; display: inline-flex; align-items: center; gap: 5px; min-height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid rgb(var(--c-gold) / .30); color: var(--ap-sand-2); font-size: 13px; font-weight: 500; background: rgba(255,255,255,.03); transition: all var(--ap-dauer); cursor: pointer; user-select: none; }
.ap-chip input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.ap-chip:has(input:checked), .ap-chip.ist-aktiv { background: rgb(var(--c-gold) / .16); border-color: var(--ap-gold); color: var(--ap-gold); }
.ap-chip:active { transform: scale(.96); }
.ap-chip--rot:has(input:checked) { background: rgba(255,93,108,.16); border-color: var(--ap-rot); color: var(--ap-rot); }

/* Segmentierte Pillen (Filter, oben in Listen) */
.ap-segment { display: flex; gap: 8px; overflow-x: auto; padding: 2px 16px 10px; margin: 0 -16px; scroll-snap-type: x proximity; scrollbar-width: none; }
.ap-segment::-webkit-scrollbar { display: none; }
.ap-pill { flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgb(var(--c-gold) / .14); color: var(--ap-sand-2); font-size: 13px; font-weight: 500; white-space: nowrap; transition: all var(--ap-dauer); }
.ap-pill.ist-aktiv { background: var(--ap-gold); color: var(--ap-noir); border-color: transparent; font-weight: 600; }
.ap-pill__zahl { font-size: 11px; padding: 1px 6px; border-radius: 999px; background: rgba(0,0,0,.18); }
.ap-pill:not(.ist-aktiv) .ap-pill__zahl { background: rgba(255,255,255,.08); }
.ap-pill:active { transform: scale(.96); }

/* Umschalter (Schalter wie in iOS) */
.ap-schalter { position: relative; display: inline-block; width: 50px; height: 30px; flex: 0 0 auto; }
.ap-schalter input { position: absolute; opacity: 0; width: 0; height: 0; }
.ap-schalter__bahn { position: absolute; inset: 0; border-radius: 999px; background: rgba(255,255,255,.14); transition: background var(--ap-dauer); }
.ap-schalter__bahn::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.4); transition: transform var(--ap-dauer) var(--ap-kurve); }
.ap-schalter input:checked + .ap-schalter__bahn { background: var(--ap-ok); }
.ap-schalter input:checked + .ap-schalter__bahn::after { transform: translateX(20px); }
.ap-schalter--gold input:checked + .ap-schalter__bahn { background: var(--ap-gold); }
.ap-schalterzeile { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; min-height: 54px; cursor: pointer; }
.ap-schalterzeile + .ap-schalterzeile { border-top: 1px solid rgb(var(--c-gold) / .10); }
.ap-schalterzeile__text { min-width: 0; }
.ap-schalterzeile__titel { font-size: 15px; color: var(--ap-sand); }
.ap-schalterzeile__unter { font-size: 12.5px; color: var(--ap-sand-2); margin-top: 2px; }

/* Radio-Pillen (eine Auswahl) */
.ap-wahl { display: flex; gap: 8px; flex-wrap: wrap; }
.ap-wahl label { position: relative; cursor: pointer; }
.ap-wahl input { position: absolute; opacity: 0; width: 0; height: 0; }
.ap-wahl span { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgb(var(--c-gold) / .18); color: var(--ap-sand-2); font-size: 13px; font-weight: 500; transition: all var(--ap-dauer); }
.ap-wahl input:checked + span { background: var(--ap-gold); color: var(--ap-noir); border-color: transparent; font-weight: 600; }
.ap-wahl--rot input:checked + span { background: var(--ap-rot); color: #fff; }

/* Datei-Auswahl als großer Knopf */
.ap-datei { position: relative; overflow: hidden; }
.ap-datei input[type="file"] { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; font-size: 0; }

/* ------------------------------------------------ Status ------------- */

.ap-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 500; color: var(--ap-sand-2); }
.ap-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ap-sand-3); box-shadow: 0 0 0 3px rgba(255,255,255,.06); }
.ap-status--ok::before { background: var(--ap-ok); box-shadow: 0 0 0 3px rgba(62,207,142,.18); }
.ap-status--warn::before { background: var(--ap-warn); box-shadow: 0 0 0 3px rgba(242,185,75,.18); }
.ap-status--rot::before { background: var(--ap-rot); box-shadow: 0 0 0 3px rgba(255,93,108,.18); }
.ap-status--gold::before { background: var(--ap-gold); box-shadow: 0 0 0 3px rgb(var(--c-gold) / .2); }

/* ------------------------------------------------ Fortschritt -------- */

.ap-fortschritt { height: 8px; border-radius: 999px; background: rgba(255,255,255,.08); overflow: hidden; }
.ap-fortschritt__balken { height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ap-gold), var(--ap-gold-hell)); transition: width .6s var(--ap-kurve); }
.ap-fortschritt--ok .ap-fortschritt__balken { background: linear-gradient(90deg, #2fb877, #4ad99a); }

.ap-ring { --wert: 0; --farbe: var(--ap-gold); position: relative; width: 64px; height: 64px; flex: 0 0 auto; border-radius: 50%; background: conic-gradient(var(--farbe) calc(var(--wert) * 1%), rgba(255,255,255,.08) 0); display: inline-flex; align-items: center; justify-content: center; }
.ap-ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #141014; }
.ap-ring__text { position: relative; font-family: var(--ap-sans); font-size: 15px; font-weight: 600; letter-spacing: -.02em; color: var(--ap-sand); font-variant-numeric: tabular-nums lining-nums; }
.ap-ring--gross { width: 84px; height: 84px; }
.ap-ring--gross .ap-ring__text { font-size: 22px; }

/* Mini-Balkendiagramm (Höhen per style="--h: 40%") */
.ap-balken { display: flex; align-items: flex-end; gap: 4px; height: 64px; }
.ap-balken > span { --h: 0%; flex: 1 1 0; min-width: 4px; height: max(3px, var(--h)); border-radius: 4px 4px 2px 2px; background: rgb(var(--c-gold) / .32); transition: height .5s var(--ap-kurve); }
.ap-balken > span.ist-heute { background: var(--ap-gold); }
.ap-balken > span.ist-leer { background: rgba(255,255,255,.07); }
.ap-balken-legende { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--ap-sand-3); margin-top: 6px; }

/* Waagerechte Verteilungs-Balken (Kontaktarten, Herkunft) */
.ap-verteilung { display: grid; gap: 8px; }
.ap-verteilung__zeile { display: grid; grid-template-columns: 82px 1fr 36px; align-items: center; gap: 10px; font-size: 13px; }
.ap-verteilung__name { color: var(--ap-sand-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ap-verteilung__bahn { height: 8px; border-radius: 999px; background: rgba(255,255,255,.07); overflow: hidden; }
.ap-verteilung__bahn > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, rgb(var(--c-gold) / .6), var(--ap-gold)); }
.ap-verteilung__wert { text-align: right; color: var(--ap-sand); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------ Leerzustand -------- */

.ap-leer { text-align: center; padding: 26px 18px; }
.ap-leer__icon { width: 60px; height: 60px; margin: 0 auto 12px; border-radius: 20px; display: inline-flex; align-items: center; justify-content: center; background: rgb(var(--c-gold) / .10); color: var(--ap-gold); }
.ap-leer__icon .ap-i { width: 28px; height: 28px; }
.ap-leer__icon--ok { background: rgba(62,207,142,.12); color: var(--ap-ok); }
.ap-leer__titel { font-family: var(--ap-serif); font-size: 22px; color: var(--ap-sand); }
.ap-leer__text { font-size: 13.5px; color: var(--ap-sand-2); margin-top: 6px; line-height: 1.5; }
.ap-leer .ap-knopf { margin-top: 14px; }

/* ------------------------------------------------ Bilder-Raster ------ */

.ap-galerie { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ap-galerie__kachel { position: relative; aspect-ratio: 3 / 4; border-radius: 14px; overflow: hidden; background: rgba(255,255,255,.04); border: 1px solid rgb(var(--c-gold) / .18); touch-action: none; transition: transform var(--ap-dauer) var(--ap-kurve), box-shadow var(--ap-dauer); }
.ap-galerie__kachel img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.ap-galerie__kachel.ist-titel { border-color: var(--ap-gold); box-shadow: 0 0 0 2px rgb(var(--c-gold) / .35); }
.ap-galerie__kachel.ist-wartend::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(90,26,44,.75)); }
.ap-galerie__kachel.ist-wartend .ap-galerie__hinweis { position: absolute; left: 6px; right: 6px; bottom: 8px; z-index: 1; font-size: 10.5px; line-height: 1.25; text-align: center; color: var(--ap-sand); }
.ap-galerie__kachel.wird-gezogen { transform: scale(1.06); box-shadow: 0 16px 30px -10px rgba(0,0,0,.9); z-index: 5; opacity: .9; }
.ap-galerie__kachel.ist-ziel { outline: 2px dashed var(--ap-gold); outline-offset: -2px; }
.ap-galerie__marke { position: absolute; left: 6px; top: 6px; z-index: 1; }
.ap-galerie__nummer { position: absolute; right: 6px; top: 6px; z-index: 1; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: rgba(0,0,0,.55); color: var(--ap-sand); font-size: 11px; font-weight: 600; line-height: 20px; text-align: center; }
.ap-galerie__mehr { position: absolute; right: 6px; bottom: 6px; z-index: 2; width: 30px; height: 30px; border-radius: 9px; background: rgba(0,0,0,.55); color: #fff; display: inline-flex; align-items: center; justify-content: center; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.ap-galerie__plus { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; aspect-ratio: 3 / 4; border-radius: 14px; border: 1.5px dashed rgb(var(--c-gold) / .5); color: var(--ap-gold); font-size: 12px; font-weight: 600; background: rgb(var(--c-gold) / .05); transition: transform var(--ap-dauer) var(--ap-kurve); }
.ap-galerie__plus:active { transform: scale(.96); }
.ap-galerie__plus .ap-i { width: 26px; height: 26px; }

/* Bild-Karussell (Prüfen) */
.ap-karussell { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 0 16px 6px; scrollbar-width: none; }
.ap-karussell::-webkit-scrollbar { display: none; }
.ap-karussell__bild { flex: 0 0 auto; scroll-snap-align: center; height: 46vh; max-height: 440px; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.04); border: 1px solid rgb(var(--c-gold) / .18); }
.ap-karussell__bild img { height: 100%; width: auto; max-width: calc(100vw - 32px); object-fit: contain; }
.ap-karussell__bild--voll { width: calc(100vw - 32px); max-width: 528px; }
.ap-karussell__bild--voll img { width: 100%; }
.ap-punkte { display: flex; justify-content: center; gap: 6px; margin-top: 8px; }
.ap-punkte span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.2); transition: background var(--ap-dauer); }
.ap-punkte span.ist-aktiv { background: var(--ap-gold); }

/* ------------------------------------------------ Aktionsleiste ------ */

.ap-aktionsleiste {
    position: fixed; left: 0; right: 0;
    bottom: calc(env(safe-area-inset-bottom) + var(--ap-tabs-hoehe));
    z-index: 35;
    padding: 10px 16px;
    background: linear-gradient(180deg, rgb(var(--c-noir) / .0), rgb(var(--c-noir) / .92) 30%);
    transform: translateY(120%);
    transition: transform .3s var(--ap-kurve);
    pointer-events: none;
}
.ap-aktionsleiste.ist-sichtbar { transform: none; pointer-events: auto; }
.ap-aktionsleiste--immer { transform: none; pointer-events: auto; }
.ap-aktionsleiste--ohne-tabs { bottom: 0; padding-bottom: calc(env(safe-area-inset-bottom) + 10px); }
.ap-aktionsleiste__innen { max-width: 560px; margin: 0 auto; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.ap-aktionsleiste__innen .ap-knopf--leise { flex: 0 0 auto; }
body.hat-aktionsleiste .ap-inhalt { padding-bottom: calc(env(safe-area-inset-bottom) + var(--ap-tabs-hoehe) + 100px); }

/* ------------------------------------------------ Blatt (Bottom-Sheet) */

.ap-blatt { position: fixed; inset: 0; z-index: 60; display: none; }
.ap-blatt.ist-offen { display: block; }
.ap-blatt__hinter { position: absolute; inset: 0; background: rgba(0,0,0,.6); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: ap-ein .2s ease-out; }
.ap-blatt__box { position: absolute; left: 0; right: 0; bottom: 0; max-height: 85vh; overflow: auto; background: #151015; border-radius: 22px 22px 0 0; border-top: 1px solid rgb(var(--c-gold) / .3); padding: 10px 16px calc(env(safe-area-inset-bottom) + 18px); animation: ap-hoch .28s var(--ap-kurve); max-width: 600px; margin: 0 auto; }
.ap-blatt__griff { width: 40px; height: 4px; border-radius: 999px; background: rgba(255,255,255,.2); margin: 0 auto 14px; }
.ap-blatt__titel { font-family: var(--ap-serif); font-size: 22px; color: var(--ap-sand); margin-bottom: 4px; }
.ap-blatt__text { font-size: 13px; color: var(--ap-sand-2); margin-bottom: 14px; }
@keyframes ap-hoch { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes ap-ein { from { opacity: 0; } to { opacity: 1; } }

/* ------------------------------------------------ Toast -------------- */

.ap-toasts { position: fixed; top: calc(env(safe-area-inset-top) + 10px); left: 12px; right: 12px; z-index: 70; display: grid; gap: 8px; pointer-events: none; }
.ap-toast { pointer-events: auto; display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #1c151c; border: 1px solid rgb(var(--c-gold) / .35); color: var(--ap-sand); font-size: 13.5px; line-height: 1.4; box-shadow: 0 18px 40px -12px rgba(0,0,0,.9); animation: ap-toast-ein .32s var(--ap-kurve); max-width: 560px; margin: 0 auto; width: 100%; }
.ap-toast .ap-i { margin-top: 1px; color: var(--ap-gold); }
.ap-toast--ok { border-color: rgba(62,207,142,.45); }
.ap-toast--ok .ap-i { color: var(--ap-ok); }
.ap-toast--fehler { border-color: rgba(255,93,108,.5); }
.ap-toast--fehler .ap-i { color: var(--ap-rot); }
.ap-toast.geht { animation: ap-toast-aus .25s ease-in forwards; }
.ap-toast__zu { margin-left: auto; color: var(--ap-sand-3); padding: 0 2px; }
.ap-toast ul { margin: 4px 0 0 16px; padding: 0; }
@keyframes ap-toast-ein { from { opacity: 0; transform: translateY(-14px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes ap-toast-aus { to { opacity: 0; transform: translateY(-10px); } }

/* ------------------------------------------------ Banner ------------- */

.ap-banner { display: flex; align-items: center; gap: 10px; padding: 8px 14px; font-size: 12.5px; background: linear-gradient(90deg, rgb(var(--c-burgund) / .8), rgb(var(--c-burgund) / .5)); color: var(--ap-sand); border-bottom: 1px solid rgb(var(--c-gold) / .3); }
.ap-banner a { margin-left: auto; color: var(--ap-gold); font-weight: 600; white-space: nowrap; }

/* ------------------------------------------------ Reiterleiste ------- */

.ap-tabs {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    height: calc(env(safe-area-inset-bottom) + var(--ap-tabs-hoehe));
    padding: 6px 6px calc(env(safe-area-inset-bottom) + 6px);
    background: linear-gradient(180deg, rgba(20,16,20,.88), rgba(12,10,12,.96));
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    border-top: 1px solid rgb(var(--c-gold) / .18);
    display: grid; grid-auto-flow: column; grid-auto-columns: 1fr;
}
.ap-tab {
    position: relative;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    color: var(--ap-sand-3);
    font-size: 10.5px; font-weight: 500; letter-spacing: .01em;
    border-radius: 12px;
    transition: color var(--ap-dauer), transform var(--ap-dauer) var(--ap-kurve);
    -webkit-user-select: none; user-select: none;
}
.ap-tab:active { transform: scale(.92); }
.ap-tab__icon { position: relative; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; }
.ap-tab__icon .ap-i { width: 24px; height: 24px; stroke-width: 1.6; }
.ap-tab.ist-aktiv { color: var(--ap-gold); }
.ap-tab.ist-aktiv .ap-i { stroke-width: 2.1; filter: drop-shadow(0 0 6px rgb(var(--c-gold) / .55)); }
.ap-tab.ist-aktiv::before { content: ""; position: absolute; top: -6px; width: 22px; height: 3px; border-radius: 0 0 4px 4px; background: var(--ap-gold); }
.ap-tab .ap-zaehlmarke { top: -5px; right: -9px; }

/* ------------------------------------------------ Anmelde-Seiten ----- */

.ap-buehne { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; padding: calc(env(safe-area-inset-top) + 32px) 22px calc(env(safe-area-inset-bottom) + 24px); max-width: 420px; margin: 0 auto; }
.ap-buehne__logo { height: 56px; width: auto; margin: 0 auto 14px; }
.ap-buehne__ueber { text-align: center; font-size: 11px; letter-spacing: .38em; text-transform: uppercase; color: var(--ap-gold); margin-bottom: 26px; }
.ap-buehne__titel { font-family: var(--ap-serif); font-size: 30px; line-height: 1.1; color: var(--ap-sand); text-align: center; margin-bottom: 8px; }
.ap-buehne__text { font-size: 14px; color: var(--ap-sand-2); text-align: center; line-height: 1.5; margin-bottom: 20px; }
.ap-buehne__fuss { font-size: 12px; color: var(--ap-sand-3); text-align: center; line-height: 1.5; margin-top: 22px; }
.ap-trenner { display: flex; align-items: center; gap: 12px; margin: 22px 0 16px; color: var(--ap-sand-3); font-size: 12px; }
.ap-trenner::before, .ap-trenner::after { content: ""; flex: 1; height: 1px; background: rgb(var(--c-gold) / .18); }

/* Kästchen (Häkchen) */
.ap-haken { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--ap-sand-2); line-height: 1.5; cursor: pointer; }
.ap-haken input { width: 20px; height: 20px; margin-top: 1px; accent-color: rgb(var(--c-gold)); flex: 0 0 auto; }

/* ------------------------------------------------ Nachrichten-Verlauf */

.ap-verlauf { display: grid; gap: 6px; max-height: 260px; overflow: auto; padding-right: 2px; }
.ap-blase { max-width: 88%; padding: 8px 12px; border-radius: 14px; font-size: 13px; line-height: 1.4; background: rgba(255,255,255,.06); color: var(--ap-sand); justify-self: start; border-bottom-left-radius: 4px; }
.ap-blase--rechts { justify-self: end; background: rgb(var(--c-gold) / .16); border-bottom-left-radius: 14px; border-bottom-right-radius: 4px; }
.ap-blase--rot { background: rgba(255,93,108,.14); }
.ap-blase__meta { font-size: 10.5px; color: var(--ap-sand-3); margin-bottom: 2px; }

/* ------------------------------------------------ Tabellen-Kleinkram - */

.ap-kv { display: grid; gap: 8px; }
.ap-kv__zeile { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.ap-kv__zeile span:first-child { color: var(--ap-sand-2); }
.ap-kv__zeile b { color: var(--ap-gold); font-weight: 600; font-variant-numeric: tabular-nums; }

.ap-details > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ap-details > summary::-webkit-details-marker { display: none; }
.ap-details > summary .ap-i { transition: transform var(--ap-dauer); }
.ap-details[open] > summary .ap-i { transform: rotate(180deg); }

.ap-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; word-break: break-all; color: var(--ap-sand); background: rgba(0,0,0,.35); border: 1px solid rgb(var(--c-gold) / .18); border-radius: 10px; padding: 10px 12px; }

/* QR */
.ap-qr { background: #fff; padding: 8px; border-radius: 12px; width: 156px; height: 156px; }

/* Versteckt, bis JS es zeigt */
[hidden] { display: none !important; }
.ap-js-nur { display: none; }
html.hat-js .ap-js-nur { display: revert; }

/* ------------------------------------------------ Breitere Geräte ---- */

@media (min-width: 600px) {
    .ap-kacheln--4 { grid-template-columns: repeat(4, 1fr); }
    .ap-galerie { grid-template-columns: repeat(4, 1fr); }
}

/* ------------------------------------------------ Nachbesserungen ---- */

/* Ohne JavaScript bleibt die Aktionsleiste sichtbar (sonst käme niemand zum Speichern). */
html:not(.hat-js) .ap-aktionsleiste { transform: none; pointer-events: auto; }
/* Feste Aktionsleiste: Inhalt bekommt unten Luft, damit nichts darunter verschwindet. */
body:has(.ap-aktionsleiste--immer) .ap-inhalt { padding-bottom: calc(env(safe-area-inset-bottom) + var(--ap-tabs-hoehe) + 100px); }
/* Tippflächen: mindestens 44 px */
.ap-chip { min-height: 40px; }
.ap-knopf--klein { height: 44px; }
.ap-pill { height: 38px; }
.ap-eingabe__rechts { height: 40px; }
.ap-eingabe__rechts .ap-i { position: static; transform: none; color: inherit; }
.ap-eingabe--mit-rechts .ap-feld { padding-right: 100px; }
/* Bild-Kacheln: senkrecht scrollen bleibt möglich, Ziehen startet erst nach langem Druck (JS). */
.ap-galerie__kachel { touch-action: pan-y; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.ap-galerie__kachel.wird-gezogen { touch-action: none; }
/* Raster-Kinder dürfen schrumpfen — sonst dehnt nowrap-Text Zeilen über den Rand (Nutzerliste). */
.ap-liste > *, .ap-kacheln > *, .ap-stapel > * { min-width: 0; max-width: 100%; }
.ap-zeile { min-width: 0; max-width: 100%; }
.ap-zeile__titel > .ap-kuerzen { min-width: 0; }
/* Verteilungs-Zeilen: Icon und Name nebeneinander */
.ap-verteilung__name { display: flex; align-items: center; gap: 6px; }
.ap-verteilung__name .ap-i { width: 1em; height: 1em; color: var(--ap-sand-3); }
/* Häkchen und Radios in Markenfarbe */
input[type="checkbox"], input[type="radio"] { accent-color: rgb(var(--c-gold)); }
/* Serifen-Titel mit Versalziffern (die 1 der Garamond sieht sonst aus wie ein I) */
.ap-kopf__titel, .ap-blatt__titel, .ap-leer__titel, .ap-buehne__titel { font-feature-settings: "lnum" 1; font-variant-numeric: lining-nums; }
