/* JP Event Bridge — Anmelde-Formular */

/* Alle Text-Elemente erben Theme-Schrift; !important gegen Theme-Overrides */
.jp-event-bridge-form,
.jp-event-bridge-form *,
.jp-event-bridge-form input,
.jp-event-bridge-form textarea,
.jp-event-bridge-form select,
.jp-event-bridge-form button,
.jp-event-bridge-form a,
.jp-event-bridge-form label,
.jp-event-bridge-form h1,
.jp-event-bridge-form h2,
.jp-event-bridge-form h3,
.jp-event-bridge-form p,
.jp-event-bridge-form span,
.jp-event-bridge-form div,
.jpeb-top-cta {
    font-family: inherit !important;
    box-sizing: border-box;
}

/* ---------------------- Meta-Kasten (Events-Manager) --------------------- */
/* Wir stylen den existierenden .event-single_wrapper radikal um, statt eigenen zu bauen. */

body.jpeb-managed .event-single_wrapper {
    display: grid !important;
    grid-template-columns: 1.35fr 0.75fr auto !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 1.5rem 0 2.5rem !important;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 55%, #264A7B 100%);
    border-radius: 20px !important;
    overflow: hidden;
    box-shadow:
        0 1px 3px rgba(15, 23, 42, 0.08),
        0 20px 40px -12px rgba(38, 74, 123, 0.25);
    position: relative;
    font-family: inherit !important;
    color: #f1f5f9 !important;
}
body.jpeb-managed .event-single_wrapper::before {
    content: '';
    position: absolute;
    top: 0; right: 0;
    width: 340px; height: 340px;
    background: radial-gradient(circle, rgba(236, 72, 153, 0.22) 0%, transparent 62%);
    pointer-events: none;
    border-radius: 50%;
    transform: translate(30%, -30%);
}
body.jpeb-managed .event-single_wrapper::after {
    content: '';
    position: absolute;
    bottom: 0; left: 45%;
    width: 280px; height: 280px;
    background: radial-gradient(circle, rgba(59, 130, 246, 0.25) 0%, transparent 60%);
    pointer-events: none;
    border-radius: 50%;
    transform: translate(-50%, 45%);
}

body.jpeb-managed .event-single_wrapper > .event-single_content {
    padding: 1.75rem 1.75rem !important;
    background: transparent !important;
    border: 0 !important;
    text-align: left !important;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    width: auto !important;
    max-width: none !important;
    float: none !important;
}
/* Button-Zelle etwas mehr Luft */
body.jpeb-managed .event-single_wrapper > .wgl_col-2:last-child {
    padding: 1.75rem 2rem !important;
}
body.jpeb-managed .event-single_wrapper > .event-single_content + .event-single_content {
    border-left: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* Font-family überall inherit */
body.jpeb-managed .event-single_wrapper *,
body.jpeb-managed .event-single_wrapper h6 { font-family: inherit !important; }

/* Original-Flaticons ausblenden, wir stellen eigene */
body.jpeb-managed .event-single_wrapper i.icon-event { display: none !important; }

body.jpeb-managed .event-single_wrapper h6 {
    display: flex !important;
    align-items: center !important;
    gap: 0.55rem;
    color: rgba(255, 255, 255, 0.6) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    margin: 0 0 0.85rem !important;
    padding: 0 !important;
}
/* SVG-Icons als Background — verlässlich unabhängig von der Theme-Font (Emojis wurden falsch gerendert) */
body.jpeb-managed .event-single_wrapper h6::before {
    content: '' !important;
    display: inline-block;
    flex-shrink: 0;
    width: 28px; height: 28px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 8px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 16px 16px;
}
body.jpeb-managed .event-single_wrapper h6:not([data-icon])::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.85)' stroke-width='2'><circle cx='12' cy='12' r='9'/><path d='M12 8v4l3 2'/></svg>");
}
body.jpeb-managed .event-single_wrapper h6[data-icon="date"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.85)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M8 3v4M16 3v4M3 10h18'/></svg>");
}
body.jpeb-managed .event-single_wrapper h6[data-icon="price"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.85)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2v20M6 6h9a3 3 0 010 6H9a3 3 0 000 6h9'/></svg>");
}
body.jpeb-managed .event-single_wrapper h6[data-icon="location"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(255,255,255,0.85)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0118 0z'/><circle cx='12' cy='10' r='3'/></svg>");
}

/* Datum / Text-Werte hübsch typografieren */
body.jpeb-managed .event-single_wrapper .event-single_content {
    color: #fff !important;
    font-size: 1.05rem !important;
    line-height: 1.4 !important;
    font-weight: 500 !important;
}
body.jpeb-managed .jpeb-meta-date-main {
    font-size: 1.05rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin-bottom: 0.3rem;
    letter-spacing: -0.005em;
    white-space: nowrap;
}
body.jpeb-managed .jpeb-meta-date-sub {
    font-size: 0.88rem !important;
    color: rgba(255, 255, 255, 0.75) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}

/* Anmelde-Button-Zelle */
body.jpeb-managed .event-single_wrapper .wgl_col-2:has(.jpeb-top-cta) {
    align-items: center;
    justify-content: center;
    display: flex !important;
}
/* Top-CTA innerhalb des dunklen Kastens */
body.jpeb-managed .event-single_wrapper .jpeb-top-cta {
    background: #fff !important;
    color: #264A7B !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
    margin: 0 !important;
    padding: 0.95rem 2rem !important;
    font-size: 1rem !important;
    white-space: nowrap !important;
}
body.jpeb-managed .event-single_wrapper .jpeb-top-cta:hover {
    color: #fff !important;
    background: linear-gradient(135deg, #4b6ea3, #264A7B) !important;
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35) !important;
}

/* Wenn Ort-Spalte vorhanden: 4 Spalten */
body.jpeb-managed .event-single_wrapper:has(.jpeb-meta-loc) {
    grid-template-columns: 1.15fr 0.7fr 1fr auto !important;
}

/* Response responsive */
@media (max-width: 768px) {
    body.jpeb-managed .event-single_wrapper,
    body.jpeb-managed .event-single_wrapper:has(.jpeb-meta-loc) {
        grid-template-columns: 1fr !important;
    }
    body.jpeb-managed .event-single_wrapper > .event-single_content + .event-single_content {
        border-left: 0 !important;
        border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    }
}

/* ---------------------- Header (Titel-Sektion oben) ---------------------- */
body.jpeb-hdr-enhanced .post_featured_bg {
    position: relative;
    overflow: hidden;
}
/* Animierter Mesh-Gradient — pseudo-elements damit Multi-Layer-Animation zuverlässig läuft */
body.jpeb-hdr-enhanced .post_featured_bg {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 55%, #264A7B 100%) !important;
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate;
    --jpeb-mx: 50%;
    --jpeb-my: 50%;
    transition: filter 0.4s ease;
}
body.jpeb-hdr-enhanced .post_featured_bg:hover { filter: saturate(1.15); }
/* Cursor-Spotlight: folgt der Maus */
body.jpeb-hdr-enhanced .post_featured_bg .jpeb-spotlight {
    position: absolute;
    inset: 0;
    background: radial-gradient(400px circle at var(--jpeb-mx) var(--jpeb-my), rgba(255, 255, 255, 0.08), transparent 60%);
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.35s ease;
}
body.jpeb-hdr-enhanced .post_featured_bg:hover .jpeb-spotlight { opacity: 1; }

/* Titel & Badges lift on hover */
body.jpeb-hdr-enhanced .post_featured_bg:hover .blog-post_title {
    transform: translateY(-2px);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    filter: drop-shadow(0 6px 24px rgba(59, 130, 246, 0.4));
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge {
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}
body.jpeb-hdr-enhanced .post_featured_bg::before,
body.jpeb-hdr-enhanced .post_featured_bg::after {
    content: '' !important;
    position: absolute !important;
    width: 60vw !important;
    height: 60vw !important;
    border-radius: 50% !important;
    filter: blur(80px) !important;
    pointer-events: none !important;
    z-index: 0 !important;
    opacity: 0.6 !important;
    will-change: transform;
}
body.jpeb-hdr-enhanced .post_featured_bg::before {
    background: radial-gradient(circle, #EC4899 0%, transparent 65%) !important;
    top: -20vw; left: -10vw;
    animation: jpebBlob1 22s ease-in-out infinite alternate !important;
}
body.jpeb-hdr-enhanced .post_featured_bg::after {
    background: radial-gradient(circle, #3B82F6 0%, transparent 65%) !important;
    bottom: -20vw; right: -10vw;
    animation: jpebBlob2 18s ease-in-out infinite alternate !important;
}
body.jpeb-hdr-enhanced .post_featured_bg > * {
    position: relative !important;
    z-index: 1 !important;
}

@keyframes jpebBlob1 {
    0%   { transform: translate(0, 0) scale(1); }
    50%  { transform: translate(30vw, 15vw) scale(1.15); }
    100% { transform: translate(60vw, 8vw) scale(0.95); }
}
@keyframes jpebBlob2 {
    0%   { transform: translate(0, 0) scale(1); }
    50%  { transform: translate(-25vw, -10vw) scale(1.2); }
    100% { transform: translate(-55vw, -20vw) scale(0.9); }
}
@media (prefers-reduced-motion: reduce) {
    body.jpeb-hdr-enhanced .post_featured_bg::before,
    body.jpeb-hdr-enhanced .post_featured_bg::after { animation: none !important; }
}

/* Schwebende dekorative Formen */
body.jpeb-hdr-enhanced .post_featured_bg::before,
body.jpeb-hdr-enhanced .post_featured_bg::after { will-change: transform, background-position; }

@keyframes jpebGlowShift {
    0%   { background-position: 0% 0%, 100% 100%; transform: translate(0, 0) scale(1); }
    50%  { background-position: 20% 30%, 80% 60%; transform: translate(2%, -1%) scale(1.05); }
    100% { background-position: 40% 20%, 60% 80%; transform: translate(-2%, 2%) scale(1); }
}
@keyframes jpebGlowShift2 {
    0%   { transform: translate(0, 0) scale(1); opacity: 0.85; }
    100% { transform: translate(-3%, -2%) scale(1.1); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    body.jpeb-hdr-enhanced .post_featured_bg::before,
    body.jpeb-hdr-enhanced .post_featured_bg::after { animation: none !important; }
}

body.jpeb-hdr-enhanced .blog-post_title {
    color: #fff !important;
    font-size: clamp(2rem, 4vw, 3.5rem) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    max-width: 900px;
    margin: 0.85rem 0 0 !important;
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
    animation: jpebTitleReveal 0.7s cubic-bezier(0.2, 0.9, 0.3, 1) 0.05s both;
    background: linear-gradient(135deg, #ffffff 0%, #dbeafe 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge {
    animation: jpebFadeInUp 0.5s cubic-bezier(0.2, 0.9, 0.3, 1) both;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge:nth-child(1) { animation-delay: 0s; }
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge:nth-child(2) { animation-delay: 0.08s; }
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge:nth-child(3) { animation-delay: 0.16s; }
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge:nth-child(4) { animation-delay: 0.24s; }
body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge:nth-child(5) { animation-delay: 0.32s; }

@keyframes jpebTitleReveal {
    from { opacity: 0; transform: translateY(20px); filter: blur(8px); }
    to   { opacity: 1; transform: none; filter: none; }
}
@media (prefers-reduced-motion: reduce) {
    body.jpeb-hdr-enhanced .blog-post_title,
    body.jpeb-hdr-enhanced .jpeb-hdr-badges .jpeb-hdr-badge,
    body.jpeb-hdr-enhanced .jpeb-hdr-subtitle { animation: none !important; }
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.85rem;
    background: rgba(255, 255, 255, 0.12);
    color: #fff !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    line-height: 1;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: background 0.15s;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge:hover { background: rgba(255, 255, 255, 0.2); }
body.jpeb-hdr-enhanced .jpeb-hdr-badge-online {
    background: linear-gradient(135deg, #3b82f6, #1e40af) !important;
    border-color: transparent !important;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge-presence {
    background: linear-gradient(135deg, #10b981, #047857) !important;
    border-color: transparent !important;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge-cert {
    background: linear-gradient(135deg, #f59e0b, #b45309) !important;
    border-color: transparent !important;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge-audience {
    background: linear-gradient(135deg, #EC4899, #be185d) !important;
    border-color: transparent !important;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge-last {
    background: linear-gradient(135deg, #f97316, #c2410c) !important;
    border-color: transparent !important;
    animation: jpebHdrBadgePulse 2s ease-in-out infinite;
}
body.jpeb-hdr-enhanced .jpeb-hdr-badge-full {
    background: linear-gradient(135deg, #dc2626, #991b1b) !important;
    border-color: transparent !important;
}
@keyframes jpebHdrBadgePulse {
    0%, 100% { transform: translateY(0); box-shadow: 0 0 0 0 rgba(249, 115, 22, 0.5); }
    50%      { transform: translateY(-1px); box-shadow: 0 0 0 6px rgba(249, 115, 22, 0); }
}
@media (prefers-reduced-motion: reduce) {
    body.jpeb-hdr-enhanced .jpeb-hdr-badge-last { animation: none !important; }
}
body.jpeb-hdr-enhanced .jpeb-hdr-subtitle {
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 1.15rem !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
    margin: 1rem 0 0 !important;
    max-width: 700px;
    animation: jpebFadeInUp 0.6s ease 0.1s both;
}
@keyframes jpebFadeInUp {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: none; }
}
/* Featured Image als Hintergrund falls vorhanden — das Theme setzt es evtl. schon; hier nur dark overlay */
body.jpeb-hdr-enhanced .post_featured_bg.has-post-thumbnail::before {
    background:
        radial-gradient(circle at 15% 30%, rgba(236, 72, 153, 0.25), transparent 55%),
        radial-gradient(circle at 85% 65%, rgba(59, 130, 246, 0.3), transparent 55%),
        linear-gradient(180deg, rgba(15, 23, 42, 0.55) 0%, rgba(15, 23, 42, 0.85) 100%);
}
/* Meta-Wrap (leer aber nimmt Platz) verstecken */
body.jpeb-hdr-enhanced .blog-post_meta-wrap:empty { display: none; }

/* ---------------------- 2-Spalten-Layout (Desktop) ---------------------- */
/* Wird via JS aktiviert (Content wird in main/side gesplittet), CSS macht das Grid */

body.jpeb-managed .jpeb-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
    margin-top: 1rem;
}
@media (min-width: 1024px) {
    body.jpeb-managed .jpeb-layout {
        grid-template-columns: minmax(0, 1fr) 320px;
        gap: 2.5rem;
    }
    body.jpeb-managed .jpeb-layout-side {
        position: sticky;
        top: 90px;
        align-self: start;
    }
}

body.jpeb-managed .jpeb-layout-main { min-width: 0; }
body.jpeb-managed .jpeb-layout-side {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

/* Anmeldeformular in Main-Col: nutzt volle Main-Breite (nicht max-width 720) */
body.jpeb-managed .jpeb-layout-main .jp-event-bridge-form {
    max-width: none !important;
    margin: 3rem 0 1rem !important;
    padding: 0 !important;
}

/* ---------------------- Fließtext-Typografie ---------------------------- */
body.jpeb-managed .jpeb-layout-main > * { max-width: 720px; }

body.jpeb-managed .jpeb-layout-main > p:first-child,
body.jpeb-managed .jpeb-layout-main > p:first-of-type strong:only-child {
    font-size: 1.15rem !important;
    line-height: 1.65 !important;
    color: #0f172a !important;
    font-weight: 500 !important;
}
body.jpeb-managed .jpeb-layout-main > p:first-child::first-letter {
    font-size: 3.2rem;
    font-weight: 700;
    float: left;
    line-height: 0.9;
    padding: 0.35rem 0.6rem 0 0;
    color: #264A7B;
}
body.jpeb-managed .jpeb-layout-main > p {
    font-size: 1.02rem;
    line-height: 1.75;
    color: #334155;
    margin: 0 0 1.2rem;
}
body.jpeb-managed .jpeb-layout-main > h2 {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    letter-spacing: -0.015em;
    line-height: 1.25 !important;
    margin: 2.5rem 0 1rem !important;
    padding-left: 1rem;
    position: relative;
}
body.jpeb-managed .jpeb-layout-main > h2::before {
    content: '';
    position: absolute;
    left: 0; top: 0.35rem; bottom: 0.35rem;
    width: 4px;
    background: linear-gradient(180deg, #EC4899, #264A7B);
    border-radius: 3px;
}
body.jpeb-managed .jpeb-layout-main > h3 {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #264A7B !important;
    margin: 2rem 0 0.75rem !important;
}
body.jpeb-managed .jpeb-layout-main > ul,
body.jpeb-managed .jpeb-layout-main > ol {
    margin: 0 0 1.5rem;
    padding-left: 1.25rem;
    color: #334155;
    line-height: 1.75;
}
body.jpeb-managed .jpeb-layout-main > ol { counter-reset: item; list-style: none; padding-left: 0; }
body.jpeb-managed .jpeb-layout-main > ol > li {
    counter-increment: item;
    position: relative;
    padding-left: 3rem;
    margin-bottom: 0.75rem;
}
body.jpeb-managed .jpeb-layout-main > ol > li::before {
    content: counter(item);
    position: absolute;
    left: 0; top: 0;
    width: 2rem; height: 2rem;
    background: linear-gradient(135deg, #264A7B, #4b6ea3);
    color: #fff;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
}
body.jpeb-managed .jpeb-layout-main > ul > li { margin-bottom: 0.5rem; }
body.jpeb-managed .jpeb-layout-main > ul > li::marker { color: #EC4899; }

body.jpeb-managed .jpeb-layout-main a {
    color: #264A7B;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    text-decoration-color: rgba(38, 74, 123, 0.35);
    transition: text-decoration-color 0.15s;
}
body.jpeb-managed .jpeb-layout-main a:hover {
    text-decoration-color: #264A7B;
}
body.jpeb-managed .jpeb-layout-main strong { color: #0f172a; font-weight: 700; }

/* Location-Card (Sidebar) */
body.jpeb-managed .jpeb-location-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
    font-family: inherit;
}
body.jpeb-managed .jpeb-loc-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1rem 1.15rem 0.75rem;
    border-bottom: 1px solid #f1f5f9;
}
body.jpeb-managed .jpeb-loc-icon {
    width: 30px; height: 30px;
    background: linear-gradient(135deg, #264A7B, #4b6ea3);
    color: #fff;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
body.jpeb-managed .jpeb-loc-header h3 {
    margin: 0 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    line-height: 1.2 !important;
}
body.jpeb-managed .jpeb-loc-addr {
    padding: 0.85rem 1.15rem;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}
body.jpeb-managed .jpeb-loc-name { font-weight: 700; color: #0f172a; margin-bottom: 0.15rem; }
body.jpeb-managed .jpeb-loc-street { color: #475569; }
body.jpeb-managed .jpeb-loc-city { color: #64748b; }
body.jpeb-managed .jpeb-loc-access {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.75rem 1.15rem;
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-top: 1px solid #a7f3d0;
    border-bottom: 1px solid #a7f3d0;
    color: #065f46;
    font-size: 0.85rem;
    line-height: 1.4;
}
body.jpeb-managed .jpeb-loc-access-icon {
    font-size: 1.4rem;
    line-height: 1;
    flex-shrink: 0;
}
body.jpeb-managed .jpeb-loc-access strong { color: #064e3b; font-weight: 700; display: block; }
body.jpeb-managed .jpeb-loc-access-note { color: #047857; margin-top: 0.15rem; font-size: 0.82rem; }
body.jpeb-managed .jpeb-loc-map {
    position: relative;
    aspect-ratio: 16/10;
    background: #f1f5f9;
}
body.jpeb-managed .jpeb-loc-map iframe {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
    filter: saturate(0.9);
}
body.jpeb-managed .jpeb-loc-actions {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.85rem 1.15rem 1rem;
}
body.jpeb-managed .jpeb-loc-btn {
    display: block;
    padding: 0.6rem 0.9rem;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    color: #264A7B !important;
    text-decoration: none !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    border-radius: 8px;
    text-align: center;
    transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
body.jpeb-managed .jpeb-loc-btn:hover {
    background: #eff6ff;
    border-color: #bfdbfe;
    transform: translateY(-1px);
}
body.jpeb-managed .jpeb-loc-btn-primary {
    background: linear-gradient(135deg, #264A7B, #1e3a63) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(38, 74, 123, 0.25);
}
body.jpeb-managed .jpeb-loc-btn-primary:hover {
    background: linear-gradient(135deg, #1e3a63, #16294a) !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(38, 74, 123, 0.35);
}

/* Meta-Block: unser Ort-Feld anpassen */
body.jpeb-managed .jpeb-meta-loc { min-width: 0; }
body.jpeb-managed .jpeb-meta-loc .jpeb-meta-date-main { white-space: normal !important; }

@media (prefers-color-scheme: dark) {
    body.jpeb-managed .jpeb-location-card { background: #1e293b; border-color: #334155; }
    body.jpeb-managed .jpeb-loc-header { border-bottom-color: #334155; }
    body.jpeb-managed .jpeb-loc-header h3 { color: #f1f5f9 !important; }
    body.jpeb-managed .jpeb-loc-addr { color: #cbd5e1; }
    body.jpeb-managed .jpeb-loc-name { color: #f1f5f9; }
    body.jpeb-managed .jpeb-loc-street { color: #cbd5e1; }
    body.jpeb-managed .jpeb-loc-city { color: #94a3b8; }
    body.jpeb-managed .jpeb-loc-map { background: #0f172a; }
    body.jpeb-managed .jpeb-loc-btn { background: #0f172a; border-color: #334155; color: #93c5fd !important; }
    body.jpeb-managed .jpeb-loc-btn:hover { background: #131c2e; border-color: #475569; }
}

/* Speaker-Cards in Sidebar: als Block + garantiert volle Breite */
body.jpeb-managed .jpeb-layout-side .jpeb-speakers {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    grid-template-columns: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}
body.jpeb-managed .jpeb-layout-side .jpeb-speaker-card {
    padding: 1.15rem 1.3rem !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    flex: 0 0 auto;
}
body.jpeb-managed .jpeb-layout-side .jpeb-speaker-badge { font-size: 0.62rem !important; }
body.jpeb-managed .jpeb-layout-side .jpeb-speaker-name { font-size: 1.02rem !important; }
body.jpeb-managed .jpeb-layout-side .jpeb-speaker-bio { font-size: 0.85rem !important; line-height: 1.5 !important; }

/* Info-Boxen in Sidebar: kompakter */
body.jpeb-managed .jpeb-layout-side > div[style*="background:#eee"],
body.jpeb-managed .jpeb-layout-side > div {
    padding: 1.15rem 1.35rem !important;
    margin: 0 !important;
    font-size: 0.9rem;
    line-height: 1.55;
}
body.jpeb-managed .jpeb-layout-side > div h2,
body.jpeb-managed .jpeb-layout-side > div h3 {
    font-size: 0.95rem !important;
    margin: 0 0 0.5rem !important;
}

/* Dark-Mode Content */
@media (prefers-color-scheme: dark) {
    body.jpeb-managed .jpeb-layout-main > p { color: #cbd5e1; }
    body.jpeb-managed .jpeb-layout-main > p:first-child { color: #f1f5f9 !important; }
    body.jpeb-managed .jpeb-layout-main > p:first-child::first-letter { color: #93c5fd; }
    body.jpeb-managed .jpeb-layout-main > h2 { color: #f1f5f9 !important; }
    body.jpeb-managed .jpeb-layout-main > h3 { color: #93c5fd !important; }
    body.jpeb-managed .jpeb-layout-main strong { color: #f1f5f9; }
    body.jpeb-managed .jpeb-layout-main a { color: #93c5fd; }
    body.jpeb-managed .jpeb-layout-main > ul,
    body.jpeb-managed .jpeb-layout-main > ol { color: #cbd5e1; }
}

/* ---------------------- Content-Bereich Feinschliff --------------------- */

/* Duplicate "Jetzt anmelden"-Button am unteren Rand — Container ausblenden (Link versteckt CSS bereits) */
body.jpeb-managed .em-item .event-single_content[style*="float:left"]:has(a[href*="civi"]) {
    display: none !important;
}
/* Fallback für ältere Browser ohne :has */
@supports not (selector(:has(a))) {
    body.jpeb-managed .em-item > .event-single_content[style*="float:left"] { display: none !important; }
}

/* iCal-Link: aus rustikaler Inline-Zeile → moderner Chip-Button */
body.jpeb-managed .em-item > div[style*="float:right"] {
    float: none !important;
    margin: 1.5rem 0 !important;
    text-align: right !important;
}
body.jpeb-managed .em-item > div[style*="float:right"] a {
    display: inline-flex !important;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    background: rgba(38, 74, 123, 0.08);
    color: #264A7B !important;
    text-decoration: none !important;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: background 0.15s, transform 0.15s;
}
body.jpeb-managed .em-item > div[style*="float:right"] a:hover {
    background: rgba(38, 74, 123, 0.15);
    transform: translateY(-1px);
}
body.jpeb-managed .em-item > div[style*="float:right"] a i.icon-event { display: none !important; }
body.jpeb-managed .em-item > div[style*="float:right"] a::before {
    content: '';
    width: 18px; height: 18px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23264A7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M8 3v4M16 3v4M3 10h18M12 14v4M10 16h4'/></svg>");
    background-repeat: no-repeat;
    background-size: contain;
}

/* Die grauen Info-Boxen ("Karte", "Fragen?", "Freistellung") — modernisieren
   (matchen jetzt auch nach dem 2-Spalten-Move in .jpeb-layout-side) */
body.jpeb-managed div[style*="background:#eee"] {
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
    border: 1px solid #e5e7eb !important;
    border-left: 4px solid #264A7B !important;
    border-radius: 12px !important;
    padding: 1.35rem 1.5rem !important;
    margin-top: 1rem !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05) !important;
    font-family: inherit !important;
    color: #334155 !important;
    line-height: 1.55 !important;
    font-size: 0.92rem !important;
    transition: transform 0.2s, box-shadow 0.2s;
}
body.jpeb-managed div[style*="background:#eee"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08) !important;
}
body.jpeb-managed div[style*="background:#eee"] h2,
body.jpeb-managed div[style*="background:#eee"] h3 {
    color: #0f172a !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 0.6rem !important;
    line-height: 1.3 !important;
    letter-spacing: -0.005em;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
/* Emoji-Icons via H2/H3-Text-Match: setzen wir dann per JS als data-icon */
body.jpeb-managed div[style*="background:#eee"] h2[data-icon]::before,
body.jpeb-managed div[style*="background:#eee"] h3[data-icon]::before {
    content: '';
    width: 24px; height: 24px;
    background-repeat: no-repeat;
    background-size: contain;
    flex-shrink: 0;
}
body.jpeb-managed div[style*="background:#eee"] h3[data-icon="question"]::before,
body.jpeb-managed div[style*="background:#eee"] h2[data-icon="question"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23EC4899' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3M12 17h.01'/><circle cx='12' cy='12' r='10'/></svg>");
}
body.jpeb-managed div[style*="background:#eee"] h3[data-icon="school"]::before,
body.jpeb-managed div[style*="background:#eee"] h2[data-icon="school"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2310b981' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/><polyline points='14 2 14 8 20 8'/></svg>");
}
body.jpeb-managed div[style*="background:#eee"] h3[data-icon="location"]::before,
body.jpeb-managed div[style*="background:#eee"] h2[data-icon="location"]::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23264A7B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0118 0z'/><circle cx='12' cy='10' r='3'/></svg>");
}
body.jpeb-managed div[style*="background:#eee"] a {
    color: #264A7B !important;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(38, 74, 123, 0.35);
    text-underline-offset: 3px;
}
body.jpeb-managed div[style*="background:#eee"] a:hover { text-decoration-color: #264A7B; }
body.jpeb-managed div[style*="background:#eee"] i.icon-event { display: none !important; }

/* Farb-Akzente pro Box via data-flavor */
body.jpeb-managed div[style*="background:#eee"][data-flavor="question"] { border-left-color: #EC4899 !important; }
body.jpeb-managed div[style*="background:#eee"][data-flavor="school"]   { border-left-color: #10b981 !important; }

/* Leere Location-Box ("Karte nicht verfügbar") bei Online-Events ausblenden */
body.jpeb-managed div[style*="background:#eee"][data-flavor="location-empty"] {
    display: none !important;
}

/* Beschreibung — Typografie aufwerten */
body.jpeb-managed .em-item > p {
    font-size: 1.02rem;
    line-height: 1.7;
    color: #334155;
}

/* Featured Image — falls im Content-Bereich einer Post nicht mehr sichtbar, dedicated Hero */
/* (Bild wird bereits vom Theme oben angezeigt, keine zusätzliche Action) */

/* Speaker-Cards Container */
.jpeb-speakers {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
    margin: 2rem 0;
    width: 100%;
    box-sizing: border-box;
}
.jpeb-speaker-card {
    background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 1.25rem 1.35rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
    transition: transform 0.2s, box-shadow 0.2s;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.jpeb-speaker-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}
.jpeb-speaker-badge {
    align-self: flex-start;
    padding: 0.2rem 0.55rem;
    background: linear-gradient(135deg, #EC4899, #f472b6);
    color: #fff;
    font-weight: 700;
    font-size: 0.65rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: 999px;
    margin-bottom: 0.6rem;
}
.jpeb-speaker-photo-wrap {
    position: relative;
    margin-bottom: 0.7rem;
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f9;
    aspect-ratio: 1;
    max-width: 140px;
}
.jpeb-speaker-photo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jpeb-speaker-credit {
    position: absolute;
    bottom: 0; right: 0;
    padding: 0.15rem 0.4rem;
    background: rgba(0, 0, 0, 0.55);
    color: #fff !important;
    font-size: 0.62rem !important;
    line-height: 1;
    border-radius: 4px 0 0 0;
    letter-spacing: 0.02em;
}
.jpeb-speaker-name { font-size: 1.1rem; font-weight: 700; color: #0f172a; margin: 0 0 0.15rem; line-height: 1.2; }
.jpeb-speaker-role { font-size: 0.85rem; color: #64748b; margin: 0 0 0.65rem; }
.jpeb-speaker-bio { font-size: 0.9rem; line-height: 1.55; color: #475569; margin: 0; }

@media (prefers-color-scheme: dark) {
    body.jpeb-managed .em-item > div[style*="background:#eee"] {
        background: #1e293b !important;
        border-color: #334155 !important;
        color: #e2e8f0 !important;
    }
    body.jpeb-managed .em-item > div[style*="background:#eee"] h2,
    body.jpeb-managed .em-item > div[style*="background:#eee"] h3 { color: #f1f5f9 !important; }
    body.jpeb-managed .em-item > p { color: #cbd5e1; }
    .jpeb-speaker-card {
        background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
        border-color: #334155;
    }
    .jpeb-speaker-name { color: #f1f5f9; }
    .jpeb-speaker-role { color: #94a3b8; }
    .jpeb-speaker-bio { color: #cbd5e1; }
}

/* ----------------------------- Top-CTA-Button ---------------------------- */
.jpeb-top-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.85rem 1.75rem;
    background: linear-gradient(135deg, #264A7B 0%, #1e3a63 100%);
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    line-height: 1 !important;
    text-decoration: none !important;
    border-radius: 999px;
    margin: 1.5rem 0 1rem;
    box-shadow:
        0 4px 14px rgba(38, 74, 123, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s;
    letter-spacing: 0.01em;
}
.jpeb-top-cta:hover {
    color: #fff !important;
    transform: translateY(-2px) scale(1.02);
    box-shadow:
        0 8px 22px rgba(38, 74, 123, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

/* ----------------------------- Section-Wrapper --------------------------- */
.jp-event-bridge-form {
    max-width: 720px;
    margin: 3.5rem auto 2rem;
    padding: 0 1rem;
    scroll-margin-top: 100px;
    color: inherit;
}

.jpeb-section {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        0 14px 40px -8px rgba(15, 23, 42, 0.12);
    position: relative;
}

/* ------------------------------- Hero ------------------------------------ */
.jpeb-hero {
    padding: 2rem 2.5rem 1.75rem;
    background:
        radial-gradient(ellipse at top right, rgba(255,255,255,0.08), transparent 60%),
        linear-gradient(135deg, #264A7B 0%, #1e3a63 60%, #16294a 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
}
.jpeb-hero::after {
    content: '';
    position: absolute;
    bottom: -60px; right: -60px;
    width: 220px; height: 220px;
    background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%);
    pointer-events: none;
}
.jpeb-hero-badge {
    display: inline-block;
    padding: 0.3rem 0.75rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    color: #dbeafe !important;
    border-radius: 999px;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin-bottom: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.15);
}
.jpeb-hero .jpeb-section-title {
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 1.75rem !important;
    line-height: 1.15 !important;
    letter-spacing: -0.02em;
    margin: 0 0 0.75rem 0;
}
.jpeb-hero-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 0.92rem !important;
    font-weight: 500 !important;
}
.jpeb-hero-icon { font-size: 1rem; }

/* Deadline inline im Hero-Meta (nicht mehr als bunter Chip) */
.jpeb-hero-meta {
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: wrap;
    gap: 0.5rem 0.65rem !important;
}
.jpeb-hero-meta-sep {
    color: rgba(255, 255, 255, 0.35) !important;
    font-weight: 400 !important;
}
.jpeb-hero-deadline {
    color: rgba(255, 255, 255, 0.75) !important;
    font-weight: 500 !important;
    font-size: 0.9rem !important;
}
.jpeb-hero-deadline.jpeb-deadline-warn {
    color: #fbbf24 !important;
    font-weight: 600 !important;
}
.jpeb-hero-deadline.jpeb-deadline-urgent {
    color: #f9a8d4 !important;
    font-weight: 700 !important;
    animation: jpebDeadlinePulse 2s ease-in-out infinite;
}
.jpeb-hero-deadline.jpeb-deadline-past {
    color: rgba(255, 255, 255, 0.5) !important;
    text-decoration: line-through;
}
@keyframes jpebDeadlinePulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.65; }
}

/* -------------------------------- Body ----------------------------------- */
.jpeb-body { padding: 1.75rem 2.5rem 2.25rem; }

/* Info-Zustände */
.jpeb-loading, .jpeb-error, .jpeb-closed, .jpeb-info {
    padding: 1rem 1.15rem;
    border-radius: 12px;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    background: #f8fafc;
    color: #475569;
}
.jpeb-error { background: #fef2f2; color: #991b1b; border-left: 4px solid #ef4444; }
.jpeb-closed { background: #fff7ed; color: #9a3412; border-left: 4px solid #f97316; }

/* Success / Info Block (nach Submit) */
.jpeb-success-block, .jpeb-info-block {
    text-align: center;
    padding: 2.5rem 1.5rem;
    animation: jpeb-fadeIn 0.5s ease;
}
.jpeb-success-block h3, .jpeb-info-block h3 {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #065f46;
    margin: 1.25rem 0 0.5rem;
    line-height: 1.2 !important;
}
.jpeb-info-block h3 { color: #1e3a63; }
.jpeb-success-block p, .jpeb-info-block p {
    color: #475569;
    font-size: 1rem !important;
    line-height: 1.5 !important;
    margin: 0;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}
.jpeb-success-check { color: #10b981; display: inline-block; }
.jpeb-info-icon { font-size: 3rem; line-height: 1; }
.jpeb-check-circle {
    stroke-dasharray: 138;
    stroke-dashoffset: 138;
    animation: jpeb-drawCircle 0.6s ease-out forwards;
}
.jpeb-check-mark {
    stroke-dasharray: 40;
    stroke-dashoffset: 40;
    animation: jpeb-drawCheck 0.4s ease-out 0.5s forwards;
}
@keyframes jpeb-drawCircle { to { stroke-dashoffset: 0; } }
@keyframes jpeb-drawCheck  { to { stroke-dashoffset: 0; } }
@keyframes jpeb-fadeIn     { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---------- Portal-Login: Ein-Klick-Anmelde-Zustand ---------- */
.jpeb-portal-welcome {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.1rem 1.35rem;
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border: 1px solid #a7f3d0;
    border-left: 4px solid #10b981;
    border-radius: 12px;
    margin-bottom: 1rem;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    color: #065f46;
}
.jpeb-portal-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    background: #10b981;
    color: #fff;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
}
.jpeb-portal-welcome strong { font-weight: 700 !important; color: #064e3b; }
.jpeb-portal-sub { font-size: 0.85rem; color: #047857; margin-top: 0.15rem; }
.jpeb-portal-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1rem;
    padding: 1rem 1.25rem;
    background: #f8fafc;
    border: 1px solid #eef1f5;
    border-radius: 12px;
    margin-bottom: 1.25rem;
    font-size: 0.9rem !important;
}
.jpeb-portal-lbl {
    display: block;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin-bottom: 0.15rem;
}
@media (max-width: 640px) { .jpeb-portal-summary { grid-template-columns: 1fr; } }

/* ------------------------------ Mitglieder-CTA -------------------------- */
.jpeb-member-cta {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
}
.jpeb-member-cta::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, #264A7B, #4b6ea3);
}
.jpeb-member-cta-icon {
    font-size: 1.75rem;
    line-height: 1;
    flex-shrink: 0;
}
.jpeb-member-cta-text {
    flex: 1;
    min-width: 200px;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    color: #1e3a63;
}
.jpeb-member-cta-text strong {
    color: #0c1e3f;
    font-weight: 700 !important;
    display: block;
    margin-bottom: 0.15rem;
    font-size: 0.95rem !important;
}
.jpeb-member-btn {
    padding: 0.7rem 1.25rem;
    background: #264A7B;
    color: #fff !important;
    text-decoration: none !important;
    border-radius: 10px;
    font-weight: 600 !important;
    font-size: 0.88rem !important;
    line-height: 1 !important;
    white-space: nowrap;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
    box-shadow: 0 2px 8px rgba(38, 74, 123, 0.25);
}
.jpeb-member-btn:hover {
    background: #1e3a63;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 5px 14px rgba(38, 74, 123, 0.35);
}

.jpeb-or {
    text-align: center;
    margin: 1.5rem 0;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.jpeb-or::before, .jpeb-or::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, #e2e8f0, transparent);
}
.jpeb-or span {
    font-weight: 600 !important;
    font-size: 0.7rem !important;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.16em;
}

/* ------------------------------- Formular -------------------------------- */
.jpeb-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem 1.15rem;
    margin-top: 1.15rem;
}
.jpeb-field:has(textarea) { grid-column: 1 / -1; }
.jpeb-checkbox { grid-column: 1 / -1; }

/* Feld-Wrapper: alles relativ, damit Label absolut floaten kann */
.jpeb-field {
    position: relative;
    padding-top: 6px;
    background: #fff;
    border-radius: 14px;
    border: 1.5px solid #e5e7eb;
    transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.jpeb-field:hover {
    border-color: #cbd5e1;
    background: #fbfcfd;
}
.jpeb-field:focus-within {
    border-color: #264A7B;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(38, 74, 123, 0.10);
}

/* Label als floating badge oben links */
.jpeb-field .jpeb-label {
    position: absolute;
    top: -10px;
    left: 14px;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 3px 10px;
    background: #fff;
    border-radius: 999px;
    font-weight: 700 !important;
    font-size: 0.7rem !important;
    line-height: 1.2 !important;
    color: #64748b;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: color 0.2s, transform 0.2s;
    z-index: 2;
}
.jpeb-field:focus-within .jpeb-label {
    color: #264A7B;
    transform: translateY(-1px);
}
.jpeb-field:focus-within {
    background: #fff;
}
.jpeb-label-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    line-height: 1;
    color: #264A7B;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.jpeb-field:focus-within .jpeb-label-icon {
    transform: scale(1.15) rotate(-6deg);
}
.jpeb-req { color: #dc2626; margin-left: 0.1rem; font-weight: 700; }

/* Der eigentliche Input — grenzenlos, weil Border am Wrapper */
.jpeb-input-wrap { display: block; position: relative; }

.jpeb-field input,
.jpeb-field textarea,
.jpeb-field select {
    width: 100%;
    padding: 1rem 1.1rem 0.9rem;
    border: 0;
    background: transparent;
    font-size: 1rem !important;
    line-height: 1.4 !important;
    color: #0f172a;
    outline: none;
    font-weight: 500 !important;
}
.jpeb-field input::placeholder,
.jpeb-field textarea::placeholder { color: transparent; }
.jpeb-field textarea { min-height: 96px; resize: vertical; padding-top: 0.85rem; }

/* Select mit dezentem Custom-Pfeil */
.jpeb-field select {
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' stroke='%23264A7B' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1.1rem center;
    padding-right: 2.5rem;
    cursor: pointer;
    font-weight: 500 !important;
}
.jpeb-field select:invalid { color: #94a3b8; }
.jpeb-field option { color: #0f172a; font-weight: 500; }
.jpeb-field option[value=""] { color: #94a3b8; }

/* Underline-Highlight bei Focus */
.jpeb-input-wrap::after {
    content: '';
    position: absolute;
    left: 14px; right: 14px; bottom: -1px;
    height: 2px;
    background: linear-gradient(90deg, #264A7B, #4b6ea3);
    border-radius: 3px;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    opacity: 0;
}
.jpeb-field:focus-within .jpeb-input-wrap::after { transform: scaleX(1); opacity: 1; }
.jpeb-field textarea { resize: vertical; min-height: 96px; }
.jpeb-field select {
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'><path d='M1 1l5 5 5-5' stroke='%23475569' stroke-width='1.75' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    padding-right: 2.5rem;
    cursor: pointer;
}
.jpeb-field .jpeb-help {
    font-size: 0.76rem !important;
    color: #94a3b8;
    line-height: 1.4 !important;
}

.jpeb-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.87rem !important;
    color: #475569;
    line-height: 1.5 !important;
    padding: 0.95rem 1.15rem;
    background: #f8fafc;
    border-radius: 12px;
    border: 1px solid #eef1f5;
    margin-top: 0.5rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.jpeb-checkbox:hover { background: #f1f5f9; border-color: #e2e8f0; }
.jpeb-checkbox input {
    margin-top: 0.15rem;
    flex-shrink: 0;
    accent-color: #264A7B;
    width: 1.15rem;
    height: 1.15rem;
    cursor: pointer;
}
.jpeb-checkbox a { color: #264A7B; text-decoration: underline; font-weight: 600 !important; }

/* ------------------------------- Submit --------------------------------- */
.jpeb-submit {
    grid-column: 1 / -1;
    justify-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 1.05rem 2rem;
    background: linear-gradient(135deg, #264A7B 0%, #1e3a63 100%);
    color: #fff;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    line-height: 1 !important;
    letter-spacing: 0.01em;
    border: 0;
    border-radius: 14px;
    cursor: pointer;
    margin-top: 1rem;
    box-shadow:
        0 4px 14px rgba(38, 74, 123, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s;
    position: relative;
    overflow: hidden;
}
.jpeb-submit::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
    transition: left 0.6s ease;
}
.jpeb-submit:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow:
        0 8px 22px rgba(38, 74, 123, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.jpeb-submit:hover:not(:disabled)::before { left: 100%; }
.jpeb-submit:active:not(:disabled) { transform: translateY(0); }
.jpeb-submit:disabled { opacity: 0.55; cursor: wait; transform: none; }
.jpeb-submit-arrow {
    display: inline-block;
    transition: transform 0.2s;
    font-weight: 400 !important;
}
.jpeb-submit:hover:not(:disabled) .jpeb-submit-arrow { transform: translateX(4px); }

.jpeb-status { grid-column: 1 / -1; font-size: 0.9rem !important; }
.jpeb-status-error { color: #b91c1c; font-weight: 600 !important; }

/* ------------------------------ Responsive ------------------------------ */
@media (max-width: 640px) {
    .jpeb-hero { padding: 1.5rem 1.5rem 1.35rem; }
    .jpeb-hero .jpeb-section-title { font-size: 1.4rem !important; }
    .jpeb-body { padding: 1.35rem 1.5rem 1.75rem; }
    .jpeb-section { border-radius: 16px; }
    .jpeb-member-cta { flex-direction: column; align-items: stretch; padding: 1rem 1.15rem; }
    .jpeb-member-btn { text-align: center; }
    .jpeb-form { gap: 0.9rem; }
}

/* -------------------------------- Dark ---------------------------------- */
@media (prefers-color-scheme: dark) {
    .jpeb-section { background: #0f172a; box-shadow: 0 14px 40px -8px rgba(0, 0, 0, 0.55); }
    .jpeb-body { color: #e2e8f0; }
    .jpeb-loading, .jpeb-info { background: #1e293b; color: #cbd5e1; }
    .jpeb-member-cta {
        background: linear-gradient(135deg, #1e3a5c 0%, #131f36 100%);
        border-color: #334155;
    }
    .jpeb-member-cta-text { color: #cbd5e1; }
    .jpeb-member-cta-text strong { color: #f1f5f9; }
    .jpeb-or span { color: #64748b; }
    .jpeb-or::before, .jpeb-or::after { background: linear-gradient(90deg, transparent, #334155, transparent); }
    .jpeb-field {
        background: #1e293b; border-color: #334155;
    }
    .jpeb-field:hover { background: #253145; border-color: #475569; }
    .jpeb-field:focus-within {
        background: #1e293b; border-color: #4b6ea3;
        box-shadow: 0 0 0 4px rgba(75, 110, 163, 0.18);
    }
    .jpeb-field .jpeb-label {
        background: #1e293b;
        color: #94a3b8;
    }
    .jpeb-label-icon { color: #93c5fd; }
    .jpeb-field:focus-within .jpeb-label { color: #93c5fd; }
    .jpeb-field:focus-within { background: #1e293b; }
    .jpeb-field input, .jpeb-field textarea, .jpeb-field select {
        color: #f1f5f9;
    }
    .jpeb-field input::placeholder, .jpeb-field textarea::placeholder { color: transparent; }
    .jpeb-field select {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' stroke='%2393c5fd' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    }
    .jpeb-field input:hover, .jpeb-field textarea:hover, .jpeb-field select:hover {
        background: #253145; border-color: #475569;
    }
    .jpeb-field input:focus, .jpeb-field textarea:focus, .jpeb-field select:focus {
        border-color: #4b6ea3; box-shadow: 0 0 0 4px rgba(75, 110, 163, 0.22);
    }
    .jpeb-checkbox { background: #1e293b; border-color: #334155; color: #cbd5e1; }
    .jpeb-checkbox:hover { background: #253145; }
    .jpeb-info-block h3 { color: #dbeafe; }
    .jpeb-success-block h3 { color: #34d399; }
    .jpeb-success-block p, .jpeb-info-block p { color: #94a3b8; }
}

/* ============================================================================
   v0.3.0 — Frontend-Features (Sharing, Kalender, Countdown, Anfahrt,
   Barrierefrei, Verwandte Events, QR, Schedule-Teaser, Toast)
   ============================================================================ */

/* Access-Badge im Header */
body.jpeb-managed .jpeb-hdr-badge-access {
    background: rgba(16, 185, 129, 0.18) !important;
    color: #d1fae5 !important;
    border: 1px solid rgba(16, 185, 129, 0.45) !important;
}

/* ---- Countdown ---- */
body.jpeb-managed .jpeb-countdown {
    display: block !important;
    padding: 14px 18px; margin: 0 0 14px;
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.10), rgba(38, 74, 123, 0.10));
    border: 1px solid rgba(38, 74, 123, 0.22);
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
    font-family: inherit !important;
}
body.jpeb-managed .jpeb-countdown-label {
    display: flex; align-items: center; gap: 8px;
    font-size: 11px !important; font-weight: 700 !important;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: #64748b !important;
    margin-bottom: 6px;
    line-height: 1.2 !important;
}
body.jpeb-managed .jpeb-countdown-text {
    font-size: 1.1rem !important; font-weight: 700 !important;
    color: #264A7B !important; line-height: 1.25 !important;
    letter-spacing: -0.005em;
}
body.jpeb-managed .jpeb-countdown-dot {
    display: inline-block;
    width: 8px; height: 8px; border-radius: 50%;
    background: #10b981;
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.6);
    animation: jpebPulse 1.8s ease-in-out infinite;
    flex-shrink: 0;
}
@keyframes jpebPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.55); }
    50%      { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
}
@media (prefers-reduced-motion: reduce) {
    body.jpeb-managed .jpeb-countdown-dot { animation: none; }
}

/* ---- Sharing-Buttons ---- */
body.jpeb-managed .jpeb-share {
    margin: 16px 0;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
}
body.jpeb-managed .jpeb-share-header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 10px;
}
body.jpeb-managed .jpeb-share-title {
    font-size: 13px; font-weight: 700; color: #264A7B;
    text-transform: uppercase; letter-spacing: 0.05em;
}
body.jpeb-managed .jpeb-share-row {
    display: flex; flex-wrap: wrap; gap: 8px;
}
body.jpeb-managed .jpeb-share-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 12px;
    background: #f1f5f9; color: #334155;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    font-size: 12px; font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    font-family: inherit;
}
body.jpeb-managed .jpeb-share-chip:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.12);
}
body.jpeb-managed .jpeb-share-chip svg { flex-shrink: 0; }
body.jpeb-managed .jpeb-share-whatsapp { background: #dcfce7; color: #14532d; border-color: #bbf7d0; }
body.jpeb-managed .jpeb-share-whatsapp:hover { background: #bbf7d0; }
body.jpeb-managed .jpeb-share-signal { background: #dbeafe; color: #1e3a8a; border-color: #bfdbfe; }
body.jpeb-managed .jpeb-share-signal:hover { background: #bfdbfe; }
body.jpeb-managed .jpeb-share-mail { background: #f1f5f9; color: #334155; }
body.jpeb-managed .jpeb-share-copy { background: #fef3c7; color: #78350f; border-color: #fde68a; }
body.jpeb-managed .jpeb-share-qr { background: #ede9fe; color: #4c1d95; border-color: #ddd6fe; }

/* ---- Toast ---- */
.jpeb-toast {
    position: fixed;
    left: 50%; bottom: 32px;
    transform: translate(-50%, 16px);
    padding: 12px 20px;
    background: #0f172a; color: #fff;
    border-radius: 10px;
    font: 600 13px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.35);
    opacity: 0; z-index: 100000;
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
}
.jpeb-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

/* ---- Kalender-Dropdown ---- */
body.jpeb-managed .jpeb-cal {
    position: relative;
    margin: 8px 0 16px;
}
body.jpeb-managed .jpeb-cal-btn {
    width: 100%;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 10px 14px;
    background: linear-gradient(135deg, #264A7B 0%, #1e3a5f 100%);
    color: #fff; border: 0; border-radius: 10px;
    font: 600 13px/1.2 inherit;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(38, 74, 123, 0.28);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
body.jpeb-managed .jpeb-cal-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(38, 74, 123, 0.4);
}
body.jpeb-managed .jpeb-cal-caret { transition: transform 0.2s ease; }
body.jpeb-managed .jpeb-cal.is-open .jpeb-cal-caret { transform: rotate(180deg); }
body.jpeb-managed .jpeb-cal-menu {
    position: absolute; z-index: 50;
    top: calc(100% + 6px); left: 0; right: 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.15);
    padding: 6px;
    display: none;
}
body.jpeb-managed .jpeb-cal.is-open .jpeb-cal-menu { display: block; }
body.jpeb-managed .jpeb-cal-menu a {
    display: block;
    padding: 9px 12px;
    color: #334155;
    text-decoration: none;
    border-radius: 6px;
    font-size: 13px; font-weight: 500;
}
body.jpeb-managed .jpeb-cal-menu a:hover { background: #f1f5f9; color: #264A7B; }

/* ---- Anfahrt ---- */
body.jpeb-managed .jpeb-anfahrt {
    margin: 16px 0;
    padding: 14px 16px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-left: 4px solid #0284c7;
    border-radius: 10px;
}
body.jpeb-managed .jpeb-anfahrt-title {
    margin: 0 0 6px;
    font-size: 14px; font-weight: 700; color: #075985;
}
body.jpeb-managed .jpeb-anfahrt-title::before {
    content: "🚆 "; margin-right: 4px;
}
body.jpeb-managed .jpeb-anfahrt-body {
    font-size: 13px; line-height: 1.55; color: #0c4a6e;
}

/* ---- Access-Note ---- */
body.jpeb-managed .jpeb-access-note {
    margin: 12px 0; padding: 12px 14px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    border-left: 4px solid #10b981;
    border-radius: 10px;
    font-size: 13px; line-height: 1.5; color: #064e3b;
}

/* ---- Schedule-Teaser ---- */
body.jpeb-managed .jpeb-schedule-teaser {
    display: flex; gap: 16px; align-items: flex-start;
    margin: 24px 0;
    padding: 20px;
    background: linear-gradient(135deg, #eef2ff 0%, #f5f3ff 100%);
    border: 1px solid #c7d2fe;
    border-radius: 14px;
}
body.jpeb-managed .jpeb-schedule-icon {
    font-size: 32px; line-height: 1; flex-shrink: 0;
}
body.jpeb-managed .jpeb-schedule-body h3 {
    margin: 0 0 4px !important;
    font-size: 16px; font-weight: 700; color: #3730a3;
}
body.jpeb-managed .jpeb-schedule-body p {
    margin: 0 0 10px !important;
    font-size: 13px; line-height: 1.55; color: #475569;
}
body.jpeb-managed .jpeb-schedule-cta {
    display: inline-block;
    padding: 7px 14px;
    background: #4f46e5; color: #fff !important;
    border-radius: 8px;
    text-decoration: none !important;
    font-size: 12px; font-weight: 600;
}
body.jpeb-managed .jpeb-schedule-cta:hover { background: #4338ca; }

/* ---- Verwandte Events ---- */
body.jpeb-managed .jpeb-related {
    margin: 40px 0 0;
    padding-top: 24px;
    border-top: 1px solid #e5e7eb;
}
body.jpeb-managed .jpeb-related-title {
    margin: 0 0 16px !important;
    font-size: 20px; font-weight: 700; color: #264A7B;
}
body.jpeb-managed .jpeb-related-title::before {
    content: "🎯 "; margin-right: 4px;
}
body.jpeb-managed .jpeb-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}
body.jpeb-managed .jpeb-related-card {
    display: block;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none !important;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body.jpeb-managed .jpeb-related-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.10);
}
body.jpeb-managed .jpeb-related-thumb {
    height: 130px;
    background: linear-gradient(135deg, #264A7B, #1e3a5f);
    background-size: cover;
    background-position: center;
    display: flex; align-items: center; justify-content: center;
    color: rgba(255, 255, 255, 0.55);
}
body.jpeb-managed .jpeb-related-thumb-fallback {
    font-weight: 800; font-size: 26px; letter-spacing: 0.05em;
}
body.jpeb-managed .jpeb-related-body { padding: 12px 14px 14px; }
body.jpeb-managed .jpeb-related-date {
    font-size: 11px; font-weight: 700; color: #EC4899;
    text-transform: uppercase; letter-spacing: 0.05em;
    margin-bottom: 4px;
}
body.jpeb-managed .jpeb-related-name {
    margin: 0 0 6px !important;
    font-size: 15px; font-weight: 700; color: #0f172a;
    line-height: 1.3;
}
body.jpeb-managed .jpeb-related-excerpt {
    margin: 0 !important;
    font-size: 12px; line-height: 1.5; color: #64748b;
}

/* ---- QR Modal ---- */
.jpeb-modal-overlay {
    position: fixed; inset: 0;
    background: rgba(15, 23, 42, 0.72);
    z-index: 100001;
    display: flex; align-items: center; justify-content: center;
    padding: 20px;
    animation: jpebFadeIn 0.2s ease;
}
@keyframes jpebFadeIn { from { opacity: 0; } to { opacity: 1; } }
.jpeb-modal-box {
    position: relative;
    background: #fff;
    border-radius: 16px;
    padding: 28px 28px 22px;
    max-width: 340px; width: 100%;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
    text-align: center;
}
.jpeb-modal-close {
    position: absolute; top: 8px; right: 12px;
    background: none; border: 0;
    font-size: 24px; line-height: 1;
    color: #64748b; cursor: pointer;
    padding: 4px 8px;
}
.jpeb-modal-close:hover { color: #0f172a; }
.jpeb-modal-title {
    margin: 0 0 6px !important;
    font-size: 17px; font-weight: 700; color: #264A7B;
}
.jpeb-modal-desc {
    margin: 0 0 14px !important;
    font-size: 12px; color: #64748b;
}
.jpeb-qr-wrap {
    display: flex; justify-content: center;
    padding: 12px; background: #f8fafc; border-radius: 12px;
    margin: 0 auto 12px;
}
.jpeb-qr-wrap img { display: block; width: 240px; height: 240px; }
.jpeb-modal-url {
    font: 500 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #475569;
    word-break: break-all;
    padding: 6px 10px; background: #f1f5f9; border-radius: 6px;
}

/* Dark-mode-Anpassungen für ein paar Karten */
@media (prefers-color-scheme: dark) {
    body.jpeb-managed .jpeb-share,
    body.jpeb-managed .jpeb-related-card {
        background: #1e293b; border-color: #334155;
    }
    body.jpeb-managed .jpeb-share-title { color: #93c5fd; }
    body.jpeb-managed .jpeb-share-chip { background: #0f172a; color: #cbd5e1; border-color: #334155; }
    body.jpeb-managed .jpeb-related-name { color: #f1f5f9; }
    body.jpeb-managed .jpeb-related-excerpt { color: #94a3b8; }
    body.jpeb-managed .jpeb-related-title { color: #93c5fd; }
    body.jpeb-managed .jpeb-cal-menu { background: #1e293b; border-color: #334155; }
    body.jpeb-managed .jpeb-cal-menu a { color: #cbd5e1; }
    body.jpeb-managed .jpeb-cal-menu a:hover { background: #0f172a; color: #93c5fd; }
    body.jpeb-managed .jpeb-countdown {
        background: linear-gradient(135deg, rgba(236, 72, 153, 0.15), rgba(59, 130, 246, 0.15));
        border-color: rgba(147, 197, 253, 0.25);
    }
    body.jpeb-managed .jpeb-countdown-label { color: #94a3b8 !important; }
    body.jpeb-managed .jpeb-countdown-text { color: #dbeafe !important; }
}

/* --------------------------------------------------------------------
 * Kapazitäts-Modi (v0.4.0): Letzte Plätze / Ausgebucht / Warteliste
 * -------------------------------------------------------------------- */
.jpeb-cap-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.4;
    white-space: nowrap;
}
.jpeb-cap-last {
    background: linear-gradient(135deg, #fce7f3, #fbcfe8);
    color: #9d174d;
    border: 1px solid #f9a8d4;
    animation: jpeb-cap-pulse 2s ease-in-out infinite;
}
@keyframes jpeb-cap-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.35); }
    50%      { box-shadow: 0 0 0 6px rgba(236, 72, 153, 0); }
}
.jpeb-cap-full {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.jpeb-waitlist-hint {
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #7c2d12;
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 14px;
    font-size: 14px;
    line-height: 1.5;
}
.jpeb-submit-waitlist {
    background: linear-gradient(135deg, #f97316, #ea580c) !important;
}

.jpeb-full-panel {
    text-align: center;
    padding: 28px 22px;
}
.jpeb-full-icon {
    font-size: 40px;
    line-height: 1;
    margin-bottom: 10px;
}
.jpeb-full-panel h3 {
    margin: 0 0 6px;
    font-size: 18px;
    color: #7f1d1d;
}
.jpeb-full-panel p {
    margin: 0;
    color: #475569;
    font-size: 14px;
    line-height: 1.55;
}

.jpeb-success-waitlist .jpeb-success-check {
    color: #ea580c;
}

@media (prefers-color-scheme: dark) {
    body.jpeb-managed .jpeb-cap-last  { background: rgba(236, 72, 153, 0.18); color: #fbcfe8; border-color: rgba(236, 72, 153, 0.4); }
    body.jpeb-managed .jpeb-cap-full  { background: rgba(220, 38, 38, 0.18); color: #fecaca; border-color: rgba(220, 38, 38, 0.4); }
    body.jpeb-managed .jpeb-waitlist-hint { background: rgba(249, 115, 22, 0.14); border-color: rgba(249, 115, 22, 0.35); color: #fed7aa; }
}
