/* =========================================================
   Fotosortierer – Login Verfeinerung
   ========================================================= */

body.is-guest .login-card {
    transform: translateZ(0);
}

@media (min-width: 901px) {
    body.is-guest .app-shell {
        grid-template-columns: 56% 44%;
        transition: grid-template-columns 1250ms cubic-bezier(.16, 1, .3, 1) !important;
    }

    body.is-guest .access-panel,
    body.is-guest .login-wrap,
    body.is-guest .story-content,
    body.is-guest .story-header,
    body.is-guest .story-footer,
    body.is-guest .story-panel {
        transition-duration: 1250ms !important;
        transition-timing-function: cubic-bezier(.16, 1, .3, 1) !important;
        backface-visibility: hidden;
    }

    body.login-focus-mode .app-shell {
        grid-template-columns: 38% 62% !important;
    }

    body.login-focus-mode .story-panel {
        filter: saturate(.92) brightness(.91) !important;
    }

    body.login-focus-mode .story-content {
        transform: translate3d(-.7vw, 0, 0) scale(.93) !important;
        opacity: .82 !important;
    }

    body.login-focus-mode .story-header {
        transform: scale(.975) !important;
        opacity: .88 !important;
    }

    body.login-focus-mode .story-footer {
        transform: translateY(3px) !important;
        opacity: .56 !important;
    }

    body.login-focus-mode .access-panel {
        padding-left: 4vw !important;
        padding-right: 4vw !important;
    }

    body.login-focus-mode .login-wrap {
        transform: translate3d(-4.5vw, 0, 0) !important;
    }
}

/* Eingaben klar und auch für ältere Nutzer gut lesbar */
.login-card .login-eyebrow {
    font-size: 14px !important;
    line-height: 1.45 !important;
}

.login-card .login-heading h2 {
    font-size: 34px !important;
    line-height: 1.08 !important;
}

.login-card .login-intro {
    font-size: 16px !important;
    line-height: 1.6 !important;
}

.login-card .field > label,
.login-card .field-label-row > label {
    font-size: 16px !important;
    font-weight: 750 !important;
}

.login-card .input-shell {
    min-height: 58px;
    border-color: rgba(34, 49, 42, .18) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.86);
}

.login-card .input-shell:focus-within {
    border-color: rgba(32, 78, 60, .50) !important;
    box-shadow:
        0 0 0 4px rgba(43, 92, 72, .09),
        inset 0 1px 0 rgba(255,255,255,.9) !important;
}

.login-card input {
    color: #17251f !important;
    font-size: 17px !important;
    font-weight: 620 !important;
    letter-spacing: 0;
}

.login-card input::placeholder {
    color: #8b9690 !important;
    opacity: 1;
    font-weight: 500 !important;
}

.login-card .input-icon svg {
    width: 19px !important;
    height: 19px !important;
}

.login-card .password-toggle {
    font-size: 14px !important;
    font-weight: 700 !important;
}

/* Moderner, ruhiger Login-Button */
.primary-button-login {
    position: relative;
    min-height: 62px !important;
    margin-top: 5px !important;
    padding: 0 17px !important;
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    border: 1px solid #1c4737 !important;
    border-radius: 12px !important;
    background: #204b3a !important;
    box-shadow:
        0 9px 18px rgba(28, 64, 50, .16),
        inset 0 1px 0 rgba(255,255,255,.07) !important;
    overflow: hidden;
}

.primary-button-login::before {
    content: "" !important;
    display: block !important;
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(100deg, transparent 0 42%, rgba(255,255,255,.09) 50%, transparent 58% 100%);
    transform: translateX(-115%);
    transition: transform 700ms cubic-bezier(.16, 1, .3, 1);
}

.primary-button-login:hover:not(:disabled) {
    transform: translateY(-1px) !important;
    background: #255340 !important;
    box-shadow:
        0 13px 24px rgba(28, 64, 50, .20),
        inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.primary-button-login:hover:not(:disabled)::before {
    transform: translateX(115%);
}

.primary-button-login:active:not(:disabled) {
    transform: translateY(0) scale(.997) !important;
}

.button-lock {
    width: 34px !important;
    height: 34px !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: rgba(255,255,255,.9) !important;
    background: rgba(255,255,255,.075) !important;
    box-shadow: none !important;
}

.button-lock svg {
    width: 17px !important;
    height: 17px !important;
}

.button-copy {
    gap: 2px !important;
}

.button-copy strong {
    font-size: 16px !important;
    font-weight: 760 !important;
    letter-spacing: 0;
}

.button-copy small {
    color: rgba(255,255,255,.66) !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    letter-spacing: .015em;
}

.primary-button-login .button-arrow {
    font-size: 19px !important;
    opacity: .70 !important;
}

.primary-button-login:hover:not(:disabled) .button-arrow {
    transform: translateX(2px) !important;
    opacity: .95 !important;
}

.primary-button-login.is-mobile-blocked {
    grid-template-columns: 34px minmax(0, 1fr) !important;
    opacity: .72 !important;
}

.primary-button-login.is-mobile-blocked .button-arrow {
    display: none !important;
}

/* Datenschutzversprechen direkt im Formular, ohne eigene Kachel */
.local-processing-note {
    margin: 3px 2px 11px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #65736c;
    font-size: 13px;
    line-height: 1.5;
}

.local-processing-note span {
    flex: 0 0 auto;
    margin-top: 7px;
    color: #527765;
    font-size: 7px;
}

/* Hilfe als dezente Funktionszeile */
.help-box-professional {
    min-height: 60px;
    margin-top: 14px !important;
    padding: 10px 12px !important;
    grid-template-columns: 38px minmax(0, 1fr) auto !important;
    gap: 12px !important;
    border: 1px solid rgba(28, 43, 35, .10) !important;
    border-radius: 11px !important;
    background: rgba(255,255,255,.46) !important;
    box-shadow: none !important;
}

.help-box-professional:hover {
    transform: translateY(-1px) !important;
    border-color: rgba(33,75,59,.20) !important;
    background: rgba(255,255,255,.72) !important;
}

.help-symbol,
.dialog-avatar-clean {
    display: grid;
    place-items: center;
    color: #36584b;
    background: #edf1ed;
}

.help-symbol {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(33,75,59,.07);
    border-radius: 10px;
}

.help-symbol svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.help-box-professional .help-copy strong {
    margin-bottom: 2px !important;
    color: #304239 !important;
    font-size: 15px !important;
    font-weight: 750 !important;
}

.help-box-professional .help-copy small {
    color: #747f79 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

.help-box-professional .help-arrow {
    color: #738078 !important;
    font-size: 18px !important;
}

.dialog-avatar-clean {
    width: 50px !important;
    height: 50px !important;
    border: 1px solid rgba(33,75,59,.08);
    border-radius: 14px !important;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px !important;
    font-weight: 700;
}

.help-dialog h2 {
    font-size: 30px !important;
}

.help-dialog h3,
.help-dialog .help-steps strong,
.help-dialog .password-help-note strong {
    font-size: 16px !important;
}

.help-dialog p,
.help-dialog .help-steps p,
.help-dialog .password-help-note p,
.help-dialog .dialog-reset-link {
    font-size: 14px !important;
    line-height: 1.55 !important;
}

.login-legal-footer {
    margin-top: 17px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: #7c8580;
    font-size: 12px;
}

.login-legal-footer nav {
    display: flex;
    align-items: center;
    gap: 14px;
}

.login-legal-footer a {
    color: #596a61;
    font-weight: 700;
    text-decoration: none;
}

.login-legal-footer a:hover {
    color: #314b40;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.login-info-box {
    border-color: rgba(55, 96, 77, .13) !important;
    color: #48665a !important;
    background: #f0f5f1 !important;
    font-size: 14px !important;
}

.login-info-box .error-icon {
    background: #577c6b !important;
}

.login-card .field-label-row {
    min-height: 28px !important;
}

.login-card .field-label-row .forgot-link {
    color: #56675e !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

@media (max-width: 900px) {
    body.is-guest .app-shell,
    body.login-focus-mode .app-shell {
        display: block !important;
    }

    body.login-focus-mode .login-wrap,
    body.login-focus-mode .story-content,
    body.login-focus-mode .story-header,
    body.login-focus-mode .story-footer {
        transform: none !important;
    }
}

@media (max-width: 560px) {
    .login-legal-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .local-processing-note {
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.is-guest .app-shell,
    body.is-guest .story-panel,
    body.is-guest .story-content,
    body.is-guest .story-header,
    body.is-guest .story-footer,
    body.is-guest .access-panel,
    body.is-guest .login-wrap,
    body.is-guest .login-card {
        transition: none !important;
    }
}
