/* Modern Captcha Styling */
.captcha-container {
    margin: 15px 0;
}

.captcha-container .card {
    border-width: 2px;
    transition: all 0.3s ease;
}

.captcha-container .card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transform: translateY(-1px);
}

/* Shape Captcha Styles */
.captcha-shape {
    transition: all 0.2s ease;
}

.captcha-shape:hover {
    border-color: #007bff !important;
    background: #f0f8ff !important;
    transform: scale(1.05);
}

.captcha-shape.selected {
    border-color: #28a745 !important;
    background: #d4edda !important;
}

.shape-circle {
    border-radius: 50%;
}

.shape-square {
    border-radius: 4px;
}

.shape-triangle {
    width: 0 !important;
    height: 0 !important;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-bottom: 35px solid;
    background: transparent !important;
    margin: 5px auto;
}

.shape-star {
    position: relative;
}

.shape-star:before {
    content: "★";
    font-size: 32px;
    color: inherit;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Slider Captcha Styles */
.slider-container {
    margin: 10px 0;
}

.slider-track {
    position: relative;
    user-select: none;
}

.slider-thumb {
    transition: all 0.2s ease;
}

.slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 2px 8px rgba(0,123,255,0.3);
}

.slider-thumb.dragging {
    cursor: grabbing;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0,123,255,0.4);
}

/* Sequence Display */
.sequence-display {
    font-weight: bold;
    border: 2px dashed #ffc107;
}

/* Animation for successful captcha */
.captcha-success {
    animation: captchaSuccess 0.6s ease-in-out;
}

@keyframes captchaSuccess {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); background-color: #d4edda; }
    100% { transform: scale(1); }
}

/* Error state */
.captcha-error {
    animation: captchaError 0.6s ease-in-out;
}

@keyframes captchaError {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

/* Loading state */
.captcha-loading {
    position: relative;
    overflow: hidden;
}

.captcha-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Responsive design */
@media (max-width: 576px) {
    .captcha-shape {
        padding: 10px;
    }
    
    .captcha-shape .shape-circle,
    .captcha-shape .shape-square {
        width: 30px;
        height: 30px;
    }
    
    .sequence-display {
        font-size: 16px;
    }
}

/* Color variations for shapes */
.color-red { background-color: #dc3545 !important; }
.color-blue { background-color: #007bff !important; }
.color-green { background-color: #28a745 !important; }
.color-yellow { background-color: #ffc107 !important; }
.color-purple { background-color: #6f42c1 !important; }

/* Triangle color variations */
.shape-triangle.color-red { border-bottom-color: #dc3545; }
.shape-triangle.color-blue { border-bottom-color: #007bff; }
.shape-triangle.color-green { border-bottom-color: #28a745; }
.shape-triangle.color-yellow { border-bottom-color: #ffc107; }
.shape-triangle.color-purple { border-bottom-color: #6f42c1; }

/* Star color variations */
.shape-star.color-red:before { color: #dc3545; }
.shape-star.color-blue:before { color: #007bff; }
.shape-star.color-green:before { color: #28a745; }
.shape-star.color-yellow:before { color: #ffc107; }
.shape-star.color-purple:before { color: #6f42c1; }