/* SVG Loader Styles - Native implementation to replace SVGInject */

/* Hide SVG images while loading */
img.injectable {
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* Show SVG images after processing */
img.injectable[data-svg-processed="true"] {
    opacity: 1;
}

/* Loaded SVG styling */
svg.svg-loaded {
    opacity: 1;
    transition: opacity 0.3s ease;
    display: inline-block;
    vertical-align: middle;
}

/* Ensure SVG maintains aspect ratio */
svg.svg-loaded {
    max-width: 100%;
    height: auto;
}

/* Handle different sizes */
svg.svg-loaded[width],
svg.svg-loaded[height] {
    width: auto;
    height: auto;
}

/* Loading state for SVG containers */
.svg-loading {
    position: relative;
}

.svg-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #3498db;
    border-radius: 50%;
    animation: svg-spin 1s linear infinite;
    transform: translate(-50%, -50%);
}

@keyframes svg-spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Error state */
.svg-error {
    opacity: 0.5;
    filter: grayscale(1);
}

/* Hover effects for interactive SVGs */
svg.svg-loaded.interactive:hover {
    transform: scale(1.05);
    transition: transform 0.2s ease;
}

/* Color inheritance for SVGs */
svg.svg-loaded path,
svg.svg-loaded circle,
svg.svg-loaded rect,
svg.svg-loaded polygon {
    fill: currentColor;
}

/* Responsive SVG sizing */
@media (max-width: 768px) {
    svg.svg-loaded {
        max-width: 24px;
        max-height: 24px;
    }
}

@media (min-width: 769px) {
    svg.svg-loaded {
        max-width: 32px;
        max-height: 32px;
    }
}