/**
 * Vue风格样式覆盖文件
 * 用于将EasyUI的文本框和下拉框样式改为Vue/Element UI风格
 * 
 * 特点：
 * 1. 更柔和的边框和颜色
 * 2. 聚焦时的蓝色高亮效果
 * 3. 平滑的过渡动画
 * 4. 现代化的视觉效果
 */

/* ==================== 文本框样式 ==================== */

/* 文本框容器 */
.textbox {
    border: 1px solid #DCDFE6 !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
    box-shadow: none !important;
    min-height: 30px !important;
    height: auto !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    /* 确保默认状态也有outline，避免移出时布局变化 */
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    /* 确保不会改变尺寸 */
    transform: none !important;
    margin: 0 !important;
/*    padding: 0 !important;*/
}

/* 文本框hover状态 - 确保不会有阴影或布局变化 */
.textbox:hover,
.textbox:not(.textbox-focused):hover {
    border-color: #DCDFE6 !important;
    box-shadow: none !important;
    /* 保持outline透明，避免布局变化 */
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    /* 确保hover时不会改变尺寸 */
    transform: none !important;
    margin: 0 !important;
/*    padding: 0 !important;*/
}

/* 文本框输入框 */
.textbox .textbox-text {
    border: none !important;
/*    padding: 0 15px !important;*/
/*    height: 30px !important;*/
/*    line-height: 30px !important;*/
/*    font-size: 14px !important;*/
    color: #606266 !important;
    background-color: transparent !important;
    border-radius: 4px !important;
    vertical-align: middle !important;
}

.textbox .textbox-text:focus {
    outline: none !important;
}

/* 文本框输入框hover状态 - 确保不会有阴影 */
.textbox .textbox-text:hover {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}

/* 文本框聚焦状态 - 使用outline避免布局抖动 */
.textbox-focused {
    border-color: #409EFF !important;
    outline: 2px solid rgba(64, 158, 255, 0.2) !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
    /* 确保聚焦时不会改变尺寸 */
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 文本框聚焦时的hover状态 */
.textbox-focused:hover {
    border-color: #409EFF !important;
    outline: 2px solid rgba(64, 158, 255, 0.2) !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
}

/* 文本框禁用状态 */
.textbox-disabled,
.textbox-disabled .textbox-text {
    background-color: #F5F7FA !important;
    border-color: #E4E7ED !important;
    color: #C0C4CC !important;
    cursor: not-allowed !important;
}

/* 文本框只读状态 */
.textbox[readonly],
.textbox .textbox-text[readonly] {
    background-color: #fff !important;
    color: #606266 !important;
    cursor: default !important;
}

/* 文本框错误状态 */
.textbox-invalid {
    border-color: #F56C6C !important;
}

.textbox-invalid.textbox-focused {
    outline: 2px solid rgba(245, 108, 108, 0.2) !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
}

/* 文本框提示文字 */
.textbox .textbox-prompt {
    color: #C0C4CC !important;
/*    font-size: 14px !important;*/
}

/* 文本框图标按钮 */
.textbox .textbox-icon {
    opacity: 0.7 !important;
    transition: opacity 0.2s !important;
}

.textbox .textbox-icon:hover {
    opacity: 1 !important;
}

/* ==================== 下拉框（Combobox）样式 ==================== */

/* Combo容器 */
.combo {
    border: 1px solid #DCDFE6 !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
    box-shadow: none !important;
/*    min-height: 30px !important;*/
/*    height: auto !important;*/
    overflow: hidden !important;
    position: relative !important;
    /* 确保默认状态也有outline，避免移出时布局变化 */
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    /* 确保不会改变尺寸 */
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
}

/* 下拉框hover效果 - 让用户知道可以点击 */
.combo:hover {
    border-color: #C0C4CC !important;
    background-color: #FAFAFA !important;
}

/* 下拉框点击时的反馈 */
.combo:active {
    background-color: #F5F7FA !important;
    border-color: #409EFF !important;
}

.combo .textbox {
    border: none !important;
    background-color: transparent !important;
/*    min-height: 30px !important;*/
    margin-right: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.combo .textbox-text {
/*    padding-right: 32px !important;*/
/*    height: 30px !important;*/
/*    line-height: 30px !important;*/
    width: 100% !important;
    box-sizing: border-box !important;
    border: none !important;
    margin: 0 !important;
}

/* 针对validatebox-text的特殊处理 */
.combo .textbox-text.validatebox-text {
    width: 100% !important;
    box-sizing: border-box !important;
    border: none !important;
    margin: 0 !important;
}

/* Combo聚焦状态 - 使用outline避免布局抖动 */
.combo.combo-focused,
.combo.textbox-focused {
    border-color: #409EFF !important;
    outline: 2px solid rgba(64, 158, 255, 0.2) !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
}

/* 下拉箭头 - 优化显示和交互 */
.combo-arrow,
.combo .textbox-icon.combo-arrow,
.combo .textbox-addon .textbox-icon.combo-arrow {
    width: 32px !important;
    min-width: 32px !important;
/*    height: 100% !important;*/
/*    min-height: 30px !important;*/
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="%23909399" d="M512 714.667L170.667 373.333h682.666L512 714.667z"/></svg>') no-repeat center center !important;
    background-size: 16px 16px !important;
    opacity: 0.8 !important;
    transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    outline: none !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    margin: 0 !important;
/*    padding: 0 !important;*/
    z-index: 10 !important;
    cursor: pointer !important;
    /* 确保箭头可见 */
    display: block !important;
    visibility: visible !important;
    /* 添加背景区域，让点击更容易 */
    background-color: transparent !important;
}

/* 确保textbox-icon在combo中也能正确显示箭头 */
.combo .textbox-icon {
    display: inline-block !important;
    visibility: visible !important;
}

/* 特别处理combo-arrow类的textbox-icon */
.combo .textbox-icon.combo-arrow {
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="%23909399" d="M512 714.667L170.667 373.333h682.666L512 714.667z"/></svg>') no-repeat center center !important;
    background-size: 16px 16px !important;
    background-color: transparent !important; /* 确保背景透明 */
    width: 32px !important;
    min-width: 32px !important;
/*    height: 100% !important;*/
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    z-index: 10 !important;
}

/* 下拉框hover时箭头更明显 */
.combo:hover .combo-arrow,
.combo:hover .textbox-icon.combo-arrow {
    opacity: 1 !important;
    background-color: transparent !important; /* 移除背景色 */
}

/* 箭头hover效果 */
.combo-arrow-hover,
.combo-arrow:hover,
.combo .textbox-icon.combo-arrow:hover {
    background-color: transparent !important; /* 移除背景色 */
    opacity: 1 !important;
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    transform: scale(1.1) !important;
}

/* 下拉框点击时的反馈效果 - 移除旋转，只在打开时旋转 */
.combo:active .combo-arrow,
.combo:active .textbox-icon.combo-arrow {
    background-color: transparent !important; /* 移除背景色 */
    opacity: 1 !important;
    transform: scale(1.05) !important; /* 点击时只放大，不旋转 */
}

/* 下拉框打开时的箭头旋转动画 - 使用JavaScript添加的combo-panel-opened类 */
.combo-panel-opened .combo-arrow,
.combo-panel-opened .textbox-icon.combo-arrow,
.combo.combo-panel-opened .combo-arrow,
.combo.combo-panel-opened .textbox-icon.combo-arrow,
.combo.textbox-focused .combo-arrow,
.combo.textbox-focused .textbox-icon.combo-arrow,
.combo.combo-focused .combo-arrow,
.combo.combo-focused .textbox-icon.combo-arrow,
.combo.combo-opened .combo-arrow,
.combo.combo-opened .textbox-icon.combo-arrow,
.combo-f.textbox-focused .combo-arrow,
.combo-f.textbox-focused .textbox-icon.combo-arrow,
.combo-f.combo-focused .combo-arrow,
.combo-f.combo-focused .textbox-icon.combo-arrow,
.combo-f.combo-opened .combo-arrow,
.combo-f.combo-opened .textbox-icon.combo-arrow {
    transform: rotate(180deg) !important;
    background-color: transparent !important; /* 移除背景色 */
    opacity: 1 !important;
}

/* 下拉框打开时的hover效果 */
.combo-panel-opened:hover .combo-arrow,
.combo-panel-opened:hover .textbox-icon.combo-arrow,
.combo.combo-panel-opened:hover .combo-arrow,
.combo.combo-panel-opened:hover .textbox-icon.combo-arrow,
.combo.textbox-focused:hover .combo-arrow,
.combo.textbox-focused:hover .textbox-icon.combo-arrow,
.combo.combo-focused:hover .combo-arrow,
.combo.combo-focused:hover .textbox-icon.combo-arrow,
.combo.combo-opened:hover .combo-arrow,
.combo.combo-opened:hover .textbox-icon.combo-arrow,
.combo-f.textbox-focused:hover .combo-arrow,
.combo-f.textbox-focused:hover .textbox-icon.combo-arrow,
.combo-f.combo-focused:hover .combo-arrow,
.combo-f.combo-focused:hover .textbox-icon.combo-arrow,
.combo-f.combo-opened:hover .combo-arrow,
.combo-f.combo-opened:hover .textbox-icon.combo-arrow {
    background-color: transparent !important; /* 移除背景色 */
    transform: rotate(180deg) scale(1.1) !important;
}

/* 确保combo容器内部没有额外的边框 */
.combo .combo-text,
.combo .textbox-text,
.combo .textbox-text.validatebox-text {
    border: none !important;
    border-right: none !important;
    border-left: none !important;
    border-top: none !important;
    border-bottom: none !important;
    outline: none !important;
}

/* 确保combo箭头区域不会产生边框和背景色 */
.combo .combo-arrow,
.combo .textbox-icon {
    border: none !important;
    border-left: none !important;
    border-right: none !important;
    border-top: none !important;
    border-bottom: none !important;
    outline: none !important;
    background-color: transparent !important; /* 确保背景透明 */
}

/* 确保combo容器内部元素宽度计算正确 */
.combo .textbox {
    position: relative !important;
/*    padding-right: 32px !important;*/
    box-sizing: border-box !important;
}

/* 确保textbox-text不会溢出 */
.combo .textbox-text,
.combo .textbox-text.validatebox-text {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* 下拉框打开时箭头旋转 */
.combo-panel {
    border: 1px solid #DCDFE6 !important;
    border-radius: 4px !important;
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1) !important;
    background-color: #fff !important;
    margin-top: 4px !important;
}

/* 下拉选项样式 */
.combobox-item {
    padding: 0 6px !important;
    line-height: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
/*    font-size: 14px !important;*/
    color: #606266 !important;
    cursor: pointer !important;
    transition: background-color 0.25s !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.combobox-item:hover,
.combobox-item-hover {
    background-color: #ecf5ff !important;
    color: #409EFF !important;
}

.combobox-item-selected {
    background-color: #409EFF !important;
    color: #fff !important;
    font-weight: normal !important;
}

.combobox-item-disabled {
    color: #C0C4CC !important;
    cursor: not-allowed !important;
}

.combobox-item-disabled:hover {
    background-color: transparent !important;
}

/* 下拉分组标题 */
.combobox-group {
/*    padding: 10px 15px !important;*/
/*    font-size: 12px !important;*/
    color: #909399 !important;
    font-weight: 600 !important;
/*    line-height: 20px !important;*/
}

/* ==================== 数字输入框 ==================== */

/* Numberbox样式 */
.easyui-numberbox .textbox {
    border: 1px solid #DCDFE6 !important;
}

/* 数字微调按钮 */
.spinner .spinner-arrow {
    width: 20px !important;
    border-left: 1px solid #DCDFE6 !important;
}

.spinner .spinner-arrow:hover {
    background-color: #F5F7FA !important;
}

/* ==================== 日期选择框 ==================== */

.datebox .combo {
    border: 1px solid #DCDFE6 !important;
}

.datebox .combo-arrow {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="%23C0C4CC" d="M768 128h85.333v85.333H768V128zm-597.333 0h85.333v85.333h-85.333V128zm0 170.667h597.333v512h-597.333V298.667zm85.333 85.333v341.333h426.667V384H256z"/></svg>') !important;
    background-size: 16px 16px !important;
}

/* ==================== 响应式优化 ==================== */

@media (max-width: 768px) {
    .textbox .textbox-text {
/*        height: 30px !important;*/
/*        line-height: 30px !important;*/
        /*font-size: 16px !important;*/ /* 防止iOS缩放 */
/*        padding: 0 12px !important;*/
    }
    
    .textbox,
    .combo {
/*        min-height: 30px !important;*/
    }
    
    .combobox-item {
/*        padding: 0 15px !important;*/
/*        line-height: 30px !important;*/
/*        height: 30px !important;*/
/*        min-height: 30px !important;*/
/*        font-size: 16px !important;*/
    }
}

/* ==================== 兼容性处理 ==================== */

/* 确保在EasyUI初始化后样式生效 */
.easyui-textbox .textbox {
    border: 1px solid #DCDFE6 !important;
}

.easyui-combobox .combo {
    border: 1px solid #DCDFE6 !important;
}

/* 表单标签样式优化 */
.textbox-label {
    color: #606266 !important;
    font-weight: normal !important;
/*    line-height: 30px !important;*/
/*    height: 30px !important;*/
}

/* textarea文本域高度优化 */
.textbox textarea.textbox-text {
    padding: 8px 8px !important;
/*    line-height: 1.5 !important;
    height: auto !important;
    min-height: 120px !important;*/
    border: none !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
    outline: none !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background-color: transparent !important;
    resize: vertical !important;
    display: block !important;
    /* 确保没有浏览器默认样式 */
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

/* 确保文本域容器没有额外的边框 - 针对multiline模式 */
.textbox[class*="multiline"],
.easyui-textbox[data-options*="multiline"] {
    border: 1px solid #DCDFE6 !important;
    height: auto !important;
    min-height: auto !important;
}

/* 文本域聚焦状态 - 使用outline避免布局抖动 */
.textbox[class*="multiline"].textbox-focused,
.easyui-textbox[data-options*="multiline"].textbox-focused,
.textbox:focus-within {
    border-color: #409EFF !important;
    outline: 2px solid rgba(64, 158, 255, 0.2) !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
    /* 确保聚焦时不会改变尺寸 */
    transform: none !important;
    margin: 0 !important;
/*    padding: 0 !important;*/
}

/* 文本域hover状态 - 确保不会有阴影或布局变化 */
.textbox[class*="multiline"]:hover,
.easyui-textbox[data-options*="multiline"]:hover,
.textbox:not(.textbox-focused):hover:not(:focus-within) {
    border-color: #DCDFE6 !important;
    box-shadow: none !important;
    /* 保持outline透明，避免布局变化 */
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 确保文本域容器默认状态也有outline */
.textbox[class*="multiline"],
.easyui-textbox[data-options*="multiline"] {
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
}

/* 文本域聚焦时的处理 */
.textbox textarea.textbox-text:focus {
    outline: none !important;
    border: none !important;
}

/* 确保文本域容器高度自适应 */
.textbox textarea.textbox-text {
    vertical-align: top !important;
}

/* 移除所有可能的边框 - 针对validatebox-text */
.textbox textarea.textbox-text.validatebox-text {
    border: none !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
    outline: none !important;
}

/* 确保所有输入框容器高度一致 */
.easyui-textbox,
.easyui-combobox,
.easyui-numberbox,
.easyui-datebox {
/*    min-height: 30px !important;*/
}

/* 下拉箭头位置调整 */
.combo-arrow {
/*    line-height: 30px !important;*/
}

/* 清除IE10+的默认清除按钮 */
.textbox-text::-ms-clear {
    display: none !important;
}

/* ==================== 防止hover时出现阴影导致布局抖动 ==================== */

/* 强制覆盖所有可能的hover阴影效果 */
.textbox:hover,
.textbox:not(.textbox-focused):hover,
.easyui-textbox:hover,
.easyui-textbox:not(.textbox-focused):hover {
    -moz-box-shadow: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    /* 保持outline透明，避免移出时布局变化 */
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 确保textbox-text元素hover时也不会有阴影 */
.textbox .textbox-text:hover,
.textbox .textbox-text:not(:focus):hover,
.textbox textarea.textbox-text:hover,
.textbox textarea.textbox-text:not(:focus):hover {
    -moz-box-shadow: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    outline: none !important;
    border: none !important;
    transform: none !important;
    margin: 0 !important;
/*    padding: 0 15px !important;*/
}

/* 覆盖EasyUI默认的textbox-focused阴影（可能在hover时触发） */
.textbox-focused:hover {
    -moz-box-shadow: none !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    outline: 2px solid rgba(64, 158, 255, 0.2) !important;
    outline-offset: -2px !important;
}

/* 确保所有状态都有相同的outline设置，避免移出时布局变化 */
.textbox:not(.textbox-focused),
.textbox:not(.textbox-focused):not(:hover),
.easyui-textbox:not(.textbox-focused),
.easyui-textbox:not(.textbox-focused):not(:hover) {
    outline: 2px solid transparent !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

