/* Öffentliches Portal: Startseite, Registrierung, Anmeldung, rechtliche Seiten.
   Eigene Datei, damit sie unabhängig vom Zwischenspeicher von style.css ist. */
:root {
    --pt-orange: #FF9248;        /* Buttons, Balken, Schlussband – mit dunkler Schrift */
    --pt-orange-hover: #F77F2E;
    --pt-akzent: #B84A0C;        /* Links, Symbole, Zahlen – lesbar auf Weiß */
    --pt-pfirsich: #FFE0C7;      /* Tönungen */
    --pt-tinte: #2B1B24;         /* warmes Pflaumenbraun statt Schwarz */
    --pt-tinte-weich: #5A4352;
    --pt-papier: #FFFFFF;
    --pt-flaeche: #FFF1E6;       /* Apricot */
    --pt-linie: #F0CDB3;
    --pt-pflaume: #3A2233;       /* Logo, Pinnnadel */
    /* Schilderschrift: DIN/Bahnschrift sind auf Windows und Mac vorhanden – keine Web-Schrift nötig */
    --pt-schild: Bahnschrift, "DIN Alternate", "DIN Next", "D-DIN", "Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;
}

/* Öffentliche Seiten: Grundfarben von style.css auf Orange umstellen (Verwaltung bleibt unverändert) */
body.pt-start, body.pt-auth {
    --primary: var(--pt-akzent);
    --primary-strong: #A4440B;
    --primary-tint: var(--pt-pfirsich);
    --primary-ring: rgba(255, 146, 72, .45);
    --ink: var(--pt-tinte);
    --muted: var(--pt-tinte-weich);
    --line: var(--pt-linie);
    --line-strong: #E2B796;
    color: var(--pt-tinte);
}
/* Hauptbuttons: helles Orange mit dunkler Schrift */
body.pt-start .button:not(.button-secondary):not(.pt-button-hell),
body.pt-auth .button:not(.button-secondary),
body.pt-auth button[type="submit"]:not(.button-secondary) {
    background: var(--pt-orange); border-color: var(--pt-orange); color: var(--pt-tinte);
}
body.pt-start .button:not(.button-secondary):not(.pt-button-hell):hover,
body.pt-auth .button:not(.button-secondary):hover,
body.pt-auth button[type="submit"]:not(.button-secondary):hover {
    background: var(--pt-orange-hover); border-color: var(--pt-orange-hover); color: var(--pt-tinte);
}
body.pt-start .button-secondary, body.pt-auth .button-secondary { background: var(--pt-papier); border-color: var(--line-strong); color: var(--pt-tinte); }
body.pt-start .button-secondary:hover, body.pt-auth .button-secondary:hover { background: var(--pt-pfirsich); color: var(--pt-tinte); }

/* ---------- Marke ---------- */
.pt-marke { display: inline-flex; align-items: center; gap: 10px; color: var(--pt-tinte); text-decoration: none; font-family: var(--pt-schild); font-weight: 700; font-size: 1.45rem; letter-spacing: .01em; }
.pt-marke:hover { color: var(--pt-tinte); }
.pt-logo { width: 38px; height: 38px; color: var(--pt-pflaume); flex: none; }
.pt-marke-klein { font-size: 1.2rem; margin-bottom: 18px; }
.pt-marke-klein .pt-logo { width: 32px; height: 32px; }

/* ---------- Startseite ---------- */
body.pt-start { background: var(--pt-flaeche); color: var(--pt-tinte); padding: 0; }
.pt-kopf { max-width: 1120px; margin: 0 auto; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pt-kopf-nav { display: flex; align-items: center; gap: 6px 18px; flex-wrap: wrap; }
.pt-link-anmelden { color: var(--pt-tinte); font-weight: 600; text-decoration: none; padding: 8px 2px; border-bottom: 2px solid transparent; }
.pt-link-anmelden:hover, .pt-link-anmelden.is-aktiv { border-bottom-color: var(--pt-orange); color: var(--pt-tinte); }

.pt-held { max-width: 1120px; margin: 0 auto; padding: 40px 24px 84px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; align-items: center; }
.pt-held h1 { font-family: var(--pt-schild); font-weight: 700; font-size: clamp(2.6rem, 6.2vw, 4.6rem); line-height: .98; letter-spacing: -.012em; margin: 0 0 22px; color: var(--pt-tinte); max-width: 11ch; }
.pt-held-unter { font-size: 1.22rem; line-height: 1.55; max-width: 34em; margin: 0 0 30px; color: var(--pt-tinte-weich); }
.pt-held-aktionen { display: flex; flex-wrap: wrap; gap: 12px; }
.pt-button-gross { padding: 15px 26px; font-size: 1.05rem; border-radius: 11px; }
.pt-held-hinweis { margin: 18px 0 0; color: var(--muted); font-size: .95rem; }

/* Der Aushang: das eine auffällige Element der Seite */
.pt-aushang { position: relative; margin: 0; justify-self: center; width: min(100%, 400px); transform: rotate(-2.2deg); filter: drop-shadow(0 18px 28px rgba(122, 58, 20, .16)) drop-shadow(0 2px 3px rgba(122, 58, 20, .12)); }
.pt-aushang-blatt { background: var(--pt-papier); padding: 38px 30px 22px; border-radius: 3px 3px 0 0; }
.pt-nadel { position: absolute; top: -9px; left: 50%; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #9C6A8C 0 16%, #5B3150 45%, var(--pt-pflaume) 100%); box-shadow: 0 3px 4px rgba(0, 0, 0, .25); z-index: 2; }
.pt-aushang-verein { margin: 0 0 4px; color: var(--pt-akzent); font-weight: 700; font-size: .92rem; }
.pt-aushang-titel { margin: 0; font-family: var(--pt-schild); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--pt-tinte); }
.pt-aushang-wann { margin: 8px 0 22px; color: var(--pt-tinte-weich); }
.pt-aushang-plaetze p { margin: 8px 0 0; font-size: .95rem; color: var(--muted); }
.pt-aushang-plaetze strong { color: var(--pt-tinte); }
.pt-balken { height: 10px; border-radius: 99px; background: var(--pt-pfirsich); overflow: hidden; }
.pt-balken span { display: block; height: 100%; background: var(--pt-orange); border-radius: inherit; }
.pt-aushang-liste { list-style: none; margin: 20px 0 0; padding: 0; border-top: 1px dashed var(--pt-linie); }
.pt-aushang-liste li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--pt-linie); font-size: .95rem; }
.pt-aushang-liste li span:last-child { color: var(--muted); white-space: nowrap; }
/* Abreißzettel unten am Aushang */
.pt-abriss { display: grid; grid-template-columns: repeat(6, 1fr); }
.pt-abriss span { display: flex; align-items: center; justify-content: center; height: 96px; font-size: .78rem; font-weight: 700; letter-spacing: .02em; color: var(--pt-akzent); writing-mode: vertical-rl; transform: rotate(180deg); border-right: 1px dashed var(--pt-linie); border-top: 2px dashed #E2B796; background: var(--pt-papier); border-radius: 0 0 2px 2px; }
.pt-abriss span:last-child { border-right: 0; }
.pt-abriss span.is-weg { background: transparent; color: transparent; border-right-color: transparent; border-top-color: transparent; }

/* Funktionen: ruhige Liste statt Kartenraster */
.pt-funktionen, .pt-schritte { max-width: 1120px; margin: 0 auto; padding: 0 24px 80px; }
.pt-funktionen h2, .pt-schritte h2, .pt-schluss h2 { font-family: var(--pt-schild); font-weight: 700; font-size: clamp(1.8rem, 3.4vw, 2.4rem); line-height: 1.08; margin: 0 0 30px; color: var(--pt-tinte); max-width: 22ch; }
.pt-funktionsliste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; margin: 0; border-top: 2px solid var(--pt-tinte); }
.pt-funktion { padding: 24px 0 26px; border-bottom: 1px solid var(--pt-linie); }
.pt-funktion dt { display: flex; align-items: center; gap: 12px; font-weight: 700; font-size: 1.12rem; margin: 0 0 8px; }
.pt-funktion-icon { color: var(--pt-akzent); display: inline-flex; }
.pt-funktion dd { margin: 0 0 0 38px; color: var(--pt-tinte-weich); line-height: 1.6; max-width: 42em; }

/* Schritte: echte Reihenfolge, daher nummeriert */
.pt-schritte ol { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.pt-schritte li { counter-increment: s; background: var(--pt-papier); border-radius: 14px; padding: 26px 24px 24px; position: relative; }
.pt-schritte li::before { content: counter(s); display: block; font-family: var(--pt-schild); font-weight: 700; font-size: 3rem; line-height: 1; color: var(--pt-akzent); margin-bottom: 12px; }
.pt-schritte h3 { margin: 0 0 6px; font-size: 1.12rem; }
.pt-schritte p { margin: 0; color: var(--pt-tinte-weich); line-height: 1.55; }

.pt-schluss { background: var(--pt-orange); color: var(--pt-tinte); text-align: center; padding: 72px 24px; }
.pt-schluss h2 { color: var(--pt-tinte); margin: 0 auto 26px; }
.pt-button-hell, .button.pt-button-hell { background: var(--pt-pflaume); color: #fff; border-color: var(--pt-pflaume); }
.pt-button-hell:hover, .button.pt-button-hell:hover { background: var(--pt-tinte); color: #fff; border-color: var(--pt-tinte); }
body.pt-start .site-footer { background: var(--pt-flaeche); margin-top: 0; padding: 28px 16px 36px; }

@media (max-width: 880px) {
    .pt-held { grid-template-columns: minmax(0, 1fr); gap: 52px; padding-top: 18px; padding-bottom: 64px; }
    .pt-aushang { width: min(100%, 360px); }
    .pt-funktionsliste { grid-template-columns: minmax(0, 1fr); }
    .pt-schritte ol { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}
@media (max-width: 480px) {
    .pt-kopf { padding: 16px; }
    .pt-held, .pt-funktionen, .pt-schritte { padding-left: 16px; padding-right: 16px; }
    .pt-held-aktionen .button { flex: 1 1 100%; justify-content: center; }
    .pt-aushang-blatt { padding: 32px 22px 18px; }
    .pt-funktion dd { margin-left: 0; }
}
@media (prefers-reduced-motion: no-preference) {
    .pt-aushang { animation: pt-anpinnen .7s cubic-bezier(.2, .8, .25, 1) .1s both; }
    @keyframes pt-anpinnen { from { opacity: 0; transform: translateY(-14px) rotate(-5deg); } to { opacity: 1; transform: rotate(-2.2deg); } }
}

/* ---------- Anmelden / Registrieren ---------- */
body.pt-auth { background: var(--pt-flaeche); }
.pt-auth .login-wrapper { max-width: 460px; }
.pt-auth-karte h1 { font-family: var(--pt-schild); font-size: 1.9rem; letter-spacing: -.005em; margin-bottom: 6px; }
.pt-login-reg { margin-top: 6px; }
.pt-feld-versteckt { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pt-zustimmung { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; line-height: 1.5; cursor: pointer; }
.pt-zustimmung input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--pt-akzent); }
.pt-erfolg { text-align: center; }
.pt-erfolg-icon { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--pt-pfirsich); color: var(--pt-akzent); margin: 4px 0 10px; }
.pt-erfolg p { line-height: 1.6; }

/* ---------- Rechtliche Seiten ---------- */
.pt-rechtlich { max-width: 760px; margin: 0 auto 56px; padding: 36px 40px 40px; background: var(--pt-papier); border-radius: 16px; line-height: 1.65; }
.pt-rechtlich h1 { font-family: var(--pt-schild); font-size: 2.2rem; margin: 0 0 18px; }
.pt-rechtlich h2 { font-size: 1.15rem; margin: 28px 0 8px; }
.pt-rechtlich h3 { font-size: 1rem; margin: 20px 0 6px; }
.pt-rechtlich ul { padding-left: 1.3em; }
.pt-stand { color: var(--muted); font-size: .9rem; margin-top: 30px; }
mark.pt-platzhalter { background: #FFE9A8; color: inherit; padding: 0 3px; border-radius: 3px; }
@media (max-width: 600px) { .pt-rechtlich { padding: 24px 18px; border-radius: 0; } }

/* ---------- Admin ---------- */
.pt-tag { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #FFF4D6; border: 1px solid #F0D98A; color: #6B5310; font-size: .72rem; font-weight: 700; vertical-align: 1px; white-space: nowrap; }
.limit-pill { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; background: var(--surface-soft, #FFF8F2); border: 1px solid var(--line, #F0CDB3); font-size: .88rem; font-weight: 600; color: var(--muted, #5A4352); white-space: nowrap; }
.limit-pill.is-voll { background: #FFF4D6; border-color: #F0D98A; color: #6B5310; }
.pt-admin-bestaetigen { margin: 12px 0; }
.pt-reiter { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 16px; border-bottom: 1px solid var(--line, #F0CDB3); }
.pt-reiter a { padding: 10px 14px; margin-bottom: -1px; border: 1px solid transparent; border-radius: 9px 9px 0 0; color: var(--muted, #5A4352); font-weight: 600; text-decoration: none; }
.pt-reiter a.is-aktiv { background: var(--surface, #fff); border-color: var(--line, #F0CDB3); border-bottom-color: var(--surface, #fff); color: var(--ink, #2B1B24); }
.pt-reiter-offen { display: inline-block; margin-left: 4px; padding: 0 7px; border-radius: 99px; background: #FFE9A8; color: #6B5310; font-size: .72rem; }
.pt-seiten-raster { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; align-items: start; }
.pt-seiten-form textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .9rem; line-height: 1.55; min-height: 460px; }
.pt-seiten-form .button-row { margin-top: 12px; }
.pt-seiten-hilfe { background: var(--surface-soft, #FFF8F2); border: 1px solid var(--line, #F0CDB3); border-radius: 12px; padding: 16px 18px; font-size: .92rem; }
.pt-seiten-hilfe h3 { margin-top: 0; font-size: 1rem; }
.pt-seiten-hilfe ul { padding-left: 1.1em; line-height: 1.7; }
.pt-link-klein { background: none; border: 0; padding: 0; min-height: 0; color: var(--muted, #5A4352); font-size: .9rem; font-weight: 500; text-decoration: underline; cursor: pointer; box-shadow: none; }
.pt-link-klein:hover { background: none; color: var(--ink, #2B1B24); }
@media (max-width: 820px) { .pt-seiten-raster { grid-template-columns: minmax(0, 1fr); } }
