/* Font Awesome 7 Pro Erweiterungen */

/* Duotone Icon Farbanpassungen */
.fa-duotone.text-primary {
    --fa-primary-color: #0d6efd;
    --fa-secondary-color: rgba(13, 110, 253, 0.4);
}

.fa-duotone.text-danger {
    --fa-primary-color: #dc3545;
    --fa-secondary-color: rgba(220, 53, 69, 0.4);
}

.fa-duotone.text-success {
    --fa-primary-color: #198754;
    --fa-secondary-color: rgba(25, 135, 84, 0.4);
}

.fa-duotone.text-warning {
    --fa-primary-color: #ffc107;
    --fa-secondary-color: rgba(255, 193, 7, 0.4);
}

.fa-duotone.text-info {
    --fa-primary-color: #0dcaf0;
    --fa-secondary-color: rgba(13, 202, 240, 0.4);
}

/* Navbar spezifische Duotone Farben */
.navbar-dark .fa-duotone {
    --fa-primary-color: #ffffff;
    --fa-secondary-color: rgba(255, 255, 255, 0.5);
}

/* Heartbeat Animation für Herzfrequenz Icons */
.fa-heartbeat,
.fa-heart-pulse {
    animation: heartbeat 1.5s ease-in-out infinite;
}

@keyframes heartbeat {
    0% { transform: scale(1); }
    14% { transform: scale(1.1); }
    28% { transform: scale(1); }
    42% { transform: scale(1.1); }
    70% { transform: scale(1); }
    100% { transform: scale(1); }
}

/* Bluetooth Animation */
.fa-bluetooth.connected {
    color: #0d6efd;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { opacity: 1; }
    50% { opacity: 0.5; }
    100% { opacity: 1; }
}

/* Sharp Icons für bessere Schärfe */
.nav-link .fa-sharp {
    font-weight: 900;
}

/* Thin Icons für subtile Elemente */
.navbar-text .fa-thin {
    font-weight: 100;
}

/* Light Icons für sekundäre Informationen */
.text-muted .fa-light {
    font-weight: 300;
}

/* Icon Sizing Utilities */
.fa-xs { font-size: 0.75rem; }
.fa-sm { font-size: 0.875rem; }
.fa-lg { font-size: 1.25rem; }
.fa-xl { font-size: 1.5rem; }
.fa-2xl { font-size: 2rem; }

/* Icon Spacing */
.fa-fw { width: 1.25em; text-align: center; }

/* Status Icons */
.status-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.status-icon.online .fa-duotone {
    --fa-primary-color: #198754;
    --fa-secondary-color: rgba(25, 135, 84, 0.3);
}

.status-icon.offline .fa-duotone {
    --fa-primary-color: #6c757d;
    --fa-secondary-color: rgba(108, 117, 125, 0.3);
}

.status-icon.warning .fa-duotone {
    --fa-primary-color: #ffc107;
    --fa-secondary-color: rgba(255, 193, 7, 0.3);
}

/* Button Icons */
.btn .fa-duotone {
    --fa-primary-color: currentColor;
    --fa-secondary-color: rgba(255, 255, 255, 0.3);
}

.btn-primary .fa-duotone {
    --fa-secondary-color: rgba(255, 255, 255, 0.4);
}

.btn-success .fa-duotone {
    --fa-secondary-color: rgba(255, 255, 255, 0.4);
}

.btn-danger .fa-duotone {
    --fa-secondary-color: rgba(255, 255, 255, 0.4);
}

/* Card Header Icons */
.card-header .fa-duotone {
    --fa-primary-color: #495057;
    --fa-secondary-color: rgba(73, 80, 87, 0.3);
}

/* Responsive Icon Sizes */
@media (max-width: 576px) {
    .navbar-brand .fa-duotone {
        font-size: 1.1rem;
    }
    
    .nav-link .fa-duotone,
    .nav-link .fa-solid {
        font-size: 0.9rem;
    }
}

/* Hover Effects */
.nav-link:hover .fa-duotone {
    --fa-secondary-color: rgba(255, 255, 255, 0.7);
    transition: all 0.2s ease;
}

/* Focus States */
.btn:focus .fa-duotone {
    --fa-secondary-color: rgba(255, 255, 255, 0.6);
}

/* Loading States */
.fa-spinner.fa-spin {
    animation: fa-spin 1s infinite linear;
}

/* Custom Wake Lock Icon Colors */
.wake-lock-active .fa-sun {
    color: #ffc107;
}

.wake-lock-inactive .fa-moon {
    color: #6c757d;
}
