/* Hallo-Mustermann/KI-Telefonie Branding
   Dieses CSS ist bewusst additiv zum Keycloak-Standardtheme. Die nativen
   Keycloak-Templates bleiben unverändert, damit Passkeys/WebAuthn weiterhin
   direkt aus Keycloak 26.7 funktionieren. */

@font-face {
    font-family: "NeoSans";
    src: url("../fonts/neo_sans_std_regular-webfont-B4Ln9hzP.woff2") format("woff2"),
         url("../fonts/neo_sans_std_regular-webfont-hROdAoJo.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "NeoSans";
    src: url("../fonts/neo_sans_std_bold-webfont-CZ9JKNrG.woff2") format("woff2"),
         url("../fonts/neo_sans_std_bold-webfont-KCvcMMXU.woff") format("woff");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    --hm-green: #4ba23b;
    --hm-green-hover: #3e8731;
    --hm-gold: #c78a21;
    --hm-cyan: #63b9c8;
    --hm-ink: #1f2933;
    --hm-muted: #6b7280;
    --hm-surface: #ffffff;
    --hm-soft: #f4f8f9;
}

html.login-pf,
.login-pf body {
    min-height: 100%;
    background:
        radial-gradient(circle at 12% 18%, rgba(99, 185, 200, 0.26), transparent 32rem),
        radial-gradient(circle at 84% 8%, rgba(199, 138, 33, 0.18), transparent 28rem),
        linear-gradient(135deg, #f7fafb 0%, #edf6f7 48%, #fff8ee 100%) !important;
    color: var(--hm-ink);
    font-family: "NeoSans", "Red Hat Text", sans-serif;
}

.login-pf *,
.login-pf-page * {
    font-family: "NeoSans", "Red Hat Text", sans-serif;
}

.login-pf-page {
    padding: 48px 20px 32px;
}

#kc-header {
    color: var(--hm-ink);
    margin: 0 auto 22px;
    overflow: visible;
    text-align: center;
    white-space: normal;
}

#kc-header-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 0;
    color: transparent;
    font-size: 0;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
}

#kc-header-wrapper::before {
    content: "";
    width: 76px;
    height: 76px;
    border-radius: 24px;
    background: var(--hm-surface) url("../img/hallomustermann-favicon.png") center / 46px 46px no-repeat;
    border: 1px solid rgba(99, 185, 200, 0.28);
    box-shadow: 0 18px 48px rgba(31, 41, 51, 0.16), 0 0 0 8px rgba(255, 255, 255, 0.6);
}

#kc-header-wrapper::after {
    content: "KI Telefonie Admin";
    color: var(--hm-ink);
    font-size: clamp(25px, 4vw, 34px);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.card-pf {
    width: min(460px, calc(100vw - 32px));
    margin: 0 auto;
    border: 0;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 24px 70px rgba(31, 41, 51, 0.18), 0 1px 0 rgba(255, 255, 255, 0.8) inset;
    padding: 30px 38px 34px;
    backdrop-filter: blur(10px);
}

.login-pf-header {
    margin-bottom: 18px;
}

h1#kc-page-title {
    color: var(--hm-ink);
    font-size: 23px;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 8px 0 22px;
}

.pf-c-form__label-text,
.control-label {
    color: var(--hm-ink);
    font-weight: 700;
}

.pf-c-form-control,
input[type="text"],
input[type="password"] {
    border-radius: 14px;
    border: 1px solid #dce6e8;
    min-height: 44px;
    box-shadow: none;
}

.pf-c-form-control:focus,
.pf-c-form-control:hover,
.pf-c-form-control:focus-visible,
input[type="text"]:focus,
input[type="password"]:focus {
    border-color: var(--hm-cyan) !important;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(99, 185, 200, 0.18);
}

#kc-form-options .checkbox,
#kc-form-options .checkbox label,
.instruction,
.login-pf-page .card-pf p {
    color: var(--hm-muted);
}

.pf-c-button.pf-m-primary,
#kc-login {
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--hm-green), #68b84f) !important;
    color: #fff;
    font-weight: 700;
    min-height: 46px;
    box-shadow: 0 12px 26px rgba(75, 162, 59, 0.28);
    transition: transform 0.14s ease, box-shadow 0.14s ease, background 0.14s ease;
}

.pf-c-button.pf-m-primary:hover,
#kc-login:hover {
    background: linear-gradient(135deg, var(--hm-green-hover), var(--hm-green)) !important;
    box-shadow: 0 14px 30px rgba(75, 162, 59, 0.34);
    transform: translateY(-1px);
}

a,
.login-pf a,
#kc-form-options a,
#kc-registration a {
    color: var(--hm-gold);
    font-weight: 700;
}

a:hover,
.login-pf a:hover {
    color: #9f6f1a;
}

#authenticateWebAuthnButton {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin-top: 14px;
    border: 1px solid rgba(99, 185, 200, 0.55);
    border-radius: 999px;
    background: rgba(99, 185, 200, 0.10);
    color: #255f68;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.14s ease, background 0.14s ease, border-color 0.14s ease;
}

#authenticateWebAuthnButton::before {
    content: "🔐";
    margin-right: 8px;
    font-size: 16px;
}

#authenticateWebAuthnButton:hover {
    background: rgba(99, 185, 200, 0.18);
    border-color: var(--hm-cyan);
    color: #17444b;
    text-decoration: none;
    transform: translateY(-1px);
}

#kc-locale-dropdown button,
#kc-current-locale-link {
    color: var(--hm-muted);
}

#kc-locale ul,
.pf-c-dropdown__menu {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(31, 41, 51, 0.15);
}

.pf-c-alert.pf-m-inline,
.alert-info {
    border: 0;
    border-radius: 16px;
    background-color: #f0f4f4;
}

.required,
.pf-c-alert__title,
.pf-c-alert__icon,
.kc-feedback-text {
    color: var(--hm-gold) !important;
}

#kc-info {
    margin: 24px -38px -34px;
}

#kc-info-wrapper {
    border-radius: 0 0 28px 28px;
    background-color: var(--hm-soft);
    color: var(--hm-muted);
}

@media (max-width: 520px) {
    .login-pf-page {
        padding: 28px 12px 22px;
    }

    .card-pf {
        padding: 24px 22px 28px;
        border-radius: 22px;
    }

    #kc-info {
        margin: 22px -22px -28px;
    }

    #kc-info-wrapper {
        border-radius: 0 0 22px 22px;
    }
}
