/* Oberfläche von polarhub.de (ergänzt /shared/polar.css, das auch polarcraft.de nutzt - deshalb steht alles Neue hier).
   Aufbau (Layout "Kacheln", seit 14.10.2026): oben die Kopfleiste (Titel links, Konto rechts), links das Seitenmenü aus Glas,
   rechts der Inhalt: Überschrift direkt auf dem Hintergrundbild, darunter Glaskacheln. Kopfleiste + Menü stehen in menue-vorlage.html
   (python3 seiten-bauen.py). Glas-Optik: Stärke --g (0 = fast deckend, 1 = am durchsichtigsten, Standard .55), je Konto einstellbar (hub.js). */
:root {
    --g: .55;
    --glas-deck: calc(97% - 36% * var(--g));      /* große Flächen (mindestens 61 % deckend) */
    --glas-hell: calc(1 + .32 * var(--g));        /* Hellmodus: Untergrund aufhellen, damit dunkle Schrift lesbar bleibt */
    --glas-karte: calc(100% - 28% * var(--g));    /* Kacheln */
    --glas-rand: rgba(255, 255, 255, .34);
    --muted: #475060;                              /* Nebentexte etwas dunkler als in polar.css, wegen des Glases */
    --menue-breit: 252px; --menue-schmal: 76px; --rand: 14px; --kopf: 82px; --inhalt-max: 1480px;
    --menue-w: var(--menue-breit);
}
html.menue-eng, html.menue-schmal { --menue-w: var(--menue-schmal); }
@media (max-width: 880px) { html.menue-eng, html.menue-schmal { --menue-w: var(--menue-breit); } }
@media (prefers-color-scheme: dark) { :root { --glas-rand: rgba(255, 255, 255, .16); --muted: #b3bcc9; --glas-hell: calc(1 - .3 * var(--g)); } }   /* Dunkelmodus: abdunkeln */
@media (max-width: 880px) { :root { --kopf: 74px; } }

html { scroll-behavior: smooth; }
[hidden] { display: none !important; }

/* Weicher Seitenwechsel: Kopfleiste und Menü bleiben stehen, der Rest blendet kurz über (Chrome, Edge, Safari) */
@view-transition { navigation: auto; }
.seitenkopf { view-transition-name: kopf; }
.seitenmenue { view-transition-name: menue; }
::view-transition-group(root) { animation-duration: .2s; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* ---------- Kopfleiste: großer Titel mit Zeile darunter, Konto rechts ---------- */
.nav { position: sticky; top: 0; z-index: 30; transition: background-color .25s, box-shadow .25s; }
.nav.scrolled { background: color-mix(in srgb, #00253f 58%, transparent); -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5); box-shadow: 0 8px 28px rgba(0, 0, 0, .28); }
.nav-inner { max-width: none; padding: 16px 26px 14px 30px; flex-wrap: nowrap; }
.brand { gap: 14px; }
.brand img { width: 50px; height: 50px; filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .3)); }
.marke-text { display: block; text-shadow: 0 1px 10px rgba(0, 0, 0, .4); }
.marke-text b { display: block; font-size: 1.9rem; line-height: 1; font-weight: 800; letter-spacing: -.03em; color: #fff; }
.marke-text small { display: block; margin-top: 6px; font-size: .86rem; font-weight: 500; letter-spacing: .01em; color: rgba(255, 255, 255, .86); }
.nav-inner .konto { margin-left: auto; }
.konto summary { width: 44px; height: 44px; }
.konto-menue { background-color: var(--surface); }   /* aufklappende Menüs bleiben deckend */
.vorhang, .menue-auf, .menue-kopf-klein { display: none; }

/* ---------- Seitenmenü: Glas wie die übrigen Flächen ---------- */
.seitenmenue {
    position: fixed; z-index: 40; top: var(--kopf); bottom: var(--rand); left: var(--rand); width: var(--menue-w);
    display: flex; flex-direction: column; padding: 14px 12px 12px; gap: 6px; color: var(--text);
    background: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, 0) 38%), color-mix(in srgb, var(--bg) var(--glas-deck), transparent);
    -webkit-backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell)); backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell));
    border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 18px 50px rgba(0, 0, 0, .30);
    transition: width .28s cubic-bezier(.2, .7, .2, 1);
}
.seitenmenue nav { flex: 1; overflow-y: auto; overflow-x: hidden; margin: 0 -4px; padding: 0 4px; scrollbar-width: none; }
.seitenmenue ul { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; }
.menue-gruppe { margin: 18px 10px 6px; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.seitenmenue li a, .einklappen {
    position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 5px 10px 5px 6px; border: 0; border-radius: 14px; background: transparent;
    color: var(--text); text-decoration: none; font: inherit; font-size: .98rem; font-weight: 500; text-align: left; cursor: pointer; transition: background .18s, color .18s;
}
.seitenmenue li a:hover, .einklappen:hover { background: color-mix(in srgb, var(--accent) 9%, transparent); color: var(--accent); }
.seitenmenue li a[aria-current="page"] { background: var(--accent-soft); color: var(--accent); font-weight: 700; }
.seitenmenue li a[aria-current="page"]::before { content: ""; position: absolute; left: -12px; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: var(--accent); }
.kachel { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow); }
.kachel .ic, .kachel i[data-ic] { width: 22px; height: 22px; }
.einklappen .kachel svg { width: 20px; height: 20px; fill: none; stroke: var(--accent); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .28s; }
.seitenmenue .menue-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.extern { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.menue-fuss { padding-top: 8px; border-top: 1px solid var(--line); }

/* Eingeklappt (Knopf unten im Menü) und mittlere Fenster: nur die Kacheln, Namen erscheinen beim Darüberfahren */
html.menue-eng .menue-text, html.menue-schmal .menue-text, html.menue-eng .extern, html.menue-schmal .extern { display: none; }
html.menue-eng .seitenmenue, html.menue-schmal .seitenmenue { width: var(--menue-schmal); }
html.menue-eng .einklappen .kachel svg { transform: rotate(180deg); }
html.menue-eng .menue-gruppe, html.menue-schmal .menue-gruppe { height: 1px; margin: 12px 14px; padding: 0; overflow: hidden; background: var(--line); font-size: 0; }
html.menue-eng .seitenmenue li a, html.menue-schmal .seitenmenue li a, html.menue-eng .einklappen, html.menue-schmal .einklappen { justify-content: center; padding: 5px 0; }
html.menue-eng [data-tip]:hover::after, html.menue-schmal [data-tip]:hover::after, html.menue-eng [data-tip]:focus-visible::after, html.menue-schmal [data-tip]:focus-visible::after {
    content: attr(data-tip); position: absolute; left: calc(100% + 14px); top: 50%; transform: translateY(-50%); padding: 6px 12px; border-radius: 9px; background: var(--surface); color: var(--text); border: 1px solid var(--line); font-size: .86rem; font-weight: 500; white-space: nowrap; box-shadow: 0 6px 18px rgba(0, 0, 0, .3); pointer-events: none; z-index: 50;
}
@media (min-width: 881px) and (min-height: 640px) { html.menue-eng .seitenmenue nav, html.menue-schmal .seitenmenue nav { overflow: visible; } }
@media (min-width: 881px) and (max-width: 1099px) { .menue-fuss { display: none; } }

/* ---------- Inhalt ---------- */
.inhalt { margin-left: calc(var(--menue-w) + 2 * var(--rand)); min-height: calc(100vh - var(--kopf)); flex: 1; display: flex; flex-direction: column; padding: 0 var(--rand) 0 0; transition: margin-left .28s cubic-bezier(.2, .7, .2, 1); }
.hinweis { width: auto; max-width: var(--inhalt-max); margin: 4px var(--rand) 8px calc(var(--menue-w) + 2 * var(--rand)); }
.inhalt footer { margin-top: auto; padding: 22px 0 18px; }
.wrap {
    width: 100%; max-width: var(--inhalt-max); margin: 0; padding: 0 6px 36px; flex: 1;
    background: none; border: 0; border-radius: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none;
}
.wrap.lesen { max-width: 920px; }
body > .wrap:first-child, body > .wrap.center { margin-block: 0; }
.hero { max-width: none; padding: 30px 6px 28px; }
.hero h1, .hero .lead, .hero > p { color: #fff; text-shadow: 0 2px 22px rgba(0, 0, 0, .5); }
.hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.3rem); letter-spacing: -.03em; }
.hero .lead, .hero > p:not(.lead) { color: rgba(255, 255, 255, .9); }
.hero .lead { max-width: 64ch; }
/* Abschnitte der Seiten sind Glaskacheln auf dem Bild; ".lose" = ohne eigene Kachel (die Karten darin sind schon Kacheln) */
.wrap > .section { margin-top: 16px; padding: 26px 28px; border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); }
.wrap > .section.lose { padding: 0; border: 0; box-shadow: none; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.wrap > .section.lose > h2 { color: rgba(255, 255, 255, .92); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(0, 0, 0, .5); }
.wrap > .section > h2 { margin-bottom: 14px; }
.card, .tile, .zeilen, details.cat, details.merkliste, .paket, .scroll, .list {
    background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent);
}
.wrap > .section.lose .card, .wrap > .section.lose .tile, .wrap > .card, .wrap > .tile, .wrap > details.cat { -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); border-color: var(--glas-rand); }
.wrap .section .card, .wrap .section .tile { box-shadow: none; }

/* Konto: Abschnitte stehen in Containern, nicht direkt unter main */
.mein-kopf h1, .mein-kopf .muted { color: #fff; text-shadow: 0 2px 22px rgba(0, 0, 0, .5); } .mein-kopf .muted { color: rgba(255, 255, 255, .88); }
.mein div > .section, .mein > .section { margin-top: 16px; padding: 26px 28px; border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); }
.mein .section .card, .mein .section .tile, .mein .section .zeilen { box-shadow: none; }
.mein #aus > .card { margin-top: 16px; }
/* Fehlerseite: die Mitte als eine Kachel */
.wrap.center { align-items: center; justify-content: center; flex: 0 1 auto; width: min(560px, 100%); margin: 8vh auto; padding: 36px 28px; text-align: center; border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); }
.inhalt:has(> .wrap.center) { justify-content: center; }

/* Bewegung: Knöpfe geben Rückmeldung (kein Einblenden beim Laden mehr, das wirkte wie Flackern) */
.btn, button, .chips a, a.card, .konto summary { transition: transform .12s ease, filter .15s, background-color .2s, border-color .2s, color .2s; }
.btn:active { transform: scale(.97); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn:active { transform: none; } .seitenmenue, .inhalt { transition: none !important; } }

/* ---------- Handy und kleine Fenster: Menüknopf links in der Kopfleiste, Menü fährt von links herein ---------- */
@media (max-width: 880px) {
    .menue-auf { display: grid; place-items: center; width: 40px; height: 40px; margin-right: -4px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .16); cursor: pointer; flex: none; transition: background .2s; }
    .menue-auf:hover { background: rgba(255, 255, 255, .28); }
    .menue-auf svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
    .nav-inner { padding: 12px 16px; gap: 12px; }
    .brand img { width: 40px; height: 40px; } .marke-text b { font-size: 1.5rem; } .marke-text small { font-size: .78rem; }
    .seitenmenue, html.menue-eng .seitenmenue, html.menue-schmal .seitenmenue { top: 0; bottom: 0; left: 0; width: min(310px, 86vw); border-radius: 0 22px 22px 0; padding-top: 10px; background-color: color-mix(in srgb, var(--bg) 94%, transparent); transform: translateX(-105%); transition: transform .3s cubic-bezier(.2, .7, .2, 1); visibility: hidden; }
    .seitenmenue.offen, html.menue-eng .seitenmenue.offen, html.menue-schmal .seitenmenue.offen { transform: none; visibility: visible; }
    .menue-kopf-klein { display: flex; align-items: center; justify-content: space-between; padding: 4px 6px 6px 12px; font-weight: 700; font-size: 1.05rem; }
    .menue-zu { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; color: var(--text); background: var(--accent-soft); cursor: pointer; }
    .menue-zu svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
    .menue-fuss { display: none; }
    html.menue-eng .menue-text, html.menue-schmal .menue-text, html.menue-eng .extern, html.menue-schmal .extern { display: block; }
    html.menue-eng .menue-gruppe, html.menue-schmal .menue-gruppe { height: auto; margin: 18px 10px 6px; font-size: .68rem; background: none; }
    html.menue-eng .seitenmenue li a, html.menue-schmal .seitenmenue li a { justify-content: flex-start; padding: 5px 10px 5px 6px; }
    html.menue-eng .seitenmenue li a[aria-current="page"]::before { left: -12px; }
    .vorhang { display: block; position: fixed; inset: 0; z-index: 35; background: rgba(0, 12, 24, .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); animation: einblenden .25s; }
    .vorhang[hidden] { display: none !important; }
    .inhalt, .hinweis { margin-left: 0; }
    .inhalt { padding: 0 8px; }
    .hinweis { margin: 4px 8px 8px; }
    .hero { padding: 22px 8px 26px; }
    .wrap { padding: 0 0 28px; }
    .wrap > .section { padding: 20px 18px; }
}
@media (max-width: 520px) { .marke-text small { display: none; } }
@keyframes einblenden { from { opacity: 0; } }

/* Symbole im Stil des Logos (hub.js und /shared/icons.js ersetzen <i data-ic="…"> durch die Zeichnung) */
.ic { width: 1.25em; height: 1.25em; flex: none; vertical-align: -.25em; }
i[data-ic] { display: inline-block; width: 1.25em; height: 1.25em; }   /* Platz halten, bis die Zeichnung da ist */
.card .icon .ic, .card .icon i[data-ic] { width: 2.2rem; height: 2.2rem; }

/* Registrieren: Fläche als Glas wie auf den übrigen Seiten */
.anm-karte {
    background-color: color-mix(in srgb, var(--surface) calc(100% - 22% * var(--g)), transparent);
    -webkit-backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell)); backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell));
    border: 1px solid var(--glas-rand); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 18px 50px rgba(0, 0, 0, .30);
}

/* Weitere Hintergrundbilder (Konto > Aussehen), alle CC0 / gemeinfrei von Wikimedia Commons, Quellen in ~/polarwolke-tools/README.md.
   Die Tönung hält die weiße Schrift von Kopfleiste und Fußzeile lesbar. */
html[data-hg=eishoehle] body { background-color: #0a4f8a; background-image: linear-gradient(rgba(0,25,50,.18), rgba(0,25,50,.18)), url(hg/hintergrund-eishoehle.jpg); }
html[data-hg=polarlicht] body { background-color: #1d1a33; background-image: linear-gradient(rgba(0,0,12,.12), rgba(0,0,12,.12)), url(hg/hintergrund-polarlicht.jpg); }
html[data-hg=aurora] body { background-color: #0a1f2e; background-image: linear-gradient(rgba(0,0,12,.10), rgba(0,0,12,.10)), url(hg/hintergrund-aurora.jpg); }
html[data-hg=bergsee] body { background-color: #46564f; background-image: linear-gradient(rgba(10,25,25,.45), rgba(10,25,25,.45)), url(hg/hintergrund-bergsee.jpg); }
html[data-hg=eisberg] body { background-color: #2b4357; background-image: linear-gradient(rgba(5,20,35,.38), rgba(5,20,35,.38)), url(hg/hintergrund-eisberg.jpg); }
html[data-hg=eisnebel] body { background-color: #6d7f86; background-image: linear-gradient(rgba(8,22,30,.5), rgba(8,22,30,.5)), url(hg/hintergrund-eisnebel.jpg); }
html[data-hg=nachtsee] body { background-color: #0a1420; background-image: linear-gradient(rgba(0,0,10,.10), rgba(0,0,10,.10)), url(hg/hintergrund-nachtsee.jpg); }
#gast { margin-bottom: 16px; }
/* Verwaltung: der ganze Bereich als eine Kachel */
.wrap > .admin { margin-top: 16px; padding: 22px 24px; border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); }
/* Einzelnes Werkzeug (tools/): Zurück-Link als Knopf, der Rest in einer Kachel */
#app > .section { margin-top: 16px; padding: 26px 28px; border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); }
#app > .section .card { box-shadow: none; }
#app > .back { margin: 8px 0 0; }
#app > .back a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid var(--glas-rand); border-radius: 999px; color: var(--text); font-weight: 600; background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
#app > .back a:hover { color: var(--accent); }
#app > h2, #app > p.muted { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .5); }
#app > h2 { margin-top: 18px; font-size: 1.6rem; } #app > p.muted { margin: 2px 0 14px; color: rgba(255, 255, 255, .88); }
#app .buttons .btn.ghost, #app > div > .btn.ghost { background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
/* Konverter: Ablagefeld, Gruppen und Aufträge als Glas statt reinem Weiß */
.ablage, .gruppe, .auftraege, .auftrag { background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); }
.ablage { -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); border-color: var(--glas-rand); }
.wrap .ablage:not(:hover):not(:focus-within), .wrap .gruppe, .wrap .auftrag { background: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); }

/* ---------- Feedback auf jeder Seite (feedback.js) ---------- */
.fb-wrap { width: 100%; max-width: var(--inhalt-max); padding: 0 6px; margin-top: 8px; }
.fb { border: 1px solid var(--glas-rand); border-radius: 22px; box-shadow: var(--shadow); background-color: color-mix(in srgb, var(--surface) var(--glas-karte), transparent); -webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4); overflow: hidden; }
.fb-kopf { display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 22px; border: 0; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.fb-kopf:hover { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.fb-icon { flex: none; width: 34px; height: 34px; border-radius: 11px; background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5.5A3.5 3.5 0 0 1 7.5 2h9A3.5 3.5 0 0 1 20 5.5v8a3.5 3.5 0 0 1-3.5 3.5H10l-4.5 4v-4A3.5 3.5 0 0 1 4 13.500z' fill='%233D7BFF'/%3E%3Cpath d='M8 8h8M8 11.500h5' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' fill='none'/%3E%3C/svg%3E") center / 22px no-repeat; border: 1px solid var(--line); }
.fb-text { flex: 1; min-width: 0; } .fb-text b { display: block; font-size: 1.05rem; } .fb-text small { display: block; color: var(--muted); font-size: .9rem; }
.fb-pfeil { flex: none; width: 9px; height: 9px; border-right: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(45deg); transition: transform .2s; margin-right: 6px; }
.fb.offen .fb-pfeil { transform: rotate(-135deg); }
.fb-form { display: grid; gap: 14px; padding: 4px 22px 22px; }
.fb-form label { display: grid; gap: 6px; font-weight: 600; font-size: .92rem; color: var(--muted); }
.fb-form input, .fb-form select, .fb-form textarea { width: 100%; padding: 10px 14px; font: inherit; font-weight: 400; color: var(--text); background: var(--bg); border: 1px solid var(--line); border-radius: 10px; }
.fb-form textarea { resize: vertical; min-height: 110px; }
.fb-zeile { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.fb-hinweis { margin: 0; font-size: .85rem; color: var(--muted); }
.fb-aktion { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.fb-status { margin: 0; font-weight: 600; } .fb-status.ok { color: var(--ok); } .fb-status.fehler { color: var(--err); }
@media (max-width: 880px) { .fb-wrap { padding: 0; } .fb-kopf { padding: 14px 16px; } .fb-form { padding: 4px 16px 18px; } }

/* ---------- Pinnwand (pinnwand.js) ---------- */
.pin-knopf { display: flex; align-items: center; gap: 8px; margin-left: auto; margin-right: 12px; padding: 9px 16px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; color: #fff; font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; background: rgba(0, 20, 40, .35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: background .2s, transform .12s; }
.pin-knopf:hover, .pin-knopf[aria-expanded=true] { background: rgba(255, 255, 255, .22); } .pin-knopf:active { transform: scale(.97); }
.pin-ico { width: 18px; height: 18px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3l7 7-3 1-3.500 3.500.5 4.500-2 2-4-4-5 5-1-1 5-5-4-4 2-2 4.500.5L13 6z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3l7 7-3 1-3.500 3.500.5 4.500-2 2-4-4-5 5-1-1 5-5-4-4 2-2 4.500.5L13 6z'/%3E%3C/svg%3E") center / contain no-repeat; }
.nav-inner .pin-knopf + .konto { margin-left: 0; }
.pinnwand { --pin-w: 330px; position: fixed; z-index: 20; top: var(--kopf); right: var(--rand); bottom: var(--rand); width: var(--pin-w); display: flex; flex-direction: column; padding: 14px 14px 10px; border-radius: 22px; color: var(--text);
    background: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, 0) 38%), color-mix(in srgb, var(--bg) var(--glas-deck), transparent); -webkit-backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell)); backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell));
    border: 1px solid var(--glas-rand); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 18px 50px rgba(0, 0, 0, .30); transform: translateX(calc(100% + 30px)); opacity: 0; visibility: hidden; transition: transform .3s cubic-bezier(.2, .7, .2, 1), opacity .25s, visibility 0s .3s; }
html.pin-auf .pinnwand { transform: none; opacity: 1; visibility: visible; transition-delay: 0s; }
@media (min-width: 1500px) { html.pin-auf .inhalt { margin-right: 344px; } html.pin-auf .hinweis { margin-right: 344px; } }
.pin-kopf { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pin-kopf h2 { flex: 1; margin: 0; font-size: 1.1rem; }
.pin-zu { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: var(--accent-soft); color: var(--accent); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.pin-farben { display: flex; gap: 6px; }
.pin-farben button { width: 22px; height: 22px; padding: 0; border-radius: 50%; border: 2px solid transparent; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); transition: transform .12s; }
.pin-farben button:hover { transform: scale(1.15); } .pin-farben button[aria-checked=true] { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.pin-neu { padding: 7px 14px; border: 0; border-radius: 999px; background: var(--accent); color: #fff; font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.pin-flaeche { position: relative; flex: 1; overflow: auto; border-radius: 14px; border: 1px dashed var(--line); background-image: radial-gradient(color-mix(in srgb, var(--muted) 35%, transparent) 1px, transparent 1px); background-size: 22px 22px; touch-action: none; }
.pn-zettel { position: absolute; width: 170px; min-height: 120px; display: flex; flex-direction: column; border-radius: 4px 4px 14px 4px; box-shadow: 0 8px 18px rgba(0, 0, 0, .28), 0 1px 2px rgba(0, 0, 0, .2); color: #2a2a2a; --n: #ffe27a; background: var(--n); transform: rotate(var(--r, 0deg)); transition: box-shadow .15s, transform .15s; }
.pn-zettel.zieht { box-shadow: 0 16px 30px rgba(0, 0, 0, .35); transform: rotate(0deg) scale(1.03); z-index: 5; cursor: grabbing; }
.pn-griff { display: flex; align-items: center; justify-content: space-between; padding: 4px 6px 0 10px; cursor: grab; touch-action: none; user-select: none; }
.pn-griff::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ff9a9a, #c0392b); box-shadow: 0 2px 3px rgba(0, 0, 0, .4); }
.pn-farbe, .pn-weg { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: rgba(0, 0, 0, .55); font: inherit; font-size: 1rem; line-height: 1; cursor: pointer; }
.pn-farbe:hover, .pn-weg:hover { background: rgba(0, 0, 0, .12); }
.pn-zettel textarea { flex: 1; width: 100%; min-height: 84px; padding: 4px 10px 10px; border: 0; resize: none; background: transparent; color: inherit; font: 500 .95rem/1.4 "Segoe Print", "Bradley Hand", "Comic Sans MS", system-ui, sans-serif; outline: none; }
.pn-farbwahl { position: absolute; right: 4px; top: 28px; z-index: 6; display: flex; gap: 5px; padding: 6px; border-radius: 12px; background: rgba(255, 255, 255, .95); box-shadow: 0 8px 20px rgba(0, 0, 0, .3); }
.pn-farbwahl button { width: 22px; height: 22px; padding: 0; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .2); cursor: pointer; }
.pin-fuss { display: flex; justify-content: space-between; gap: 8px; margin: 8px 2px 0; font-size: .78rem; color: var(--muted); }
.pin-text { padding: 0; border: 0; background: none; color: var(--accent); font: inherit; cursor: pointer; text-decoration: underline; white-space: nowrap; }
@media (max-width: 1499px) { .pinnwand { box-shadow: 0 24px 60px rgba(0, 0, 0, .5); } }
@media (max-width: 880px) { .pinnwand { top: auto; left: var(--rand); right: var(--rand); width: auto; height: 62vh; bottom: var(--rand); transform: translateY(calc(100% + 30px)); } .pin-bez { display: none; } .pin-knopf { padding: 9px; margin-right: 8px; } }
@media (prefers-reduced-motion: reduce) { .pinnwand, .pn-zettel, .pin-knopf { transition: none; } }

/* Pinnwand, Nachbesserung: unter der Kopfleiste (Konto-Menü bleibt bedienbar), deutlicher Schließen-Knopf, Seitenzone */
.pin-kopf { display: grid; grid-template-columns: 1fr auto; gap: 8px 10px; }
.pin-kopf h2 { margin: 0; align-self: center; }
.pin-zu { display: flex; align-items: center; gap: 8px; width: auto; height: auto; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; font-weight: 600; font-size: .9rem; }
.pin-zu b { font-size: 1.15rem; line-height: 1; color: var(--accent); } .pin-zu:hover { border-color: var(--accent); background: var(--accent-soft); }
.pin-werkzeug { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.pin-flaeche { overflow: hidden; }
.pin-zone { position: absolute; left: 0; right: 0; bottom: 0; height: 25%; z-index: 0; pointer-events: none; border-top: 2px dashed color-mix(in srgb, var(--accent) 45%, transparent); background: color-mix(in srgb, var(--accent) 7%, transparent); transition: background .2s; }
.pin-seite-aktiv .pin-zone { background: color-mix(in srgb, var(--accent) 20%, transparent); }
.pin-zone-name { position: absolute; left: 10px; top: 4px; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.pin-zone-neu { position: absolute; right: 8px; top: 3px; width: 22px; height: 22px; padding: 0; pointer-events: auto; border: 0; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; }
.pn-zettel { z-index: 1; min-height: 104px; } .pn-zettel textarea { min-height: 66px; }
.pn-zettel.zieht { transition: none; }
/* Registrieren: Karte als Glas */
.anm-karte { background-color: color-mix(in srgb, var(--surface) calc(100% - 22% * var(--g)), transparent); -webkit-backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell)); backdrop-filter: blur(26px) saturate(1.5) brightness(var(--glas-hell)); border: 1px solid var(--glas-rand); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .38), 0 18px 50px rgba(0, 0, 0, .30); }
/* Seiten mit data-pin="zu" (Registrieren): die Pinnwand liegt nur darüber, der Inhalt rückt nicht zur Seite */
@media (min-width: 1500px) { html[data-pin="zu"].pin-auf .inhalt, html[data-pin="zu"].pin-auf .hinweis { margin-right: var(--rand); } }
/* Registrieren: alles in einem Bildschirm (Feedback und Fußzeile schmaler, Titel über der Karte entfällt, steht schon oben) */
html[data-pin="zu"] .anm-kopf { display: none; }
html[data-pin="zu"] .inhalt > footer { padding: 8px 0 8px; }
html[data-pin="zu"] .fb-kopf { padding: 8px 22px; } html[data-pin="zu"] .fb-wrap { margin-top: 0; }
html[data-pin="zu"] .anm-karte { padding: 22px 40px 18px; }
/* Registrieren: Karte genau in der Fenstermitte (links Menü, rechts gleich viel Platz; Pinnwand liegt nur darüber) */
@media (min-width: 881px) { html[data-pin="zu"] .inhalt, html[data-pin="zu"].pin-auf .inhalt { margin-right: calc(var(--menue-w) + 2 * var(--rand)); } }
html[data-pin="zu"] .anm-karte { padding: 18px 40px 14px; } html[data-pin="zu"] .anm-karte textarea { min-height: 52px; }
.inhalt { min-height: calc(100vh - 88px); }   /* die Kopfleiste ist 88 px hoch (nicht 82): sonst scrollt jede kurze Seite um 6 px */
@media (max-width: 880px) { .inhalt { min-height: calc(100vh - 80px); } }
@media (min-width: 881px) { html[data-pin="zu"] .inhalt { padding-right: 0; } }

/* ---------- Anmelden und Registrieren: Karte "zweigeteilt" (Bild links, Formular rechts); gemeinsam für polarhub.de und die Keycloak-Seiten ---------- */
.a-karte { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(320px, 1fr); width: min(940px, 100%); min-height: 500px; margin: 0 auto; border-radius: 28px; overflow: hidden;
    background: linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(255, 255, 255, 0) 38%), color-mix(in srgb, var(--bg) var(--glas-deck), transparent); -webkit-backdrop-filter: blur(26px) saturate(1.5); backdrop-filter: blur(26px) saturate(1.5);
    border: 1px solid var(--glas-rand); box-shadow: 0 24px 70px rgba(0, 0, 0, .4); }
.a-bild { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding: 34px; color: #fff; background: linear-gradient(180deg, rgba(0, 38, 64, .1), rgba(0, 25, 45, .82)), url(hg/hintergrund-eishoehle.jpg) center / cover; }
.a-marke { position: absolute; top: 28px; left: 34px; display: flex; align-items: center; gap: 10px; font-size: 1.2rem; font-weight: 700; color: #fff; text-decoration: none; } .a-marke img { width: 36px; height: 36px; }
.a-titel { margin: 0; font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.08; font-weight: 800; letter-spacing: -.03em; text-shadow: 0 2px 18px rgba(0, 0, 0, .4); }
.a-bild p { margin: 0; color: rgba(255, 255, 255, .9); max-width: 34ch; font-size: .98rem; }
.a-liste { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 9px; font-weight: 600; font-size: .93rem; }
.a-liste li { display: flex; align-items: center; gap: 12px; }
.a-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 6px rgba(0, 0, 0, .2); } .a-ic .ic, .a-ic svg { width: 19px; height: 19px; }
.a-form { display: grid; align-content: center; gap: 13px; padding: 36px 40px 28px; color: var(--text); min-width: 0; }
.a-form h1, .a-form h2, .a-form #kc-page-title { margin: 0 0 4px; font-size: 1.85rem; font-weight: 800; letter-spacing: -.02em; color: var(--text); }
.a-form label { display: grid; gap: 6px; font-weight: 700; font-size: .9rem; color: var(--text); }
.a-form input[type=text], .a-form input[type=email], .a-form input[type=password], .a-form textarea { width: 100%; padding: 10px 14px; min-height: 44px; font: inherit; font-weight: 400; color: var(--text); background: var(--surface); border: 1px solid var(--line); border-radius: 12px; transition: border-color .2s, box-shadow .2s; }
.a-form textarea { min-height: 76px; resize: vertical; }
.a-form input:focus-visible, .a-form textarea:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent); }
.a-form input[aria-invalid="true"] { border-color: var(--err); }
.a-form .falle { position: absolute; left: -9999px; }
.a-form form { display: grid; gap: 13px; }
.a-form .btn.breit { display: block; width: 100%; min-height: 48px; border-radius: 12px; font-size: 1.02rem; text-align: center; }
.a-form .anm-hinweis { margin: 4px 0 0; text-align: center; font-size: .92rem; color: var(--muted); }
.a-form .anm-fehler { margin: 0; padding: 10px 14px; border-radius: 10px; background: color-mix(in srgb, var(--err) 12%, transparent); color: var(--err); font-size: .95rem; }
.a-form .anm-text { margin: 0 0 8px; } .a-form .anm-liste { margin: 0 0 8px; padding-left: 1.3em; display: grid; gap: 6px; }
.pw-feld { display: flex; gap: 6px; } .pw-feld input { flex: 1; min-width: 0; }
.pw-zeigen { flex: none; padding: 0 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--accent); font: inherit; font-weight: 600; font-size: .85rem; cursor: pointer; } .pw-zeigen:hover { background: var(--accent-soft); }
.polar-zeile { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .92rem; }
.polar-zeile .haken { display: flex; align-items: center; gap: 8px; font-weight: 400; font-size: .92rem; } .polar-zeile .haken input { width: 17px; height: 17px; accent-color: var(--accent); }
.a-oder { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; color: var(--muted); font-size: .85rem; } .a-oder::before, .a-oder::after { content: ""; height: 1px; background: var(--line); }
.a-passkey, .a-form a.pf-v5-c-button, .a-form .pf-v5-c-button.pf-m-secondary { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 16px; border: 1px solid var(--accent); border-radius: 12px; background: color-mix(in srgb, var(--accent) 8%, transparent); color: var(--accent); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .2s; box-sizing: border-box; }
.a-passkey:hover, .a-form a.pf-v5-c-button:hover { background: color-mix(in srgb, var(--accent) 16%, transparent); }
.a-form .pf-v5-c-form, .a-form .pf-v5-c-login__main-body { display: grid; gap: 13px; padding: 0; }
.seite-anm { align-items: center; justify-content: center; }
@media (max-width: 880px) { .a-karte { grid-template-columns: 1fr; min-height: 0; } .a-bild { min-height: 200px; padding: 22px; } .a-liste { display: none; } .a-marke { top: 20px; left: 22px; } .a-form { padding: 24px 20px; } }
/* Registrieren/Anmelden: in einem Bildschirm (Karte, Feedback, Fußzeile) */
html[data-pin="zu"] .a-karte { min-height: 0; }
html[data-pin="zu"] .a-form { padding-top: 24px; padding-bottom: 18px; gap: 11px; } html[data-pin="zu"] .a-bild { padding: 26px 30px; }
html[data-pin="zu"] .a-form textarea { min-height: 54px; }
.a-bild .a-titel { font-size: clamp(1.8rem, 3vw, 2.4rem); color: #fff; }
@media (max-width: 880px) { .a-marke { position: static; margin-bottom: auto; } .a-bild { gap: 8px; min-height: 190px; } }
