/* === 通用按钮 === */

/* ---- 通用按钮 ---- */
.btn-primary {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 36px; padding: 0 16px;
    background: linear-gradient(135deg, #4a9eff, #3a8eef); color: #fff;
    border: none; border-radius: 8px;
    font-size: 13px; font-weight: 500; cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    position: relative; overflow: hidden;
}
.btn-primary:hover {
    background: linear-gradient(135deg, #3a9eff, #2a7eef);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(74, 158, 255, 0.3);
}
.btn-primary:active { transform: translateY(0) scale(0.97); }
.btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; box-shadow: none; }

.btn-secondary {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 36px; padding: 0 16px;
    background: #fff; color: #6b7280;
    border: 1px solid #e5e7eb; border-radius: 8px;
    font-size: 13px; font-weight: 500; cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
}
.btn-secondary:hover {
    background: #f9fafb; color: #111827;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border-color: #d1d5db;
}
.btn-secondary:active { transform: translateY(0) scale(0.97); }

.btn-danger {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 36px; padding: 0 16px;
    background: linear-gradient(135deg, #ef4444, #dc2626); color: #fff;
    border: none; border-radius: 8px;
    font-size: 13px; font-weight: 500; cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
}
.btn-danger:hover {
    background: linear-gradient(135deg, #dc2626, #c02828);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.25);
}
.btn-danger:active { transform: translateY(0) scale(0.97); }

.btn-text {
    display: inline-flex; align-items: center; justify-content: center;
    height: 36px; padding: 0 16px;
    background: transparent; color: #6b7280;
    border: none; border-radius: 8px;
    font-size: 13px; font-weight: 500; cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-text:hover { background: #f3f4f6; color: #111827; transform: translateY(-1px); }
.btn-text:active { transform: translateY(0); }

.icon-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    color: #7b8494;
    border: none;
    border-radius: 9px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}
.icon-btn:hover {
    background: linear-gradient(135deg, #f4f6f9, #eef1f6);
    color: #475569;
    transform: translateY(-1px) scale(1.06);
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
}
.icon-btn:active { transform: translateY(0) scale(0.95); }
.icon-btn svg {
    transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.icon-btn:hover svg {
    transform: scale(1.08);
}
