/* Floating input style (icon fixed left, label floats on focus/value) */
.floating-input-group {
    position: relative;
}

.floating-input-group .form-label {
    position: absolute;
    top: 12px;
    left: 52px;
    z-index: 2;
    margin: 0;
    padding: 0 6px;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-tertiary, #6b7280);
    background: transparent;
    pointer-events: none;
    transition: all 0.2s ease;
}

/* Show the icon in the floating label */
.floating-input-group .form-label .label-icon {
    display: none;
}

.floating-input-group .input-wrapper {
    position: relative;
}

.floating-input-group .input-prefix {
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 100%;
    color: var(--text-tertiary, #6b7280);
    font-size: 16px;
    pointer-events: none;
}

.floating-input-group .form-control {
    width: 100%;
    height: 50px;
    padding: 0 16px 0 48px;
    background: var(--bg-elevated, #0f0f1a);
    border: 1px solid var(--border-primary, #2a2a4a);
    border-radius: 12px;
    font-size: 16px;
    color: var(--text-primary, #ffffff);
    caret-color: var(--text-primary, #ffffff);
    transition: all 0.3s ease;
}

.floating-input-group textarea.form-control {
    height: auto;
    min-height: 90px;
    padding-top: 14px;
    padding-bottom: 14px;
    resize: vertical;
    scrollbar-width: thin;
    scrollbar-color: var(--primary, #05d6c1) transparent;
}

.floating-input-group textarea.form-control::-webkit-scrollbar {
    width: 6px;
}

.floating-input-group textarea.form-control::-webkit-scrollbar-track {
    background: transparent;
    margin: 8px 0;
}

.floating-input-group textarea.form-control::-webkit-scrollbar-thumb {
    background: rgba(5, 214, 193, 0.75);
    border-radius: 999px;
}

.floating-input-group textarea.form-control:hover::-webkit-scrollbar-thumb,
.floating-input-group textarea.form-control:focus::-webkit-scrollbar-thumb {
    background: var(--primary, #05d6c1);
}

/* Fix autofill styles for dark theme */
.floating-input-group .form-control:-webkit-autofill,
.floating-input-group .form-control:-webkit-autofill:hover,
.floating-input-group .form-control:-webkit-autofill:focus,
.floating-input-group .form-control:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px var(--bg-elevated, #0f0f1a) inset !important;
    -webkit-text-fill-color: var(--text-primary, #ffffff) !important;
    color: var(--text-primary, #ffffff) !important;
    background-color: var(--bg-elevated, #0f0f1a) !important;
    background-image: none !important;
    caret-color: var(--text-primary, #ffffff) !important;
    transition: background-color 5000s ease-in-out 0s;
}

/* Firefox autofill styles */
.floating-input-group .form-control:autofill,
.floating-input-group .form-control:-moz-autofill {
    background-color: var(--bg-elevated, #0f0f1a) !important;
    background-image: none !important;
    color: var(--text-primary, #ffffff) !important;
    caret-color: var(--text-primary, #ffffff) !important;
}

/* Handle autofill animation start */
@keyframes onAutoFillStart {
    from { }
    to { }
}

/* Handle autofill animation end */
@keyframes onAutoFillCancel {
    from { }
    to { }
}

/* Detect autofill and apply floating state */
.floating-input-group .form-control:-webkit-autofill {
    animation-name: onAutoFillStart;
    animation-fill-mode: both;
}

.floating-input-group .form-control:not(:-webkit-autofill) {
    animation-name: onAutoFillCancel;
    animation-fill-mode: both;
}

.floating-input-group .form-control::placeholder {
    color: transparent;
}

.floating-input-group .form-control:hover {
    border-color: var(--border-hover, #3a3a5a);
}

.floating-input-group .form-control:focus {
    outline: none;
    border-color: var(--primary, #05d6c1);
    box-shadow: 0 0 0 3px rgba(5, 214, 193, 0.15);
}

.floating-input-group .form-control.invalid {
    border-color: var(--error, #ef4444);
}

.floating-input-group .form-control.valid {
    border-color: var(--success, #04a99a);
}

/* Floating label states */
.floating-input-group:focus-within .form-label,
.floating-input-group.has-value .form-label {
    top: -9px;
    left: 16px;
    font-size: 11px;
    color: var(--primary, #05d6c1);
    background: var(--bg-card, #1a1a2e);
    border-radius: 4px;
    padding: 0 6px;
}

/* Input suffix (password toggle, etc.) */
.floating-input-group .input-suffix {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    cursor: pointer;
    background: transparent;
    border: none;
    padding: 0;
    transition: color 0.3s ease;
    color: var(--text-tertiary, #6b7280);
}

.floating-input-group .input-suffix:hover {
    color: var(--primary, #05d6c1);
}

/* Add padding when suffix is present */
.floating-input-group .form-control.with-suffix {
    padding-right: 48px;
}

/* Hide badges in floating inputs */
.floating-input-group .label-badge,
.floating-input-group .label-optional {
    display: none;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .floating-input-group .form-control {
        height: 52px;
    }

    .floating-input-group .form-label {
        top: 16px;
        font-size: 15px;
    }
}
