/* ============================================================
 * KnowListic QR-System
 * ============================================================ */

.wachapp-qr-login {
    --wachapp-qr-accent-rgb: 37, 99, 235;
    --wachapp-qr-success-rgb: 22, 163, 74;
    --wachapp-qr-danger-rgb: 220, 38, 38;
    --wachapp-qr-warning-rgb: 217, 119, 6;
}

.wachapp-login-tabs .nav-link {
    min-width: 0;
    white-space: nowrap;
}

.wachapp-qr-login__stage {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.2);
    background:
        radial-gradient(circle at 5% 10%, rgba(var(--wachapp-qr-accent-rgb), 0.12), transparent 34%),
        linear-gradient(145deg, rgba(var(--bs-body-bg-rgb), 0.98), rgba(var(--bs-tertiary-bg-rgb), 0.9));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.wachapp-qr-login__stage::after {
    content: "";
    position: absolute;
    inset: auto -70px -90px auto;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: rgba(var(--wachapp-qr-accent-rgb), 0.08);
    filter: blur(2px);
    pointer-events: none;
}

.wachapp-qr-login__code {
    position: relative;
    width: 214px;
    min-height: 214px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    border-radius: 1.35rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.12);
    box-shadow: 0 18px 50px rgba(15, 23, 42, 0.16);
}

.wachapp-qr-login__code::before,
.wachapp-qr-login__code::after {
    content: "";
    position: absolute;
    inset: -5px;
    border: 2px solid rgba(var(--wachapp-qr-accent-rgb), 0.35);
    border-radius: 1.55rem;
    pointer-events: none;
}

.wachapp-qr-login__code::after {
    inset: -9px;
    border-color: rgba(var(--wachapp-qr-accent-rgb), 0.1);
}

.wachapp-qr-login__loading {
    min-height: 188px;
    width: 100%;
}

.wachapp-qr-login__svg,
.wachapp-qr-login__svg svg {
    display: block;
    width: 190px;
    height: 190px;
    max-width: 100%;
}

.wachapp-qr-login__status-icon,
.wachapp-qr-profile-icon {
    width: 46px;
    height: 46px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgb(var(--wachapp-qr-accent-rgb));
    background: rgba(var(--wachapp-qr-accent-rgb), 0.12);
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.18);
    font-size: 1.25rem;
}

.wachapp-qr-login__stage[data-status="loading"] .wachapp-qr-login__status-icon i,
.wachapp-qr-login__stage[data-status="consuming"] .wachapp-qr-login__status-icon i {
    animation: wachapp-qr-spin 1s linear infinite;
}

.wachapp-qr-login__stage[data-status="scanned"] .wachapp-qr-login__status-icon,
.wachapp-qr-login__stage[data-status="confirmed"] .wachapp-qr-login__status-icon,
.wachapp-qr-login__stage[data-status="consumed"] .wachapp-qr-login__status-icon {
    color: rgb(var(--wachapp-qr-success-rgb));
    background: rgba(var(--wachapp-qr-success-rgb), 0.12);
    border-color: rgba(var(--wachapp-qr-success-rgb), 0.22);
}

.wachapp-qr-login__stage[data-status="rejected"] .wachapp-qr-login__status-icon,
.wachapp-qr-login__stage[data-status="error"] .wachapp-qr-login__status-icon {
    color: rgb(var(--wachapp-qr-danger-rgb));
    background: rgba(var(--wachapp-qr-danger-rgb), 0.11);
    border-color: rgba(var(--wachapp-qr-danger-rgb), 0.2);
}

.wachapp-qr-login__stage[data-status="expired"] .wachapp-qr-login__status-icon,
.wachapp-qr-login__stage[data-status="cancelled"] .wachapp-qr-login__status-icon {
    color: rgb(var(--wachapp-qr-warning-rgb));
    background: rgba(var(--wachapp-qr-warning-rgb), 0.11);
    border-color: rgba(var(--wachapp-qr-warning-rgb), 0.2);
}

.wachapp-qr-login__timer .progress {
    height: 0.45rem;
    background: rgba(var(--bs-secondary-rgb), 0.14);
}

.wachapp-qr-login__timer .progress-bar {
    width: 100%;
    transform: scaleX(1);
    transform-origin: left center;
    transition: transform 0.5s linear;
    background: linear-gradient(90deg, rgb(var(--wachapp-qr-accent-rgb)), #38bdf8);
}

.wachapp-qr-profile-code {
    width: 344px;
    max-width: 100%;
    padding: 12px;
    border-radius: 1.5rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.12);
    box-shadow: 0 22px 60px rgba(15, 23, 42, 0.18);
}

.wachapp-qr-profile-code svg {
    display: block;
    width: 100%;
    height: auto;
}

.wachapp-qr-profile-url {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    font-family: var(--bs-font-monospace);
}

.wachapp-qr-profile-modal .modal-header,
.wachapp-qr-profile-modal .modal-body,
.wachapp-qr-profile-modal .modal-footer {
    position: relative;
    z-index: 1;
}

.wachapp-qr-profile-modal::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 0 0, rgba(37, 99, 235, 0.13), transparent 35%),
        radial-gradient(circle at 100% 100%, rgba(56, 189, 248, 0.1), transparent 34%);
    pointer-events: none;
}

.wachapp-qr-action {
    min-height: calc(100svh - 130px);
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 15%, rgba(37, 99, 235, 0.16), transparent 34%),
        radial-gradient(circle at 90% 85%, rgba(56, 189, 248, 0.12), transparent 32%);
}

.wachapp-qr-action__card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--bs-border-color-translucent);
    background: rgba(var(--bs-body-bg-rgb), 0.94);
    box-shadow: 0 28px 90px rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(18px);
}

.wachapp-qr-action__card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #2563eb, #38bdf8, #8b5cf6);
}

.wachapp-qr-action__icon {
    width: 84px;
    height: 84px;
    border-radius: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.35rem;
    color: #2563eb;
    background: rgba(37, 99, 235, 0.12);
    border: 1px solid rgba(37, 99, 235, 0.18);
    box-shadow: 0 14px 36px rgba(37, 99, 235, 0.14);
}

.wachapp-qr-action__card[data-qr-status="confirmed"] .wachapp-qr-action__icon,
.wachapp-qr-action__card[data-qr-status="consumed"] .wachapp-qr-action__icon {
    color: #16a34a;
    background: rgba(22, 163, 74, 0.12);
    border-color: rgba(22, 163, 74, 0.2);
}

.wachapp-qr-action__card[data-qr-status="rejected"] .wachapp-qr-action__icon,
.wachapp-qr-action__card[data-qr-status="invalid"] .wachapp-qr-action__icon {
    color: #dc2626;
    background: rgba(220, 38, 38, 0.11);
    border-color: rgba(220, 38, 38, 0.2);
}

.wachapp-qr-action__card[data-qr-status="expired"] .wachapp-qr-action__icon,
.wachapp-qr-action__card[data-qr-status="cancelled"] .wachapp-qr-action__icon {
    color: #d97706;
    background: rgba(217, 119, 6, 0.11);
    border-color: rgba(217, 119, 6, 0.2);
}

@keyframes wachapp-qr-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 575.98px) {
    .wachapp-login-tabs {
        gap: 0.35rem !important;
    }

    .wachapp-login-tabs .nav-link {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
        font-size: 0.78rem;
    }

    .wachapp-login-tabs .nav-link i {
        margin-right: 0.3rem !important;
    }

    .wachapp-qr-login__code {
        width: 206px;
        min-height: 206px;
    }

    .wachapp-qr-login__svg,
    .wachapp-qr-login__svg svg {
        width: 182px;
        height: 182px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wachapp-qr-login__stage[data-status="loading"] .wachapp-qr-login__status-icon i,
    .wachapp-qr-login__stage[data-status="consuming"] .wachapp-qr-login__status-icon i {
        animation: none;
    }

    .wachapp-qr-login__timer .progress-bar {
        transition: none;
    }
}

/* ============================================================
 * Nativer QR-Scanner · Header und Ergebnis-Modal
 * ============================================================ */

/*
 * Das QR-Ergebnis ist eine sicherheitsrelevante Aktion. Während das Modal
 * sichtbar ist, wird die restliche Oberfläche deutlich abgedunkelt und
 * weichgezeichnet. Der hohe z-index verhindert Konflikte mit Header,
 * Offcanvas, Toasts und anderen App-Ebenen.
 */
body.wachapp-qr-scanner-modal-open {
    overflow: hidden;
}

body.wachapp-qr-scanner-modal-open .modal-backdrop.show {
    z-index: 21000;
    opacity: 1;
    background: rgba(3, 7, 18, 0.76);
    -webkit-backdrop-filter: blur(10px) saturate(0.7);
    backdrop-filter: blur(10px) saturate(0.7);
}

.wachapp-qr-scanner-modal {
    z-index: 21010;
    padding-top: max(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)), 0.75rem);
    padding-right: max(var(--safe-area-inset-right, env(safe-area-inset-right, 0px)), 0.75rem);
    padding-bottom: max(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)), 0.75rem);
    padding-left: max(var(--safe-area-inset-left, env(safe-area-inset-left, 0px)), 0.75rem);
}

.wachapp-qr-scanner-modal .modal-dialog {
    width: min(100%, 35rem);
    max-width: 35rem;
    margin-right: auto;
    margin-left: auto;
    transform: translateY(0.75rem) scale(0.985);
    transition: transform 0.22s ease-out;
}

.wachapp-qr-scanner-modal.show .modal-dialog {
    transform: translateY(0) scale(1);
}

.wachapp-qr-scanner-button-loading i {
    animation: wachapp-qr-spin 0.9s linear infinite;
}

.wachapp-qr-scanner-modal .modal-content {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(var(--bs-primary-rgb), 0.28) !important;
    border-radius: 1.4rem;
    background:
        radial-gradient(circle at 0 0, rgba(var(--bs-primary-rgb), 0.18), transparent 38%),
        radial-gradient(circle at 100% 100%, rgba(var(--bs-info-rgb), 0.11), transparent 34%),
        var(--bs-body-bg);
    box-shadow:
        0 2rem 6rem rgba(0, 0, 0, 0.58),
        0 0 0 1px rgba(255, 255, 255, 0.06),
        0 0 3rem rgba(var(--bs-primary-rgb), 0.16);
}

.wachapp-qr-scanner-modal .modal-header {
    background: rgba(var(--bs-body-bg-rgb), 0.93);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.wachapp-qr-scanner-modal .modal-footer {
    background: rgba(var(--bs-body-bg-rgb), 0.96);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.wachapp-qr-scanner-modal .modal-content::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--bs-primary), var(--bs-info), var(--bs-indigo));
    pointer-events: none;
}

.wachapp-qr-scanner-modal .min-w-0 {
    min-width: 0;
}

.wachapp-qr-scanner-modal__icon,
.wachapp-qr-scanner-modal__device-icon {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    border-radius: 0.9rem;
    color: var(--bs-primary-text-emphasis);
    background: var(--bs-primary-bg-subtle);
    border: 1px solid var(--bs-primary-border-subtle);
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.wachapp-qr-scanner-modal__device-icon {
    width: 2.4rem;
    height: 2.4rem;
    min-width: 2.4rem;
    border-radius: 0.75rem;
}

.wachapp-qr-scanner-modal__icon.is-success {
    color: var(--bs-success-text-emphasis);
    background: var(--bs-success-bg-subtle);
    border-color: var(--bs-success-border-subtle);
}

.wachapp-qr-scanner-modal__icon.is-danger {
    color: var(--bs-danger-text-emphasis);
    background: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle);
}

.wachapp-qr-scanner-modal__icon.is-warning {
    color: var(--bs-warning-text-emphasis);
    background: var(--bs-warning-bg-subtle);
    border-color: var(--bs-warning-border-subtle);
}

.wachapp-qr-scanner-modal__icon.is-loading i {
    animation: wachapp-qr-spin 0.9s linear infinite;
}

.wachapp-qr-scanner-modal__loader {
    width: 5.5rem;
    height: 5.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 1.6rem;
    color: var(--bs-primary-text-emphasis);
    background:
        linear-gradient(var(--bs-body-bg), var(--bs-body-bg)) padding-box,
        linear-gradient(135deg, var(--bs-primary), var(--bs-info)) border-box;
    border: 2px solid transparent;
    box-shadow: 0 1rem 2.5rem rgba(var(--bs-primary-rgb), 0.15);
    font-size: 2.2rem;
}

.wachapp-qr-scanner-modal__loader i {
    animation: wachappQrScannerPulse 1.4s ease-in-out infinite;
}

.wachapp-qr-scanner-modal__value {
    background: rgba(var(--bs-secondary-bg-rgb), 0.78);
    border: 1px solid var(--bs-border-color-translucent);
    max-height: 12rem;
    overflow: auto;
}

.wachapp-qr-scanner-modal [data-wachapp-qr-scanner-browser-card="1"] {
    border-color: rgba(var(--bs-primary-rgb), 0.28) !important;
    background:
        linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.12), rgba(var(--bs-info-rgb), 0.06)),
        var(--bs-tertiary-bg) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.wachapp-qr-scanner-modal [data-wachapp-qr-scanner-primary="1"] {
    box-shadow: 0 0.65rem 1.6rem rgba(var(--bs-primary-rgb), 0.24);
}

.wachapp-qr-scanner-modal__state[data-state="error"] .wachapp-qr-scanner-modal__loader,
.wachapp-qr-scanner-modal__state[data-state="warning"] .wachapp-qr-scanner-modal__loader {
    box-shadow: none;
}

@keyframes wachappQrScannerPulse {
    0%,
    100% {
        transform: scale(0.96);
        opacity: 0.78;
    }

    50% {
        transform: scale(1.05);
        opacity: 1;
    }
}

@media (max-width: 575.98px) {
    .wachapp-qr-scanner-modal {
        padding: max(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)), 0.5rem) 0.5rem max(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)), 0.5rem);
    }

    .wachapp-qr-scanner-modal .modal-dialog {
        width: 100%;
        max-width: 100%;
        margin: auto;
    }

    .wachapp-qr-scanner-modal .modal-content {
        border-radius: 1.15rem;
    }

    .wachapp-qr-scanner-modal .modal-body {
        padding: 1.25rem !important;
    }

    .wachapp-qr-scanner-modal .modal-footer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wachapp-qr-scanner-modal .modal-footer .btn {
        width: 100%;
        margin: 0 !important;
    }

    .wachapp-qr-scanner-modal .modal-footer [data-wachapp-qr-scanner-rescan="1"] {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wachapp-qr-scanner-button-loading i,
    .wachapp-qr-scanner-modal__icon.is-loading i,
    .wachapp-qr-scanner-modal__loader i {
        animation: none;
    }
}


.wachapp-qr-login__help {
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.16);
    background:
        radial-gradient(circle at top right, rgba(var(--wachapp-qr-accent-rgb), 0.08), transparent 30%),
        linear-gradient(145deg, rgba(var(--bs-body-bg-rgb), 0.94), rgba(var(--bs-tertiary-bg-rgb), 0.92));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.wachapp-qr-login__help-icon {
    width: 42px;
    height: 42px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: rgb(var(--wachapp-qr-accent-rgb));
    background: rgba(var(--wachapp-qr-accent-rgb), 0.12);
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.18);
}

.wachapp-qr-login__help-steps {
    margin: 0;
    padding-left: 1.15rem;
}

.wachapp-qr-login__help-steps li + li {
    margin-top: 0.45rem;
}

.wachapp-qr-login__code-wrap {
    width: 100%;
}

.wachapp-qr-login__scan-hint {
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
}

.wachapp-qr-login__status {
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
}

.wachapp-qr-login__status-message {
    max-width: 26rem;
}

.wachapp-login-qr-guide {
    position: relative;
    padding: 1.1rem 1.15rem;
    border-radius: 1.35rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);
}

.wachapp-login-qr-guide__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #fff;
    background: rgba(37, 99, 235, 0.24);
    border: 1px solid rgba(96, 165, 250, 0.38);
}

.wachapp-login-qr-guide__steps {
    margin: 0;
    padding-left: 1.1rem;
    color: rgba(255, 255, 255, 0.88);
}

.wachapp-login-qr-guide__steps li + li {
    margin-top: 0.4rem;
}

@media (max-width: 575.98px) {
    .wachapp-qr-login__help .d-flex {
        align-items: flex-start;
    }

    .wachapp-login-qr-guide {
        padding: 1rem;
    }
}


.wachapp-qr-login__finder {
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.16);
    background:
        radial-gradient(circle at left top, rgba(var(--wachapp-qr-accent-rgb), 0.08), transparent 28%),
        linear-gradient(145deg, rgba(var(--bs-body-bg-rgb), 0.98), rgba(var(--bs-tertiary-bg-rgb), 0.92));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.wachapp-qr-login__finder-icon {
    width: 42px;
    height: 42px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: rgb(var(--wachapp-qr-accent-rgb));
    background: rgba(var(--wachapp-qr-accent-rgb), 0.12);
    border: 1px solid rgba(var(--wachapp-qr-accent-rgb), 0.18);
}

.wachapp-qr-login__quick-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.wachapp-qr-login__quick-action {
    min-width: 2.9rem;
    height: 2.9rem;
    padding: 0 0.8rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    color: var(--bs-body-color);
    background: rgba(var(--bs-tertiary-bg-rgb), 0.82);
    border: 1px solid rgba(var(--bs-border-color-rgb), 0.95);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.wachapp-qr-login__quick-action i {
    font-size: 1rem;
    line-height: 1;
}

.wachapp-qr-login__quick-action span {
    font-size: 0.82rem;
    font-weight: 700;
}

.wachapp-qr-login__quick-action--active {
    color: #fff;
    background: linear-gradient(135deg, rgb(var(--wachapp-qr-accent-rgb)), #3b82f6);
    border-color: rgba(var(--wachapp-qr-accent-rgb), 0.85);
    box-shadow: 0 14px 28px rgba(var(--wachapp-qr-accent-rgb), 0.28);
}

.wachapp-qr-login__finder-steps {
    margin: 0;
    padding-left: 1.1rem;
}

.wachapp-qr-login__finder-steps li + li {
    margin-top: 0.4rem;
}

@media (max-width: 575.98px) {
    .wachapp-qr-login__quick-actions {
        gap: 0.45rem;
    }

    .wachapp-qr-login__quick-action {
        min-width: 2.65rem;
        height: 2.65rem;
        padding: 0 0.65rem;
        border-radius: 0.9rem;
    }

    .wachapp-qr-login__quick-action span {
        font-size: 0.75rem;
    }
}


/* ============================================================
 * QR-Login · Light/Dark Optimierung und kompakter Aufbau
 * ============================================================ */

.wachapp-qr-login__quick-info .btn {
    min-height: 2.35rem;
}

.wachapp-qr-login__detail-card {
    border: 1px solid rgba(var(--bs-primary-rgb), 0.12);
    background: linear-gradient(145deg, rgba(var(--bs-body-bg-rgb), 0.98), rgba(var(--bs-tertiary-bg-rgb), 0.94));
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

.wachapp-qr-login__detail-steps,
.wachapp-qr-login__finder-steps {
    margin: 0;
    padding-left: 1.1rem;
}

.wachapp-qr-login__detail-steps li + li,
.wachapp-qr-login__finder-steps li + li {
    margin-top: 0.35rem;
}

.wachapp-qr-login__quick-actions {
    justify-content: center;
}

.wachapp-qr-login__stage {
    background:
        radial-gradient(circle at 5% 10%, rgba(var(--wachapp-qr-accent-rgb), 0.08), transparent 30%),
        linear-gradient(145deg, rgba(var(--bs-body-bg-rgb), 0.98), rgba(var(--bs-tertiary-bg-rgb), 0.95));
}

.wachapp-qr-login__scan-hint,
.wachapp-qr-login__status-message {
    max-width: 28rem;
    margin-left: auto;
    margin-right: auto;
}


@media (max-width: 575.98px) {

    .wachapp-qr-login__quick-info {
        flex-direction: column;
        align-items: stretch !important;
    }

    .wachapp-qr-login__quick-info .btn {
        width: 100%;
    }
}

/*
 * ============================================================
 * QR Scanner · Aktionsbereich / Mobile UX
 * ============================================================
 * Die sicherheitsrelevante Primäraktion steht immer klar an erster Stelle.
 * Sekundäraktionen bleiben gleichwertig, kompakt und auf kleinen Displays
 * ohne unruhige Zeilenumbrüche bedienbar.
 */
.wachapp-qr-scanner-modal__actions {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.wachapp-qr-scanner-modal__primary-action {
    min-height: 3.75rem;
    width: 100%;
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr) 1.5rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: 1rem;
    text-align: left;
    font-weight: 700;
    line-height: 1.2;
    box-shadow:
        0 0.8rem 1.8rem rgba(var(--bs-primary-rgb), 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition:
        transform 0.16s ease,
        box-shadow 0.16s ease,
        filter 0.16s ease;
}

.wachapp-qr-scanner-modal__primary-action:hover,
.wachapp-qr-scanner-modal__primary-action:focus-visible {
    transform: translateY(-1px);
    box-shadow:
        0 1rem 2.2rem rgba(var(--bs-primary-rgb), 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.wachapp-qr-scanner-modal__primary-action:active {
    transform: translateY(0) scale(0.99);
}

.wachapp-qr-scanner-modal__action-icon {
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.8rem;
    background: rgba(255, 255, 255, 0.16);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
    font-size: 1.1rem;
}

.wachapp-qr-scanner-modal__action-label {
    min-width: 0;
    font-size: 1rem;
    text-align: center;
    overflow-wrap: anywhere;
}

.wachapp-qr-scanner-modal__action-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.8;
    font-size: 1rem;
}

.wachapp-qr-scanner-modal__secondary-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.wachapp-qr-scanner-modal__secondary-action {
    min-height: 3rem;
    flex: 1 1 9.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin: 0 !important;
    padding: 0.65rem 0.85rem;
    border-radius: 0.9rem;
    font-weight: 600;
    line-height: 1.15;
    white-space: normal;
    transition:
        transform 0.16s ease,
        background-color 0.16s ease,
        border-color 0.16s ease,
        color 0.16s ease;
}

.wachapp-qr-scanner-modal__secondary-action:hover,
.wachapp-qr-scanner-modal__secondary-action:focus-visible {
    transform: translateY(-1px);
}

.wachapp-qr-scanner-modal__secondary-action:active {
    transform: translateY(0) scale(0.99);
}

.wachapp-qr-scanner-modal__secondary-action i {
    flex: 0 0 auto;
    font-size: 1.05rem;
}

.wachapp-qr-scanner-modal__secondary-action span {
    min-width: 0;
}

@media (max-width: 575.98px) {
    .wachapp-qr-scanner-modal .modal-footer {
        display: block;
    }

    .wachapp-qr-scanner-modal__actions {
        gap: 0.7rem;
    }

    .wachapp-qr-scanner-modal__primary-action {
        min-height: 3.9rem;
        grid-template-columns: 2.25rem minmax(0, 1fr) 1.25rem;
        gap: 0.6rem;
        border-radius: 0.95rem;
    }

    .wachapp-qr-scanner-modal__action-icon {
        width: 2.25rem;
        height: 2.25rem;
        border-radius: 0.72rem;
    }

    .wachapp-qr-scanner-modal__secondary-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.6rem;
    }

    .wachapp-qr-scanner-modal__secondary-action {
        min-width: 0;
        width: 100%;
        min-height: 3.05rem;
        padding-right: 0.65rem;
        padding-left: 0.65rem;
    }

    .wachapp-qr-scanner-modal__secondary-action:only-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 359.98px) {
    .wachapp-qr-scanner-modal__secondary-actions {
        grid-template-columns: 1fr;
    }

    .wachapp-qr-scanner-modal__action-label {
        font-size: 0.95rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wachapp-qr-scanner-modal__primary-action,
    .wachapp-qr-scanner-modal__secondary-action {
        transition: none;
    }
}

.wachapp-qr-scanner-modal__result-head {
    padding: 0.1rem 0;
}

.wachapp-qr-scanner-modal__result-head .badge {
    padding: 0.5rem 0.75rem;
    font-size: 0.76rem;
    letter-spacing: 0.01em;
}

.wachapp-qr-scanner-modal__result-head [data-wachapp-qr-scanner-result-message="1"] {
    max-width: 30rem;
    line-height: 1.55;
}

@media (max-width: 575.98px) {
    .wachapp-qr-scanner-modal__actions[data-secondary-count="1"] .wachapp-qr-scanner-modal__secondary-action:not(.d-none) {
        grid-column: 1 / -1;
    }

    .wachapp-qr-scanner-modal__actions[data-secondary-count="3"] .wachapp-qr-scanner-modal__secondary-action:not(.d-none):last-child {
        grid-column: 1 / -1;
    }
}
