/* ==========================================================================
   Oeffentliche Seiten (Login, Beitritt, Fehler)
   ========================================================================== */

.public-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #172554 0%, #1e3a8a 55%, #2563eb 100%);
    padding: 1.5rem;
}

.public-wrap {
    width: 100%;
    max-width: 440px;
}

.public-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(2, 6, 23, 0.35);
    overflow: hidden;
}
.public-card__head {
    padding: 2rem 2rem 1rem;
    text-align: center;
}
.public-card__head .logo {
    width: 72px; height: 72px; border-radius: 18px;
    display: grid; place-items: center; margin: 0 auto 1rem;
    overflow: hidden; box-shadow: 0 6px 18px rgba(30, 58, 138, 0.35);
}
.public-card__head .logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.public-card__head h1 { font-size: 1.35rem; margin-bottom: .25rem; }
.public-card__head p { color: #64748b; margin: 0; font-size: .92rem; }
.public-card__body { padding: 1rem 2rem 2rem; }

.public-card__body .field { margin-bottom: 1rem; }
.public-card__body .btn { width: 100%; justify-content: center; padding: .7rem; font-size: .98rem; }

.public-foot {
    text-align: center; color: rgba(255,255,255,.75);
    font-size: .82rem; margin-top: 1.25rem;
}

/* Hinweis: .meeting-preview wird zentral in admin.css definiert (wird auf
   oeffentlichen Seiten ueber admin.css ebenfalls geladen). */

/* Fehlerseite */
.error-box {
    background: #fff; border-radius: 16px; padding: 2.5rem 2rem; text-align: center;
    box-shadow: 0 20px 50px rgba(2, 6, 23, 0.35);
}
.error-box .emoji { font-size: 3rem; }
.error-box h1 { font-size: 1.4rem; margin: 1rem 0 .5rem; }
.error-box p { color: #475569; }
.error-code { font-size: 3.5rem; font-weight: 800; color: #1e3a8a; letter-spacing: .05em; }
